Automated Package Upgrade

:tada: This PR is included in version 25.3.127 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Bigger stickers preview

Please make preview of stickers bigger than current one. If a folder containing 99 stickers files than it should be preview as 33*3 in vertical scrolling. Gboard and most of the stickers app give vertical scrolling due to long phones.
Right now it is 3*33 in horizontal scrolling.
Some stickers contain quotes in it with bigger preview it will be easy in selecting stickers.
Thanks

Good idea. It should be fairly easy to make this configurable by the user. Will look into when I have time....
Alternatively, if someone wants to submit a PR, I would suggest looking in ImageKeyboard.java and changing the for-loops to no longer be hardcoded to 3. Then, each image button layout needs to have its height/width scaled accordingly.

See new release.

New release is quite good.
But there is no option for vertical scrolling or horizontal scrolling.
And horizontal scrolling is default🙄🙄

I really don't like the idea of putting a vertical scroll in a keyboard that appears right below presumably top-to-bottom chat windows (why stack two vertical scrolls on top of each other?). It's definitely possible to add another toggle for this, but it's pretty low priority for me. If you feel so inclined feel free to send a PR but I probably won't look at it until after the UI gets an update.

Earlier even Gboard in Android was having horizontal scrolling everywhere which was quite sucking. But now they have made vertical scrolling mandatory every where. Which is quite easy to use

That's a decision that I personally don't agree with so for now I think there's other areas that need attention first. I guess it is a useful configuration to have, but as I said before this is low priority for me so until I get a lot of free time. In the meantime, if anyone wants to look into it themselves, I believe you would need to look into changing the HorizontalScrollView in keyboard_layout.xml and correspondingly make row version of image_container_column.xml. Not sure how it would work with programmatically switching them in ImageKeyboard.java though.

is this something you'd be happy for me to take a look at over the coming days?


arviz: 0.5.1 -> 0.6.1

Motivation for this change
Update arviz to the latest version
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build python37Packages.arviz

@GrahamcOfBorg build python37Packages.arviz


Moving transaction starting point in tcop from executing phase to preparing phase

Currently, transaction begins (see single statement transaction / explicitly call "begin" transaction) at the point of executing statements.
The new catalog system enables binder to check table existence and visibility from catalog tables, which requires transactions when preparing statements
This way, binder can use catalog's GetXXXWithName methods to check database/table/index visibility (with transaction) and executor can use catalog's GetXXXWithOid methods to get database/table/index directly from storage layer (without checking existence again).

Was this fixed for #592?

Yes.

Correction. This is not fixed.
@yingjunwu We still need this.

I'll take a look at it.

@hanli32 @CHUYilei This is related to the single statement transaction we are currently working on. Let's have a discussion on it.

@hanli32 I think this is fixed, right?

@ChTimTsubasa This is fixed now, right?

Yes, @haoxianghua fixed this in the summer.

Yes, I fixed this summer.


fix(frontends/lean/pp): is_field_notation_candidate

Kha's commit fixing #1922 somehow got lost (it was commited to a branch called 'mastermaster', apparently), and isn't in the master branch. This PR merely restores his work.
Fixes #1922.

This is the wrong commit, #1939 is the right one.


Make share dropbox links work in navmesh scene option

Describe the bug
Navmesh dropbox links need to be to dl.dropboxusercontent.com. We would like to be able to use normal dropbox share links.
Screenshots

And add navMesh to scene options schema.


What is the reason for not adding the autofocus attribute to b-form-input?

https://cdmoro.github.io/bootstrap-vue-3/components/FormInput.html#autofocus

Note that this prop does not set the autofocus attribute on the input

What is the reason for this behavior? The point is that I want to make my own wrapper of BModal and automatically set the focus to a specific input when opening a modal window with a form. And in order to make this functionality as transparent as possible and not to add extra classes, I wanted to use querySelector('[autofocus]'). That way when a modal window is opened, the focus would be set to the element with the autofocus attribute, which would be logical.
// modal
const dialog = ref<HTMLElement | null>(null)

// autofocus input
const autofocusInput = computed(
  () => dialog.value?.querySelector('[autofocus]') as HTMLElement
)

// show method of my dialog component
const show = () => {
  // ...
  autofocusInput.value?.focus()
}

// exposing method
defineExpose({ show })

The autofocus attribute spec only focuses when the page is loaded. So it doesn't really work well with the nature of an SPA.

The autofocus attribute spec only focuses when the page is loaded. So it doesn't really work well with the nature of an SPA.

I know, but we could just add it in there. For backward compatibility or something. That wouldn't break anything, would it? In general, okay, I get the reason. Thank you.


Can't execute script with join

