Allowtool designations compatibility issue

https://github.com/UnlimitedHugs/RimworldAllowTool
This mod has a custom designator implementation that is not compatible with the way designators are synced in multiplayer. Based on:
https://github.com/UnlimitedHugs/RimworldAllowTool/blob/master/Source/Designators/Designator_SelectableThings.cs
Specifically, the modded designators do not have a default constructor, which causes an error when the sync function tries to create an instance.
It seems that there is no clear way to make this mod compatible without making a special exception in the multiplayer mod, or for the mod author to completely rewrite the mod.
I am reporting this not because it is urgent or anything, but just because I wanted to document it.

@Dunkhan Handling UI additions in itself is not easy at the moment, and when the designator in RimworldAllowTool is something fancy, I don't know how to write a quick compatibility patch for this.


[MM-30046] Add /uninstall command

Summary
This PR adds an /uninstall slash command. I've briefly tested it locally, but given some bugs in the code I wasn't able to fully test.
Still, the slash command is a valuable tool for debugging.
Ticket Link
https://mattermost.atlassian.net/browse/MM-30046

Codecov Report

Merging #75 (94e7ab1) into master (cddeae7) will not change coverage.
The diff coverage is 0.00%.

@@           Coverage Diff           @@
##           master      #75   +/-   ##
=======================================
  Coverage   23.64%   23.64%
=======================================
  Files          20       20
  Lines         609      609
=======================================
  Hits          144      144
  Misses        459      459
  Partials        6        6

Impacted Files
Coverage Δ

server/api/impl/store/apps.go
5.00% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update cddeae7...94e7ab1. Read the comment docs.


Specify error type caught from findOneOrFail

To avoid leakage of errors that might not be NotFoundError

the idea behind this is not forcing users to wrap every single call in try/catch, this should be handled by some middleware that distinguishes the error type (and you can plug in your own error class via the configuration as describer on the following lines).
so i would rather not have such example in the code, as people often like to copy paste things without thinking

Even if handled in middleware feels like an example showing this specific error thrown when a record is not found (which is really the one the user is expecting on "fail") is less dangerous / confusing than an example which may catch / suppress all errors, some of which may be unrelated. In a middleware people are still likely to want to do something specific in response to this error case or cases like it (e.g. process a 404 rather than a generic 500).
Just my two cents, since this was my instinct and I ended up needing to dig through the typings to find any reference to how to do this. Thanks for your work on MikroORM!


Embedded images must be restricted to mxc: URIs

Right now img tags are allowed arbitrary linking, which is a security issue!

yes, this is a security issue - and has been mistriaged. @giomfo presumably this is a trivial fix?

The security regression was added with https://github.com/vector-im/riot-android/pull/1900 where the <img> tag has been added without a check on its src attribute value.


Live Preview: Small Multiples: Social share overlaps title at small breakpoint

Users have several preview options, one of which is a small breakpoint. Currently, the social share icons overlap the title in the small multiples blueprint at small breakpoint preview.

Navigate to Autotune on staging
Create new small multiples project
Add required info and preview (http://staging.autotune.voxmedia.com/projects/eater-sm-live-preview)
Open small breakpoint
Observe social share overlaps title

Closing this since it will eventually be part of QA for this blueprint when the time comes.


Access Customer Data of Microsoft Bookings power platform connector

Hi there !
I have checked the documentation and I see that all triggers return AppointmentData, however, I need to access to CustomerData because I need to read through power automate the custom questions and answers.
How can I get the customer data when the appointment is created?

@luisafrancoj Thank you for your feedback. I was not able to find a document that refers to accessing Customer Data of the Microsoft Bookings power platform connector. I'd recommend you provide this feedback on our Main feedback portal (https://feedbackportal.microsoft.com/), so that our Dev/Prodcut engineers will be able to review and respond with more information related to your query.
Hope this helps!
Thanks
Sri

@luisafrancoj Thank you very much for your kind feedback. Considering your valuable feedback, please log this issue as advised. Here we are limited to documentation fixes and improvements only. Concerning team will evaluate and take the appropriate action, as per their schedule. We proceed here to close it. Thanks again for taking out some time and sharing your feedback.


possibility of sdo upload big files over coconn domain type  > 10 MByte

Is the new coconn in principle able to upload larger files?

Yes, I tested 10GB in virtual CAN interface in Linux, few hours, no problems. Block transfer is much more efficient, segmented transfer works too. See https://canopennode.github.io/md_test_test_report.html

Thanks for the hint.
I had the problem that our SDO server (receiver) needs a stream size information.
Unfortunately cocomm does not have this option, so I have extended the "CO_gateway_ascii.c" with a new command.
"[] set sdo_wr_size           # Set default sdo write size.\n"
I don't know that the best solution is, but it works.
Does it make sense to enter this into the master?
I could upload to a brach, what do you mean?

I don't like to add non-standard solutions.

I understand that.
How can I then send a file with a size information transfer via cocomm/SDO.
Are there other options?

Size information is part of the SDO message, it is optional. Actually cocomm don't know the size information of large data on the beginning of transfer (write). So maybe your solution may be simple and useful. Pleas make a pull request then.


avoid std::move() on temporary at -werror

/home/jenkins-build/build/workspace/ceph-pull-requests/src/rgw/driver/posix/lmdb-safe/lmdb-safe.cc:336:10: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]
return std::move(getRWTransaction());
^
/home/jenkins-build/build/workspace/ceph-pull-requests/src/rgw/driver/posix/lmdb-safe/lmdb-safe.cc:336:10: note: remove std::move call here
return std::move(getRWTransaction());
^~~~~~~~~~                  ~
1 error generated.

This PR is likely in vain because this repository is no longer maintained.
I have fixed many more warnings on https://github.com/ahupowerdns/lmdb-safe/pull/15 which you may want to checkout. I have also done lots of further improvements on https://github.com/Martchus/lmdb-safe.

I saw that, and I'm going to try to use your repo, if you consider it maintained.  If this change is still applicable, would you have accepted it?

I would definitely have accepted it. Note l definitely still care about my fork repo as I actively use it in one of my projects. However, I have never spent the time to make it really fancy.
Note that LMDB in general needs a rediciously large address space which is likely a no-go on any 32-bit system. I'm just saying this as a warning so you know what you're getting into.

interesting;  we're all 64-bit, so that should be ok :)

@Martchus so, is your lmdb-safe no longer standalone--it requires your c++utilities submodule to be present as well?

It just uses headers and CMake modules from c++utilities but not the library itself. I suppose it would be ok to disable inclusion of c++utilities headers if e.g. LMDB_SAFE_NO_CPP_UTILITIES is defined. That would then disable all features that come with it, e.g. being able to export symbols in case one builds a shared library and the whole lmdb-typed.hh header as it really uses c++utilities headers.
Note that it shouldn't be hard to supply c++utilities as it provides a CMake module and pkg-config module. If you use CMake yourself you can also build it as part of your project (via add_subdirectory).

I only need the facilities in lmdb-safe.hh, and it's an advantage to avoid including as little extra as possible, in particular, a whole submodule. It's not about ease of building, it's about maintenance of our larger project.

Ok, I would accept commit to switch off c++utilities in lmdb-safe.hh. By the way, have you considered using https://github.com/drycpp/lmdbxx? It seems more popular. I personally only opted for lmdb-safe because of lmdb-typed.hh.

well, I had seen it, but liked the interface work in lmdb-safe, liked it's style of c++.  what is your opinion of lmdbxx?

I haven't used lmdbxx myself yet. I would have chosen it if it would have had an interface similar to lmdb-typed.hh because it seems more popular and is more actively maintained.


Fix finding the DOM element containing the email address

The email address is now found directly in the <div> with class title.

Hey @joelpet, thanks for PR. Unfortunately, I'm not mailbox.org user anymore, so I cannot test this change. I archived the project and added a note in README that one can use forks, for example yours :)


Rpi2 and beta image

At the latest beta image, I can't recreated the container at my rpi2 host, the issue is:
ailure OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"/tini\": stat /tini: no such file or directory": unknown
raspberry pi2 / raspbian / docker
There were no problems on the x86 platform. Any suggestion? Thanks.

Version 2.05.83 can't connect to my conbee II
Devices are gone (may be because of missing connection to conbee), but not all.
If I run the 2.05.80 it works fine... I didn't get any error message...
raspberry pi 4 with raspbian and docker...

The latest stable release 84 is the same behaviour.

I'm just re-created a new container with a brand new version of latest image, and it seems to working good.
Obviously, the changes what Martin made after the container with version 82 is normal behavior, since the structure of the container has been slightly changed... But the question remains why there were no problems with x86. Well, I think the problem is closed.
At least on raspberry pi2, you need to re-create the deconz container. Peace.


proposal: use time.Parse() in ValidateSimpleDate

