Follow API naming Guidelines

Some APIs do not follow the API naming Guidelines for Swift 3. Such as the enum Stale which has the elements Ok and UpdateAfter in Swift 3 they should be named ok and updateAfter respectively. There are probably other APIs which do not match the convention, we need to audit and propose replacements for each API that does not follow the guidelines.
The guidelines can be found here.

Swift API Guidlines and SwiftCloudant
Along with Swift 3, there are official API guidelines approved by the Swift community community via the swift evolution process.
SwiftCloudant currently does not follow the guidelines that are laid out by the community. The most common violation of the guidelines are enum capitalisation, for example, .Ok should be .ok.
This leads to our APIs being difficult to work with and do not behave in the manor that the user would expect.
Our aim should be to make the API as expressive as possible and behave has expected. This may mean departing form the CouchDB way of naming parameters to make their purpose clearer. The example of that
would be updateSeq, which determines if the last update sequence number should be included in the response. It does not provide a sequence number to be used in the request.
General

Changes discussed here will affect multiple classes, protocols or extensions.

There are some potential issues with the API, with Swift's explicit nullablity constructs, it is odd that we allow the the assigning of nil to options which are required. For example
docId is always required for operations operating on documents or on attachments.
To simplify documentation, validation logic and behave as the user would expect, should required parameters become required for initialization and become explicitly non-null? This goes beyond
just document IDs and covers each of the parameters which are required as per the validation rules for the operation. databaseName should be made non-optional since all
operations which operate on databases will require the name of the database to be set.
The naming of parameters are abbreviated, perhaps the abbreviations should be changed to make more sense. For example the docId should at least be documentID or docID. However
with some operations such as PutDocumentOperation using just id would have make sense, especially since we currently use body to refer to the document body. It would also tie
the parameters more closely to the context they appear in. However it does have the potential to cause confusion with the different naming on different operations. For example:

public class GetDocumentOperation : CouchOperation, CouchDatabaseOperation, JSONOperation {

	// ...

	public init(id: String) {
		// ....
	}

	// ...
}

public class GetAttachmentOperation : CouchOperation, CouchDatabaseOperation, DataOperation {

	// ...

	public init(documentID: String, name: String) {
		// ...
	}

	// ...
}

With GetDocumentOperation it is possible that the user will infer that the id parameter is the ID of the document they are going to get from the server without reading the documentation. However
with the parameter called documentID for the GetAttachmentOperation it is possible (although unlikely) the user may expect the parameter to be the same. However the simplicity of using the id as
the parameter label for the init method for document operations.
// more abbreviations
The method convertJson(key: AnyObject) -> String throws should be renamed the jsonValue(of key: AnyObject) -> String throws this will fit within the design guidelines from the community. The method name would then indicate that it
will be returning the converted value as a JSON string. The usage example makes this case the clearest:
let viewKey = "api"
let jsonViewKey = jsonValue(of: viewKey)

With the above it is plain to see what the intent of the method is without looking at the documentation. While we are also here we should be making it possible to use the native swift types directly with this method. So
the type of the parameter of key should become Any which will allow the use of value types without attempting to cast them to their bridged counterpart. The final method signature should be jsonValue(of key: Any) -> String throws
CouchDBClient

Not sure about these changes.

Having to write nil several times to indicate there is not a username or password to be used for this client can be tedious. To better make it to work with an avoid writing nil for the username and the password parameters
a new init method should be introduced.
public init(url: URL)

The above will call down into the designated constructor with the username and password set to nil. Also to simplify the init logic for the CouchDBClient for when auth information is present a second constructor should be created:
public init(url: URL, username: String, password: String)

this would make it clear that a username and password should both be provided.

/Not sure about these changes

The adding operations to the queue to be executed needs improvement. It can be confusing which kind of operation you have when faced the the method signatures:
public func add(operation: CouchOperation) -> Operation {}

public func add(operation: Operation) -> Void {}

There is no easy solution for this, however we could mitigate the confusion for users by replacing those methods with
public func add(couchOperation: CouchOperation) -> Operation

public func add(operation: Operation) -> Void

It reduces cognitive burden around if you'll get an object returned or not, However documentation should make it clear with the case of the CouchOperation variant, that the
returned operation has already been added to the queue and as such it should be used in the add(operation:) variant.
CouchOperation

func callCompletionHandler(response: Any?, httpInfo: HTTPInfo?, error: ErrorProtocol?) should be translated
to complete(response: Any?, httpInfo: HTTPInfo?, error: ErrorProtocol) it will make it clear at the point
of use that this completes the operation and no more processing of the response should be taking place. As a result the func callCompletionHandler(error: ErrorProtocol) method
should be changed to be func complete(error: ErrorProtocol?)

guard error == nil, let httpInfo = httpInfo
else {
	self.complete(error: error!)
    return
}
self.complete(response: response, httpInfo: info, error: nil)

JsonOperation

The JsonOperation protocol needs to be renamed to JSONOperation, this is in keeping with the expected capitalisation.
associated type needs to be renamed from Json to JSON, again this is to be in keeping with the expected capitalisation.

CouchDatabaseOperation
Doesn't require a name change in my view it appears to me the be clear that it denotes an operation which performs and operation on a Couch Database. However this being said the single property defined should have its
type changed from String? to String, since a nil db name isn't useful at all.

CreateDatabaseOperation
CreateDatabaseOperation exposes it's database name as an property an an init method which takes no arguments, now the property needs to be set before the operation can be completed. Perhaps the type for the database name needs to be changed to String rather than String? since this will remove the need to validate this property
and reduce the need to use ! operator to unwrap the db name when the endpoint property is requested. This will also take the surprise out when validation fails for the first time, perhaps with the user expecting a name
to be generated since we did not require one at the time the operation was constructed.
CreateJsonQueryIndexOperation
Class needs to be renamed to CreateJSONQueryIndexOperation since JSON is an abbreviation.
Properties.
indexName could be renamed to name since it should be obvious that it is the name of the index.
databaseName and fields should probably be not be optionals and force them to be set via the init method.
designDoc might not be as clear at the point of use as it could be, perhaps renaming it to designDocument or designDocumentID, might be a better way forward.
CreateTextQueryIndexOperation
Properties
Again indexname could be renamed to name.

databaseName, is the only required property so making it a init requirement will make the operation easier to interact with.

TextIndexFieldType
This should be relocated from it's current top level and move to be within the TextIndexField struct. It
should then also be renamed to Type. This Short name conforms better with the API guidelines.
The vase entries need to be renamed to be lower case. The cases should be boolean, string and number.
DeleteAttachmentOperation
Change type of databaseName, docId and revId to String from String? introduce new init method to
provide these required options.
DeleteQueryIndexOperation
indexName -> name index portion is not required.
IndexType -> DeleteQueryIndexOperation.Type
IndexType.JSON -> Type.json
IndexType.Text -> Type.text
FindDocumentsOperation
SortDirection -> Sort.Direction
SortDirection.Asc -> Sort.Direction.asc
SortDirection.Desc -> Sort.Direction.desc
Mango Operation
transform(sortArray:) -> .transformed() however this is not currently possible with the current generics
implemented in swift. Some investigation required to see if this will be possible in swift 3.
GetDocumentOperation
revs -> includeRevisions this is a bit of a departure from the couchDb api, however it makes it clearer
what is happening compared to the current revs option.
Operation
Errors -> Operation.Error
Errors.ValidationFailed -> .Error.validationFailed
Errors.UnexpectedJSONFormat -> .Error.unexpectedJSONFormat
Errors.HTTP -> Error.http
QueryViewOperation
viewName -> name
updateSeq is a bit of a weird one, on its own, you'd think it would be the Seqeunce number however it isn't
its whether or not to include the sequence number of the last update, as a result perhaps it should be renamed
to includeUpdateSequence or includeUpdateSeq this would it make it more clear that you are asking for it to
be included in the reponse and not something you are including in the request.
OperationRequestBuilder
buildRequest -> makeRequest since its more of a factory, it should be cahnegd from build to request it
might also be worth making it a class method such as class func makeRequest(from operation: HTTPOperation)
rather than going through the init chain and retaining the operation.
HTTPInterceptor
interceptRequest(ctx: HTTPInterceptorContext) -> HTTPInterceptorContext -> interceptRequest(in context: HTTPInterceptorContext)
interceptResponse(ctx: HTTPInterceptorContext) -> HTTPInterceptorContext -> interceptRequest(in context: HTTPInterceptorContext)
ViewOperation
Stale.Ok -> Stale.ok
Stale.UpdateAfter -> Stale.updateAfter
keys and key and potentially confusing, perhaps we should move this to just be keys and document that if users want to match one key they have a single key in the array.
updateSeq see previous discussion.
generateParams -> makeParameters, since this method is more like a factory method, changing it to be makeParameters makes more sense for the context.

Swift API Guidlines and SwiftCloudant
Along with Swift 3, there are official API guidelines approved by the Swift community community via the swift evolution process.
SwiftCloudant currently does not follow the guidelines that are laid out by the community. The most common violation of the guidelines are enum capitalisation, for example, .Ok should be .ok.
This leads to our APIs being difficult to work with and do not behave in the manor that the user would expect.
Our aim should be to make the API as expressive as possible and behave has expected. This may mean departing form the CouchDB way of naming parameters to make their purpose clearer. The example of that
would be updateSeq, which determines if the last update sequence number should be included in the response. It does not provide a sequence number to be used in the request.
General

Changes discussed here will affect multiple classes, protocols or extensions.

There are some potential issues with the API, with Swift's explicit nullablity constructs, it is odd that we allow the the assigning of nil to options which are required. For example
docId is always required for operations operating on documents or on attachments.
To simplify documentation, validation logic and behave as the user would expect, should required parameters become required for initialization and become explicitly non-null? This goes beyond
just document IDs and covers each of the parameters which are required as per the validation rules for the operation. databaseName should be made non-optional since all
operations which operate on databases will require the name of the database to be set.
The naming of parameters are abbreviated, perhaps the abbreviations should be changed to make more sense. For example the docId should at least be documentID or docID. However
with some operations such as PutDocumentOperation using just id would have make sense, especially since we currently use body to refer to the document body. It would also tie
the parameters more closely to the context they appear in. However it does have the potential to cause confusion with the different naming on different operations. For example:

public class GetDocumentOperation : CouchOperation, CouchDatabaseOperation, JSONOperation {

	// ...

	public init(id: String) {
		// ....
	}

	// ...
}

public class GetAttachmentOperation : CouchOperation, CouchDatabaseOperation, DataOperation {

	// ...

	public init(documentID: String, name: String) {
		// ...
	}

	// ...
}