I can't test script which contains joins.
select * from outfit as out inner join garment2outfit as g2o on out.id = g2o.id
This script works properly when I execute it in app through db.query("select *

I tried this query in SELECT questions.question_text FROM questions INNER JOIN options ON questions.id=options.question_id in the project and it's working.


Add PyPy 5.0.1

There was also a 5.0.0 release, but 5.0.1 was released days after as a bugfix release. I could include it for completeness sake if desired.

:sparkles: :cake: :sparkles:


style(): change primary color

I don't like the new color. Please replace it with #FF0080. It looks fresher than your blue.

@moritzkoenig @DevVersion I would just highlight the collapsed menu items from the normal menu items (another indention?) and change the color of the menu back to white.

@Lordnoname @moritzkoenig Stop abusing the issue tracking feature.
Closed through rejection!

My thought was serious. I don't like the new color of the menu which is equal to the background. I think a brighter color would match the theme better.

IMO it looks good. So I denied that request.


make reader compatible with google-cloud-logging v3 releases

Overview
This PR adds support for google-cloud-logging >= 3.0... This will transitively require google-api-core>=2.0. The primary changes are as follows:

logging_client.list_entries no longer has a projects argument... It now accepts a list of resources. Internally if resources is not provided, it will default to [f'projects/{self.project_id}'] which is the project_id associated with the client. We make use of this argument, so behavior should be 1:1 to what we are doing now (for multi and single project cases.)
list_entries now pages for you in both the http logging_api and the gapic logging_api.

lgtm


Why are dataflow jobs hanging on startup?

Some basic test jobs (e.g. pruned version of NOAA OISST) that I started last night from a Heroku Review App have been hanging on cache_input with no progress for > 9 hrs.

job graph
time (9hr 20 mins, and counting)

I did change the GCS buckets that review apps use last night, in https://github.com/pangeo-forge/pangeo-forge-orchestrator/pull/152, but if there was a permissions issue with the new cache bucket or something, I'd expect that to show up as an error in cache_input.
I'm reading through https://medium.com/google-cloud/monitoring-your-dataflow-pipelines-80b9a2849f7a for ideas now, but TBH have not seen this before and I'm unsure of how to debug it.
Here's the comment that deployed this hanging job: https://github.com/pforgetest/test-staged-recipes/pull/15#issuecomment-1263316338
And here are the server logs for when the job was deployed:

Sep 30 02:10:13 pforge-pr-150 app/web.1 2022-09-30 09:10:12,820 INFO - orchestrator - Creating run_recipe_test task with args: ('https://github.com/cisaacstern/test-staged-recipes', 'https://api.github.com/repos/pforgetest/test-staged-recipes', '7048edcb1f1bb38a3fb518bd80fb7106b59fc473', 15, RecipeRun(feedstock_id=1, bakery_id=1, head_sha='7048edcb1f1bb38a3fb518bd80fb7106b59fc473', started_at=datetime.datetime(2022, 9, 30, 9, 9, 58), conclusion=None, is_test=True, dataset_public_url=None, id=5, recipe_id='noaa-oisst-avhrr-only', version='', completed_at=None, status='queued', dataset_type='zarr', message=None), 'pforgetest/test-staged-recipes', 'https://api.github.com/repos/pforgetest/test-staged-recipes/issues/comments/1263316338/reactions')
Sep 30 02:10:13 pforge-pr-150 app/web.1 2022-09-30 09:10:13,608 INFO - orchestrator - Calling run with args, kws: ('https://github.com/cisaacstern/test-staged-recipes', '7048edcb1f1bb38a3fb518bd80fb7106b59fc473', RecipeRun(feedstock_id=1, bakery_id=1, head_sha='7048edcb1f1bb38a3fb518bd80fb7106b59fc473', started_at=datetime.datetime(2022, 9, 30, 9, 9, 58), conclusion=None, is_test=True, dataset_public_url=None, id=5, recipe_id='noaa-oisst-avhrr-only', version='', completed_at=None, status='queued', dataset_type='zarr', message=None), 'pforgetest/test-staged-recipes'), {'feedstock_subdir': 'recipes/oisst-0'}
Sep 30 02:10:13 pforge-pr-150 app/web.1 2022-09-30 09:10:13,717 DEBUG - orchestrator - Dumping bakery config to json: {'Bake': {'bakery_class': 'pangeo_forge_runner.bakery.dataflow.DataflowBakery', 'job_name': 'a70666f7267652d70722d3135302e6865726f6b756170702e636f6d2505'}, 'TargetStorage': {'fsspec_class': 'gcsfs.GCSFileSystem', 'fsspec_args': {'bucket': 'pangeo-forge-dev-target', 'key': SecretStr('**********'), 'secret': SecretStr('**********')}, 'root_path': 'pangeo-forge-dev-target/pforge-pr-150/test/pforgetest/test-staged-recipes/recipe-run-5/noaa-oisst-avhrr-only.zarr', 'public_url': 'https://storage.googleapis.com/{root_path}'}, 'InputCacheStorage': {'fsspec_class': 'gcsfs.GCSFileSystem', 'fsspec_args': {'bucket': 'pangeo-forge-dev-cache'}, 'root_path': 'pangeo-forge-dev-cache'}, 'MetadataCacheStorage': {'fsspec_class': 'gcsfs.GCSFileSystem', 'fsspec_args': {}, 'root_path': 'pangeo-forge-dev-cache/metadata/pforge-pr-150/test/pforgetest/test-staged-recipes/recipe-run-5/noaa-oisst-avhrr-only.zarr'}, 'DataflowBakery': {'temp_gcs_location': 'gs://pangeo-forge-dev-dataflow/temp'}}
Sep 30 02:10:13 pforge-pr-150 app/web.1 2022-09-30 09:10:13,718 DEBUG - orchestrator - Running command: ['pangeo-forge-runner', 'bake', '--repo=https://github.com/cisaacstern/test-staged-recipes', '--ref=7048edcb1f1bb38a3fb518bd80fb7106b59fc473', '--json', '--prune', '--Bake.recipe_id=noaa-oisst-avhrr-only', '-f=/tmp/tmpk6oo3e8a.json', '--feedstock-subdir=recipes/oisst-0']
Sep 30 02:10:27 pforge-pr-150 app/web.1  2022-09-30 09:10:27,051 DEBUG - orchestrator - Command output is {"message": "Config option `public_url` not recognized by `TargetStorage`."}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Config option `public_url` not recognized by `InputCacheStorage`."}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Config option `public_url` not recognized by `MetadataCacheStorage`."}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Target Storage is FSSpecTarget(GCSFileSystem(bucket=<str>, key=<str>, secret=<str>, root_path=\"pangeo-forge-dev-target/pforge-pr-150/test/pforgetest/test-staged-recipes/recipe-run-5/noaa-oisst-avhrr-only.zarr\")\n", "status": "setup"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Input Cache Storage is CacheFSSpecTarget(GCSFileSystem(bucket=<str>, root_path=\"pangeo-forge-dev-cache\")\n", "status": "setup"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Metadata Cache Storage is MetadataTarget(GCSFileSystem(, root_path=\"pangeo-forge-dev-cache/metadata/pforge-pr-150/test/pforgetest/test-staged-recipes/recipe-run-5/noaa-oisst-avhrr-only.zarr\")\n", "status": "setup"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Picked Git content provider.\n", "status": "fetching"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Cloning into '/tmp/tmpe18xc7gw'...\n", "status": "fetching"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "HEAD is now at 7048edc fix url\n", "status": "fetching"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Parsing recipes...", "status": "running"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Baking only recipe_id='noaa-oisst-avhrr-only'"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Using Any for unsupported type: typing.Callable[[typing.Any], NoneType]"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Using Any for unsupported type: typing.Callable[[typing.Any], NoneType]"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Downloading source distribution of the SDK from PyPi"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Executing command: ['/usr/bin/python3.9', '-m', 'pip', 'download', '--dest', '/tmp/tmpl4irxras', 'apache-beam==2.41.0', '--no-deps', '--no-binary', ':all:']"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Staging SDK sources from PyPI: dataflow_python_sdk.tar"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Downloading binary distribution of the SDK from PyPi"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Executing command: ['/usr/bin/python3.9', '-m', 'pip', 'download', '--dest', '/tmp/tmpl4irxras', 'apache-beam==2.41.0', '--no-deps', '--only-binary', ':all:', '--python-version', '39', '--implementation', 'cp', '--abi', 'cp39', '--platform', 'manylinux1_x86_64']"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Staging binary distribution of the SDK from PyPI: apache_beam-2.41.0-cp39-cp39-manylinux1_x86_64.whl"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Pipeline has additional dependencies to be installed in SDK worker container, consider using the SDK container image pre-building workflow to avoid repetitive installations. Learn more on https://cloud.google.com/dataflow/docs/guides/using-custom-containers#prebuild"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Default Python SDK image for environment is apache/beam_python3.9_sdk:2.41.0"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Using provided Python SDK container image: pangeo/forge:8a862dc"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Python SDK container image set to \"pangeo/forge:8a862dc\" for Docker environment"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "==================== <function pack_combiners at 0x7fa04d6fbe50> ===================="}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "==================== <function sort_stages at 0x7fa04d6fc670> ===================="}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Defaulting to the temp_location as staging_location: gs://pangeo-forge-dev-dataflow/temp"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Setting socket default timeout to 60 seconds."}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "socket default timeout is 60.0 seconds."}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Starting GCS upload to gs://pangeo-forge-dev-dataflow/temp/a70666f7267652d70722d3135302e6865726f6b756170702e636f6d2505.1664529023.140838/dataflow_python_sdk.tar..."}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Completed GCS upload to gs://pangeo-forge-dev-dataflow/temp/a70666f7267652d70722d3135302e6865726f6b756170702e636f6d2505.1664529023.140838/dataflow_python_sdk.tar in 0 seconds."}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Starting GCS upload to gs://pangeo-forge-dev-dataflow/temp/a70666f7267652d70722d3135302e6865726f6b756170702e636f6d2505.1664529023.140838/apache_beam-2.41.0-cp39-cp39-manylinux1_x86_64.whl..."}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Completed GCS upload to gs://pangeo-forge-dev-dataflow/temp/a70666f7267652d70722d3135302e6865726f6b756170702e636f6d2505.1664529023.140838/apache_beam-2.41.0-cp39-cp39-manylinux1_x86_64.whl in 1 seconds."}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Starting GCS upload to gs://pangeo-forge-dev-dataflow/temp/a70666f7267652d70722d3135302e6865726f6b756170702e636f6d2505.1664529023.140838/pipeline.pb..."}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Completed GCS upload to gs://pangeo-forge-dev-dataflow/temp/a70666f7267652d70722d3135302e6865726f6b756170702e636f6d2505.1664529023.140838/pipeline.pb in 0 seconds."}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Create job: <Job\n clientRequestId: '20220930091023141396-1391'\n createTime: '2022-09-30T09:10:26.574467Z'\n currentStateTime: '1970-01-01T00:00:00Z'\n id: '2022-09-30_02_10_26-11634697841644863244'\n location: 'us-central1'\n name: 'a70666f7267652d70722d3135302e6865726f6b756170702e636f6d2505'\n projectId: 'pangeo-forge-4967'\n stageStates: []\n startTime: '2022-09-30T09:10:26.574467Z'\n steps: []\n tempFiles: []\n type: TypeValueValuesEnum(JOB_TYPE_BATCH, 1)>"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Created job with id: [2022-09-30_02_10_26-11634697841644863244]"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Submitted job: 2022-09-30_02_10_26-11634697841644863244"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "To access the Dataflow monitoring console, please navigate to https://console.cloud.google.com/dataflow/jobs/us-central1/2022-09-30_02_10_26-11634697841644863244?project=pangeo-forge-4967"}
Sep 30 02:10:27 pforge-pr-150 app/web.1  {"message": "Submitted job 2022-09-30_02_10_26-11634697841644863244 for recipe noaa-oisst-avhrr-only", "recipe": "noaa-oisst-avhrr-only", "job_name": "a70666f7267652d70722d3135302e6865726f6b756170702e636f6d2505", "job_id": "2022-09-30_02_10_26-11634697841644863244", "status": "submitted"}

Currently using https://github.com/yuvipanda/mybinder-analytics/blob/main/logs.py to debug this... @yuvipanda this tool is amazing, I will definitely add it to #150 once I figure out what's going on here.

I've changed the title of this issue to reflect that it appears the jobs are not even starting. There are no worker logs for these jobs, digging into the kubelet, harness, etc. layers now.

I have a theory! Possible that a minor version mismatch between

parsing env: 2.41, see below, this dep is unpinned in pangeo-forge-runner, which brings it in orchestrator!
and worker image (2.40)

is to blame?

As nice as the 2.41/2.40 incompatibility theory is, that doesn't seem to be the issue. I've just:

docker run -it --entrypoint=/bin/bash pangeo/forge:8a862dc
Made the absolute minimum changes to the env in that container, to get pangeo-forge-runner to run, namely:

pip install pangeo-forge-runner --no-deps
pip install jupyter-repo2docker

Wrote this pangeo-forge-runner config to c.json:{"Bake": {"bakery_class": "pangeo_forge_runner.bakery.dataflow.DataflowBakery", "job_name": "cisaacstern-gpcp-from-gcs-test-4"}, "TargetStorage": {"fsspec_class": "gcsfs.GCSFileSystem", "fsspec_args": {"bucket": "pangeo-forge-dev-target"}, "root_path": "pangeo-forge-dev-target/cisaacstern-gpcp-from-gcs-test-4", "public_url": "https://storage.googleapis.com/{root_path}"}, "InputCacheStorage": {"fsspec_class": "gcsfs.GCSFileSystem", "fsspec_args": {"bucket": "pangeo-forge-dev-cache"}, "root_path": "pangeo-forge-dev-cache"}, "MetadataCacheStorage": {"fsspec_class": "gcsfs.GCSFileSystem", "fsspec_args": {}, "root_path": "pangeo-forge-dev-cache/metadata/cisaacstern-gpcp-from-gcs-test-4"}, "DataflowBakery": {"temp_gcs_location": "gs://pangeo-forge-dev-dataflow/temp"}}

Deployed to https://github.com/pforgetest/gpcp-from-gcs-feedstock to Dataflow, from within the container:$ pangeo-forge-runner bake --repo https://github.com/pforgetest/gpcp-from-gcs-feedstock.git --ref 4f41e02512b2078c8bdb286368a1a9d878b5cec2 --json -f c.json --DataflowBakery.project_id="pangeo-forge-4967"<EMAIL_ADDRESS>

This job was deployed from (with the exception of the two pip installs mentioned above) the exact same image as is run on the Dataflow workers. Despite that, it's still hanging 25 mins after startup.
Here is a pip list of each of these two containers:

pangeo/forge:8a862dc worker image
pangeo/forge:8a862dc plus two extra installs (used to deploy job)

And here is a diff of those two files:
diff pip-list-worker-img-base.txt pip-list-worker-img-plus-extra-installs-txt
54a55
> chardet                         5.0.0
94a96
> escapism                        1.0.1
178a181
> iso8601                         1.1.0
188a192
> jupyter-repo2docker             2022.2.0
258a263
> pangeo-forge-runner             0.5
352a358
> semver                          2.13.0

These differences do not strike me as capable of causing the startup issues we're seeing.

Via the process of elimination, I'm left to conclude that the default pangeo/forge:8a862dc container image currently hardcoded in the latest pangeo-forge-runner==0.5 release is no longer functional on Dataflow. Assuming this is true, 🚨   no recipes deployed from GitHub by Pangeo Forge Cloud will succeed until this is fixed. 🚨  I'll explain my reasoning here.
Following https://cloud.google.com/dataflow/docs/guides/using-custom-containers#use_an_base_image, I wrote:
# Dockerfile

FROM apache/beam_python3.9_sdk:2.41.0

RUN pip install pangeo-forge-recipes pandas gcsfs

and pushed this image to gcr.io
$ export PROJECT=pangeo-forge-4967
$ export REPO=custom-beam-images
$ export TAG=3.9-2.41.0
$ export IMAGE_URI=gcr.io/$PROJECT/$REPO:$TAG
$ gcloud builds submit . --tag $IMAGE_URI

I then deployed https://github.com/pforgetest/gpcp-from-gcs-feedstock to Dataflow, with the same c.json config listed in https://github.com/pangeo-forge/pangeo-forge-orchestrator/issues/156#issuecomment-1264090513, and with the only difference being specification of this custom beam image:
$ pangeo-forge-runner bake \
--repo https://github.com/pforgetest/gpcp-from-gcs-feedstock.git \
--ref 4f41e02512b2078c8bdb286368a1a9d878b5cec2 \
--json \
-f c.json \
--DataflowBakery.project_id="pangeo-forge-4967" \
<EMAIL_ADDRESS>\
--Bake.container_image="gcr.io/pangeo-forge-4967/custom-beam-images:3.9-2.41.0"

Note: To do this, I lifted --Bake.container_image into a configurable attribute (whereas it is hardcoded in the latest pangeo-forge-runner==0.5 release). I will make a PR to pangeo-forge-runner with this change momentarily.

This was the only job of the dozen or so jobs I've submitted in the last ~24 hrs to succeed:

Importantly, actually, it was the only job I've submitted in the last ~24 hrs that started, whereas all others hung indefinitely while "waiting for the sdk harness to register", e.g.:
[2022-09-30T21:13:52.126125+00:00] [harness:cisaacstern-gpcp-from-gcs-09301405-sajs-harness-8pxv] Waiting for 2 SDK Harnesses to register.
[2022-09-30T21:14:02.868192+00:00] [harness:cisaacstern-gpcp-from-gcs-09301405-sajs-harness-8pxv] Waiting for 2 SDK Harnesses to register.
[2022-09-30T21:14:16.064972+00:00] [harness:cisaacstern-gpcp-from-gcs-09301405-sajs-harness-8pxv] Waiting for 2 SDK Harnesses to register.
[2022-09-30T21:14:27.910805+00:00] [harness:cisaacstern-gpcp-from-gcs-09301405-sajs-harness-8pxv] Waiting for 2 SDK Harnesses to register.
[2022-09-30T21:14:40.922696+00:00] [harness:cisaacstern-gpcp-from-gcs-09301405-sajs-harness-8pxv] Waiting for 2 SDK Harnesses to register.

This failure mode suggests to me some problem with in the default pangeo/forge:8a862dc image with the beam ENTRYPOINT.
Once this is fixed upstream in pangeo-forge-runner (and presumably https://github.com/pangeo-data/pangeo-docker-images), Pangeo Forge Cloud's Dataflow job submission should presumably be repairable by upgrading
https://github.com/pangeo-forge/pangeo-forge-orchestrator/blob/8cb43f53a95514fd3120103da0b3a30caae078ad/requirements.txt#L18
and then following the release cycle by merging the upgraded requirements.txt to main followed by prod.

On further thought, it's possible (likely, even) that simply re-pinning the tag of pangeo/forge:8a862dc to the latest build of https://github.com/pangeo-data/pangeo-docker-images/tree/master/forge would solve this problem. Presumably, a more recent build of this image has brought in whatever change to the official beam ENTRYPOINT is necessary to register jobs on Dataflow.

I got tests in https://github.com/pangeo-forge/pangeo-forge-runner/pull/35 to pass, merged it and made a release. Also made https://github.com/pangeo-data/pangeo-docker-images/pull/379 to bump beam version in the image itself

@yuvipanda, for some reason Dataflow workers are not able to pull the new default pangeo/forge:7c87e6c image.
Using the same c.json from https://github.com/pangeo-forge/pangeo-forge-orchestrator/issues/156#issuecomment-1264090513 (with just the job_name and storage root_paths changed):
{"Bake": {"bakery_class": "pangeo_forge_runner.bakery.dataflow.DataflowBakery", "job_name": "cisaacstern-gpcp-from-gcs-test-7"}, "TargetStorage": {"fsspec_class": "gcsfs.GCSFileSystem", "fsspec_args": {"bucket": "pangeo-forge-dev-target"}, "root_path": "pangeo-forge-dev-target/cisaacstern-gpcp-from-gcs-test-7", "public_url": "https://storage.googleapis.com/{root_path}"}, "InputCacheStorage": {"fsspec_class": "gcsfs.GCSFileSystem", "fsspec_args": {"bucket": "pangeo-forge-dev-cache"}, "root_path": "pangeo-forge-dev-cache"}, "MetadataCacheStorage": {"fsspec_class": "gcsfs.GCSFileSystem", "fsspec_args": {}, "root_path": "pangeo-forge-dev-cache/metadata/cisaacstern-gpcp-from-gcs-test-7"}, "DataflowBakery": {"temp_gcs_location": "gs://pangeo-forge-dev-dataflow/temp"}}

And the same pangeo-forge-runner command as in https://github.com/pangeo-forge/pangeo-forge-orchestrator/issues/156#issuecomment-1264175655 (minus the --Bake.container_image option):
$ pangeo-forge-runner bake \
--repo https://github.com/pforgetest/gpcp-from-gcs-feedstock.git \
--ref 4f41e02512b2078c8bdb286368a1a9d878b5cec2 \
--json \
-f c.json \
--DataflowBakery.project_id="pangeo-forge-4967" \
<EMAIL_ADDRESS>
The pangeo-forge-runner (version 0.6.1) logging confirms that Beam is picking up the new default image:
...
{"message": "Default Python SDK image for environment is apache/beam_python3.9_sdk:2.41.0"}
{"message": "Using provided Python SDK container image: pangeo/forge:7c87e6c"}
{"message": "Python SDK container image set to \"pangeo/forge:7c87e6c\" for Docker environment"}
...

Then on Dataflow, workers fail to start with:
2022-10-03 10:30:38.775 PDTA worker was unable to start up. Error: Unable to pull container image due to error: image pull request failed with error: Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded (Client.Timeout exceeded while awaiting headers). This is likely due to an invalid SDK container image URL. Please verify any provided SDK container image is valid and that Dataflow workers have permissions to pull image.

At first I though that

This is likely due to an invalid SDK container image URL.

meant I just needed to prepend docker.io/ to the container image name, but I tried that as well, and it did not appear to work.
Strangely,

This image can be pulled locally with docker pull, so it's not that it doesn't exist
Aside from lifting this into a configurable attribute, I don't see how this is any different from our prior approach in pangeo-forge-runner. The previously hardcoded image URL was of the same format as this one, and yet did not have any problems.

Is it possible that the prior hardcoded image was on gcr.io, but pangeo/forge:7c87e6c is not?

Is it possible that the prior hardcoded image was on gcr.io, but pangeo/forge:7c87e6c is not?

This has been ruled out. All images have always been hosted on Docker Hub.
Here's some relevant logging from the docker source of the failed job
[2022-10-03T17:38:44.780940+00:00] [docker:cisaacstern-gpcp-from-gcs-10031028-4ccj-harness-dqt5] Attempting next endpoint for pull after error: Get \"https://registry-1.docker.io/v2/\": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
[2022-10-03T17:38:44.783500+00:00] [docker:cisaacstern-gpcp-from-gcs-10031028-4ccj-harness-dqt5] Handler for POST /v1.41/images/create returned error: Get \"https://registry-1.docker.io/v2/\": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

which suggests some version of

https://stackoverflow.com/questions/57570423/net-http-request-canceled-while-waiting-for-connection-client-timeout-exceeded

See https://github.com/pangeo-forge/pangeo-forge-orchestrator/pull/157#issuecomment-1266225432 for current workaround to this Docker Hub pull issue, and link to upstream issue.


Broken code actions

Latest update breaks code actions on my machine(s). Attemping to use code actions via: <cmd>Lspsaga code_action<CR> produces the following error:
E5108: Error executing lua: ...hare/nvimvimplug/lspsaga.nvim/lua/lspsaga/codeaction.lua:246: attempt to index a nil value
stack traceback:
        ...hare/nvimvimplug/lspsaga.nvim/lua/lspsaga/codeaction.lua:246: in function 'do_code_action'
        ...hare/nvimvimplug/lspsaga.nvim/lua/lspsaga/codeaction.lua:85: in function <...hare/nvimvimplug/lspsaga.nvim/lua/lspsaga/codeaction.lua:84>

The code action prompt appears, but after trying to execute a code action the above error occurs.
Tested on a new rust binary project. In main:
fn main() {
    println!("Hello, world!");
}

The code action on the "Hello world!" &str Rewrite as raw string produces the error. Also occurs on another LSP (omnisharp)
Tested on:
NVIM v0.7.2
Build type: Release
LuaJIT 2.1.0-beta3
occurs on macOS and Arch linux.

check it later. going to eat breakfast.

@HPRIOR  wired it works for me .

alsp test in 0.7 and 0.8 both works fine.

please update lspsaga and give it a try.

It's still happening after updating. Maybe another plugin is causing the issue. I'll do some digging

My settings seem to be the culprit. When I comment out the config file everything works fine. They are basically the default options from the readme:
local lspsaga = require 'lspsaga'

local options = {
    -- Options with default value
    -- "single" | "double" | "rounded" | "bold" | "plus"
    border_style = "single",
    --the range of 0 for fully opaque window (disabled) to 100 for fully
    --transparent background. Values between 0-30 are typically most useful.
    saga_winblend = 0,
    -- when cursor in saga window you config these to move
    move_in_saga = { prev = '<C-p>', next = '<C-n>' },
    -- Error, Warn, Info, Hint
    -- use emoji like
    -- { "🙀", "😿", "😾", "😺" }
    -- or
    -- { "😡", "😥", "😤", "😐" }
    -- and diagnostic_header can be a function type
    -- must return a string and when diagnostic_header
    -- is function type it will have a param `entry`
    -- entry is a table type has these filed
    -- { bufnr, code, col, end_col, end_lnum, lnum, message, severity, source }
    diagnostic_header = { " ", " ", " ", "ﴞ " },
    -- show diagnostic source
    show_diagnostic_source = true,
    -- add bracket or something with diagnostic source, just have 2 elements
    diagnostic_source_bracket = {},
    -- preview lines of lsp_finder and definition preview
    max_preview_lines = 20,
    -- use emoji lightbulb in default
    code_action_icon = " ",
    -- if true can press number to execute the codeaction in codeaction window
    code_action_num_shortcut = true,
    -- same as nvim-lightbulb but async
    code_action_lightbulb = {
        enable = true,
        sign = true,
        enable_in_insert = true,
        sign_priority = 20,
        virtual_text = false,
    },
    -- finder icons
    finder_icons = {
        def = '  ',
        ref = '諭 ',
        link = '  ',
    },
    -- finder do lsp request timeout
    -- if your project big enough or your server very slow
    -- you may need to increase this value
    finder_request_timeout = 1500,
    finder_action_keys = {
        open = "o",
        vsplit = "s",
        split = "i",
        tabe = "t",
        quit = "q",
        scroll_down = "<C-f>",
        scroll_up = "<C-b>", -- quit can be a table
    },
    code_action_keys = {
        quit = "<Esc>",
        exec = "<CR>",
    },
    rename_action_quit = "<Esc>",
    rename_in_select = true,
    definition_preview_icon = "  ",
    -- show symbols in winbar must nightly
    symbol_in_winbar = {
        in_custom = false,
        enable = false,
        separator = ' ',
        show_file = true,
        click_support = false,
    },
    -- show outline
    show_outline = {
        win_position = 'right',
        --set special filetype win that outline window split.like NvimTree neotree
        -- defx, db_ui
        win_with = '',
        win_width = 30,
        auto_enter = true,
        auto_preview = true,
        virt_text = '┃',
        jump_key = 'o',
        -- auto refresh when change buffer
        auto_refresh = true,
    },
};

lspsaga.init_lsp_saga(options);

@HPRIOR  you don't need copy all of them into your config ..they are default options with value. and check set the options which you changed into option. please check the new default option there has some options were removed.

@glepnir I'll select just the ones I want changed then. Just copied over the new defaults and the problem still persists though

hmm does this work for you ?
lspsaga.init_lsp_saga({})

No actually. I would have thought that would apply the defaults. The only thing that's worked so far is removing the reference to my saga.lua config file in init.vim

for reference, the complete saga.lua file looks like this:
local lspsaga = require 'lspsaga'

local options = {
    -- Options with default value
    -- "single" | "double" | "rounded" | "bold" | "plus"
    border_style = "single",
    --the range of 0 for fully opaque window (disabled) to 100 for fully
    --transparent background. Values between 0-30 are typically most useful.
    saga_winblend = 0,
    -- when cursor in saga window you config these to move
    move_in_saga = { prev = '<C-p>', next = '<C-n>' },
    -- Error, Warn, Info, Hint
    -- use emoji like
    -- { "🙀", "😿", "😾", "😺" }
    -- or
    -- { "😡", "😥", "😤", "😐" }
    -- and diagnostic_header can be a function type
    -- must return a string and when diagnostic_header
    -- is function type it will have a param `entry`
    -- entry is a table type has these filed
    -- { bufnr, code, col, end_col, end_lnum, lnum, message, severity, source }
    diagnostic_header = { " ", " ", " ", "ﴞ " },
    -- show diagnostic source
    show_diagnostic_source = true,
    -- add bracket or something with diagnostic source, just have 2 elements
    diagnostic_source_bracket = {},
    -- preview lines of lsp_finder and definition preview
    max_preview_lines = 10,
    -- use emoji lightbulb in default
    --code_action_icon = "💡",
    -- if true can press number to execute the codeaction in codeaction window
    --code_action_num_shortcut = true,
    -- same as nvim-lightbulb but async
    --code_action_lightbulb = {
    --    enable = true,
    --    enable_in_insert = true,
    --    cache_code_action = true,
    --    sign = true,
    --    update_time = 150,
    --    sign_priority = 20,
    --    virtual_text = true,
    --},
    -- finder icons
    finder_icons = {
        def = '  ',
        ref = '諭 ',
        link = '  ',
    },
    -- finder do lsp request timeout
    -- if your project big enough or your server very slow
    -- you may need to increase this value
    finder_request_timeout = 1500,
    -- set antoher colorscheme in preview window
    finder_preview_hl_ns = 0,
    finder_action_keys = {
        open = "o",
        vsplit = "s",
        split = "i",
        tabe = "t",
        quit = "q",
    },
    --code_action_keys = {
    --    quit = "q",
    --    exec = "<CR>",
    --},
    definition_action_keys = {
        quit = "q",
    },
    rename_action_quit = "<C-c>",
    rename_in_select = true,
    definition_preview_icon = "  ",
    -- show symbols in winbar must nightly
    symbol_in_winbar = {
        in_custom = false,
        enable = false,
        separator = ' ',
        show_file = true,
        click_support = false,
    },
    -- show outline
    show_outline = {
        win_position = 'right',
        --set special filetype win that outline window split.like NvimTree neotree
        -- defx, db_ui
        win_with = '',
        win_width = 30,
        auto_enter = true,
        auto_preview = true,
        virt_text = '┃',
        jump_key = 'o',
        -- auto refresh when change buffer
        auto_refresh = true,
    },
    -- custom lsp kind
    -- usage { Field = 'color code'} or {Field = {your icon, your color code}}
    custom_kind = {},
    -- if you don't use nvim-lspconfig you must pass your server name and
    -- the related filetypes into this table
    -- like server_filetype_map = { metals = { "sbt", "scala" } }
    server_filetype_map = {},
};

lspsaga.init_lsp_saga(options);

my config like this . this will use default options value. so it will take effect. whe you edir your config you need run PackerCompile to make it effect.
config = function()
  local saga = require('lspsaga')
  saga.init_lsp_saga({})
end

I'm using Plug as my plugin manager. I think the options take effect on the next boot of nvim or if you source init.vim. Just for the reference, the default settings still cause the above issue:
local lspsaga = require 'lspsaga'

local options = {
    -- Options with default value
    -- "single" | "double" | "rounded" | "bold" | "plus"
    border_style = "single",
    --the range of 0 for fully opaque window (disabled) to 100 for fully
    --transparent background. Values between 0-30 are typically most useful.
    saga_winblend = 0,
    -- when cursor in saga window you config these to move
    move_in_saga = { prev = '<C-p>', next = '<C-n>' },
    -- Error, Warn, Info, Hint
    -- use emoji like
    -- { "🙀", "😿", "😾", "😺" }
    -- or
    -- { "😡", "😥", "😤", "😐" }
    -- and diagnostic_header can be a function type
    -- must return a string and when diagnostic_header
    -- is function type it will have a param `entry`
    -- entry is a table type has these filed
    -- { bufnr, code, col, end_col, end_lnum, lnum, message, severity, source }
    diagnostic_header = { " ", " ", " ", "ﴞ " },
    -- show diagnostic source
    show_diagnostic_source = true,
    -- add bracket or something with diagnostic source, just have 2 elements
    diagnostic_source_bracket = {},
    -- preview lines of lsp_finder and definition preview
    max_preview_lines = 10,
    -- use emoji lightbulb in default
    code_action_icon = "💡",
    -- if true can press number to execute the codeaction in codeaction window
    code_action_num_shortcut = true,
    -- same as nvim-lightbulb but async
    code_action_lightbulb = {
        enable = true,
        enable_in_insert = true,
        cache_code_action = true,
        sign = true,
        update_time = 150,
        sign_priority = 20,
        virtual_text = true,
    },
    -- finder icons
    finder_icons = {
        def = '  ',
        ref = '諭 ',
        link = '  ',
    },
    -- finder do lsp request timeout
    -- if your project big enough or your server very slow
    -- you may need to increase this value
    finder_request_timeout = 1500,
    -- set antoher colorscheme in preview window
    finder_preview_hl_ns = 0,
    finder_action_keys = {
        open = "o",
        vsplit = "s",
        split = "i",
        tabe = "t",
        quit = "q",
    },
    code_action_keys = {
        quit = "q",
        exec = "<CR>",
    },
    definition_action_keys = {
        quit = "q",
    },
    rename_action_quit = "<C-c>",
    rename_in_select = true,
    definition_preview_icon = "  ",
    -- show symbols in winbar must nightly
    symbol_in_winbar = {
        in_custom = false,
        enable = false,
        separator = ' ',
        show_file = true,
        click_support = false,
    },
    -- show outline
    show_outline = {
        win_position = 'right',
        --set special filetype win that outline window split.like NvimTree neotree
        -- defx, db_ui
        win_with = '',
        win_width = 30,
        auto_enter = true,
        auto_preview = true,
        virt_text = '┃',
        jump_key = 'o',
        -- auto refresh when change buffer
        auto_refresh = true,
    },
    -- custom lsp kind
    -- usage { Field = 'color code'} or {Field = {your icon, your color code}}
    custom_kind = {},
    -- if you don't use nvim-lspconfig you must pass your server name and
    -- the related filetypes into this table
    -- like server_filetype_map = { metals = { "sbt", "scala" } }
    server_filetype_map = {},
};

lspsaga.init_lsp_saga(options);

!!! Please not use these options just simple this funciton init_lsp_saga({})

I have already tried that

No actually. I would have thought that would apply the defaults. The only thing that's worked so far is removing the reference to my saga.lua config file in init.vim
Still occurs with:

local lspsaga = require 'lspsaga'
lspsaga.init_lsp_saga({});

this is using default option. so the problem is not relate options.

But it works when I use:
--local lspsaga = require 'lspsaga'
--lspsaga.init_lsp_saga({});

😄

this works for you ?
init_lsp_saga({
    code_action_lightbulb = {
        cache_code_action = false,
    },
})

yes!

okay we found it out. looks like use lightbulb cache codeaction not work for you .i will test it later. it works fine on 0.8 . myabe there has something wrong in 0.7 version.

ok great, thanks for the help

I had test it withe a min config .it works fine ..


dnn-6499 Path too long exception when deleting a portal.

Moving recursive folder and file delete methods to FileSystemUtil and using long path dlls to prevent path too long exceptions.

thanks, interesting approach. I notice that the license for LongPath is GPL -we used not to accept GPL projects, I will check and see if that is still the case

LongPath uses the LGPL v3 License (https://github.com/peteraritchie/LongPath/blob/master/LICENSE) so it is compatible with our MIT license.
More problematic is that this library requires .Net 4.5 so it cannot be considered prior to DNN 7.5.0.

I'm okay with this waiting till 7.5.0.

This item as issues when running on a unc based installation. Josh, any plans to revisit this for unc support? Or should we close it till a later date?


RFP - ospray

Checklist

[x] The package I am requesting does not already exist on https://chocolatey.org/packages;
[x] There is no open issue for this package;
[x] The issue title starts 'RFP - ';
[x] The download URL is public and not locked behind a paywall / login;

Package Details
Software project URL : https://www.ospray.org/downloads.html
Direct download URL for the software / installer :
https://github.com/ospray/OSPRay/releases/download/v1.8.5/ospray-1.8.5.msi
https://github.com/ospray/OSPRay/releases/download/v1.8.5/ospray-1.8.5.windows.zip
requires x64 Microsoft* Visual C++* 2015 Redistributable
Software summary / short description:
The Open, Scalable, and Portable Ray Tracing Engine

Status: Review

https://chocolatey.org/packages/ospray
https://chocolatey.org/packages/ospray.install
https://chocolatey.org/packages/ospray.portable

Thanks!


PR patch deleted

Did you delete your PR patch?
https://github.com/lrw04/ncnn/tree/patch-linearint8

it's left as an exercise for the reader

Thank You for your work.
I added compilation  custom linearint8 layer locally without changing ncnn sources.
https://github.com/magicse/llama2.c-to-ncnn/tree/master
May be later i make GPU support for linearint8 also locally.


DamageModify and Illusion packages

And I forgot that I changed IDC. Oops.
Anyway, I think it will be good to merge.


Does the library support type-1 curvers?

Does the library support type-1 curvers?

@mcarrickscott Does the library support type-1 curvers?

The AMCL library, no. The MIRACL library, yes.
Mike
On Mon, May 13, 2019 at 3:20 PM lixinyu2016<EMAIL_ADDRESS>wrote:

@mcarrickscott https://github.com/mcarrickscott Does the library
support type-1 curvers?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/miracl/amcl/issues/7?email_source=notifications&email_token=AAU3ZDRJCL2TZ2CBA47KHN3PVF2JNA5CNFSM4HMQEMA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVIOX3Q#issuecomment-491842542,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAU3ZDRWJSVFCIUEJSCEIQTPVF2JNANCNFSM4HMQEMAQ
.


Incorrect NgFor Documentation

The documentation page for NgFor is currently pointing to an old file version (Beta 17).
This means there are incorrect statements about NgFor's syntax:

...

...

<template ngFor #item [ngForOf]="items" #i="index">
...
</template>

How to reach the page: Google, 2nd result
Correct page is https://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html

Please post to angular, not angular.io

@wardbell content in the master repo is correct, see https://github.com/angular/angular/blob/b160ada5d10fadb53d00bac4919807ee21fc3e59/modules/%40angular/common/src/directives/ng_for.ts#L71-L73 and the generated doc: https://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html
The problem in this issue is that somehow another, old (?) page (https://angular.io/docs/ts/latest/api/common/NgFor-directive.html) published as well (plus possibly links to this page) and this old page has incorrect content.
In any case I don't think we should have 2 pages with the documentation for NgFor as we've got today:

https://angular.io/docs/ts/latest/api/common/NgFor-directive.html (outdated)
https://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html (correct one)

Please re-open.

I realized what the problem is, we will fix it soon. Thanks.


[draft] example with psygnal instead of ipywidgets

hey @manzt
this is a super basic (and still very broken) example of removing the python-side ipywidgets & traitlets requirements (using psygnal instead).  will require pip install psygnal pydantic.
what's working:

rendering of the initial widget using anywidget's js view
updating of the js WidgetModel whenever the python side model changes

what's broken:

for some reason, you need to re-trigger a repr in order for the python model update to get shown in the view (so the js model isn't triggering a js view re-render for some reason yet)
the view doesn't update the python model.  I'm still digging through traitlets and the Comm object to try to figure out how that all got connected.  I tried listening to on_msg ... but it didn't seem to do anything when the counter is clicked).  I can't tell if the JS state mutation is turning into a ZMQ message or not.

(it will be easy enough to remove the pydantic requirement as well later)

@tlambert03 I'm so sorry about this... but the reason it's not working is because the JS code snippet doesn't register any update handlers. It doesn't faithfully setup callbacks to update whenever the model changes 😟

Still some bugs but initially it seems to work with a frontend that correctly renders and subscribes to updates
https://user-images.githubusercontent.com/24403730/216470016-4d55c1ad-a003-464b-a54e-bfecbb08752d.mov

I'm so sorry about this... but the reason it's not working is because the JS snippet you used from examples/ doesn't register any handlers for when the model changes

I tried a few... and I feel like I tried the same snippet as an existing Anywidget subclass (successfully) and a Displayable subclass (unsuccessfully)... but maybe not?  Anyway that would be great!  Will take a look this weekend.  Thanks!

Still some bugs but initially it seems to work with a frontend that correctly renders and subscribes to updates
https://user-images.githubusercontent.com/24403730/216470016-4d55c1ad-a003-464b-a54e-bfecbb08752d.mov

Nice!

Pushed a PR to your branch :)

I tried a few... and I feel like I tried the same snippet as an existing Anywidget subclass (successfully) and a Displayable subclass (unsuccessfully)... but maybe not? Anyway that would be great! Will take a look this weekend. Thanks!

Yeah, the notebooks don't do any assignment from the Python side though for (Counter.ipynb and Counter-htm.ipynb). Without the on_msg handler the python never got updated from the front-end either.
With my PR, they all work just like AnyWidget subclasses!

🎉🎉🎉

I continuing in breaking out the bits of functionality here, I made a working proof of principle on the decorator idea (#13)
this should now work:
esm = """
export function render(view) {
    let count = () => view.model.get("value");
    let btn = document.createElement("button");
    btn.innerHTML = `count is ${count()}`;
    btn.addEventListener("click", () => {
    view.model.set("value", count() + 1);
    view.model.save_changes();
    });
    view.model.on("change:value", () => {
    btn.innerHTML = `count is ${count()}`;
    });
    view.model.on("change:value", (...args) => {

        console.log(...args)
    })
    view.el.appendChild(btn);
}
"""

@anywidget(esm=esm)
class Counter:
    value: int = 0

@manzt ... I added one more pattern in the _descriptor.py module.  I think it's my favorite so far,  API is similar to the decorator example above but everything is as lazy as possible, and it modifies the original object as little as possible (adding a single _repr_mimebundle_ attribute).  i tried to document the module reasonably well to explain what's going on, but happy to step through it in person too


Contributing to JavaFx on Mobile

Our team is hoping to get our app working on mobile. The last time we had it somewhat working on mobile was before java 9 released. We tried to run it on IOS on Java 9 but had issues, and since we're on Java 10/11 with JavaFX 11 right now, we're not sure where things stand.
In the hopes of speeding things up, what's the best way for us to get involved and contribute to JavaFX on mobile? It appears to me that most of the work is being done on Gluon VM, but Gluon VM is closed source?
Then, from the Gluon website: "JavaFXPorts is the open source project that brings Java and JavaFX to mobile and embedded hardware, including iPhone, iPad, Android devices, and the Raspberry Pi. JavaFXPorts can be used on its own, but it’s even better combined with Gluon Mobile."
What exactly is/falls under Gluon Mobile? Is Gluon Mobile simply the Gluon Charm library? Or does Gluon VM also fall under the Gluon Mobile umbrella, and hence require a license? Is the above statement still true now that we need Gluon VM to deploy Java 9+ to mobile?

Any news on open sourcing GluonVM?


info: make --json a valid argument.

This is already accepted so let's handle this in the logic instead.
CC @chdiza @GauthamGoli for thoughts.

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew tests with your changes locally?

This actually doesn't work quite as expected: brew info --json wget works but brew info wget --json does not. @GauthamGoli any thoughts?

Thanks for the help @GauthamGoli. Pushed!

@MikeMcQuaid
$ brew info --json=v3 wget
Error: invalid JSON version: v3
Please report this bug:
  https://docs.brew.sh/Troubleshooting
/usr/local/Homebrew/Library/Homebrew/cmd/info.rb:91:in `info'
/usr/local/Homebrew/Library/Homebrew/brew.rb:89:in `<main>'


fix: use webp format for less bandwidth

use webp format for thumbnail and storyboard

Even with signed URLs, this works with the same token. See:
Thumbnail token:

thumbnail jpg
thumbnail webp

And the storyboard token:

storyboard.vtt with jpg
storyboard.vtt with webp

@gkatsev yeah that's what I'm seeing for the thumbnail, for the storyboard I'm seeing:

212 KB for jpg
145 KB for webp

Also, this asset is a short duration, so it only has 24 images in the storyboard. Longer assets will max out at 100 images iirc


maintainers: update email address for getpsyched

Updated my email address :D

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/1359


[Addition] EditItem UI

Describe the solution you'd like
When the edit button is clicked all fields become editable

Dependent #110


Dark Steel Armor Durability.. Oddity?

I have a set of Dark Steel armor pretty heavily enchanted and what not, that functions mostly as expected, except for some reason one piece of armor seems to always take exponentially more damage to it's durability than the rest. Not in a sense of one of them is getting low while the others are at like half, but more like most of them are less than 10 durability damage by the time one of them is breaking. At first, it was my shoes, but since I made new shoes because they broke when I wasn't paying well enough attention, now it's my pants. Any source of mob damage I take typically reduces it's durability by about 4-8 pts per hit. Lava does the expected 1/20~ damage ticks I lose 1 durability, on all pieces including the pants.
http://i.imgur.com/A0peuMv.gifv
http://i.giphy.com/3o85xBseCRXhQX0RtS.gif 2big for imgur
http://i.imgur.com/j5EOp32.png
Not sure what could be causing this behavior.
I use a flux infused jetplate with similar enchants as my chestpiece, it powers all my dark steel nonstop. I tested with and without fluxplate, it still functions the same.
Mods in my pack include
AE2 Stuff by bdew
AOBD 2 by ganymedes01
Applied Energistics by AlgorithmX2
Aroma1997Core by Aroma1997
Aroma1997s Dimensional World by Aroma1997
Baubles by Azanor
Bdlib by bdew
BetterFps by Guichaguri
BetterRain by Wirsbo
BiblioCraft by Nuchaz
Big Reactors by Erogenous Beef
BigDoors by jaquadro
Biomes O' Plenty by TDWP_FTW, Adubbz
Blood Magic by WayofTime
Brandon's Core by brandon3055
Buildcraft by CovertJaguar, SirSengir, Krapht, cpw, spacetoad, asiekierka
Carpenter's Blocks by Mineshopper
ChickenChunks by Chickenbones
Chisel 2 by warlordjones, tterrag1098, TheCricket26, Drullkus
CodeChickenCore by Chickenbones
CodeChickenLib by Chickenbones
CoFH Core by CoFH team
CoFH Lib by CoFH Team
ComputerCraft by Dan200
Dimensionguard by Hilburn
Doors by iChun
Draconic Evolution by brandon3055
EJML Core by Peter Abeles
EnderCore by tterrag
EnderIO by CrazyPants
EnderStorage by Chickenbones
Equivalent Exchange 3 by Pahimar
Ex Nihilo by Erasmus_Crowley
Extra Cells by Leonelf
Extra Utilities by RWTema
ExtraTiC by Glassmaker
FastCraft by Player - Granted
Forestry by SirSengir
Forge Multipart by Chickenbones
Funky Locomotion by RWTema
Greg's Lighting by Greg_Ewing
HarvestCraft by MatrexsVigil, Rhodox
Hats by iChun
iChunUtil by iChun
Iguana Tweaks for Tinker's Construct by iguana_man, boni
In-Game Wiki Mod by MineMaarten
IndustrialCraft 2 by IC2 Dev Team
INpure Core by denoflionsx
Inventory Tweaks by Kobata
IronChests by cpw, progwml6
JABBA by ProfMobius
JourneyMap by techbrew
LogisticsPipes by davboecki, theZorro266, GUIpsp, AartBluestoke, ArtForz
Malisis Core by Ordinastie
Malisis Doors by Ordinastie
MalisisAdvert by Ordinastie
Mantle by mDiyo, progwml6
Mekanism by aidancbrady
MineFactory Reloaded by skyboy026, powercrystals
Mystcraft by XCompWiz
Natura by mDiyo
NEI Addons by bdew
NEI Integration by Tonius
NetherOres by skyboy026, powercrystals
Not Enough Items by Chickenbones
Not Enough Resources by hilburn and way2muchnoise
Open Peripheral Intergration by OpenMods, boq
OpenBlocks by Mikeemoo, boq
OpenComputers by Sangar
OpenModsLib by Mikeemoo, boq
OpenPeripheral Core by Mikeemoo, boq
PlanetGuyLib by Planetguy
Player API by Divisor
PneumaticCraft by MineMaarten
Prattle by ProfMobius, RazzleberryFox
Project Red by MrTJP, Chickenbones
Railcraft by CovertJaguar
Realistic World Gen by ted80
Redstone Arsenal by CoFH team
Redstone In Motion by jakj
Roguelike Dungeons by Greymerk
Simply Jetpacks by Tonius
Squake by squeek502
Steve's Addons by Hilburn
Steve's Factory Manager by Vswe
Steve's Workshop by Vswe
Thaumcraft by Azanor
Thaumic Energistics by Nividica
Thaumic Tinkerer by pixlepix, nekosune, Vazkii
Thermal Dynamics by TeamCoFH
Thermal Expansion by CoFH team
Thermal Foundation by CoFH team
TiC Tooltips by squeek502
Tinker's Construct by boni, mDiyo
Tinker's Mechworks by mDiyo
Translocators by Chickenbones
Twilight Forest by Benimatic
Waila by ProfMobius
Waila Harvestability by squeek502
WAILAPlugins by tterrag
Wawla by Darkhax
Wireless Redstone CBE by Chickenbones

Might I also add that I read a funny requested feature about invincible armor, which I agree would be stupid, but could you consider the idea of armor breaking into an unusable state rather than deleting itself? Like tinkers tools, I invested hundreds of levels into these sets of armors and I don't want to see them break from some strange oddity like this, I was quite sad to see it happen randomly at one point  D:

Minecraft asks the armor pieces one after the other to reduce the damage. The remaining damage is then removed from the player's health. What seems to happen here is that the first armor piece already takes all the damage armor can absorb, so the following ones don't have anything to do.
BTW: Please state at least Ender IO's version number in bug reports. Thanks

I see. Why do they all lose durability at super slow paces, but one of them gets broken in about a minute of usage then? :S
Currently on EnderCore-1.7.10-<IP_ADDRESS>_beta

ok, I was hoping that was all to it...

Do you have a thorns enchant on any of the pieces?
Thorns damages the armor on top of the damage you take from the mob.

no sir! Regretfully I don't even have this world anymore, and I haven't made any dark steel armor on the new betas I've played a bit of.
But I do remember I specifically did not have thorns. I think one of those gifs probably shows everything I had on them.

There is a config option to stop ender io armor from taking damage when it is powered.


Add Triggers for open/close

Just a very basic implementation - I knwo you could to it waaay better but it works for me.
I need it for adding classes to the body when the lightbox is open.
Cheers!

Hi,
thanks for the pull request. Lity already fires events, it's just not documented. The event names are lity:open, lity:ready and lity:close.
$(document)
	.on('lity:open', function(e) {
	    console.log('open');
	});
	.on('lity:ready', function(e) {
	    console.log('ready');
	});
	.on('lity:close', function(e) {
	    console.log('close');
	});

HI,
thanks for the quick response!
That's perfect, and I was sooo close with my event-naming :smile:  :+1:


Should we have a feature flag schema specification?

Something like this: https://github.com/Azure/AppConfiguration/blob/main/docs/FeatureManagement/FeatureFlag.v2.0.0.schema.json

I think you just linked to it- meaning we do have a feature flag specification 😄. It's just not in this repo- which I think makes sense because it's for more languages than .net.

Yes we should.


Fixes: ellipsis type string, use make only for non-fixed arrays, deduplicate interface funcs

This makes go-imap generate valid Go code at least (but doesn't resolve the word/genword context priority bug)

Wow, great! ... about the priority, for now at least, didn't you make ryegen in a way we can rename certain function using config.toml?

Wow, great! ... about the priority, for now at least, didn't you make ryegen in a way we can rename certain function using config.toml?

No, only exclude functions, but I can definitely implement that functionality, it shouldn't be too hard either.

Hm ... I'm sure we were talking about it.

Quite possible... I guess I forgot about that part
I'll implement the renaming as well, since I agree, it would be pretty useful


Percentage not changing

Description

I'm just trying to show percentage change
Expected Behavior

the percentage should change from 14% to whatever percentage
Actual Behavior

14% remains no matter how much I change the data
Possible Fix

Steps to Reproduce

 LineChartView(data: [98,23,54,32,12,37,7,23,12], title: "", legend: "Chart")             .padding(.trailing, 10)
Your Environment

Version of this package used:
Device/Simulator:
Operating System and version:
Link to your project:

I'm having the same problem - did anyone end up finding a solution?

Same problem — anything?

rateValue: nil


add route constants; enable direct method page

I see a few discrepancies in the usage of direct vs device method throughout the code. I'd just have a scan through and see where things should be changed. I also wonder if it should be Direct methods rather than Direct method to match the portal.

I see a few discrepancies in the usage of direct vs device method throughout the code. I'd just have a scan through and see where things should be changed. I also wonder if it should be Direct methods rather than Direct method to match the portal.

Portal uses 'Direct Method'. So I will be using 'Direct method' here to match this tool's convention.


bigquery: add client.create_dataset; remove dataset.create

There are some conflicts. Looks like it needs a rebase.


[BUG] Azure context - NullPointerException due to wrong check when MSI is enabled (region is checked instead of subscription id)

Describe the bug
When MSI is enabled even though region is not mandatory, validation accidentally checks for it instead of subscription-id. In AzureProperties.java:
if (msiEnabled && Strings.isNullOrEmpty(subscriptionId)) {
    Assert.hasText(this.region, "When msi is enabled, spring.cloud.azure.subscription-id must be provided");
}

The assertion should use the subscription id instead of region:
Assert.hasText(this.subscriptionId, "When msi is enabled, spring.cloud.azure.subscription-id must be provided");

This causes a NullPointerException when region is not given.
Exception or Stack Trace
Caused by: java.lang.NullPointerException: null
    at com.microsoft.azure.spring.cloud.autoconfigure.servicebus.ServiceBusUtils.getNamespace(ServiceBusUtils.java:12)
    at com.microsoft.azure.spring.cloud.autoconfigure.servicebus.AzureServiceBusQueueAutoConfiguration.queueClientFactory(AzureServiceBusQueueAutoConfiguration.java:60)
    at com.microsoft.azure.spring.cloud.autoconfigure.servicebus.AzureServiceBusQueueAutoConfiguration$$EnhancerBySpringCGLIB$$41f13fa0.CGLIB$queueClientFactory$1(<generated>)
    at com.microsoft.azure.spring.cloud.autoconfigure.servicebus.AzureServiceBusQueueAutoConfiguration$$EnhancerBySpringCGLIB$$41f13fa0$$FastClassBySpringCGLIB$$f041ed51.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331)
    at com.microsoft.azure.spring.cloud.autoconfigure.servicebus.AzureServiceBusQueueAutoConfiguration$$EnhancerBySpringCGLIB$$41f13fa0.queueClientFactory(<generated>)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
    ... 58 common frames omitted

To Reproduce
Create an application.yaml that uses a namespace without a region, e.g.:
spring:
  cloud:
    azure:
      msi-enabled: true
      resource-group: discovery
      subscription-id: <subscription_id>
      service-bus:
        namespace: <namespace>
    stream:
      function:
        definition: produce
      bindings:
        produce-out-0:
          destination: my-queue

Expected behavior
Region should not be enforced when auto-create is enabled.
Setup (please complete the following information):

OS: Linux on AKS
1.2.7, 1.2.8

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[x] Bug Description Added
[x] Repro Steps Added
[x] Setup information Added

hi @avpines, we have fix the problem, but the library will be released a few weeks later

@zhoufenqin - Thanks! Do you know when and in what release the fix will be available?

hi @avpines, this may be released in the middle of October(not decided yet), and the release version is 3.0.0, we'll update the Spring Initializr when the package release. Thank you for your feedback

@zhoufenqin thanks! Will it be 3.0.0 or 1.3.0 (next release of the Service Bus Spring Cloud Stream binder)?

@saragluna could you follow up on this issue?


[analyzer] Misleading message for dart language version when it has quotes

When there are quotes around the version in dart language version comment, e.g.
// @dart="2.7"
// @dart='2.7'

There is a message
The Dart language version override comment must be specified with an '=' character
Specify a Dart language version override with a comment like '// @dart = 2.0'.

However, the message should be something else, since the issue not regarding a missing = character.
The issue no longer exists if there is a space after =, e.g.
// @dart= "2.7"
// @dart= '2.7'

however it is not considered as a language version comment (which is ok), but a Hint would also be better in this case.
We should either have another HintCode, or at least get INVALID_LANGUAGE_VERSION_OVERRIDE_NUMBER
https://github.com/dart-lang/sdk/blob/dea3861e5f956a589ea117e8e4a7f2e56b173af8/pkg/analyzer/lib/src/dart/error/hint_codes.dart#L1063-L1066
Appreciate deciding what should be done, I could try to implement.

This is an analyzer message.
It doesn't conform to the specified dart-version handling, so the scanner sees it as just any other comment.
The analyzer tries to me helpful --- I'll reassign.

@srawlins


Move value below label for examples in README

Hey!  The order of these in the docs tripped me up.  In GTM the label field comes before the value field.  It's a small thing but I think this makes it a little easier to implement.  🙂

I'm fine with this change, though I'd prefer to have it be consistent across all examples. Can you make that update as well?

I'm fine with this change, though I'd prefer to have it be consistent across all examples. Can you make that update as well?

@philipwalton Thanks, done!  I think I got all the examples.

@philipwalton Thanks, done!  I think I got all the examples.

Thanks!

Thanks!


Protect NetworkImpl#close from concurrency issues

Since NetworkImpl#id is assigned lazily, close may not see the change and will fail with NPE.

@pivovarit I updated the PR and will merge it once CI is green :)

This was released in https://github.com/testcontainers/testcontainers-java/releases/tag/1.14.0 🎉
Thanks for the contribution!


Separate vscode text/links from language server

Since the language server can be used in any editor and not just vscode, we should not specifically mention vscode or link to vscode resources. Instead, we can put all editor specific resources into the docs, which we already link to with the pris.ly link.

As this is Prisma 1 specific, we also do not really want to have this in our current docs.
The correct part of this message is that they should rename the file to .graphql so it does not trigger our language server any more - and the other part is editor specific I guess?


MQTTnet.Exceptions.MqttCommunicationException: Cannot access a disposed object

Hello,
I have a task with a parallel.ForEach ( I have also tried with a simple foreach)
Parallel.ForEach(receiveMessageResponse.Messages, message =>
{
    if (!string.IsNullOrEmpty(message.Body))
    {
        try
        {
            mqtt.ManageMQTTClient(MQTTconfigPublisher, message.Body).GetAwaiter().GetResult();
        }
        catch (Exception e)
        {
            parallelExceptions.Enqueue(e);
        }
    }
});

And when I run the app I have the following error:
MQTTnet.Exceptions.MqttCommunicationException: Cannot access a disposed object
Object name: 'System.Net.Sockets.Socket'. ---> System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Net.Sockets.Socket'.
at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
at System.Net.Sockets.Socket.<>c.<ConnectAsync>b__274_0(IAsyncResult iar)
--- End of stack trace from previous location where exception was thrown ---
at MQTTnet.Implementations.MqttTcpChannel.ConnectAsync(CancellationToken cancellationToken)
at MQTTnet.Internal.MqttTaskTimeout.WaitAsync(Func`2 action, TimeSpan timeout, CancellationToken cancellationToken)
at MQTTnet.Adapter.MqttChannelAdapter.ConnectAsync(TimeSpan timeout, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at MQTTnet.Adapter.MqttChannelAdapter.WrapException(Exception exception)
at MQTTnet.Adapter.MqttChannelAdapter.ConnectAsync(TimeSpan timeout, CancellationToken cancellationToken)
at MQTTnet.Client.MqttClient.ConnectAsync(IMqttClientOptions options, CancellationToken cancellationToken)
at MQTTnet.Client.MqttClient.ConnectAsync(IMqttClientOptions options, CancellationToken cancellationToken)
at AmpliaControlSystem.MQTT.ManageMQTTClient(MQTTConfiguration MQTTconfigPublisher, String payload) in /app/MQTT.cs:line 38

As a note, this happened to me in local, but I re-write the code from the beggining and it was fixed. Now I'm trying to deploy to AWS and the error happen again
The task ManageMQTTClient which produce the error:
public async Task ManageMQTTClient( MQTTConfiguration MQTTconfigPublisher, string payload)
{
    string topic = payload.Split(";")[1];
    string cliente =  Guid.NewGuid().ToString();
    try
    {
        IMqttClientOptions optionsPublisher = new MqttClientOptionsBuilder()
                    .WithTcpServer(MQTTconfigPublisher.Servidor)
                    .WithClientId(cliente)
                    .WithCredentials(MQTTconfigPublisher.Username, MQTTconfigPublisher.Password)
                    .WithCleanSession(false)
                    .WithKeepAlivePeriod(System.TimeSpan.FromSeconds(60))
                    .Build();

        IMqttClient mqttClientPublisher = new MqttFactory().CreateMqttClient();

        await mqttClientPublisher.ConnectAsync(optionsPublisher);

        if (mqttClientPublisher.IsConnected)
        {
            try
            {
                await mqttClientPublisher.PublishAsync(topic, payload.Split(";")[2], MQTTnet.Protocol.MqttQualityOfServiceLevel.ExactlyOnce);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error en 1" + ex);
                throw;
            }
        }
        //await mqttClientPublisher.DisconnectAsync();
    }
    catch (Exception ex)
    {
        Console.WriteLine("Error en 2" + ex);
        throw;
    }
}

The line 38 in the original code (here I have deleted the comments) is:
await mqttClientPublisher.ConnectAsync(optionsPublisher);
I'm using NuGet MQTTnet 3.0.5 and Net Core 2.1
Which project is your bug related to?

Client

For me, this seems quite similar to https://github.com/chkr1011/MQTTnet/issues/728 (But it's not a duplicate).

Finally, I got what was wrong.
I was trying to access lo local broker (local ip) from the outside.
The problem here was the exception messages didn't say anything about the connection was no able to be establish.
Should the error message say something about that?

Should the error message say something about that?

If you ask me, yes. I'm not in the implementation details (yet), so @chkr1011 needs to answer this as well.

I have a similar issue in my code. I am using ManagedClient with reconnect delay = 10 seconds. Sporadic in my logs i see exceptions like this when the client disconnects:
2019-08-20 17:06:47.753 +00:00 [ERR] >> [2019-08-20T17:06:47.7478776Z] [187] [MqttClient] [Error]: Error while connecting with server.
MQTTnet.Exceptions.MqttCommunicationException: Cannot access a disposed object.
Object name: 'System.Net.Sockets.Socket'. ---> System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Net.Sockets.Socket'.
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.Sockets.Socket.<>c.<ConnectAsync>b__274_0(IAsyncResult iar)
--- End of stack trace from previous location where exception was thrown ---
   at MQTTnet.Implementations.MqttTcpChannel.ConnectAsync(CancellationToken cancellationToken)
   at MQTTnet.Internal.MqttTaskTimeout.WaitAsync(Func`2 action, TimeSpan timeout, CancellationToken cancellationToken)
   at MQTTnet.Adapter.MqttChannelAdapter.ConnectAsync(TimeSpan timeout, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at MQTTnet.Adapter.MqttChannelAdapter.WrapException(Exception exception)
   at MQTTnet.Adapter.MqttChannelAdapter.ConnectAsync(TimeSpan timeout, CancellationToken cancellationToken)
   at MQTTnet.Client.MqttClient.ConnectAsync(IMqttClientOptions options, CancellationToken cancellationToken)

The client is able to reconnect to the server most of the times, but sometimes the client "dies" and does not run anymore. The last log message from MQTTClient in my log when this happens is this:
2019-08-20 17:06:27.736 +00:00 [ERR] >> [2019-08-20T17:06:27.7217443Z] [174] [MqttClient] [Error]: Error while connecting with server.
MQTTnet.Exceptions.MqttCommunicationException: Connection refused []:8883 ---> System.Net.Internals.SocketExceptionFactory+ExtendedSocketException: Connection refused []:8883
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Exception source)
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.Sockets.Socket.DoMultipleAddressConnectCallback(Object result, MultipleAddressConnectAsyncResult context)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Exception source)
   at System.Net.Sockets.Socket.DoMultipleAddressConnectCallback(Object result, MultipleAddressConnectAsyncResult context)
   at System.Net.Sockets.Socket.MultipleAddressConnectCallback(IAsyncResult result)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Exception source)
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.Sockets.Socket.<>c.<ConnectAsync>b__274_0(IAsyncResult iar)
--- End of stack trace from previous location where exception was thrown ---
   at MQTTnet.Implementations.MqttTcpChannel.ConnectAsync(CancellationToken cancellationToken)
   at MQTTnet.Internal.MqttTaskTimeout.WaitAsync(Func`2 action, TimeSpan timeout, CancellationToken cancellationToken)
   at MQTTnet.Adapter.MqttChannelAdapter.ConnectAsync(TimeSpan timeout, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at MQTTnet.Adapter.MqttChannelAdapter.WrapException(Exception exception)
   at MQTTnet.Adapter.MqttChannelAdapter.ConnectAsync(TimeSpan timeout, CancellationToken cancellationToken)
   at MQTTnet.Client.MqttClient.ConnectAsync(IMqttClientOptions options, CancellationToken cancellationToken)
2019-08-20 17:06:33.405 +00:00 [DBG] Starting HttpMessageHandler cleanup cycle with 1 items
2019-08-20 17:06:33.407 +00:00 [DBG] Ending HttpMessageHandler cleanup cycle after 0.0099ms - processed: 0 items - remaining: 1 items
2019-08-20 17:06:37.734 +00:00 [DBG] >> [2019-08-20T17:06:37.7338579Z] [123] [MqttClient] [Verbose]: Trying to connect with server 'URL' (Timeout=00:00:10).
2019-08-20 17:06:43.404 +00:00 [DBG] Starting HttpMessageHandler cleanup cycle with 1 items
2019-08-20 17:06:43.411 +00:00 [DBG] Ending HttpMessageHandler cleanup cycle after 0.0099ms - processed: 0 items - remaining: 1 items
2019-08-20 17:06:47.753 +00:00 [ERR] >> [2019-08-20T17:06:47.7478776Z] [187] [MqttClient] [Error]: Error while connecting with server.
MQTTnet.Exceptions.MqttCommunicationException: Cannot access a disposed object.
Object name: 'System.Net.Sockets.Socket'. ---> System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Net.Sockets.Socket'.
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.Sockets.Socket.<>c.<ConnectAsync>b__274_0(IAsyncResult iar)
--- End of stack trace from previous location where exception was thrown ---
   at MQTTnet.Implementations.MqttTcpChannel.ConnectAsync(CancellationToken cancellationToken)
   at MQTTnet.Internal.MqttTaskTimeout.WaitAsync(Func`2 action, TimeSpan timeout, CancellationToken cancellationToken)
   at MQTTnet.Adapter.MqttChannelAdapter.ConnectAsync(TimeSpan timeout, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at MQTTnet.Adapter.MqttChannelAdapter.WrapException(Exception exception)
   at MQTTnet.Adapter.MqttChannelAdapter.ConnectAsync(TimeSpan timeout, CancellationToken cancellationToken)
   at MQTTnet.Client.MqttClient.ConnectAsync(IMqttClientOptions options, CancellationToken cancellationToken)
2019-08-20 17:06:47.755 +00:00 [DBG] >> [2019-08-20T17:06:47.7552332Z] [187] [MqttClient] [Verbose]: Disconnecting [Timeout=00:00:10]

I have a similar issue in my code. I am using ManagedClient with reconnect delay = 10 seconds. Sporadic in my logs i see exceptions like this when the client disconnects:
2019-08-20 17:06:47.753 +00:00 [ERR] >> [2019-08-20T17:06:47.7478776Z] [187] [MqttClient] [Error]: Error while connecting with server.
MQTTnet.Exceptions.MqttCommunicationException: Cannot access a disposed object.
Object name: 'System.Net.Sockets.Socket'. ---> System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Net.Sockets.Socket'.
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.Sockets.Socket.<>c.<ConnectAsync>b__274_0(IAsyncResult iar)
--- End of stack trace from previous location where exception was thrown ---
   at MQTTnet.Implementations.MqttTcpChannel.ConnectAsync(CancellationToken cancellationToken)
   at MQTTnet.Internal.MqttTaskTimeout.WaitAsync(Func`2 action, TimeSpan timeout, CancellationToken cancellationToken)
   at MQTTnet.Adapter.MqttChannelAdapter.ConnectAsync(TimeSpan timeout, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at MQTTnet.Adapter.MqttChannelAdapter.WrapException(Exception exception)
   at MQTTnet.Adapter.MqttChannelAdapter.ConnectAsync(TimeSpan timeout, CancellationToken cancellationToken)
   at MQTTnet.Client.MqttClient.ConnectAsync(IMqttClientOptions options, CancellationToken cancellationToken)

The client is able to reconnect to the server most of the times, but sometimes the client "dies" and does not run anymore. The last log message from MQTTClient in my log when this happens is this:
2019-08-20 17:06:27.736 +00:00 [ERR] >> [2019-08-20T17:06:27.7217443Z] [174] [MqttClient] [Error]: Error while connecting with server.
MQTTnet.Exceptions.MqttCommunicationException: Connection refused []:8883 ---> System.Net.Internals.SocketExceptionFactory+ExtendedSocketException: Connection refused []:8883
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Exception source)
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.Sockets.Socket.DoMultipleAddressConnectCallback(Object result, MultipleAddressConnectAsyncResult context)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Exception source)
   at System.Net.Sockets.Socket.DoMultipleAddressConnectCallback(Object result, MultipleAddressConnectAsyncResult context)
   at System.Net.Sockets.Socket.MultipleAddressConnectCallback(IAsyncResult result)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Exception source)
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.Sockets.Socket.<>c.<ConnectAsync>b__274_0(IAsyncResult iar)
--- End of stack trace from previous location where exception was thrown ---
   at MQTTnet.Implementations.MqttTcpChannel.ConnectAsync(CancellationToken cancellationToken)
   at MQTTnet.Internal.MqttTaskTimeout.WaitAsync(Func`2 action, TimeSpan timeout, CancellationToken cancellationToken)
   at MQTTnet.Adapter.MqttChannelAdapter.ConnectAsync(TimeSpan timeout, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at MQTTnet.Adapter.MqttChannelAdapter.WrapException(Exception exception)
   at MQTTnet.Adapter.MqttChannelAdapter.ConnectAsync(TimeSpan timeout, CancellationToken cancellationToken)
   at MQTTnet.Client.MqttClient.ConnectAsync(IMqttClientOptions options, CancellationToken cancellationToken)
2019-08-20 17:06:33.405 +00:00 [DBG] Starting HttpMessageHandler cleanup cycle with 1 items
2019-08-20 17:06:33.407 +00:00 [DBG] Ending HttpMessageHandler cleanup cycle after 0.0099ms - processed: 0 items - remaining: 1 items
2019-08-20 17:06:37.734 +00:00 [DBG] >> [2019-08-20T17:06:37.7338579Z] [123] [MqttClient] [Verbose]: Trying to connect with server 'URL' (Timeout=00:00:10).
2019-08-20 17:06:43.404 +00:00 [DBG] Starting HttpMessageHandler cleanup cycle with 1 items
2019-08-20 17:06:43.411 +00:00 [DBG] Ending HttpMessageHandler cleanup cycle after 0.0099ms - processed: 0 items - remaining: 1 items
2019-08-20 17:06:47.753 +00:00 [ERR] >> [2019-08-20T17:06:47.7478776Z] [187] [MqttClient] [Error]: Error while connecting with server.
MQTTnet.Exceptions.MqttCommunicationException: Cannot access a disposed object.
Object name: 'System.Net.Sockets.Socket'. ---> System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Net.Sockets.Socket'.
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.Sockets.Socket.<>c.<ConnectAsync>b__274_0(IAsyncResult iar)
--- End of stack trace from previous location where exception was thrown ---
   at MQTTnet.Implementations.MqttTcpChannel.ConnectAsync(CancellationToken cancellationToken)
   at MQTTnet.Internal.MqttTaskTimeout.WaitAsync(Func`2 action, TimeSpan timeout, CancellationToken cancellationToken)
   at MQTTnet.Adapter.MqttChannelAdapter.ConnectAsync(TimeSpan timeout, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at MQTTnet.Adapter.MqttChannelAdapter.WrapException(Exception exception)
   at MQTTnet.Adapter.MqttChannelAdapter.ConnectAsync(TimeSpan timeout, CancellationToken cancellationToken)
   at MQTTnet.Client.MqttClient.ConnectAsync(IMqttClientOptions options, CancellationToken cancellationToken)
2019-08-20 17:06:47.755 +00:00 [DBG] >> [2019-08-20T17:06:47.7552332Z] [187] [MqttClient] [Verbose]: Disconnecting [Timeout=00:00:10]

FWIW, I'm having the same exact issue as Erikkj.  I have had several instances over the past few weeks where the client throws this exception and continues to fail to reconnect.  Restarting the application clears it up.  Sorry if this is a separate issue, I just ran across it while trying to Google my problem.

I can confirm that this issue occurs occasionally on my test system, too. For the case it helps: I noticed that I never see a "OnDisconnected" event before the re-connecting fails.
MQTTnet v3.0.8, .NET Core 3.0, Linux on ARM32.

I have the same issue.
MQTTnet v3.0.8, .NET Core 2.1, Windows Server

I have a similar issue where I get a ObjectDisposedExcpetion wrapped in a MqttCommunicationException when the connection to the server times out. I traced it back to this snippet in MqttTcpCannel.cs:
// Workaround for: workaround for https://github.com/dotnet/corefx/issues/24430
using (cancellationToken.Register(() => socket.Dispose()))
{
#if NET452 || NET461
    await Task.Factory.FromAsync(socket.BeginConnect, socket.EndConnect, _options.Server, _options.GetPort(), null).ConfigureAwait(false);
#else
    await socket.ConnectAsync(_options.Server, _options.GetPort()).ConfigureAwait(false);
#endif
}

I would suggest catching the ObjectDisposedExcpetion and hiding the workaround to library users, since ObjectDisposedExcpetion sounds like an implementation error rather than a simple timeout.

also getting this even with the new MQTTnet 3.0.9-rc1, but its usually in a combination with a timeout. It does reconnect then i get like 2-3 messages, the same happens again and so on until the client dies.
> 2019-12-17 02:33:21.026 +00:00	[wrn]	Timeout while waiting for packet of type 'MqttPingRespPacket'.	[MQTTnet.MqttClient]
> 2019-12-17 02:33:21.031 +00:00	[wrn]	Communication error while sending/receiving keep alive packets.	[MQTTnet.MqttClient]
> MQTTnet.Exceptions.MqttCommunicationTimedOutException: Exception of type 'MQTTnet.Exceptions.MqttCommunicationTimedOutException' was thrown.
>    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
>    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
>    at MQTTnet.PacketDispatcher.MqttPacketAwaiter`1.<WaitOneAsync>d__4.MoveNext()
> --- End of stack trace from previous location where exception was thrown ---
>    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
>    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
>    at MQTTnet.Client.MqttClient.<SendAndReceiveAsync>d__46`1.MoveNext()
> --- End of stack trace from previous location where exception was thrown ---
>    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
>    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
>    at MQTTnet.Client.MqttClient.<TrySendKeepAliveMessagesAsync>d__47.MoveNext()
> 2019-12-17 02:33:21.423 +00:00	[wrn]	Disconnected	[.....Services.MqttClient]
> 2019-12-17 02:33:21.426 +00:00	[wrn]	Communication error while receiving packets.	[MQTTnet.MqttClient]
> MQTTnet.Exceptions.MqttCommunicationException: Cannot access a disposed object.
> Object name: 'System.Net.Sockets.NetworkStream'. ---> System.ObjectDisposedException: Cannot access a disposed object.
> Object name: 'System.Net.Sockets.NetworkStream'.
>    at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
>    at System.IO.Stream.<>c.<BeginEndReadAsync>b__43_1(Stream stream, IAsyncResult asyncResult)
>    at System.Threading.Tasks.TaskFactory`1.FromAsyncTrimPromise`1.Complete(TInstance thisRef, Func`3 endMethod, IAsyncResult asyncResult, Boolean requiresSynchronization)
> --- End of stack trace from previous location where exception was thrown ---
>    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
>    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
>    at MQTTnet.Implementations.MqttTcpChannel.<ReadAsync>d__17.MoveNext()
> --- End of stack trace from previous location where exception was thrown ---
>    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
>    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
>    at MQTTnet.Formatter.MqttPacketReader.<ReadFixedHeaderAsync>d__3.MoveNext()
> --- End of stack trace from previous location where exception was thrown ---
>    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
>    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
>    at MQTTnet.Adapter.MqttChannelAdapter.<ReceiveAsync>d__37.MoveNext()
> --- End of stack trace from previous location where exception was thrown ---
>    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
>    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
>    at MQTTnet.Adapter.MqttChannelAdapter.<ReceivePacketAsync>d__35.MoveNext()
>    --- End of inner exception stack trace ---
>    at MQTTnet.Adapter.MqttChannelAdapter.WrapException(Exception exception)
>    at MQTTnet.Adapter.MqttChannelAdapter.<ReceivePacketAsync>d__35.MoveNext()
> --- End of stack trace from previous location where exception was thrown ---
>    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
>    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
>    at MQTTnet.Client.MqttClient.<TryReceivePacketsAsync>d__48.MoveNext()
> 2019-12-17 02:33:21.427 +00:00	[wrn]	Disconnected	[.....Services.MqttClient]

@Feyb @JanEggers confirmed. we're getting same object disposed exception with 3.0.9-rc1`. Thoughts?

@andrei-m-code I dont know if @chkr1011 created a new version that contains the fixes I did last year?
@chkr1011 can you please verify / do so?

I'm expericing this same issue on v3.0.15
MQTTnet v3.0.15 + MQTTnet.AspNetCore v3.0.15 (Kestrel).
When I'm having it, it won't run until I reboot.
Log / Trace / Call stack:
2021/05/06T15:24:13.862: WebSocketServer:Start
Microsoft.AspNetCore.Server.Kestrel: Critical: Unable to start Kestrel.
2021/05/06T15:24:15.067: WebSocketServer:Start: Exception: Mqtt failed to start, check inner exception
2021/05/06T15:24:15.092: Stack trace:
[...]
2021/05/06T15:24:15.097: GLApp::Caused by:
2021/05/06T15:24:15.100: GLApp::AggregateException: One or more errors occurred. (Intento de acceso a un socket no permitido por sus permisos de acceso.)
2021/05/06T15:24:15.102: GLApp::Stack trace:
System.Net.Sockets.SocketException (10013): Intento de acceso a un socket no permitido por sus permisos de acceso.
2021/05/06T15:24:15.104: GLApp::Caused by:
2021/05/06T15:24:15.105: GLApp::SocketException: Intento de acceso a un socket no permitido por sus permisos de acceso.
2021/05/06T15:24:15.109: GLApp::Stack trace:    at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName)
   at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.Bind(EndPoint localEP)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind()
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.<>c__DisplayClass21_0`1.<<StartAsync>g__OnBind|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context)
   at Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions.BindAsync(AddressBindContext context)
   at Microsoft.AspNetCore.Server.Kestrel.Core.AnyIPListenOptions.BindAsync(AddressBindContext context)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.EndpointsStrategy.BindAsync(AddressBindContext context)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindAsync(IServerAddressesFeature addresses, KestrelServerOptions serverOptions, ILogger logger, Func`2 createBinding)
   at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.StartAsync[TContext](IHttpApplication`1 application, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Hosting.WebHost.StartAsync(CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token, String startupMessage)
   at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token, String startupMessage)
   at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token)
2021/05/06T15:24:16.122: MessageHandler::TriggerMessageToSend: ObjectDisposedException: Cannot access a disposed object.
2021/05/06T11:57:16.122: Trace:    at MQTTnet.Internal.Disposable.ThrowIfDisposed()
   at MQTTnet.Server.MqttServer.PublishAsync(MqttApplicationMessage applicationMessage, CancellationToken cancellationToken)
   at MQTTnet.Server.MqttServerExtensions.PublishAsync(IMqttServer server, MqttApplicationMessage applicationMessage)
   at MqttServerWrapper.PublishMessage(MqttApplicationMessage msg)

The translation for the socket error in english (from spanish is: 10013: An attempt was made to access a socket in a way forbidden by its access permissions.
MqttServer calls both HandleServerStartedAsync and HandleServerStoppedAsync, which means I can't trust the started trigger to know if the Mqtt started successfully, as the stopped is called slightly after and later on it propagates to Krestel.
Krestel fail is hard to track if you want to run it on behind while you do other things, as the run task will keep going unless start fails, sigterm or crtl+c. This means you have to do some wait/timeout to ensure startup was success (I know this is on me but maybe someone gives some insight for me), I have not been able to find any good candidate for somehwat StartupFullySuccess event.
The ports I'm using currently are 9001 and 9002.
netstat -a doesn't show any process on them nor through TCPView
For now when this issue shows up the only solution I find is to reboot.
I will start using differnt ports to ensure nothing else hidden by the system on there.
Is there any way that the port will get locked somehow even if I close everyhing?

Please retest with version 4.0. You can also try to set the linger state and/or "ReuseAddress" in the server options

I have an ASP Net Core 5.0 application hosted on the server. It was working well in production, but after some time, it crashed. When I tested the same code on my local, it was working fine, but any new build was getting the same issue. Can anyone help me here? do
Unhandled exception. MQTTnet.Exceptions.MqttCommunicationException: Error while connecting with host 'Host address Name'.
---> System.Net.Sockets.SocketException (11001): No such host is known.
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
at System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|283_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
at MQTTnet.Implementations.CrossPlatformSocket.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at MQTTnet.Implementations.CrossPlatformSocket.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
at MQTTnet.Implementations.MqttTcpChannel.ConnectAsync(CancellationToken cancellationToken)
at MQTTnet.Adapter.MqttChannelAdapter.ConnectAsync(CancellationToken cancellationToken)
at MQTTnet.Client.MqttClient.ConnectAsync(MqttClientOptions options, CancellationToken cancellationToken)
at MQTTnet.Client.MqttClient.ConnectAsync(MqttClientOptions options, CancellationToken cancellationToken)
at Mqtt.Client.AspNetCore.Services.MqttClientService.StartAsync(CancellationToken cancellationToken) in C:\Project\MGMeter\MCA.Services\Services\MqttClientService.cs:line 152
at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)
at MCAPlateform.Program.Main(String[] args) in C:\Project\MGMeter\project\Program.cs:line 45


Support for Cyberpunk d10 system

Want to get support for the Cyberpunk d10 system. Roll a 10, add another d10 and stop. Roll a 1, subtract another and stop. An Add on Crit Success and Subtract on Crit Fail. I thought cs & fs could be the tags. Some GMs like to explode these, rerolling and repeating every 1/10 but this is not the official rules.

The closest I can see is cs fit Closest Success and cf for Critical Fall but all these do are highlight those rolls.
They also make variations to the standard ! by adding letters after it.  So maybe, !n3 explode but never more than 3 extra rolls; !n defaults to !n1. You could also use e for expand/extra. So d10e = d10!n
For subtractions: for implode, you could use i which looks like an upside down !. in would be the equivalent of !n but you could try f for short.

Turns out that Roll20 already use f to for failures, subtracting from the number of successes when <, = or > are used.
So I dunno ¯_(ツ)_/¯
Would like this feature though ↓
https://wiki.roll20.net/Dice_Reference#Failures_.28B.2CF.29_-_fCP_2

Failures (B,F) - fCP
Some systems build on success checks by also including failures. Failure checks only work when a success check is already being done and each failure subtracts one from the total number of successes.
Example Failure Checks
3d6>3f1 - Roll 3 d6's and count one success for each roll of 3 or higher and one failure for each 1
10d6<4f>5 - Roll 10 d6's and count one success for each roll of 4 or less and one failure for each roll of 5 or more

The implode syntax seems reasonable.
The explode-on-range is already supported via d10!9 -- chosen because d10!>9 would break the processes for any folks using d10! > 9 success comparisons. A future version of rollem may change this (while still supporting the old syntax), but first I need to add database storage to track who is using what.
Breaking it down a bit:

Add implode (min value = reroll and subtract from previous result) (d10i)
With ranges (min-value-in-range triggers implode) (d10i2)
Explosion / Implosion total restriction syntax  (d10i2n3)
Guards against "infinite rolls" (probably n is always at most 100, which should be wildly unlikely anyway)