text:
Support for Schema for AvionDB

A Schema is a JSON object that allows you to define the shape and content of documents and embedded documents in a collection. You can use a schema to require a specific set of fields, configure the content of a field, or to validate changes to a document based on its beginning and ending states.
This issue is for discussing various approaches to implement Schema for AvionDB. The goal here is to pool different views on:

Why do we need Schema?
How we can implement Schema for AvionDB? (at least a rough idea)

This issue would be resolved to create a new issue with technical specifications for implementing Schema model.
This is an open discussion, feel free to add your comments, suggestions.

As a possible implementation I'd recommend hapi/joi, example below.
It's possible to store json schemas and later convert them to joi using a package like enjoi.
Example json to joi validation with enjoy:
const Joi = require('@hapi/joi');
const Enjoi = require('enjoi');

const schema = Enjoi.schema({
    type: 'object',
    properties: {
        firstName: {
            description: 'First name.',
            type: 'string'
        },
        lastName: {
            description: 'Last name.',
            type: 'string'
        },
        age: {
            description: 'Age in years',
            type: 'integer',
            minimum: 1
        }
    },
    'required': ['firstName', 'lastName']
});

const { error, value } = schema.validate({firstName: 'John', lastName: 'Doe', age: 45});

Here is a related issue from the specs repo: https://github.com/dappkit/aviondb-specs/issues/3

I love that idea @deanpress. Joi is really good for doing schemes outside of hapi. If Scheme support is worked out. Protobuf serialization can be used potentially which saves a significant amount of space. Scheme support should definitely be looked at. We need to make sure there isn't conflicts when adding/removing, or modifying the Scheme. Another issue has to do with decentralization, if we implement Schemes we have to make sure there isn't conflict because of disconnected/offline peers. The best way to avoid conflicts would be having a specific Scheme be defined during the creation of the collection, but that has potential side effects.

How we can implement Schema for AvionDB? (at least a rough idea)

Joi is really good option. Need to make sure it can be converted into protobuf message format if we plan on using protobuf encoding to reduce storage space. Also the Joi Scheme needs to be convertible into a object so it can be stored in the oplog. (Which I am sure all can be done with some extra code)

Thanks for sharing your views @vaultec81 @deanpress.
We can discuss more the issues that @vaultec81 has stated in terms of conflicts. I'll work on a new issue for specs to take this forward ASAP.

@vaultec81 Should we add the CID of the Schema with the oplog? That way the oplog would stay clean & light.

@vasa-develop I don't think we need to do that. The amount data used compared to normal entries is negligible. Having it stored on IPFS adds extra time to find and fetch, introducing the potential for the data to get lost. Given its essential it should be part of the oplog.

@vaultec81 So are you suggesting to add the Schema JSON with every oplog?
Also, about the Protobuf conversion, is that done on orbit-db-io level?

@vasa-develop each entry on the oplog would reference an ID that connects back the Scheme JSON data. Not directly storing the Scheme with every entry. Also since there is a other operations aside from inserts such as $set. The Scheme validation would happen after the state is calculated.
Protobuf serialization wouldn't happen on the orbit-db-io level rather the level where aviondb stores its state. It could run on the orbit-db-io level, but I worry there could be unforeseen side effects.

oplog would reference an ID that connects back the Scheme JSON data.

@vaultec81  So, where & how should I store the Schema JSON & their respective id(s)?

So, where & how should I store the Schema JSON & their respective id(s)?

A separate system would need to be created/custom oplog operation types specifically for defining Schemes. It would still use the same oplog as the collection in question, but processed separately. Does that make sense?

Yeah that makes sense. We'll need to handle things like replicating the Schema oplog with the collection oplog data. Any other possible edge cases that you can think of?

We will have to experiment with how to make a system like this work, and ensure there are no significant added conflicts/drawbacks.

So when we replicate the collection, then the Schema will also get replicated with it, right?

Correct.

Protobuf serialization wouldn't happen on the orbit-db-io level rather the level where aviondb stores its state.

I'm a bit confused here. Where do we store the "state"?

I'm a bit confused here. Where do we store the "state"?

The state is essentially what the collectionIndex is. Which we store in memory which is calculated from the oplog on start.

Got it.

In case we add Schema support, should we allow creating a collection without a Schema?

Mongodb is specifications is meant to allow for no Schema usage. Thats the idea behind document based databases. Requiring a Schema to be present, would be mean data formats cannot change, and the fields of the documents inserted must be defined before hand.

Gotcha. So, we'll allow no Schema usage.

I thought a bit about the conflict issues that we discussed above.
In case of a single peer using a database:
There are no conflicts and the peer can transform its data according to the updated schema.
In case of multiple, online/offline peers using a database:
I think there would not a conflict in the final schema, as it's just an oplog and the most recent oplog for the Schema will be the latest Schema. Here the only problem that I see is the issue of data transformation, as all the peers need to transform the data according to the latest Schema.

@vasa-develop On the issue of transforming data with a new Schema:
Perhaps there could be an optional "migration file" passed along with a new Schema. The migration file could be a js method that's supposed to transform each document according to the new Schema.
If a migration file is passed with a new Schema,, aviondb automatically applies the method on each document(?) to complete the transformation.

@deanpress That should work, but I'm concerned about the situation itself. What if the database is big and the peers (working on the same database) are changing the Schema frequently?

What if the database is big and the peers (working on the same database) are changing the Schema frequently

The Schema should never be changed rapidly like this, if ever. Schema must hold the same across the entire collection.

What if the database is big and the peers (working on the same database) are changing the Schema frequently

I'm asking if an attack like this is possible or not (and what could be potential gains for the attacker?)

https://json-schema.org/ should be used to define schemas. They are widely used in the space, mongo uses JSON Schema as well:
https://docs.mongodb.com/manual/core/schema-validation/

I'm asking if an attack like this is possible or not (and what could be potential gains for the attacker?)

Whats the gain for an attacker to flood the entire collection with garbage data? If you give someone access, if should be assumed they will not try to destroy your database.

If you give someone access, it should be assumed they will not try to destroy your database.

The account used for access (depending on the auth method) could have been compromised, giving db control to bad actors. Though I suppose in that case the database will experience trouble regardless of frequent schema updates.

@deanpress @vaultec81 any suggestions on these json-schema validators?
How do these compare with enjoi?

The account used for access (depending on the auth method) could have been compromised, giving db control to bad actors.

This is on the developer using the access controller. He has to make sure that this doesn't happen (or is not easy to compromise).

@vasa-develop

How do these compare with enjoi?

enjoi is basically json-schema to hapi joi format, so it is in fact a json-schema validator.
If you'd prefer one that's on the json-schema validators list I'd recommend ajv which is comparable to hapi joi (+ enjoi): https://github.com/ajv-validator/ajv

authors: deanpress shanejonas vasa-develop vaultec81

repo: dappkit/aviondb


text:
Typo in sample code in read-me file

public interface IUserInfo : IAdObject
should presumably be:
public class UserInfo : IAdObject and therefore query.Execute<UserInfo>

Actually, no... You can use interfaces, and you will become a proxied object instance back.
It was briefly removed, but I placed it back with a better solution.
Try it out with the current version 0.2.17

Got it, thanks.

source: gharchive/issue

license: mit

license_type: permissive

license_source: bigquery


text:
DNS_PROBE_POSSIBLE On UI Page

Version: 1.0.0 (1.90.12 upstream) [/ipfs/QmaGNSnRHduxb98FzZULnN9cuQTChybAUXdTw6Pza1b958]
When click on UI on DAppNode
directed to the page
http://hopr.dappnode:3000/?apiEndpoint=http://hopr.dappnode:3001&apiToken=!5qxc9Lp1BE7IFQ-nrtttU
But

Unable to go into the UI and logs shows