With GetDocumentOperation it is possible that the user will infer that the id parameter is the ID of the document they are going to get from the server without reading the documentation. However
with the parameter called documentID for the GetAttachmentOperation it is possible (although unlikely) the user may expect the parameter to be the same. However the simplicity of using the id as
the parameter label for the init method for document operations.
// more abbreviations
The method convertJson(key: AnyObject) -> String throws should be renamed the jsonValue(of key: AnyObject) -> String throws this will fit within the design guidelines from the community. The method name would then indicate that it
will be returning the converted value as a JSON string. The usage example makes this case the clearest:
let viewKey = "api"
let jsonViewKey = jsonValue(of: viewKey)

With the above it is plain to see what the intent of the method is without looking at the documentation. While we are also here we should be making it possible to use the native swift types directly with this method. So
the type of the parameter of key should become Any which will allow the use of value types without attempting to cast them to their bridged counterpart. The final method signature should be jsonValue(of key: Any) -> String throws
CouchDBClient

Not sure about these changes.

Having to write nil several times to indicate there is not a username or password to be used for this client can be tedious. To better make it to work with an avoid writing nil for the username and the password parameters
a new init method should be introduced.
public init(url: URL)

The above will call down into the designated constructor with the username and password set to nil. Also to simplify the init logic for the CouchDBClient for when auth information is present a second constructor should be created:
public init(url: URL, username: String, password: String)

this would make it clear that a username and password should both be provided.

/Not sure about these changes

The adding operations to the queue to be executed needs improvement. It can be confusing which kind of operation you have when faced the the method signatures:
public func add(operation: CouchOperation) -> Operation {}

public func add(operation: Operation) -> Void {}

There is no easy solution for this, however we could mitigate the confusion for users by replacing those methods with
public func add(couchOperation: CouchOperation) -> Operation

public func add(operation: Operation) -> Void

It reduces cognitive burden around if you'll get an object returned or not, However documentation should make it clear with the case of the CouchOperation variant, that the
returned operation has already been added to the queue and as such it should be used in the add(operation:) variant.
CouchOperation

func callCompletionHandler(response: Any?, httpInfo: HTTPInfo?, error: ErrorProtocol?) should be translated
to complete(response: Any?, httpInfo: HTTPInfo?, error: ErrorProtocol) it will make it clear at the point
of use that this completes the operation and no more processing of the response should be taking place. As a result the func callCompletionHandler(error: ErrorProtocol) method
should be changed to be func complete(error: ErrorProtocol?)

guard error == nil, let httpInfo = httpInfo
else {
	self.complete(error: error!)
    return
}
self.complete(response: response, httpInfo: info, error: nil)

JsonOperation

The JsonOperation protocol needs to be renamed to JSONOperation, this is in keeping with the expected capitalisation.
associated type needs to be renamed from Json to JSON, again this is to be in keeping with the expected capitalisation.

CreateDatabaseOperation
CreateDatabaseOperation exposes it's database name as an property an an init method which takes no arguments, now the property needs to be set before the operation can be completed. Perhaps the type for the database name needs to be changed to String rather than String? since this will remove the need to validate this property
and reduce the need to use ! operator to unwrap the db name when the endpoint property is requested. This will also take the surprise out when validation fails for the first time, perhaps with the user expecting a name
to be generated since we did not require one at the time the operation was constructed.
CreateJsonQueryIndexOperation
Class needs to be renamed to CreateJSONQueryIndexOperation since JSON is an abbreviation.
Properties.
indexName could be renamed to name since it should be obvious that it is the name of the index.
databaseName and fields should probably be not be optionals and force them to be set via the init method.
designDoc might not be as clear at the point of use as it could be, perhaps renaming it to designDocument or designDocumentID, might be a better way forward.
CreateTextQueryIndexOperation
Properties
Again indexname could be renamed to name.

databaseName, is the only required property so making it a init requirement will make the operation easier to interact with.

TextIndexFieldType
This should be relocated from it's current top level and move to be within the TextIndexField struct. It
should then also be renamed to Type. This Short name conforms better with the API guidelines.
The vase entries need to be renamed to be lower case. The cases should be boolean, string and number.
DeleteAttachmentOperation
Change type of databaseName, docId and revId to String from String? introduce new init method to
provide these required options.
DeleteQueryIndexOperation
indexName -> name index portion is not required.
IndexType -> DeleteQueryIndexOperation.Type
IndexType.JSON -> Type.json
IndexType.Text -> Type.text
FindDocumentsOperation
SortDirection -> Sort.Direction
SortDirection.Asc -> Sort.Direction.asc
SortDirection.Desc -> Sort.Direction.desc
Mango Operation
transform(sortArray:) -> .transformed() however this is not currently possible with the current generics
implemented in swift. Some investigation required to see if this will be possible in swift 3.
GetDocumentOperation
revs -> includeRevisions this is a bit of a departure from the couchDb api, however it makes it clearer
what is happening compared to the current revs option.
Operation
Errors -> Operation.Error
Errors.ValidationFailed -> .Error.validationFailed
Errors.UnexpectedJSONFormat -> .Error.unexpectedJSONFormat
Errors.HTTP -> Error.http
QueryViewOperation
viewName -> name
updateSeq is a bit of a weird one, on its own, you'd think it would be the Seqeunce number however it isn't
its whether or not to include the sequence number of the last update, as a result perhaps it should be renamed
to includeUpdateSequence or includeUpdateSeq this would it make it more clear that you are asking for it to
be included in the reponse and not something you are including in the request.
OperationRequestBuilder
buildRequest -> makeRequest since its more of a factory, it should be cahnegd from build to request it
might also be worth making it a class method such as class func makeRequest(from operation: HTTPOperation)
rather than going through the init chain and retaining the operation.
HTTPInterceptor
interceptRequest(ctx: HTTPInterceptorContext) -> HTTPInterceptorContext -> interceptRequest(in context: HTTPInterceptorContext)
interceptResponse(ctx: HTTPInterceptorContext) -> HTTPInterceptorContext -> interceptRequest(in context: HTTPInterceptorContext)
ViewOperation
Stale.Ok -> Stale.ok
Stale.UpdateAfter -> Stale.updateAfter
keys and key and potentially confusing, perhaps we should move this to just be keys and document that if users want to match one key they have a single key in the array.
updateSeq see previous discussion.
generateParams -> makeParameters, since this method is more like a factory method, changing it to be makeParameters makes more sense for the context.

So the above gives me view on what needs to be changed to match the guidelines, anyone have any thoughts?  @ricellis


grunt-ts not respecting "exclude" in tsconfig

I am using a tsconfig.json file in conjunction with grunt-ts here is the grunt task:
ts: {
    default: {
    tsconfig: true
  }

and the tsconfig.json file:
{
  "compilerOptions": {
    "target": "es5",
    "module": "system",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false,
    "rootDir": "app",
    "outDir": "dist"
  },
  "exclude": [
    "node_modules",
    "bower_components",
    "typings/main",
    "typings/main.d.ts"
  ]
}

When I try to run this grunt task I get an error TS2300 from duplicate identifiers.  the exclude: "typings/main" is meant to avoid this, and it works when running tsc from the command line, but not when running the grunt-ts task. Somewhat confused as it is definitely excluding node_modules in the compilation, but not the typings file.

Duplicate of https://github.com/TypeStrong/grunt-ts/issues/285 . Feel free to jump in and help :rose:


no example code for the sortable-table-rows example?

Hi, I'm looking through the examples but can't find the code associated with this example: http://clauderic.github.io/react-sortable-hoc/#/react-virtualized/sortable-table-rows
Can you please point me in the right direction?

Okay, I finally found a working example in their codebase:
https://github.com/bvaughn/react-virtualized/blob/master/docs/Table.md#rowrenderer
Could you please add a source to that example nonetheless so the next person has a better time finding this? :)