ValidateSimpleDate seems to have a lot of logic that could be simplified by using the time package. This would also solve the TODO of validating during a leap year.
here is a possible implementation:
// validateSimpleDate will return the incoming string only if it matches a valid YYMMDD
// date format. (Y=Year, M=Month, D=Day)
func (v *validator) validateSimpleDate(s string) string {
	//YYMMDD
	layout := "060102"

	_, err := time.Parse(layout, s)
	if err != nil {
		return ""
	}
	return s
}

Yea.. That date validation code was written a while ago and I don't remember why we chose to have isDay and related functions.

Do you have a failing test case for this? 2024-02-29 passes the current implementation.


Updated Gradebook find command

add necessary test case for find command

Coverage increased (+1.04%) to 67.768% when pulling c60aabff7414ad700c3dc10ae41d0cb6af7a9077 on tristyxxnana:GradebookFindCommand into 42c46d6d780519fce3dbdf78dc67c66b32171d4c on CS2113-AY1819S1-T16-1:master.


Update IndexPath to be merged in from the Darwin overlay and bring across unit tests from the Darwin overlay for IndexPath

@swift-ci please test


Add support for inference on ONNX and TensorFlow models

I think almost everyone on the HOTG team has expressed a desire to use more ML frameworks at some point, in particular ONNX and Tensor Flow. However, I was reluctant to use bindings that go through their official C++ implementations after seeing how much trouble we had integrating TensorFlow Lite.
When I was playing around with hotg-ai/wasi-nn-experiment I came across a pure Rust implementation TensorFlow and ONNX inference called tract. This was able to cross-compile to aarch64-linux-android and wasm32-unknown-unknown without any extra work.
By using tract instead of the reference implementations we'll be giving up some performance, reliability, and features (e.g. missing model ops) in exchange for long term maintainability and reduced build complexity.  @f0rodo may want to comment on this trade-off, but from an engineering perspective I think it's worth it.
The things we'll need to support new model types:

