Pinot stop consuming from Kinesis Data Stream

Pinot realtime ingestion from kinesis data stream works as expected for sometime but eventually stops consuming. While checking server logs, connection refused error is shown. Is this due to the issue mentioned in this PR #9863.
2022/11/29 16:10:58.538 INFO [ControllerLeaderLocator] [testtable__0__0__20221129T1419Z] Millis since last controller cache value invalidate 18567 is less than allowed frequency 30000. Skipping invalidate.
2022/11/29 16:10:58.538 INFO [LLRealtimeSegmentDataManager_testtable__0__0__20221129T1419Z] [testtable__0__0__20221129T1419Z] Could not commit segment. Retrying after hold
2022/11/29 16:11:00.997 INFO [HttpClient] [testtable__2__0__20221129T1419Z] Sending request: http://SERVER_IP_ADDRESS.ec2.internal:9000/segmentConsumed?reason=forceCommitMessageReceived&streamPartitionMsgOffset=%7B%22shardId-000000000002%22%3A%2249635630746998378075227930204125252036295126557430644770%22%7D&instance=Server_SERVER_IP_ADDRESS.ec2.internal_8098&offset=-1&name=testtable__2__0__20221129T1419Z&rowCount=5136&memoryUsedBytes=1828440 to controller: SERVER_IP_ADDRESS.ec2.internal, version: Unknown
2022/11/29 16:11:00.997 INFO [ServerSegmentCompletionProtocolHandler] [testtable__2__0__20221129T1419Z] Controller response {"offset":-1,"isSplitCommitType":false,"streamPartitionMsgOffset":"{\"shardId-000000000002\":\"49635630746998378075227930204125252036295126557430644770\"}","buildTimeSec":-1,"status":"HOLD"} for http://SERVER_IP_ADDRESS.ec2.internal:9000/segmentConsumed?reason=forceCommitMessageReceived&streamPartitionMsgOffset=%7B%22shardId-000000000002%22%3A%2249635630746998378075227930204125252036295126557430644770%22%7D&instance=Server_SERVER_IP_ADDRESS.ec2.internal_8098&offset=-1&name=testtable__2__0__20221129T1419Z&rowCount=5136&memoryUsedBytes=1828440
2022/11/29 16:11:01.474 INFO [HttpClient] [testtable__1__0__20221129T1419Z] Sending request: http://SERVER_IP_ADDRESS.ec2.internal:9000/segmentConsumed?reason=forceCommitMessageReceived&streamPartitionMsgOffset=%7B%22shardId-000000000001%22%3A%2249635630746976077330029399572174273870489207002061864978%22%7D&instance=Server_SERVER_IP_ADDRESS.ec2.internal_8098&offset=-1&name=testtable__1__0__20221129T1419Z&memoryUsedBytes=1115986 to controller: SERVER_IP_ADDRESS.ec2.internal, version: Unknown
2022/11/29 16:11:01.474 INFO [ServerSegmentCompletionProtocolHandler] [testtable__1__0__20221129T1419Z] Controller response {"offset":-1,"isSplitCommitType":true,"controllerVipUrl":"http://localhost:9000","streamPartitionMsgOffset":"{\"shardId-000000000001\":\"49635630746976077330029399572174273870489207002061864978\"}","buildTimeSec":126,"status":"COMMIT"} for http://SERVER_IP_ADDRESS.ec2.internal:9000/segmentConsumed?reason=forceCommitMessageReceived&streamPartitionMsgOffset=%7B%22shardId-000000000001%22%3A%2249635630746976077330029399572174273870489207002061864978%22%7D&instance=Server_SERVER_IP_ADDRESS.ec2.internal_8098&offset=-1&name=testtable__1__0__20221129T1419Z&memoryUsedBytes=1115986
2022/11/29 16:11:01.476 INFO [HttpClient] [testtable__1__0__20221129T1419Z] Sending request: http://SERVER_IP_ADDRESS.ec2.internal:9000/segmentCommitStart?segmentSizeBytes=5072&buildTimeMillis=5&streamPartitionMsgOffset=%7B%22shardId-000000000001%22%3A%2249635630746976077330029399572174273870489207002061864978%22%7D&instance=Server_SERVER_IP_ADDRESS.ec2.internal_8098&offset=-1&name=testtable__1__0__20221129T1419Z&memoryUsedBytes=1115986 to controller: SERVER_IP_ADDRESS.ec2.internal, version: Unknown
2022/11/29 16:11:01.476 INFO [ServerSegmentCompletionProtocolHandler] [testtable__1__0__20221129T1419Z] Controller response {"offset":-1,"isSplitCommitType":false,"streamPartitionMsgOffset":null,"buildTimeSec":-1,"status":"COMMIT_CONTINUE"} for http://SERVER_IP_ADDRESS.ec2.internal:9000/segmentCommitStart?segmentSizeBytes=5072&buildTimeMillis=5&streamPartitionMsgOffset=%7B%22shardId-000000000001%22%3A%2249635630746976077330029399572174273870489207002061864978%22%7D&instance=Server_SERVER_IP_ADDRESS.ec2.internal_8098&offset=-1&name=testtable__1__0__20221129T1419Z&memoryUsedBytes=1115986
2022/11/29 16:11:01.476 ERROR [LLRealtimeSegmentDataManager_testtable__1__0__20221129T1419Z] [testtable__1__0__20221129T1419Z] Could not send request http://localhost:9000/segmentUpload?segmentSizeBytes=5072&buildTimeMillis=5&streamPartitionMsgOffset=%7B%22shardId-000000000001%22%3A%2249635630746976077330029399572174273870489207002061864978%22%7D&instance=Server_SERVER_IP_ADDRESS.ec2.internal_8098&offset=-1&name=testtable__1__0__20221129T1419Z&memoryUsedBytes=1115986
org.apache.pinot.shaded.org.apache.http.conn.HttpHostConnectException: Connect to localhost:9000 [localhost/<IP_ADDRESS>] failed: Connection refused (Connection refused)
	at org.apache.pinot.shaded.org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:156) ~[pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.shaded.org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:376) ~[pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.shaded.org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393) ~[pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.shaded.org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) ~[pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.shaded.org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) ~[pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.shaded.org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) ~[pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.shaded.org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) ~[pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.shaded.org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) ~[pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.shaded.org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) ~[pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.shaded.org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108) ~[pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.common.utils.http.HttpClient.sendRequest(HttpClient.java:276) ~[pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.common.utils.FileUploadDownloadClient.uploadSegment(FileUploadDownloadClient.java:604) ~[pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.core.data.manager.realtime.Server2ControllerSegmentUploader.uploadSegmentToController(Server2ControllerSegmentUploader.java:76) [pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.core.data.manager.realtime.Server2ControllerSegmentUploader.uploadSegment(Server2ControllerSegmentUploader.java:61) [pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.core.data.manager.realtime.SplitSegmentCommitter.uploadSegment(SplitSegmentCommitter.java:78) [pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.core.data.manager.realtime.SplitSegmentCommitter.commit(SplitSegmentCommitter.java:59) [pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.core.data.manager.realtime.LLRealtimeSegmentDataManager.commit(LLRealtimeSegmentDataManager.java:1025) [pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.core.data.manager.realtime.LLRealtimeSegmentDataManager.commitSegment(LLRealtimeSegmentDataManager.java:995) [pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.core.data.manager.realtime.LLRealtimeSegmentDataManager$PartitionConsumer.run(LLRealtimeSegmentDataManager.java:711) [pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.net.ConnectException: Connection refused (Connection refused)
	at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:?]
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:412) ~[?:?]
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:255) ~[?:?]
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:237) ~[?:?]
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:?]
	at java.net.Socket.connect(Socket.java:609) ~[?:?]
	at org.apache.pinot.shaded.org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:75) ~[pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	at org.apache.pinot.shaded.org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) ~[pinot-all-0.12.0-SNAPSHOT-jar-with-dependencies.jar:0.12.0-SNAPSHOT-58c1dc9b7d8e28ac7207fa7565b1ed76f7a0c2ad]
	... 19 more

Another problem that I have noticed is the segments are not getting committed to deep store (s3) even after realtime.segment.flush.threshold.time set to 1h

no the server and controller are in different EC2 instances. @navina

Is there any news on this issue, I am facing the same error. It seems the server is trying to commit the segment to localhost instead of using the controller running in a different ec2 instance

Were you able to fix this?

@FranMorilloAWS
I guess controller.vip.host=localhost is the cause of this. Can you check if you have similar setting in your config?

Yes i modified the controller.vip.host to point to the loadbalancer of the controllers and it worked. However I am facing now an issue with that with the current Table Configuration, once the segments go from consuming to Good, the servers are not creating new segments to continue consuming from the kinesis data stream.
As well as ignoring the number of rows, or size for the segments.
Ill add my table configuration:
{
"REALTIME": {
"tableName": "kinesisTable_REALTIME",
"tableType": "REALTIME",
"segmentsConfig": {
"replication": "2",
"retentionTimeUnit": "DAYS",
"retentionTimeValue": "7",
"replicasPerPartition": "2",
"minimizeDataMovement": false,
"timeColumnName": "creationTimestamp",
"segmentPushType": "APPEND",
"completionConfig": {
"completionMode": "DOWNLOAD"
}
},
"tenants": {
"broker": "DefaultTenant",
"server": "DefaultTenant"
},
"tableIndexConfig": {
"invertedIndexColumns": [
"product"
],
"noDictionaryColumns": [
"price"
],
"rangeIndexVersion": 2,
"autoGeneratedInvertedIndex": false,
"createInvertedIndexDuringSegmentGeneration": false,
"sortedColumn": [
"creationTimestamp"
],
"loadMode": "MMAP",
"streamConfigs": {
"streamType": "kinesis",
"stream.kinesis.topic.name": "pinot-stream",
"region": "eu-west-1",
"shardIteratorType": "LATEST",
"stream.kinesis.consumer.type": "lowlevel",
"stream.kinesis.fetch.timeout.millis": "30000",
"stream.kinesis.decoder.class.name": "org.apache.pinot.plugin.stream.kafka.KafkaJSONMessageDecoder",
"stream.kinesis.consumer.factory.class.name": "org.apache.pinot.plugin.stream.kinesis.KinesisConsumerFactory",
"realtime.segment.flush.threshold.rows": "1400000",
"realtime.segment.flush.threshold.time": "1h",
"realtime.segment.flush.threshold.size": "200M"
},
"varLengthDictionaryColumns": [
"campaign",
"color",
"department"
],
"enableDefaultStarTree": false,
"enableDynamicStarTreeCreation": false,
"aggregateMetrics": false,
"nullHandlingEnabled": false,
"optimizeDictionary": false,
"optimizeDictionaryForMetrics": false,
"noDictionarySizeRatioThreshold": 0
},
"metadata": {
"customConfigs": {}
},
"isDimTable": false
}
}
The table has four segments that are in Good State and are in S3. It just stops creating consuming segments and stops reading from kinesis

Please check the controller log for exceptions. The new consuming segment should be created by controller.
@KKcorps Can you help with this issue?

What I noticed was that when setting this value:
"realtime.segment.flush.threshold.rows": "1400000" as a String, it ignores the size and row number for when completing the segments, and it creates new one only after the threshold time occurs. By setting it not as a string but integer, It does create the new segments. It doesnt reach the suggested size as no segment is above 3 megabytes .

You may refer to this doc on how to configure them: https://docs.pinot.apache.org/basics/data-import/pinot-stream-ingestion
Threshold time is honored when not enough rows are collected. The value should always be string, and if you want to use size threshold, "realtime.segment.flush.threshold.rows": "0" should be used

Hi! I am running tests in Pinot consuming from Kinesis Data Streams. I am running two r5x.large servers. I noticed that once it reached 8 segments and  it wont create any new segments, until it reaches the flush time.  This is my current configuration:
"realtime.segment.flush.threshold.rows": "0",
"realtime.segment.flush.threshold.time": "1h",
"realtime.segment.flush.threshold.size": "200M"
When i go into each segment i see that the tresholdrows is defined to be  and it doesnt reach the size. (each segment is 1.7 MB in S3)
"segment.flush.threshold.size": "150000",

Hi @FranMorilloAWS , are you using on-demand or provisioned mode? Have you checked the kinesis stream metadata? Is it due the stream got closed and new shard got created?

Using On Demand. I believed that by using the low consumer, Pinot would handle the closing and creation of new shards, either on demand or provisioned when scaled. Is that not the case?

@FranMorilloAWS I wonder if setting completion mode to DOWNLOAD is causing this issue.
any particular reason why you are using this config?
"completionConfig": {
"completionMode": "DOWNLOAD"
}

Because at some point it was not downloading the segments to s3, i will eliminate the completion config and try again. Thanks  Ill update here

Hi, I am now facing the same issue but not even seeing the segments in S3.


Display diagram for empty view

Impacted version
jarvis4se version: 1.3.1
Describe the bug
When Jarvis is asked to display a diagram for a view that does not contain any elements (so called empty view), Jarvis displays a diagram containing all available elements instead of displaying a warning message.
To Reproduce
Execute the following commands:
%%jarvis
with test
F1 is a function
F2 is a function
a is a data
F1 produces a
F2 consumes a

%%jarvis
with test
under view
show sequence F1, F2

Jarvis is indicating that view is a chain.
Jarvis is displaying the following diagram showing F1, F2 and a.
Expected behavior
Jarvis must indicate that view is a view, not a chain
Jarvis must indicate that view is empty (does not contain any elements)
Desktop (please complete the following information):

Browser: Chrome
Browser version: 100.0.4896.127
Java: JRE
Java version: 1.8.0_291

So now the "chain" element becomes "view".
Does it have to be renamed also for all user messages for "consider" and xml ?
Does the user message "view does not contain any elements" and not showing diagram, have also to be done for :

fun_elem/function decomposition
State/function chains
fun_elem sequence

*Does it have to be renamed also for all user messages for "consider" and xml *
Yes
Does the user message "view does not contain any elements" and not showing diagram, have also to be done for :
Yes for all


v1.17 not verified and not go get'able

Bug Description
I try to use the newest version (v1.17) of cloudsql as library in my Go code, but go get can't find it.
I see from the tags page that v1.17 isn't marked as Verified. Could that be the problem?
Example code (or command)
go get<EMAIL_ADDRESS>

Stacktrace
go get<EMAIL_ADDRESS>no matching versions for query "v1.17"

How to reproduce
Run go get<EMAIL_ADDRESS>Environment

OS type and version: macOS 10.15.4
Cloud SQL Proxy version (./cloud_sql_proxy -version): v1.17

And I'm also curious why the go.mod entry becomes github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20200513164142-a9864b03c326.
Is it because the tags aren't on the form v1.2.3?

Yes, apparently go get expects full semantic versioning and ignores the tag if not. We will need to add new tags for the previous versions and make sure going forward we are using the new tags.

I'm not sure if this is a recent change to something in the Go environment (seems unlikely we've had it wrong all this time and no one else has raised an issue), but I've retagged all the existing issues into the correct format.
So now go get<EMAIL_ADDRESS>works correctly.


bug/helm fix (#323)

Fix helm build

GitHub Issue
Add a link to the GitHub issue.
Changes
A summary of the changes in the code in this PR. If making any UI changes consider adding screenshots or gifs.
Packages Added
Brief list of any packages added, and if folks need to rerun yarn install to run locally
Checks
Before making your PR, please check the following:

[ ] Critical lint errors are resolved
[ ] App runs locally
[ ] App builds locally (run the build command for any impacted package and check for any errors before the PR)

Still need to fix the build


[FEATURE] Add golangci-lint Workflow for Automated Code Quality Checks

Feature Description
Introduce a golangci-lint workflow to ensure code quality and maintain consistency across the codebase. Using a linter workflow helps detect syntax issues, code style inconsistencies, and potential bugs early, reducing technical debt and improving code readability.

Use Case

Maintain Code Quality: Ensures consistent code style and best practices throughout the project.
Catch Potential Issues Early: Automatically detects possible bugs, dead code, unused imports, and other issues that may go unnoticed in a manual review.
Streamline Contributions: Helps new contributors adhere to established coding conventions by enforcing them at the pull request stage.

Proposed Solution
Add a GitHub Actions workflow that integrates golangci-lint, enabling widely-used linters like govet, gosimple, unused, errcheck, and others relevant to the project. This workflow should run on each pull request and commit to prevent non-compliant code from being merged.

Additional Context
N/A

Pseudo Code
N/A

If we can configure it to run with a make command locally that would be awesome 😃


Updates from Storage

First of all the implementation looks very clean @kahlil, great work!
However my concern is that with the current implementation, storage.get*() returns Rx.Observable.just(*), which disallows the ability to get updates from storage.
function main({storage}) {
  storage.getItem('key') // always equals first value
}

Unless you're calling it in another function which is imperative and makes me question why I wouldn't just call localStorage.getItem directly.
function main({DOM, storage}) {
  DOM.select('a').events('click')
    .flatMap(ev => storage.getItem(ev.target.value)) // or something similar
}

Maybe I missed something, but this seems to be the current behavior at first glance.

Hey @TylorS that makes sense. So I just use .from() right?

Something like:
export default {
  // For localStorage.
  local: {
    key(n) {
      // Function returning Observable of the nth key.
      return Rx.Observable.from([localStorage.key(n)])
    },
    // Function returning Observable of values.
    getItem(key) {
      return Rx.Observable.from([localStorage.getItem(key)])
    },
  },
  // For sessionStorage.
  session: {
    // Function returning Observable of the nth key.
    key(n) {
      return Rx.Observable.from([sessionStorage.key(n)])
    },
    // Function returning Observable of values.
    getItem(key) {
      return Rx.Observable.from([sessionStorage.getItem(key)])
    },
  },
}

?

Oh, @TylorS are you thinking of storage updates flowing from getItem automatically when something changes?
This is not necessarily something you always want though. Often you just want to write to localStorage when something happens and read out of localStorage to rehydrate the app.
Do you have an idea how to do the continuous update thing? I have to think about this for a bit...

@kahlil to get the "read out of localStorage only once", the developer can use just storage.getItem('key').take(1). So I also agree to support the more general case which emits all updates.

That's effectively the same thing as Rx.Observable.just(), since Rx.Observable.from() with an array of a single item will only produce a single response.
I don't think a driver is really needed if you are only looking for finite information.It would be much easier just to do
run(main, {
  storageItem: () => localStorage.getItem('key')
})

With a infinite stream if that is what you would like, you could do
function main({storage}) {
  storage.getItem('key').take(1)
}

The best way (I know of) to achieve a continuous stream is to use a Subject. I'm not saying my solution is correct or the best, but maybe you can derive some inspiration from the driver that I wrote.

@staltz :+1:

@kahlil I definitely believe that it could be designed much better than I did it, I made that very quickly, and was still learning (still am!).

@TylorS @staltz ahh, it all makes sense now. Thanks. Yes, a Subject would help me there... I will definitely have a look at your driver Tyler thanks!

No problem, feel free to ask questions if you need any help along the way.

Will do!

Hey @staltz & @TylorS I was fooling around with this a bit and this seems to work:

I pass in request$ to the responseCollection like so: https://github.com/cyclejs/cycle-storage-driver/blob/streaming-updates/src/index.js#L48
then I just return that same stream back to the ui depending on which key is requested like so: https://github.com/cyclejs/cycle-storage-driver/blob/streaming-updates/src/responseCollection.js#L10-L14

Seem pretty straightforward and elegant to me, it also seems to work right in my test. Am I overlooking something? It seems so simple :smile:

That looks like it should do the trick. I'm totally unfamiliar with sessionStorage but would it be a good idea to do the same for it as you did for localStorage?

Yeah sessionStorage is exactly the same API as localStorage the data is just cleared after the session ends.

The 1.1.0 release of storage broke my app.
I had something like the following set up:
const main = ({storage}) {
  const inititalValue$ = storage.local.get('myCounter');
  const myCounter = Counter({initialValue$});
  const storageRequests$ = myCounter.values$;
  return {
      storage: storageReq$
   }
}

Which loads the initial value of the counter from the storage and requests to save all value changes of the counter back to the storage.
Now that the storage save requests a propagated back into the storage responses this creates and infinity cycle of counter updates. This can be solved by calling take(1) as described above.
For me the error was very hard to locate because no error has been logged and the 1.1.0 tag of this storage module is only set in another branch.
Probably the major version should have been incremented for such a change.

 I am so sorry messing up your app 🙁

I mean @laszlokorte of course ^

It's alright. It's just an example application I am playing around with. I just took me some time to track down the error because there was no error message reporting the cycle of streams but just a white screen :smile:


Make sure we are paginating all responses when neded

Currently there might be some gRPC requests that do not allow to paginate the results. We should make sure that they implement the pagination as it will allow the clients to perform the queries faster and more efficiently.

Stuff that can be paginated:

x/profiles -> UserRelationships
x/posts -> RegisteredReactions

@RiccardoM @dadamu others?

x/profiles -> UserBlocks
x/posts -> Reports
x/posts -> PollAnswers

They are also queried as array object, I think they can be paginated, too.

@RiccardoM @bragaz
UserRelationships, UserBlocks, Reports and PollAnswers are stored whole array object in a key now.
Should they change to be stored one object in a key so that query.FilteredPaginate can be used in grpc_query functions?
Say
now:
 `relationshipKey` -> []Relationships
to:
  `relationshipKey-1` -> Relationship
  `relationshipKey-2` -> Relationship

@dadamu Yes, we should change that. Before starting the implementation, please write there a proposal implementation to how store the different data, particularly about how you would structure the keys of each object so that we can discuss those

Closing this as it seems to be fixed with the above PRs


Password Validation

RTK Query getPasswordStrengthQuery returns a list of errors with two parameters, password1 and password2 from formState.jsx in SignUp.jsx
new password_strength function returns validation errors
'register' implements password_validation; however, register button is disabled if any of these errors exist
new validators.py file holds two custom validators for a minimum amount of needed special characters and a minimum amount of needed numbers in password
built in django validators checks to make sure that password isn't completely numerical
HTML in SignUp.jsx displays errors to the user and disables button if errors exist

Add legend and password validation are both on this branch, so will be merging this branch and closing #372


Added an entry to the "adopters" table for NASA

Added an entry to the "adopters" table for NASA

Dear @JustinGOSSES, thank you very much for listing NASA in the new adopters file!
It is good to know that the portal is/was useful for your explorations.

That is so cool!
@Michadelic in some way any adopter of your project is also an adopter of the InnerSource Portal pattern. At least to some extent. Would you agree?
So in theory we could port some of this information into the pattern too, once some more cases have been collected here.


Use typecode throughout chapter 4

In chapter 4 it is repeatedly noted that the first symbol after $a, $p, $e, or $f is a constant. However that constant has a special role. I suggest changing that to typecode everywhere, and defining typecode as a constant.
@nmegill - seem okay?

OK.

This is done in #109. All done, closing issue.


Support Rendering Server Side?

Is this component support Rendering Server Side by Angular Universal?

It doesn't, though that would be supper cool!  The issue with it using universal is that the backend doesn't have the ability to modify the head yet.  The Universal guys are working on that though, in the mean time you can use the Renderer from @angular/core to make changes to the DOM before serving the file.

@scott-wyatt would you mind to share and example of how to use the Renderer to modify meta tags?

Like all things angular, that part of angular has changed again lol. The universal guys are working on a Meta Service to allow for this server side.

It looks like something is underway for this: https://github.com/angular/angular/pull/12322

Looks like we will have angular metatags built-in, but no sooner than 2.3.0 beta release.
Nevertheless, I wonder if this wonderful module is going to get server side rendering support.
@vinaygopinath, any thoughts on this?

I'd like to make ng2-meta compatible with server-side rendering. I've been following the activity on the angular/universal thread, and it looks like using DomAdapter instead of plain old document while creating/updating meta elements would be the key change.
Does anyone want to take a crack at it?

@vinaygopinath yes i guess lets use DomAdapter.

@vinaygopinath any updates on this?

hey guys, any update?

Any updates? I'd really like to see this working!

Angular Universal Starter has angular2-meta service that helps modify head tag in server side.


Newsletter captions fix

Fixes https://linear.app/tryghost/issue/DES-4/image-caption-size-in-email-newsletter.
There were no styles defined for captions for cards beyond the featured image (bookmark, gallery, video), and we had no way of targeting those captions with CSS. They are now wrapped in a div with a specific class, which allows for more selective styling, and are styled similarly to the caption of the featured image.

@kevinansfield Database tests are failing (related to snapshots?) and I'm unsure what to make of it. Could you have a peek?


ignore debug ckb 550+

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run clickbench

run clickbench

run clickbench

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 45.01 seconds
stream load tsv:          536 seconds loaded<PHONE_NUMBER>9 Bytes, about 133 MB/s
stream load json:         21 seconds loaded<PHONE_NUMBER> Bytes, about 107 MB/s
stream load orc:          65 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          31 seconds loaded 861443392 Bytes, about 26 MB/s
insert into select:          29.1 seconds inserted 10000000 Rows, about 343K ops/s
storage size:<PHONE_NUMBER>5 Bytes


Accessibility Support

It seems like the read speaker reads the whole content as one element (text) even when there is link inside, would it be possible to notify the user about the link and separate text from link as different selectable elements for people who use read speaker?
Basically I want to add focus (accessible={true}) for link elements inside the markdown tag, But there is no way to do it.
Currently for user with vision disabilities is not very informative what the content contains!

Up on that, is there a way to handle accessibility ?


Diffviewer changes focus to first file after save

Description
In diffview, after staging chunk of changes, the focus goes back to the first file in the navigator. This becomes a problem when diffing multiple files and auto-save plugin is enabled.
What happens is that I constantly need to find the last staged file, and move to the next one. It is quite an issue when trying to stage many different files.
https://github.com/user-attachments/assets/12657e65-7534-4dd6-8bc3-5e0aae6830d1
Neovim version
NVIM v0.10.1
Build type: Release
LuaJIT 2.1.1720049189
Run "nvim -V1 -v" for more info
Operating system and version
Fedora Bluefin
Steps to reproduce

Prepare repo:mkdir /tmp/repro
cd /tmp/repro
echo "README\n" > README.md
echo "UPDATING\n" > UPDATING.md
echo "TEST\n" > TEST.md
git add .
git commit -m "Add files"

Make some changes:echo "Hello There" >> README.md
echo "Hello There" >> UPDATING.md
echo "Hello There" >> TEST.md

nvim -u minimal.lua
:Neogit<CR>
d u (open diff for unstaged files)
Stage changes for the first file
Stage changes for the second file

Expected behavior
Focus should remain on the just-staged file.
Actual behavior
Focus moves to the first file in tree.
Minimal config
vim.env.LAZY_STDPATH = "/tmp/.repro"
load(vim.fn.system("curl -s https://raw.githubusercontent.com/folke/lazy.nvim/main/bootstrap.lua"))()

require("lazy.minit").repro({
  spec = {
    -- add any other plugins here
    {
      "NeogitOrg/neogit",
      dependencies = {
        "nvim-lua/plenary.nvim",         -- required
        "sindrets/diffview.nvim",        -- optional - Diff integration

        -- Only one of these is needed, not both.
        "nvim-telescope/telescope.nvim", -- optional
        "ibhagwan/fzf-lua",              -- optional
      },
      config = true
    },
  },
})

I'd recommend just staging from Neogit, not diffview. Upon returning to the neogit buffer, it refreshes, and tries to save/restore the cursor position, but it'll fail to restore in this case and default to the first item.
You can stage individual hunks, or lines, from neogit itself, so diffview isn't really needed for that at all.

The default staging method is good only if you stage smaller blocks. For larger ones, the side-by-side diff offered by diffview is more convenient.
Since diffview is part of Neogit (although optional, I get it), I assume it should just work. Now, the overall UX is clunky.


Implemented reactive gain scheduling.

Implements a first version of the reactive gain scheduling. I tested it in simulation (by modifying a bit the code to override a check on the firmware which fails in simulation).
Substitute https://github.com/loc2/element_capture-point-walking/pull/39

What do we do with this PR guys?

What do we do with this PR guys?

The idea is to test the PR on iCub as soon as possible and then merge it.

This PR is way outdated. There is no point in keeping this open. We will open a new one in case it is necessary.


merge 1.1.0 fix code into master

Coverage increased (+0.04%) to 55.19% when pulling ed6e60ba71b2b83e096c27eaaa0ebdab16abed5b on release-1.1.0 into e4af15048d3a92a8adec6e93b168e8b44f7c4834 on master.


Added test for targeting.

Tests were omitted from the targeting PR. This PR adds tests to ensure targeting is functional is not broken in the future.

@zhenlan I'm going to add one more test. Will send a new PR.


feat: add types for cds.build

Adds types for cds.build to have proper type support when writing a custom CDS build plugin

Hi Daniel,
sure thing. It's not that high on my requirements list. I only created this PR because of the typescript issues in cds-plugin.js of cds-typer. I wanted to create another for cds.add as well, but put it hold because for cds.add the docs explicitly mention the use of @sap/cds-dk.
When you figured out how and where to add the dk-specific typings, just give a quick shout out, I am happy to do it 😊
Regards,
Ludwig

@daogrady Have you considered just contributing the types to DefinitelyTyped and having all sap types under @types namespace? In that case it would be easier to find the needed types (@types/cds & @types/cds-dk), there would be no need for the symlinking and you would avoid issues like #251.

Hi @hakimio ,
yes, absolutely! Going for DT was considered, but finally discarded for now for two reasons:

as we'd hand over control to DT, we would become contributors for our own types. At least as of now, we would like to stay full maintainers. Basically, governance over PR would be fully community driven. While this is desirable especially for open source modules where the types are contributed to DT by third parties, in our case, where we are the owners of the implementation and the types, giving up control is less attractive.
1.2 we would have to adhere to DT's guidelines, which would probably require some extra work to meet, and can possibly become a hindrance for changes in the future.
we would be bound to the release cycle of DT. That means, both versioning and release latency would be out of our control.

While we would generally love to move in with DT, these drawbacks deterred us from doing so at the current stage. We might revisit this decision in the future.
Best,
Daniel

@daogrady That's not how DefinitelyTyped works. It's a fully automated self-service kind of platform. There are thousands of projects there. You can't maintain sth like that manually with a small team.

You don't hand over control to DT. When you create a type package, you, as definition owner, will be responsible for approving or disapproving PRs. Once you approve or disapprove, a DT bot will automatically merge or close the PR. See one of the PRs to get an idea how it works.
More info about merging PRs
While the releases are fully automated and done every couple of hours, you still control the versioning. You can set the version in package.json to what you, as a maintainer or owner, want to.

I think you should definitely reconsider this decision since it was made on a false premise.

Hi @hakimio ,

we are aware of the DT maintainer and code owner distinction, and while yes, we as owners have the right to merge PRs, there are still restrictions put up by DT.

the DT bot requires a "minimum two human" involvement. As I am currently the quasi-solo maintainer, meaning I create and handle most PRs, I could not approve my own changes. While this restrictions on DT's side are very reasonable and exemplary, it is just not feasible for our current team composition.
the DT bot seemingly requires/ asks for changes to tests in PRs. Again, very valuable metric, but would require us to set up tests in a way outside contributors could add them. Which is currently hardly the case. These are the DT guidelines I referred to above.
DT has a bunch of requirements that Should (capital S) be met, e.g. certain tsconfig settings
I don't think you are able to keep custom GH actions once your package becomes part of DT, which we currently make heavy use of (rollup). I have not found anything about it in DT's docs, but random sampling of existing packages in DT show no actions at all. And I'd be very surprised if they'd let foreign actions run in their repository.

That is all part of "handing over control". I am not debating whether these restrictions set up by DT are good (because I think they are). It is just a matter of feasibility.

yes, we'd still be in charge of setting the version in the package.json. But DT strongly encourages a sync between implementation and type version. As you know, we are currently still on version 0.y.z of cds-types, while sap/cds is on 8.y.z. I am also not very happy with the perspective of being at the mercy of DT's release cycle. Be it "in a few hours", "in a day, because the DT bot has an outage", or "eventually".

Again, we are aware of the bumps our current solution causes and the convenience moving in with DT would bring. Which is why we are likely to revisit this decision at some point. But not in the foreseeable future.

Also, the symlink workaround doesn't work reliably with any package manger:

Is working with the types field in tsconfig.json not an option for you?
Best,
Daniel

the DT bot requires a "minimum two human" involvement.

Maybe @chgeo can help review the PRs

I don't think you are able to keep custom GH actions once your package becomes part of DT

Maybe you could just run them in another GH repo and use a bot to open PRs for DT repo.

But DT strongly encourages a sync between implementation and type version.

While for you, as the maintainer, it might be convenient to make breaking changes in minor version releases, I, as the user of the library, really hate when that happens (yes, I know that the lib is in "alpha" state). The change would improve DX and would be highly appreciated by all the lib users.

Is working with the types field in tsconfig.json not an option for you?

Yes, it is a valid workaround, but it's a custom undocumented workaround and it's not only me who is having issues with the symlink solution. Soon there will be more and more people who are not happy with it. It's just not a good solution by any means and having to come up with your own workarounds is a pretty bad DX, imho.

we are likely to revisit this decision at some point

Don't want to take more of your valuable time with this discussion, just hope this happens sooner than later.


Issue - 2683 Default shorturls_length in the database if its not already set

Also in the gitignore file, I added an entry for the idea directory

Closes #2683

No need for the if block : yourls_get_option() accepts a default parameter when the value isn't set, see line 37 of the plugin. Less code, and saves a DB query storing the value.

Then the value would only show on the form it does not mean it would exist in the database.

As it's written now would cause a bug.

Why would it cause a bug? On the 2 occurrences of yourls_get_option(), we now have a default value.
"Fetching a value, and if not exists declare the value is 5" is equivalent to "Fetching a value, if not exists declare it is 5 and store it". You just skip the "store it" step.

You're right, in YOURLS it's required to get options using the get_option method. I was thinking if people get the option directly from the database, which is a non-scenario.
Thank you


Stagger updating pawns in GRPawnComp::CompTick()

This is half a question and half a performance suggestion, so I apologize if I'm way off.
This is regarding the code here:
https://github.com/emipa606/GradualRomance/blob/3de4ced57f214e7cf22f917321c5f84992c2e432/Source/Gradual Romance/GRPawnComp.cs#L29-L38
Here, the two blocks are executed on a schedule relative to Find.TickManager.TicksGame. This should work fine, but, especially if there are a lot of pawns being checked (e.g., a large colony, or a large raid, even), this would lead to refreshing the cache and processing pawn relation information for every single pawn on the same tick. Could these checks be modified to incorporate the IsHashIntervalTick Pawn extension method?
Granted this only runs for spawned pawns, but a potential smoothing out of ticking pawn calculations is a potential smoothing out of ticking pawn calculations. :)

Good point, should be implemented now in b038562


More Documentation

The only documentation so far is the readme, which contains quite some information, but is not sufficient enough any longer. I wish to move this documentation to the theemo website: https://gossi.github.io/theemo/
Things to cover:

How to use theemo to create a theme file
How to use your themes - basically, cover parts of this article: https://gos.si/blog/full-featured-themes-in-figma/ into a guide

Instead of Themer, Figma is natively supporting swap libraries.
See #24 for details

Also have a look on #9
Videos for the website?

Done on theemo.io


Bad file descriptor with "ev" driver when trying to listen on socket (Windows)

This code:
$socket = \Amp\Socket\listen('tcp://<IP_ADDRESS>:49000', null);
$socket->accept();

Throws this warning on Windows platform:
Warning: EvLoop::run(): Libev error(9): Bad file descriptor in ...\vendor\revolt\event-loop\src\EventLoop\Driver\EvDriver.php on line 164

php -v
PHP 8.1.1 (cli) (built: Dec 15 2021 10:36:13) (NTS Visual C++ 2019 x64)
Copyright (c) The PHP Group
Zend Engine v4.1.1, Copyright (c) Zend Technologies

php --ri ev
ev

Ev support => enabled
Debug support => disabled
Version => 1.1.6RC1

Package versions:
revolt/event-loop: v0.1.1
amphp/socket: v2.x-dev

The event loop should never have a reference to a closed socket, so this is likely an issue in amphp/socket instead of revolt/event-loop. There's #20 to align the behavior for closed sockets, but it's not part of any release, yet.
I'll transfer the issue to amphp/socket.

Nevermind, issue transfers are only possible within an organization, not cross-organization. :-(

@kelunik but socket isn't closed.
This code is working fine (if I switch to stream select driver):
\Revolt\EventLoop::setDriver(new \Revolt\EventLoop\Driver\StreamSelectDriver());
$socket = \Amp\Socket\listen('tcp://<IP_ADDRESS>:49000', null);
$client = $socket->accept();

var_dump("Accepted connection {$client->getRemoteAddress()->toString()}");

string(35) "Accepted connection <IP_ADDRESS>:64951"

@codercms Can you still reproduce this with the latest versions?

@kelunik yes, but now I get different error:
EvLoop::run(): Libev error(10038): Unknown error in vendor\revolt\event-loop\src\EventLoop\Driver\EvDriver.php on line 155
Package versions:
revolt/event-loop: v0.2.5
amphp/socket: v2.x-dev

@kelunik it seems like a bug inside the ev extension for Windows.
I found a build of event extensions for Windows and PHP 8.1 - https://pecl.php.net/package/event/3.0.7RC1/windows
And with event extension everything works fine

I'm closing this, see https://bitbucket.org/osmanov/pecl-ev/issues/36/windows-tcp-server-bug-warning-ev-run.

@kelunik maybe a little note should be added to the revolt docs? (to avoid using ev ext on Windows)
I think this note might save time for guys who will face the same problem with ev extension


Create project repository

Done by Oct. 9
Create project repository and configure local develop environment ready.

I think this one can be closed?


Added completion handler to setupInitialViewState

Useful when you need to bring a subview to front after initial setup.
For my case, I have a 'add' button on top of the view controller, so I have to perform bringSubviewToFront(myButton) after each stateFullViewController operation. startloading and endLoading both have their completion block param, I figured setupInitialViewState deserved one too.

Looks good! Thanks 🙌


fix: AssistantBuilder delete redirect based on flow

Description

Rationalizes the re-routing on closure of the Assitsant Builder based on flow
Fixes redirect in case of deletion
Removes a .then usage

Risk
N/A
Deploy Plan

deploy front

PMRW

LGTM :+1:


Enable testing of poincare_test.py

Related to #1205 but doesn't close it.
Skipping the failing test. Should be fixed later on.

@rahulunair
You are owner of some files modified in this pull request.
Would you kindly review the changes whenever you have the time to?
Thank you very much.

@gabrieldemarmiesse  can you please add reasons on why the test is failing here as well?

#1205 explains the problem. The whole test file was not run by bazel before it was not declared in the BUILD file. Now in this pull request, I focus on re-enabling passing tests. Fixing the failing one is outside the scope of this pull request and I'll let someone else do it because I'm not familiar with this feature. If you want to see the traceback of the failing test, I added it in my bug report here: #1205


Compatibility with maxmind datasets

For some reason mmdctl doesn't work with maxmind's geoip and geolite datasets: all requests for any ip return err: couldn't get data for x.x.x.x.
mmdbctl read -f json-pretty <IP_ADDRESS> ./GeoLite2-Country.mmdb
err: couldn't get data for <IP_ADDRESS>

mmdbctl read -f json-pretty <IP_ADDRESS>/31 ./GeoIP2-Country.mmdb
err: couldn't get data for <IP_ADDRESS>
err: couldn't get data for <IP_ADDRESS>

ipinfo dataset works fine:
mmdbctl read -f json-pretty <IP_ADDRESS> ./Ipinfo-Country.mmdb
{
  "continent": "NA",
  "continent_name": "North America",
  "country": "US",
  "country_name": "United States"
}

Metadata:
mmdbctl metadata ./GeoIP2-Country.mmdb
- Binary Format 2.0
- Database Type GeoIP2-Country
- IP Version    6
- Record Size   24
- Node Count    1201540
- Description
    en GeoIP2 Country database
- Languages     de, en, es, fr, ja, pt-BR, ru, zh-CN
- Build Epoch<PHONE_NUMBER>

Is it possible to make them work together?

Thank you @ingria for reporting. Will look into it soon!

This is likely because of https://github.com/ipinfo/mmdbctl/issues/2 - the geolite2/geoip2 datasets have nested structures which we don't yet support properly.

It would be nice to be able to use ipinfo mmdbs as drop-in replacement for maxmind datasets. The problem is that the most existing services only supports the “nested” structure.
e.g. https://nginx.org/en/docs/http/ngx_http_geoip_module.html

We're going to implement this very soon, within a week or two. No worries!

This is fixed - can anyone here who was looking for this use case check and provide feedback?

I can confirm that maxmind dbs are now readable 👍
Is it possible to write mmdb with mmdbctl using nested structure?

@ingria Yes, if you have a JSON file with nested structures, it'll be written as a natively nested structure in the MMDB file too.
Lemme know if you face any issues, happy to debug.

Understood, thanks!

Sorry if I'm missing something obvious. I try to import from .json (with nested structures) to .mmdb. It gives me such errors:
panic: interface conversion: interface {} is []interface {}, not map[string]interface {}

goroutine 1 [running]:
github.com/ipinfo/mmdbctl/lib.CmdImport({0x0, {0x7ffdcd4baed2, 0x14}, {0x7ffdcd4baeed, 0x1c}, 0x0, 0x0, 0x0, {0x0, 0x0, ...}, ...}, ...)
        /Users/ipinfo/Work/ipinfo_public/mmdbctl_master/lib/cmd_import.go:376 +0x1a85
main.cmdImport()
        /Users/ipinfo/Work/ipinfo_public/mmdbctl_master/cmd_import.go:150 +0xfd
main.main()
        /Users/ipinfo/Work/ipinfo_public/mmdbctl_master/main.go:36 +0xaf

Unfortunately, i don't know Go language and cannot understand this issue. Can anyone explain what I do wrong? JSON that I use looks like this:
[
  {
    "range": "<IP_ADDRESS>/24",
    "continent": {
      "geoname_id": 6255000
    },
    "country": {
      "geoname_id": 2017000
    },
    "subdivisions": [
      {
        "geoname_id": 536000
      }
    ],
    "city": {
      "geoname_id": 498000
    },
    "location": {
      "latitude": 63,
      "longitude": 28,
      "accuracy_radius": 5
    }
  },
  {
    "range": "<IP_ADDRESS>/25",
    "continent": {
      "geoname_id": 6255000
    },
    "country": {
      "geoname_id": 2017000
    },
    "subdivisions": [
      {
        "geoname_id": 1488000
      }
    ],
    "city": {
      "geoname_id": 1488000
    },
    "location": {
      "latitude": 45,
      "longitude": 55,
      "accuracy_radius": 1
    }
  },
  {
    "range": "<IP_ADDRESS>/25",
    "continent": {
      "geoname_id": 6255000
    },
    "country": {
      "geoname_id": 2017000
    },
    "subdivisions": [
      {
        "geoname_id": 1488000
      }
    ],
    "city": {
      "geoname_id": 1488000
    },
    "location": {
      "latitude": 52,
      "longitude": 62,
      "accuracy_radius": 1
    }
  }
]

And import cmd is the following:
mmdbctl import --in to-import-geoip.json --out imported-from-json-geoip.mmdb


Read ~/.bashrc When Running A .fsx Script?

Hello -
Is there a way to have your ~/.bashrc read when running a .fsx script? I'm trying to set my terminal prompt correctly and I've included a screenshot of the current output - which I'd like to change to reflect my PS1.
Thank you!

To me it looks like there is a mix happening here. Because, you are trying to setup a Powershell configuration from inside a .bashrc which is in general associated to bash and not Powershell.
I think customisation of Powershell should be done inside the $PROFILE code.
Exemple: notepad $PROFILE
https://learn.microsoft.com/en-us/windows/terminal/tutorials/custom-prompt-setup#choose-and-apply-a-powershell-prompt-theme

@MangelMaxime Thank you - but I don't understand. Where does Powershell come in? I am on Linux (Ubuntu) and use bash. Is Powershell used by Ionide-VSCode to run a .fsx script?

Oops sorry I thought PS1 was related to PowerShell as when quickly looking at the screenshot I thought that the window I took for a window terminal (Sublime Text) looked similar to Windows Terminal.
I was probably not properly awake this morning 😅

No problem. Any thoughts on how to read the .bashrc file before running a
.fsx in ionide?
Sent from my rotaryPhone.
On Tue, Feb 6, 2024, 10:45 Maxime Mangel @.***> wrote:

Oops sorry I thought PS1 was related to PowerShell as when quickly
looking at the screenshot I thought that the window I took for a window
terminal (Sublime Text) looked similar to Windows Terminal.
I was probably not properly awake this morning 😅
—
Reply to this email directly, view it on GitHub
https://github.com/ionide/ionide-vscode-fsharp/issues/1983#issuecomment-1930457663,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAGUSKUFEKQCLMJ64EQRDC3YSJT3DAVCNFSM6AAAAABC25KMHGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMZQGQ2TONRWGM
.
You are receiving this because you authored the thread.Message ID:
@.***>

We don't spawn the terminal ourself, it is given to use by VSCode API.
https://github.com/ionide/ionide-vscode-fsharp/blob/29205de7dd1467a21210a9d18a20b79e4b34d752/src/Components/Fsi.fs#L419-L455
I don't know if there any arguments or configuration can be made for it.

@MangelMaxime Thank you. I'll just live with it. :-)

Bye.


SimpleFunctionRegistry and Proxies

There are two problems in proxyInvokerIfNecessary().

A new proxy is created to wrap an existing proxy - the advice should just be added to the existing advice chain

It returns the proxied target return pf.getProxy(); instead of the FunctionInvocationWrapper with an updated target - causes a ClassCastException: https://gitter.im/spring-cloud/spring-cloud-stream?at=5eb301b322f9c45c2a72eed7

I don't get the ClassCastException, but the function is failed to be registered...
@SpringBootApplication
@EnableRetry(proxyTargetClass = false)
public class Gitter71Application {

	public static void main(String[] args) {
		SpringApplication.run(Gitter71Application.class, args);
	}

	@Bean
	Consumer<String> consumer() {
		return new Consumer<String>() {

			@Override
			@Retryable
			public void accept(String t) {
				System.out.println(t);
			}

		};
	}

}

It turns out that proxyInvokerIfNecessary does not bring much value to begin with. Its idea was to ensure that user can cast POJO function to its original type, which after giving some thought is actually very wrong, since the whole point is to turn POJO Function int Function, so it can collaborate with others. So in the end removing it is al that is required.


[Clone] Clone a repository "Connect" button has poor contrast in foreground text

Dev Home version
No response
Windows build number
No response
Other software
No response
Steps to reproduce the bug
Description
Should be light color on the accent color, as a "Default" dialog button. Is this custom styled?
Expected result
No response
Actual result
No response
Included System Information
No response
Included Extensions Information
No response

#completed in #1185


Full SQL Model: update the ID stitching queries

Update them with the changes made to incremental.

Closing because not relevant anymore.


Error calling HMAC plugin create_hash

Summary
I have recently configured HMAC auth via the bundled plugin with only default settings on a new API. The only other plugin running on this API is the CORS bundled plugin. Upon receiving the signed request, kong returns a 500 error, with the logs:
2017-02-28T17:55:11.285701+00:00 heroku[router]: at=info method=POST path="/mockbin/post" host=api.<ourcompany>.com request_id=b78ce346-fd44-4252-a845-b1288eff5123 fwd="<IP_ADDRESS>,<IP_ADDRESS>" dyno=web.1 connect=1ms service=115ms status=500 bytes=255
2017-02-28T17:55:11.277516+00:00 app[web.1]: 2017/02/28 17:55:11 [error] 96#0: *4061 lua entry thread aborted: runtime error: .../.heroku/share/lua/5.1/kong/plugins/hmac-auth/access.lua:99: bad argument #1 to 'create_hash' (string expected, got nil)
2017-02-28T17:55:11.277528+00:00 app[web.1]: stack traceback:
2017-02-28T17:55:11.277529+00:00 app[web.1]: coroutine 0:
2017-02-28T17:55:11.277529+00:00 app[web.1]: 	[C]: in function 'create_hash'
2017-02-28T17:55:11.277530+00:00 app[web.1]: 	.../.heroku/share/lua/5.1/kong/plugins/hmac-auth/access.lua:99: in function 'validate_signature'
2017-02-28T17:55:11.277531+00:00 app[web.1]: 	.../.heroku/share/lua/5.1/kong/plugins/hmac-auth/access.lua:168: in function 'execute'
2017-02-28T17:55:11.277532+00:00 app[web.1]: 	....heroku/share/lua/5.1/kong/plugins/hmac-auth/handler.lua:14: in function 'access'
2017-02-28T17:55:11.277534+00:00 app[web.1]: 	/app/.heroku/share/lua/5.1/kong.lua:193: in function 'access'
2017-02-28T17:55:11.277535+00:00 app[web.1]: 	access_by_lua(nginx.conf:87):2: in function <access_by_lua(nginx.conf:87):1>, client: <IP_ADDRESS>, server: _, request: "POST /mockbin/post HTTP/1.1", host: "api.<ourcompany>.com", referrer: "http://localhost:3000/"

I don't see what the nil value stems from. By line 168 (https://github.com/Mashape/kong/blame/0.7.0/kong/plugins/hmac-auth/access.lua#L168) the hmac_params have been collected and validated, headers are present, and ngx.req is present. What's the issue?
Steps To Reproduce
curl https://api.<ourcompany>.com/mockbin/post --data 'foobar' -X POST --header 'content-md5: 3858f62230ac3c915f300c664312c63f' --header 'content-type: text/plain' --header 'date: Tue, 28 Feb 2017 19:42:34 GMT' --header 'authorization: hmac username="customercontact-381", algorithm="hmac-sha1", headers="date content-md5", signature="MTRjMTVkYzI4ODUwNjllMjRlMDhkY2ViNmQ4NWQxODVmYzFjMDA5MQ=="' -i

Additional Details & Logs
Here is the line in question: https://github.com/Mashape/kong/blame/0.7.0/kong/plugins/hmac-auth/access.lua#L58
The API in question is configured at the mockbin path.

Kong version 0.7.0
Operating System heroku
Installed via: https://github.com/heroku/heroku-kong

for reference see https://gitter.im/Mashape/kong?at=58b830f9f1a33b62756e9015

This was due to the consumer/hmac-auth lacking a proper secret value. The only suggestion I would make is to require the secret value upon creation of an hmac-auth record. As it stands, it is an optional value, but obviously is required to actually use the HMAC scheme.

@andjosh thx for the investigation, reopening this as to proper fix it in current versions as well.

BTW, the fix in #2158 solves the issue of allowing a null secret; since this isn't a majorly pressing issue, I'd like to wait to merge until 0.10 is released, so as to avoid complicating the release any further. We'll also need to update the plugin docs to note this behavior change.

Closing this, since it's fixed on the next branch. Thanks @andjosh for the report!


Misleading error message when Language Server doesn't support range formatting

Type: Bug

Install extension denoland.vscode-deno and enable it for a project.
Open a TypeScript file.
Select a range, choose "Format Selection With..." and choose the Deno extension

Observe the error message:

Extension 'Deno' is configured as formatter but it cannot format 'TypeScript'-files

This is misleading, as the Deno Language Server does support TypeScript files. It supports document formatting but not range formatting.
Further, setting editor.formatOnSaveMode: "modificationsIfAvailable" or "modifications" gives the same misleading error message on save.
Originally reported at https://github.com/denoland/vscode_deno/issues/860
VS Code version: Code 1.80.1 (74f6148eb9ea00507ec113ec51c489d6ffb4b771, 2023-07-12T17:20:58.115Z)
OS version: Darwin arm64 23.0.0
Modes:

Select a range, choose "Format Selection With..." and choose the Deno extension

This doesn't reproduce for me, having TS and deno installed and I do not see that option because not two or more range formatter are installed, it's just TS

To verify follow these steps https://github.com/microsoft/vscode/issues/188441#issuecomment-1838998422 and ensure the message is good


Add or claimId clause to avoid getting a console log.

Work around to remove the warning log is add an or clause as the outpoint is undefined.
Why outpoint is undefined ? I didn't understand that part.
I've saw a comment referencing issue: #1327
Anyway, feel free to ask me any changes!

@dan1d per Sean's comments here he already made this change but kept the ticket open for other discussion around editing + claimIds.

@tzarebczan that branch seems like already merged but the code on master still throw the log warning.
I've saw a comment on the code referencing that issue. Maybe @seanyesmunt can clarify it? My code is just one line change.

@dan1d ah, gotcha. I don't get a console error here, so maybe it's some other edge case where this is happening. All download should have an outpoint, but I don't think this fix hurts anything.

I'm not sure why outpoint is undefined. The real fix is probably ensuring that always exists, but maybe that is a daemon issue. I'll spend a little bit of time looking into this before we merge this.

@dan1d We are going to create an issue for the daemon. The outpoint should be included in your list of publishes.

I'm going to close this PR for now and open an issue.


How to properly respond to a invalid slash command - can not set keep_input when implementing slash command

Description
I'm implementing slash commands with my bolt.js powered Slack app. When user entered slash command is not valid I would like to have it remain in the composer box. I've been comparing the API calls of my Slack app with using remind slash command and the chat.command call gets a response object containing a boolean "keep_input" which seems to govern if the composer box is repopulated with the input text.
I'm not sure how I should be using the request.respond() function to influence this behavior but none of the configuration defined in RespondArguments seem to work. RespondArguments: https://github.com/slackapi/bolt-js/blob/992b64a767e43a5188b4a1b75e1a18ed50070d23/src/types/utilities.ts
I would expect that I could respond to the request with some configuration which would affect the "keep_input" boolean in the API response.
So either, I'm misunderstanding something or bolt.js does not support configuring this yet.
Any help or hints are appreciated.
What type of issue is this? (place an x in one of the [ ])

[ ] bug
[ ] enhancement (feature request)
[X] question
[ ] documentation related
[ ] example code related
[ ] testing related
[ ] discussion

Requirements (place an x in each of the [ ])

[x] I've read and understood the Contributing guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.
[x] I've searched for any related issues and avoided creating a duplicate issue.

The documentation seems to recommend acknowledging with an error message to the request... at least for actions... but of no use for commands it seems.
https://imgur.com/a/kN6qVQY

Hi @arnthors, thanks for asking the question!
Unfortunately, there is no way to keep user inputs once the command is accepted by your bolt-js app. Indeed, undocumented APIs / features may have some options but as long as the options / parameters are not mentioned in the API documents and the bolt-js code, they are not available for 3rd party apps.
The only thing that we can suggest as of today is to print the user's input in the response message for slightly easier rerun.
app.command("/foo", async ({ ack, payload}) => {
  await ack(
    "The command failed:\n"
    + "```" + `${payload.command} ${payload.text}` + "```\n"
    + "Check the following validation error and rerun the comamnd:\n"
    + "• xxx is required\n"
    + "• yyy must be longer than 10 characters\n"
  );
});

I hope this helps.

@seratch thank you for a quick and detailed reply on this and thank you also for your suggestion which I will use. Of course I would offer to help out if possible but seeing as this is most likely an issue for Slack internal decision making I will use what you suggest until that gets resolved.


Feature request: Keep search box open, and remember place on search results

Hi there, thanks for the great extension!
You open the search box, type a term, and jump to one of the results.  If you close the box to read the webpage, you have to retype in the search box again.  Just wondering if there's a way to keep the box on top, and keep your place in the search results.
Best,
Jeff

Hi,
So I do think that when you reopen the extension, the last term comes back up. Doesn't it? It's true that the result number is reset. If you want to make these changes, feel free to submit a pull request and I'll incorporate it into the extension.


Test response collections

define collections of expected responses
add CLI and UI call to activate collection

fixed with v0.14.0


[Feature requests] In-button Icon

This feature sees in bootstrap or jquery ui (the style):

I did the above prototype by adding (changing?) these lines:
  .btn .icon {
    float: inherit;
    color: inherit;
  }

Toolbar:

          <button class="btn btn-default">
             Cancel
          </button>

          <button class="btn btn-primary pull-right">
            Send
          </button>

(Currently, this is a quick prototype.)

Good addition.  Just a tip: you can add the icon-text class to the icon so it sits nicely alongside the button's label.
<button class="btn btn-primary">

    Send Message
</button>

Thanks @developit . I don't know there was a icon text before.
To support the right side icon, I make a pull request as follow:
https://github.com/connors/photon/pull/62


add & update favicons

resolve https://github.com/kubevela/kubevela.io/issues/673

@Arhell Great Contribution!
https://github.com/kubevela/velaux This is the UI project of KubeVela, Can you also check it?

@Arhell Great Contribution! https://github.com/kubevela/velaux This is the UI project of KubeVela, would you please also help check it?

I'll take a look if I have time

cc @wonderflow


can somebody help me with this error

Rocket.CoreException in Rocket.Core: System.Exception: Failed to deserialize XMLFileAsset: Permissions.config.xml ---> System.Xml.XmlException: 'Members' is expected  Line 58, position 8.
at Mono.Xml2.XmlTextReader.Expect (System.String expected) [0x00000] in :0
at Mono.Xml2.XmlTextReader.ReadEndTag () [0x00000] in :0
at Mono.Xml2.XmlTextReader.ReadContent () [0x00000] in :0
at Mono.Xml2.XmlTextReader.ReadContent () [0x00000] in :0
at Mono.Xml2.XmlTextReader.Read () [0x00000] in :0
at System.Xml.XmlTextReader.Read () [0x00000] in :0
at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x00000] in :0
at System.Xml.XmlDocument.ReadNode (System.Xml.XmlReader reader) [0x00000] in :0
at System.Xml.Serialization.XmlSerializationReader.ReadXmlNode (Boolean wrapped) [0x00000] in :0
at System.Xml.Serialization.XmlSerializationReader.UnknownNode (System.Object o, System.String qnames) [0x00000] in :0
at System.Xml.Serialization.XmlSerializationReader.UnknownNode (System.Object o) [0x00000] in :0
at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadListElement (System.Xml.Serialization.XmlTypeMapping typeMap, Boolean isNullable, System.Object list, Boolean canCreateInstance) [0x00000] in :0
at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadMembers (System.Xml.Serialization.ClassMap map, System.Object ob, Boolean isValueList, Boolean readByOrder) [0x00000] in :0
at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadClassInstanceMembers (System.Xml.Serialization.XmlTypeMapping typeMap, System.Object ob) [0x00000] in :0
at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadClassInstance (System.Xml.Serialization.XmlTypeMapping typeMap, Boolean isNullable, Boolean checkType) [0x00000] in :0
at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadObject (System.Xml.Serialization.XmlTypeMapping typeMap, Boolean isNullable, Boolean checkType) [0x00000] in :0
at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadObjectElement (System.Xml.Serialization.XmlTypeMapElementInfo elem) [0x00000] in :0
at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadListElement (System.Xml.Serialization.XmlTypeMapping typeMap, Boolean isNullable, System.Object list, Boolean canCreateInstance) [0x00000] in :0
at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadMembers (System.Xml.Serialization.ClassMap map, System.Object ob, Boolean isValueList, Boolean readByOrder) [0x00000] in :0
at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadClassInstanceMembers (System.Xml.Serialization.XmlTypeMapping typeMap, System.Object ob) [0x00000] in :0
at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadClassInstance (System.Xml.Serialization.XmlTypeMapping typeMap, Boolean isNullable, Boolean checkType) [0x00000] in :0
at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadObject (System.Xml.Serialization.XmlTypeMapping typeMap, Boolean isNullable, Boolean checkType) [0x00000] in :0
at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadRoot (System.Xml.Serialization.XmlTypeMapping rootMap) [0x00000] in :0
at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadRoot () [0x00000] in :0
at System.Xml.Serialization.XmlSerializer.Deserialize (System.Xml.Serialization.XmlSerializationReader reader) [0x00000] in :0
--- End of inner exception stack trace ---
at Rocket.Core.Assets.XMLFileAsset1[Rocket.API.Serialisation.RocketPermissions].Load (Rocket.API.AssetLoaded1 callback) [0x00000] in :0
at Rocket.Core.Assets.XMLFileAsset`1[Rocket.API.Serialisation.RocketPermissions]..ctor (System.String file, System.Type[] extraTypes, Rocket.API.Serialisation.RocketPermissions defaultInstance) [0x00000] in :0
at Rocket.Core.Permissions.RocketPermissionsManager.Start () [0x00000] in :0

hastebin link to my Permissions.config.xml

Issue not following the format. Please reopen this using the correct format that comes available when creating an issue. @Trojaner25 close this.

Beside that, your Permissions.config.xml is broken. This is not a bug.

so i cant do anything more?

You can fix your permissions file, instead of creating an issue that is not a programming error, rather a user error. Also, if you need it, http://www.xmlvalidation.com/ use it to check if you finally were able to fix your perms file in terms of structure.


Download intermittent 502

Trying to download coursier from the URL in the documentation (https://git.io/coursier-cli-linux) will intermittently (more often than not, recently) fail with 502 Bad Gateway. Tested on a local machine and on a GitHub actions runner.

I found it here: https://get-coursier.io/docs/2.0.6/cli-installation.
I see now that this isn't the latest version.
Maybe the documentation of the older versions can/should also be updated?
Of course, the real issue is that it's unreliable. If it would simply return 404 consistently it would indicate that it's not the right URL anymore.


[stable/spinnaker] update dependencies

Fixes an issue where Redis resources are truncated to 24 characters instead of
63.
Fixes https://github.com/kubernetes/helm/issues/2116

@k8s-bot e2e test this

@prydonius do you have an idea why the e2e tests are timing out?

@prydonius do you have an idea why the e2e tests are timing out?

@linki this chart doesn't install in 180 seconds

@linki @viglesiasce gentle ping

Sorry for the delay. Will try to incorporate this in #961

Closing in favor of #961


Avro support for the Java bindings?

Avro doesn't seem to be supported as a first class citizen in the Java bindings (I end up with  UnsupportedOperationException: Interface can't be instantiated! Interface name: org.apache.avro.generic.GenericRecord when I try it). Is this intended?
BTW, I could sort this out by working with byte arrays and Avro DatumWriter/Readers, but it would be nicer to have better support (comparable to the C# bindings).

Thank you for sharing @meken
Good point. I have no afford right now, however, I'd like to keep this for being the future backlog.

Appreciate your feedback on this! We are investigating on this capability. Any inputs on size of Avro records expected? This will  help us plan accordingly


Allows users to watch the execution of a program step by step

"Watch mode" can be activated when a program is run with the -w or -watch argument. This will give a graphical display of the state of the main board (and any currently executing sub-boards) with a half-second delay between each execution step. It is recommended not to use watch mode in conjunction with verbosity.

what's with the ridiculous whitespace? O_o

This should integrate with the verbosity settings, possibly with -w implying -vv

Verbosity -vvv already shows the board execution. The intent of this option is to watch the board execution without getting the rest of the verbosity noise.


[NOTICE] Removal of the Dart generator in 3.0

In an ongoing effort to consolidate resources and clean up the compiler, we will be removing the Dart generator from 3.0. It is the only generator which lacks support for unions, and with the introduction of services it now like two major features.
We don't currently have a means to track usage for each generator, but we suspect it is the least popular. If there is community interest in keeping it, it will need to be voiced before 3.0.

Hi, Dart — rapidly growing language;
starting with Dart 3, it introduced sealed classes, pattern matching and tuples (records in Dart terminology)
So, this means that the Dart generator has the potential to work with Union, there's no needs to remove Dart from supported languages, IMHO


fix: datacenter taint draining too soon, datacenter update not updating drain timeout

Changes

#765
#764
#763  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @MasterPtato and the rest of your teammates on  Graphite


com.google.android.gms.com mon. API. ApiException: 10

My project was originally a Google Drive login using the REST API, and I have applied for the Client ID. Now you want to use the Sign in SDK for login, get the code through the requestServerAuthCode, and when you create a new credential, the error "failed: create the Oauth client" is prompted. Program is running at "com.google.android.gms.com mon. API. ApiException: 10" error, please help to solve, thank you very much

@YongHuiLuo there's not enough information here to debug, and I am not sure it's relevant to this sample repository.  Maybe try StackOverflow to get help with your app.


Create RegexReplace.pl

What does the program do ?
Finds and replaces a word in a string with another word.
In what programming language it is written?
Perl

Thank you for participating  in hacktoberfest ❣ if you liked working on this repo you can share it with friends and star this project for helping others


builder: go: Allow equal signs in env vars

If .slsa-goreleaser.yml contains an env var with multiple '=' signs:
env:
  - CGO_ENABLED=1
  - CGO_CFLAGS=-mmacosx-version-min=11.0

the 'build dry project' GH workflow step fails with "invalid environment
variable: CGO_CFLAGS=-mmacosx-version-min=11.0"
This is caused by the way the env vars are parsed in GoReleaserConfig:setEnvs
which only allow for a single '=' sign.
This commit fixes this by splitting the env string at the first equal sign,
first part is the env var name and won't contain '=' signs, second part
is its value and can contain any number of '='.
This also adds unit tests for this situation, and for env vars with no
values (CGO_CFLAGS=).
This fixes https://github.com/slsa-framework/slsa-github-generator/issues/1231

Good, you allowed no value. 👍  Thanks!


Not working in Safari

Hi, really like the library. Just wanted to share a bug I've found. It seems the library doesn't work properly in Safari. The error I'm getting is attached below. Tested on IOS 13 as well as desktop safari version 12.0.1.

Hi @Gauraklein, react-awesome-reveal uses the Intersection Observer API in order to detect when elements enter the viewport. Make sure to enable the support for this API from Safari settings (under Experimental Features):

It should work properly after this change.
Cheers

https://caniuse.com/#feat=intersectionobserver

Oh awesome! Thanks @dennismorello


Allow for non-master default branch names

Removed the unnecessary "base" option when creating PRs for updating the
bridge or the upstream provider. The create-pull-request action defaults
to the branch that is checked out in actions/checkout, which is the
default branch anyway.
Tested both the bridge and upstream provider workflows with pulumi-artifactory, which was has a default branch named "main".

Duplicate of #129


TextField label overlap outlined

React 16.11.0
@material-ui/core 4.5.2

Please provide a minimal reproducible example for example a codesandbox, thanks.


crash upon joining new game

Fedoraware Version Date:
current version
Config used:
https://files.catbox.moe/3sjz0c.fw
Description:
Joining a new game causes a crash (only when already in a map)
Steps to reproduce:
Join a game, requeue for a new match and load in.

if you had followbot and have a bind thats record fix;stop fixes stuff it will crash but im not sure about this one im thinking its the tf2 problem not the cheat not sure

i have neither

Try disabling the Weather effect in Visuals -> Misc -> Precipitation (Right Side)


CreateItemAsync object serializing causes "Specified input is invalid" or "required properties - 'id; ' - are missing" or "PartitionKey extracted from document doesn't match"

We are continuously addressing and improving the SDK, if possible, make sure the problem persist in the latest SDK version.

Describe the bug
When creating items in a container using CosmosContainer.CreateItemAsync(), and passing a serializable object that does not explicitly contains lower case "id" property, an unhandled exception is thrown:
Reason: (Message: {"Errors":["The input content is invalid because the required properties - 'id; ' - are missing"]}
if the [JsonPropertyName("id")] attribute is added to the property and System.Text.Json.Serialization is used to serialize the object in order to transform the object property "id" (lower case vs whatever other name or case), an unhandled exception is also thrown:
Reason: (Message: {"Errors":["One of the specified inputs is invalid"]}
Also applies to partition key if the property doesnt match the expected case
Reason: (Message: {"Errors":["PartitionKey extracted from document doesn't match the one specified in the header"]}
To Reproduce
Create any item with an object that uses an ID property that does not match Cosmos DB expected "id"
public class Heroe
    {
        [JsonPropertyName("id")]
        public string Id { get; set; }

        [JsonPropertyName("name")]
        public string Name { get; set; }

        [JsonPropertyName("location")]
        public string Location { get; set; }
    }

----------------------

FAILS: await this._container.CreateItemAsync(JsonSerializer.Serialize(heroe), new PartitionKey(heroe.Location));

Expected behavior
CreateItemAsync() respects System.Text.Json.Serializer
Actual behavior
CreateItemAsync() ignores [JsonPropertyName]
Environment summary
SDK Version:   3.1.302
Commit:    41faccf259
OS Version: MacOSX 10.15

@romerve there is a few issues with your example. JsonSerializer.Serialize returns a string. Then newtonsoft is trying to serialize that string.
Solution 1:
Use the CosmosClientOptions.CosmosSerializer to override the default Newtonsoft behavior. This prevents you from needing to put custom logic for each method. Here is an example  of how to implement it.
Solution 2:
Use the stream APIs to pass in the serialized content.
await using MemoryStream streamPayload = new MemoryStream();
            await using Utf8JsonWriter utf8JsonWriter = new Utf8JsonWriter(streamPayload);
            JsonSerializer.Serialize<Heroe>(utf8JsonWriter, heroe);
            streamPayload.Position = 0;
            using ResponseMessage responseMessage = await container.CreateItemStreamAsync(streamPayload, new PartitionKey(heroe.Location));
            responseMessage.EnsureSuccessStatusCode();
            Heroe heroeResponse = await JsonSerializer.DeserializeAsync<Heroe>(responseMessage.Content);


{"uri":["URI ist kein g\u00fcltiger URI"]}

I am trying to import certain fields for a section of around 100 entries from a .json file.
so each entry has an ID which the "unique identifier for existing elements". the "keyword" should be added to a certain field.
That works alright first but for certain files / fields it interrupts after a few processed ones. The protokol says:

{"uri":["URI ist kein g\u00fcltiger URI"]}

I already reduces the JSON a lot to make sure theres no syntax error in the file:
[
{
    "id": 105,
    "keyword": "uberall geomarketing"
},
{
    "id": 108,
    "keyword": "efre"
}
]

I have a feeling this might be an issue with the slug being generated not being valid - therefore the resulting URI is invalid as per your error message. Have you had a look at limitAutoSlugsToAscii config setting?
This should turn the slug from gültiger to gultiger.

I think thats a very good guess. unfortunately limitAutoSlugsToAscii doesnt make a change in that case.
I am wondering why the progress changes the url at all. No new slug has to be created as I am even not touching the "title" field...

Hmmm, without looking at your whole feed (and current entries) its a little hard to guess. If you're just re-saving existing entries by adding content to custom fields, then it certainly is odd.
Does the URI error message change, or are there multiple ones? For instance, have you gone to manually edit the entry with slug gültiger, just to see if that saves normally like you would through Craft's CP? Feed Me pretty much uses the same process to save an entry...
It might be worth submitting a Help request through the plugin to allow us to get some more information on your setup?

In german you can say something like I didn't see the forest because of too many trees...
Well the problem was that I imported the entries, changed the URL of the section to {title}-something (craft doesnt complain about eventual conflicts at this point until you save one of the entries again) and then I tried to update them with Feedme (including the title field).
I noticed that when I tried to update the entries manually and craft wouldnt let me.
Josh, thanks your help finding that solution!

Ah gotcha, glad you got to the bottom of it!

For any future searchers that happen upon this issue, in addition to the option of changing which field is used to generate the uri, you can also pass unsafe values to the kebab twig filter. This filter will get rid of spaces and normalize to kebab case like everything else in craft. Non-ascii characters are already handled as internally there is a urlencode performed (unless you explicitely dont want special characters, in which case you can pass the url_encode or ascii filters).


can move/copy first children

I'd like can move first children. Now is disabled. In my project this option is needed. What can I do ?
Thanks.

Take a look at the docs - you probably need to set core.check_callback to true.

I try it, does not work.


Still up-to-date ?

Hi,
This puppet module is one that finally looks clean, is it still up-to-date enough ?
Thanks

Thanks, that's why I created this one. Last update was for Zabbix 3.2.0. Stable release is up to 3.2.3. Unless Zabbix made breaking changes, it should install the latest version if you set:
class { '::zabbix::globals' :
  version => '3.2.3',
}

FYI I just need more testing and documentation before I was going to release on the forge but this project is pretty low on my priority list. PRs warmly welcomed.

Thanks for your update, I will check it out and report if I will use it and find something usefull!


Sabnzbd

when i start the sabnzbd addon i get this error:
s6-overlay-suexec: fatal: can only run as pid 1

I am aware of the issue. I personally downgraded to the previous version as I haven't had time to investigate.

I took a quick look and managed to fix the issue. This was apparently caused by v3 of S6 which is enforcing that it be PID 1. A quick change to the add-on config appears to have resolved this. If you have updated to the latest version you will need to re-install the add-on. Be sure to back up your data before you do it or it will be deleted when you uninstall!


[WIP] Update 1.1.0

This pull request merges changes from the beta branch for release as official 1.1.0.
Changes include updated themes (including bugs, parity) and cleaner repo

VERSION 1.1.0!!!


Consider alternative docker image atttribute as kernel_id

First of all great work of yours! appreciate it.
Though I met some problems when trying to install a docker image as a KernelSpec (tensorflow/tensorflow:latest-gpu to be precise).
got an Error
ValueError: kernelspec already exists: /home/lubricy/.local/share/jupyter/kernels

it turns out that image.attrs['ContainerConfig']['Hostname'] is just an empty string.
I'm not quite familiar with docker image attrs but perhaps a sanitized image tag (e.g. tensorflow_tensorflow_latest-gpu)would work better here? or perhaps rather let user to decide the name/id of there kernel?
Another unrelated thing is I think it would be nice if dockernel start (and dockernel install) could accept docker cli flags (e.g. -v VOLUME , -p PORT, -u USER etc.). a particular flag I'd like to use is --gpus all but it seems like it's not natively supported by py-docker upstream. Maybe give python-on-whales a try?

Hi @Lubricy! Thank you, I'm glad you like it!
I had no idea that ['Hostname'] key could point to an empty string there. At the very least that's something that needs to be shielded against.
Looking back at it, I'm not sure whether it was a good idea to use Hostname there at all. IIRC this was just a temporary bodge, so that I don't have to look after something more proper to put there. I'll surely need to add an --id argument into dockernel install so that even if it bites, its workaround-able.
I plan on putting some of the container configuration into a per-user setting, so that e.g. you can specify the volumes you work on inside a ~/.dockernel config file and use them for every kernel. That topic is still very much open, so if you have any suggestions - I'd love to hear them.
With regards to --gpus all - I'll have to look into it. Are you sure it's not supported? Looks to me like it was merged last year via docker/docker-py#2471, I'll have to check.
Note to self:

docker/docker-py#2395
docker/docker-py#2462
docker/docker-py#2471 (PR)

took a second look on the PR - yeah you are right it's supported. I got confused by those still-open issues.


Abstract proposal

This is just a draft. Comments, criticism and suggestions most welcome!

It looks great to me! :+1:

+1

lgtm


uprotocol-java-ulink-android: Initial Commit

Merge of the Binder based Android uLink library

done!!


How to prevent entering next digit if the longest number is achieved?

Hello!
Could you please advise me how to prevent entering next digit if the longest number is achieved for the given country?
I can not rely on the validation result, for small length, it returns false too.
Maximum lengths for a country are different, so I can not just set it to 15.

Currently there's no such feature in this library.
Both iOS and Android don't restrict a user from entering any phone number because new phone numbers can emerge not covered by current regular expressions.
Google's libphonenumber doesn't have such a max length feature and this library doesn't too because it's a port the former.


[fix][broker] Should not throw NotFoundException when metadata already exists.

Motivation
Make the Exception more clear.
Modification
Return the 409 Conflict instead of 404 NoFound when metadata already exists.
Verifying this change

[ ] Make sure that the change passes the CI checks.

(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (10MB)
Extended integration test for recovery after broker failure

Does this pull request potentially affect one of the following parts:

If the box was checked, please highlight the changes

[ ] Dependencies (add or upgrade a dependency)
[ ] The public API
[ ] The schema
[ ] The default values of configurations
[ ] The threading model
[ ] The binary protocol
[ ] The REST endpoints
[ ] The admin CLI options
[ ] The metrics
[ ] Anything that affects deployment

Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

Matching PR in forked repository
PR in forked repository:

Codecov Report

Merging #20539 (d0291ae) into master (d7186a6) will increase coverage by 0.02%.
The diff coverage is 75.00%.

@@             Coverage Diff              @@
##             master   #20539      +/-   ##
============================================
+ Coverage     72.93%   72.96%   +0.02%
- Complexity    31930    31952      +22
============================================
  Files          1867     1867
  Lines        138555   138562       +7
  Branches      15218    15220       +2
============================================
+ Hits         101059   101100      +41
+ Misses        29466    29447      -19
+ Partials       8030     8015      -15

Flag
Coverage Δ

inttests
24.20% <41.66%> (-0.04%)
:arrow_down:

systests
24.97% <41.66%> (+0.07%)
:arrow_up:

unittests
72.26% <75.00%> (+0.02%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...rg/apache/pulsar/broker/service/BrokerService.java
81.05% <ø> (+0.50%)
:arrow_up:

.../pulsar/broker/service/persistent/SystemTopic.java
80.00% <0.00%> (-12.31%)
:arrow_down:

.../apache/pulsar/broker/admin/impl/PackagesBase.java
76.63% <50.00%> (+0.44%)
:arrow_up:

...rg/apache/pulsar/broker/service/AbstractTopic.java
88.20% <100.00%> (+0.19%)
:arrow_up:

...ache/pulsar/broker/service/EntryFilterSupport.java
97.36% <100.00%> (+0.07%)
:arrow_up:

...sar/broker/service/persistent/PersistentTopic.java
79.66% <100.00%> (+0.26%)
:arrow_up:

...s/management/core/impl/PackagesManagementImpl.java
77.85% <100.00%> (+4.28%)
:arrow_up:

... and 70 files with indirect coverage changes


Essentially only works on alpine due to keychain requirements

I've not managed to get apko to work on a non-alpine system reliably. Some guidance on how to populate the keychain, or if apko could do that well that'd be good.
And ideally the keychain could go into /tmp or XDG_DATA_HOME or something rather than /etc/apk/keys and /usr/share/apk/keys
https://github.com/chainguard-dev/apko/blob/main/pkg/apk/apk.go#L37-L40
Maybe --keyring-append & --repository-append would also help with that 2nd part

You can use https URIs for keys that you want to use.

This was solved in apko 0.7.0.  Alpine keys, if needed, will be downloaded from Alpine automatically.


500 Error JsonException from StackOverflow Client

When querying for https://www.w3schools.com/html/html_quotation_elements.asp in the search box, the redirect link
/search?q=https%3A%2F%2Fwww.w3schools.com%2Fhtml%2Fhtml_quotation_elements.aspthrows a HTTP ERROR 500 org.json.JSONException: JSONArray[0] not found from the StackOverflow Client
At least I'm pretty sure it's StackOverflow Client since when I comment out the StackOverflow .search code this error doesn't appear

this because the CSE returns an Stackoverflow question that is not answered yet. need to be resolved in future pr.

#54


Refactor repo structure

Purpose
As per the original structure, oidc-js package was residing at the root. This would be problematic if we are to implement other packages like Angular or React SDKs.
Goals
This PR will try to introduce a structure which would address the above mentioned issue.
Approach
oidc-js-sdk/
 │-- docs/
 │-- packages/
 │    |-----oidc-js/                          * Parent JS SDK
 │    |-----oidc-angular/                     * Angular SDK built using `oidc-js`
 │    |-----oidc-react/                       * React SDK built using `oidc-js`
 │    └-----oidc-vue/                         * Vue.js SDK built using `oidc-js`
 │-- samples/                                 * Sample apps
 ├── .eslintrc.js                             * JS/TS linting configuration file
 ├── .gitignore                               * contains files that are ignored from git
 ├── .travis.yml                              * travis ci configuration file
 ├── CONTRIBUTING.md                          * project contributing guideline
 ├── LICENSE.md                               * licensing information
 ├── package.json                             * contains all npm scripts and all the dependencies.
 └── README.md                                * Readme file for the repository

This change will be reflected when the new Angular SDK package is merged.

These changes were again added in https://github.com/asgardio/asgardio-js-oidc-sdk/pull/29


IPC GUI ToDo

IPC GUI source code is available here. Feel free to make appropriate modifications and send a PR.
Next Update

[ ] [Config] Add new data types
[ ] [Config] Do not include default properties when updating config
[ ] [Config] Implement parsing helper to editor and generator
[ ] [Config] Add bootstrap-toggle to Editor and Generator
[ ] [Global] Load fallback strings if dynamic loaded i18n strings are empty

ToDos

[Global] Think about NLog layout
[Bots] Auto detect order of keys in BGR (Suggestion)
[Bots] Implement DELETE /Api/GamesToRedeemInBackground/{Bot}
[Commands] Implement wiki parser for command descriptions
Show tooltip/box with wiki info about the selected command - Consider this suggestion
[Config] Implement wiki parser for config properties
Show tooltip/box with wiki info about the selected config property - Consider this suggestion
[Config] Implement Driver.js
Wiki parser for Editor and Generator, Whats new?, Tips&Tricks, missing input etc.

Suggestions

[Commands] Add "quick commands" feature (Suggestion)
[Commands] Save last Command sent info
Maybe add a button to resend last sent command
[Commands] Add multiple support for botsDropDown
[Commands] Get raw .md file and parse it (Suggestion)

Final Steps

Implement style guide and coding conventions
Check nightmode support
Check i18n support
Optimize and clean code
Check for input/output sanitation
Minimize all files

FAQ

Lightmode is visible when using nightmode
Sadly I havent found a way to change that.

Error 1006 when viewing Log page
This is getting caused by one of the following points:

Adblocker - Add IPC GUI to whitelist
Windows 7 - Websockets are not supported on win7
nginx - Check websocket proxying

There's a bug with the config editor in the function prepareConfigForSaving
The function loads the configuration that it retrieved from the API, the problem is that if one of the properties has a default value, is not included in the ASF response so when the function prepareConfigForSaving loop through all the keys in the config to update them with the one in the forms if the property had a default value is not going to be part of the loop so is never going to be changed.
function prepareConfigForSaving() {
    var botName = $('#saveButton').data('BotName'),
        config = globalConfig; //Here it loads the config object that ASF sent in the ajax request

    for (var key in config) {
...

for example if the property RedeemingPreferences has the default value 0 the API endpoint /Api/Bot/Bot_name is not going to have it because as in the BotConfig Wiki says:

Typically this object will include only a subset of all config properties - those that the user has modified (minimalistic config).

So if the user try to change that value as there's not a entry in the globalConfig object is not going to be saved.
I think 3 ways of possible fixes:

Change ASF Behavior

Adding a parameter to the /Api/Bot/{Bot} endpoint so it returns all the properties
Changing the response of the endpoint without adding extra parameters

Looping through the form elements instead of the globalConfig
Pre populating the globalConfig object with all the properties and the default values that will be filled by the ajax response

Maybe I can create a pull request but is a bit late where I live so it will have to wait

Here is a short answer since I am at the airport right now:
Everything should be fine from ASF side, so there is no need to change anything here.
What needs to be done is very simple: We need to get globalDefaultConfig before updating those properties with corresponding config values from loaded config.
I am aware of what is broken right now and I know how to fix it. I just didnt have any time to do it.
Thank you very much for your time and work!

Okay then thank you
On Sat, Aug 25, 2018, 9:23 PM Abrynos<EMAIL_ADDRESS>wrote:

This error occurs because ASF wasn't provided the correct password.
As this is a very important security feature to refuse anyone access to
your steam accounts who tries to get access to your ASF instance by
brute-forcing the IPC password this can NOT be deactivated (and will never
be deactivateable [if that word exists]). you can however restart ASF
itself which should clear the 1 hour timer that will let you retry after
said time interval.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/JustArchi/ArchiSteamFarm/issues/869#issuecomment-415969034,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQRpRGdlOIrJO7Y4R-GasYpHGEXbjvUTks5uUU_sgaJpZM4VpGAC
.

Bug Report
Description
When clicking the key-icon by a bot on bots.html and closing the popup a button will still be shown when reopening the popup, despite not belonging there
Steps to reproduce

Go to /pages/bots.html
Click the key-icon of a bot
Click on the "View unused keys" or "View used keys" tab
Click the Cancel-button on the bottom of the popup
Click the key-icon of the same bot again (also works if you open up the popup for another bot and then return to the original one)
The Download button is still visible despite being on the "Add keys" tab

Thank you for reporting this!
This bug got already fixed here.

Quite important bug to the collection:
Right now IPC GUI assumes that it's always running on the root domain, for example on <IP_ADDRESS> or example.com.
This assumption will no longer work with ASF <IP_ADDRESS>+ that introduces Kestrel http server (#898) that fixes missing functionality asked in #840.
User might now run ASF's IPC server with custom base path, such as <IP_ADDRESS>:1242/IPC or example.com/ASF. IPC GUI is hardcoded in a lot of places to always ask for /Api/XXX which is wrong, as in this case /Api/XXX will not work, correct usage would be /prefix/Api/XXX, or just how it should be done in the first place: Api/XXX. Same goes for other parts, e.g. /locale/strings.json.
Please consider it one of priority fixes for new update, thank you in advance @MrBurrBurr.

I will look into this, thank you for reporting.


state.history.history !== undefined

Bug or feature request?
Bug
Description:
History is retained for history states in >=4.0.0 generating huge trees of history. As per https://xstate.js.org/docs/guides/states.html#notes the state.history.history should be undefined in order to avoid this. Version 3.3.3 was unaffected. I did not find any example from documentation or release notes for configuring the feature.
(Bug) Expected result:
state.history.history === undefined

(Bug) Actual result:
state.history.history !== undefined

(Bug) Potential fix:
Possible culprit is around here, where the history is removed from current but not the next state.
https://github.com/davidkpiano/xstate/blob/master/src/StateNode.ts#L1146
Link to reproduction or proof-of-concept:
Minimal reproduction: https://codesandbox.io/s/0mvq314k80

Fixed in #290, thanks!