Yeah especially since the react-virtualized Table example gives an error when you run it (I get sortBy undefined. Probably because context is undefined, probably because I can't figure out how to add items). So there's no way to start from their table and learn to integrate sortable.  I'm trying to figure out how to get this working but having very little luck.  I'm trying to expand outward from react-virtualized's minimal example linked above but that's a little TOO minimal.
Please add row sorting code to examples.

please find example here
https://github.com/clauderic/react-sortable-hoc/blob/master/examples/virtual-table-columns.js

@chhornponleu : That's for columns, not for rows.

@clauderic Can you please add some example for sortable table rows? Like the one you have on the demos page.

Did anyone find a source example of the row reordering?

For anyone looking for a sortable-table-row example, I have made this.
I still couldn't figure out the auto scrolling part, so if anyone knows how to achieve it please fork this example and implement it. Thanks


Fix for Redshift data import issues #13542

Fix for https://github.com/dbeaver/dbeaver/issues/13542

Redshift uses lower case for table name. Added logic to handle the conversion that happens at Redshift end.
Special characters in column names are escaped using double quotes. Added logic to escape special characters using double quote when the resolution without double quote doesn't return anything.

So, Redshift converts only ASCII character to lower case? What happens to other code units? If it's just the matter of case conversion, you can try redefining SQLDialect#storesUnquotedCase to return DBPIdentifierCase#LOWER in PostgreDialect using serverExtension to determine whether you're running under Redshift or regular PostgreSQL database.
I don't get it. Maybe there's something to do with previous item. Anyway this conversion is handled by dialect too, see DBUtils#getUnQuotedIdentifier

@ShadelessFox

Only ASCII characters are folded to lower case
https://docs.aws.amazon.com/redshift/latest/dg/r_names.html
Should I add that logic in PostgreDialect?

See the issue you should be able to follow. Thanks for the suggestion. Will do that.

Only ASCII characters are folded to lower case

That's a bit strange to me. That means that you can't have non-ascii characters in an identifier?
Or this would happen instead (with cyrillic characters): ABC ТЕСТ abc ⇒ abc ТЕСТ abc?

@ShadelessFox
I just tested it CREATE TABLE "ABC ТЕСТ abc" AS SELECT 1 co1;
Output:
SELECT * FROM pg_catalog.svv_tables WHERE table_name LIKE '%ТЕСТ%'
{
"SELECT * FROM pg_catalog.svv_tables WHERE table_name LIKE '%ТЕСТ%'": [
{
"table_catalog" : "gdw",
"table_schema" : "public",
"table_name" : "abc ТЕСТ abc",
"table_type" : "BASE TABLE",
"remarks" : null
}
]}
So shall I add this logic for Redshift in PostgreDialect?

Uhm, okay, that's odd but I should accept it as a fact.
Unfortunately, by redefining SQLDialect#storesUnquotedCase to return DBPIdentifierCase#LOWER mentioned before, it will convert ABC ТЕСТ abc ⇒ abc тест abc. And we don't have any facilities to define custom case conversion routine per dialect. But I think that's a separate issue/improvement and you can ignore that for now.

I have added the change you suggested for #2. Used DBUtils.getQuotedIdentifier(this.getTarget().getDataSource(), sourceAttrLabelOrName)
For #1, I think it's better to not do anything in Dialect and just handle it in RedshiftSchema's get child thereby limiting the ASCII lower case to only that place.

@ShadelessFox-Completed the changes requested.

All changes requested are completed.

Thanks for the contribution.
But actual solution is different. We enquoted column names during mspapin proceudre by mistake.
Fixed in https://github.com/dbeaver/dbeaver/commit/a33628a1f088afb7f07fb19a5262698b39cae2d1

The fix in this ticket is too different. I'm now sure does it still make sense.. LEt's keep PR open for a while

@serge-rider
I see. Thanks for the fix. The change you committed looks good (I tested too) for the column name special character.
We still need the table name fix. Shall I close this and open a new pull request for just that piece? (#1 in what I had listed)
Need Redshift Schema getChild and CommonUtils.toAsciiLowerCase to handle upper case name.

Now you can undo any changes made to data transfer (https://github.com/dbeaver/dbeaver/pull/13543#issuecomment-899590836) and then squash all the commits into just one :)

@ShadelessFox
Done... Undid column name changes and squashed all the commits into one for upper case table names!

@serge-rider
At this point this code is restricted to handle upper case table names provided (Redshift makes only ASCII characters in the table name to lower case). Is there anything else that I would have to do?

Now I wonder, what will happen if case-sensitive identifiers are enabled?
https://docs.aws.amazon.com/redshift/latest/dg/r_names.html#r_names-case-sensitive-identifiers

Good question. I kind of ignored it as it's not on by default. But probably we should handle that too.
SET enable_case_sensitive_identifier=TRUE;
CREATE TABLE "temp_CASE1" AS SELECT 1 col1
{
"SELECT * FROM pg_catalog.svv_tables WHERE lower(table_name) LIKE '%temp_case1%'": [
{
"table_catalog" : "dev",
"table_schema" : "public",
"table_name" : "temp_CASE1",
"table_type" : "BASE TABLE",
"remarks" : null
}
]}
SET enable_case_sensitive_identifier=FALSE
CREATE TABLE "temp_CASE2" AS SELECT 1 col1
{
"SELECT * FROM pg_catalog.svv_tables WHERE lower(table_name) LIKE '%temp_case2%'": [
{
"table_catalog" : "dev",
"table_schema" : "public",
"table_name" : "temp_case2",
"table_type" : "BASE TABLE",
"remarks" : null
}
]}

I thought we can use PostgreDataSource#getSetting to determine whether this option is set or not, but looks like enable_case_sensitive_identifier is just not present here.
We perform select * from pg_catalog.pg_settings (see PostgreDataSource.SettingCache) to query all possible settings, but doing this in Redshift results in a very short list of possible settings (despite the fact that according their docs there's a more). Also, using SHOW ALL produces the same results. But by using SHOW enable_case_sensitive_identifier it's possible to query this option.

So, how do we handle cache for that, what if it's updated after we initialize the cache?

That's actually a weird situation. I can't imagine someone would set this option via SQL editor and then go to metadata editor and create a new table. We don't really handle such cases, let along the fact that this option can be set permanently (not just for current session, which makes more sense to me IMO).
We can't use this API anyway because this specific option is not present in pg_settings, as I mentioned earlier.

We can leave that as a known limitation then.
On Sun, Aug 22, 2021 at 9:42 PM, Who cares @.***> wrote:

That's actually a weird situation. I can't imagine someone would set this
option via SQL editor and then go to metadata editor and create a new
table. We don't really handle such cases, let along the fact that this
option can be set permanently (not just for current session, which makes
more sense to me IMO).
We can't use this API anyway because this specific option is not present
in pg_settings, as I mentioned earlier.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/dbeaver/dbeaver/pull/13543#issuecomment-903381113,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AITJZVQUCKZXTRCIUHBZDSTT6GRPFANCNFSM5CG3CKSQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

--
SD

That's not an option (no pun intended). We can use a weird hack:

Try to get option using getDataSource().getSetting("enable_case_sensitive_identifier")
If it's not present, then execute SHOW enable_case_sensitive_identifier and add it to cache manually
If it's present, then use it, otherwise don't attempt to convert case

Do we really want to to this just in this particular place? Maybe we want to extend DBPIdentifierCase instead to support dialect-specific ways to transform identifier's case?
The simplest solution would be either to add overloaded DBPIdentifierCase#transform method that will accept data source and identifier and fallback call to the dialect, or eliminate DBPIdentifierCase#transform entirely and move this logic to the dialect itself.

I think we should implement DBPIdentifierCase specifically for Redshift and use it in all case-conversions.

Ok @serge-rider . I will look into it.

@ShadelessFox - I am revisiting it now after a hiatus. Do you think it's better to handle this in the Extension class configuring dialect?

Yes, it would be more flexible solution. We've discussed the possibility of converting DBPIdentifierCase into interface, but it would require much more changes. So let's move this functionality to the dialect class, as described in https://github.com/dbeaver/dbeaver/pull/13543#issuecomment-903387583.

Is this feature added now @Serge Rider?
On Sat, 15 Oct 2022 at 15:04, Serge Rider @.***> wrote:

Closed #13543 https://github.com/dbeaver/dbeaver/pull/13543.
—
Reply to this email directly, view it on GitHub
https://github.com/dbeaver/dbeaver/pull/13543#event-7595396348, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AITJZVVHS4TWQCGWN4JAFM3WDL54RANCNFSM5CG3CKSQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
SD

No, it's not, unfortunately.
The PR is stalled and there were unimplemented requested changes.
You can create a new PR with all addressed suggestions/changes.


Font issues on homepage

Remove shadow from "Explore the studies" and "News" text on ClinEpiDB live site home page, to give the font a cleaner look.

Done, closing ticket


update Chinese translation, make readme links relative.

noting but updates a translation.
By the way, you may see my version of adding the funtion of reading block extra data.
It works well😉~

International Labour Day, aha?😸
Have a good rest~


Nodes where the member moves out but leaves the device up are imported as inactive

Do a scan pass at the end of the import script which marks nodes active even if they have no active installs, if they have active connected devices

Examples: NN525, NN236


Add current color scheme to environment variables

Describe the feature and the current behavior/state.
Right now there's no way to know if Raycast is running in light or dark mode. This information should be available so that we can render extension's UIs properly, adapting colors to match the window background.
Will this change the current API? How?
Who will benefit from this feature?
Extensions that render colored icons, text, or images
Any Other info.

As of v1.31, you can use environment.theme.


Snyk complains of license issues when using multidb in a project

Snyk was complaining in a project we tried to incorporate ar-multidb. I opened #31 to fix the issue. Feel free to make changes or comments, thanks!

@urkle @atombender Mind taking a look at PR #31 ?


[Webview2 Microsoft Windows] Implements postMessage and inject javascript in Webview2

[Webview2 implementation for Windows issue](Ref issue: https://github.com/react-native-webview/react-native-webview/issues/1848)
We need Webview2 to implements javascript injection in order to communicate from ReactNative to the web view content.
injectJavascript
postMessage / onMessage
We also need Webview2 component to support « window.postMessage » and the react native Webview2 to support « onMessage », to have a two way bridge communication channel.
onMessage reference
(depends on implementation of AddWebAllowedObject API)

For injectJavaScript, we can already use the ExecuteScriptAsync functionality in corewebview2
For postMessage, we can already use the PostWebMessageAsString and PostWebMessageAsJson functionality. Then the JS code that implements postMessage for Windows needs to call window.chrome.webview.postMessage(...)

@tero-paananen I just felt like tagging you. :)

Implementation in progress. PR should be out soon.

Hmm


Easily find inputs to nodes after solving ODE?

Hello everyone,
I was wondering if there is an easy way to retrieve the inputs which went into a node from the (static) edges connected to it, after we have solved the ODE.
I realise it is straightforward to find the nodes connected to a node v_d  in graph g by doing something like v_s = [src(e) for e in edges(g) if dst(e) == v_d]. Then we can apply the f! used in the StaticVertex to recompute the inputs to the node, but this can get a bit clumsy if we have a lot of different types of edges.
Is there a more straightforward way?
Thanks for the help!

Hello Antomek,
if you need the edge state at a particular timepoint you can use the following syntax to recompute edge values at a given timepoint.
nd = network_dynamics(vertexarr, edgearr, g)
gd_nd = nd(x, p,t GetGD) # exposes underlying graph data struct
gd_nd.e_array

Alternatively you can use a SavingCallback to save all edge states during the integration. It might look like this:
using DiffEqCallbacks: SavingCallback, SavedValues

saved_values = SavedValues(Float64, Vector{Float64})
function saving_func(u, t, integrator)
    edgevals = Float64[]
    for i in 1:integrator.f.f.graph_structure.num_e
        push!(edgevals, integrator.f.f.graph_data.e[i]...)
    end
    edgevals
end
cb = SavingCallback(saving_func, saved_values)
sol = solve(prob,Tsit5(),callback=cb)

See also here: https://diffeq.sciml.ai/stable/features/callback_library/#saving_callback
And here: https://github.com/SciML/DiffEqCallbacks.jl/blob/master/test/saving_tests.jl

Does this answer your question?


Allow including JavaScripts as a first thing in the body

Adding this include tag as a first thing after opening of the  HTML tag allows us to include JavaScripts that need to be injected at the very top of the BODY.
Adding empty include in the project which developers can override with their own version in the custom template folder.

:+1: although I believe that there's no problem putting google analytics at the bottom :-)
Thanks!


about use 'SMID.pth'

Thank you very much for your work. I am very interested in it，When I'm trying to use pretrained models about 'SMID.pth',I always can't get the SMID/test_list.txt，How should I get such a file，So I would like to request your help！Thank you！

Please download the text_list.txt from Google Drive or Baidu Disk (code: ggbh) and then put it into the folder data/SMID/SMID_Long_np/
We also paste it here:

0013
0009
0020
0007
0010
0012
0154
0036
0037
0039
0047
0048
0049
0050
0051
0052
0065
0066
0075
0076
0078
0088
0092
0099
0091
0103
0104
0105
0106
0107
0151
0145
0147
0139
0129
0083
0153
0157
0180
0175
0181
0196
0170
0166
0172
0177
0167
0169
0191


Suggestion: Allow setting the cast option in execute

tldr;
const result = connOrTx.execute(query, values, { as: 'object',  cast: myOneOffCastFn })

Reasoning
AFAICT you have to pass cast to connect or the Client factory. This is inconvenient when the code that's calling execute isn't the code that created the connection. For example I might have this...
type UserBalance = {
  userId: string; // but stored as INT64
  balance: bigint; // yeah, my app's users are super wealthy
}
const selectUserBalance = async (
  input: { where: Sql, order: Sql, limit: Sql },
  db: Transaction | Connection
): Promise<UserBalance[]>  {...}

As it is now selectUserBalance has to re-cast the rows after getting them from the library. If you don't know (or, in my case, never can remember) what the connection's cast is doing, this is hard to get right. Am I casting to BigInt?, etc.
I think it'd be nicer to allow the connection's cast to be overridden or extended as needed. In many (if not all) cases cast is the concern of the model "at hand," not the connection. In addition to BigInt as in the example above, there are at least a couple other cases where one might want to cast on a per-model basis:

boolean. The library (rightly) does not try to cast this on its own from say INT8. Even if it did, I'm not sure it's possible to CAST to that in MySQL from an aggregate query.  I think the common case, though, is that it should end up as a boolean.
Cases where one might want to manipulate the raw data, e.g. turning a float into Decimal  or massaging JSON.

How it'd work

Folks could still pass a custom "global" cast to connect.  This or the library's default cast would be used if execute is called without cast set.
It execute is called with cast, the library would use that function rather than the custom or default one.

In userland...
Defining a "global" cast function...
const myGlobalCast = (field: Field, value: string | null) => {
  if (field.type === 'DATETIME' && typeof value === 'string') {
    return new Date(value);
  }
  // etc
  return cast(field, value);
}
const myGetConnection = (url: string): Connection => {
  return connect({
    cast: myGlobalCast,
    url
  });
}

...which can be overridden as need be...
type UserBalance = {
  userId: string; // but stored as INT64
  balance: bigint; // yeah, my app's users are super wealthy
};
const selectUserBalance = async (
  input: { where: Sql; order: Sql; limit: Sql },
  db: Transaction | Connection
): Promise<UserBalance[]> => {
  const { sql: query, values } = sql`some fancy sql here`;
  const cast = (field: Field, value: string | null) => {
    if (field.name === 'balance') {
      return BigInt(value);
    }
    return myGlobalCast(field, value); // or just use the library's default cast
  };
  const result = await db.execute(query, values, { as: 'object', cast });
  return result.rows as UserBalance[];
};

Alternatives Considered

Currently I'm short-circuiting the connection's cast with (field: Field, value: string | null) => value, then recasting the fetched rows knowing that I only have to deal with string|null values.  This isn't as terrible as it sounds, since it's using cast under the hood for most things, but it's not great.
Rename columns to indicate type. Ack. Nope.
Maybe I'm missing something?

Hey @cdcarson, I appreciate you opening up this issue!
I had a question with your implementation and suggestion. What is stopping you from using the field.table and the field.name field that is available on the Field type in order to have that special handling at the global connection-level? This way, you don't have to remember to always pass this custom cast function on a per-execution basis and know that for that specific table and column, it will always be casted correctly. Is that still limiting?

Hey @iheanyi, thanks for getting back.

What is stopping you from using the field.table and the field.name field that is available on the Field type in order to have that special handling at the global connection-level?

Consider this query...
SELECT
  User.id AS id,
  UserAccount.email IS NOT NULL AS isRegistered
FROM User
LEFT JOIN UserAccount on UserAccount.userId = User.id
LIMIT 1

It results in these fields from PlanetScale...
[
  {
    "name": "id",
    "type": "UINT64",
    "table": "User",
    "orgTable": "User",
    "database": "<MY DATABASE NAME>",
    "orgName": "id",
    "columnLength": 20,
    "charset": 63,
    "flags": 32801
  },
  {
    "name": "isRegistered",
    "type": "INT64",
    "columnLength": 1,
    "charset": 63,
    "flags": 32897
  }
]

Note the isRegistered field doesn't have table. So we can't rely on table name + field name to do the mapping you suggest.

@cdcarson Sorry for the delay! I made one small tweak to your branch and merged it in, thanks for contributing! 🙏🏾


[plugin-explorer] graphiql-explorer.d.ts raises error ts(8020)

Howdy 👋
I've just noticed that @graphiql/plugin-explorer/types/graphiql-explorer.d.ts contains invalid TypeScript and raises ts(8020).
You can notice the error in the following picture.

We could easily change this by removing that leading ? (see below). I'm happy to send a PR if you'd like.
-    styles?: ?{
+    styles?: {
      explorerActionsStyle?: { [key: string]: any };
      buttonStyle?: { [key: string]: any };
      actionButtonStyle?: { [key: string]: any };
    };

That's a whoopsie on me 🙈 I copied over the flow type definitions from the graphiql-explorer package and converted them to TS. Seems I missed this nullable type annotation 🙈

Just released the fix for this in<EMAIL_ADDRESS>


gRPC with Multiple .proto files: : No such file or directory (os error 2)

Prerequisites

[x] I have checked the existing issues to ensure this is not a duplicate.
[x] I am running the latest version of Tailcall.

Describe the bug
A clear and concise description of what the bug is.
Steps to reproduce

Create a Tailcall server, that links to a gRPC server using Reflection.
Split the server protobufs into two files:

// dto.proto

syntax = "proto3";

package goodbye;

import "google/protobuf/timestamp.proto";

// The request message containing the user's name.
message GoodbyeRequest {
  string message = 1;
}

// The response message containing the greetings
message GoodbyeReply {
  string message = 1;
  string user_uuid = 2;
  google.protobuf.Timestamp timestamp = 3;
}

and,
// rpc.proto

syntax = "proto3";

package goodbye;

import "proto/b_service/goodbye/dto.proto";
import "google/protobuf/timestamp.proto";

// The greeting service definition.
service Goodbye {
  // Sends a goodbye
  rpc SayGoodbye (GoodbyeRequest) returns (GoodbyeReply) {}
}

Compile into language of choice (I'm using Golang), using Buf.
Enable Server reflection on the gRPC Server
Test the RPCs via Postman with Reflection (they work smoothly)
Hook this up to Tailcall

Expected behavior
Tailcall to run smoothly. Any help would be much, much appreciated as this is a very common design pattern in production.
Actual behavior
Gives an error saying it cannot read the file or directory of an imported proto file when using gRPC reflection. However, other gRPC reflection-based clients such as Postman and Insomnia work fine.
Logs

The path to proto files should be relative to the config file (even the imported ones)

this works for me:
.
├── examples
│   └── hello.graphql
└── protos
    ├── rpc.proto
    └── proto
        └── b_service
            └── goodbye
                └── dto.proto

where hello.graphql is:
schema
  @link(type: Protobuf, src: "../protos/rpc.proto")
  @server(port: 8000)
  @upstream(baseURL: "http://jsonplaceholder.typicode.com", httpCache: 42, batch: {delay: 100}) {
  query: Query
}

type Query {
  hello: String! @expr(body: "Hello, world!")
}

@BenNeighbour, I am investigating the issue. I will let you know about my findings and give you a solution.

The issue is on https://github.com/tailcallhq/tailcall/blob/c7c0b23ade61ce4d4ac4da532b60797e80426089/src/core/proto_reader/reader.rs#L118. The problem is that the current configuration reads either from google standard files or a local file, but there is no implementation for gRPC reflection reading. So, the software fails trying to read from a file that does not exist.
I will go ahead and extend the reader to read from the reflection API. I will open a PR when it is ready.

I thought it would be something of that nature, as it did not fail on my /google/*.proto files. Thank you @karatakis !

@BenNeighbour I fixed the issue, here is the PR https://github.com/tailcallhq/tailcall/pull/2683
I will have it ready by tomorrow. I need to construct a test case so we do not regress in the future.
Thanks for reporting the issue to us.

Hey, any updates on this? Cheers


Release notes for CLI 2.0.12

@derekbekoe,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

cc @sptramer

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/release-notes-azure-cli.md
:white_check_mark:Succeeded
View

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

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/release-notes-azure-cli.md
:white_check_mark:Succeeded
View

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

@sptramer LGTM

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

2017-03-09-profile/docs-ref-conceptual/release-notes-azure-cli.md
:white_check_mark:Succeeded
View (azure-cli-2017-03-09-profile)

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

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

latest/docs-ref-conceptual/release-notes-azure-cli.md
:white_check_mark:Succeeded
View (azure-cli-latest)

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

@sptramer Is this good to merge?

@derekbekoe Not yet. We're waiting on PR #451 to get approved, which will fix the failing docset build. Then this can be merged and go live.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

latest/docs-ref-conceptual/release-notes-azure-cli.md
:white_check_mark:Succeeded
View (azure-cli-latest)

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


react-autocomplete-tags

A React component that build a Autocomplete with tags:
https://github.com/celebryts/react-autocomplete-tags

Hey, thanks for the addition.
Is there a reason you didn't use devarchy.com to add your library?

Feel free to add it to https://devarchy.com/react/need/tags-input


Cop idea: restrict defining global factorybot traits

Factory bot allows for traits to be defined outside of a factory definition. This introduces the risk of collisions in as the tests grow in a codebase.
Example:
FactoryBot.define do
  factory :user do
    first_name { "John" }
    last_name  { "Doe" }
    admin { false }
  end

  trait :admin do
    admin { true }
  end
end

Works in a test
let(:user) { create(:user, :admin) }

Could a cop flag global trait definitions?

This says:

Traits allow you to group attributes together and then apply them to any factory.

And the reason for the very existence suggests that global traits have a reason to exist outside of factories.
But I agree with you that if a trait is meant to be used in several factories, it would make sense to at least define it in a separate file.
Are you certain that FactoryBot wouldn't/shouldn't warn about this?
It would be quite hard to tell if e.g. an :admin trait is defined in both spec/factories/common_traits.rb and spec/factories/admin.rb with static analysis.

It looks like factory bot does raise a FactoryBot::DuplicateDefinitionError. In our case, traits were added to the global scope unintentionally. I was hoping a cop could make global factories explicit.

it would make sense to at least define it in a separate file

This makes sense to me. Thoughts on a "global traits shouldn't be defined in the same file as factories" type of cop?
If this doesn't seem generally valuable, feel free to close.

Thoughts on a "global traits shouldn't be defined in the same file as factories" type of cop?

Makes sense to me 👍


[PyLint] Enforce :raises Type: description

We see many situation where this is incorrect, and it leads to doc cross-ref troubles. Sphinx seems to not consider this a problem while parsing, so it's not caught but out strict Sphinx. We should enforce the description.
Example of violation:
https://github.com/Azure/azure-sdk-for-python/blob/6264dab47096128cc01f78833e3b30f40d756e35/sdk/core/azure-core/azure/core/settings.py#L302
https://github.com/Azure/azure-sdk-for-python/blob/6264dab47096128cc01f78833e3b30f40d756e35/sdk/search/azure-search-documents/azure/search/documents/indexes/models/_models.py#L159
https://github.com/Azure/azure-sdk-for-python/blob/6264dab47096128cc01f78833e3b30f40d756e35/sdk/communication/azure-communication-chat/azure/communication/chat/_chat_thread_client.py#L157
Note that raises, raise, except, exception are all correct and alias to each other
https://www.sphinx-doc.org/en/master/usage/domains/python.html

:raises [TypeError]: ErrorDescription -- can check for the lack of TypeError and raise


7DSgc bundle compression error on new units.

Game name: Seven Deadly Sins Grand Cross
Engine version: 5.x.x.2017.4.23f1
Platform: Android
Error message: Bundle compression '50' isn't supported
Stack trace:    at uTinyRipper.BundleFileScheme.ReadFileStreamMetadata(Stream stream, Int64 basePosition)
at uTinyRipper.BundleFileScheme.ReadScheme(Stream stream)
at uTinyRipper.GameCollection.ReadScheme(SmartStream stream, String filePath, String fileName)
at uTinyRipper.GameCollection.LoadScheme(String filePath, String fileName)
at uTinyRipper.GameStructure.ProcessPlatformStructure(GameStructureProcessor processor, PlatformGameStructure structure)
at uTinyRipper.GameStructure.Load(List1 pathes, LayoutInfo layinfo)    at uTinyRipper.GameStructure.Load(IEnumerable1 pathes, LayoutInfo layinfo)
at uTinyRipperGUI.MainWindow.LoadFiles(Object data)

Seems like a false header, File Contains UnityFS.... 5.x.x.etc.. and then again with UnityFS.... 5.x.x.etc with more "normalized" looking data.

No promises, but you can try my AssetRipper fork. If it doesn't work, I'd love to test with one of these files.


Create Log-in page

When the app opens, the user should be able to click on the log in button in the top right at be navigated to the log in page. Here the user will put their username and password in and send a request to the server.

Resolved with commit: 369cf27


dotnet: emit feature VA or file offset?

we emit the VA of features in our other extractors but I think emitting the file offset for .NET features better suits our user's needs. we also see tools like dnspy use file offset in IL mode.
we need to document this difference if we decide to move forward with emitting the file offset.

i think other tools emit VA (not RVA, nit).
emitting file offset for .NET sounds reasonable. though, what happens if have both native and .NET features? guess we should wait and see.
does .NET not have a concept of VA?

should we additionally emit the token?

I like this breakdown:

File scope - emit tokens
Function scope - emit tokens + file offset
Instructions - emit file offset (we don't have tokens to associate with individual instructions)

for instructions, does it make more sense to emit token + RVA?
im trying to think about how a user would make use of these locations/addresses. i dont recall how to use file offset for .NET analysis, though with the token i'd know how to navigate to the method in dnspy and then review the instruction via RVA.

in #981 we use the metadata token + the RVA


feat: TypeAliasNode.getProperties() like InterfaceNode.getProperties()

Prerequisites

[X] I have read the Contributing Guidelines.
[X] I have searched for existing issues that already report this problem, without success.

Describe the Feature Request
InterfaceNode provides a nice way to access the properties defined on it, but TypeAliasNode does not. However, when TypeAliasNode is an ObjectLiteral, it has a Field[] like InterfaceNode.
Describe the Use Case
Currently, in order to handle both declaration types, I have to .serialize(), but since the two forms are often used interchangeably in TS, it would be great to have a parallel method of handling both.

When you say a "parallel method of handling both" what are you thinking of? Is to have a better idea so I can evaluate if it's something feasible to have.
These are the two files involved:

InterfaceNode
TypeLiteral/ObjectLiteral

Both have a getProperties() method but obviously you will have to first narrow ReflectedTypeNode to TypeLiteralNode to be able to use the getProperties() method because not all types are object literals. I can see why this may not be something nice but right now I don't see what could be done to simplified it.

Thanks! You helped me to see the problem. I think there's any issue with the parameter type of is.TypeLiteralNode(). Here's the issue I was working around:
  let p: PropertyNode[] = [];

  if (node && is.InterfaceNode(node)) {
    p = node.getProperties();
  } else if (node && is.TypeAliasNode(node)) {
    const type = node.getValue();

    // TYPE ERROR
    // Argument of type 'ReflectedNode<Type, Node>'
    // is not assignable to parameter of type 'ReflectedTypeNode<TypeNode>'.
    if (is.TypeLiteralNode(type)) {
      p = type.getProperties();
    }
  }

However, if (type instanceof TypeLiteralNode) properly validates that the type is what I expect it to be. And that unlocks .getProperties(). Perhaps this would be solved by #212?

Many, many thanks!


Restart server

Hi,
I modified my .eslintrc file. Do I have to restart the eslint server to make it work? How would I do that? Restart vscode?

No, there is no need to restart the server. If you encounter problems, please file a bug with steps how to reproduce. Thanks

Still observing. Thanks for the reply!


Add ability to configure prefix for Home Assistant entity IDs

Describe what the PR does:
This PR creates the option of an environment variable that, when set, is prefixed to Home Assistant entity IDs.
Does this fix a specific issue?
Fixes https://github.com/bachya/ecowitt2mqtt/issues/127
Checklist:

[x] Update README.md with any new documentation.
[ ] Add yourself to AUTHORS.md.

Hi Aaron,
just tested this: the prefix is applied to the name instead of the entity id.

That's because you already have those entities created. Home Assistant won't automatically change entity IDs after their initial creation; you have to do that manually.

I stopped ecowitt2mqtt and deleted the device from the MQTT integration, so all entities were removed, and I also deleted the old topics from MQTT just to make sure. Basically I wanted to start from scratch.
Then I restarted ecowitt2mqtt and now the entity ids have the configured prefix. :)

Would it be possible to have the prefix applied only to Entity ID and not the Name of the sensor?

The name is how the entity ID gets generated. I perused the MQTT Discovery docs and didn't see a way to manually set the entity ID; if you find a way, I'm happy to take a look.


Implement scenes tiles in TileMaps

Implements a TileSetScenesCollectionSource for TileSets. Each tile in this TileSet source has a scene that will be instantiated as an internal child of the TileMap node.
I also implemented a "display placeholder" property that allow displaying a placeholder at the position of the tile in case a scene is not visible.
Also, I moved TileSetAtlasSource::INVALID_* to TileSetSource::INVALID_*

Not sure how you should prevent that, but it's possible to draw the scene that you are currently editing, resulting in cyclic dependency. Although it just won't save, so maybe it's handled correctly.
I managed to make the editor crash once, not sure how:

CrashHandlerException: Program crashed
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[0] Ref<SceneState>::operator-> (C:\godot_source\core\object\reference.h:109)
[1] PackedScene::instance (C:\godot_source\scene\resources\packed_scene.cpp:1626)
[2] TileSetPluginScenesCollections::update_dirty_quadrants (C:\godot_source\scene\resources\tile_set.cpp:4484)
[3] TileMap::update_dirty_quadrants (C:\godot_source\scene\2d\tile_map.cpp:373)
[4] call_with_variant_args_helper<TileMap> (C:\godot_source\core\variant\binder_common.h:214)
[5] call_with_variant_args_dv<TileMap> (C:\godot_source\core\variant\binder_common.h:357)
[6] MethodBindT<TileMap>::call (C:\godot_source\core\object\method_bind.h:285)
[7] Object::call (C:\godot_source\core\object\object.cpp:784)
[8] Callable::call (C:\godot_source\core\variant\callable.cpp:53)
[9] MessageQueue::_call_function (C:\godot_source\core\object\message_queue.cpp:259)
[10] MessageQueue::flush (C:\godot_source\core\object\message_queue.cpp:306)
[11] SceneTree::physics_process (C:\godot_source\scene\main\scene_tree.cpp:415)
[12] Main::iteration (C:\godot_source\main\main.cpp:2479)
[13] OS_Windows::run (C:\godot_source\platform\windows\os_windows.cpp:622)
[14] widechar_main (C:\godot_source\platform\windows\godot_windows.cpp:163)
[15] _main (C:\godot_source\platform\windows\godot_windows.cpp:185)
[16] main (C:\godot_source\platform\windows\godot_windows.cpp:199)
[17] __scrt_common_main_seh (D:\a01\_work\26\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
[18] BaseThreadInitThunk
-- END OF BACKTRACE --

Scene tiles are always centered. They either should have configurable offset or at least use the position of instance's root node.
I get this bug for some reason:

Not sure how you should prevent that, but it's possible to draw the scene that you are currently editing, resulting in cyclic dependency. Although it just won't save, so maybe it's handled correctly.

I don't think I can do anything about it. TileSet is a resource, so it can't be strictly associated to the scene it is in. So well... as soon as it does not crashes I believe this is fine, as the engine does not checks for cyclical dependencies in general.

I managed to make the editor crash once, not sure how:

It happens when trying to paint a scene with an invalid scene. It should be fixed now.

Scene tiles are always centered. They either should have configurable offset or at least use the position of instance's root node.

Fixed.

I get this bug for some reason:

Fixed too, I screwed things up when rebasing... ^^

I have no clue why the Android build fails and how to solve it. That's annoying... :/

Seems like it's possible to draw 2 scenes at one when you click between tiles:

But only horizontally.

 My _draw_line function took one Vector2i and one Vector2 as arguments, while they should have been both Vector2. This caused very small differences between the two computed ends of a line, even if, in that case, the end and the beginning of the line should were supposed to have the same value.
Anyway, that's fixed now, thanks!


[NewPlugin]  toolCHAINZ DUMB v1.0.1

Please add my plugin to the repository.
Yes, I've read the instructions, especially the part about creating an actual release and creating the tag.
I either used the UI, or the hub command to create a real release.
Author: toolCHAINZ
Repo name: DUMB
Release: v1.0.1

Fixed a couple typos, so I just incremented the version in this issue, since it's not closed yet.

Thanks! I forgot to close it after adding. :-)


version 2.5.0-1.0: adapt upstream changes

The adaptation of the build system has been completed temporarily, but because the upstream build.zig is damaged, ci cannot completely pass

The adaptation of the build system has been completed temporarily, but because the upstream build.zig is damaged, ci cannot completely pass

The compilation not working is unrelated to any upstream damage.
There's just a breaking change in Zig 13 regarding LazyPath and for zig-webui to support the Zig development version (which it probably wants to do, since this is all about Zig :D), it has to adapt to the changes / create a condition for it.

No, no, this is exactly related to the upstream. The zig build process is that if the dependent build.zig exists, then it will first build the dependent build.zig, and then return to the current project to build build.zig.

I will initiate a repair PR right away

You can go ahead any, you'll see you will have to adapt the LazyPath usages and that it is the reason why it's not compiling with zig nightly.
I've actually re-written the build-files of zig-webui. I would rather prefer to submit a PR here,  but didn't want to impose myself...

My original idea was to only retain the 0.11 adaptation in webui (for compatibility), not use 0.12 and later zig versions to build on the webui repository, and completely transfer these work to zig-webui, which will reduce the work quantity

But now that you have re-added 0.12 support, in order to ensure that nightly can be built successfully, I have to submit PR to the upstream again.

Zig is still a relatively niche language. I believe most users will still choose gcc or msvc when compiling webui.


feature/2135 increasing text contrast

What does this pull request aim to achieve? 💯
Please be concise and link any related issue(s):
#2135

[X ] I have checked that no one else is working on similar changes.
[X ] I have read the latest README and understand the development workflow.
[ X] The name of this branch is: feature/<branch_name>, or hotfix/<branch_name> if this is a hotfix, where <branch_name> briefly describes the issue(s) resolved and is prefixed with the issue number(s) (e.g. 1127-1130-update-git-branching-model). The branch is created in a cloned version of this repo, not a forked repo.
[X ] This branch is rebased/merged with the latest staging (or the latest production if it is a hotfix).
[X ] There are no merge conflicts.
[X ] There are no console warnings and errors.
[X ] On the right hand side of this PR, I have linked the appropriate issue(s) under "Issues" and added a project progress under "Projects".
[X ] The title describes the issue(s) being addressed using format: <issue_numbers> - <brief_issue_description> (e.g. #1127/#1130 - Update Git Branching Model)

@ddveloper Thank you! Yah I should clone instead of fork, so I closed the previous pull and created this one. So on the Readme it said either clone or fork for local setup, should we change that to just clone but not fork? at least for frontend development I guess?

@ddveloper Thank you! Yah I should clone instead of fork, so I closed the previous pull and created this one. So on the Readme it said either clone or fork for local setup, should we change that to just clone but not fork? at least for frontend development I guess?

@ddveloper Thank you! Yah I should clone instead of fork, so I closed the previous pull and created this one. So on the Readme it said either clone or fork for local setup, should we change that to just clone but not fork? at least for frontend development I guess?

right @haoxianZ we should update that Readme I believe, thanks for pointing this out 👍

@ddveloper Thank you! Yah I should clone instead of fork, so I closed the previous pull and created this one. So on the Readme it said either clone or fork for local setup, should we change that to just clone but not fork? at least for frontend development I guess?

right @haoxianZ we should update that Readme I believe, thanks for pointing this out 👍

Initial problem fixed, but Informational text under “Address” field (div)  has low color contrast of 1.44.
Environment:

macOS 10.14 Mojave
MacBook Pro (15-inch, Early 2015)
Browser: Firefox 78.6.1esr
https://feature2135.fightpandemics.xyz
Steps:

Navigate to https://feature2135.fightpandemics.xyz
Login to FP
Click on profile initial icon on top left corner of page. and click “view your profile” option
Click on the pencil (edit) located on the left corner
On the next page click on “Edit Account” option located on right side of page
Use [TAB] key to to navigate Edit Account page
Observe low color contrast on text-leaf  label (div) below the “Address”

Expected Behavior:
Informational text should be visible to every type of user (accessibility violation - color contrast ratio should be greater then 4.5<. (accessibility violation).
Actual Behavior: Informational text under “Address” (div) field has low light grey color contrast.  Actual ratio 1.44 Expected ratio 4.51< (initial bug fixed -“ Medical Help, OtherHelp” informational text is fixed).

Initial problem fixed, but Informational text under “Address” field (div)  has low color contrast of 1.44.
Environment:

macOS 10.14 Mojave
MacBook Pro (15-inch, Early 2015)
Browser: Firefox 78.6.1esr
https://feature2135.fightpandemics.xyz
Steps:

Navigate to https://feature2135.fightpandemics.xyz
Login to FP
Click on profile initial icon on top left corner of page. and click “view your profile” option
Click on the pencil (edit) located on the left corner
On the next page click on “Edit Account” option located on right side of page
Use [TAB] key to to navigate Edit Account page
Observe low color contrast on text-leaf  label (div) below the “Address”

Expected Behavior:
Informational text should be visible to every type of user (accessibility violation - color contrast ratio should be greater then 4.5<. (accessibility violation).
Actual Behavior: Informational text under “Address” (div) field has low light grey color contrast.  Actual ratio 1.44 Expected ratio 4.51< (initial bug fixed -“ Medical Help, OtherHelp” informational text is fixed).

Thanks @Rebeccabeesknees @haoxianZ @ddveloper
As the initial reported issue is fixed and working fine. we can merge this and log new issue for the additional observation. thanks.

Thanks @Rebeccabeesknees @haoxianZ @ddveloper
As the initial reported issue is fixed and working fine. we can merge this and log new issue for the additional observation. thanks.

hmm, I actually cant merge since the commit was not signed.

hmm, I actually cant merge since the commit was not signed.


Research implementing ToolTips (image hover)

Research how to implement tooltips by hovering of a "?" icon within our existing codebase.

After googling packages we could use I landed on this:
https://paladini.dev/posts/how-to-make-an-extremely-reusable-tooltip-component-with-react--and-nothing-else/
it gave me a .js and .css for using a tooltip. I implemented these files. I then when to NounProject and decided on a logo to append to these tooltips for some aspects. The Tooltip is built in a way where it is a wrapper and you can contain all the elements you want to have the tooltip. This allowed me to add a tooltip to the icon I found.


"Interface 'tightenco\collect\Contracts\Support\Arrayable' not found"

I am trying to use facebook api to get the details of my facebook ads. I have implemented your given package to laravel 5.6 with php 7.2.1. Now after implementing everything I am getting "Interface 'tightenco\collect\Contracts\Support\Arrayable' not found". Kindly look at the issue. Two screen shots are attached.

Also getting this..

Pushed a fix for this in the attached PR.

Thank you so much Braunson...its working fine right now

Thk!

Thank you so much sir....It's very helpful for me
On Saturday, July 28, 2018, Eduardo Bizarro<EMAIL_ADDRESS>wrote:

Closed #33 https://github.com/edbizarro/laravel-facebook-ads/issues/33.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/edbizarro/laravel-facebook-ads/issues/33#event-1758533461,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AiAzxnnI9o4EriUr4nYjQ6YBP2Ciuim9ks5uLGMOgaJpZM4VUUZB
.


Support streaming files

Stream files from the input file to the output file instead of unpacking all then repacking.

Output streaming is implemented, input streaming requires libjxl 0.9, many distributions still ship older ones.
At least on arch, libjxl 0.8.2 did not handle this correctly.


use map instead of switch/case for instruction/component mapping

This PR aim to change how we map instructions ids with theirs components.
Today it is a switch/case, I propose to use a strong typed map.
Benefits: If someone declare a new instruction in enum Instructions then it shows automatically an error in the pages/dao/[symbol]/proposal/new.tsx file. Hope it helps developper implementing new instructions.
Demo here:
https://user-images.githubusercontent.com/22965416/199916700-b4b6eef3-3cf8-4a01-99ce-28d3f76148dd.mov

looks good i like it


Make disable property of Popup useful for a fundamental use case

I suggest one of the fundamental use case for the disable property of the Popup component is for the implementation of a hover time delay, for example, don't show the popup unless the user hovers over the trigger for a minimum threshold of time.
Easily implemented using onMouseEnter, onMouseLeave and a timer.
Unfortunately upon the timeout setting disable to false (to show the popup) the Popup component does not re-render, but rather requires the user to remove the mouse from the trigger and then re-hover over the trigger. Not only is this non-intuitive, but the mechanism should disable the popup and re-arm the timer un this scenario anyway, meaning the popup is never enabled.
Could the Popup component be upgraded to support re-rendering after the disabled property changes without requiring a change in the mouse position? Thank you.

Hey,

Easily implemented using onMouseEnter, onMouseLeave and a timer.

It's already supported via mouseEnterDelay & mouseLeaveDelay props. Please check them: https://codesandbox.io/s/j7jy7838r9?module=/example.js
For other stuff I think that you're looking for controlled usage: https://react.semantic-ui.com/modules/popup/#usage-controlled
Please correct me if I am wrong and provide real use cases 🙏


Add file attribute upload

I want to merge this change because... it adds file attribute upload to also newly added generic attributes component shared between product, variant and page views.

PR intended to be tested with API branch:
Screenshots

Pull Request Checklist

[ ] All visible strings are translated with proper context.
[ ] All data-formatting is locale-aware (dates, numbers, and so on).
[ ] Translated strings are extracted.
[ ] Number of API calls is optimized.
[ ] The changes are tested.
[ ] Data-test are added for new elements.
[ ] Type definitions are up to date.
[ ] Changes are mentioned in the changelog.

Test environment config

API_URI=https://master.staging.saleor.rocks/graphql/

Task linked: SALEOR-1343 Add suport for file selection and upload in attributes sections


Updates from emi testing

There are two high-level changes in this PR. First, we're going back to hardcoding the fan speeds so that they are set to low speed for preheat and cooking. The calls have been removed from the Pi Backend and this PR removes them from the MC. The other change removes an if statement that should have allowed changing of the fan speed only if the fan wasn't already at the desired speed. The reading of the current speed was not working correctly and is not needed/useful, so it's being removed so that the fan speed gets updated anytime an update is requested.
Objectives:

[x] Remove setting the fan speed settings for preheat and cooking from the Backend<->MC interface.
[x] Remove condition on controlling the fan speed. This way the fan speed is always updated, even if it matches the current speed.
[x] Bump version to 20.0.7

Testing:

[x] Start cycle and immediately stop. Verify the fan comes on and then goes off.
[x] Start cycle and allow dome temp to exceed 425 degF. Stop cycle and then verify that oven goes into cooldown mode with fan on. Verify that the fan goes off once the unit exits cooldown mode (dome temp drops below 425 degF).

Originally, prior to updating the fan relays, we were checking to see if the the requested speed was equal to the last speed. The "last speed" was just a variable that was always set to coolingFanInvalid and so it was not effective. I had changed that area to resolve the actual current speed so that the check would be effective but that seems to have broken things. Since we weren't actually checking the fan speed originally, and it doesn't hurt anything to update the speed to the same speed we're already at, I just removed that condition all together.


Ai assistclaude

Review the API request on claude3: https://docs.anthropic.com/claude/reference/complete_post
Adjusted the startAIAssist.ts with the new body request that claude3 wants. Still missing the API key for Claude so couldn't test it. But this is what I have so far.

Closing as we can now use OpenAI-compatible endpoints that serve Claude, such as OpenRouter.


[e2e]: nodejs create main default slsa3

Repo: https://github.com/slsa-framework/example-package/tree/v39.0.239
Run: https://github.com/slsa-framework/example-package/actions/runs/7650566073
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.nodejs.create.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.nodejs.create.main.default.slsa3.yml
Trigger: create
Branch: v39.0.239
Date: Thu Jan 25 06:11:06 UTC 2024

Repo: https://github.com/slsa-framework/example-package/tree/v39.0.240
Run: https://github.com/slsa-framework/example-package/actions/runs/7676815314
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.nodejs.create.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.nodejs.create.main.default.slsa3.yml
Trigger: create
Branch: v39.0.240
Date: Sat Jan 27 06:11:47 UTC 2024
Tests are passing now. Closing this issue.


[BUG] torii might need a restart before fully indexed

{
  "errors": [
    {
      "message": "World does not have any indexed data yet."
    }
  ]
}

Sometimes torii is stuck on this even the world is indexed fully but still returns this error. When you manually restart torii using the same storage, the message disappears and returns the successfully indexed data.

duplicate: https://github.com/dojoengine/dojo/issues/2711


Adding OData processor to readme.

Adding a snippet about the shiny new OData processor. 🥇

Fixed.


Bug when there is the same server name

In DBA Dash, when a server's name is reused for a different server, the application incorrectly merges both servers into a single entity because it relies on the server name for identification. This issue occurs even if the underlying SQL server's name does not change, leading to confusion and inaccurate data. A more robust solution would involve identifying servers using a unique ID rather than the server name.

In the service configuration tool, you can specify a Connection ID which will be used as the unique identifier for an instance.  If you have two servers with the same name you can set them to different values.
Note: In the latest version DBA Dash will auto populate the Connection ID in the service config tool when you add the connection (based on @@SERVERNAME (Which you can override as needed).  In older versions the ConnectionId would be left blank and this would be set to @@SERVERNAME dynamically.  The change was done because it makes it easier to identify the connection for the new messaging system.
Hope this helps,
David


Feature/ipfs node

fix #947

@krhubert please say that this PR is related to https://github.com/mesg-foundation/core/pull/948 or you forgot the commit of https://github.com/mesg-foundation/core/pull/948


[RESOLVED] High ICMP ping response time

Problem started at 08:24:14 on 2023.06.14
Problem name: High ICMP ping response time
Host: MF-FG
Severity: Warning
Operational data: Value: 454ms
Original problem ID: 28643
Event details in Zabbix: http://<IP_ADDRESS>/tr_events.php?triggerid=23132&eventid=28643

Problem has been resolved in 1m 0s at 08:25:14 on 2023.06.14
Problem name: High ICMP ping response time
Host: MF-FG
Severity: Warning
Original problem ID: 28643


how to enable mtls for mixer e2e-test?

Describe the bug
{{ Succinctly describe the bug }}
It seems mixer's e2e tests are using non-mTLS destination rule,  I need to do following change to run the tests under mTLS enabled istio installation.
tests/e2e/tests/mixer/mixer_test.go

-	destinationRuleAll          = "destination-rule-all"
+	destinationRuleAll          = "destination-rule-all-mtls"

Is there any way to avoid such code change and make the test run under  mTLS enabled istio installation?
Expected behavior
{{ What did you expect to happen? }}
Test passed
Steps to reproduce the bug
{{ Minimal steps to reproduce the behavior }}
Version
{{ What version of Istio and Kubernetes are you using? Use istioctl version --remote and kubectl version }}
release-1.1
Installation
{{ Please describe how Istio was installed }}
helm install with --set global.mtls.enabled=true
Environment
{{ Which environment, cloud vendor, OS, etc are you using? }}
Cluster state
{{ If you're running on Kubernetes, consider following the
instructions
to generate "istio-dump.tar.gz", then attach it here by dragging and dropping
the file onto this issue. }}

--auth_enable. All the flags are in the README https://github.com/istio/istio/blob/master/tests/e2e/README.md#L69

If the above didn't fix your problem feel free to reopen


Customise EC2 instance name

Is your feature request related to a problem? Please describe.
I have several buildkite nodes representing several different queues but all of them are named "buildkite-agent" on the AWS EC2 page, this makes it hard to distinguish between them at a glance.
Describe the solution you'd like
I would like to be able to customise the EC2 instance name to something other than "buildkite-agent".
Describe alternatives you've considered
I am able to filter based on resource tags but that's more effort than having a more unique instance name.
Additional context
This seems to have been suggested in the past https://github.com/buildkite/elastic-ci-stack-for-aws/pull/237#issuecomment-273953273
I couldn't find any current solutions.

kia ora @ChrisLane! i feel your pain on this one, we have a good couple of stacks in our account and it's difficult and annoying to find the one you want sometimes.
We've been talking about this internally, and what we'd ideally like to do is just add the stack name to the instance name - ie buildkite-agent-my-cool-elastic-stack-name-goes-here. Unfortunately though, the past shackles us, and that's probably a pretty breaking change - other people could be monitoring all the instances called buildkite-agent, for instance.
A happy middle ground would be to add a param to customise the instance name per stack, which we can do without too much trouble. We'll put this on our backlog and get to it at some point, hopefully soon.


Fixes #93 and #96 - correct misc issues in JS code

Thank you! 👍

I think this also fixes https://github.com/littlebee/git-time-machine/issues/104.  +1 Thank you!

nice:)


Scope shaders conflict with GregTech CEU

Describe the bug
Modern Warfare mod scope shaders make the screen blank if you also have Gregtech CEU installed.
Reproducibility

[x] I reproduced this issue with as few other mods as possible installed.
[ ] I am unable to reproduce this issue consistently.

To Reproduce

Make a modpack with MWC, GTCEU and their required dependencies installed
Change the following settings in the mwc.cfg file so the game doesn't crash:
B:enableFlashShaders=false
B:enableGunShaders=false
B:enableScreenShaders=false
B:enableWorldShaders=false
Open a new world and equip a gun with a scope attachment on it

Screenshots or/and videos

Versions

Modern Warfare Cubed: MWC-0.1-Dev-14
Forge: 1.12.2 - <IP_ADDRESS>60
Java: JDK 8 - 392-b08

Specification:

OS: Manjaro Linux
CPU: Ryzen 5 5600X
GPU: Radeon RX 5700 XT
RAM Allocated: 16GB

Spirit duplicate of #212


PIC18F25K50 at O2 compile optimization in MPLAB X IDE

I'm using MPLAB X IDE v6.20 with XC8 v2.48.  I do not have a compiler license so I cannot compile with -Os.
I tried compiling the bootloader for the Pololu P-Star PIC18F25K50.  It does not fit in 8K.
I can program the pre-compiled hex file - USB_uC_X5K50_P_STAR.hex - and that works.
However, I wanted to be able to compile my own binary and the compilation is too large by approximately 120 bytes.
After looking at the code, I re-wrote the routine parse_hex in bootloader.c and the compilation now fits in 8K (approx. 8177 bytes).
My changes are shown with #if 0/1 in bootloader.c in case anyone else is interested in getting the bootloader to build with the standard MPLAB X IDE.
bootloader_c.zip

Excellent, I’ll take a look when I get the chance and merge your changes.

I have updated the bootloader.c file using your suggestions in v1.13. This is now compiling using free license. Thanks for opening this issue.


Getting unauthorized message after running application for some time.

After my application was running about 1 hour (I assume) every subsequential request started failing with message:
The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was 'Bearer authorization_uri=xx, resource_id=xx'.
The client was running fine before this.
Version:0.3.6-Alpha
I pool cloned CdsServiceClients. Do they also manage token refresh?
Worth mentioning that I'm falling back to the SOAP service. (see code below)
client.ExecuteCdsOrganizationRequest(request, useWebAPI: false);

Stacktrace:
MessageSecurityException - Create : User Defined |=> The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was 'Bearer authorization_uri=xx, resource_id=xx'.
Source: System.Private.ServiceModel
Method: ValidateAuthentication
DateUTC: 2/26/2021
TimeUTC: 8:03:10 PM
Error: The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was 'Bearer authorization_uri=xx, resource_id=xx'.
HelpLink Url: Not Provided
Stack Trace: at System.ServiceModel.Channels.HttpResponseMessageHelper.ValidateAuthentication()
at System.ServiceModel.Channels.HttpResponseMessageHelper.ParseIncomingResponse(TimeoutHelper timeoutHelper)
at System.ServiceModel.Channels.HttpChannelFactory1.HttpClientRequestChannel.HttpClientChannelAsyncRequest.ReceiveReplyAsync(TimeoutHelper timeoutHelper)    at System.ServiceModel.Channels.RequestChannel.RequestAsync(Message message, TimeSpan timeout)    at System.ServiceModel.Channels.RequestChannel.RequestAsyncInternal(Message message, TimeSpan timeout)    at System.Runtime.TaskHelpers.WaitForCompletionNoSpin[TResult](Task1 task)
at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(MethodCall methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(MethodInfo targetMethod, Object[] args)
--- End of stack trace from previous location where exception was thrown ---
at System.Reflection.DispatchProxyGenerator.Invoke(Object[] args)
at generatedProxy_1.Execute(OrganizationRequest )
at Microsoft.Xrm.Sdk.WebServiceClient.OrganizationWebProxyClient.<>c__DisplayClass40_0.b__0()
at Microsoft.Xrm.Sdk.WebServiceClient.WebProxyClient1.ExecuteAction[TResult](Func1 action)
at Microsoft.Xrm.Sdk.WebServiceClient.OrganizationWebProxyClient.ExecuteCore(OrganizationRequest request)
at Microsoft.Xrm.Sdk.WebServiceClient.OrganizationWebProxyClient.Execute(OrganizationRequest request)
at Microsoft.PowerPlatform.Cds.Client.CdsServiceClient.CdsCommand_Execute(OrganizationRequest req, String errorStringCheck, Boolean bypassPluginExecution)

Yes, there is token management based on MSAL, the clones should be able to manage that as well, it applies regardless of SOAP or WebAPI pipes.
We are still working on issues with token management in MSAL and are currently relying on in memory tokens.
Your creating a pool of Clients from one that is setup as a Secret auth or cert Auth?  Are you constantly running or are there long periods of down time then you wake up and do work?
thanks
MattB

Using Secret Auth and the client had no downtime.
It's a data migration tool and was in progress moving a large data set.

I've been trying to reproduce using a simple console app with multi threading and cloning. No luck so far.

for your tool,, are you in a console app/ ux app / web App or function?
also what OS?

It was running a function on a windows premium plan (EP1).

@MattB-msft I did some more testing and it looks like cloned clients don't seem to refresh their token after more than 1 hour of idle time. Hency why I am having the problem since I pool these clients.
The initial client, that spawned the clones, however still works after 1 hour and refreshes the token properly.

We are looking into it.
thanks for the report!


Fix Settings pop-up in "dashboard.html" for mobile-view

The appearance of the settings pop-up on a mobile device is not appealing. We just need you to make the content on the pop-up not overlay. You may just need to change the width of the pop-up box and the (left, top) position.
remember it is for the mobile-view only. So you may want to use CSS media queries.

And as a clear advise, Please avoid Browsers that try to store-up the entire page on their cache(e.g Google Chrome). You may need to clear cache or use a lite browser.

Hi NtemKenyor, I would like to contribute to this issue.

That's Good. 😊
On Oct 7, 2022 05:44, "Shreyas Sahoo" @.***> wrote:
Hi NtemKenyor, I would like to contribute to this issue.
—
Reply to this email directly, view it on GitHub
https://github.com/KwickerHub/frontend/issues/44#issuecomment-1271103456,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOKWIBL7NPFNZ45UZ6ECDJDWB6TDRANCNFSM6AAAAAAQ7BK7AI
.
You are receiving this because you authored the thread.Message ID:
@.***>


W0128 messages (Cannot read vendor id correctly, set empty.) logged every 5 mins

Environmental Info:
k3s version v1.28.5+k3s1 (5b2d1271)
go version go1.20.12
Node(s) CPU architecture, OS, and Version:
Linux pineh64-xxxxx 6.1.63-current-sunxi64 #1 SMP Mon Nov 20 10:52:19 UTC 2023 aarch64 GNU/Linux
and
Linux rpi4b-xxxxx 6.1.68-current-bcm2711 #1 SMP PREEMPT Sun Dec 17 11:40:38 UTC 2023 aarch64 GNU/Linux
$ cat /proc/cpuinfo
processor       : 0
model name      : ARMv8 Processor rev 3 (v8l)
BogoMIPS        : 108.00
Features        : fp asimd evtstrm crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3
processor       : 1
...
processor       : 2
...
processor       : 3
...
Revision        : d03115
Serial          : 10000000cfa6eb18
Model           : Raspberry Pi 4 Model B Rev 1.5
Cluster Configuration:
several agent nodes, one master, mix of Pine H64 Model B and Raspberry Pi 4B machines.
Describe the bug:
K3S process produces every 5 mintes the messages in the log:
k3s[]: W0128   machine.go:65] Cannot read vendor id correctly, set empty.
k3s[]: W0128   sysinfo.go:203] Nodes topology is not available, providing CPU topology
Steps To Reproduce:
Install k3s on Raspberry Pi, I guess?
Expected behavior:
Log this once at startup and be done with that. CPU rarely changes on the fly ;) Or offer a flag to suppress them.
Actual behavior:
Messages are produced every 5 minutes
Additional context / logs:
I think it is simply because the vendor info is missing from /proc/cpuinfo?

Yep. This comes from the kubelet (cadvisor specifically I believe) trying to poll CPU topology and vendor ID.
This is part of upstream Kubernetes and not something we can address here in k3s. If you wish to see it addressed, I would open an issue in the Kubernetes repo.


IDEA-446 Fixed the mobile tooltip not working

I still think that the issue was the button was eating the event. I made a div container and made the tooltip icon and button siblings instead of nesting the icon in the button

Worked for me on the virtual Iphone 7 in browserstack!


unused_variable: false positive if used in read table

REPORT zfoobar.
DATA lv_test TYPE string.
DATA lv_result TYPE string.
DATA lt_test TYPE STANDARD TABLE OF string.
READ TABLE lt_test INTO lv_result WITH KEY table_line = lv_test. "<<< used
IF sy-subrc = 0.
  WRITE lv_result.
ENDIF.

/zfoobar.prog.abap[2, 6]: Variable "lv_test" not used(unused_variables)

try again, 2.63.2

👍   this made a big difference.


RAT-325 : Added check to skip expensive processing in SPDX

In my small test case this changed the timing from 55 sec to 3 sec.

Can you push a new commit? Strangely the build runs locally. Maybe GHA just needs a 2nd chance ;)

My local builds run ok on an Ubuntu, but GHA fails .... strange.

As I merged in the changes related to RAT-346; pls rebase this branch and let us tackle the problems with the tests then. Thanks again for your help & efforts!

The changes look promosing; I will merge and we will try on the openmeetings project. Thanks again.

@Claudenw I ran the current SNAPSHOT on openmeetings and realized that all processed files are printed out on level INFO. I think we should change this to DEBUG as people complained about log spam of RAT runs in previous releases. Would you mind opening a new PR for that change? Thanks


server crashed after using memory rhotator that was stored in backpack per Bla

Look into it.
Log data:
2024-03-06 13:12:15: ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod 'rhotator' in callback item_OnUse(): ...r/serverfiles/worlds/world/worldmods/rhotator/notify.lua:75: bad argument #1 to 'hud_remove' (number expected, got nil)
2024-03-06 13:12:15: ERROR[Main]: stack traceback:
2024-03-06 13:12:15: ERROR[Main]: 	[C]: in function 'hud_remove'
2024-03-06 13:12:15: ERROR[Main]: 	...r/serverfiles/worlds/world/worldmods/rhotator/notify.lua:75: in function 'notify'
2024-03-06 13:12:15: ERROR[Main]: 	...ver/serverfiles/worlds/world/worldmods/rhotator/init.lua:434: in function 'flag_helper'
2024-03-06 13:12:15: ERROR[Main]: 	...ver/serverfiles/worlds/world/worldmods/rhotator/init.lua:663: in function <...ver/serverfiles/worlds/world/worldmods/rhotator/init.lua:656>

Downloaded new code from the mod's repository with a note from 2 months ago stating that it resolves this issue. It's installed now so we should know after the next restart if it's fixed.

New code did not fix the problem. Server still crashes on use of rhotator memory tool.

I believe update did in fact fix this. The one that was giving us the problem might have had old meta data attached. Since then, none of the new ones have duplicated the issue. I am going to go ahead and close this one out unless it crops back up.


Get appprocessor.html working with data

Story
Parent Issue
Complete port of AppProcessorCtrl.scala and AppProcessorChartsCtrl.scala

merged into parent https://github.com/intel-hadoop/gearpump/issues/952


Monitoring of 'Agent status'

How do I Monitor the Agent status for Not Ready
Azure Portal > Virtual machines > VM > Overview > Properties > Agent Status
From Case#120102723000834

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: ab75f449-661d-bd1e-3ebd-61e2384a911a
Version Independent ID: e7c93a31-6076-26b8-a53d-d36df01ec6bc
Content: Azure Virtual Machine Agent Overview - Azure Virtual Machines
Content Source: articles/virtual-machines/extensions/agent-windows.md
Service: virtual-machines-windows
GitHub Login: @mimckitt
Microsoft Alias: mimckitt

Hi @DavidTaig ,
After looking at this more closely it looks like your asking for a guide to be added to this Azure VM Agent doc explaining how to check the agents status. I'm going to assign this to the doc author and mark it as a doc idea accordingly. That being said if I'm misinterpreting this issue please drop a comment down below.

I don't think this is something we need to add to this document as we do have a PowerShell command that explains how to check the status. For most users, they are using PowerShell or CLI and not utilizing the portal to check an individual VM. However this issue will remain on the doc so if others feel the same they can comment and we can always reconsider in the future.
#please-close


⚠ Samsung has degraded performance

In 17476b5, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2539 ms

Resolved: Samsung performance has improved in f102a21.


Make sure MySQL replication is configured

Currently it's not; probably just some tiny change I forgot to make when adapting the infrastructure architecture...

mysql_databases:
  - {
    name: drupal,
    collation: utf8_general_ci,
    encoding: utf8,
    replicate: 0
  }

Yep. Let's try replicate: 1 :)

D'oh, was also missing:
<IP_ADDRESS> mysql_server_id=1 mysql_replication_role=master
<IP_ADDRESS> mysql_server_id=2 mysql_replication_role=slave

inside inventory. Probably also over in the DO example.

Another few weird issues; the slave wouldn't sync (SHOW SLAVE STATUS \G returned an I/O error at first, then I fixed the firewall setup, then it showed Slave_IO_Running: No and Slave_SQL_Running: No, and I finally figured out I couldn't just do SLAVE STOP; and SLAVE START;. I did a SLAVE RESET; then things started working correctly.
Everything seems to be working correctly now, but I'll need to do a full destroy-and-rebuild later to verify things are 100% correct on initial provision.
I also need to re-test the reset playbook for Drupal in the setup folder; make sure that we're dropping the main database in such a way as to prevent the slave from losing it's connection back to the master.

Also wanted to do some very brief extra performance testing, to confirm that a master-slave configuration doesn't impact the capacity/performance of the Drupal site for auth/anon users significantly.
Anonymous traffic, 8.0.5, standard profile home: 33.56 req/s
Authenticated traffic, 8.0.5, standard profile home: 8.24 req/s
There is a very slight difference... but it is slight.


API Key step missing in ReadMe.

read me does not mention that you need to add api key to the android manifest.
To generate apikey, sign up to userhover.com, and generate new app with your package name. Use the provided key to insert the below in your androidManifest (./android/app/src/main/AndroidManifest.xml)
<meta-data
            android:name="com.hover.ApiKey"
            android:value="xxxxx"/>

the above can go in new line inside the
<application></application>

Added, thanks!


Add missing babel-preset-env dependency

Issue: #5498 broke the apps that doesn't have a dependency on babel-preset-env. We didn't catch that issue on CI because we have babel-preset-env hoisted from @storybook/react-native and ember-cli
Note that both this and #5498 can be reverted, if telejson gets rid of safe-eval dependency, see https://github.com/storybooks/telejson/issues/4

This was the babel 6 version of preset-env. Are you sure this is the right dependency?

@Jessidhia Sounds like we can get rid of it before the final release:

Note that both this and #5498 can be reverted, if telejson gets rid of safe-eval dependency, see storybooks/telejson#4

@Jessidhia it turned out that this particular packageis compatible both with Babel 6 and 7 (at least it works). I was surprised as well.