[x] Add an args field to models inside the Runefile (done)
[x] Let the user provide a format argument which is either "tensorflow-lite", "tensorflow", or "onnx" to specify what type of model this is (default is "tensorflow-lite" if not provided) (example)
[x] Convert the format into a mimetype that gets embedded in the Rune and passed to the runtime when loading a model (conversion, injecting into the generated Rune)
[ ] Create new ModelFactory implementations for handling TensorFlow and ONNX models
[ ] Register the new TensorFlow and ONNX model factories as part of our BaseImage::with_defaults() (maybe hide them behind a feature flag like we did with "tensorflow-lite" so users can cut down on dependencies, it's up to you)
[ ] Add integration tests that try to compile and run Runes with TensorFlow and ONNX models

@Michael-F-Bryan long term maintainability will be more problematic though. tract does NOT implement all the operators that tf-lite / ONNX provides. Even ONNX support is not 100%, and this is a moving target. So whenever a user's model doesn't work, we get the bug reports (and maintainability burden) instead of upstream tensorflow/onnx. Tract's statement on tensorflow 2 support is basically:

Addiotionaly, the complexity of TensorFlow 2 make it very unlikely that a direct support will ever exist in tract. Many TensorFlow 2 nets can be converted to ONNX and loaded in tract.

So we'd be going backwards on the actual user facing features (tf 1.0, not complete onnx feature set etc..)that we support this way.
That being said, tract could make a good starting point for us to try out wasi-nn. Especially if we want to target microcontroller world (librunecoral is a no-go for that). Eventually I'd like even librunecoral to support wasi-nn, but let's see how much time / resources we can allocate for that. We still have to kill the old C++ based RuneVM.
Personally, as long as we get zero copy pipelines, and be able to use appropriate hardware acceleration for the use cases that we wish support (eg. if we want to use rune for some kind of video processing - we need tpu/gpu acceleration there, but for just text/audio based models, we can get away without using hardware acceleration), we can get away with any framework.


Update link command for Android project

Motivation:
PR #20767 bumped the version of the Android Gradle Plugin to v3 which uses the newer Gradle dependency configurations implementation and api which make compile obsolete.
While the PR updated the template Gradle configuration, it did not cover the link command which will still link native modules using compile resulting in a warning message beeing displayed during an app build.
Since compile will be eventually removed by Gradle, this commit updates the link command to attach native modules using implementation.
Test Plan:
Ran the tests on my branch:

Note: test_android, test_detox_end_to_end and test_objc seem to fail for other reasons discussed in https://github.com/facebook/react-native/pull/20854.
then,

Initialized a new RN project using the most recent candidate which is necessary for the project to understand the new implementation dependency configuration keyword

react-native init demoProject --version="0.57.0-rc.3"

Added a RN native module that targets Android as a dependency

yarn add react-native-custom-tabs

Copied the local-cli/link folder from my branch into demoProject/node_modules/react-native/local-cli
Followed the additional step in the module guide (added a repository).
Linked the added module using the local modified react-native

yarn run react-native link react-native-custom-tabs

Checked that android/app/build.gradle has been patched correctly with implementation.

Checked that android/settings.gradle and MainApplication.java have been patched as usual.
Built and installed successfully on a physical device without the deprecation warning (ignore the ones in the screenshot as they are related to the custom-tabs module as itself is not using the new configurations).

yarn run react-native run-android

Unlinked and checked that is was successful.

Related PRs:

https://github.com/facebook/react-native/pull/20767.

Release Notes:
[CLI] [ENHANCEMENT] [local-cli/link] - Updated link to link Android modules as implementation dependencies.

@facebook-github-bot shipit


Nuxt3  set server.keepAliveTimeout

Describe the feature
this issues to nuxt3 https://github.com/nuxt/nuxt/issues/9740
hooks: {     listen(server) {       server.keepAliveTimeout = 0       server.headersTimeout = 0     }   },
This has no effect in nuxt3
How to set server.keepAliveTimeout
Additional information

[ ] Would you be willing to help implement this feature?
[ ] Could this feature be implemented as a module?

Final checks

[X] Read the contribution guide.
[X] Check existing discussions and issues.

I ran into this when deploying a Nuxt application behind an AWS load balancer. It is recommended that the keepalive timeout (default 5 seconds) is set to greater than the load balancer idle timeout (60 seconds).
The Nitro preset node-server does not allow the timeout to be overridden nor does it expose the server object. However, you can switch to the node preset and write your own server script: https://nitro.unjs.io/deploy/node
To do this in nuxt.config.ts I added:
  nitro: {
    preset: 'node',
    serveStatic: true
  },

Then in my project I have server.mjs which contains
import { createServer } from 'node:http'
import { listener } from './.output/server/index.mjs'

const server = createServer(listener)
server.listen(3000)

// Must be greater than AWS ALB idle timeout (60 seconds).
server.keepAliveTimeout = 65000

and then I run my project with node server.mjs.

A work around for nuxt v3.8.1. This script inserts server options before starting the server.
sed -i -e "/server\.listen/i server.keepAliveTimeout = 62 * 1000\nserver.headersTimeout = 63 * 1000" .output/server/chunks/nitro/server.mjs

How to set server.keepAliveTimeout in nuxt3?

@hareku The file changed where this config must be set (.output/server/chunks/runtime.mjs) and the new command looks like this:
sed -i -e "/server\.listen/i server.keepAliveTimeout = 62 * 1000;\nserver.headersTimeout = 63 * 1000;" .output/server/chunks/runtime.mjs

@hareku The file changed where this config must be set (.output/server/chunks/runtime.mjs) and the new command looks like this:
sed -i -e "/server\.listen/i server.keepAliveTimeout = 62 * 1000;\nserver.headersTimeout = 63 * 1000;" .output/server/chunks/runtime.mjs

Seems like this changed again, and now the file should be set as .output/server/chunks/nitro/nitro.mjs instead:
sed -i -e "/server\.listen/i server.keepAliveTimeout = 62 * 1000\nserver.headersTimeout = 65 * 1000" .output/server/chunks/nitro/nitro.mjs
Edit: I changed it but it seems to not have effect. 5xx errors started to pop up again for many users through AWS, which was the issues I used to face in the past when we didn't know we had to set these configurations.

Works well for TanStack Start with node-server preset.

@hareku The file changed where this config must be set (.output/server/chunks/runtime.mjs) and the new command looks like this:
sed -i -e "/server\.listen/i server.keepAliveTimeout = 62 * 1000;\nserver.headersTimeout = 63 * 1000;" .output/server/chunks/runtime.mjs

Seems like this changed again, and now the file should be set as .output/server/chunks/nitro/nitro.mjs instead:
sed -i -e "/server\.listen/i server.keepAliveTimeout = 62 * 1000\nserver.headersTimeout = 65 * 1000" .output/server/chunks/nitro/nitro.mjs
Edit: I changed it but it seems to not have effect. 5xx errors started to pop up again for many users through AWS, which was the issues I used to face in the past when we didn't know we had to set these configurations.

Did you find anything new about it? Some other file or some other setting? For me the folder is now just called "_" instead of nitro


Refactor error handling on read requests

Description of change
Minor refactor to simplify how errors returned from Prefetch::read() are handled. It implements the error conversion in the fs::error module, to align it to errors on the write path.
Preliminary work for #644
Does this change impact existing behavior?
No change in behavior.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and I agree to the terms of the Developer Certificate of Origin (DCO).

LGTM. I had one question. Why are we directly returning Bytes from prefetcher rather than converting them from ChecksummedBytes at the fs level?

the prefetcher can also return a PrefetchReadError::Integrity (in case the integrity checks failed at some other point in the pipeline), so it is simpler to merge the two and return an already validated Bytes
Before the change, we were immediately validating the ChecksummedBytes and extracting the Bytes anyway, so this does not actually moves when the validation happens.

I kind of think we might prefer to keep the prefetcher returning ChecksummedBytes. Today we just convert immediately, but there's nothing stopping future us from inserting more work between the prefetcher and the FUSE response, and the type at least makes that decision clear.

@jamesbornholt, @sauraank, I reverted the change to the return type of read. It brings back 2 routes to get a form of integrity error, but overall I agree we want to propagate our "checked" type as much as possible, even if right now we immediately extract the buffer.

Ok, but now I'm not sure why we need this change — does moving the error parsing logic out into a From impl buy us anything? I reverted this after checking out #644 and it didn't seem to break anything.

Ok, but now I'm not sure why we need this change — does moving the error parsing logic out into a From impl buy us anything? I reverted this after checking out #644 and it didn't seem to break anything.

Fair question. You're right, this is not really tied to #644 anymore, but I do see moving the PrefetchReadError mapping logic to the error module, as done for UploadWriteError, as a marginal improvement.


Is this project dead?

I would be happy to see Igor Wiedler to integrate his two awesome PHP projects. React PHP is great but the ev extension doesn't come with PHP's Official distro hence it is not possible to use React PHP in PaaS hosting and it still lack a good micro-framework like Silex.

what is the status of this project? Can we use it in production?

ReactPHP it self still considered as experimental, so it not safe to use in production environment.

We're using it on production for over a year and it works well

Do not let the project die


TypeError: this.client.search is not a function

Hey guys!  I was using Algolia's instantsearch in Next.js project, and I come across this bug Server Error TypeError: this.client.search is not a function when I try to call findResultsState (Component, {meilisearchClient, indexName, searchState}) and I looked at the call stack trace and the problem was in algoiasearch-helper at singleIndexSearch :point_left: this is a helper function that is causing a problem here. meilisearch client object doen't have a search method in its return object rather it is just an empty string. How do we use react instantsearch in SSR environment? does Instant-MeiliSearch solve this problem?

To use instant-meilisearch in SSR mode this is how you use it:
import { instantMeiliSearch } from '@meilisearch/instant-meilisearch'
 import React from 'react';
 import {
   InstantSearch,
   InstantSearchSSRProvider,
 } from 'react-instantsearch-hooks';

 const searchClient = instantMeiliSearch('YourApplicationID', 'YourSearchOnlyAPIKey');

 function App(props) {
   return (
     <InstantSearchSSRProvider {...props.serverState}>
       <InstantSearch
         indexName="instant_search"
         searchClient={searchClient}
       >
         {/* Widgets */}
       </InstantSearch>
     </InstantSearchSSRProvider>
   );
 }

 export default App;

Hey @matepaiva could you open a new issue with this question?


⚠ BeyondHD has degraded performance

In f472229, BeyondHD ($BHD) experienced degraded performance:

HTTP code: 200
Response time: 1564 ms

Resolved: BeyondHD performance has improved in f594dec after 8 minutes.


Updating master with release 0.6.0

Current coverage is 61.19% (diff: 59.47%)

Merging #664 into master will increase coverage by 0.06%

@@             master       #664   diff @@
==========================================
  Files           354        374    +20
  Lines         10995      11445   +450
  Methods           0          0
  Messages          0          0
  Branches       1598       1663    +65
==========================================
+ Hits           6722       7004   +282
- Misses         3739       3892   +153
- Partials        534        549    +15

Powered by Codecov. Last update 3c32295...5f83525


Maximum of 3 Global Actions

There seems to be a limit of 3 global actions in the Rules Engine (after adding three, the "Add Action" button is disabled). And since you can't create a non-global rule without a condition, I don't see how it is possible to append more than 3 security headers, such as Strict-Transport-Security, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy.
Is there a better way to accomplish this in the Standard CDN? The Verizon Premium CDN does not have this limit.

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

ID: 7f7c20cf-3978-d4e5-cd89-e77ae59f4afb
Version Independent ID: 70019c90-4f00-6592-f0f7-25930287837e
Content: Use a rules engine to enforce HTTPS in Standard Azure CDN
Content Source: articles/cdn/cdn-standard-rules-engine.md
Service: azure-cdn
GitHub Login: @mdgattuso
Microsoft Alias: magattus

@jeastburn Thank you for your query, we will further look into it and get back to you at the earliest.

@jeastburn You are limited on 3 actions per rule, but you can make multiple rules that match on the same condition.
if you would like us to add more actions per rule, please leave your feedback at Azure Networking's feedback.azure.com page.

Thanks @TravisCragg-MSFT. I think 3 actions per rule is sufficient for custom rules, but since custom rules MUST have a condition specified (you are directed to use the global rule if you want actions that always trigger), this means that you can only ever have 3 always-triggered actions. I suppose I could add custom rules with conditions that would always trigger as a workaround, but that isn't as clear as if they were included in the global rule.

I'll leave feedback for this too. Thanks.

@jeastburn Thanks for the follow up. let me know if you need any additional assistance.
We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.
@mdgattuso FYI


⚠ Spryr has degraded performance

In 1a6b6d7, Spryr (https://spryr.com) experienced degraded performance:

HTTP code: 200
Response time: 4535 ms

Resolved: Spryr performance has improved in 93e8519 after 8 minutes.


Redis sentinel support

Problem
Supporting HA redis configuration ( sentinel mode )
HA is a production requirement and redis without HA is a single point of failure.
Solution
Use redis sentinel client ( it's a different client than the regular redis client ) .
The client handles redis failover a by reconnecting to the new master .
This will require to manage two redis clients , since sentinel / non sentinel redis clients are not compatible .

Hi @viggin543! It's relatively simple to change. Jitsu uses redigo and seems it works well with Sentinel via plugin. We need just to change initialization, the data manipulation API is the same.
However, we'll need to do some devops work to set up cluster and test it properly. So expected ETA is mid-Oct. But PRs are always welcome :)

@vklimontovich  looks like something I can do. hope you did not begin working on it yet. I Will attach a PR to this issue in a couple of days.

@viggin543  We didn't started. Your PR will be appreciated.
Thank you!

@absorbb pr linked


JMS协议实现 JmsProtocol提交的初始代码

实现通过JMS来实现消息传递

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Fix token and uri parsers to disallow empty results

This fixes cases where the parser would accept non-compliant request lines including empty methods and paths.
For the token grammar, the spec is:
  token          = 1*tchar

1* is shorthand for one-or-more, so the empty string is not a valid token.
For the path component of the request line, the spec we're concerned with the absolute-path grammar:
  absolute-path = 1*( "/" segment )

While segment might be empty, there must be at least a "/" for it to be syntactically valid.
I've added tests for these cases and their combination, and had to update the expected error of one of the existing URI tests which now fails sooner due to the empty path.

This appears to be performance neutral:
~/src/httparse on  acfoltzer/multiple-space-status-line-delimiters is 📦 v1.6.0 via 🦀 v1.59.0 took 13s
❯ cargo +nightly bench --bench parse
   Compiling httparse v1.6.0 (/home/acfoltzer/src/httparse)
    Finished bench [optimized] target(s) in 7.24s
     Running benches/parse.rs (target/release/deps/parse-80e05693670d5e82)

running 4 tests
test bench_httparse       ... bench:         240 ns/iter (+/- 18) = 3000 MB/s
test bench_httparse_short ... bench:          47 ns/iter (+/- 0) = 1446 MB/s
test bench_pico           ... bench:         342 ns/iter (+/- 5) = 2105 MB/s
test bench_pico_short     ... bench:          42 ns/iter (+/- 0) = 1619 MB/s

test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured; 0 filtered out; finished in 16.41s

~/src/httparse on  master is 📦 v1.6.0 via 🦀 v1.59.0 took 23s
❯ cargo +nightly bench --bench parse
   Compiling httparse v1.6.0 (/home/acfoltzer/src/httparse)
    Finished bench [optimized] target(s) in 7.18s
     Running benches/parse.rs (target/release/deps/parse-80e05693670d5e82)

running 4 tests
test bench_httparse       ... bench:         239 ns/iter (+/- 10) = 3012 MB/s
test bench_httparse_short ... bench:          48 ns/iter (+/- 0) = 1416 MB/s
test bench_pico           ... bench:         326 ns/iter (+/- 3) = 2208 MB/s
test bench_pico_short     ... bench:          40 ns/iter (+/- 0) = 1700 MB/s

test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured; 0 filtered out; finished in 13.29s

(tested with Ubunto 20.04 on a 18C/36T Xeon)

Criterion shows this to be within the noise after much more sampling, so I feel increasingly confident this is a performance-neutral fix
req/req                 time:   [331.62 ns 333.11 ns 334.56 ns]
                        thrpt:  [2.0043 GiB/s 2.0130 GiB/s 2.0221 GiB/s]
                 change:
                        time:   [-0.5625% +0.4717% +1.2605%] (p = 0.36 > 0.05)
                        thrpt:  [-1.2448% -0.4694% +0.5656%]
                        No change in performance detected.

req_short/req_short     time:   [68.329 ns 68.730 ns 69.152 ns]
                        thrpt:  [937.79 MiB/s 943.54 MiB/s 949.09 MiB/s]
                 change:
                        time:   [-1.6173% -1.1715% -0.7101%] (p = 0.00 < 0.05)
                        thrpt:  [+0.7151% +1.1853% +1.6439%]
                        Change within noise threshold.

resp/resp               time:   [336.06 ns 337.24 ns 338.61 ns]
                        thrpt:  [1.9226 GiB/s 1.9304 GiB/s 1.9371 GiB/s]
                 change:
                        time:   [-0.7660% -0.1202% +0.5012%] (p = 0.72 > 0.05)
                        thrpt:  [-0.4987% +0.1204% +0.7719%]
                        No change in performance detected.

resp_short/resp_short   time:   [73.375 ns 73.788 ns 74.284 ns]
                        thrpt:  [1.1409 GiB/s 1.1486 GiB/s 1.1550 GiB/s]
                 change:
                        time:   [-1.7031% -1.0090% -0.4162%] (p = 0.00 < 0.05)
                        thrpt:  [+0.4180% +1.0193% +1.7326%]
                        Change within noise threshold.


[BUG] Text selected/unselected color can't be customized

Most of the things in this issue were fixed, but we are still unable to customize the text color when we have a custom style.
Map<int, Widget> options = {
    0: Text(
      'Today',
      style: muliRegular(
        color: ThemeColor.primaryDarkGrey,
        fontSize: 12.0,
      ),
    ),
    1: Text(
      'Week',
      style: muliRegular(
        color: ThemeColor.primaryDarkGrey,
        fontSize: 12.0,
      ),
    ),
    2: Text(
      'Month',
      style: muliRegular(
        color: ThemeColor.primaryDarkGrey,
        fontSize: 12.0,
      ),
    ),
  };

Expected

What we really get

As I can see in your code sample you are using gray colors for all of the texts.
This, of course, sets all text colors to the same.
If you define the text color for a specific item based on selectionIndex.

As I can see in your code sample you are using gray colors for all of the texts.
This, of course, sets all text colors to the same.
You can define the text color for a specific item based on selectionIndex.


Rework the packet scheduling feature

Actually, I'm working on a set of commands to schedule a packet to be sent at a specific timestamp (in milliseconds) but Romain said that it is quite the same as the already existing "prepared packets" feature. We need to sort this out, i.e. determine if this feature must be added to the prepped packet feature or just sit separately in its own set of commands.

We discussed this matter and for now we'll keep these features separated.


How to create KeyPair by Mnemonic

How to create KeyPair by Mnemonic
Not random

Duplicated. Ref: https://github.com/ProChain/SwiftyEOS/issues/23


Is there some way to get a "scrolleable" columns between some "fixed" ?

I am trying to get a table like:
Data1, Data2, ..  DataN, Button
Where the width of the elements could become bigger than the width of the table.
But i would like to have Data1 and Button "fixed=true",
and the rest of the columns to be "scrollable"(fixed=false)
The current fixed=true does not exactly behave like I want it to..
I can set Data1 and Button columns to be fixed=true, but that would cause the table to be displayed as if:
Data1, Button, Data2 .. DataN
Any tips on how to get some kind of table/grid layout with a "middle scrolleable" area ?
Maybe i could actually keep my "Buttons" as a separate component (that would need to keep in vertical sync with the main table) ?
Any plans for the "fixed" handling to have support for my senario, or will it keep the scrollable columns to the right side ?

+1
I would be very happy simply with right-hand pinned columns.  It would be great to have left and right pinned columns simultaneously.

@samgqroberts  I need too.


fix(nl): do not pad identifiers to a length of 9 in #clean

For #17

Was re-reading https://nl.wikipedia.org/wiki/Burgerservicenummer it make the statement that the BSN can be 8 or 9 digits.  It should be padded to 9 digits for checksum purposes.
I agree that 1 is not valid, but can you update this to handle the 8 or 9 case correctly.


feat(tracing): Add WithDescription SpanOption

Summary
This pull request adds WithDescription span option! Closes #739, thank you to @moneymikemd for the issue.
Changes

Disclaimer: I was just diving into the go SDK codebase, and was looking through the issue list for an easy way in. Please feel free to tell me to gtfo if that pull request is not all that useful.
I've added the WithDescription SpanOption that works similar to the existing WithTransactionName and friends.

TODO

[x] Unit tests into tracing_test.go. Wait a sec, will do in a couple hours.

/cc @greywolve

@natikgadzhi thanks for the PR! Just need to fix a linting issue and this should be good. :)

@greywolve I do have to admit, not setting up a formatter in a Go project is kind of embarrasing. Fixed!

@greywolve I do have to admit, not setting up a formatter in a Go project is kind of embarrasing. Fixed!

Haha no problem, I forget this sometimes too :)

Btw, perhaps worth setting up a .vscode/settings.json with custom formatter path to ensure gofmt -s by default?

Btw, perhaps worth setting up a .vscode/settings.json with custom formatter path to ensure gofmt -s by default?

Not sure everyone uses vscode, but that could be useful for sure.


Intermittent beginning balance creation

The Account beginning balance is not always getting properly created due to Get() being used instead of FindFirst(). This PR changes Get() to FindFirst().

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 45998.


add a browser config option in edgetb.toml

I would like to request a minimal but essential DX improvement feature.
Adding a browser flag in edgedb.toml.
Currently the default browser is used and for me on OSX that is Safari,
The edgedb UI is broken there so I keep coping the edgedb ui url from my terminal to chrome.
OR
if safari no longer breaks the UI this could be obsolute.
The problem is sometimes i wipe my instance and have to get a new url for the ui, I  do bookmark it.
It would be great if one could just set the name of the browser or the path in edgedb.toml so it would always enforce a specific browser.
Another case for this is, im using safari to browse docs and chrome to develop.
A seperation in browsers gives more focus and chrome offers some debugger options not in safari.

edgedb.toml is project-level configuration that is intended to be committed and shared, so putting user preferences there probably doesn't make a lot of sense.
The preference should go into local user config (or maybe set via an environment variable).


Fix typos in doc

Reading the doc i noticed a few typos.

@dotnet-policy-service agree

@Bia10 , many thanks!


No wedge indication in fused ring system

Consider the following isomers:

I've put red dots to indicate the trans (1) and cis (2) cases (pardon me if my nomenclature in incorrect as I am not a chemist!)
When I run this through rdkit
mol = AllChem.MolFromMol2File('in.mol2')
AllChem.Compute2DCoords(mol)
Draw.MolToFile(mol,'out.png')

both cases give the same result:

Even keeping the hydrogens does not clear it up:
mol = AllChem.MolFromMol2File('in.mol2',True,False)
...

I would expect wedges to appear in this case to distinguish the isomers.  Ideally they would be on the hydrogens (and I believe your library does do that when those are displayed for other examples).
I am actually not using this from the python library but directly in C++.  The problem appears to be due to to this line:
assignStereochemistry(mol,true,true);

which is called from Draw.MolToFile for the python  wrapper.  I had to add it to my C++ code prior to the compute2DCoords() in order to correct wedging in other examples.  But in this case, omitting the line actually produces the correct result.
If you want the test cases, I've posted them to https://github.com/shubbey/rdkit_bughunt.  Or if I am doing something wrong or misunderstanding here, please let me know!  Thanks.

To clarify my final comment, note that the following code "fixes" the output for this example:
Chem.AssignAtomChiralTagsFromStructure(mol)
#Chem.AssignStereochemistry(mol,True,True)
AllChem.Compute2DCoords(mol)
Chem.WedgeMolBonds(mol,mol.GetConformer())
Draw.MolToFile(mol,'out.png')

(with the WedgeMolBonds() call only being necessary to extract the data displayed in the picture)
However, uncommenting that AssignStereochemistry() line causes the wedges to disappear.  Unfortunately, that line is necessary to get other examples to orient their wedges properly.
Basically I am just not sure which functions I am supposed to be calling here, and in which order.  I suspect this may well work and I am just not doing the right thing.  So I guess what I really would like to know is: given the 3d coordinates of a molecule, what set of functions should I call to get the 2d output including stereochemistry information?  This is my current (C++) ordering, mostly gleaned from inspecting the Draw.MolToFile function:
mol.updatePropertyCache(false);
MolOps::assignChiralTypesFrom3D(mol);
MolOps::cleanUp(mol);
MolOps::sanitizeMol(mol);
DetectBondStereoChemistry(mol, &mol.getConformer());

mol.updatePropertyCache(false);
MolOps::assignStereochemistry(mol, true, true);
RDDepict::compute2DCoords(mol,
                                   NULL,      // ignore
                                   true,   // canonOrient
                                   true,   // clearConfs
                                   0,      // nFlipsPerSample
                                   0,      // nSample
                                   0,      // sampleSeed
                                   false); // permuteDeg4Nodes

const Conformer &conf = mol.getConformer();
WedgeMolBonds2(mol,&conf);

...
I'm sure some of this is redundant, unnecessary, or just plain wrong but it seems to work for most cases.  Would love your input!  Thanks.

Here is an example where the assignStereochemistry() routine produces a better picture:

vs

for input 3.mol2 on my site.  The only difference here is that the second picture includes the
Chem.AssignStereochemistry(mol,True,True)
line I commented out above.  It's actually unclear to me why these routines are making a difference since I thought these calls were made as part of the mol2 file reading.  For my actual purposes though, all I have is raw coordinates so I am having to recreate the cleanup done in those file routines.

Answered in this mailing list thread:
<EMAIL_ADDRESS>


type error in Chrome

Great article!   I get this when attempting to play the game:
Uncaught TypeError: Failed to set the 'buffer' property on 'AudioBufferSourceNode': The provided value is not of type 'AudioBuffer'.
at X_ ((index):24)
at ut ((index):24)
at (index):24
Chrome Version 61.0.3163.100 (Official Build) (64-bit) under Linux Mint

I believe I hit the same issue in Microsoft Edge. It looks like main.js tries to play an audio clip (when printing out "Initiating...") prior to generating it with the Sonant-X API.


Merge envoy/release/v1.16 into release-1.8

This is expected to include a fix for https://github.com/istio/istio/issues/28620

@tbarrella: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-tsan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-tsan_envoy_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@tbarrella: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-tsan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-tsan_envoy_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Sigh.. looks like the same issue happens in 1.8.. https://github.com/istio/istio/issues/30484

Sigh.. looks like the same issue happens in 1.8.. https://github.com/istio/istio/issues/30484

@tbarrella: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-tsan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-tsan_envoy_release-1.8

test-asan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-asan_envoy_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@tbarrella: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-tsan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-tsan_envoy_release-1.8

test-asan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-asan_envoy_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

https://github.com/istio/test-infra/pull/3161

https://github.com/istio/test-infra/pull/3161

/retest

/retest

@tbarrella: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-asan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-asan_envoy_release-1.8

test-tsan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-tsan_envoy_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@tbarrella: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-asan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-asan_envoy_release-1.8

test-tsan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-tsan_envoy_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@tbarrella: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-tsan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-tsan_envoy_release-1.8

test-asan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-asan_envoy_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@tbarrella: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-tsan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-tsan_envoy_release-1.8

test-asan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-asan_envoy_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

/retest

@tbarrella: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-asan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-asan_envoy_release-1.8

test-tsan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-tsan_envoy_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@tbarrella: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-asan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-asan_envoy_release-1.8

test-tsan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-tsan_envoy_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@tbarrella: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-tsan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-tsan_envoy_release-1.8

test-asan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-asan_envoy_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@tbarrella: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-tsan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-tsan_envoy_release-1.8

test-asan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-asan_envoy_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

/retest

/retest

/retest

@tbarrella: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-asan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-asan_envoy_release-1.8

test-tsan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-tsan_envoy_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@tbarrella: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-asan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-asan_envoy_release-1.8

test-tsan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-tsan_envoy_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@tbarrella: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-tsan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-tsan_envoy_release-1.8

test-asan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-asan_envoy_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@tbarrella: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-tsan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-tsan_envoy_release-1.8

test-asan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-asan_envoy_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

the failure is from envoy-filter-example build. somehow bazel 4.0.0, which is ahead 3.4.1 that istio 1.8 is using, and a deprecated bazel rule param causes the failure. In upstream envoy CI, there is a sync flow to handle envoy-filter-example repo git submodule sync. However the sync is very envoy ci specific, so hard to use and maintain at Istio CI. I tried to turn off the example build, but cannot find a working env variable.. I think we can just comment out these two blocks in ci script: https://github.com/istio/envoy/blob/81b7bb3eb044842e6caaf02a46d01a50a83743f4/ci/do_ci.sh#L218-L223 and https://github.com/istio/envoy/blob/81b7bb3eb044842e6caaf02a46d01a50a83743f4/ci/do_ci.sh#L242-L247

@tbarrella: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-asan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-asan_envoy_release-1.8

test-tsan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-tsan_envoy_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@tbarrella: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

test-tsan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-tsan_envoy_release-1.8

test-asan_envoy_release-1.8
4d35e37a70de81ae0889647b30a0ed1701c039fa
link
/test test-asan_envoy_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


PIXI  gl function null

_this.state = new _WebGLState2.default(_this.gl);
this.gl all function is notfound

Need more context, can you create a running example that we can look at?

This problem is appearing on the WeChat mini-game platform, which can provide actual cases, but it requires complicated registration platform procedures before it can run, and it requires a real machine to report an error. An error is not a 100% error.

https://pan.baidu.com/s/1t5BMOpcosy0T4jsOROdgjQ

frist image is ihone X, tow image  is iphone 6

DEMO.zip

@zhu106878723 Same issue, my error is e.disable is not a function, please give some help if you find any clue about it.

@finscn You are the only one I know with WeChat browser experience. Is this something you've encountered?

I've used pixi to develop some wechat tiny games.
@zhu106878723 ,  @LIU9293  ,  There are 2 suggestions :

use my weapp-adapter:  https://github.com/finscn/weapp-adapter
Some persons in tencent/wechat core team help me for this project, so it's better than the default weapp-adapter.

use my forked pixi : https://github.com/finscn/pixi.js

some issues have been forgotten in  official pixi and  pixi-gl-core  ( like this : https://github.com/pixijs/pixi-gl-core/issues/38 )

Closing as according to finscn this is an issue with the WeChat mini-game platform rather than PIXI


Complete task 6 - Bash - Koval Iaroslav

Bash script for task 2

It is a good practice to use only English in scripts. It is also very cool that it searches for text in nested directories, but does not display the path to the files.Also, fill out the pr (use a template, for example)


Filtering on tags and values returns a limited number of rows in 1.x

See https://github.com/influxdata/flux/issues/1100

Is this fixed now that Flux has been updated in 1.x?

I've tried to run a query that filters on values using the current available InfluxDB through  brew (InfluxDB 1.7.7, Flux 0.24), and the results were consistent. Closing the issue.

@affo , Unfortunately this issue still occurs in the current InfluxDB version (InfluxDb 1.8 with Flux 0.65)


Merging projects

First pass at a process.
Checks:
(1) Contributor lists for parent project must be the same
(2) User initiating the merge must have administrator privileges on both projects
Process:
(1) User selects "Merge project with another project"
(2) Search for second project
(3) check contributor lists and admin privleges
(4) warning message: Merging two projects will create a single project, any components that are not part of the merge will be deleted
(5) On confirmation: a three column screen appears with one project on left and another on right.  The middle is "merged project".  Rows are the various elements of the project.  User selects which to include from each project.
(a) Title: select one
(b) Project description: select one
(c) Contributors: already defined as same as both parent projects - note that permissions will be set to "greatest access" - e.g., if someone is admin on one and read-only on other, they will be admin on merged project
(d) Components: select as many from each that should be included in the merged project - if name conflcts, then can auto-rename for now and person edits after merge
(e) Add-ons: select as many from each that should be included
(f) Registrations: all get included
(g) Counts of forks, links, etc all get combined
(h) Project wiki: if both selected, then have to label one as "primary" and its home page becomes the new project wiki homepage - the other gets renamed home page and name conflict resolutions
(i) Project files: select all that should be included
(j) Logs: all get merged
(k) Tags: select one
(l) Links: select which get included (avoid redundancy and no links to the other project being merged)
(6) On completion: First a warning of what components and other project elements will be deleted upon merge.  Ask for confirmation, or return to editing.
(7) On confirmation: Final warning that this cannot be undone.  On confirmation, merge.

Will be considered when we refactor the project modal.


Suggestions and discussions regarding pre-commit

Hello!
Now that pre-commit has been in place since #2753, we should take a moment to reflect on it, and consider whether we want to remove or add certain hooks to it. This issue will be a place for hook suggestions and discussions.
Previously, discussion about pre-commit has occurred in #2744.
WIthin this issue, the following hooks were mentioned:

PyUpgrade: A hook to automatically upgrade syntax for newer verions of Python. I like the sound of this one.
isort: Import sorting. I like the sound of this one.
black: Python formatter, implemented if #2774 gets merged.

Beyond these, the pre-commit team has provided some more hooks, which can be found here. Some of them I find particularly interesting, such as:

debug_statements: Check for debugger imports and py37+ breakpoint() calls in python source.
no-commit-to-branch: Protect specific branches from direct checkins.
Hooks that attempt to load specific files to verify syntax. (check-xml, check-yaml, check-toml, check-json)

Some other hooks provided by the pre-commit team have niche uses, but might be nice, such as:

check-case-conflict: Check for files with names that would conflict on a case-insensitive filesystem like MacOS HFS+ or Windows FAT.
check-merge-conflict: Check for files that contain merge conflict strings.

Other custom hooks I've used myself are:

Bandit: For security vulnerabilities. Might not be very applicable for nltk.
mypy: Add type hints (PEP 484) (e.g. def func(n: int) -> bool) and statically check correctness of these type hints. I like this one, but it might require solving a bunch of warnings before it can be incorporated into pre-commit.
pylint: Very interesting if you're very interested in improving code quality, but this hook will only pass if there are no warnings, meaning that a developer can only push their commit if all warnings are resolved. Currently, there are roughly 15000 warnings.
codespell: Points out potential spelling errors in code comments, with the option to automatically resolve them. Interesting, but often marks correct words as incorrect.

Once again, this issue is meant for suggestions and discussion, so feel free to voice your opinions and recommendations. Together we can figure out what works best for nltk and its contributors.

Love this. This feels like a perfect conversation for our new slack group.
Input coming from my time enabling various pre-commit hooks at my company: I believe that whoever adds a pre-commit should also be responsible for linting the whole repository with it in the same merge request. Contributors found it odd to have hooks modify code not pertaining to their diffs, and reviewers found it hard to review diffs which had linting changes.
If it's okay with you, I'd maybe consider reverting black and re-doing that diff running black on the whole repo?
Happy to talk through my thoughts on each hook individually on slack!

Input coming from my time enabling various pre-commit hooks at my company: I believe that whoever adds a pre-commit should also be responsible for linting the whole repository with it in the same merge request.
If it's okay with you, I'd maybe consider either running black on the whole repo now, or reverting that diff until you can.

I agree wholeheartedly. I'd like to point your attention to #2773. In this PR, I ran black over the whole codebase, while asking the question of "should we add black to pre-commit?". This then caused #2774. So, at no point did we have black in pre-commit while the codebase itself was not blacked.
In the future, I recommend the following strategy:

Follow the regular git flow, forking, creating your own branch, etc.
Add the new functionality to pre-commit by modifying .pre-commit-config.yaml.
Run pre-commit on all files to ensure that the entire codebase will be updated from that point onwards:

pre-commit run --all-files

Update/resolve warnings if they require manual changes. (e.g. formatting warnings that can't be automatically resolved)
This prevents developers from being blocked from committing because something they didn't write can't pass the pre-commit verifications.
Run tests to ensure that nothing big broke. (e.g. via tox, pytest)
Give all changes a manual look-over. A lot of these hooks are fairly consistent, but most can fail to give incorrect results in some situations. For example, black failed in a few situations too.
Commit all of the changes - i.e. the updated .pre-commit-config.yaml and the updated codebase.
Create a PR for this addition, and be ready to assist in merge conflicts if possible, as you're destined to get some with different PR's when updating the entire codebase.

Oh gosh that's so embarrassing, thanks for correcting me!!

Coming back to this, I'm most excited about "pyupgrade" and "isort" personally.
"mypy" is also great, but you're right that it requires work to enable. If we plan on add type-hinting to nltk though, it may be easier to add mypy before so that we don't have to re-annotate things later.

I quickly ran mypy over the nltk folder, which resulted in:
-Found 134 errors in 58 files (checked 345 source files)

(Note, I believe it's common for fixing an error to result in more errors for mypy)
If I run mypy with --strict (which disallows functions that do not have typing information, etc.), then mypy outputs:
-Found 16848 errors in 326 files (checked 345 source files)

Ouch. That's a lot of improvements yet to be made.

I'll  have a look at what pyupgrade would do to nltk.
Oh, one last thing, if we're going to add hooks one-by-one, then let's do so sequentially. As in, not create a bunch of different PR's based on the same one develop head, as that will result in merge conflict hell. So, we should create a pre-commit hook PR after the previous one has been merged.

pyupgrade seems to be a nice addition to modernize the NLTK codebase somewhat. It seems to err on the side of caution, only modifying where its sure we'll be happy with the results. I've created the above PR to add it to pre-commit, like suggested.
On another note, @iliakur mentioned here that pre-commit hooks ought to be added to the CI as well. This can supposedly be done with pre-commit.ci, which mentions adding ci: section to .pre-commit-config.yaml. In my opinion this is definitely an interesting option.

pre-commit ci would be awesome, i haven't used that before. don't forget that the author offered to help us if we ever need help with implementation details!
one thing to also consider is using the .git-blame-ignore-revs feature as described here to ignore these commits as we're making them. that said, the feature is a bit misleading in that github for instance doesn't honor this feature yet in its git blame (which is how i use git blame). so i'm okay not using this as well

@dannysepler If I understood that blogpost correctly, then it proposes the inclusion of a file in the root directory called .git-blame-ignore-revs, so that users can use git blame --ignore-revs-file .git-blame-ignore-revs <file>.
However, I don't know if git blame is commonly used, and less so if people would actually use git blame --ignore-revs-file .git-blame-ignore-revs <file>.
That said, if someone has the time to collect all (recent-ish) commits that apply some mass formatting, or just formatting in general, and place those hashes in such a file, then I'm sure it would be appreciated.
I'm also copy pasting this from a comment over at #2777, as it pertains to pre-commit:

Something i learned recently, a lot of calls of dictionary .keys() is unnecessary. there's a funky pre-commit hook that undoes this https://github.com/mxr/unkey -- but i think we could also just call this hook on the whole nltk repo without actually adding it to pre-commit

I'd like to hear thoughts on this. Should we run it over the codebase, and if so, should it be added to pre-commit? Perhaps some would argue that it increases readability of those who don't know that min({2:3, 1:4}.keys()) is equivalent to min({2:3, 1:4}).

On another note, @ iliakur mentioned here that pre-commit hooks ought to be added to the CI as well. This can supposedly be done with pre-commit.ci, which mentions adding ci: section to .pre-commit-config.yaml. In my opinion this is definitely an interesting option.

I've just found out it's also possible to simply add
  - uses<EMAIL_ADDRESS>
to steps in a GitHub Actions .yml file. Perhaps this can simply be added to the cache_nltk_data job in our https://github.com/nltk/nltk/blob/develop/.github/workflows/ci.yaml.
See https://github.com/mxr/unkey/blob/master/.github/workflows/pre-commit.yml for an example of this.

I think we've exhausted this discussion - I think our pre-commit is looking good (already).


normlize the variable name in representer_point

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


[Bug][GitHub] GitHub connection randomly fails with 401

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
Hi!
I'm trying to set up a DevLake instance that scrapes Apache Pulsar repository stats.
It constantly fails at some point with 401 error code.

Complete logs of two latest runs
Probably related: https://github.com/apache/incubator-devlake/issues/5222
I tried to set Custom Rate Limit to 1500.
Should I try an even smaller rate limit or use more access tokens?
I've tried it with 2 tokens (classic) of 2 different GitHub accounts.
Maybe someone has a reference DevLake config that works with large GitHub repos?
What do you expect to happen
It should work.
How to reproduce
Try to set up a blueprint with a GitHub connection for https://github.com/apache/pulsar
Anything else
No response
Version
v0.17.0-beta8
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

@klesh I would be very appreciated if you could help. 🙏
Do you have any ideas on how to fix the issue?

@visortelle , I don't think it is a ratelimit problem, there were 401 errors, did you set up the permissions required according to this doc? https://devlake.apache.org/docs/next/Configuration/GitHub#github-personal-access-tokensrecommended

@klesh
For an experiment, I used another GitHub account and created a token with all permissions.

I failed with same errors:

Logs: https://gist.github.com/visortelle/cb9f4748e6616669f2357754ab19ca60

@visortelle Sorry, I must have missed your reply, will look into it ASAP

Unfortunately, I couldn't reproduce your error with the minimal permissions, my TimeFilter was set to 6 months:

There have been multiple reports that Github would return 403/500 randomly, I'm suspecting that some of their CDN or Server-Nodes are not very stable from time to time, or place to place. Can you try again at a different time or deploy it to a different region and see if the error gone?

Might be related to #5879


Ember Tutorial

Ready for review, not for merge.
TODOs:

[x] README
[x] Screenshots - update to new diff
[ ]  More prominent link in docs site - on a different page?
[x] Putting the "includePolyfill" option in "babel" is deprecated, please put it in "ember-cli-babel" instead.

👍 🐱  LGTM, thanks!


Clearer installation of the Daemon:

So I've been working with this for a bit, and I only just realized that you need to manually install the daemon in the app:

It may be ideal to make this clearer in the README.md
Also I wonder if it'd be possible to pull and install the daemon in the scripts so that it's ready to go beforehand, so this step isn't needed.
Your call of course, there may be a great reason that it's not being installed via script.

The reason I did not embedded this in the scripts is to make it visible to the user that there exists a binary file which is not compiled from source by him (just a FOSS rule).
And this is really well needed to download it from the app only.
There are several reasons for this ...

as we know, cliptopia-daemon doesn't even know cliptopia exists i.e the frontend layer, that daemon works independently of cliptopia, so in the future, it is cliptopia which will be depending on an specific version of the daemon, for example: v1.0.0+12 requires a daemon of version v1.2.0 or above, this can't be efficiently handled by the bash scripts, so instead, this download procedure is a part of cliptopia itself.

another reason is that suppose, some critical patch is released which needs to be installed, now if I depend on the installer then, the user would manually have to check if a patch has arrived or is there some critical issue going on, anyone would not expect to do that, so in this scenerio, cliptopia will itself be able to check for any available patch and upgrade the daemon by notifying the user.

It may be ideal to make this clearer in the README.md

Thank you for pointing out, I have added the daemon description already, if that is not well documented please give a feedback.

I see, that

The reason I did not embedded this in the scripts is to make it visible to the user that there exists a binary file which is not compiled from source by him (just a FOSS rule).
And this is really well needed to download it from the app only.
There are several reasons for this ...

as we know, cliptopia-daemon doesn't even know cliptopia exists i.e the frontend layer, that daemon works independently of cliptopia, so in the future, it is cliptopia which will be depending on an specific version of the daemon, for example: v1.0.0+12 requires a daemon of version v1.2.0 or above, this can't be efficiently handled by the bash scripts, so instead, this download procedure is a part of cliptopia itself.
another reason is that suppose, some critical patch is released which needs to be installed, now if I depend on the installer then, the user would manually have to check if a patch has arrived or is there some critical issue going on, anyone would not expect to do that, so in this scenerio, cliptopia will itself be able to check for any available patch and upgrade the daemon by notifying the user.

Okay that makes sense, I think you got the best way going for this for now then. :+1:

It may be ideal to make this clearer in the README.md

Thank you for pointing out, I have added the daemon description already, if that is not well documented please give a feedback.

I think pictures to that effect, perhaps in the github wiki, would make this clearer. I kept installing and uninstalling it not understanding where I had to go to get the daemon. Not until I looked closer today.

Thank you,
I'll add a wiki too.


ILMerged JSON.NET conflict

The ILMerge JSON.NET library seems to conflict with a locally referenced JSON.NET library.
When I include both the Glimpse and JSON.NET NuGet packages in my project, I get the following error:
The type 'Newtonsoft.Json.Converters.StringEnumConverter' is ambiguous: it could come from assembly '[binpath]\Glimpse.Core.DLL' or from assembly '[binpath]\Newtonsoft.Json.DLL'. Please specify the assembly explicitly in the type name.

Are you using the Glimpse distribution from Codeplex or NuGet?
When we build for release we internalize the dependencies.
I just downloaded Glimpse.MVC and Json.Net from nuget and instantiated a StringEnumConverter and everything compiled...
This may be an issue if you are running Glimpse from source though.
Could you provide anymore details?
Thanks,
Nik

Thanks for looking into this, Nik.
This example is using packages from NuGet only.  It's not a compile-time error, but a runtime exception when I try to serialize an object that is adorned with [JsonConverter(typeof(StringEnumConverter))]. When I switch this to a [TypeConverter(typeof(StringConverter))] the problem goes away... I'm going to try to recreate this problem outside of my project and get back to you with details.
I'm guessing it's actually JSON.NET doing something funky, not Glimpse.  But, the "ambiguous type" error does seem very weird given that Glimpse is ILMerged with the proper internalize flag(s). It's even more weird that it's occurring for a strongly-typed type reference. FWIW, I downloaded the source and tried to build my own version and played around with the ILMerge options, but continued to get the same error.


Fix git lfs fetch/push commands

@pizycki : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Change Contributor Console documentation URL to the new lfx one

Dibya provided the new EasyCLA documentation URL.
The old URL being used in Contributor Console is https://docs.linuxfoundation.org/docs/communitybridge/easycla.
It need to be changed to https://docs.linuxfoundation.org/lfx/v/v2/easycla

Fix is available on Dev & Staging.

@vinod-kadam @amolsontakke3576 tested on Stage and document link works fine for contributor console:
https://docs.linuxfoundation.org/lfx/v/v2/easycla

@ashav-github , log separate tickets for Corporate Console in JIRA.
If Contributor Console is working fine then please close this one.

Marking as QA Done. For Corp Console Doc issue will report a separate ticket.

As updated by @pranab-bajpai, Admin Console & Corporate Console should also go to https://docs.linuxfoundation.org/lfx/v/v2/easycla


RewriterWatcher seemingly GC root causing memory leak

On our Solr 9.4.1 instances we observe increasing memory footprint over time, mainly caused by an increasing number of instances of java.net.FactoryURLClassLoader each holding a 50 MByte instance of querqy.rewrite.lookup.preprocessing.GermanNounNormalizer.
When initially starting Solr, we observe 5 of these instances in heap, one for each solr collection having querky configuration.
Some days later we observed 60+ of these.
We figured out that the GC roots to these GermanNountNormalizer instances are instances of querqy.solr.ZkRewriterContainer$RewriterWatcher with enabled=false.
Investigating your source code we found  in querqy.solr.ZkRewriterContainer#newRewriterWatcher you instantiate new RewriterWatcher, disable the obsolete one but there does not seem to exist a mechanism actually removing the obsolete instance from org.apache.zookeeper.ZKWatchManager#dataWatches, so this collection grows over time.
I assume you should inform ZKWatchManager about the old RewriterWatcher to be obsolete and to get it removed, but I'm unsure whether Zookeeper should actually do recognize this automagically and fails to do so in our configuration.
The incoming GC root path to one of these instances of GermanNounNormalizer looks like this:

Thank you @Selaron ! That's a great catch! I'll have a look and try to find a solution.

One question to understand the problem better @Selaron: Do you explicitly delete rewriters through Querqy's API or do you only save and update rewriters?

After further investigation I consider our regular collection reload action to trigger this behavior. On the affected collections we invoke the Solr Uri collections?action=RELOAD&name=some_affected_collection to make sure everything is up to date and in sync.
The scheduled reloads and memory consumption show strong correlation in our heap monitoring graphs.

Yes, that makes a lot of sense. What we see is that the reference to that large data object in GermanNounNormalizer is via its class (it is referenced by a static variable). What probably happens: each Solr core has its own classloader that caches its own GermanNounNormalizer class object and the Watcher instances indirectly reference that classloader. Upon core reload the Watcher doesn't get cleaned up because it is referenced by ZK(WatchManager) - which lives outside the cores.
When we wrote the code, it was impossible to delete a watcher in ZK (hence the disabling). We should now add an onClose hook to the core and disable the rewriter watchers there. (And also review the watcher creation / disabling in other places)

@Selaron It might take a bit to implement and especially to test this - if that's an urgent production issue you might consider putting Querqy into a Solr-global classpath (maybe SOLR_HOME/lib? - https://solr.apache.org/guide/solr/latest/configuration-guide/libs.html). I haven't tried this out but the idea/hope would be that GermanNounNormalizer would then be loaded via the global classloader and not one class per core.

I remember situations where missing watch removal caused memory leaks and the trend was to use higher level abstractions such as the ones provided by Curator instead. Maybe that would provide a cleaner implementation? I second the suggestion to use the global classloader as the current deployment has other issues.

See PR #913.
Solr 9.0 doesn't provide direct access to ZK - so I'm removing the integration test and the support for it. Using an older version of Querqy with Solr 9.0 has a risk of running into the memory leak above, especially with collection reloads. To work around it, try to put the Querqy jar into solr-home/lib (which should solve the issue that old core-specific classloaders keep in memory) or occasionally save your rewriters and add and remove a dummy rewriter, which should fire (and remove) stale watchers in ZK that might have survived collection reloads.

After moving the .jar directly into $SOLR_HOME/lib we have only one instance of GermanNounNormalizer left and thus more free memory from start than before. Additionally this is not leaking memory on config reload. Thanks for the hint and your remarkable effort.
I'm still watching this issue and am looking forward to confirm this fixed on future release.

@Selaron Thank you!
I have released a version that should fix the issue even if you put the .jar file into a core/collection-specific lib folder. Is there a chance that you could try it out in your "old" setup?
Many thanks!

@renekrie After upgrading to querqy-solr-5.8.lucene961.0-jar-with-dependencies.jar the GC roots from ZKWatchManager are gone when reloading the collections multiple times.
But I found new GC roots on the heap dump from Log4JLogEvents caused by NullPointerExceptions which I also found in the logs:
q.s.ZkRewriterContainer Error processing WatchedEvent for rewriter common_rules => java.lang.NullPointerException: Cannot invoke "org.apache.solr.common.cloud.SolrZkClient.wrapWatcher(org.apache.zookeeper.Watcher)" because "this.zkClient" is null
	at querqy.solr.ZkRewriterContainer.newRewriterWatcher(ZkRewriterContainer.java:417)
java.lang.NullPointerException: Cannot invoke "org.apache.solr.common.cloud.SolrZkClient.wrapWatcher(org.apache.zookeeper.Watcher)" because "this.zkClient" is null
	at querqy.solr.ZkRewriterContainer.newRewriterWatcher(ZkRewriterContainer.java:417) ~[?:?]
	at querqy.solr.ZkRewriterContainer.onRewriterChanged(ZkRewriterContainer.java:367) ~[?:?]
	at querqy.solr.ZkRewriterContainer$RewriterWatcher.process(ZkRewriterContainer.java:432) ~[?:?]
	at org.apache.solr.common.cloud.SolrZkClient$ProcessWatchWithExecutor.lambda$process$1(SolrZkClient.java:1055) ~[?:?]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:?]
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]
	at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:294) ~[?:?]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?]
	at java.base/java.lang.Thread.run(Unknown Source) [?:?]