2022-10-01T00:43:19.397Z hoprd:admin using /app/packages/hoprd/hopr-admin
2022-10-01T00:43:19.749Z hoprd { type: 'log', msg: 'Admin server listening on port 3000', ts: '2022-10-01T00:43:19.747Z' }
2022-10-01T00:43:19.750Z hoprd { type: 'log', msg: 'This is HOPRd version 1.90.12', ts: '2022-10-01T00:43:19.750Z' }
2022-10-01T00:43:19.750Z hoprd { type: 'log', msg: 'This node appears to be running on an AVADO/Dappnode', ts: '2022-10-01T00:43:19.750Z' }
2022-10-01T00:43:21.844Z hoprd { type: 'log', msg: 'Creating HOPR Node', ts: '2022-10-01T00:43:21.844Z' }
2022-10-01T00:43:21.846Z hopr-core:db using db at /app/hoprd-db/data/db
2022-10-01T00:43:21.846Z hopr-core:db db directory does not exist, creating?: true
2022-10-01T00:43:21.856Z hopr-core:db namespacing db by public key: 0x02ef7c0178c866a13aa45e0978634d998db8e79897191f54b28a005d52501d5a2b
2022-10-01T00:43:21.857Z hopr-core:db setting environment id monte_rosa to db
2022-10-01T00:43:21.857Z hopr-core:create-hopr using provider URL: https://provider-proxy.hoprnet.workers.dev/xdai_mainnet
2022-10-01T00:43:21.858Z hopr-core using environment: monte_rosa
2022-10-01T00:43:21.859Z hoprd { type: 'status', msg: 'PENDING', ts: '2022-10-01T00:43:21.859Z' }
2022-10-01T00:43:21.859Z hoprd { type: 'log', msg: 'Ready to request on-chain connector to connect to provider.', ts: '2022-10-01T00:43:21.859Z' }
2022-10-01T00:43:22.523Z hoprd { type: 'log', msg: 'Connector has been loaded properly.', ts: '2022-10-01T00:43:22.523Z' }
2022-10-01T00:43:22.523Z hoprd:api Enabling Rest API v2 and WS API v2
2022-10-01T00:43:22.763Z hoprd { type: 'log', msg: 'Node address: 16Uiu2HAmBYX6EeLVKjDJ5fpBXpFhGHaXeHGE4QtFFh4YAALLkUuG', ts: '2022-10-01T00:43:22.763Z' }
2022-10-01T00:43:22.763Z hoprd { type: 'log', msg: 'Node is not started, please fund this node 0x591EcBC5Db6B20B8a93013a2c29CAd044cF6390c with at least 0.01 xDAI', ts: '2022-10-01T00:43:22.763Z' }
2022-10-01T00:43:22.767Z hoprd { type: 'log', msg: 'API server on 0.0.0.0 listening on port 3001', ts: '2022-10-01T00:43:22.766Z' }
2022-10-01T00:43:22.767Z hoprd { type: 'log', msg: 'Healthcheck server on 0.0.0.0 listening on port 8080', ts: '2022-10-01T00:43:22.767Z' }
2022-10-01T00:43:23.317Z hoprd:api:v2 Written full Rest API v2 spec file to rest-api-v2-full-spec.json
2022-10-01T00:43:24.140Z hopr-core still unfunded, trying again soon
2022-10-01T00:43:24.140Z hopr:utils:retry failed, attempting again in 1000 (undefined)
2022-10-01T00:43:26.405Z hopr-core still unfunded, trying again soon
2022-10-01T00:43:26.405Z hopr:utils:retry failed, attempting again in 1050 (undefined)
2022-10-01T00:43:28.326Z hopr-core still unfunded, trying again soon
2022-10-01T00:43:28.326Z hopr:utils:retry failed, attempting again in 1102.5 (undefined)

For some reason the dns is not resolved it by default, I fixed it by changing the URL to http://node.hopr.dappnode:3000/?apiEndpoint=http://node.hopr.dappnode:3001&apiToken=!5qxc9Lp1BE7IFQ-nrtttU
By default if the package has one service or one of the service is defined as the main service in the manifest, the URL to access would be namepackage.dappnode and service-name.namepackage.dappnode if you want to access to another service via URL.

I am still facing DNS probe issue

https://github.com/dappnode/DAppNodePackage-Hopr/pull/61
With this change it should work, the URL to access are :
http://node.hopr.public.dappnode:8080/healthcheck/v1/version
http://node.hopr.public.dappnode:3000/?apiEndpoint=http://node.hopr.public.dappnode:3001&apiToken=!5qxc9Lp1BE7IFQ-nrtttU

Yes I clicked on it and it's working now, awesome! Much appreciated @tropicar for the fix :D

authors: ZaineJJ tropicar

repo: dappnode/DAppNodePackage-Hopr

license_source: github-api


text:
STC charter meeting notes are outdated

STC charter doc, Committee meetings section is outdated. It mentions the youtube channel and meeting notes which are no longer used.

Closed with https://github.com/dapr/community/pull/303/files

authors: bibryam msfussell

repo: dapr/community


text:
Fix double envelope wrap when cloud events are being published

Expected Behavior
Currently Dapr creates Cloud Events v0.3 envelope when new content is published before it's send to the subscriber(s). When that content is already a Cloud Event, that payload is wrapped into yet another payload.
Actual Behavior
Dapr recognizes the submitted content ([]byte) as Cloud Events and uses it as the CloudEvent without creating a new one.
Steps to Reproduce the Problem
Post to a topic content that's already Cloud Event and print out payload when subscribing to that same topic.

Discussed in pub/sub scoping review - this is needed before 1.0

Done

authors: LMWF mchmarny vinayada1

repo: dapr/components-contrib


text:
RabbitMQ items in the queue get dropped as soon as any consumers disconnect even if deletedWhenUnused is false

Expected Behavior
When a consumer unsubscribes from the queue all of the messages should stay there. I am not 100% certain whether this is a RabbitMQ specific issue or no.
Actual Behavior
All of the messages get removed from the queue as soon as one consumer disconnects
Example with scaled 1 to 0:

Examples with scaled 2 to 1

Steps to Reproduce the Problem
Scale-up any consumer to 2 pods, then scale one down all items get dropped from the queue, but the queue itself stays
My configuration
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: pubsub
  namespace: default
spec:
  type: pubsub.rabbitmq
  version: v1
  metadata:
  - name: host
    secretKeyRef:
      name: primary-secrets
      key: rabbitmq_url
  - name: durable
    value: "false"
  - name: deletedWhenUnused
    value: "false"
  - name: autoAck
    value: "false"
  - name: deliveryMode
    value: "0"
  - name: requeueInFailure
    value: "true"
  - name: prefetchCount
    value: "5"
  - name: reconnectWait
    value: "0"
  - name: concurrencyMode
    value: parallel
auth:
  secretStore: kubernetes

Release Note

RELEASE NOTE:

Seems like quite a critical issue?

If anyone is using RabbitMQ for PubSub and can scale down a pod to confirm that all messages are dropped or not that would be great!

@TimVen I'll confirm that this week. Are you sure that messages are not just getting processed and thus removed from the queue?

Thanks @yaron2. As soon as one of the pods is scaled down it seems to purge all queue items. We can confirm that they have not been processed.

@yaron2 I've created a repository to reproduce the issue here https://github.com/WhoAteDaCake/dapr-rabbitmq-repro-1

I've encountered this too, this situation only occurs when sidecar is running normally but consumer service is down or disconnected. This is because when consumers disconnect, the request from sidecar to consumer will get 500 http status code and the message will be acked in this situation.
I did two things to alleviate this problem. One is to add the retry strategy, and the other is to add the support for the dead letter queue(in progress). By defining a retry strategy, a short-term consumer downtime will not affect data consumption.

Thanks for the reply. Wouldn't receiving 500 only get rid of messages, which have been unacked, rather than all of the messages on the queue?

I am not very certain about a consumer  unsubscribes from the queue mean, I am just assume you are in such a situation that your consumer exited abnormally and will go back online within a period of time. During this period of time, the sidecar starts normally, and you don't want the situation you mentioned now to happen.
Adding a retry strategy can instruct the sidecar how to resend the message. During the retry of sending the message, the message will not be acked.
backOffMaxRetries is the maximum number of retries to process the message, set it to a bigger number will be able to tolerate longer consumer downtime. Set backOffMaxRetries to "-1" will retry indefinitely until the message is processed.(I am working on the documents about these config)
You can try the following config. And this feature is not included in dapr version 1.2.2, which means you must build it from source at master branch.
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: pubsub
  namespace: default
spec:
  type: pubsub.rabbitmq
  version: v1
  metadata:
    - name: host
      secretKeyRef:
        name: primary-secrets
        key: rabbitmq_url
    - name: durable
      value: "false"
    - name: deletedWhenUnused
      value: "false"
    - name: autoAck
      value: "false"
    - name: deliveryMode
      value: "0"
    - name: requeueInFailure
      value: "true"
    - name: prefetchCount
      value: "5"
    - name: reconnectWait
      value: "0"
    - name: concurrencyMode
      value: parallel
    # backoff option
    - name: backOffPolicy
      value: "exponential"
    - name: backOffMaxRetries
      value: "10"
auth:
  secretStore: kubernetes

Thanks for the solution. The situation we are in is when a pod is scaled down, the primary service goes down first, which causes daprd sidecar to send a barrage of requests all of them returning status 500.  Thanks to your notes, I've looked into the logs of daprd container further and found:

