subscriber limit exceeded: You have exceeded the maximum number of indexed tables that can be created simultaneously

As I added more table to my schema I am getting this error and some time I get error related to maximum number of tables that can be created simultaneously. It's deleted all my previously  created tables and data in that tables.
Q1. can we Increase limits for dynamodb to create tables or indexes simultaneously?
Q2. is there any way we can prevent deletion of tables while got in to this error?
Q3 . Is it possible that it will create limited tables at time so it will not exceed limits

I have 43 tables which includes (m:n relationships tables)

Looks like a DynamoDB soft service limit, try opening a ticket with Support as demonstrated here.

@trupa7 btw if you hit up support right now (within 24 hours I believe) they will be able to restore your tables.
@yuth @kaustavghosh06 I know you all don't release roadmaps but it's hard to see how useful the API category is when a bad push can drop all your production tables, and then to make matters worse, potentially drop your AppSync API (which currently does not soft delete endpoints, so hope you didn't give that to any third parties).

@trupa7 I'm not clear as to how  all your previously created tables were deleted. Could you please explain more as to the steps to reproduce this behavior in deletion of tables with data?

@kaustavghosh06 as I added new schemas which have relationship with old tables . If creation of new tables will failed it  deletes all previously created tables which have relationship with new tables

@trupa7 Could you provide us with a before/after graphql annotated schema so that we can reproduce this behavior? Deleting of the tables isn't the intended behavior, but would like to reproduce and fix it.

@kaustavghosh06 If OP has a 43 model schema I doubt he'd be willing to share that publicly. Could you provide him an email to send the schemas?
@trupa7 maybe you're applications is extremely complex and needs that many models, but is there no way to denormalize your schema, remove nested models, etc. and overload models with indexes with the @key directive to support access patterns?
The only reason I can think of to have that many Dynamo tables is that you're doing it because currently the GQL Transformer-generated indexes project all attributes (#2577), and this is a way around that without having to fiddle with the Amp-gen stacks to not project all attributes on all indexes.

@kaustavghosh06 : I unable to share because of our company's policy. I can try to make dummy schemas to reproduce this error.

@kaustavghosh06 If OP has a 43 model schema I doubt he'd be willing to share that publicly. Could you provide him an email to send the schemas?
@trupa7 maybe you're applications is extremely complex and needs that many models, but is there no way to denormalize your schema, remove nested models, etc. and overload models with indexes with the @key directive to support access patterns?
The only reason I can think of to have that many Dynamo tables is that you're doing it because currently the GQL Transformer-generated indexes project all attributes (#2577), and this is a way around that without having to fiddle with the Amp-gen stacks to not project all attributes on all indexes.

@jkeys-ecg-nmsu : I can try to denormalize some schema but as we will add more models in future I am afraid to get same errors. It's not just models but also we have tables which contains m:n relationships as amplify don't support m:n relationship directly.

Hi Everyone,
Ahsan here from Rapticore. Thank you for your support, it is really appreciated. If it is possible lets get on a call and we will show you our schema, what we are doing and what errors we are seeing. If you still need the actual schema after that we can work something out. Again we appreciate your support. We are looking forward to making Amplify and AppSync core part of our application architecture.
Thanks,
Ahsan Mir

@ahsansmir I'm just trying to be a Good Samaritan by trying to help close issues, I am not an Amplify developer.
@kaustavghosh06 can you provide @ahsansmir @trupa7 with a private email to send the schema?

@kaustavghosh06 @jkeys-ecg-nmsu : can you please use this dummy data to reproduce the error.
Link:- https://github.com/trupa7/amplify-data/tree/master/schema

@kaustavghosh06 : I created dummy schema to reproduce this error. If you can use it and reproduce this error. Please guide  us if  we are doing something wrong or is this because it hitting the limit.
https://github.com/trupa7/amplify-data/tree/master/schema
thanks

@trupa7 Those repeating sequences within distinct field names (e.g. search for "zqd", "RFUd", "FFd") might be more revealing than you had intended. It looks to me like you posted a fun exercise in cryptography to see how much information can be reverse engineered from your obfuscated schema. Something to consider...

@trupa7 @ahsansmir @kaustavghosh06 that being said please send that obfuscated (or an actual dummy schema that replicates the behavior) to the Amplify team. For what it's worth I think you can omit almost all the fields since the error is related to creating tables concurrently (then deleting them), so that should help with intellectual property concerns.

@trupa7 Did you get a chance to talk to AWS support and increase the soft limit for DDB table creations as mentioned by @jkeys-ecg-nmsu?

@kaustavghosh06  : is it possible for you to create amplify api using following schema ?
If you get limitation error
Q1. Is there something wrong with my schema which causing this issue?
or
Q2.  it just crossing the limit so Increasing soft limit for DDB table is the only option.
type Mobile @model {
ID: ID!
ref: String!
dBag: String!
whatelse: [String]
what: String!
zara: [String]
mean: mean!
oil: oil
typeComment: String
aTT: aTT!
shacks: [String]
ThoseGuys: [ThoseGuys]
ownage: Boolean!

GetthemStatusMethod: GetthemStatusMethod
wID: Int
parentWID: Int
mitigation: String
impact: String
likelihood: String
reference: String
endpoint: String!
resolutionAdviceReasons: [String]
sources: [String]
resolutionAdvice: ResolutionAdvice!
GetthemType: GetthemType!
typeComment: String
firstReported: AWSDateTime!
lastReported: AWSDateTime!
lastUpdated: AWSDateTime!
comments: [String]
cvss: String!
rawDatum: String
mergeReasons: [String]
tags: [String]
defects: [String]
duplicateWIDs: [String]
mergedWIDs: [String]
psirtCase: ID
attachmentIDs: [String]
package: Package @connection(name: "Packagegetthem")
incIDent: IncIDent @connection(name: "IncIDentgetthem")
mobile: Mobile @connection(name: "mobilegetthem")
model: model @connection(name: "modelgetthem")
RemSLAs: [RemSLAgetthem] @connection(name: "GetthemRemSLAs")
dtable: [Getthemdtable] @connection(name: "Getthemdtable")
standardknown: [Getthemstandardknown] @connection(name: "Getthemstandardknown")
}
m:n relationship between  Getthem and dtable
type Getthemdtable @model(queries: null) {
ID: ID!
Getthem: Getthem @connection(name: "Getthemdtable")
dtable: DTable @connection(name: "dtablegetthem")
}
# m:n relationship between  Getthem and standardknown
type Getthemstandardknown @model(queries: null) {
ID: ID!
Getthem: Getthem @connection(name: "Getthemstandardknown")
standardknown: standardknown @connection(name: "standardknowngetthem")
}
Training table
type Training @model {
ID: ID!
ref: String!
dBag: String!
dateStarted: AWSDate!
dateCompleted: AWSDate!
trainingtatus: trainingtatus!
dateNextDue: AWSDate!
maintainer: Maintainer @connection(name: "Maintainertraining")
mobiles: [mobiletraining] @connection(name: "Trainingmobiles")
morses: [TrainingMorses] @connection(name: "TrainingMorses")
}
m:n relationship between  mobile and Training table
type mobiletraining @model(queries: null) {
ID: ID!
mobile: Mobile @connection(name: "mobiletraining")
Training: Training @connection(name: "Trainingmobiles")
}
Nfrlib table
type Nfrlib @model {
ID: ID!
ref: String!
dBag: String!
type: NfrLibType!
scope: NfrLibScope!
dateCreated: AWSDate!
status: NfrLibStatus!
documentUrl: String!
mobiles: [mobileNfrlibs] @connection(name: "Nfrlibmobiles")
reqts: [Reqt] @connection(name: "NfrlibReqts")
}
m:n relationship between  mobile and Nfrlib table
type mobileNfrlibs @model(queries: null) {
ID: ID!
mobile: Mobile @connection(name: "mobileNfrlibs")
nfrlib: Nfrlib @connection(name: "Nfrlibmobiles")
}
#standardknown table
type standardknown @model {
ID: ID!
ref: String!
ipAddress: String!
hostname: String!
dn: String!
dateCreated: AWSDate!
dateUpdated: AWSDate!
dateLastSeen: AWSDate!
asstat: asstat!
tags: [String]
metadata: [String]
sourceData: String!
technology: [String]
mobiles: [mobilestandardknown] @connection(name: "standardknownmobiles")
getthem: [Getthemstandardknown]     @connection(name: "standardknowngetthem")
groups: [GTablestandardknown]     @connection(name: "standardknownGTables")
incIDent: [IncIDentstandardknown]    @connection(name: "standardknownIncIDents")
packages: [Packagestandardknown]    @connection(name: "standardknownPackages")
}
# m:n relationship between  mobile and standardknown
type mobilestandardknown @model(queries: null) {
ID: ID!
mobile: Mobile    @connection(name: "mobilestandardknown")
standardknown: standardknown    @connection(name: "standardknownmobiles")
}
#store table
type storeTable @model {
ID: ID!
ref: String!
dBag: String!
whatelse: [String]
what: String!
url: String!
language: [String]
mobile: Mobile @connection
packages: [storeTablePackages] @connection(name: "storeTablePackages")
}
#Access table
type Access @model {
ID: ID!
ref: String!
dBag: String!
what: String!
entityID: ID!
entityType: String!
maintainer: Maintainer @connection(name: "MaintainerAccesses")
role: RTable @connection(name: "AccessRpleTables")
}
#RTable
type RTable @model {
ID: ID!
ref: String!
dBag: String!
what: String!
accesses: [Access] @connection(name: "AccessRpleTables")
permissions: [PTableRTables] @connection(name: "RTablePTables")
}
#Permission table
type PTable @model {
ID: ID!
ref: String!
dBag: String!
what: String!
roles: [PTableRTables] @connection(name: "PTableRTables")
}
# m:n relationship between  PTable and RTable
type PTableRTables @model(queries: null) {
ID: ID!
ptable: PTable @connection(name: "PTableRTables")
rtable: RTable @connection(name: "RTablePTables")
}
modelactor table
type modelactor @model {
ID: ID!
ref: String!
modelActorRole: modelActorRole!
model: model @connection(name: "modelmodelactors")
maintainers: [modelactorMaintainers] @connection(name: "modelactorMaintainers")
}
# m:n relationship between  PTable and RTable
type modelactorMaintainers @model(queries: null) {
ID: ID!
modelactor: modelactor @connection(name: "modelactorMaintainers")
maintainer: Maintainer @connection(name: "Maintainermodelactors")
}
#model table
type model @model {
ID: ID!
ref: String!
designStatus: DesignStatus!
what: String
lastUpdated: String!
modelUrl: String!
isSystemGenerated: Boolean!
mobile: Mobile @connection
getthem: [Getthem] @connection(name: "modelgetthem")
architectures: [Architecture] @connection(name: "modelArchitectures")
modelactors: [modelactor] @connection(name: "modelmodelactors")
}
#Architecture table
type Architecture @model {
ID: ID!
ref: String!
designStatus: DesignStatus!
what: String
lastUpdated: AWSDate!
architectureUrl: String!
isSystemGenerated: Boolean!
mobile: Mobile @connection
model: model @connection(name: "modelArchitectures")
modelactor: modelactor @connection
}
table RemSLA
type RemSLA @model {
ID: ID!
ref: String!
dueDate: AWSDate!
isCustomizied: Boolean!
getthem: [RemSLAgetthem] @connection(name: "RemSLAgetthem")
Remmeanvalues: [RemSLARemmeanvalues] @connection(name: "RemSLARemmeanvalues")
}
# m:n relationship between  RemSLA and Getthem
type RemSLAgetthem @model(queries: null) {
ID: ID!
RemSLA: RemSLA @connection(name: "RemSLAgetthem")
Getthem: Getthem @connection(name: "GetthemRemSLAs")
}
#table Remmeanvalue
type Remmeanvalue @model {
ID: ID!
ref: String!
GetthemAssetType: GetthemAssetType!
STL: STL!
cri: String!
h: String!
m: String!
l: String!
what: String
setUpDate: AWSDateTime!
RemSLAs: [RemSLARemmeanvalues] @connection(name: "RemmeanvalueRemSLAs")
}
# m:n relationship between  RemSLA and Remmeanvalue
type RemSLARemmeanvalues @model(queries: null) {
ID: ID!
RemSLA: RemSLA @connection(name: "RemSLARemmeanvalues")
Remmeanvalue: Remmeanvalue @connection(name: "RemmeanvalueRemSLAs")
}
#Morse table
type Morse @model {
ID: ID!
ref: String!
dBag: String!
morseType: MorseType!
what: String!
morseLocation: String!
training: [TrainingMorses] @connection(name: "Morsetraining")
}
# m:n relationship between  Training and Morse
type TrainingMorses @model(queries: null) {
ID: ID!
Training: Training @connection(name: "TrainingMorses")
morse: Morse @connection(name: "Morsetraining")
}
Reqt table
type Reqt @model {
ID: ID!
ref: String!
dBag: String!
title: String!
what: String!
priority: NfrReqPriority!
moon: NfrReqmoon!
status: NfrReqStatus!
jiraIssueKey: String!
dateCompleted: AWSDate!
nfrlib: Nfrlib @connection(name: "NfrlibReqts")
}
#IncIDent
type IncIDent @model {
ID: ID!
ref: String!
incIDentCodeName: String!
incIDentID: ID
incIDentType: IncIDentType!
incIDentHandler: String!
assetName: String!
assetcriity: Assetcriity!
Getthemcriity: Getthemcriity!
GetthemType: GetthemType!
initialPriority: InitialPriority!
finalPriority: FinalPriority
dateFinalPriority: AWSDateTime
subject: String!
summary: String!
Rem: String
timelineCompromiseUnit: AWSDateTime
timelineDiscoveryUnit: AWSDateTime
timelineRemUnit: AWSDateTime
status: SirtStatus!
actor: ActorType!
action: ActionType!
actionHackingVariety: ActionHackingVariety
actionMisuseVariety: ActionMisuseVariety
actionSocialVariety: ActionSocialVariety
discoveryMethodExternalVariety: DiscoveryMethodExternalVariety
discoveryMethodInternalVariety: DiscoveryMethodInternalVariety
discoveryMethodPartnerVariety: DiscoveryMethodPartnerVariety
targeted: Targeted
assetAssetsVariety: String
assetType: AssetType!
assetManagement: AssetManagement
assetOwnership: AssetOwnership
jiraPunchOut: String!
disclosureLists: [String]
informIc: Boolean!
informIm: Boolean!
informIr: Boolean!
informTr: Boolean!
informleader: Boolean!
battlerythmset: Boolean!
battlerythmduration: String!
maintainers: [Maintainer] @connection(name: "IncIDentMaintainers")
getthem: [Getthem] @connection(name: "IncIDentgetthem")
dtable: [IncIDentdtable] @connection(name: "IncIDentdtable")
standardknown: [IncIDentstandardknown] @connection(name: "IncIDentstandardknown")
mobiles: [Mobile] @connection(name: "IncIDentmobiles")
}
# m:n relationship between  IncIDent and dtable
type IncIDentdtable @model(queries: null) {
ID: ID!
incIDent: IncIDent @connection(name: "IncIDentdtable")
dtable: DTable @connection(name: "dtableIncIDents")
}
# m:n relationship between  IncIDent and standardknown
type IncIDentstandardknown @model(queries: null) {
ID: ID!
incIDent: IncIDent @connection(name: "IncIDentstandardknown")
standardknown: standardknown @connection(name: "standardknownIncIDents")
}
#team table
type Team @model {
ID: ID!
ref: String!
member: String!
role: String!
teamType: TeamType!
maintainers: [Maintainer] @connection(name: "TeamMaintainers")
}
#Integration table
type Integration @model {
ID: ID!
ref: String!
dBag: String!
serverUrl: String
maintainerName: String
logoPath: String
apiKey: String
}
Package table
type Package @model {
ID: ID!
ref: String!
dBag: String!
packageType: PackageType!
mean: mean!
cveCount: Int!
lastUpdated: AWSDate!
mobiles: [mobilePackages] @connection(name: "Packagemobiles")
dtable: [Packagedtable] @connection(name: "Packagedtable")
standardknown: [Packagestandardknown] @connection(name: "Packagestandardknown")
depos: [storeTablePackages] @connection(name: "PackagestoreTables")
getthem: [Getthem] @connection(name: "Packagegetthem")
}
# m:n relationship between  Package and mobile
type mobilePackages @model(queries: null) {
ID: ID!
package: Package @connection(name: "Packagemobiles")
mobile: Mobile @connection(name: "mobilePackages")
}
# # m:n relationship between  Package and dtable
type Packagedtable @model(queries: null) {
ID: ID!
package: Package @connection(name: "Packagedtable")
dtable: DTable @connection(name: "dtablePackages")
}
# # m:n relationship between  Package and standardknown
type Packagestandardknown @model(queries: null) {
ID: ID!
package: Package @connection(name: "Packagestandardknown")
standardknown: standardknown @connection(name: "standardknownPackages")
}
# m:n relationship between  Package and storeTable
type storeTablePackages @model(queries: null) {
ID: ID!
package: Package @connection(name: "PackagestoreTables")
storetable: storeTable @connection(name: "storeTablePackages")
}
#enum for Package table
enum PackageType {
Other
}
#enum for IncIDent table
enum IncIDentType {
P
S
}
#enum for teamtable
enum TeamType {
TechnicalResponse
}
enum InitialPriority {
Cr
Hi
Me
L
}
enum Assetcriity {
Cr
Hi
Me
L
}
enum Getthemcriity {
Cr
Hi
Me
L
}
enum FinalPriority {
Cr
Hi
Me
L
}
enum SirtStatus {
New
ClosedR
}
enum ActionHackingVariety {
Other
Unknown
}
enum ActionMisuseVariety {
Dat
Em
Il
Kno
Net
Pos
Pri
Unap
Unapund
O
Unk
}
enum ActionSocialVariety {
Ba
Br
El
Ext
For
Inf
Phi
Pre
Pro
Sc
S
Ot
Unknown
}
enum ActorType {
In
Ex
Par
Un
Res
Na
}
enum DiscoveryMethodExternalVariety {
Ac
Au
Cus
Eme
Fo
Fra
In
La
Mon
Other
Se
Su
Unknown
Unrela
}
enum DiscoveryMethodInternalVariety {
An
Bre
Dat
Fin
Fra
HID
Incab
Infras
ItRe
Lo
NID
Oth
Re
SS
Unknown
}
enum DiscoveryMethodPartnerVariety {
An
Au
In
MS
Ot
Unknown
}
enum Targeted {
Op
Tar
Na
Unknown
}
enum AssetType {
Cl
Saa
mobile
Ot
Unknown
}
enum AssetManagement {
Ex
In
Co
Na
Unk
Ot
}
enum AssetOwnership {
Cus
In
Em
Na
Pa
Unkn
Vi
Oth
}
enum ActionType {
Error
H
Ma
So
Mi
Disclosure
}
#enum for Reqt table
enum NfrReqPriority {
Cri
Hi
Me
L
}
enum NfrReqmoon {
Req
De
Impl
Te
Rel
Pr
}
enum NfrReqStatus {
NS
IP
Com
}
#enum for Morse table
enum MorseType {
BaS
BSTD
LST
}
#enum for Remmeanvalue table
enum GetthemAssetType {
mobile
Infr
}
enum STL {
oil
Cus
}
#model table enum
enum DesignStatus {
NS
IP
IR
IA
Cur
OD
}
#modelactor table enum
enum modelActorRole {
Aut
Rev
App
}
#enum for Nfrlib table
enum NfrLibType {
oi
Cust
TP
}
enum NfrLibScope {
Sec
Comp
C
Ot
}
enum NfrLibStatus {
A
NA
}
#enum Training table
enum trainingtatus {
NS
IP
Com
}
#enum for Getthem
enum Status {
Op
UR
Res
Mer
Ver
Accepted
}
enum GetthemStatusMethod {
Fix
FP
NoT
Mgate
Date
}
enum ResolutionAdvice {
Fix
FP
NoT
Mgate
Date
}
enum GetthemType {
SS
DS
IS
MA
TM
CR
CA
DR
BB
Ot
}
enum for mobile table
enum mean {
Cri
Hi
M
Lite
}
enum oil {
eb
Detop
bile
}
enum aTT {
Pduc
Bess
Oth
}
enum ThoseGuys {
P
Sc
So
Gp
Io
Na
}
enum moon {
Inv
Sus
Ret
}
enum defcon {
Cr
Hi
M
Lite
Unknown
}
enum botsowan {
In
out
}
enum ameba {
Disco
MM
}
enum whatsapp {
SM
MM
Monoli
Hyb
Mono
Micro
}
#enum for cloud type
enum rainType {
A
G
Az
Ot
}
enum asstat {
Active
Stale
Archived
}

@trupa7 try submitting a ticket to AWS Support to raise the soft limit and see if your issue re-occurs with your sample schema, please.

Hi @kaustavghosh06 - I work on the same team as @ahsansmir and @trupa7 . We requested limit increase to the maximum allowed concurrent DynamoDB GSI limit - 100.
The limit was increased, and AWS Support said:

I've been working closely with our DynamoDB team on getting your request fulfilled and they already stated that it will be fulfilled in the next 2-3 days as long as you acknowledge that this may not fix your bottle neck and you could hit the new limit again.

They've also stated that we would not be able to further increase the limit after 100 in-flight-tables, as that's the maximum it can be increased.

"We can increase your limit to a degree, but note that you might not always be able to achieve the full number of concurrent control plane operations, depending on which combination of operations you are doing at once. If the table or index specifications are complex, such as a CreateTable requests with several Secondary Indexes, especially when each index has a "Projection" with many “NonKeyAttributes”, DynamoDB might temporarily reduce the number of concurrent operations.

With our schema, and with the new limit increase, we are still receiving the same error.
I attempted a workaround, where I modified the generated CloudFormation stack (amplify/backend/api/<apiname>/build/cloudformation-template.json) to sequentially create each nested stack, by adding each nested stack resource reference to the next stack's DependsOn attribute.
Here's a snippet from the CloudFormation stack showing the DependsOn changes.
{   "Organization": {     "Type": "AWS::CloudFormation::Stack",     "Properties": {},     "DependsOn": [       "GraphQLSchema",       "NoneDataSource"     ]   },   "Application": {     "Type": "AWS::CloudFormation::Stack",     "Properties": {},     "DependsOn": [       "GraphQLSchema",       "NoneDataSource",       "Organization"     ]   },   "Group": {     "Type": "AWS::CloudFormation::Stack",     "Properties": {},     "DependsOn": [       "GraphQLSchema",       "NoneDataSource",       "Application"     ]   } }
I was able to successfully deploy the CloudFormation stack this way, however the Amplify CLI stopped working at this point - amplify status reports No Changes, and any attempt to amplify env pull or amplify env pull --restore or amplify push does not have any effect.

Hi Amplify team,
I'm on the same team as @ahsansmir and @trupa7 (the OP of this issue)
Unfortunately, we have a new issue. Should I create a new Issue in GitHub for this?
The autogenerated JSON CloudFormation stack is too large - 811KB - and exceeds the allowed size in of 460KB.
CREATE_FAILED               apiissue2584                AWS::CloudFormation::Stack Mon Nov 18 2019 09:42:09 GMT-0800 (Pacific Standard Time) Template may not exceed 460800 bytes in size.
I was attempting to add @auth directives to all of our types, so we can use a combination of Cognito, API Keys and IAM to access our AppSync API.
Just for fun, I tried cfn-flip to see what the YAML equivalent would be, and that is FAR smaller at 271KB, very much under the 460KB limit.
-rw-r--r--    1 user  staff   811K Nov 18 09:37 cloudformation-template.json
-rw-r--r--    1 user  staff   271K Nov 18 09:44 cloudformation-template.yaml
I've re-obfuscated the schema that @trupa7 originally posted, and removed all the unnecessary String/Enum/AWSDate*/Boolean/etc. fields from all the types.
This verison (with @auth directives) Produces a CloudFormation template which is too large - cannot deploy:
https://gist.github.com/rrrix/e7874ba46f9911604aec1eb1554ba07d
This version (without @auth) causes CloudFormation to deploy too many DynamoDB tables concurrently which results in a LimitExceededException and the entire API stack fails:
https://gist.github.com/rrrix/09ade36345c988b6be581063aa49f219
I just reproduced it again this morning, even with the limit increase.
Subscriber limit exceeded: You have exceeded the maximum number of indexed tables that can be created simultaneously (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: LimitExceededException;

@trupa7 @kaustavghosh06 I don't think this is a priority for the Amplify team because that many tables is considered somewhat of an abuse of NoSQL. You should try to denormalize your schema and drop as many models as possible. For instance, for 1-to-1 connection field that is rarely updated or read-only, you could make it a simple AWSJSON blob instead of a model connection without much disruption. But if you need to frequently update that field, leave it as its own model. At least, that's my understanding of the suggested usage of the key and connection directives.

Hi @jkeys-ecg-nmsu - thank you for your reply!
We are working within the limitations that the Amplify CLI enforces. Creating this many tables is an explicit design decision made by the Amplify team - each @model generates its own table and there is no configurable or programmable option to do otherwise.
If the Amplify CLI provided the option or ability to use a single table for our entire project, or even re-use tables across types, we would!
If the Amplify CLI made many-to-many models easier to implement without a lookup table (such as adjacency lists), we would!
Also of note, using join tables in this way is currently the officially documented and supported pattern within Amplify:
From the docs: https://aws-amplify.github.io/docs/cli-toolchain/graphql?sdk=js#connection

The @connection directive enables you to specify relationships between @model types. Currently, this supports one-to-one, one-to-many, and many-to-one relationships. You may implement many-to-many relationships using two one-to-many connections and a joining @model type. See the usage section for details.

(Emphasis mine)
From an Amplify Developer: https://github.com/aws-amplify/amplify-cli/blob/master/packages/graphql-connection-transformer/src/ModelConnectionTransformer.ts#L280
if (leftConnectionIsList && rightConnectionIsList) {
      // 1. TODO.
      // Use an intermediary table or other strategy like embedded string sets for many to many.
      throw new InvalidDirectiveError(`Invalid Connection (${connectionName}): Many to Many connections are not yet supported.`);

That being said, the so-called "NoSQL abuse" of having one table per @model is not a choice we willingly made, nor one we can change without abandoning Amplify altogether.
"Denormalizing" my schema and my data model is not a solution, we really actually do need all of these @models. The Amplify CLI should support valid real-world use cases from real-world organizations trying to solve real, complex problems, rather than having to design our data model around the limitations of the Amplify CLI.
Our schema is the codified representation of our application and business model, blindly assuming we can or should rip out any given data type just to avoid a concurrency bug (yes - this is a bug) is not sound advice.

@rrix The main thing I take away from your comment is that Amplify developers should focus on the GraphQL transformer as its standout feature. Which I fully agree with, and I empathize with your frustration.
I'm not sure that a service limitation implies a bug; but have you tried going back to support and telling them that the limit increase didn't solve the issue? Seems like it'd be easier to get AWS to recognize the problem it has with another limit increase request than shovel blame onto the Amplify team. (I have yet to hear of Support refusing to raise a soft limit to meet a legitimate business use case.)
On the other hand, I think the community is owed a roadmap so that we can plan our businesses around the future of Amplify. We don't even necessarily need ETAs, just priorities so we know what we should focus on implementing ourself. It's frustrating when Amplify releases a new feature that nukes some generic business logic a developer spent days or weeks on.

Our schema is the codified representation of our application and business model, blindly assuming we can or should rip out any given data type just to avoid a concurrency bug (yes - this is a bug) is not sound advice.

With AWSJSON blobs you can store lists and objects. If you wanted you could implement an adjacency list based graph yourself by writing your own resolvers. But you're here for the same reason we all are -- so we don't have to write our own resolvers. Therefore I think it's only fair to cut the devs some slack on current limitations, and assume they're not idiots.
You're also free to submit pull requests and add these features yourself. But, again, you're here for the same reason I am -- so you don't have to re-implement the same business logic 10^3 - 10^7 developers have implemented in parallel. Hurry up and wait seems like an appropriate course of action, and just deal with the limitations in the form of a slightly higher bill for the time being. You could also try explaining your business use case to Support and asking for credits to offset the limitations of the GraphQL transformer.
Last note: I imagine support for Aurora Serverless (the only RDS data source supported by AppSync AFAIK) is on the Amplify team's radar, but I don't know if there's an open issue on it. Maybe you should open an issue asking for AS support so that your relational data can be represented by systems that were designed for that decades ago.

One more point, to show that you can work around these rough edges.

Our schema is the codified representation of our application and business model

Yes, and it sounds like it's a very natural relational schema. The obfuscated schema you posted makes zero sense so it's hard to actually reason about access patterns, but let's just mechanically work with what was presented to transform the schema while preserving its properties.
Basically, overload generic models. Because of the @key directive you can create a single table with as many primary key indexes partitioned by type as you want, as well as an arbitrary combination of sort key patterns to meet your access patterns. Take the first two models of your schema:
type Automotive @auth(rules: [
    {allow: public, provider: apiKey},
    {allow: public, provider: iam},
    {allow: private, provider: userPools}
]) @model {
    id: ID!
    name: String
    components: [Component] @connection(name: "AutomotiveComponents")
}

type Baby @auth(rules: [
    {allow: public, provider: apiKey},
    {allow: public, provider: iam},
    {allow: private, provider: userPools}
]) @model {
    id: ID!
    name: String
    component: Component @connection(name: "ComponentBabys")
    bookss: [BabyBookss] @connection(name: "BabyBookss")
    widgets: [Games] @connection(name: "BabyWidgets")
    gardens: [BabyGardens] @connection(name: "BabyGardens")
    grocerys: [BabyGrocerys] @connection(name: "BabyGrocerys")
    healths: [BabyHealths] @connection(name: "BabyHealths")
    homes: [BabyHomes] @connection(name: "BabyHomes")
    toolss: [BabyTools] @connection(name: "BabyToolss")
    shippings: [BabyShippings] @connection(name: "BabyShippings")
}

Okay, so you have two tables here. Luckily, they don't reference eachother. So Couldn't we combine these two models while retaining equivalent access patterns?
enum EntityType {
 Automotive
 Baby
}

type Entity @auth(rules: [
    {allow: public, provider: apiKey},
    {allow: public, pvidroer: iam},
    {allow: private, provider: userPools}
]) @model
  @key(fields: [id, type], name: 'EntityTypeIndex', queryField: 'entityByType')
 {
    id: ID!
    type: Entity
    name: String
    components: [Component] @connection(name: "AutomotiveComponents")
    component: Component @connection(name: "ComponentBabys")
    bookss: [BabyBookss] @connection(name: "BabyBookss")
    widgets: [Games] @connection(name: "BabyWidgets")
    gardens: [BabyGardens] @connection(name: "BabyGardens")
    grocerys: [BabyGrocerys] @connection(name: "BabyGrocerys")
    healths: [BabyHealths] @connection(name: "BabyHealths")
    homes: [BabyHomes] @connection(name: "BabyHomes")
    toolss: [BabyTools] @connection(name: "BabyToolss")
    shippings: [BabyShippings] @connection(name: "BabyShippings")
}

Okay, that's progress, we still can query with all the same access patterns as the schema you posted, right?
Let's go a little bit further and see if this concept applies inductively. It looks like Clothing doesn't have a connection between Automotive and Baby. So:
enum EntityType {
 Automotive
 Baby
 Clothing
}

type Entity @auth(rules: [
    {allow: public, provider: apiKey},
    {allow: public, provider: iam},
    {allow: private, provider: userPools}
]) @model
  @key(fields: [id, type], name: 'EntityTypeIndex', queryField: 'entityByType')
 {
    id: ID!
    type: Entity!
    name: String
    autoComponents: [Component] @connection(name: "AutomotiveComponents")
    componentBabies: Component @connection(name: "ComponentBabys")
    babyBooks: [BabyBookss] @connection(name: "BabyBookss")
    babyWidgets: [Games] @connection(name: "BabyWidgets")
    babyGardens: [BabyGardens] @connection(name: "BabyGardens")
    babyGrocerys: [BabyGrocerys] @connection(name: "BabyGrocerys")
    babyHealths: [BabyHealths] @connection(name: "BabyHealths")
    babyHomes: [BabyHomes] @connection(name: "BabyHomes")
    babyToolss: [BabyTools] @connection(name: "BabyToolss")
    babyShippings: [BabyShippings] @connection(name: "BabyShippings")
    bookClothings: Books @connection(name: "BooksClothinges")
    clothingComputers: Computers @connection(name: "ClothingComputerss")
}

Since all the connection fields are nullable, you can override this generic entity to your heart's content. You'd probably have to devise a dynamic programming algorithm to reduce your schema to the optimal set of generic models. (Sounds like a fun exercise actually, I'll send this one to a former prof.)
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-modeling-nosql-B.html
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-gsi-overloading.html

Hey @jkeys-ecg-nmsu - thanks for your response. It's good to know others feel the same pain :)

Seems like it'd be easier to get AWS to recognize the problem it has with another limit increase request

AWS Support put it very bluntly - they've raised the limit to the hard maximum limit already and cannot raise the limit any further:

They've also stated that we would not be able to further increase the limit after 100 in-flight-tables, as that's the maximum it can be increased.

On the other hand, I think the community is owed a roadmap so that we can plan our businesses around the future of Amplify. We don't even necessarily need ETAs, just priorities so we know what we should focus on implementing ourself. It's frustrating when Amplify releases a new feature that nukes some generic business logic a developer spent days or weeks on.

OMG dude... preaching to the choir!! Amplify is "open source" on paper, but is not built and managed as a true open source project usually is. AWS has a strong incentive to keep new features basically secret until they release them (-cough- Amplify DataStore / Amplify iOS / Amplify Android). There is no public roadmap. We don't even know know what the Amplify team's short, medium or long term priorities are. Features? Performance? Bug fixes? Security? Scalability?
Yes, I know CONTRIBUTING.md says that Pull Requests are welcome, but the vast majority of MERGED pull requests that I can see are from what appears to be paid AWS employees. I would love to submit a few pull requests, but I honestly can't figure out how to reliably engage the owners of this project for a meaningful discussion. It's said to open an issue for discussion, but there are just too many open issues created every single day to reliably get any attention beyond basic troubleshooting. And they are not on gitter.im. I tried.

open an issue asking for AS support so that your relational data can be represented by systems that were designed for that decades ago.

Fun fact: DynamoDB is actually designed for relational data too, and has an excellent guide on designing your database to do exactly that: Best Practices for DynamoDB » Best Practices for Modeling Relational Data in DynamoDB
That said - the way Amplify does things is way, way out of line with the DynamoDB best practices documentation. One of the most important (in my opinion, at least):

You should maintain as few tables as possible in a DynamoDB application. Most well designed applications require only one table.

This is basically impossible to do when using the @model directive in Amplify.
⬆  From Best Practices for DynamoDB » NoSQL Design for DynamoDB: Two Key Concepts for NoSQL Design
Anyways, I've decided to take things into my own hands. I've forked the CLI and fixed all of the bugs I've had (and there's been MANY more) - including this one, plus some pretty cool features I've wanted for a while. I've gotten very familiar with the CLI codebase, and have a bunch of more things I want to build and fix, particularly relating to developer usability.  Feel free to check it out - https://github.com/rapticore/amplify-cli
@jkeys-ecg-nmsu if there's anything you've wanted for a while, let me know, I'll see what I can do to help you since you've been very helpful to me and the rest of the community.

@rrix One more point, to show that you can work around these rough edges.

This is basically impossible to do when using the @model directive in Amplify.

I'm not sure I agree with this. You've said that every model needs to be a model, and it's hard to argue with that because only you know your access pattern.s However, with the @key directive you can create a single table with as many primary key indexes partitioned by type as you want, as well as an arbitrary combination of sort key patterns to meet your access patterns. Take the first two models of your schema:
normalized.graphql
type Automotive @auth(rules: [
    {allow: public, provider: apiKey},
    {allow: public, provider: iam},
    {allow: private, provider: userPools}
]) @model {
    id: ID!
    name: String
    components: [Component] @connection(name: "AutomotiveComponents")
}

type Baby @auth(rules: [
    {allow: public, provider: apiKey},
    {allow: public, provider: iam},
    {allow: private, provider: userPools}
]) @model {
    id: ID!
    name: String
    component: Component @connection(name: "ComponentBabys")
    bookss: [BabyBookss] @connection(name: "BabyBookss")
    widgets: [Games] @connection(name: "BabyWidgets")
    gardens: [BabyGardens] @connection(name: "BabyGardens")
    grocerys: [BabyGrocerys] @connection(name: "BabyGrocerys")
    healths: [BabyHealths] @connection(name: "BabyHealths")
    homes: [BabyHomes] @connection(name: "BabyHomes")
    toolss: [BabyTools] @connection(name: "BabyToolss")
    shippings: [BabyShippings] @connection(name: "BabyShippings")
}

Okay, so you have two tables here. Luckily, they don't reference each other.* Therefore couldn't we combine these two models while retaining equivalent access patterns?
overloaded-1.graphql
enum EntityType {
 Automotive
 Baby
}

type Entity @auth(rules: [
    {allow: public, provider: apiKey},
    {allow: public, pvidroer: iam},
    {allow: private, provider: userPools}
]) @model
  @key(fields: [id, type], name: 'EntityTypeIndex', queryField: 'entityByType')
 {
    id: ID!
    type: Entity
    name: String
    components: [Component] @connection(name: "AutomotiveComponents")
    component: Component @connection(name: "ComponentBabys")
    bookss: [BabyBookss] @connection(name: "BabyBookss")
    widgets: [Games] @connection(name: "BabyWidgets")
    gardens: [BabyGardens] @connection(name: "BabyGardens")
    grocerys: [BabyGrocerys] @connection(name: "BabyGrocerys")
    healths: [BabyHealths] @connection(name: "BabyHealths")
    homes: [BabyHomes] @connection(name: "BabyHomes")
    toolss: [BabyTools] @connection(name: "BabyToolss")
    shippings: [BabyShippings] @connection(name: "BabyShippings")
}

To me this looks promising. Let's extend it to a third entity type:
overloaded-2.graphql
enum EntityType {
 Automotive
 Baby
 Clothing
}

type Entity @auth(rules: [
    {allow: public, provider: apiKey},
    {allow: public, provider: iam},
    {allow: private, provider: userPools}
]) @model
  @key(fields: [id, type], name: 'EntityTypeIndex', queryField: 'entityByType')
 {
    id: ID!
    type: Entity!
    name: String
    autoComponents: [Component] @connection(name: "AutomotiveComponents")
    componentBabies: Component @connection(name: "ComponentBabys")
    babyBooks: [BabyBookss] @connection(name: "BabyBookss")
    babyWidgets: [Games] @connection(name: "BabyWidgets")
    babyGardens: [BabyGardens] @connection(name: "BabyGardens")
    babyGrocerys: [BabyGrocerys] @connection(name: "BabyGrocerys")
    babyHealths: [BabyHealths] @connection(name: "BabyHealths")
    babyHomes: [BabyHomes] @connection(name: "BabyHomes")
    babyToolss: [BabyTools] @connection(name: "BabyToolss")
    babyShippings: [BabyShippings] @connection(name: "BabyShippings")
    bookClothings: Books @connection(name: "BooksClothinges")
    clothingComputers: Computers @connection(name: "ClothingComputerss")
}

Since all the connection fields are nullable, you can override this generic entity to your heart's content. You'd probably have to devise a dynamic programming algorithm to reduce your schema to the optimal set of generic models. (Sounds like a fun exercise actually, I'll maybe this one to a former prof.)
*The GQL transformer also currently supports recursive models (or at least generates queries as if it does), so theoretically there's no reason you couldn't have 1-1 or 1-many Entity connections. Then you'd just need join tables for each of your many-many Entity connections.
Also more complex query patterns will probably force you into writing your own resolvers.
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-modeling-nosql-B.html
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-gsi-overloading.html

OMG dude... preaching to the choir!! Amplify is "open source" on paper, but is not built and managed as a true open source project usually is. AWS has a strong incentive to keep new features basically secret until they release them (-cough- Amplify DataStore / Amplify iOS / Amplify Android). There is no public roadmap. We don't even know know what the Amplify team's short, medium or long term priorities are. Features? Performance? Bug fixes? Security? Scalability?

Hopefully this will change as Amplify becomes developed more by the community and less by AWS as an "internal" product.

@jkeys-ecg-nmsu if there's anything you've wanted for a while, let me know, I'll see what I can do to help you since you've been very helpful to me and the rest of the community.

I'll have to get back to you. I'm actually working within my company on developing an open source policy so that we can start contributing and submitting pull requests. I have more asks beyond the open issues I currently have but I don't think they can be shared publicly due to NDA.
Thank you very much, though. I've opened a lot of issues in the past so I try to pass it on by being helpful where I can. Hopefully the Amplify community will come to resemble those of more traditional FOSS projects. (I've toyed with the idea of porting closed Github issues here to StackOverflow community/wiki questions to minimize the number of new issues that crop up, but it's an enormous undertaking.)

I'm having the exact same issue with Amplify 4.19.
Is there any update on this ?

We are refactoring to be closer in line with single table approaches.  This is a real problem if you are deploying new environments from a code base that has progressed and has may relations.
Advice - review these resources for DynamoDB:

Data Modeling with Amazon DynamoDB: https://www.youtube.com/watch?v=DIQVJqiSUkE
Advanced Design Patterns for DynamoDB: https://www.youtube.com/watch?v=HaEPXoXVf2k
Choosing the right partition key: https://aws.amazon.com/blogs/database/choosing-the-right-dynamodb-partition-key/

Revisit the following: https://docs.amplify.aws/cli/graphql-transformer/key and consider two things:

Keys defined without a queryField are going to create a PK
Keys defined with one are creating a secondary index on your table.

After reviewing these materials you'll see you may want to correct course for performance and best practices.


Domain

How to change a domain of the base route?
When I try to add host option in YAML config file - my entire application fails with 500

Found solution.
Inside config/routes/mobizel_markdown
_mobizel_markdowns:
  resource: 'mobizel_markdown_docs.routing.context_loader'
  type: service
  host: '%docsHost%'

Found solution.
Inside config/routes/mobizel_markdown
_mobizel_markdowns:
  resource: 'mobizel_markdown_docs.routing.context_loader'
  type: service
  host: '%docsHost%'

Thx @ICS-Vortex to share your solution.


Logging instances are no longer shared between "HostingServices" and "ApplicationServices"

Due to the logging DI changes, the ILoggerFactory instance is no longer shared between the "HostingServices" and "ApplicationServices" service providers. Instead they both create their own instances.
One visible problem of this is, when the ILoggerFactory is passed to the constructor of a Startup-class as this uses "HostingServices".
Startup.Configure however is resolved from "ApplicationServices" so you will even get two different instances for the ctor and this method with the following example:
public class Program
{
    public static void Main(string[] args)
    {
        new WebHostBuilder()
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseStartup<Program>()
            .Build()
            .Run();
    }

    private readonly ILoggerFactory _loggerFactory;

    public Program(ILoggerFactory loggerFactory)
    {
        _loggerFactory = loggerFactory;

        // This only configures the instance from "HostingServices"
        _loggerFactory.AddConsole(includeScopes: true);
    }

    public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
    {
        if (loggerFactory != _loggerFactory)
            throw new InvalidOperationException("Different instances");

        app.Run((context) =>
        {
            // This would not be written as the instance from "ApplicationServices" has not been configured.
            var logger = loggerFactory.CreateLogger<Program>();
            logger.LogInformation("Hello World");
            return Task.CompletedTask;
        });
    }
}

@pakrym

Given that providers can now inject services with DI, I think that logging instances can only be created from "ApplicationServices". Imagine a logger provider that injects IHttpContextAccessor to enrich logs with request data. If the logger were created from "HostingServices", it would never actually get the HttpContext as it would work with a separate singleton.
How about the following solution?

Do NOT call "services.AddLogging" in BuildCommonServices
Instead, call it in "AddApplicationServices"
Ensure that no internal code tries to resolve any logging types from "HostingServices" (maybe there's none anyway)

This would mean, that it's no longer possible to inject logging types into Startup-constructors as they are no longer registered with "HostingServices". It's somehow logical as providers could need types that are set up in ConfigureServices.
This would be a runtime breaking change for people who used this but it would fail immediately. The fix would be to instead inject the type into Startup.Configure.

Just a quick ping. I think this is important for 2.0 since everyone who's accessing a logging component in the Startup constructor will run into this issue. Not sure how many these are, but there's even documentation that says that these components are available in the constructor.

Unfortunately this would not make it into 2.0, we are to far in release process at this point.

After upgrade to net core 2.0 from 1.1, I cannot get any log information into command window now.
is it due to the logging DI changed?
`public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStructureMap()
            .UseStartup<Startup>()
            .Build();`

@Cassaba AFAIU the fix is to NOT inject ILoggerFactory into your Startup-constructor. Instead you should use the new IWebHostBuiler.ConfigureLogging method in your Program.cs to configure your logging providers. If you need an ILogger instance in your Startup, you can inject ILoggerFactory (or ILogger<...>) into your Startup.Configure method - there it will be resolved from the correct service provider.
(Note that this means that you currently can not write logs in your Startup-constructor /Startup.ConfigureServices code)

cc @Tratcher @davidfowl

@cwe1ss there are things that might run in hosting level, run after hosting container was created and want to log (IServers IHostingStartup implementations etc.) so completely disabling it might not be the best solution.

True. Maybe it’s best to try to resolve this with the new generic host?!

@cwe1ss new generic host has only one container instance so this problem should not happen there.

@muratg no work here for 2.X

Closing this one per the discussion.

I am using the ASP.NET Core 2.1, but I still see the ILoggerFactory passed to the Startup constructor is different from the one passed to Configure.
@Could you please tell where that

@kevinlo
But that's not valid for the WebHost as I understand the problem. I don't think this can be fixed in any easy way as one di container is used for bootstrap and one for running services.

@Rinsen Thanks for your reply.  I thought it is fixed as this issue is closed.
So, I still need to add my ILoggerProvider at both places then.

Send it in via the configure method instead of ctor to have just one, that's the solution I decided to take at least as suggested by @cwe1ss


Why does the PreparedRequest.prepare method provide None as the default parameter value for those who cannot be None?

Hi,
I just inspect some test cases of your project, and find some test cases like
def test_prepare_unicode_url():
    p = PreparedRequest()
    p.prepare(
        method='GET',
        url=u('http://www.example.com/üniçø∂é'),
        hooks=[]
    )
    assert_copy(p, p.copy())

When I remove some parameters for calling the prepare method, it will raise exceptions(with url being missed) or traceback(with hooks being missed).
Is it unreasonable to provide None default parameter for some arguments cannot be None?
(A related PR is #2301).
Thanks.

I see no good reason to leave those as None-able defaults. I think we could get away with patching this in a minor release, because while it's technically backward-incompatible, in practice I don't think anyone can be correctly relying on this behaviour. @sigmavirus24?

Personally, I like the idea of more or less suggesting that users specify the arguments by keyword. If anything we should be documenting the fact that some of these parameters need to be provided. That said, I don't like that we have to pass hooks as an empty list so I'm sending a patch with a fix for that.


[RFC]: Template class object binding

This proposal aims to improve the Developer Experience (DX) around managing components with complex styles by enabling developers to describe the classes applied to an element using JavaScript objects.

Rendered
POC branch: https://github.com/salesforce/lwc/tree/pmdartus/class-shorthand

I don't have a strong opinion about this particular proposal. I do remember we looked at something like this in the past, and we kinda decided not to pursue it, don't remember the details from back then.
Now, if all goes well, we favor local selectors without the need for classes, in fact the new SDS architecture doesn't use classes anymore, so I expect this to be a less of a problem in the future.


About Us page

Description
Add About us page and write all the necessary things about  Catalyst organization. Keep it simple like in Mock.
Mocks

Definition of Done

[x] All of the required items are completed.
[x] Approval by 1 mentor.

Can i do this one?

okk

can I work on it

@anubhavsingh16  @aashimgarg

can I work on it

sorry @deepdarshan21 this issue just solved you can pick any other issue for issue list.
Thank You.


Fix code indentation after commits.

Looks ok locally in Atom, but indentation is incorrect when viewing in GH.


adb: Add console logic for ttyUSB.serial

By using UDEV rules, we can create device nodes which exist at
/dev/ttyUSB.{android device serial}

Which makes it easier to determine which console belongs to a device.
While this is non-standard behavior, it's an inexpensive path check
and makes the lookup faster and deterministic.

Done!


Tag a new release

Hi!
my PR #56 was merged some time ago.
It already bumped the patch release version number.
Would you please be so kind as to tag a new release?

Done!

Thank you!


Update spike.md

looking good - but your link on the :heart: doesn't seem to do what you're expecting?

That should fix it, I think. And I fixed another small problem.

just checked the deploy preview - looks good!


Microsoft.EdgeMarketplace SDK release for GA

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.ResourceManager.EdgeMarketplace

@aneesh-ponneth:
Please review the Azure SDK onboarding documentation and ensure that your GitHub organization membership and permissions are correct.

Azure SDK onboarding (Microsoft internal)
Azure SDK onboarding assistance (Microsoft internal)

You are currently non-compliant because:

Your profile does not have a public membership for the Microsoft organization
You do not have write permissions for the repository

These will need to be corrected before this PR can move forward.

Thanks @jsquire, I have made my Microosft organization public and joined write team. WIll this PR automatically remove the compliance tag?

Pending on https://github.com/Azure/azure-sdk-pr/issues/1679

Thanks @jsquire, I have made my Microosft organization public and joined write team.

Your org memberships look good. You still do not have write permissions in the repository. I'm not sure what group you've joined or whether the membership is still pending, but at this moment, you're still blocked.

WIll this PR automatically remove the compliance tag?

Once I successfully verify the state of your account, I'll remove my blocker and you'll be able to work with Arthur and team on moving this forward.

Hi @jsquire , I have write permission now. Can you please verify and unblock if everything looks good?

Hi @jsquire , I have write permission now. Can you please verify and unblock if everything looks good?

Looks like everything is good.  Removing my block.   You'll want to work with Arthur and team on the code reivew.

We want to hold the SDK release as there are some changes in business plan. Will get back when we want to release this


Responder should check END_SESSION request attributes

The Responder does not validate the Requester's END_SESSION request attributes. In particular the Requester shall not set SPDM_END_SESSION_REQUEST_ATTRIBUTES_PRESERVE_NEGOTIATED_STATE_CLEAR if the Responder's CACHE_CAP=0.
See https://github.com/DMTF/libspdm/issues/1953#issuecomment-1520394702.

Hi Steven
Regarding "end_session_attributes" - I don't see it being used by the responder. As I understand it should be used to reset the VCA state. Am I missing something?
Thanks.

Integrator would need to check that through the libspdm_session_state_callback_func right before the session ends. For Negotiated State Preservation Indicator, right now it's up to them to manage the cached VCA, and settings derived from it. We may come up with a better CACHE_CAP interface / flow in the future if folks actually start using it.
As an aside I don't know why Negotiated State Preservation Indicator even exists. If the Responder supports CACHE_CAP, and the Requester wants to re-negotiate VCA, it just needs to send GET_VERSION.

Am I right?

No, the current connection's VCA is still valid after Negotiated State Preservation Indicator has been set. For example, if a Requester sends END_SESSION with Negotiated State Preservation Indicator set, it can subsequently issue a CHALLENGE request, and it would need the VCA messages to calculate the M1/M2 transcript.

From Table 77 (Page 146) in DSP0274_1.2.1:
"If the Responder supports Negotiated State caching ( CACHE_CAP=1 ), the Responder shall also clear the
Negotiated State as part of session termination. If there is no Negotiated State to be cleared due to a
previous END_SESSION request message with this field set to 1, this field shall be ignored. If the Responder
does not support Negotiated State caching ( CACHE_CAP=0 ), this field shall be ignored."
From DSP2058_1.2.0 (page 57):
351 12.2 Secured Message error handling
352 If an error occurs during the Session Handshake phase or if an error happens during a secure session, the Negotiated State is preserved. The Negotiated State is preserved through errors unless the Requester sends an END_SESSION request with Negotiated State Preservation Indicator=1 to terminate the session or sends a GET_VERSION request to reset the session.
It seems that in case of "Negotiated State Preservation Indicator=1" the state should be cleared. Isn't it?

That section needs cached in front of Negotiated State.

If the Responder supports Negotiated State caching ( CACHE_CAP=1 ), the Responder shall preserve the cached Negotiated State.

If the Responder supports Negotiated State caching ( CACHE_CAP=1 ), the Responder shall also clear the cached Negotiated State as part of session termination. If there is no cached Negotiated State to be cleared due to a previous END_SESSION request message with this field set to 1, this field shall be ignored. If the Responder does not support Negotiated State caching ( CACHE_CAP=0 ), this field shall be ignored.

I'll file an issue against the specification.
Also, after reading that again, it looks like this issue can be modified since

If the Responder does not support Negotiated State caching ( CACHE_CAP=0 ), this field shall be ignored.

Ie, if the Responder doesn't support caching then it shouldn't be checking this field. I'll add a comment to the code.

"I'll file an issue against the specification." - Great. Thanks.
But how about my above question? ("It seems that in case of "Negotiated State Preservation Indicator=1" the state should be cleared. Isn't it?")
And how can I quote some previous reply in my reply?

But how about my above question? ("It seems that in case of "Negotiated State Preservation Indicator=1" the state should be cleared. Isn't it?")

The cached negotiated state should be cleared, but libspdm does not maintain the cached negotiated state. That's (currently) up to the Integrator. Negotiated State Preservation Indicator should probably also be directly in the spdm_context since it affects the connection and not just a single session. I can file a separate issue against libspdm for that.

And how can I quote some previous reply in my reply?

https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax

but libspdm does not maintain the cached negotiated state.

But it does clear the cache state when GET_VERSION is received here:
https://github.com/DMTF/libspdm/blob/6684f43117784b12e25e665df65d1d122540f11f/library/spdm_responder_lib/libspdm_rsp_version.c#L60
Which is according to the above spec mentions, so why shouldn't is handle the other part of this:

The Negotiated State is preserved through errors unless the Requester sends an END_SESSION request with Negotiated State Preservation Indicator=1 to terminate the session or sends a GET_VERSION request to reset the session.

should probably also be directly in the spdm_context
It seems so.

The Negotiated State is preserved through errors unless the Requester sends an END_SESSION request with Negotiated State Preservation Indicator=1 to terminate the session or sends a GET_VERSION request to reset the session.

@bhenning10 The highlighted portion of the sentence can be removed from the whitepaper, no? Negotiated State Preservation Indicator does not affect the currently Negotiated State, only the cached Negotiated State if the Responder's CACHE_CAP=1.

I see what you're saying. errors aren't the same thing as END_SESSION, so the first and second parts of the sentence aren't talking about the same thing.
What about a wording that starts the sentence with
The Negotiated State is preserved through END_SESSION requests, unless...

I'm guessing the word "cached" should also be added in this sentence before "Negotiated State" (in the same manner you proposed above):

The only things that affect the cached Negotiated State is GET_VERSION and Negotiated State Preservation Indicator so yes, it can be re-worded to reflect that.

like it does in case of GET_VERSION (which I mentioned above). It seems like a small fix and it makes sense.

Explain how the Requester and Responder could perform a successful CHALLENGE / CHALLENGE_AUTH immediately after the session has ended, with Negotiated State Preservation Indicator=1, when the Responder has cleared / reset its message A (VCA) transcript.

Explain how the Requester and Responder could perform a successful CHALLENGE / CHALLENGE_AUTH immediately after the session has ended, with Negotiated State Preservation Indicator=1, when the Responder has cleared / reset its message A (VCA) transcript.

As I understand from this sentence:

The Negotiated State is preserved through errors unless the Requester sends an END_SESSION request with Negotiated State Preservation Indicator=1 to terminate the session or sends a GET_VERSION request to reset the session.
in case this flag is set, this is similar to sending GET_VERSION, which clears the cached negotiated state, so in both cases you wouldn't be able to perform CHALLENGE / CHALLENGE_AUTH until a new state is negotiated. Maybe I missed something in the spec about this?
In any case it seems that the logic of this flag isn't defined well in specifications.


When all selected node are descendants of one of them PopupMenu act as if one node is selected

Godot version
4.1.dev (afca0b8fdd)
System information
MacOS 13.3 M1 Pro
Issue description
When selecting multiple nodes and one of them is the ancestors of all the other, the right click popup will show things that are normally shown only when one node is selected (Add child node, instantiate child scene, make scene root) and missing multi select ones (Batch Edit).
I think this behaviour is here because we are selecting a branch and branch specific option (expand/collapse branch, save branch as scene) needs to be there.
Steps to reproduce

first reproduce the following tree or open the minimal reproduction project

Select Child2 and GrandChild. Then right click you should see these options

to see normal behaviour of multi select add Child to the selection and then right click the selection you should see these options (the right popup should be a mix of the current one and this one)

Minimal reproduction project
test.zip

IMO, this seems to be intentional, this can be considered as a subtree, so operations are performed on the root node of the subtree.

Yes and no.
It is right that it should be considered a subtree and I understand why it isn't just the normal pop up for multiple nodes but it is also wrong to consider that it is as if only the root node of this sub-tree that is selected because for example it does not show batch rename which it should and it show element that it should not

Maybe the other might not be to removed but we then have to ensure that it will always acts on the root as it is not the case right now

It is mainly a sub-tree (similar to instantiated scenes), and the root of the sub-tree is convenient for locating the sub-tree in the whole tree.
The reason for the lack of Batch Rename may be that NodePath needs to be updated, which is difficult to implement, from root to leaves or from leaves to root.


[SQS] Add BatchJobHandler

Closing since this merged in https://github.com/cashapp/misk/commit/285aac9c035e7a1ac21f9382ef9037c2f3e4dd86


add !githubfetch command for pulling code from github without logging in...

... to SSH
(testing lol)

Tested and failed. webhook would be much more useful anyway


Implement generate-envelope workflow

This PR implements the generate-envelope workflow by reusing most of the PluginSigner logic.

@shizhMSFT this PR needs one more review, could you review?

@shizhMSFT this PR needs one more review, could you review?

As a small follow for https://github.com/notaryproject/notation-go/pull/46#discussion_r880094252, I've removed all uses of signingMethodFromKey in https://github.com/notaryproject/notation-go/pull/47/commits/3e47fc8ffae76c8b44e509e874ba00f11cb4d214, with the nice benefit being less dependent on golang-jwt/jwt.


Setup publishing for conductor on mavenCentral

This only publishes a snapshot for now is that intended?

Nice!
As a nice-to-have, can we try jreleaser for Maven as well? I use it for homebrew, so it would be great to unify deployment pipeline


Add LinearCombination block encoding

Add an instance of BlockEncoding that builds a block encoding of the linear combination of its
constituent block encodings, given a list of coefficients.

The use case would be in case the user has more optimized oracles on hand. I think this is something @tanujkhattar mentioned as being useful.


tickets/PREOPS-1262

Update NB 02, our intermediate TAP queries notebook.
It used to rely heavily on the truth table, but that has all been updated now.
Requesting a review from @leannep , the original NB author.

Note: reviewer can approve at data-int.lsst.cloud, but this will not be merged until it has been confirmed to run at data.lsst.cloud.


feat: Shops for user with lat long or address_id and remove auth from…

… endpoint

Hello @Haider8! Thanks for opening this PR.

In the file app/api/api_v1/endpoints/shops.py:

Line 72:20: E701 multiple statements on one line (colon)
Line 72:20: E231 missing whitespace after ':'
Line 72:21: E225 missing whitespace around operator
Line 86:14: E701 multiple statements on one line (colon)
Line 86:14: E231 missing whitespace after ':'
Line 86:15: E225 missing whitespace around operator

In the file app/tests/api/api_v1/test_shops.py:

Line 12:5: F841 local variable 'shop' is assigned to but never used
Line 18:5: F841 local variable 'response_json' is assigned to but never used

Do see the Hitchhiker's guide to code style


Remove tools:context referring to non-existent class.

The tools:context is referring to com.example.android.persistence.codelab.step_databinding.ChronoDataBindingActivity but this class doesn't exist.

I signed it!


Implement BaseVisualCamelEntity for Pipe CRD

Context
Currently, there's only support to render Camel Routes in the Design section of kaoto-next.
Goal
This issue aims to implement a BaseVisualCamelEntity for the Pipe CRD.
Notes

Camel Route Example

After building kaoto-next/packages/camel-catalog, using yarn workspace @kaoto-next/camel-catalog run build, you will find the Pipe CRD JSON Schema in packages/camel-catalog/dist/crd-schema-pipes-2.1.0-SNAPSHOT.json

You could use a Typescript definition for Kamelet like:

import { Pipe } from '@kaoto-next/camel-catalog/types';

Closed with https://github.com/KaotoIO/kaoto-next/pull/140

done


[Feature Request] Fix OpenAPI documentation generator crash for RPC endpoints

Is your feature request related to a problem? Please describe.
Currently for RPC endpoints the OpenAPI plugin generates a massive JSON file (100K+ lines for ~20 models), which makes the browser stall when using Swagger UI and trying to expand an API definition (eventually a popup asks to stop the script) and crash Redocly CLI with FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory.
Describe the solution you'd like
A way to configure the depth the types that are generated by the OpenAPI plugin to put a limit on the size of each endpoint's schema.
Describe alternatives you've considered
I guess the documentation generators could also prevent this issue on their side.
Additional context
See this Discord thread for more context.

@daaain experiencing the same issue! I was able to work with our openapi documentation generator vendor to improve the performance on their end, but it still isn't great... I think simply reducing the depth of the generated openapi spec would be sufficient.

Fixed in 2.9.0
A new "omitInputDetails" plugin option is added to reduce the generated spec size.


Use data-* attributes

Issue
Some attributes, such as the name attribute, used on BBH script tags are not valid HTML.
This isn't a problem in most circumstances, as BBH is designed as a development tool, but some developers may prefer to write HTML that validates.
Proposal
Custom attributes could be loaded directly or prefixed with data-, as is the HTML5 standard.
This could also apply to the src attribute on <script type="text/babel src="..."> tags, as it's technically loaded as application data, and not used directly by the browser.

Resolved by PR #7


Code Folding

For twig, code folding would be amazing. Right now, it doesn't have and fold markers. Picture for reference.

You can update VSCode to latest version (October 2022 (version 1.73)) and add this to config
"[october-tpl]": {
    "editor.defaultFoldingRangeProvider": "SergeyKasyanov.october-code"
}

Awesome, works like a charm!


Meta image logic fix

Fixed condition:

if try_one is None:

which is always False, because
 try_one = self.get_meta_content(doc, 'meta[property="og:image"]')

never returns None

Changed the condition order. Icon image is least relevant for top_img

This is a fantastic fix @mercuree. Also great work on the unit tests 👍 💯 Double checking and merging it now!

Wait, this appears to be failing the CI build - the failure is in the new unit test you added:
https://travis-ci.org/codelucas/newspaper/jobs/279784081
Weird how it passed the CI build locally in the comment though

I'll take a look

Haha problem found! Ironically the new bug was due to an optimization from your earlier PR!
 BUT this PR was based on the code before your optimization and thus does not turn on the regex api.
new code in this PR:
 elems = self.parser.getElementsByTag(doc, **link_img_src_kwargs)

I'll submit a PR later tonight before deploying a new version that re-enables regex operations (or performs two queries)


add workInfo to setSleeveTask

There is a bug in having sleeve 0 follow the player as we are still trying to pull the work faction from the player object. Added the work object to the setSleeveTask function so we can properly iterate through the possible work types when working for a faction.

Fixed with commit c2f2952 closing

Whoops sorry, didn't see your work, I was just plindly chipping away at things today

No worries, I'm not exactly going through with purpose, I just smash bugs as I run into them.


feature: support to print log with specific prefix.

why we need this feature?

why we need this feature?

It is easier to view the error log by printing the error log with a specific prefix.


propose car-metadata multicodec

When transporting car data, it can be useful to insert a block of data with key/value metadata signalling inline with the car data blocks.
This PR allocates a codec car-metadata to signal such data as blocks within the stream of car blocks.

cc @lidel @hannahhoward @bajtos

This is a bad idea.

You are using the codec as nominative typing rather than structural. While there's no definition or link to what the codec is, which is also standard here, AFAIK this is just nominative typing on some CBOR. See the discussions in https://github.com/multiformats/multicodec/issues/204 for more information about the types of IPLD codecs that have been accepted and rejected here historically.
The particular thing this nominative type is being used for (again not defined here, but something I understand from reading some Notion docs and Slack messages) is fixing a deficiency in the CAR format by mixing the control plane and data plane which has received heavy pushback from stakeholders. Seems like this effectively is a change to the CAR format anyhow since it'll be expected across CAR implementations so why not actually change the format and go through the process of working with stakeholders of that format.

Yeah, I'm not really a fan either, for the same reasons @aschmahmann outlined (and as per all the previous discussions on this stuff).
Would it not be enough to just put a dag-cbor block at the end with a strongly typed schema that you can check?
(as dag-json)
{
  "car-metadata/v1": {
    "properties": {
      "byte-length": 18390,
      "multihash": {
        "bytes": {
        "/": "..."
      }
    }
    "signature": {
      "bytes": {
        "/": "..."
      }
    }
  },
}

(schema)
type CarMetadata union {
  Metadata "car-metadata/v1"
} representation keyed

type Metadata struct {
  properties CarProperties
  signature Signature
}

type Properties struct {
  byteLength Int (rename "byte-length")
  multihash Bytes
}

type Signature ...

This was one of the original design goals of IPLD schemas - they should be fast and efficient enough to do these kinds of checks.
There's also the "messaging" hack I prototyped for CARv2: https://github.com/ipld/go-car/pull/322 & https://github.com/ipld/js-car/pull/89 after a similar request for this kind of thing came up from the web3.storage team who wanted to put some metadata inside of their CARs. It was never used, and it fits in before the data payload, which may not be ideal - but since a CARv2 wraps a CARv1, given a 2-step process it might make even more sense than this since you're providing metadata about a thing within the thing itself, which is not so ideal since the metadata needs to be excluded from the thing somehow—and we'd have to assume that there'd be some layer that would strip this cleanly so it doesn't end up making a mess of other layers of the stack where such a codec code would make a mess of things.

I'm sure @lidel can pull up some record of the discussions about putting a tombstone at the end of trustless gateway CAR responses, those are probably relevant here and maybe back on the table?
If this becomes part of the protocol, then having a new codec code in CIDs is going to cause a bit of havoc for users—doing a simple curl of the CAR will leave you with a CAR that has a block you can't decode without having this codec in your software's registry. A similar problem applies for a dag-cbor (or other common codec) tombstone block, but it's a bit more manageable - you can at least get your content out without your parser/checker borking at the block, you could easily import it into a Kubo node, parse it in your browser, without having to have this codec registered; you just have a weird block to deal with, which could be a problem in some scenarios.
But having said all that, if we do go with a tombstone, then a couple of extra thoughts:

It could be enabled with a new query parameter to make it opt-in by a client that knows how to deal with these (avoiding the curl problem; lassie could strip it out and give you the relevant data in some side channel).
It could be extended to do the error handling we're currently hacking with the zero-length chunk approach and we could add error messages.

As you describe the intention that's getting written up as a car/ipip spec extension is that this codec would be used in conjunction with explicit opt-in signalling from both client and server, to mitigate the curl problem.
The codec here also isn't limited to an 'end of stream' tombstone - metadata key-value pairs may be transmitted during transmission (e.g. to provide partial merkle inclusion proofs, metadata on cross-deal traversal, etc.)
for metadata like alternative checksums, a message directly after the header wouldn't be efficient.

the immediate use case is described in here:ipfs/specs#431 (thanks @bajtos!)
The other use case that this metadata signal in-band in car streams provides is to interleave things like payment vouchers and/or partial hash-tree validation data in-line with a data transfer on the wire. a multicodec to signal that is much more explicit than a specially shaped cbor object.

I think the next step is to propose a spec+code change in go-car on the specific semantics for reading/writing a car stream against a network with support for metadata blocks.
I would appreciate pointers on other spec impact or parts of this project that should also be considered as we proceed

Back to the basic request here of adding a new serialization/codec to the table - we can't do that where you're asking for a duplicate of an existing serialization method. We've got ample history of rejecting such additions where someone just wants a code to represent a codec+schema, which is what this is. So as long as this is, at base, cbor, json, or some other existing unschema'd codec, then it can't go in. Schema signalling via codec code is a door that we've tried hard to keep closed, pushing people to keep that level of signalling out of the CID. The demand for such signalling tells us that there is a hole in the stack that people want utilities for, but that's where discussions about CIDv2 (and other methods) come in; jamming it into CIDv1 is going to make things much harder to manage.

don't we do that with cbor vs dag-cbor and json vs dag-json today?

would it be more acceptable to call this a 'transport' signalling value, like the other transport signalling values already present in the table?

In https://github.com/ipfs/specs/pull/431, we pivoted to a different solution that does not require any new multicodec.
I think this PR can be closed now.


Add command line interface to predict and plot a single peptide spectrum

With ms2pip-single-prediction a single peptide spectrum can be predicted with MS²PIP and plotted with spectrum_utils. For instance:
ms2pip-single-prediction "PGAQANPYSR" "-" 3 --model TMT

will write the following image to a file:

Tests fail because rdkit cannot be imported (cannot be installed with pip). See bittremieux/spectrum_utils#14

RDKit issue has been fixed.


Issue 87

I fixed the issue we ran into in #87. It shouldn't happen again after this.
@WJXHenry Please take a quick look and let me know what you think.

Looks good


⚠ ClamAV has degraded performance

In 68eb810, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 73 ms

Resolved: ClamAV performance has improved in 5097da4.


Contributing.md

Related Issuse or bug

contributing.md was not present

Fixes: #232
Proposed Changes

contributors assests folder contains contributing.md which has details about how to make open source contributions

Hey i think this a copied one from another project.
Please change it
The contributing guidelines should be according to our project.

I might have copied the main headings but i followed the original github and git articles to write them and even added clear intructions in screenshots.
Is there anything thats not according to our project?

start with the compilation of dlib in your system, clone the repository in some directory in your system:
# Clone the dlib library in some directory of the system
git clone https://github.com/davisking/dlib.git

Then, proceed to build dlib with the following commands:
See these commands for installation are for other project

The commands for installation and setup should be related to facex right!

start with the compilation of dlib in your system, clone the repository in some directory in your system:
# Clone the dlib library in some directory of the system
git clone https://github.com/davisking/dlib.git

Then, proceed to build dlib with the following commands:
See these commands for installation are for other project

oh okay now i see it. i thought you asked for completely basic beginner guide as you mentioned in issue. I will add dlib now.

The commands for installation and setup should be related to facex right!

yes yes. I will add all other details regarding complete setup of face x .

Hey there are many commands that are not related to our project i am sending you a reference contributing.md

@smriti1313 a reference https://github.com/HarshCasper/Rotten-Scripts/blob/master/CONTRIBUTING.md

Even though i didn't know about such a repo, i actually referred some other online contributing.md. I ll.make the necessary changes

No problem @smriti1313 you can refer to this repo i mentioned


document is not defined

Hi,
please add check for document.
I am using web-animations-js with angular universal and getting this error
System.Exception: Call to Node module failed with error: Prerendering failed because of error: ReferenceError: document is not defined

Did you figure this out?  I have the same error.

please add check for document.

The polyfill requires document. Perhaps you could add a check for document before loading the polyfill?


Submitting labs 1 to 6

What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports) Minor changes to lab files to demonstrate I was following the classes
What did you learn from the changes you have made?
Deep Learning foundations
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
How were these changes tested?
A reference to a related issue in your repository (if applicable)
Checklist

[x] I can confirm that my changes are working as intended

Hi Tianyi,
Thank you for your comments. I pushed some changes to incorporate your
comments for lab 2 and 4.
Kind regards,
Ivan
On Wed, Dec 4, 2024 at 2:27 PM Tianyi Liu @.***> wrote:

@.**** requested changes on this pull request.
Hi Ivan!
Thank you for submitting your DL Workbooks. Please refer to my comments on
your lab2 to revise your submission.
If you have any questions, please don't hesitate to let us know.
Thanks,
Tianyi [LS]
—
Reply to this email directly, view it on GitHub
https://github.com/malkus1306/deep_learning/pull/1#pullrequestreview-2479715508,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARJRMJXAA276ZJDJJCJC34D2D5JTJAVCNFSM6AAAAABSYW27DSVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDINZZG4YTKNJQHA
.
You are receiving this because you authored the thread.Message ID:
@.***>


Ability to use this boilerplpate w/o gateway connection

What is currently missing?
As part of me using this boilerplate in an AWS Lambda, we can't maintain a gateway connection. Because of this, we should be able to use this without a gateway connection.
How could this be improved?

Is this a feature you would work on yourself?

[ ] I plan to open a pull request for this feature.

hey, @zwinnerman-fleetdm! 👋
thanks for raising this!
I'm going to prepare a PR that provides a convenient way to use gateway-less state in the boilerplate


Remove -js-timers

Sorry for just opening a PR without a specific issue. Related to #61.
delay seems to do what we want.
We can avoid a JS specific dependency by using delay.

Works nicely, thanks!


Update Repositories to match OpenApi 0.8.3

Open API has been upgraded to version 0.8.3
https://github.com/nemtech/nem2-openapi/releases/tag/v0.8.3
The main change is the addition of getNetworkFees "Get transaction fees information"  in the Network Route.
This issue is to add the new endpoint to the Network Repository

NPM snapshot generated  nem2-sdk-openapi-typescript-node-client lib has been published. Version 0.8.3-SNAPSHOT.202002111348.
The release version will be deployed soon.


Create documentation for using xdebug with eclipse

Issue Type

Documentation Report

Summary
Students of DebugAcademy.com use the free Eclipse IDE with DrupalVM, and we have recorded steps for integrating the two.
This task is for an upcoming sprint on March 11, 2018 (please do not complete this task so it is available for new contributors).
One of the sprint-attendees will submit a pull request with the documentation addition.

I completed this task
https://github.com/geerlingguy/drupal-vm/pull/1720
-Valentine S.

@valeygal1990 - Thanks!


Feature handle left players correctly

closes #193
Issue: https://github.com/sopra-fs22-group-36/screw-your-neighbor-server/issues/160
Issue: https://github.com/sopra-fs22-group-36/screw-your-neighbor-server/issues/169

Impressive work, thanks a lot!


Add NeonLabs Devnet

WrappedHMT version for Devnet
Total supply increases each time token is bridged

@posix4e

@molecula451 let’s all chat in person with saqib

@posix4e could be merged no? It's the info of smart contracts released on Neonlabs Devnet


Sequencer should handle mutipath transfers

Describe the bug
Sequencer should check for the minimum number of bids for multipath transfers, before executing the transfer.
To Reproduce
Steps to reproduce the behavior:

Send a single bid to sequencer for a transfer with path length > 1

Additional context
This check should happen in sequencer-subscriber

TBD

another issue


Got 'React/RCTBridgeModule.h' file not found after ejected from expo

Got  'React/RCTBridgeModule.h' file not found after ejected from the expo on iOS, and how to solve this issue? Thank you.

create a dummy.swift file in your XCODE project en link the bridge when asked

Thank you, If I install from react-native init and add dummy.swift I got no problem. But ejected from expo has a problem with error code above.

I think you need to link it again. Try removing it and re-create

@maendamedia Thanks for your support but still don't solve the problem.

@silkyland I followed the instructions found here. see modenero's comment.
the path i entered is $(SRCROOT)/../../../ios/Pods/Headers/Public/**


How do we import and use plugins like we did in bootstrap-vue? Or do we even need to do this with "bootstrap-vue-next"

What you are trying to do.
In bootstrap-vue, we could import plugins like shown below and use it directly. How can we do that with bootstrap-vue-next.
consta app = createApp(App)

import {
    CardPlugin,
    ButtonPlugin,
    AlertPlugin
 } from "bootstrap-vue";

app.use(CardPlugin)
app.use(ButtonPlugin)
app.use(AlertPlugin)

What you have already tried.
Tried the similar approach with bootstrap-vue-next.
Any error messages you are getting.

If we are doing like mentioned above, I'm getting Module '"bootstrap-vue-next"' has no exported member 'xxxxPlugin'
But when i try using normal import like import CardPlugin from "bootstrap-vue-next", then no error. And even I can use app.use(CardPlugin) without any errors. But is it the correct approach.

I'm confused about the plugin support.
Environment (please complete the following information):

OS: Ubuntu 22.10
Package Version: 0.8.0
Npm/Yarn/Pnpm Version: npm - 8.19.3

There are no plugins that achieve this functionality. To achieve this result, you should use the unplugin-vue-components BootstrapVueNext resolver. That way, you can use any component you want without the need for plugins, but while also automatically treeshaking everything. I'm not necessarily opposed to implementing the feature, but it seems redundant when there are better options. I myself did not know these things existed, nor would I ever use them in comparison to the other option of using the automatic resolver.
I am going to close this as 'not planned', but I am free to suggestions. Alternatively, you can implement the feature yourself and I will approve it. But I will not spend crucial time on this rarely used feature.


fix: force trackPageview to track the destination URL

Seems like trackPageview is tracking the "old" path instead of the new visited url. I was having a hard time matching the Fathom dashboard visitor URL and my app current URL, it was always one route behind. Unsure if this comes from the fathom-client library or their own
When the script is loaded it tracks the initial URL /:

It tracks the pageview of the / path which is correct.
Then navigating to /jobs/director-of-operations-wind-drone:

Note that it has passed exactly the same URL. Then we will navigate again to the homepage /:

Here shows how it has passed the last url /jobs/director-of-operations-wind-drone instead of the new one /.
This PR solves the issue by ensuring that the URL tracked by the fathom client is the URL the user is navigating to by passing it to the trackPageview method. I have tested this many times but would love if someone could reproduce it too before merging.

Doing some more research here... Seems like the fathom script.js tries to use the canonical tag (if present) to resolve the current location. Since I am using @nuxtjs/seo package, it sets this tag automatically.
https://usefathom.com/docs/script/script-advanced#api
This function is extracted from their tracking script.js:
function getLocation(params) {
  var a, location = window.location;
  return void 0 === params.url ? canonical && document.querySelector('link[rel="canonical"][href]') && ((a = document.createElement("a")).href = document.querySelector('link[rel="canonical"][href]').href, location = a) : (location = document.createElement("a")).href = params.url, location
}

My bet is that the canonical tag doesn't get changed as fast as the router watch function is triggered.

MY BAD! Setting canonical: false solves the issue... I hope this helps to anyone before getting as deep as I went debugging fathom's tracking script...
  fathom: {
    config: {
      canonical: false,
    },
  },

Thanks for the PR effort, even though we didn't end up needing it 👍🏻


MAINT: code tidy

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
10 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.04%) to 91.682%

Files with Coverage Reduction
New Missed Lines
%

.nox/test-3-9/lib/python3.9/site-packages/cogent3/core/alphabet.py
10
94.3%

Totals

Change from base Build<PHONE_NUMBER>:
0.04%

Covered Lines:
178551

Relevant Lines:
194750

💛  - Coveralls


Return inserted data

sometimes after insertion of data, i need to process the data inserted into some other functions, but i can't get the data inserted, you as well say that why would you use the data after insertion when you already had them before insertion, well, that's the idea of a promise, i want to process the data in the then function after they're successfully inserted, but my issue is that i only get the id back, can i get any help, anything i forgot ??
i'm using mysql database
>knex('users').returning('username').insert({username:'kaggfsd',password:'fgkgfdfd',email:'ngfgfla'}).then((data)=>{console.log(data)})
Promise {
  _bitField: 0,
  _fulfillmentHandler0: undefined,
  _rejectionHandler0: undefined,
  _promise0: undefined,
  _receiver0: undefined }
> [ 7 ]

Knex returns the same thing that db server returns from insert query. I suppose you are using some database like mysql that does not support returning statement. To get inserted data with mysql you need to select the row with inserted id. Or you need to return the same object you inserted by explicitly returning it from promise.

Maybe this helps
router.post('/todos', (req, res) => { 	knex('todos') 		.insert(req.body) 		.then(insertedTodo => { 			console.log('insertedTodo:', insertedTodo) 			knex('todos') 				.where('id', insertedTodo[0]) 				.then(selectedTodo => { 					return res.json(selectedTodo) 				}) 		}) 		.catch(err => res.json(err)) })

Is this still the only solution?!


Improve performance of Compressor vis-à-vis CompressorSequential

Both can found in compress package. CompressorSequential has been written for optimal performance in a single thread. Compressor (formerly known as ParallelCompressor) is used for prototypes and experiments and is therefore aiming at utilising maximum resources to run prototypes faster.
But maintaining two variants of the same code is error prone. Aggregator (part of Erigon2 prototype) has been switched to Compressor (parallel compressor) and now it is runs slower. My suspicion is that parallel compressor is wasting a lot of time on dispatching work, scheduling and on extra memory allocations to make sure thread-safely. We would like to profile those areas and optimise them.
For more context, in production, it is likely we will run compressor in a SINGLE background thread. So it may not even need to spawn goroutines in that mode. Parallel mode would only be used for experiments and prototypes.
Beyond Erigon2 prototype, compressor is currently used to package block header and block body snapshots. Requirement there (as well as in Erigon2 prototype) that optimisations do not change the resulting compressed file. Also, regardless of number of workers, the resulting compressed file should be the same.
However, if we find an optimisation that requires change of the file format, we will definitely consider it!

I just removed persistence of dictionary file https://github.com/ledgerwatch/erigon-lib/pull/283
But performance issue still exists (I mean this issue is valid)

Added creation of superstrings immediately - instead of writing to file first: by https://github.com/ledgerwatch/erigon-lib/pull/284 . We still need to create uncompressedFile file - because we need read data twice (for reducedict). Sequential compresser also doing it. Need to add here same trick as in ETL - create uncompressedFile only when it > etl.BufferOptimalSize.
Performance issue still exists (I mean this issue is valid).

Related to https://github.com/ledgerwatch/erigon-lib/pull/302


Error code: 18 error message: Transferred a partial file (CURLE_PARTIAL_FILE): HTTP/2 stream 1 was not closed cleanly

Hello, tell me, please, what can i do to resove this problem:
.. URL .. was unsuccessful. error code: 18 error message: Transferred a partial file (CURLE_PARTIAL_FILE): HTTP/2 stream 1 was not closed cleanly before end of the underlying stream call to .. URL ..
Yesterday all was OK. Today something happend.
i use big GET requests.

Hi. I'm not sure the CURLE_PARTIAL_FILE error is an issue with the library. From the docs, it says this error comes up when the received file is less than expected:
CURLE_PARTIAL_FILE (18)

A file transfer was shorter or larger than expected. This happens when the server first reports an expected transfer size, and then delivers data that does not match the previously given size.

from https://curl.se/libcurl/c/libcurl-errors.html#CURLEPARTIALFILE


Doubts about file modification in the final step of the humble tutorial

Hi @hatem-darweesh ,
Thank you for the great work. I have followed humble tutorials to implement co-simulation. My environment is Ubuntu22.04+ROS2 humble+autoware release/2023.10.
In the galactic version, we need to modify four files, gnss.launch.xml、autoware.launch.xml、sensor_kit_calibration.yaml、sensors.calibration.yaml. However, in humble version, the tutorials do not mention the first two. I am puzzled whether the first two files should be modified.
Also, in the galactic version,  sensor_kit_calibration.yaml、sensors.calibration.yaml  is in "src/sensor_kit/sample_sensor_kit_launch/sample_sensor_kit_description/config". But in humble version,  the tutorials mention "src/param/autoware_indicidual_params/carla_sensor_kit". Where should these two files be placed?
Besides, may I ask if the final step of the tutorial is to compile autoware? Is it only necessary to compile newly added packages, or do I need to recompile all packages?
I'm looking forward to your reply. Thank you.
I

Hi @tk-menot

Autoware team changed the way GNSS is handled in the Localization and mapping. that is why we don't need to change the those .xml files.
same for the sensor kit calibration.
the sensor kit configuration should be placed in two places: (default place, and src/param/autoware_individual_params/) there were a spilling mistake here. this is the place in the original repo: https://github.com/autowarefoundation/autoware_individual_params/tree/main/individual_params/config/default

I understand, thank you for your reply


EarnV2: Lesson headlines missing

In the new EarnV2 lessons, the Lesson Headlines are missing. In their place, the Quiz Questions are used as Lesson Headlines.
Example:
Source: 202.1  https://earn.blink.sv/chapter-202-attributes-of-a-good-store-of-value/202.01-lesson-what-is-good-sov
App:

Currently the headline is "What are some attributes that make a good store of value"
Lesson Headline in 202.01 should be "Some stores of value are better than others"
This mistake seems to be throughout all new EarnV2 lessons.

this looks to have been solved. can close

@pretyflaco can you confirm?


Dose anynone reproduce ShuffleNet in keras?

An efficient CNN architecture:
https://arxiv.org/pdf/1707.01083.pdf
How to realize the shuffle layer?

I made a PyTorch version here: https://github.com/jaxony/ShuffleNet/blob/master/model.py
Have a look at the channel_shuffle(x, groups) function in the link. Let me know if you have more questions about how to translate it to Keras.

@USTClj - did you manage to implement ShuffleNet in Keras? I'd be really interested to see your progress/contribute (or try out the model if you have already completed it!)

Hi any updates here?


[BUG] _coerce_to_period fails when not passed a freq argument

Describe the bug
whilst writing tests noticed that this fails

def _coerce_to_period(x, freq=None):
    if isinstance(x, pd.Timestamp) and freq is None:
        freq = x.freq
        raise ValueError(
            "_coerce_to_period requires freq argument to be passed if x is pd.Timestamp"
        )

it is never called without a freq argument and its a private method, and then it raises an error, so not sure what freq=x.freq is meant to do
Steps/Code to reproduce the bug
from aeon.forecasting.base._fh import _coerce_to_period

import pandas as pd
import pytest

timestamp = pd.Timestamp("2022-01-01")
result = _coerce_to_period(timestamp)

Expected results
freq = x.freq
Actual results
  File "C:\Code\aeon\aeon\local\debug.py", line 35, in <module>
    result = _coerce_to_period(timestamp)
  File "C:\Code\aeon\aeon\forecasting\base\_fh.py", line 792, in _coerce_to_period
    freq = x.freq
AttributeError: 'Timestamp' object has no attribute 'freq'

Versions
No response

Isn't the freq=None  argument meant to be used when x is a series or a dataframe ? In which case, x.freq do make sense. But if it is never used, as it is a private function, I also see no use of it.


update date in changelog

Description

Pull Request Checklist

[ ] CLA Signed: Have you signed the Contributor License Agreement (individual or corporate, as appropriate)? Only contributions from signed contributors can be accepted.
[ ] Authors: Have you considered adding your name to the AUTHORS file?
[ ] Code Style: Have you ensured your code adheres to the project's coding style guidelines? You can use ./ci.sh lint for automatic code formatting.

Please review the full contributing guidelines for more details.

merge after https://github.com/libjxl/libjxl/pull/3814