I consider these GC roots likely to be cleaned up at some later point in time, never the less there seems to be some null check missing.


Feature Request - Ability to Pause/Resume Scans

It would be nice to be able to pause and resume scans at any point during the process. A button on the web page would be a simple solution.
It would be an added benefit if the session would save when the scan is paused.
This would be beneficial when analyzing a large numbers of repos.

@wdahlenburg This has been migrated to the new fork as this is no longer maintained. mattyjones/gitrob#15


samples/dfu: clear dfu update_ctx before observing

This fixes an issue where DFU cannot proceed due to:
golioth_dfu: Ignoring new desired firmware, as downloading already started
This issue can occur if DFU gets interrupted by a disconnect. When DFU starts, the downloading_started field of struct dfu_ctx is set to true, but it is never cleared after that point. Upon reconnection, golioth_fw_observe_desired() will be called again, but since the downloading_started flag has already been set, DFU cannot proceed.
Clearing the update_ctx before calling golioth_fw_observe_desired() will ensure the flag is cleared, and will result in the DFU process starting from the beginning if a client disconnects and reconnects.
Signed-off-by: Nick Miller<EMAIL_ADDRESS>

Good points.

IMO we should either implement retry logic for every step (e.g. by state machine) or leave the sample as is. Trying to solve one case (especially by introducing undefined behavior because of race condition) should not be an option, hence blocking this PR for now.