dapr shutting down. Waiting 5s to finish outstanding operations

authors: Taction TimVen WhoAteDaCake yaron2


text:
added vaultKVUsePrefix on hashicorp vault secret

Description
In the Hashicorp Vault secret store I added the vaultKVUsePrefix setting. if not passed maintain current behavior (assume value true and use the other setting to compute the actual prefix). If passed and is false then prefix is set to empty string so that this secret store can successfully use BulkGetSecret functionality.
Issue reference
This PR should close the following issue: #925
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[ X] Code compiles correctly
[ X] Created/updated tests
[X ] Extended the documentation: https://github.com/dapr/docs/pull/1543

updated comment for documentation edit

Is there a way to know if this can fit in v1.3 release (once discussed)? thanks a lot!

/cc @artursouza ready for review

source: gharchive/pull-request

authors: Banchio pkedy


text:
PubSub vs Binding

In what area(s)?
/area runtime
Ask your question here
What is the different purpose of pubsub and binding components? I found this post: https://github.com/dapr/quickstarts/issues/404 that says pubsub should be used for dapr-to-dapr communication.
I want my API to receive message from a service bus topic subscription (with session enabled). The messages on this topic come from external sources.
So it's not a dapr-to-dapr communication. I checked the supported bindings but only service bus queue is supported.
How can I achieve this scenario?
Is session supported in dapr?
Does dapr create its own subscription or can it listen to an existing subscription? (The latter is preferred)

Currently sessions are not supported in Dapr for Azure Service Bus, see the related issues for details: https://github.com/dapr/components-contrib/issues/1161
https://github.com/dapr/components-contrib/issues/289

authors: adeliab jjcollinge

repo: dapr/dapr


text:
panic: runtime error: invalid memory address or nil pointer dereference

macos   10.15.7
CLI version: 1.9.1
Runtime version: 1.9.3
dapr run --app-id dicom-service --app-port 3000 --app-protocol http --dapr-http-port 3001  --dapr-http-max-request-size 1024 --dapr-grpc-port 3002  node .
curl http://localhost:3001/v1.0/invoke/dicom-service/method/series
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x44caea9]
goroutine 162 [running]:
github.com/dapr/dapr/pkg/messaging.(*directMessaging).getRemoteApp(0xc00017a0c0, {0xc000ae4be0?, 0x8020102?})
/Users/runner/work/dapr/dapr/pkg/messaging/direct_messaging.go:309 +0xc9
github.com/dapr/dapr/pkg/messaging.(*directMessaging).Invoke(0xc00017a0c0, {0x5cf1208, 0xc000f08600}, {0xc000ae4be0?, 0x203000?}, 0xc00064b620?)
/Users/runner/work/dapr/dapr/pkg/messaging/direct_messaging.go:126 +0x56
github.com/dapr/dapr/pkg/http.(*api).onDirectMessage.func1({0x5cf1208, 0xc000f08600})
/Users/runner/work/dapr/dapr/pkg/http/api.go:1390 +0xba
github.com/dapr/dapr/pkg/resiliency.(*NoOp).EndpointPolicy.func1(0x53dd0f8?)
/Users/runner/work/dapr/dapr/pkg/resiliency/noop.go:36 +0x27
github.com/dapr/dapr/pkg/http.(*api).onDirectMessage(0xc0006da000, 0xc000f08600)
/Users/runner/work/dapr/dapr/pkg/http/api.go:1389 +0x6d6
github.com/fasthttp/router.(*Router).Handler(0xc00039a460, 0xc000f08600)
/Users/runner/go/pkg/mod/github.com/fasthttp/router@v1.4.12/router.go:427 +0x871
github.com/dapr/dapr/pkg/diagnostics.(*httpMetrics).FastHTTPMiddleware.func1(0xc000f08600)
/Users/runner/work/dapr/dapr/pkg/diagnostics/http_monitoring.go:227 +0x13b
github.com/dapr/dapr/pkg/diagnostics.HTTPTraceMiddleware.func1(0xc000f08600)
/Users/runner/work/dapr/dapr/pkg/diagnostics/http_tracing.go:56 +0x1ad
github.com/valyala/fasthttp.(*Server).serveConn(0xc0006d66c0, {0x5d04c10?, 0xc00064e300})
/Users/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.40.0/server.go:2311 +0x1268
github.com/valyala/fasthttp.(*workerPool).workerFunc(0xc00055cd20, 0xc0006faa20)
/Users/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.40.0/workerpool.go:224 +0xa9
github.com/valyala/fasthttp.(*workerPool).getCh.func1()
/Users/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.40.0/workerpool.go:196 +0x38
created by github.com/valyala/fasthttp.(*workerPool).getCh
/Users/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.40.0/workerpool.go:195 +0x1b0
❌  The daprd process exited with error code: exit status 2

The line that panics is
https://github.com/dapr/dapr/blob/576ac0348e56e25b906d9e7a5c817db451cc5b34/pkg/messaging/direct_messaging.go#L309-L310
Which means that the resolver was not initialized.
@JY29 how are you running Dapr? I see it's the Mac version (/Users/runner...), so I presume it's self-hosted. Have you configured any special nameresolver?
Can you please post the full logs from Dapr up until the crash?

@ItalyPaleAle thank you for your reply. I found that there is some problem with my config of name resolution using consul.I change it back to mDNS and it works.

@JY29 Glad you solved it! However, could you still provide the logs? I’d like to understand if we can fix the issue with consul.

@ItalyPaleAle  thanks for your profession help.The problem is just because my consul serivce crashed down but I didn't find it.Hope my logs can help you.
Here is the logs from startup to crash .
jy@jys-MacBook-Pro dicom-service % dapr run --app-id test --dapr-http-port 3501
WARNING: no application command found.
ℹ  Starting Dapr with id test. HTTP Port: 3501. gRPC Port: 58449
ℹ  Checking if Dapr sidecar is listening on HTTP port 3501
INFO[0000] starting Dapr Runtime -- version 1.8.1 -- commit f2583aa5cf166d83bedc129dfbbd720f100d73d2  app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
INFO[0000] log level set to: info                        app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
INFO[0000] metrics server started on :58450/             app_id=test instance=jys-MacBook-Pro scope=dapr.metrics type=log ver=1.8.1
INFO[0000] standalone mode configured                    app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
INFO[0000] app id: test                                  app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
INFO[0000] mTLS is disabled. Skipping certificate request and tls validation  app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
ERRO[0000] failed to initialize name resolution resolver consul: failed to register consul service: Put "http://127.0.0.1:8500/v1/agent/service/register": dial tcp 127.0.0.1:8500: connect: connection refused  app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
WARN[0000] failed to init name resolution: failed to register consul service: Put "http://127.0.0.1:8500/v1/agent/service/register": dial tcp 127.0.0.1:8500: connect: connection refused  app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
INFO[0000] loading components                            app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
INFO[0000] component loaded. name: pubsub, type: pubsub.redis/v1  app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
INFO[0000] waiting for all outstanding components to be processed  app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
INFO[0000] detected actor state store: statestore        app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
INFO[0000] component loaded. name: statestore, type: state.redis/v1  app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
INFO[0000] all outstanding components processed          app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
INFO[0000] gRPC proxy enabled                            app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
INFO[0000] enabled gRPC tracing middleware               app_id=test instance=jys-MacBook-Pro scope=dapr.runtime.grpc.api type=log ver=1.8.1
INFO[0000] enabled gRPC metrics middleware               app_id=test instance=jys-MacBook-Pro scope=dapr.runtime.grpc.api type=log ver=1.8.1
INFO[0000] API gRPC server is running on port 58449      app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
INFO[0000] enabled metrics http middleware               app_id=test instance=jys-MacBook-Pro scope=dapr.runtime.http type=log ver=1.8.1
INFO[0000] enabled tracing http middleware               app_id=test instance=jys-MacBook-Pro scope=dapr.runtime.http type=log ver=1.8.1
INFO[0000] http server is running on port 3501           app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
INFO[0000] The request body size parameter is: 4         app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
INFO[0000] enabled gRPC tracing middleware               app_id=test instance=jys-MacBook-Pro scope=dapr.runtime.grpc.internal type=log ver=1.8.1
INFO[0000] enabled gRPC metrics middleware               app_id=test instance=jys-MacBook-Pro scope=dapr.runtime.grpc.internal type=log ver=1.8.1
INFO[0000] internal gRPC server is running on port 58454  app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
WARN[0000] app channel is not initialized. did you make sure to configure an app-port?  app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
INFO[0000] actor runtime started. actor idle timeout: 1h0m0s. actor scan interval: 30s  app_id=test instance=jys-MacBook-Pro scope=dapr.runtime.actor type=log ver=1.8.1
WARN[0000] app channel not initialized, make sure -app-port is specified if pubsub subscription is required  app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
WARN[0000] failed to read from bindings: app channel not initialized   app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
INFO[0000] dapr initialized. Status: Running. Init Elapsed 30.956ms  app_id=test instance=jys-MacBook-Pro scope=dapr.runtime type=log ver=1.8.1
ℹ  Checking if Dapr sidecar is listening on GRPC port 58449
ℹ  Dapr sidecar is up and running.
✅  You're up and running! Dapr logs will appear here.
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x22e1349]
goroutine 134 [running]:
github.com/dapr/dapr/pkg/messaging.(*directMessaging).getRemoteApp(0xc00066e8c0, {0xc000b45178?, 0x6000105?})
/Users/runner/work/dapr/dapr/pkg/messaging/direct_messaging.go:310 +0xc9
github.com/dapr/dapr/pkg/messaging.(*directMessaging).Invoke(0xc00066e8c0, {0x56b8508, 0xc000eea580}, {0xc000b45178?, 0x203000?}, 0xc00111ee40?)
/Users/runner/work/dapr/dapr/pkg/messaging/direct_messaging.go:126 +0x56
github.com/dapr/dapr/pkg/http.(*api).onDirectMessage.func1({0x56b8508, 0xc000eea580})
/Users/runner/work/dapr/dapr/pkg/http/api.go:1392 +0xba
github.com/dapr/dapr/pkg/resiliency.(*NoOp).EndpointPolicy.func1(0x4eb9387?)
/Users/runner/work/dapr/dapr/pkg/resiliency/noop.go:36 +0x27
github.com/dapr/dapr/pkg/http.(*api).onDirectMessage(0xc000cf1cc0, 0xc000eea580)
/Users/runner/work/dapr/dapr/pkg/http/api.go:1391 +0x6e3
github.com/fasthttp/router.(*Router).Handler(0xc000dca1c0, 0xc000eea580)
/Users/runner/go/pkg/mod/github.com/fasthttp/router@v1.3.8/router.go:427 +0x871
github.com/dapr/dapr/pkg/diagnostics.(*httpMetrics).FastHTTPMiddleware.func1(0xc000eea580)
/Users/runner/work/dapr/dapr/pkg/diagnostics/http_monitoring.go:195 +0x13b
github.com/dapr/dapr/pkg/diagnostics.HTTPTraceMiddleware.func1(0xc000eea580)
/Users/runner/work/dapr/dapr/pkg/diagnostics/http_tracing.go:56 +0xef
github.com/valyala/fasthttp.(*Server).serveConn(0xc0006c5800, {0x56c71e8?, 0xc000f041c8})
/Users/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.31.1-0.20211216042702-258a4c17b4f4/server.go:2293 +0x1268
github.com/valyala/fasthttp.(*workerPool).workerFunc(0xc000eaa0a0, 0xc000de07c0)
/Users/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.31.1-0.20211216042702-258a4c17b4f4/workerpool.go:223 +0xa9
github.com/valyala/fasthttp.(*workerPool).getCh.func1()
/Users/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.31.1-0.20211216042702-258a4c17b4f4/workerpool.go:195 +0x38
created by github.com/valyala/fasthttp.(*workerPool).getCh
/Users/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.31.1-0.20211216042702-258a4c17b4f4/workerpool.go:194 +0x1b0
❌  The daprd process exited with error code: exit status 2
ℹ
terminated signal received: shutting down
❌  Error exiting Dapr: exit status 2

Thanks for sharing this.
Looks like Dapr failed to initialize name resolution (probably because Consul had crashed), but then it continued with the startup sequence.
We should probably implement better handling of errors in that case.


text:
Appcallback versioning for HTTP - Decision record

Description
Appcallback versioning for HTTP - Decision record for rejection
Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #1678
Checklist
Please make sure you've  completed the relevant tasks for this PR, out of the following list:

[ ] Code compiles correctly
[ ] Created/updated tests
[ ] Unit tests passing
[ ] End-to-end tests passing
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Specification has been updated / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Provided sample for the feature / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

@vinayada1 please update this doc in this pr. - https://github.com/dapr/dapr/blob/master/docs/decision_records/decision_records.md


text:
Add docs for run dapr without cli.

Thank you for helping make the Dapr documentation better!
Please follow this checklist before submitting:

[x] Read the contribution guide
[x] Commands include options for Linux, MacOS, and Windows within codetabs
[x] New file and folder names are globally unique
[x] Page references use shortcodes instead of markdown or URL links
[x] Images use HTML style and have alternative text
[x] Places where multiple code/command options are given have codetabs

In addition, please fill out the following to help reviewers understand this pull request:
Description
Contains documentation which describe how to run Dapr in Kubernetes without CLI or Helm and without operator.
Issue reference
dapr/dapr#2865

@yaron2 could you take a look at this please?

@msfussell @AaronCrawfis @yaron2 - Looks like comment are addressed, can you approve or provide more comments?

When I read this article, I am unsure of the scenario, whether this is targeting just development scenarios or for production? The article needs to says when to do this, as I presume that this is only for local development, given that only the Dapr Placement service is deployed and not the other three Dapr control plane services. Can you explain more your intention of when someone would use this?

The assumption that you need the control plane components to run in production is false.
In self hosted mode, you can run production workloads with only the Dapr sidecar process and nothing else, depending on your use case you can add optional components (placement if you need actors, sentry if you need mTLS).

When I read this article, I am unsure of the scenario, whether this is targeting just development scenarios or for production? The article needs to says when to do this, as I presume that this is only for local development, given that only the Dapr Placement service is deployed and not the other three Dapr control plane services. Can you explain more your intention of when someone would use this?

The problem is that we faced a situation when we need to run DAPR in the OpenShift project without the ability to get all permissions to run the operator.
The solution is a new mode for Dapr runtime. It loads configuration from the file as Standalone mode and uses DNS instead of mDNS to resolve app location as in Kubernetes mode.

Could you reopen this PR or I should create new one?

Could you reopen this PR or I should create a new one?

I'll reopen & make sure to review with the maintainers tomorrow during our triage meeting

Could you reopen this PR or I should create a new one?

I'll reopen & make sure to review with the maintainers tomorrow during our triage meeting

Thanks a lot. I address all comments.

Converting to draft until https://github.com/dapr/dapr/pull/2903 is resolved

Guys, I address all comments. Have any concerns about this PR?

Guys, I address all comments. Have any concerns about this PR?

@abogdanov37 we're still waiting on https://github.com/dapr/dapr/pull/2903 to merge before we merge the docs, which is waiting on https://github.com/dapr/components-contrib/pull/743. Once those two are merged we can merge this. Thanks!

Still waiting on https://github.com/dapr/dapr/pull/2903

@abogdanov37 I just want to get crisp on the implementation here.
You allow Dapr to internally discover the k8s services of other Dapr instances with this DNS pattern: myid-dapr.abc.svc:1234.
Is this not identical to the regular Kubernetes DNS? Dapr today allows you to find and discover services both in the namespace of the caller app and also in a different namespace.

@abogdanov37 I just want to get crisp on the implementation here.
You allow Dapr to internally discover the k8s services of other Dapr instances with this DNS pattern: myid-dapr.abc.svc:1234.
Is this not identical to the regular Kubernetes DNS? Dapr today allows you to find and discover services both in the namespace of the caller app and also in a different namespace.
Hi! I wrote about it earlier.

In Kubernetes name resolver added suffix cluster.local which is not common
I need the ability to run solution without Kubernetes and without mDNS for this I add PR https://github.com/dapr/components-contrib/pull/858

Closing as dapr/dapr issue was closed

repo: dapr/docs


text:
Install upgraded NuGet client (2.8)

@sweitzel74 This upgrade the Nuget client version to the latest. This is a WIP and needs some additional testing as it may require us to take action in our solutions where Nuget is used.
Previous behavior was to enable automatic package restore via an environment variable, however MS has changed their stance on package restoration and is on by default now. Newer versions of Nuget integrate much better with VS, this upgrades the Nuget client included in VisualStudio using the VSIX installer.

Don't really need this and it fails to build, so closing for now. We can revisit later if needed.

repo: daptiv/visualstudio


text:
Issue with schema validation

I have provided the schema as follows:
var expectSchema = {
type: "object",
properties: {
Host : {type: 'string'},
origin : {type: 'string'},
link : {type: 'string'},
},
required: [
'Host',
'link',
'origin'
]
};
I get the below error:

Chakram Validate the returned JSON schema:
AssertionError: expected body to match JSON schema {
"type": "object",
"properties": {
"Host": {
"type": "string"
},
"origin": {
"type": "string"
},
"link": {
"type": "string"
}
},
"required": [
"Host",
"link",
"origin"
]

.
error: Invalid type: undefined (expected object).
data path: .
schema path: /type.
........................pm ERR! Test failed.  See above for more details.
Any thought about the error?

Could you provide the data structure you are validating

This is the schema:
var expectSchema = {
"type":"object",
properties: {
created_at: {type: 'string'},
created_by: {type: 'number'},
description: {type: 'string'}
},
required: [
'description',
'created_by'
]
};
JSON Response to validate:
{ collaborators: null,
created_at: '2016-05-11T15:29:27Z',
created_by: '************',
description: 'Source edited by Test',
name: 'abc',
updated_at: '2016-05-11T15:29:27Z',
updated_by: '**********' }

@syed12304 Looking at your schema, you've stated that created_by is a number, but in the object you're  passing, created_by is a string.  Failing JSON schema validation in this case is expected behaviour, therefore I will be closing this issue.  If you think this demonstrates a problem/shortcoming with chakram, please feel free to reopen.

changing the created_by schema as string also returns the same error...

what error are you getting?

error: Invalid type: undefined (expected object).
data path: .
schema path: /type.
........................pm ERR! Test failed. See above for more details.

Could you please advise how this issue was resolved?

Did anyone get this issue resolved?

If you get undefined, most likely your response object is empty.
Maybe you get a 401 (Unauthorized) response with an empty (so undefined) body.

authors: Wilt asosa9991 dareid harryrose skhromchenko syed12304

repo: dareid/chakram


text:
Build failed with latest nightly Rust

Hello there!
Could you please consider adding support for the latest nightly version of Rust in your crate? This would greatly benefit developers who rely on nightly features for their projects.
Thank you for your attention to this matter.
To Reproduce
#23 839.6    Compiling rust-ipfs v0.10.4 (https://github.com/dariusc93/rust-ipfs.git?branch=libp2p-next#ced0237b)
#23 845.7 error[E0277]: `core::fmt::rt::Opaque` cannot be shared between threads safely
#23 845.7    --> /usr/local/cargo/git/checkouts/rust-ipfs-8623051e16f56fb9/ced0237/src/task.rs:277:13
#23 845.7     |
#23 845.7 277 | /             tokio::task::spawn(async move {
#23 845.7 278 | |                 debug!("stopping session {}", ctx);
#23 845.7 279 | |                 if let Some(workers) = workers {
#23 845.7 280 | |                     debug!("stopping workers {} for session {}", workers.len(), ctx);
#23 845.7 ...   |
#23 845.7 295 | |                 debug!("session {} stopped", ctx);
#23 845.7 296 | |             });
#23 845.7     | |______________^ `core::fmt::rt::Opaque` cannot be shared between threads safely
#23 845.7     |
#23 845.7     = help: the trait `Sync` is not implemented for `core::fmt::rt::Opaque`, which is required by `{async block@/usr/local/cargo/git/checkouts/rust-ipfs-8623051e16f56fb9/ced0237/src/task.rs:277:32: 296:14}: std::marker::Send`
#23 845.7     = note: required for `&core::fmt::rt::Opaque` to implement `std::marker::Send`
#23 845.7 note: required because it appears within the type `core::fmt::rt::Argument<'_>`
#23 845.7    --> /rustc/f4b771bf1fb836392e1c510a625cdc81be09c952/library/core/src/fmt/rt.rs:75:12
#23 845.7     = note: required because it captures the following types: `&beetle_bitswap_next::client::session_manager::SessionManager`, `u64`, `&{closure@beetle_bitswap_next::client::session_manager::SessionManager::remove_session::{closure#0}::{closure#0}}`, `tracing::field::Iter`, `&FieldSet`, `&Field`, `Field`, `&[&str]`, `core::fmt::rt::Argument<'_>`, `impl futures::Future<Output = tokio::sync::RwLockReadGuard<'_, ahash::hash_map::AHashMap<u64, Session>>>`, `tracing::log::Level`, `tracing::log::Metadata<'_>`, `&tracing::Metadata<'_>`, `&dyn tracing::log::Log`, `tracing::log::Metadata<'_>`, `tracing::field::Iter`, `&FieldSet`, `&Field`, `Field`, `&[&str]`, `core::fmt::rt::Argument<'_>`, `impl futures::Future<Output = tokio::sync::RwLockReadGuard<'_, ahash::hash_map::AHashMap<u64, Session>>>`, `Vec<CidGeneric<64>>`, `impl futures::Future<Output = Vec<CidGeneric<64>>>`, `impl futures::Future<Output = ()>`, `impl futures::Future<Output = tokio::sync::RwLockWriteGuard<'_, ahash::hash_map::AHashMap<u64, Session>>>`
#23 845.7 note: required because it's used within this `async` fn body
#23 845.7    --> /usr/local/cargo/git/checkouts/rust-ipfs-8623051e16f56fb9/ced0237/packages/beetle-bitswap-next/src/client/session_manager.rs:175:71
#23 845.7     |
#23 845.7 175 |       pub async fn remove_session(&self, session_id: u64) -> Result<()> {
#23 845.7     |  _______________________________________________________________________^
#23 845.7 176 | |         debug!(
#23 845.7 177 | |             "stopping session {} ({} sessions)",
#23 845.7 178 | |             session_id,
#23 845.7 ...   |
#23 845.7 189 | |         Ok(())
#23 845.7 190 | |     }
#23 845.7     | |_____^
#23 845.7     = note: required because it captures the following types: `Session`, `usize`, `impl futures::Future<Output = Result<(), anyhow::Error>>`, `session::Inner`, `tokio::task::JoinHandle<()>`
#23 845.7 note: required because it's used within this `async` fn body
#23 845.7    --> /usr/local/cargo/git/checkouts/rust-ipfs-8623051e16f56fb9/ced0237/packages/beetle-bitswap-next/src/client/session.rs:182:43
#23 845.7     |
#23 845.7 182 |       pub async fn stop(self) -> Result<()> {
#23 845.7     |  ___________________________________________^
#23 845.7 183 | |         let count = Arc::strong_count(&self.inner);
#23 845.7 184 | |         info!("stopping session {} ({})", self.inner.id, count,);
#23 845.7 185 | |         ensure!(
#23 845.7 ...   |
#23 845.7 207 | |         Ok(())
#23 845.7 208 | |     }
#23 845.7     | |_____^
#23 845.7     = note: required because it captures the following types: `std::option::Option<Session>`, `impl futures::Future<Output = std::option::Option<Session>>`, `impl futures::Future<Output = Result<(), anyhow::Error>>`
#23 845.7 note: required because it's used within this `async` fn body
#23 845.7    --> /usr/local/cargo/git/checkouts/rust-ipfs-8623051e16f56fb9/ced0237/packages/beetle-bitswap-next/src/client.rs:317:69
#23 845.7     |
#23 845.7 317 |       pub async fn stop_session(&self, session_id: u64) -> Result<()> {
#23 845.7     |  _____________________________________________________________________^
#23 845.7 318 | |         if let Some(session) = self.session_manager.get_session(session_id).await {
#23 845.7 319 | |             session.stop().await?;
#23 845.7 320 | |         }
#23 845.7 321 | |
#23 845.7 322 | |         Ok(())
#23 845.7 323 | |     }
#23 845.7     | |_____^
#23 845.7     = note: required because it captures the following types: `Vec<(futures::futures_channel::oneshot::Sender<()>, tokio::task::JoinHandle<()>)>`, `std::vec::IntoIter<(futures::futures_channel::oneshot::Sender<()>, tokio::task::JoinHandle<()>)>`, `std::option::Option<(futures::futures_channel::oneshot::Sender<()>, tokio::task::JoinHandle<()>)>`, `tokio::task::JoinHandle<()>`, `impl futures::Future<Output = Result<(), anyhow::Error>>`
#23 845.7 note: required because it's used within this `async` block
#23 845.7    --> /usr/local/cargo/git/checkouts/rust-ipfs-8623051e16f56fb9/ced0237/src/task.rs:277:32
#23 845.7     |
#23 845.7 277 |               tokio::task::spawn(async move {
#23 845.7     |  ________________________________^
#23 845.7 278 | |                 debug!("stopping session {}", ctx);
#23 845.7 279 | |                 if let Some(workers) = workers {
#23 845.7 280 | |                     debug!("stopping workers {} for session {}", workers.len(), ctx);
#23 845.7 ...   |
#23 845.7 295 | |                 debug!("session {} stopped", ctx);
#23 845.7 296 | |             });
#23 845.7     | |_____________^
#23 845.7 note: required by a bound in `tokio::spawn`
#23 845.7    --> /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/task/spawn.rs:166:21
#23 845.7     |
#23 845.7 164 |     pub fn spawn<F>(future: F) -> JoinHandle<F::Output>
#23 845.7     |            ----- required by a bound in this function
#23 845.7 165 |     where
#23 845.7 166 |         F: Future + Send + 'static,
#23 845.7     |                     ^^^^ required by this bound in `spawn`
#23 845.7
#23 845.8 For more information about this error, try `rustc --explain E0277`.
#23 845.8 error: could not compile `rust-ipfs` (lib) due to 1 previous error

Environment (please complete the following information)

Operating system, kernel version where applicable: Windows 10 / Debian 12
Rust version: 1.79.0-nightly, nightly-x86_64-pc-windows-msvc

Hi there! Thank you for the report. I was able to build rust-ipfs with rustc 1.79.0-nightly (3c85e5624 2024-03-18). Could you confirm your the nightly branch youre using or try the latest nightly (if its applicable for your environment)?

Great to hear! Thank you!


text:
Improvements to SOS compatibility for females

Replaced hard-coded check for the UNP addon with an exclusion list of known fake addons.
In case of valid addon, set actor enabled for both roles. (This works due to the position-check.)
Added fallback to female if SOS is not installed. (Currently does not seem to assign anything.)

sweet, i'll try to get some testing in this weekend.

authors: NeonXenoN bobmagicii

repo: darkconsole/soulgem-oven-the-third


text:
DI throws but renaming component class fixes it

class ProfileSummariesComponent {
  SearchPagerShared pager;
  ProfileSummariesComponent(this.pager);
}

throws
EXCEPTION: No provider found for SearchPagerShared.

Renaming the component class to XProfileSummariesComponent fixes the problem.
To me this looks like a caching problem where somehow some invalid information is used.
But killing pub serve, deleting .pub in the project directory, and ~/.dartServer didn't fix it.
Where else could it be cached?

Seems it's not related to caching.
It seems just random changes to fix the exception.

This is in 3x, right?

This is
Angular 3.1.0
Dart VM version: 1.25.0-dev.4.0 (Thu Jun 29 02:23:46 2017) on "macos_x64"

I regret to inform you that the few folks with the most knowledge of barback/pub transformers are on vacation, so it's unlikely anyone will be able to help address this in the next week or so.
/cc @natebosch @jakemac53 for when they are back and @kevmoo for triage.

Is angular_components for Angular 4.0 near?
If it would be available I could at least try if 4.0 fixes the problem.

I imagine you could create a fork and s/angular2/angular and it would just work.
But I don't have any other information available re: timing.

I thought about that. Thanks for confirming that you think this could work.

I have a confirmation internally it does, or at least did :)
We might be able to get out angular_components  w/ 4.0.0-alpha support relatively soon.