Yeah, I don't want to make things more complicated, so I'd sooner leave the sample as is.
For more context, this was a workaround that fixed an issue @szczys encountered on an nRF91 DK (cellular), where he was unable to execute a DFU:
uart:~$ *** Booting Zephyr OS build v3.1.99-ncs1  ***
[00:00:00.501,861] <inf> golioth_system: Initializing
[00:00:00.508,666] <inf> fs_nvs: 2 Sectors of 4096 bytes
[00:00:00.508,666] <inf> fs_nvs: alloc wra: 0, f98
[00:00:00.508,666] <inf> fs_nvs: data wra: 0, d0
[00:00:07.477,905] <dbg> golioth_dfu: main: Start DFU sample
[00:00:07.477,966] <inf> golioth_samples: Waiting for interface to be up
[00:00:07.477,996] <inf> golioth_system: Starting connect
[00:00:08.712,432] <inf> golioth_system: Client connected!
[00:00:09.128,479] <dbg> golioth_dfu: golioth_desired_update: Desired
                                      a3 01 1a 63 dc 36 17 02  78 40 37 65 30 30 30 63 |...c.6.. x@7e000c
                                      34 38 37 61 36 31 36 65  31 32 64 34 64 31 63 32 |487a616e 12d4d1c2
                                      38 62 31 62 66 36 64 35  61 32 37 37 39 35 39 38 |8b1bf6d5 a2779598
                                      62 61 66 35 32 33 61 37  36 35 36 39 66 62 35 33 |baf523a7 6569fb53
                                      61 37 66 39 36 37 35 61  64 39 03 81 a6 01 64 6d |a7f9675a d9....dm
                                      61 69 6e 02 65 31 2e 32  2e 33 03 78 40 35 37 66 |ain.e1.2 .3.x@57f
                                      66 37 62 62 34 37 39 63  30 38 66 30 35 38 31 65 |f7bb479c 08f0581e
                                      63 30 62 30 64 65 37 62  35 63 61 37 63 35 63 34 |c0b0de7b 5ca7c5c4
                                      64 30 64 63 62 35 64 30  31 61 65 39 62 37 34 36 |d0dcb5d0 1ae9b746
                                      64 65 33 32 62 39 34 33  64 65 34 61 31 04 1a 00 |de32b943 de4a1...
                                      04 13 78 05 70 2f 2e 75  2f 63 2f 6d 61 69 6e 40 |..x.p/.u /c/main@
                                      31 2e 32 2e 33 06 67 6d  63 75 62 6f 6f 74       |1.2.3.gm cuboot
[00:00:09.128,814] <inf> golioth: Manifest sequence-number:<PHONE_NUMBER>
[00:00:09.133,941] <inf> golioth_system: Reconnect per request
[00:00:09.133,941] <err> golioth_dfu: Error while receiving desired FW update: -110
[00:00:09.133,972] <err> golioth_dfu: Error while receiving FW data: -110
[00:00:09.134,002] <wrn> golioth: req_sync finished with error -110
[00:00:09.134,033] <err> golioth_dfu: Failed to update to 'downloading' state: -110
[00:00:09.138,366] <inf> golioth_system: Starting connect
[00:00:10.152,832] <inf> golioth_system: Client connected!
[00:00:10.527,496] <dbg> golioth_dfu: golioth_desired_update: Desired
                                      a3 01 1a 63 dc 36 17 02  78 40 37 65 30 30 30 63 |...c.6.. x@7e000c
                                      34 38 37 61 36 31 36 65  31 32 64 34 64 31 63 32 |487a616e 12d4d1c2
                                      38 62 31 62 66 36 64 35  61 32 37 37 39 35 39 38 |8b1bf6d5 a2779598
                                      62 61 66 35 32 33 61 37  36 35 36 39 66 62 35 33 |baf523a7 6569fb53
                                      61 37 66 39 36 37 35 61  64 39 03 81 a6 01 64 6d |a7f9675a d9....dm
                                      61 69 6e 02 65 31 2e 32  2e 33 03 78 40 35 37 66 |ain.e1.2 .3.x@57f
                                      66 37 62 62 34 37 39 63  30 38 66 30 35 38 31 65 |f7bb479c 08f0581e
                                      63 30 62 30 64 65 37 62  35 63 61 37 63 35 63 34 |c0b0de7b 5ca7c5c4
                                      64 30 64 63 62 35 64 30  31 61 65 39 62 37 34 36 |d0dcb5d0 1ae9b746
                                      64 65 33 32 62 39 34 33  64 65 34 61 31 04 1a 00 |de32b943 de4a1...
                                      04 13 78 05 70 2f 2e 75  2f 63 2f 6d 61 69 6e 40 |..x.p/.u /c/main@
                                      31 2e 32 2e 33 06 67 6d  63 75 62 6f 6f 74       |1.2.3.gm cuboot