To make sure I'm clear - the issue here is that failures are not consistent, that it's possible to get into a state where there are failures on code that otherwise should succeed?
Can you reliably repro this?

@natebosch The project is currently in a status where it reliably fails.
While making arbitrary changes it started to work yesterday, but I have no reliable way to make it work now.
The changes that yesterday seemed to have "fixed" the problem don't help anymore.
I tried to make a minimal reproduction of the exception in a new project, but wasn't able to reproduce. In this project similar code works just fine.
(The project is a customer project consisting of several Dart packages.)
The behavior seems similar to what I mentioned in #351 or https://github.com/dart-lang/angular/issues/348
where some errors seem to have been swallowed somewhere in pub serve or transformers which led to a similar weird behavior.

angular_components was released with 4.0.0 support.
I'm marking as closed as we can't do anything else from our end without seeing the app.

authors: matanlurey natebosch zoechi

repo: dart-lang/angular

license: MIT


text:
Router shouldn't rebuild parent route when only leaf route changes

Consider the following route hierarchy
  '/parent' : ParentComponent
    '/child-a' : ChildAComponent
    '/child-b' : ChildBComponent

If we're at '/parent/child-a', and we navigate to '/parent/child-b', only the leaf component ChildAComponent should be destroyed and replaced with ChildBComponent. However, currently the router will destroy and rebuild ParentComponent as well if it doesn't extend CanReuse.
Rather than requiring the component to opt-in to this behavior, it should be made the default. Only portions of the route that change should be destroyed and replaced.

Is this something that we think we'll be able to change in the current router, or is it now considered WAI?

I think at this point it would be too breaking, despite being a better behavior. We can close this and consider it a feature of any refactor or newer version we do in the future.

authors: alorenzen leonsenft


text:
Start on a formal syntax guide.

/cc @jonahwilliams
This can eventually replace GRAMMAR.md (just experimenting with formatting, really)

@jonahwilliams We should have a ebnf file. Filed: https://github.com/dart-lang/angular2/issues/139


text:
Multiple Translations

If in your application you import a package, which is translated
and in your application create a translation, you get:
Duplicated library name 'messages_all'.
library messages_all;
when using the generate_from_arb functionality.
This applies also to the library in the translated files, e.g. messages_es
The cause is that in generate_localized.dart, the library name(s) are hardcoded.
generate_from_arb.dart allows to specify a file prefix, e.g.
--generated-file-prefix=base-
I suggest to use the file prefix also for the library names.

I use https://github.com/Innim/flutter_multiple_localization to load and override messages

It’s been 9 years and this problem still exists 😭

It’s been 9 years and this problem still exists 😭

Which is why we are working on it in package:messages! :)

It’s been 9 years and this problem still exists 😭

Which is why we are working on it in package:messages! :)

I found the code that caused the current bug in the source code of intl package
Since the messageLookup used by multiple packages is the same object, it causes other packages to return when they are initialized.

authors: azhon goxiaoy jorgjanke mosuem


text:
Warn with using env without env: global: in custom config

Since the individual jobs use env it's not safe to have an environment configured at the top level without using global. This is an easy mistake to make so we should detect that it's happening and warn.

Good idea! PRs welcome. :-)
On Mon, Apr 8, 2019 at 3:57 PM Nate Bosch notifications@github.com wrote:

Since the individual jobs use env it's not safe to have an environment
configured at the top level without using global. This is an easy mistake
to make so we should detect that it's happening and warn.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dart-lang/mono_repo/issues/141, or mute the thread
https://github.com/notifications/unsubscribe-auth/AABCis8vnSioUhC7wgSw4iqFB62PzZ34ks5ve8l0gaJpZM4cjRHP
.

authors: kevmoo natebosch


text:
Document mirrorsused w/ advanced article

Post 1.0 we should have a 201/301 article on how to shrink your app's JavaScript size with MirrorsUsed. Probably part of a holistic effort to fully sweep through and document mirrors.

Can this be closed?
Is that this? https://www.dartlang.org/articles/reflection-with-mirrors/

Thanks for checking into this. We can close this issue.

authors: sethladd srawlins

repo: dart-lang/sdk


text:
Support building server-side applications with "pub build"

There's user desire to support server-side applications with "pub build". We should figure out a general flow for this, how users specify it versus building client-side applications (or both at once), whether it uses dart2js or VM snapshots, etc.
See also issue #15254.

This issue has been moved to dart-lang/pub#1066.


text:
Extends clause for class Object is permitted

According to specification (3-rd edition, June 2015) "10.9 Superclasses":
"It is a compile-time error to specify an extends clause for class Object."
However test below is compiled and executed successfully.
class A { int b = 1; }
class Object extends A {}
main() {
  A a = new Object();
  Object o = new Object();
  print(a.b);
  print(o.b);
}

dart test
1
1

Tested on Dart VM version: 1.13.0-dev.7.3 (Fri Oct 23 04:39:45 2015) on "linux_x64"

The specification states that references to specific names always refer to the member of that name in the dart:core library, so in this case it is only saying that it's an error if Object in dart:core specifies a superclass (which, luckily, it doesn't).

References to otherwise unspecified names of program entities (such as
classes or functions) are interpreted as the names of members of the Dart core
library.

authors: lrhn ngolovleva


text:
await for loop unexpectedly terminates the program

Asynchronous for-in loop unexpectedly terminates the program.
The following code demonstrates the problem:
import 'dart:async';

Future test() async {
  StreamController<String> sc = new StreamController<String>();
  sc.add('a');
  sc.add('b');
  await for (String s in sc.stream){
    print("in loop: $s");
  }
  print("after loop");
  return "passed";
}

main() {
  print("test start");
  test().then((v) => print("test result: $v"))
    .then((v) => print("test finish"));
}