[00:00:10.527,526] <wrn> golioth_dfu: Ignoring new desired firmware, as downloading already started

By memseting the update_ctx, he was able to complete the DFU. It's not addressing the root cause of the issue. It's just a workaround that worked for his application, and I thought it might make sense to put that workaround into our dfu sample, since this code is often copy/pasted into user applications.

Another thing is to solve the root cause, which is resulting in reconnections in the early phase of the sample. Do we know why is that happening and how reproducible it is?

The root cause is that Reconnect per request happens immediately after the initial connection (reproducible 100% of time). The reconnect happens because when credentials are loaded via golioth_settings_set(), there is an unconditional call to client_request_reconnect(), which causes a reconnect on the first timeout of the main loop in the system_client thread (golioth_system_client_main()). So if a DFU happens to start before the reconnect happens (race condition), then you will run into this issue where the DFU gets interrupted.
I'm okay closing this PR and opening a separate GitHub issue for the Reconnect per request.
Does that sound okay?

I have reproduced this issue and already see what is the root cause. @ncmiller Thanks for providing all the information here. I'll have a PR ready tomorrow, so let's wait a bit with any further actions for now.

Given that https://github.com/golioth/golioth-zephyr-sdk/pull/338 fixes the root cause of the issue, this PR is no longer needed. Closing.


Disable starting each response with =

Not sure when exactly it changed, but v2.0.4 would respond
>> 2 + 2
4

And v2.2.0 does
>> 2 + 2
= 4

Which is an unwelcome change, it's annoying and makes copying result more difficult, since I cannot just copy the whole line now. Can I turn it off?

I added the equal sign there since it sometimes returns results with a ≈ symbol (to show that they have been rounded). It felt a bit more consistent. I added a flag now, --no-leading-eq, which disables it.