Expected output:

test start
in loop: a
in loop: b
after loop
test result: passed
test finish

Actual output:

test start
in loop: a
in loop: b

Dart VM version: 1.12.2 (Wed Oct 21 07:10:52 2015) on "windows_x64"

This is a known problem (see #23797) - your program has a deadlock. You are await-for'ing a stream that never terminates (there is no sc.close() call), so the loop waits forever for the next event to arrive.
Or rather, being slightly smarter than you would expect, the VM detects that there are no open ports, no scheduled timers and no waiting microtasks, and decides that the program is done, so it can shut down.
An async program is executed as a sequence of top-level events/microtasks triggered by previous work or outside influences. In this case the events are

main()
event "a"
event "b"

... and that's it. After that, there are no further events, and no without that, no way to introduce new events, so the VM closes down just as it would after a successfully run program. It doesn't distinguish between different reasons for running out of events.

Closing since it's a duplicate.

authors: alsemenov lrhn mhausner


text:
Unable to code complete a named param in a constructor that already has params

Flutter uses named params all over the place, and so we'd love some help to make this better.
Here's the example code:
class Foo {
  String name;
  int number;
  Foo({this.name, this.number});
}

main() {
  var f = new Foo(

    number: 1);
}

Looks like the analyzer server isn't sending code completion options when you try to code complete from within a constructor that already has some named params declared.
Take this example behavior:

In the above, I would expect to see name: String as an option at the top.
If I try to code complete inside an empty constructor, I do get named param options:

Notice this behavior is consistent in dartpad and webstorm, so I'm guessing (?) this is an Analyzer Server thing, and not just an Atom thing.

We'd love to give our users the ability to code complete a named parameter.
Also, can we show the type of the named param? In all cases (atom, webstorm, dartpad) the type is not shown.
Thanks for taking a look!

@danrubel

I am close to having a pull request to fix this, I hope to have it fixed and committed within a few days.

Thanks!
I might also add, not only would I expect to see name: String as the first option, I also would not expect to see bool or const in the list. The only thing I can put in there is name: something.

https://codereview.chromium.org/1806113002/

Fix has been landed, https://codereview.chromium.org/1806113002/

authors: bwilkerson jwren sethladd


text:
Strong mode generic methods not being recognized in analysis server

The program below produces no analyzer errors with 1.16.0-dev.1.0 in both server and command line mode.
In 1.16.0-edge.a48732a03daae87455ce6a70d589b7fd3d06e730 I still see no errors in command line mode, but in server mode (via intellij) I see warnings and errors suggesting that the text of the program is being analyzed in strong mode, but against a non-strong mode SDK.
Map<String, int> _icons;

List<String> get iconNames {
  final String iconSetPrefix = "hello";
  return _icons.keys.map/*<String>*/((String id) => '$iconSetPrefix$id').toList();
}

cc @bwilkerson @zoechi

An example I just ran into:
List makeTuple(int x) => [x, x.toString()];

main() {
  List<int> items = [1, 2, 3];
  Iterable<List> mapped = items.map(makeTuple);
  List<List> tuples = mapped.toList();
  print(tuples);
}

The error I see is:
Unsound implicit cast from Iterable<dynamic> to Iterable<List<dynamic>> - map_test.dart, line 5

I'm trying to bisect this in the background while I work on other things, hopefully will be able to point to a commit soon.

I worked around it by writing a for loop.

@scheglov has diagnosed the issue.

@devoncarew this may affect Atom as well.

Using Dart SDK summary, which was causing the problem, was disabled.
https://github.com/dart-lang/sdk/commit/08989ce327510eaf63a2609509f3e7052563f07b
We're working on making a change to make using SDK summary compatible with the strong mode.

I think choosing correct spec/strong SDK summary was fixed.
https://github.com/dart-lang/sdk/commit/c675ba270f144e5055d70bd41612f67decfb7540

authors: leafpetersen scheglov skybrian


text:
Fasta code is has strong mode analyzer errors after interface fix

The CL https://codereview.chromium.org/2981183003 fixed strong mode type checking for all interface inheritance, and exposed errors in the analyzer code.
The test dart2js/analyze_test is now marked as "Slow, Fail" in tests/compiler/dart2js/dart2js.status
The test pkg/front_end/test/fasta/analyze_test is now marked as failing in pkg/pkg.status.
This needs to be fixed so we can restore strong-mode testing of fasta and analyzer

The log showing the errors is at https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Fclient.dart%2Fvm-kernel-mac-release-x64-be%2F619%2F%2B%2Frecipes%2Fsteps%2Ffront-end_tests%2F0%2Fstdout
And the errors are:
FAILED: none-vm-checked release_x64 pkg/front_end/test/fasta/analyze_test
Expected: Pass Slow
Actual: Fail
CommandOutput[vm]:
stdout:
tools/patch_sdk.dart utils/kernel-service/kernel-service.dart
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/elements/modelx.dart:254:3: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE] Invalid override. The type of 'ErroneousElementX.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/elements/modelx.dart:253:3: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE] Invalid override. The type of 'ErroneousElementX.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart:367:3: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE] Invalid override. The type of 'KernelAstAdapter.getConstructorBody' ('(Constructor) → MemberEntity') isn't a subtype of 'KernelToElementMapForBuilding.getConstructorBody' ('(Constructor) → FunctionEntity').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1698:32: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1360:45: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1042:37: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.origin' ('() → Element') isn't a subtype of 'ClassElement.origin' ('() → ClassElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1864:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1820:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1360:45: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1698:32: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1335:34: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1864:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1820:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1859:28: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1815:28: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1353:34: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1708:32: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1042:37: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.declaration' ('() → Element') isn't a subtype of 'ClassElement.declaration' ('() → ClassElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1042:37: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.patch' ('() → Element') isn't a subtype of 'ClassElement.patch' ('() → ClassElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1325:37: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1353:34: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1864:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1820:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1698:32: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1360:45: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1042:37: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.patch' ('() → Element') isn't a subtype of 'ClassElement.patch' ('() → ClassElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1353:34: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1703:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1855:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1042:37: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.origin' ('() → Element') isn't a subtype of 'ClassElement.origin' ('() → ClassElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1811:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1057:39: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.implementation' ('() → Element') isn't a subtype of 'ClassElement.implementation' ('() → ClassElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1855:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1811:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1057:39: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.implementation' ('() → Element') isn't a subtype of 'ClassElement.implementation' ('() → ClassElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1855:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1811:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1042:37: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.declaration' ('() → Element') isn't a subtype of 'ClassElement.declaration' ('() → ClassElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1855:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1811:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1057:39: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.patch' ('() → Element') isn't a subtype of 'ClassElement.patch' ('() → ClassElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1703:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1057:39: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.patch' ('() → Element') isn't a subtype of 'ClassElement.patch' ('() → ClassElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1057:39: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.declaration' ('() → Element') isn't a subtype of 'ClassElement.declaration' ('() → ClassElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1703:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1057:39: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.origin' ('() → Element') isn't a subtype of 'ClassElement.origin' ('() → ClassElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1703:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1353:34: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1859:28: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1815:28: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1335:34: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1708:32: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1325:37: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1057:39: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.declaration' ('() → Element') isn't a subtype of 'ClassElement.declaration' ('() → ClassElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1042:37: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.implementation' ('() → Element') isn't a subtype of 'ClassElement.implementation' ('() → ClassElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1708:32: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1325:37: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1859:28: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1815:28: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1057:39: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.origin' ('() → Element') isn't a subtype of 'ClassElement.origin' ('() → ClassElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1698:32: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1360:45: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1042:37: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.implementation' ('() → Element') isn't a subtype of 'ClassElement.implementation' ('() → ClassElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1335:34: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1864:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1820:30: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1859:28: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1815:28: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1325:37: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1335:34: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'ElementCommon.patch' ('() → Element') isn't a subtype of 'FunctionElement.patch' ('() → FunctionElement').
/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/compiler/lib/src/serialization/modelz.dart:1708:32: error:
[STRONG_MODE_INVALID_METHOD_OVERRIDE_FROM_BASE] Base class introduces an invalid override. The type of 'Element.origin' ('() → Element') isn't a subtype of 'FunctionElement.origin' ('() → FunctionElement').
Running analyzer took: 0:01:52.971425.
stderr:
Non-empty output from analyzer.
#0      analyzeUris (package:testing/src/analyze.dart:260:5)

#1      Analyze.run (package:testing/src/analyze.dart:40:12)
#2      SuiteRunner.analyze (package:testing/src/run.dart:222:21)

#3      main. (package:testing/src/run_tests.dart:158:45)

#4      withErrorHandling (package:testing/src/error_handling.dart:16:19)

#5      main (package:testing/src/run_tests.dart:143:33)
#6      main (file:///b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/front_end/test/fasta/analyze_test.dart:12:10)
#7      _startIsolate. (dart:isolate-patch/isolate_patch.dart:265)
#8      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:151)
Command[vm]: DART_CONFIGURATION=ReleaseX64 xcodebuild/ReleaseX64/dart --enable_asserts --enable_type_checks --ignore-unrecognized-flags --packages=/b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/.packages /b/build/slave/vm-kernel-mac-release-x64-be/build/sdk/pkg/front_end/test/fasta/analyze_test.dart
Took 0:01:54.540699
Short reproduction command (experimental):
python tools/test.py -m release --checked pkg/front_end/test/fasta/analyze_test
Done none-vm-checked release_x64 pkg/front_end/test/fasta/analyze_test: fail
Done none-vm-checked release_x6

Note many of these failures are in the dart2js codebase, and they appear as false negatives to me.
I am reaching out on the original CL to follow up on this. I believe the fix might be in analyzer and not on the app itself.

Just like we can't break google3 when updating the analyzer, neither can we break existing tests.
One procedure to follow is to run tests before submitting a CL and filing P1 bugs against code bases that need to be updated. When I've worked on updating javac in google3, and when I first implemented type checking in dartc, this worked well and people were really responsive to updating their code.

agreed, I believe it was not detected so clearly because the analyzer tests on the dart2js bots were already red earlier that day from a different problem (an accidental broken import when Johnni moved a dart2js test file).
The fix is on its way

authors: peter-ahe-google sigmundch whesse


text:
Analyzer/DDC doesn't recognize Object is not callable

void main() {
  var object = new Object();
  object('Foo', 'Bar');
}

Neither in the analyzer (w/ strong-mode) or in the DDC compiler step does this fail, only runtime.

The language specification 16.14.4 Function Expression Invocation has
It is a static warning if the static type $F$ of $e_f$ may not be assigned to a function type.

where $e_f$ is the expression denoting the function which is being invoked, here object. This means that, in Dart 1.x, function invocation is allowed to rely on a downcast (to Function) in order to justify that it is a function at all.
In that sense it is similar to argument passing, initialization, etc, but more permissive than member lookup (that's presumably because there is no "natural" type to downcast x to in order to justify a member access like x.y, because there could be several subtypes with a member named y). Basically, we can rely on a downcast when the target type is well-defined.
In the concrete example, Object is ok because it is a supertype of Function.
We might want to change this for Dart 2, based on the general wish to check types more strictly.
However, the current approach seems at least to have a certain logic to it, and you could say that all these downcasts should be managed by developers using certain policies: Maybe they'll use --no-implicit-casts, maybe the IDE can make all downcasts blink ;-), or whatever.
I've created an issue for the language team to discuss this.

We discussed this a bit and agreed; the language specification was updated (5f713bdd194123e11e2b9db33dfc0f8c578a20d7) to reflect that it is now a static warning to call an Object. (All static warnings in the spec will be changed to compile-time errors soon).

Thank you!

Analyzer now prints the following for @matanlurey 's original code:

'object' isn't a function.

authors: eernstg matanlurey srawlins


text:
No way to restart the DartVM after shutdown

There must be a bug on this.  But I didn't see one.
This makes it so that Flutter can't go back to using 0 memory when the last FlutterView is closed which at least a couple folks have complained about.  See https://github.com/flutter/flutter/issues/16995.

Duplicate of #21106

authors: eseidelGoogle mraleph


text:
Request to delete package Naviagtor

Link : https://pub.dartlang.org/packages/navigate
Package have current version 0.0.5 and before it all version are useless i need to re-publish package can you please remove package from pub

Confirmed that author of this bug is author of the package's linked github repo.

Jonas, can you do this, please?

I began running the package removal script.

Okay please done
On Fri 24 Aug, 2018 5:32 pm Jonas Termansen, notifications@github.com
wrote:

I began running the package removal script.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/dart-lang/sdk/issues/34239#issuecomment-415738552,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AeOlcQ0yNf5jNKud1Rfk1OGm7bzzmcVNks5uT-s7gaJpZM4WI5Bw
.

Done. The package should now be fully removed.

authors: mit-mit ravipatel147 sortie


text:
Please merge 0fd4a51e2c805aec79d4d0e42f446f5395c6113a into dev channel

commit(s) to merge: 0fd4a51e2c805aec79d4d0e42f446f5395c6113a
merge instructions: clean merge
reason: Fixes regression since 2.0 that leads to a crash without any useful error messages on the Dart VM.
/cc @dgrove @kevmoo @mit-mit @whesse @athomas

Merged in version 2.1.0-dev.9.2

authors: peter-ahe-google whesse


text:
Error:Cannot access private library

Trying to access a web-service but added dependecies
 http: ^0.12.0
But getting below error message from compiler
Compiler message:
lib/login_web_service.dart:1:8: Error: Can't access platform private library.
import 'dart:_http';
       ^
Compiler failed on D:\GitApps\vattendance\flutter_app\lib/main.dart
Gradle task 'assembleDebug'... Done                         22.3s
Gradle task assembleDebug failed with exit code 1

Which version of Flutter are you using?

Might be related to #35009, #32300

That's an intentional error.  That file can't be imported.  Where is the import?  I don't see a lib/login_web_service.dart in package:http.
Closing as this hasn't been updated for a couple weeks.  Please re-open if further info.

you can use import 'dart:convert';

you can use import 'dart:convert';

fixed  with import 'dart:io' to use HttpHeaders

fixed with flutter clean

authors: 7uthaifah NoraMansour abhishekchaubey adelbenhamadi kevmoo malibayram91 vsmenon zoechi


text:
Crash when computing redirectee type for erroneous program with multiple equal redirecting factory constructors

The program
class Supertype {
  factory Supertype() = X;
  factory Supertype() = X; //# 01: compile-time error
}

class X implements Supertype {
  X();
}

crashes with
Crash when compiling null,
at character offset null:
NoSuchMethodError: The getter 'typeArguments' was called on null.
Receiver: null
Tried calling: typeArguments
#0      Object.noSuchMethod (dart:core/runtime/libobject_patch.dart:50:5)
#1      KernelClassBuilder.computeRedirecteeType (package:front_end/src/fasta/kernel/kernel_class_builder.dart:1496:51)
#2      KernelClassBuilder.checkRedirectingFactory (package:front_end/src/fasta/kernel/kernel_class_builder.dart:1572:9)
#3      KernelClassBuilder.checkRedirectingFactories (package:front_end/src/fasta/kernel/kernel_class_builder.dart:1724:9)
#4      SourceLoader.checkRedirectingFactories (package:front_end/src/fasta/source/source_loader.dart:875:17)
#5      KernelTarget.buildOutlines.<anonymous closure> (package:front_end/src/fasta/kernel/kernel_target.dart:287:14)
<asynchronous suspension>
#6      withCrashReporting (package:front_end/src/fasta/crash.dart:122:24
[...]

Fixed by ad62f21e5b2966a121c45d05f93a304d282c1cfd.


text:
Front-end test started to timeout

This test reports a timeout since Apr 8, but there may be an underlying issue that should be investigated, since marking it as "Slow" does not help.
(unittest-asserts-debug-linux):
pkg/vm/test/kernel_front_end_test   (RuntimeError -> Timeout, expected Pass) at ed0f2a

The test pkg/vm/test/kernel_front_end_test doesn't time out if it runs in isolation. In fact, its execution time didn't increase since March 31.
This might be related to the other tests running concurrently.

I can reproduce timeout on pkg/vm/test/kernel_front_end_test if I run
tools/test.py --print-passing-stdout  -n dartk-linux-debug-x64 pkg/vm

This command runs all pkg/vm and pkg/vm_service tests.
From the output I can see that a lot of pkg/vm_service tests are running concurrently with pkg/vm/test/kernel_front_end_test. I think execution of pkg/vm_service tests may slow down kernel_front_end_test so it doesn't finish in 30 seconds (default timeout used by package:test).

authors: alexmarkov crelier


text:
breakpoint_non_debuggable_library_test.dart makes it hard to update package:path

The test hardcodes references to lines in path.dart, so these need updating whenever package:path gets updated
https://dart-review.googlesource.com/c/sdk/+/144722
would it be possible to either remove the dependency or make it smarter, please? (...it could search the src for the right line, I guess, on the assumption that the public interface is not going to change).

@bkonyi thanks!

Not a problem! It was a quick fix :-)

authors: bkonyi davidmorgan