Docstrings in help pane shown without formatting, first ctrl+i causes error "No module named 'sphinx.ext.jsmath'"

Issue Report Checklist

[x] Searched the issues page for similar reports
I'm aware of issues #15609 and #15622. This one looks very similar, except those issues are about older Spyder versions and were reported fixed years ago.
[x] Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
[x] Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
No, but via pipenv install, and via pipx, on multiple machines. The issue persists since at least December 2023.
[-] Could not reproduce inside jupyter qtconsole (if console-related)
[x] Tried basic troubleshooting (if a bug/error)

[x] Restarted Spyder
[x] Reset preferences with spyder --reset -- no, but mutliple fresh installations on different machines, including one which did not have Spyder installed previously
[-] (not using Anaconda, I use pipenv and pipx) Reinstalled the latest version of Anaconda
[-] (Found no other appliccable steps) Tried the other applicable steps from the Troubleshooting Guide

[x] Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description
There are no formatted docstrings shown in the help pane (although completion tooltips do work). Spyder reports an that sphinx.ext.jsmath was missing.
What steps reproduce the problem?

Launch Spyder 5.5.5 (probably the same for 5.5.x)
in the console, import numpy (import numpy as np) and then type np.linspace
alternatively, open any Python file, place the cursor on some item with an associated docstring and hit ctrl+I

What is the expected output? What do you see instead?
In the help pane, the docstring should be shown, in a well-formatted way, plus a tooltip with some condensed information.
Instead, an error message pops up:

The following error occurred when calling Sphinx 7.3.7.
Incompatible Sphinx version or doc string decoding failed.
Error message:
Could not import extension sphinx.ext.jsmath (exception: No module named 'sphinx.ext.jsmath')
...and the help pane shows the following text, in a fixed-width font:

Here you can get help of any object by pressing Ctrl+I in front of it, either on the Editor or the Console.

Help can also be shown automatically after writing a left parenthesis next to an object. You can activate this behavior in Preferences > Help.

Please consider installing Sphinx to get documentation rendered in rich text.

If I then type the opening parenthesis for the arguments, the help pane instead shows me the source code of np.linspace, also in fixed-width font but with syntax highlighting. This includes the call signature and raw docstring -- but that is of course not what is meant to appear there.
Paste Traceback/Error Below (if applicable)
(error message: see above)
There is no output to the internal console, or to the bash shell from which I launched Spyder, and no traceback.
 The code I write uses different venvs, per project, which might explain why import numpy works even though numpy is not installed in the virtual environment)
Things I've tried before
I've been seeing this issue since January now, and did at some point try to force installation of older sphinx versions. Unfortunately, I did not keep detailed notes, and it took me quite some time without improving the situation, so I will not try to repeat the exercise unless somebody suggests a specific sphinx version to me. I do remember that the error message was different for some versions, but I found no version which worked.
I also tried explicitly installing sphinx into the project environment (i.e. the one which runs the console), but this did not have any effect. The project environment does contain spyder_kernels, of course.

Hey @Mister-Teatime, thanks for reporting. Please install sphinxcontrib-jsmath, that should solve your problem.

Closing due to lack of response.

Apologies for not getting back in time -- life intervened, and then I remembered to come here 8 minutes after you closed it...
I manually installed sphinxcontrib-jsmath in the pipx environment. In the meantime, it had automatically upgraded to sphinx 8.0.2, I verified that sphinxcontrib-jsmath was installed, and the error was exactly the same.
I just checked one of the pipenvs which have Spyder installed (this one uses sphinx 7.2.6), verified that jsmath is already installed.... (excerpt of output from pipenv graph)
│   ├── sphinx [required: >=5, installed: 7.2.6]
│   │   ├── alabaster [required: >=0.7,<0.8, installed: 0.7.16]
│   │   ├── Babel [required: >=2.9, installed: 2.14.0]
│   │   ├── docutils [required: >=0.18.1,<0.21, installed: 0.20.1]
[...]
│   │   ├── sphinxcontrib-devhelp [required: Any, installed: 1.0.6]
│   │   ├── sphinxcontrib-htmlhelp [required: >=2.0.0, installed: 2.0.5]
│   │   ├── sphinxcontrib-jsmath [required: Any, installed: 1.0.1]
[...]

...and the issue remains the same. So sphinxcontrib-jsmath has correctly been installed in this pipenv, automatically.
I had a hunch that maybe it was somehow colliding with some non-virtualenv spyder installation, so I made sure to pip uninstall spyder, but this did not change anything, either.
Not sure where else to look, at this point. One faint idea: There is a system-wide installation of sphinx 4.3.2, installed via the package manager. This is a remainder from some time ago when I tried to install spyder via the package manager, and ran into the same issues and also manually installed python3-sphinxcontrib-jsmath (v. 1.0.1-3) along with it. Weirdly enough, the repositories for Ubuntu 22.04 don't seem to have a newer version of sphinx available -- but in order for this to matter to my virtual environments, there would need to be something wrong with those, too.
I've encountered the same issue on two different computers, via the package manager, via pipenv and via pipx: the jsmath extension is installed, yet I'm receiving this message. I've no idea where I could look for further clues -- any useful hints appreciated.

Quick follow-up:
I created a fresh pipenv:
pipenv install spyder-kernels==2.5
Creating a virtualenv for this project...
Pipfile: /<something>/testpipenv/Pipfile
Using default python from /usr/bin/python3 (3.10.12) to create virtualenv...
⠼ Creating virtual environment...created virtual environment CPython3.10.12.final.0-64 in 312ms
[...]
Virtualenv location: /home/<uname>/.local/share/virtualenvs/testpipenv-WurVFNRr
Creating a Pipfile for this project...
[...]
✔ Installation Succeeded
Pipfile.lock not found, creating...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
✔ Success!
[...]

I used the new virtualenv as the python interpreter for the spyder that lives in my pipx environment, and got the same issue as before.
Then, I installed some extra things in the new venv:
$ pipenv install numpy
$ pipenv install sphinx

Tried again, to ensure that the sphinx version in the venv is also not to blame.
(also made sure that the venv has the same sphinx version as the pipx environment which contains Spyder).
Again, no changes to the observed behaviour.
I then installed Spyder itself in the new venv, started that version, entirely within the same, new venv, using the same interpreter for the development as the one that is running spyder itself, and the result is still unchanged.
I also verified that sphinxcontrib-jsmath was in fact installed.
However, then I found the following:
In [4]: import sphinx.ext.jsmath
Traceback (most recent call last):

  Cell In[4], line 1
    import sphinx.ext.jsmath

ModuleNotFoundError: No module named 'sphinx.ext.jsmath'

In [5]: import sphinx.ext.mathjax
In [6]: sphinx.__version__
Out[6]: '8.0.2'

In [7]: from sphinxcontrib import jsmath
In [8]:

So, sphinxcontrib-jsmath is installed, and everyone confirms this. sphinx.ext.jsmath cannot be imported. sphinx.ext.mathjax has no such issues, though, and autocompletion finds a host of other things I could import from sphinx.ext if I wanted -- just jsmath is not one of them. And sphinxcontrib.jsmath does exist and can be imported.
Just for fun, I tried the same thing with the system python environment, which has sphinx 4.3.2 installed, and exactly the same happens, even though this appears to be a much older sphinx version.
What can I make of all this?
On my end, this looks as if some part of either Spyder or Sphinx did not know where to import jsmath from -- except of course I know that this can't be true because then everybody would have the same issue as I do.
The issue is however reproducible on my end, on multiple computers, on Kubuntu and Manjaro, across a pretty large range of sphinx versions.
So maybe the information above helps you have some idea about where the issue might be? I can't be the only person running spyder on Linux, and it used to work for me last year. So maybe there's something I'm doing differently on my computers than most people? I could try some other python environment manager but since even the system version on Kubuntu shows the same issue, I don't think that could explain it, either.
I guess I could try and evade the issue by creating a sneaky symbolic link to force sphinx.ext.jsmath into existence, but that looks like a very hacky approach, with the potential for intractable side effects.

==> all useful hints appreciated. There is a large amount of things I could try, or places I could look, and I'd really like to narrow down the scope a bit.

Sorry to say it, but we don't have to help users with complex setups such as yours. That's why recommend people to either use Anaconda or install Spyder in a virtualenv.
In Spyder 6 we'll even provide our own Linux installer. That'd be the simplest way to install Spyder and avoid these headaches. Afterwards, you only need to connect that installation to the env you want to work on by following these instructions:
http://docs.spyder-ide.org/current/faq.html#using-existing-environment

Closing due to lack of response.

Would you mind taking another look? Added some more detail.

I know you added more details, that's why I posted an additional comment in https://github.com/spyder-ide/spyder/issues/22282#issuecomment-2299226197.
So, we can't offer you additional support because you're using a complex Python setup that we don't endorse. We're a very small team and don't have time to help users with those setups, sorry.

Just upgraded to Spyder 6.0.0 (via pipx), and after also updating the spyder-kernels package in the project environment, sphinx is working as expected again, and I see docstrings rendered as expected.
I'd still like to know what on earth was going wrong before, but (at least on one of the two machines...) the issue is resolved now.

I think this problem was solved by https://github.com/spyder-ide/spyder/pull/21518, only fixed in Spyder 6.


LightGBMRegressor on DataBricks uses only 1 worker

Hi! Can you help me? I try to fit lightgbm model on DataBricks cluster and can't understand why lightgbm don't using all resources of my cluster.
I am runing this code:
import mmlspark
import pyspark.ml.feature as ft
from mmlspark import LightGBMRegressor
from pyspark.ml import Pipeline

sql_template = """
select
  *
from
  schema.table
"""

df = spark.sql(sql_template).persist()

featuresCreator = ft.VectorAssembler(inputCols=[col for col in df.columns if col != "label"], outputCol='features', handleInvalid='keep')

model = LightGBMRegressor(boostingType='dart',
                          objective='tweedie',
                          maxBin=512,
                          numIterations=1000,
                          learningRate=0.2,
                          numLeaves=64,
                          featureFraction=0.3,
                          baggingFraction=0.3,
                          timeout=1200.,
                          parallelism="voting_parallel",
                          verbosity = 2
                         )

model.setCategoricalSlotNames(['a', 'b', 'c'])

model.setLabelCol('label')
pipeline = Pipeline(stages=[featuresCreator, model])
result = pipeline.fit(df)

On this cluster:

Expected behavior
I expected that lightgbm will use all cluster, but it created only 1 task on 1 worker.

Info (please complete the following information):

MMLSpark Version: Azure:mmlspark:0.17
Spark Version: 2.4.3
Spark Platform: Databricks

@bagmanas hi, sorry about the trouble you are having, this is unexpected.  How many partitions does the dataset have? eg:
df.rdd.getNumPartitions()

also, can you please try out the latest 1.0-rc version?


'latest' page on the web site is TERRIBLY out-of-date

Don't know if this is something for @mattben or @japamment, but I have followed a latest link found on Google, and landed on: http://cfconventions.org/latest.html
This links to v27 of Standard Names Table, when the actual latest version is v50. I have not checked if the other links on the latest page were better
As you can see below, I was looking for something pretty straightforward!

I'm more than willing to contribute to the project again, feel free to assign me issues if you need any help with the web work.

Thanks for the offer of help - much appreciated. In fact I'm pretty tied up dealing with new standard names just now so please could you look at fixing the link? The one in my previous message should always point to the latest version.

Congratulations on your amazing response time! I was not sure where I should report the problem, and I have therefore also just created #58

The page no longer seems to be "terribly out of date", so perhaps this issue can be closed?

You are correct, and I'm closing the issue
I have spotted a slightly related error when following the links, described in #66


Feature: Adjust spacing

What feature or improvement do you think would benefit Files?
The distance between rows and columns is very high. Can this be reduced, e.g. from 1.0 to 0.5?
Requirements

This proposal will accomplish X
This proposal will accomplish Y
This proposal will accomplish Z

Files Version
<IP_ADDRESS>
Windows Version
22631.3958
Comments
No response

@BerndFC you can adjust spacing from the layout picker.

Oh yes, great! I used this on ICON size, but did not recognize that it works also on detailed view line spacing.
Perfect!
Von: Yair @.>
Gesendet: Freitag, 9. August 2024 16:45
An: files-community/Files @.>
Cc: Bernd Fleckenstein @.>; Mention @.>
Betreff: Re: [files-community/Files] Feature: Adjust spacing (Issue #15979)
@BerndFChttps://github.com/BerndFC you can adjust spacing from the layout picker.
image.png (view on web)https://github.com/user-attachments/assets/eba8318f-6d33-47b5-86b4-240dc1a8d993
—
Reply to this email directly, view it on GitHubhttps://github.com/files-community/Files/issues/15979#issuecomment-2278114357, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BKNUFBZALVZMA45MMR3BY2LZQTIVFAVCNFSM6AAAAABMIRH62OVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZYGEYTIMZVG4.
You are receiving this because you were mentioned.Message ID: @.***>

@BerndFC thanks for confirming.


Correct URL for mailing list. Fixes https://github.com/chaoss/wg-evol…

Correct URL for mailing list. Fixes #415 .

Thank you!!


source_policy_documents variable being ignored

Describe the Bug
The source_policy_documents variable is ignored since it's referencing an undefined local.source_policy_documents variable.
Expected Behavior
Final aws_s3_bucket_policy should have the override_policy_documents.
Steps to Reproduce
data "aws_iam_policy_document" "override" {
  statement {
    sid = "SidToOverride"

    actions   = ["s3:*"]
    resources = ["*"]
  }
}

module "s3_bucket_test_source_policy_documents" {
  source  = "cloudposse/s3-bucket/aws"
  version = "0.49.0"

  name                         = "test_source_policy_documents"
  acl                          = "private"
  enabled                      = true
  versioning_enabled           = false
  allow_encrypted_uploads_only = false
  allow_ssl_requests_only      = false

  block_public_acls       = false
  block_public_policy     = false
  ignore_public_acls      = false
  restrict_public_buckets = false

  source_policy_documents = [data.aws_iam_policy_document.override.json]
}

Generated plan didn't contain the override policy document.
Additional Context
Seems to be similar with https://github.com/cloudposse/terraform-aws-s3-bucket/issues/145

the local is actually defined in a different place:
https://github.com/cloudposse/terraform-aws-s3-bucket/blob/master/variables.tf#L35


Add henchmen specializations

Fixes #83 by adding initial support for henchmen specializations, starting with soldiers.

Remaining to-do items:

Add support for the new command to wmd-ai
Update attack calculations for the soldier specialization (may defer to a new pull request)


9FUSY32*** works?

Hi, @roleoroleo !
I bougth recently my second cam:
Yi Home Camera 3 (1080)
DID: 9FUSY32C2GNT****
S/N: 9Y25GA
Date: 2020.06

I tryed to hack with 8.3.0 (y25ga)* and 8.2.0 (y20ga) without succesfuly (reboot -> blink orange -> "waiting to connect").
There are the hacks for this camera?
Regards!!!

It should be a 8.3.0


Tool to convert Hive tables into hoodie dataset

Look at HoodieDataImporter --source-type. Currently it supports "hdfs" (reading from parquet files as is). Scope for this bug is to implement "hive" [source-type] to read from registered hive tables using HiveContext.

Is this work in progress, how soon would we see a PR?

(parquet files) -> hoodie dataset tool is available. I think no one is working on (hive table) -> (hoodie table) yet.

@HenryCaiHaiying ultimately, like to get the spark datasource done, (with working Hive registration if possible).. Then this functionality  should be just spark.table('sourcetable').write.format('hoodie).save hopefully.
Currently, feel like we are writing a lot of silo tools. :)

Moved to https://issues.apache.org/jira/browse/HUDI-54


Get deep features for sound should be a util?

Should we make the get_deep_features for sound in the util namespace?

I don't really see us adding any additional functions/classes anywhere under tc.sound_classifier. So I think it would be strange to have a tc.sound_classifier.util that only ever has one thing in it. Also putting it under tc.sound_classifier.util would decrease its discoverability.


FIX: Error during version check trying to access read-only file systems

Adds a bugfix and a test-case. Close #1777.

Okay, it seems #1836 consistently fixed the failing build_docs. The tests are run and functioning as expected. Merging.


⚠ Bofrost.fr has degraded performance

In 1132bda, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1182 ms

Resolved: Bofrost.fr performance has improved in 462a9d4 after 6 minutes.


Migrate Data FixedIcons to Safe-react repo

FixedIcons are for Safe-react UI.

@alongoni I don't remember the motivation for this ticket. do you? Otherwise I would close it

Not relevant anymore after the components migration


Cycle forward

Right now I can only cycle the history backwards, is there a way I could move forward from the current yank?. YankRing has this feature.

Typing g- does this for some reason, I can't figure out what it's really doing. And, you can't cycle back, then forwards, then back again. Once you hit g- (can use multiple times) you can't cycle back again.


fix(catalog): Mini catalog is taking a long time to load

Fixes: #1269
Draft - Hopefully someone find if I'm going wrong direction while I'm off tomorrow :smile:

With this change, only the first attempt to open a mini catalog fetch it from backend, but the following just uses the cached catalog in the stepCatalogStore, which is cleared if DSL type is changed.

Ugh I didn't meant to merge until it gets reviewed :sweat_smile:


1020 041222 rebase on upstream

Seems we're using upstream anyway. At some point though if we come back to this branch, we need to fix it.

@rfrandse Do you think we can get this merged. I think we can ignore the merge conflicts and just with the rebase on to upstream?

@aahmed-2 Is there a need to pull Telemetry downstream at this point? Right now we're just using upstream.

Yes - we need to change a build option for Metric Report build limit from upstream from 25  to 18000 or so. @geissonator
Sensors team on append limit:
"but 256 is laughably low"
HMC team:
"It looks like for AppendLimit one uses 17280 and the others 512."
I would rather get ahead on users using up to 20000 reading appends to make sure there are no bugs.


Add link to meilisearch's main repo in the issue template

Pull Request
What does this PR do?
Add a link to the main repo of Meilisearch in the github issue template

bors merge


Solar return with house system other than default

We can create a chart using any house system, but it seems that solar return will always return chart using default house system, which is incorrect.
Maybe solar return should use self.hsys and self.IDs when creating solar return chart?

Maybe solar return should use self.hsys and self.IDs when creating solar return chart?

You're right, at least it should reuse self.hsys while creating a new chart.

Fixed in 2c4f6289019d4cab806718fc5f3f7112d87dbf19


Add Clinic level to app.

Add a new level, "Clinic" All users, Organizations, Referring-Entity, visits, treating-Practitioners are separate for each clinic.
A Clinic can have multiple users.
What do we do with URL's Should we get a domain?
Users do not have access to /admin.
/Admin will be only for developers.

A clinic may have multiple users, but a user is only associated to one clinic, right?
Also, creating a regular user will not enable him/her to access admin, only superusers (created via manage.py).

Yes

Should Clinic become a subclass of TrackedModel? (that means tracking the creation/modification date)

@pedro-walter TrackedModel, yes. in part because at some point I will be charging for access to the service.

Sorry for taking so long. We will need to be careful on the migration, but we should be fine.


how can i creat a function to send a active message, and the ding-dong-bot also is running

the new function  can send a message when i use it.such as i use the flask build a get port，https://****/sendmessage，when i request the port ,the bot can send a message to my friend.I don't know how to realize the function.

There is the duplicated issue, please refer to https://github.com/wechaty/python-wechaty/issues/224
hope that can help you fix your problem.


How do I disable a field?

Hi,
I've got some fields that I want to set to disabled however I can only seem to find references to readonly.
Is there a way to disable form fields?
Thanks

@marmite22 the readonly flag actually sets the field to disabled, it was like that when I started working on it. Something I hope to correct at some point when I get past other priorities.
Please re-open if you do not feel the question has been answered sufficiently.

@Anthropic any plans to revisit that and make readonly mean readonly instead of disabled?
one annoyance of readonly mapping to disabled involves trying to add copy to clipboard support for a read only field.  straightforward (https://www.w3schools.com/howto/howto_js_copy_clipboard.asp) JS techniques of copying an input or textarea to the clipboard work fine for readonly inputs/textareas but not for disabled ones.  instead i'm using the technique of https://stackoverflow.com/questions/22581345/click-button-copy-to-clipboard-using-jquery/22581382 to copy the disabled items to non-disabled, off the screen elements, then copying them.


[WIP] Add default kube config location

kubenetes.config.load_config needs the location of config file to load it. We can set the location to the default location of ~/.kube/config. This will work on linux/mac but I am not sure it works in windows. Until I figure that out, this PR is work in progress.

Current coverage is 93.29% (diff: 42.85%)

Merging #64 into master will decrease coverage by 0.61%

@@             master        #64   diff @@
==========================================
  Files             9          9
  Lines           592        597     +5
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            556        557     +1
- Misses           36         40     +4
  Partials          0          0

Powered by Codecov. Last update be854fe...8125e3d


run: --debug flag caused a panic with the Uncompress progress bar

The recent refactor resulted in the registry being correctly passed the
debug value, which exposed an issue with an additional progress bar that
was being drawn when uncompressing a dependency.
The panic was a combination of the logic drawing the bar passing the
ioprogress library a number that was too small for the total size, and
the ioprogress library not having a patch to be able to handle incorrect
numbers.
This commit removes the uncompressing bar, and updates the ioprogress
library.
Fixes https://github.com/appc/acbuild/issues/56

LGTM


[SPARK-25609][TESTS] Reduce time of test for SPARK-22226

What changes were proposed in this pull request?
The PR changes the test introduced for SPARK-22226, so that we don't run analysis and optimization on the plan. The scope of the test is code generation and running the above mentioned operation is expensive and useless for the test.
The UT was also moved to the CodeGenerationSuite which is a better place given the scope of the test.
How was this patch tested?
running the UT before SPARK-22226 fails, after it passes. The execution time is about 50% the original one. On my laptop this means that the test now runs in about 23 seconds (instead of 50 seconds).

Test build #96941 has started for PR 22629 at commit 2cdb7e4.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/3679/
Test PASSed.

Test build #96941 has finished for PR 22629 at commit 2cdb7e4.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/96941/
Test PASSed.


Split Organization API and Security API group out of apiextensions

Continuation of https://github.com/giantswarm/giantswarm/issues/19586
This change allows us to update dependencies more freely (no more syncronizing with cluster-api version used by apiextensions). It also aligns this operator with the new structure which is closer to the kubebuilder default.
I will make the PR to apiextensions removing this API there and pulling in the CRD after this is merged.
Checklist

[x] Update changelog in CHANGELOG.md.

Tested on galaxy. Found an issue with companyd missing, but it isn't related and doesn't seem to affect execution.

As I noticed now, this was missing the CR example. Let's not forget that one in similar future migrations.


WebAuthnAuthenticatorManager and persistent storage

Is there any recommendation regarding WebAuthnAuthenticatorManager storage (e.g. in JDBC?).
It would very helpful if the projects provide a default (or sample) implementation (e.g. in JDBC).

Since its design varies by use-cases, we couldn't provide a default implementation, but instead, we provides a sample implementation with JPA:
https://github.com/webauthn4j/webauthn4j-spring-security/blob/master/samples/spa/src/main/java/com/webauthn4j/springframework/security/webauthn/sample/domain/component/AuthenticatorManagerImpl.java
https://github.com/webauthn4j/webauthn4j-spring-security/blob/master/samples/spa/src/main/java/com/webauthn4j/springframework/security/webauthn/sample/domain/repository/AuthenticatorEntityRepository.java


cannot find -lfmodL ... cannot find -lfmodstudioL

Hello
I found a way to compile ue4 plugins by this tuto https://youtu.be/kZqVeD_r0Ow

create c++
compile plugin
.../GenerateProjectFiles.sh TestProject.uproject
make TestProjectEditor
log
https://hastebin.com/esepudiguf.md
Give me an adwice, what i need to install, or something else?

The libs are not included in this repository, you will have to download them separately from https://fmod.com/download


Bumped production release number for 1.30

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/unhold
/approved

/lgtm

/approved

/approved


Install fails on Debian Buster

After following the guide, I couldn't install the requirements with python3 -m pip install -r requirements.txt. Here's the output: roxbot-log.txt
I also found this in Debian's bug tracker.

This is a known bug. Remove dataset from the requirements.txt file. It's not even the orm I went with in the end so not only is it useless it kinda breaks installing this version of roxbot. Fixed in the next patch as well.


Update libraries

This change allows binocle to work on my system. Before it was crashing with
[2023-10-28T12:55:23Z WARN  wgpu_hal::vulkan::instance] \
  create_instance: VkError(ERROR_INCOMPATIBLE_DRIVER)
Error: No suitable `wgpu::Adapter` found.

Based off of https://github.com/parasyte/pixels/tree/main/examples/minimal-egui/src

Thank you. The builds are currently failing. Any chance you could have a look?

I fixed the formatting now but I don't understand the build error for CICD / x86_64-pc-windows-gnu (windows-2019)


Supporting polymer webcomponents

Can we use mincer to manage web components? The documentation only mentions CSS and JS files. If I need to modify mincer to support webcomponents and to bundle them using vulcanize can you give some pointers on how to proceed? Thanks.

No ideas. Never used polymer.


fixed deprecated buffer.from

Closes #5198
Updated the deprecated package.

@Junko-Takeguchi you need to add news entry otherwise the pull request fails, see other pull requests on how todo it

@ichim-david thanks for the help


US887111: Accept ignore version config in file

https://internal.almoctane.com/ui/entity-navigation?p=131002/6001&entityType=work_item&id=887111

A developer build has not yet been created for this branch. Click here to go ahead and create the build...

CI Build Link:
https://sou-jenkins2.swinfra.net/job/CAFapi/job/CAFapi~docker-versions-maven-plugin~US887111~CI


Why is accept hard coded? Can it be changed to / until a better solution is created?

Description
const headers = Object.entries({
	Accept: 'application/json',
	...additionalHeaders,
	...options.headers,
})

Why is it hard coded to application/json wouldnt */* be better?
OpenAPI specification (optional)
No response
Configuration
N/A All of them do it
System information (optional)
No response

What's the use case @PaulDotmatics?

My current use case is im calling an api that requires accept: application/octet-stream and if I send JSON it says unsupported because im telling it my client only supports application/json.
Seems that openapi-ts can support application/octet-stream in content type but not in accept.

Have you looked at the new Fetch API client? You should be able to send any request with it

I have and it doesnt help me because it would change all my code too much

Can you elaborate on what kind of changes would be required? You could always generate a separate client and migrate gradually instead of doing everything in one go

Issue is that generator doesn't take into account open api response content type.


Update examples for v0.5

Summary
Some of the examples were not compatible with qiskit-terra 0.5+. This PR updates them.
Details and comments
Some things that needed updating:

Remove use of quantum program
Async execution (job)
Coupling map list, not dict

@diego-plan9 the examples right now are really out of date so i think we should merge. Solving #671 should be done independently as it not only affects the examples, but a bunch of other user code as well. Basically i think they are independent.
@jaygambetta I think each example should illustrate one aspect of qiskit. To me, this is what each example brings to the table:

hello_quantum: most basic usage of qiskit
using_qiskit_level_0: wrapper functions
using_qiskit_level_1: compile and run functions
using_qiskit_level_2: transpiler internals
teleport: classical feedback
initialize: using the quantum initializer (custom gates in general)
visualizing_circuits: drawing
load_qasm: loading and processing a circuit from qasm text
qft: variable custom gates (n-qubit qft where you can set n to anything)

We can continue to expand these to illustrate other features.
These ones I agree don't add much and can probably be deleted:

ghz
basic_optimize
rippleadd

@diego-plan9 the examples right now are really out of date so i think we should merge. Solving #671 should be done independently as it not only affects the examples, but a bunch of other user code as well. Basically i think they are independent.

Thanks! Yes, it definitively seems they can be independent. Merging in order to have a much needed update of the examples, in the hopes the conversation about the next steps with @jaygambetta can be continued either in this PR on in a new issue.


docs: fix typo in low_level.md

replace add_edge by add_conditional_edges
fix a mistake

@arthberman great catch, thanks!


Update: SparkleShare.SparkleShare version 1.5.0

[X] Have you signed the Contributor License Agreement?
[X] Have you checked that there aren't other open pull requests for the same manifest update/change?

[X] Does your manifest conform to the 1.0 schema?

Microsoft Reviewers: Open in CodeFlow

BitBucket link found at https://www.sparkleshare.org/, the v1.5 url found at https://bitbucket.org/hbons/sparkleshare/downloads/

@wingetbot waivers Add Validation-Domain


Fix invalid keyword argument error when requesting a list from Stripe

Description
Removed the kwargs decorator (double asterisks) from the params argument sent to StripeObject._request in the new_list method that overrides Stripe's ListObject.list method. This was causing an "invalid keyword argument 'limit'" when running the Mage Stripe source ingestion block.
How Has This Been Tested?
Spot tested locally (since this is a minor change [two characters] and there is no current tests for mage_integrations.sources.stripe.
Steps to reproduce test:

Open python in a terminal
Copy and paste imports, new_list definition, and ListObject.list = new_list statements into terminal
Make a list call to a Stripe endpoint like stripe.Customer.list(api_key="<insert_api_key>", limit=100)
Call should return successfully

Checklist

[ ] The PR is tagged with proper labels (bug, enhancement, feature, documentation)
[x] I have performed a self-review of my own code
[ ] I have added unit tests that prove my fix is effective or that my feature works
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation

cc:
@wangxiaoyou1993, @dy46, @johnson-mage, @tommydangerous

If I get some spare cycles, I'll work on writing unit tests for the whole module.

Hi @jdvermeire , could you fix the errors in the code quality check?
You can also install pre-commit hook locally: https://github.com/mage-ai/mage-ai/blob/master/README_dev.md

@wangxiaoyou1993 Fixed formatting, spelling, and grammatical errors.


Try with 0 as invalid width

Changes Unknown when pulling 9d0e3170388003895d9ca6ec823fb685e2fd2c12 on fix-yapf into ** on master**.


try netlify redirect

Current dependencies on/for this PR:

main

PR #92   👈

This stack of pull requests is managed by Graphite.


Custom Dockerfile / Docker images

It would be nice if you could specify a starting docker image instead of dependencies and system_packages in the cog.yaml.  That would be helpful for use cases where you have your own build process that produces an image you want to use, but you're still interested in using cog for everything else it provides.

👍 We have been thinking of some escape route. Some ideas:

Some way of using the predictor/HTTP server/queue worker independently
Some way to "eject" the Dockerfile so you can do it all yourself
Some way of specifying your own image/Dockerfile in cog.yaml

The risk is things breaking in weird ways because the base image isn't quite what Cog expects, so it'll need some big "you better know what you're doing if you touch this!" warnings.
Out of interest – what things do you want from Cog on your own images? Is it just the predictor/HTTP server/queue worker, or is the CLI and some other things too?

Makes sense! One thing that occurs is if the output of the generator was a "Dockerfile.lock", like poetry.lock or equivalent. Then it would be relatively straightforward to run the build once and add some custom logic to the generated Dockerfile rather than saying "I promise this image has the same starting dependencies." That said, I'd be happy with "supply your starting image, it'd better be like either python or cuda-XX" too.
I am not sure which pieces are best for me, since I haven't been able to adopt it for my real use cases yet without having more control over the build, but a few things are big draws:

the builtin queuing without sacrificing the ability to locally use http (and not having to write that custom over and over again)
the CLI syntax for prediction -- not that I'd be too put out using the same syntax without the cog sugar, I just like the interface's handling of paths and such

Wondering if this ever went anywhere? Looking to cog'ify a nerfstudio image that has an existing docker file and wondering if I'm just reproducing existing work


Export VoteOption (GovMsg)

rel #1014

Do you need this patch in a 0.15.x patch release? Or is a 0.16 RC release sufficient?

@webmaster128  0.16 RC is sufficient

This is now available in both 0.15.2 (we did it after all) and 0.16.0-rc3


Use params passed into HubConnectionBuilder (#2223)

Issue: https://github.com/aspnet/SignalR/issues/2219

You should get at least one person to review it

This is just the merge to dev right?

Yeah

This was shiproom approved for RTM yesterday


[BUG] Support revert message log when the Dapp utilizes custom errors

Describe the bug
W3bstream logs currently only display standard revert messages when a proof submission to the blockchain fails. If the Dapp uses Solidity custom errors for reverting transactions, the W3bstream logs only indicate that the transaction simulation failed with error 106, without showing the specific custom error details.
Expected behavior
The ioctl ws message query should return the custom error message when a blockchain transaction reverts using a Solidity custom error.
More context
Tx errors are currently catched with
catch Error(string memory revertReason) {
            emit DataProcessed(_projectId, _proverId, msg.sender, false, revertReason);
        }
    }

which cannot catch a custom error, but only standard reverts.
The correct way to catch a custom error seems to be something like:
catch (bytes memory reason) {
    bytes4 expectedSelector = PathRegistry.InsufficientAmountOut.selector;
    bytes4 receivedSelector = bytes4(reason);
    assertEq(expectedSelector, receivedSelector);
}

@simonerom  Thanks for report. I have fixed use bytes message. The PR is #636


[Bug]  peak_detection without analogsignals.times

Describe the bug
Hello. After acquired data with an Intan, I would like to use Elephant for the first treatment of these.
In this way, I would like to fill the spiketrain object of neo using the spike_extraction method of elephant, which is empty after the acquisition. Then I could realize the spike sorting.
However, Elephant require a list "analogsinal.times" which does not exist in the obect analogsignals of neo.
How the method is supposed to work?
To Reproduce
1.
2.
Traceback (most recent call last):
File ~\anaconda3\lib\site-packages\spyder_kernels\py3compat.py:356 in compat_exec
exec(code, globals, locals)
File c:\users\clement\desktop\analysis_data\testephy_3.py:63
event = elephant.spike_train_generation.peak_detection(signal_highpassed[0],threshold=-40 * uV, sign="below")
File ~\anaconda3\lib\site-packages\elephant\spike_train_generation.py:321 in peak_detection
result_st = neo.SpikeTrain(events_base, units=signal.times.units,
AttributeError: 'Quantity' object has no attribute 'times'
Expected behavior
I expect that the spike_extraction method put all the spike events in the spiketrains obect.
Environment

Windows 11
How you installed elephant : pip
Python version: 3.10
neo python package version: 0.12.0
elephant python package version: 1.0.0
(Any additional python package you want to include here)

Hi Samcrl0,
thank you for reaching out to us !
The Neo AnalogSignal class implements a times property, as one can see by inspecting the source code at https://github.com/NeuralEnsemble/python-neo/blob/4ef280130be875263878d5e55dbf7ee40f950c9b/neo/core/analogsignal.py#L387. So the case where a Neo AnalogSignal has no times attribute should be impossible.
It looks like the issue is related to signal_highpassed, which appears to be a list of quantity arrays based on the traceback.
To address this, you can verify if the type of signal_highpassed[0] is a Neo AnalogSignal with:
print(type(signal_highpassed[0]))

If not, you might try to create a Neo AnalogSignal from a Quantity array by following the instructions outlined in the Neo documentation here: https://neo.readthedocs.io/en/latest/api_reference.html#neo.core.AnalogSignal
The peak_detection function in Elephant is designed to operate as you explained: It accepts a Neo AnalogSignal as input and outputs a Neo SpikeTrain.
Consider the following example:
from neo.core import AnalogSignal
import quantities as pq
from elephant.spike_train_generation import peak_detection

# Create a Neo AnalogSignal
analogsignal = AnalogSignal([1, 2, 3], units='V', sampling_rate=1*pq.Hz)

# Use peak_detection function from Elephant
result = peak_detection(analogsignal)

# Check if result is a SpikeTrain
print(type(result))

For me this returns:
<class 'neo.core.spiketrain.SpikeTrain'>

Hi Moritz-Alexander-Kern,
Thank you for your answers, it helped me to resolve the issue. However, I get new ones:
Applying this:
signals = data[0].segments[0].analogsignals[0]
signal_highpassed=elephant.signal_processing.butter(signals, highpass_frequency=250 *Hz, sampling_frequency=30000)
event = elephant.spike_train_generation.peak_detection(signal_highpassed,threshold=-40 * uV, sign="below")

where event is :
<class 'neo.core.spiketrain.SpikeTrain'>

I get the peak times in the variable event. But it is a 1-dimensional array, which show all the peak times of all my 16 electrode, I think.
print(event)
[2.26666667e-03 2.91333333e-02 6.50066667e-01 ... 2.99976133e+02
 2.99976200e+02 3.00002100e+02] s

What I expected to obtain was a 2-dimensional object with each spike times for each electrode.
Is it possible to get it?
In another side, I tryed the function peak_extraction :
event = elephant.spike_train_generation.spike_extraction(signal_highpassed,threshold= -40 *uV, sign = "below")

but here is the error message:

  Cell In[10], line 1
    event = elephant.spike_train_generation.spike_extraction(signal_highpassed,threshold= -40 *uV, sign = "below")

  File ~\anaconda3\lib\site-packages\elephant\spike_train_generation.py:179 in spike_extraction
    waveforms = waveforms[:, np.newaxis, :]

  File ~\anaconda3\lib\site-packages\quantities\quantity.py:394 in __getitem__
    ret = super().__getitem__(key)

IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed

I do not know what to put for the time_stamp argument in order to have the waveform. I tryed a lot of thing, but I never succeeded.
Do you have some advices, please?

Hi @Samcrl0 ,

What I expected to obtain was a 2-dimensional object with each spike times for each electrode.
Is it possible to get it?

Yes, for example by using a for loop and apply peak_detection on the signal from every electrode individually:
from neo.core import AnalogSignal
import quantities as pq
from elephant.spike_train_generation import peak_detection

# Create a Neo AnalogSignal with one electrode
analogsignal_1_electrode = AnalogSignal([0, 1, 0, 2, 0, 1, 0], units=pq.V, sampling_rate=1*pq.Hz)

# Use peak_detection function from Elephant
result_1_electrode = peak_detection(analogsignal_1_electrode)

# Check result
print(f"Signal 1 electrode: {analogsignal_1_electrode}")
print(f"Result with 1 electrode: {result_1_electrode}")

# Create a Neo AnalogSignal with 2 electrodes
analogsignal_2_electrodes = AnalogSignal([[0, 1, 0, 1, 0, 1, 0],
                                          [1, 0, 1, 0, 1, 0, 1]], units=pq.V, sampling_rate=1*pq.Hz)

# Use peak_detection function from Elephant
result_2_electrodes = peak_detection(analogsignal_2_electrodes)

# Check result
print(f"Signal with 2 electrodes: {analogsignal_2_electrodes}")
print(f"Result on 2 electrodes: {result_2_electrodes}")

print("Use peak_detection on single electrodes with for-loop")
results = []
for idx, signal in enumerate(analogsignal_2_electrodes):
    print(f"Signal {idx}: {signal}")
    # Create AnalogSignal
    signal = AnalogSignal(signal, sampling_rate=analogsignal_2_electrodes.sampling_rate)
    # Use peak_detection
    result = peak_detection(signal)
    print(f"Result {idx}: {result}")
    # Append result to results list
    results.append(result)

print(f"Final result: {results}")

Which yields:
Signal 1 electrode: [0, 1, 0, 2, 0, 1, 0] V
Result with 1 electrode: [1. 3.  3. 5.] s
Signal 1: [1 0 1 0 1 0 1] V
Result 1: [0. 2. 4. 6.] s
Final result: [<SpikeTrain(array([1., 3., 5.]) * s, [0.0 s, 7.0 s])>, <SpikeTrain(array([0., 2., 4., 6.]) * s, [0.0 s, 7.0 s])>]

The final result is a list with 2 Neo SpikeTrain objects containing the events for each electrode respectively.

The spike_extraction function also requires an AnalogSignal as input, see:
from neo.core import AnalogSignal
import quantities as pq
from elephant.spike_train_generation import spike_extraction

# Create a Neo AnalogSignal with one electrode
analogsignal_1_electrode = AnalogSignal([0, 1, 0, 2, 0, 1, 0], units=pq.V, sampling_rate=1*pq.Hz)

# Use spike_extraction function from Elephant
result_1_electrode = spike_extraction(analogsignal_1_electrode, interval=(-1 * pq.s, 2 * pq.s))

# Check result
print(f"Signal electrode: {analogsignal_1_electrode}")
print(f"Events: {result_1_electrode}")
print(f"Waveforms: {result_1_electrode.waveforms}")

Which yields:
Signal electrode: [[0]
 [1]
 [0]
 [2]
 [0]
 [1]
 [0]] V
Events: [1. 3. 5.] s
Waveforms: [[[[0.]
   [1.]
   [0.]]]

 [[[0.]
   [2.]
   [0.]]]

 [[[0.]
   [1.]
   [0.]]]] V
``

This seems similar to the first post, here `signal_highpassed`, is maybe also a list of quantity arrays based on the trace back ?


[Parse Error] - Morior Invictus

Parse Error
Morior Invictus
Item Text
Morior Invictus, https://imgur.com/a/vhAAT2w

Can be copied with ctrl+shift+c
Can also be copied from below the error message

Item Class: Body Armours
Rarity: Unique
Morior Invictus
Grand Regalia
--------
Quality: +20% (augmented)
Armour: 556 (augmented)
Evasion Rating: 506 (augmented)
Energy Shield: 189 (augmented)
--------
Requirements:
Level: 65
Str: 51
Dex: 51
Int: 51
--------
Sockets: S S S S
--------
Item Level: 82
--------
243% increased Armour, Evasion and Energy Shield
5% increased Attributes per Socketed Rune or Soul Core
+11 to Spirit per Socketed Rune or Soul Core
--------
The Unblinking Eye did not cower and wail.
They stood against the end.
--------
Corrupted

wait how does this have 4 sockets? can you double corrupt to get 2 extra?

Its unique with 4 sockets in base and can get 5 from corrupt, also Tabula Rasa has 5 sockets in base with 6 from corruption

Ahh I see. well that is certainly an interesting unique

Uniques should now be working, I'll close this in a day or two if there are no reports of this specific one not working

This one also isn't working still. I'll look into this further soon


ISS-191

Adds /transitions-extended/ endpoint, which combines the BlsOes and OccupationTransitions models to return a response in the following format, given soc, area_title, and min_transition_probability

            {source_soc: {
                source_soc_area_title:
                ...
                source_soc_file_year: },
            transition_rows: [
                {"id": 36636,
                "soc1": "15-1131",
                "soc2": "11-9031",
                "total_soc": 533764,
                "pi": "0.0000773092",
                "occleaveshare": "0.2133103000"
                "soc2_area_title": "Abilene, TX",
                "soc2_soc_code": "53-7064",
                "soc2_soc_title": "Packers and Packagers, Hand",
                "soc2_hourly_mean_wage": "9.59",
                ...
                "soc2_file_year": 2019 },
                {...additional rows/results}
                ]
            }

Sample endpoint showing query parameters: http://<IP_ADDRESS>:8000/api/v1/jobs/transitions-extended/?soc=15-1131&min_transition_probability=0.01&area_title=U.S.
Documented in the swagger base endpoint (http://<IP_ADDRESS>:8000/ when running server locally)

Removes an unused ViewSet + endpoint

This looks good. Merging:
WARNINGS:
?: (rest_framework.W001) You have specified a default PAGE_SIZE pagination rest_framework setting,without specifying also a DEFAULT_PAGINATION_CLASS.
HINT: The default for DEFAULT_PAGINATION_CLASS is None. In previous versions this was PageNumberPagination. If you wish to define PAGE_SIZE globally whilst defining pagination_class on a per-view basis you may silence this check.
System check identified 1 issue (0 silenced).
...
Ran 3 tests in 0.097s
OK
Destroying test database for alias 'default'...


resolve secret mismatch between repository and flux expectations

At the moment the secret that is expected to exist needs to contain username and token as the data keys, whereas Flux expects username and password: https://fluxcd.io/flux/components/source/gitrepositories/#basic-access-authentication.
This PR should bring them into alignment for basic auth.

Sounds good to me. Yeah, this is a weird practice that the token is called password. :) But it is how it is. :)

We'll have to update all the examples and docs. @jmickey


Fixes for godot4 rc3

Fixes to make Qodot work on Godot4 rc3

Confirming that with this PR Qodot is working on release Godot 4.

seconding that confirmation

might actually not be working as well as I thought. I've been working on a fresh project using it and I'm encountering an error.

not sure what's up with this one or why I didn't see (or maybe just didn't notice) it in my other project. gonna look into it some more.

I suppose it's all working now after a few godot restarts. getting some other errors, but I'm not sure what they're all about

Running my project on 4.0 stable with these fixes solves most errors. This is enough for RC3.
However QuakeWadImportPlugin.cs still has some errors on 4.0 stable, and this is the only thing (afaik) preventing the plugin from running on stable.

This is maybe best suited for another PR, but if someone can provide a fix for these CSharp errors that'd be great, C# is not my wheelhouse and I'm still recovering my hands. @EMBYRDEV said she'd take care of fixes, but if someone else really wants to swoop in right now just be sure to let all of us know explicitly that you're doing it.

The errors:
error,C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\addons\qodot\src\import_plugins\QuakeWadImportPlugin.cs,81,36,CS0115,"'QuakeWadImportPlugin._GetImportOptions(string, long)': no suitable method found to override",C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\csharptest.csproj
error,C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\addons\qodot\src\import_plugins\QuakeWadImportPlugin.cs,97,23,CS0508,'QuakeWadImportPlugin._GetPresetCount()': return type must be 'int' to match overridden member 'EditorImportPlugin._GetPresetCount()',C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\csharptest.csproj
error,C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\addons\qodot\src\import_plugins\QuakeWadImportPlugin.cs,102,23,CS0508,'QuakeWadImportPlugin._GetImportOrder()': return type must be 'int' to match overridden member 'EditorImportPlugin._GetImportOrder()',C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\csharptest.csproj
error,C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\addons\qodot\src\import_plugins\QuakeWadImportPlugin.cs,107,25,CS0508,'QuakeWadImportPlugin._GetPriority()': return type must be 'float' to match overridden member 'EditorImportPlugin._GetPriority()',C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\csharptest.csproj
error,C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\addons\qodot\src\import_plugins\QuakeWadImportPlugin.cs,112,23,CS0508,"'QuakeWadImportPlugin._Import(string, string, Dictionary, Array<string>, Array<string>)': return type must be 'Error' to match overridden member 'EditorImportPlugin._Import(string, string, Dictionary, Array<string>, Array<string>)'",C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\csharptest.csproj

Running my project on 4.0 stable with these fixes solves most errors. This is enough for RC3.
However QuakeWadImportPlugin.cs still has some errors on 4.0 stable, and this is the only thing (afaik) preventing the plugin from running on stable.
This is maybe best suited for another PR, but if someone can provide a fix for these CSharp errors that'd be great, C# is not my wheelhouse and I'm still recovering my hands. @EMBYRDEV said she'd take care of fixes, but if someone else really wants to swoop in right now just be sure to let all of us know explicitly that you're doing it.

The errors:
error,C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\addons\qodot\src\import_plugins\QuakeWadImportPlugin.cs,81,36,CS0115,"'QuakeWadImportPlugin._GetImportOptions(string, long)': no suitable method found to override",C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\csharptest.csproj
error,C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\addons\qodot\src\import_plugins\QuakeWadImportPlugin.cs,97,23,CS0508,'QuakeWadImportPlugin._GetPresetCount()': return type must be 'int' to match overridden member 'EditorImportPlugin._GetPresetCount()',C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\csharptest.csproj
error,C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\addons\qodot\src\import_plugins\QuakeWadImportPlugin.cs,102,23,CS0508,'QuakeWadImportPlugin._GetImportOrder()': return type must be 'int' to match overridden member 'EditorImportPlugin._GetImportOrder()',C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\csharptest.csproj
error,C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\addons\qodot\src\import_plugins\QuakeWadImportPlugin.cs,107,25,CS0508,'QuakeWadImportPlugin._GetPriority()': return type must be 'float' to match overridden member 'EditorImportPlugin._GetPriority()',C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\csharptest.csproj
error,C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\addons\qodot\src\import_plugins\QuakeWadImportPlugin.cs,112,23,CS0508,"'QuakeWadImportPlugin._Import(string, string, Dictionary, Array<string>, Array<string>)': return type must be 'Error' to match overridden member 'EditorImportPlugin._Import(string, string, Dictionary, Array<string>, Array<string>)'",C:\Users\waxwi\Desktop\Godot_v4.0-stable_mono_win64\proj\csharptest.csproj

Theses issues are already fixed and merged to master!
https://github.com/QodotPlugin/Qodot/blob/main/addons/qodot/src/import_plugins/QuakeWadImportPlugin.cs
you can see the difference between master and your code on row 97 for instance!

Ah thanks, the assetlib version is missing that fix. All good!


New Release?

Hi there David! I was wondering what further work/testing was required in order to issue a new release with the two features that I issued pull requests for; I would very much like to leverage them in my project!
I would be more than happy to share the workload required to get it there!

Nothing special required. I'll push a release tomorrow.

Fantastic, thanks so much, and thanks for this project!

Version 0.6.0 released to Gradle plugin portal.


Changeset constraint docs for the :match option are inconsistent

Environment

Elixir version (elixir -v): Elixir 1.13.4 (compiled with Erlang/OTP 24)
Database and version (PostgreSQL 9.4, MongoDB 3.2, etc.): PostgreSQL 14.2
Ecto version (mix deps): ecto 3.7.2
Database adapter and version (mix deps): postgrex 0.16.2
Operating system: Alpine 3.15.4

Current behavior
The :match option for the constraint functions on Ecto.Changeset are inconsistent.
For example, the documentation for check_constraint/3:

:match - how the changeset constraint name is matched against the
repo constraint, may be :exact, :suffix or :prefix. Defaults to :exact.
:suffix matches any repo constraint which ends_with? :name
to this changeset constraint.
:prefix matches any repo constraint which starts_with? :name
to this changeset constraint.

Notice how it provides an explanation for the :exact, :suffix and :prefix options.
Here is the documentation for unique_constraint/3:

:match - how the changeset constraint name is matched against the
repo constraint, may be :exact or :suffix. Defaults to :exact.
:suffix matches any repo constraint which ends_with? :name
to this changeset constraint.

Notice how there is no mention of the :prefix option although it is supported.
A quick skim of the source shows check_constraint/3, exclusion_constraint/3 and unique_constraint/3 should all have the same options for :match.
Expected behavior
Ensure the :match option is properly documented for all changeset constraint functions.

Good find! A Pull request is welcome!


Could anyone tell me how to fix #522 if I can not add @ignore ?

Because the base class is in an library and the library is also used by a dart backend project.
#522

Thanks, I'll close the current issue as there are already other issues  on this bug.


feat: optimized touch

Removes start lag in touch
Swipe is optimized to have no lag and is only active for the first 200ms (Tap Swipe is more common than random swipe)
Tap occurs with Touch Start / Touch End

Test Swipe:

Launch the example page on a touch device.
Quickly swipe over the image with a single finger.
An info message should be displayed indicating that a swipe occurred.

Hi @Ouwen . Thanks for submitting this PR. Could you please add details as to how this PR can be tested? Thanks.

@jbocce I've updated the PR. The changes can be tested by running the example:
yarn run example stackManipulationToolsTouch

@jbocce I've updated the PR. The changes can be tested by running the example: yarn run example stackManipulationToolsTouch

Thanks @Ouwen for the updates - they definitely helped.
Could you please add specific test cases to the description of the PR. For example...
Test Swipe

Launch the example page on a touch device.
Quickly swipe over the image with a single finger.
An info message should be displayed indicating that a swipe occurred.

I tried the example on my phone and I found the following...

I cannot get a swipe info message to display ever. What am I doing wrong?
If I tap twice on two locations that are greater than 48px but within the double tap time tolerance (300ms), I do NOT get two individual taps. I was expecting one tap event for each location. Does this make sense?
Note that our double (mouse) click tolerance is 400ms - we should likely be consistent here.

Overall good work. Mouse and touch interactions are difficult things to get correct - so far so good.

@jbocce thanks for taking the time to a through code review on this PR. Let me know what you think of my responses and I can make those changes.
Main changes I'll be making:

Rename vars and update stale comments
Change distance tolerance from 48px to 32px and create a TODO for more configurable touch thresholds

Open discussion:

Should tap logic be pushed to embedding application or should multiple taps be handled in this API?
I would push for it being handled in this API. In the future, the user can set a configuration to be exposed to every tap event.

@jbocce thanks for taking the time to a through code review on this PR. Let me know what you think of my responses and I can make those changes.
Main changes I'll be making:

Rename vars and update stale comments
Change distance tolerance from 48px to 32px and create a TODO for more configurable touch thresholds

Open discussion:

Should tap logic be pushed to embedding application or should multiple taps be handled in this API?
I would push for it being handled in this API. In the future, the user can set a configuration to be exposed to every tap event. If they need better latency for added complexity.

Yes please make the changes.
I am not sure what you mean by the tap logic... you mean swipe logic right? If so then yes I agree.
Also, in case you missed them please have a look at these overall comments I made https://github.com/cornerstonejs/cornerstone3D-beta/pull/461#issuecomment-1458161108.

@jbocce I've updated the PR. The changes can be tested by running the example: yarn run example stackManipulationToolsTouch

Thanks @Ouwen for the updates - they definitely helped.
Could you please add specific test cases to the description of the PR. For example...
Test Swipe

Launch the example page on a touch device.
Quickly swipe over the image with a single finger.
An info message should be displayed indicating that a swipe occurred.

I tried the example on my phone and I found the following...

I cannot get a swipe info message to display ever. What am I doing wrong?
If I tap twice on two locations that are greater than 48px but within the double tap time tolerance (300ms), I do NOT get two individual taps. I was expecting one tap event for each location. Does this make sense?
Note that our double (mouse) click tolerance is 400ms - we should likely be consistent here.

Overall good work. Mouse and touch interactions are difficult things to get correct - so far so good.

I cannot get a swipe info message to display ever. What am I doing wrong?
Hmmm, that's strange it might require faster swiping? Which device are you on.

Note that our double (mouse) click tolerance is 400ms - we should likely be consistent here.
We can change the tap to 400ms

If I tap twice on two locations that are greater than 48px but within the double tap time tolerance (300ms), I do NOT get two individual taps. I was expecting one tap event for each location. Does this make sense?
Hmmm I think this makes sense. The tap logic currently waits for "tap chains" to complete. Instead, if a tap is outside the 48px it should start a new "tap chain" (as the follow up tap could make it a double tap)

@Ouwen
I am using a Pixel 5 phone. I have (finally) managed to register swipes, but NOT consistently. It just does not feel quite right to me. Perhaps increase the time tolerance (slightly)? I feel like I am doing the same swipe gesture, yet it only detects an actual swipe like 1 out of 25 or so times.

@Ouwen
I am not entirely sure what you mean by creating a TODO for tap chains. However if it means that a new tap chain/sequence should be started once the previous distance tolerance has been exceeded then yes. I would say create an issue maybe?
Here is what I would put as the issue details (feel free to edit/modify as you wish). I am providing this here just to be sure we are one the same page with "tap chains". 😊

Issue: Performing two taps within the (double) tap time tolerance but outside the tap distance tolerance should be registered as two individual taps.
Detailed description: Whenever a tap falls within an existing tap sequence time tolerance BUT outside the tap distance tolerance, a new tap chain/sequence should be started.

With regards to increasing the (double) tap tolerance to 400ms. Yes it makes sense for double tap, but a single tap should likely be much less than this. A similar thing is done for mouse events in mouseDownListener.ts. There is a clickDelay (i.e. single click time tolerance) of 200ms and the double click time tolerance is 400ms. Does this make sense?

Ah I see, in this case it would make sense for touch to be 200ms in our use case. Since touch is also a little slower than click I think it may make sense to keep 300ms for sngle tap and thus 600ms for double tap (using the same language as the click implementation in this thread)

@Ouwen
I am using a Pixel 5 phone. I have (finally) managed to register swipes, but NOT consistently. It just does not feel quite right to me. Perhaps increase the time tolerance (slightly)? I feel like I am doing the same swipe gesture, yet it only detects an actual swipe like 1 out of 25 or so times.

I've increased the swipe tolerance from 200ms => 300ms which might help

https://github.com/cornerstonejs/cornerstone3D-beta/issues/474
Issue regarding "Tap Chains" created and I've added a comment in the code!

@jbocce ready for your review!

@jbocce this is ready for your review!


Use Vscode Integration Test Setup

Microsoft has reworked the testing setup to integrate integration tests more easily:

https://github.com/microsoft/vscode-test
https://code.visualstudio.com/api/working-with-extensions/testing-extension#migrating-from-vscode

Let's consider using it.

After some time of consideration, I still think that the effort is not worth it. Closed for now.


Request support for Royal Clima RCB 150

Log Message

Device matches desk_lamp with quality of 25%. DPS: {"updated_at":<PHONE_NUMBER>.1077883, "1": true, "2": "Recirculation", "3": 0, "5": false, "11": 99, "12": "1", "13": false, "16": "cancel", "22": 29, "42": false, "101": "cancel", "102": 20}

Information about DPS mappings

{
  "result": {
    "properties": [
      {
        "code": "switch",
        "custom_name": "",
        "dp_id": 1,
        "time":<PHONE_NUMBER>588,
        "value": true
      },
      {
        "code": "mode",
        "custom_name": "",
        "dp_id": 2,
        "time":<PHONE_NUMBER>049,
        "value": "Air_Supply"
      },
      {
        "code": "pm25",
        "custom_name": "",
        "dp_id": 3,
        "time":<PHONE_NUMBER>570,
        "value": 0
      },
      {
        "code": "anion",
        "custom_name": "",
        "dp_id": 5,
        "time":<PHONE_NUMBER>748,
        "value": false
      },
      {
        "code": "filter_life",
        "custom_name": "",
        "dp_id": 11,
        "time":<PHONE_NUMBER>381,
        "value": 87
      },
      {
        "code": "fan_speed_enum",
        "custom_name": "",
        "dp_id": 12,
        "time":<PHONE_NUMBER>286,
        "value": "1"
      },
      {
        "code": "filter_reset",
        "custom_name": "",
        "dp_id": 13,
        "time":<PHONE_NUMBER>752,
        "value": false
      },
      {
        "code": "countdown_set",
        "custom_name": "",
        "dp_id": 16,
        "time":<PHONE_NUMBER>753,
        "value": "cancel"
      },
      {
        "code": "temp_outdoor",
        "custom_name": "",
        "dp_id": 22,
        "time":<PHONE_NUMBER>170,
        "value": 21
      },
      {
        "code": "heat",
        "custom_name": "",
        "dp_id": 42,
        "time":<PHONE_NUMBER>991,
        "value": false
      },
      {
        "code": "countup_set",
        "custom_name": "",
        "dp_id": 101,
        "time":<PHONE_NUMBER>795,
        "value": "cancel"
      },
      {
        "code": "Temperature_set",
        "custom_name": "",
        "dp_id": 102,
        "time":<PHONE_NUMBER>804,
        "value": 20
      }
    ]
  },
  "success": true,
  "t":<PHONE_NUMBER>454,
  "tid": "96435b26105d11ee9b65f25b5112df17"
}

Product ID

  "product_id": "qcgxajmb0sdg608j",
  "product_name": "Royal Clima RCB 150",

Information about how the device functions

This is a Fresh Air System with a heater and a sensor of pm 2.5. For the heater there is a power tuning line to which temperature to heat the incoming air. 6 speeds and 6 work programs (air supply, recycling, sleep, auto, eco, anti-condensate). there is also an inlet air temperature sensor

The range and possible enum value information is missing.  Tuya changed their portal around in the last couple of days, and I didn't realise that the first function I found that returns the dp id no longer returns the range info.  But there is another function at the bottom of that section that does seem to return everything needed for the dps, just labelled differently and not formatted nicely.

tell me more precisely what the snag is? I don’t understand all this very well, but I want to help than possible

For example, for mode we have the following info:
  {
        "code": "mode",
        "custom_name": "",
        "dp_id": 2,
        "time":<PHONE_NUMBER>049,
        "value": "Air_Supply"
      },

This seems to be the info from "Query Device Parameters" in the API Explorer.
It shows the dp id is 2, and the current value is "Air_Supply".  But we also need to know what other values it can take.
Another function a few lines further down is "Query Things Data Model".  That function seems to return a lot more information about the possible values, not just the current values.

Do I understand correctly that I should look at these items by changing the settings in SmartLife?

You shouldn't need to change the values if you use the "Query Things Data Model" function.  But that is another way of discovering the info, though a little more difficult for numeric values with a wide range.

went into the Query Things Data Model section, that's what you got there

{
"result": {
"model": "{"modelId":"000003x3i0",
"services":[{"actions":[],
"code":"","description":"",
"events":[],"name":"默认服务",
"properties":[{"abilityId":1,
"accessMode":"rw",
"code":"switch",
"description":"",
"extensions":{"iconName":"icon-dp_power2"},
"name":"Power","typeSpec":{"type":"bool","typeDefaultValue":false}},
{"abilityId":2,"accessMode":"rw","code":"mode","description":"",
"extensions":{"iconName":"icon-dp_mode"},
"name":"Mode",
"typeSpec":{"range":["Air_Supply",
"Recirculation",
"Sleep",
"Auto",
"Eco",
"Anti_Condensation"],
"type":"enum",
"typeDefaultValue":"Air_Supply"}},
{"abilityId":3,
"accessMode":"ro",
"code":"pm25",
"description":"",
"extensions":{"iconName":"icon-pm"},
"name":"PM2.5",
"typeSpec":{"max":999,"min":0,"scale":0,"step":1,"type":"value","typeDefaultValue":0,"unit":"ug/m³"}},
{"abilityId":5,"accessMode":"rw","code":"anion","description":"","extensions":{"iconName":"icon-function_eh"},"name":"Anion","typeSpec":{"type":"bool","typeDefaultValue":false}},
{"abilityId":11,"accessMode":"ro","code":"filter_life","description":"","extensions":{"iconName":"icon-dp_heart"},"name":"Filter _life","typeSpec":{"max":100,"min":0,"scale":0,"step":1,"type":"value","typeDefaultValue":0,"unit":"%"}},
{"abilityId":12,"accessMode":"rw","code":"fan_speed_enum","description":"","extensions":{"iconName":"icon-FanSpeed"},"name":"Fan_speed","typeSpec":{"range":["1","2","3","4","5","6"],"type":"enum","typeDefaultValue":"1"}},
{"abilityId":13,"accessMode":"rw","code":"filter_reset","description":"","extensions":{"iconName":"icon-dp_filter"},"name":"filter_reset","typeSpec":{"type":"bool","typeDefaultValue":false}},
{"abilityId":16,"accessMode":"rw","code":"countdown_set","description":"","extensions":{"iconName":"icon-dp_time2"},"name":"Timer_on","typeSpec":{"range":["cancel","1h","2h","3h","4h","5h","6h","7h","8h","9h","10h","11h","12h"],"type":"enum","typeDefaultValue":"cancel"}},
{"abilityId":22,"accessMode":"ro","code":"temp_outdoor","description":"","name":"temp_outdoor","typeSpec":{"max":50,"min":-50,"scale":0,"step":1,"type":"value","typeDefaultValue":-50,"unit":"℃"}},
{"abilityId":42,"accessMode":"rw","code":"heat","description":"","name":"Heat_up","typeSpec":{"type":"bool","typeDefaultValue":false}},
{"abilityId":101,"accessMode":"rw","code":"countup_set","description":"","name":"Timer_off","typeSpec":{"range":["cancel","1h","2h","3h","4h","5h","6h","7h","8h","9h","10h","11h","12h"],"type":"enum","typeDefaultValue":"cancel"}},
{"abilityId":102,"accessMode":"rw","code":"Temperature_set","description":"","name":"Temperature_set","typeSpec":{"max":30,"min":10,"scale":0,"step":1,"type":"value","typeDefaultValue":10,"unit":"℃"}}]}]}"
},
"success": true,
"t":<PHONE_NUMBER>971,
"tid": "04934259110e11eea68636790d793901"
}

Hello.
2 devices added successfully. Their parameters:
"product_id": "qcgxajmb0sdg608j",
"product_name": "Royal Clima RCB 150",
2 others - not identified correctly. Their parameters:
"product_id": "wcp2nfeclky0ybwi",
"product_name": "Royal Clima RCB 150",
Please add support for this product_id too.

This isn't how it works. If the devices are different they can't just be added with a product id, the logs are needed to determine what is different about them.

Query Things Data Model for 2 device with (ANOTHER) "product_id": "wcp2nfeclky0ybwi"
"result": {
"model": "{"modelId":"000001y8px","services":[{"actions":[],"code":"","description":"","events":[],"name":"默认服务","properties":[{"abilityId":1,"accessMode":"rw","code":"switch","description":"","extensions":{"iconName":"icon-dp_power2"},"name":"Power","typeSpec":{"type":"bool","typeDefaultValue":false}},{"abilityId":2,"accessMode":"rw","code":"mode","description":"","extensions":{"iconName":"icon-dp_mode"},"name":"Mode","typeSpec":{"range":["Air_Supply","Recirculation","Sleep","Auto","Eco","Anti_Condensation"],"type":"enum","typeDefaultValue":"Air_Supply"}},{"abilityId":3,"accessMode":"ro","code":"pm25","description":"","extensions":{"iconName":"icon-pm"},"name":"PM2.5","typeSpec":{"max":999,"min":0,"scale":0,"step":1,"type":"value","typeDefaultValue":0,"unit":"ug/m³"}},{"abilityId":5,"accessMode":"rw","code":"anion","description":"","extensions":{"iconName":"icon-function_eh"},"name":"Anion","typeSpec":{"type":"bool","typeDefaultValue":false}},{"abilityId":11,"accessMode":"ro","code":"filter_life","description":"","extensions":{"iconName":"icon-dp_heart"},"name":"Filter _life","typeSpec":{"max":100,"min":0,"scale":0,"step":1,"type":"value","typeDefaultValue":0,"unit":"%"}},{"abilityId":12,"accessMode":"rw","code":"fan_speed_enum","description":"","extensions":{"iconName":"icon-FanSpeed"},"name":"Fan_speed","typeSpec":{"range":["1","2","3","4","5","6"],"type":"enum","typeDefaultValue":"1"}},{"abilityId":13,"accessMode":"rw","code":"filter_reset","description":"","extensions":{"iconName":"icon-dp_filter"},"name":"filter_reset","typeSpec":{"type":"bool","typeDefaultValue":false}},{"abilityId":16,"accessMode":"rw","code":"countdown_set","description":"","extensions":{"iconName":"icon-dp_time2"},"name":"Timer_on","typeSpec":{"range":["cancel","1h","2h","3h","4h","5h","6h","7h","8h","9h","10h","11h","12h"],"type":"enum","typeDefaultValue":"cancel"}},{"abilityId":22,"accessMode":"ro","code":"temp_outdoor","description":"","name":"temp_outdoor","typeSpec":{"max":50,"min":-50,"scale":0,"step":1,"type":"value","typeDefaultValue":-50,"unit":"℃"}},{"abilityId":42,"accessMode":"rw","code":"heat","description":"","name":"Heat_up","typeSpec":{"type":"bool","typeDefaultValue":false}},{"abilityId":101,"accessMode":"rw","code":"countup_set","description":"","name":"Timer_off","typeSpec":{"range":["cancel","1h","2h","3h","4h","5h","6h","7h","8h","9h","10h","11h","12h"],"type":"enum","typeDefaultValue":"cancel"}},{"abilityId":102,"accessMode":"rw","code":"Temperature_set","description":"","name":"Temperature_set","typeSpec":{"max":30,"min":10,"scale":0,"step":1,"type":"value","typeDefaultValue":10,"unit":"℃"}}]}]}"
},
"success": true,
"t":<PHONE_NUMBER>475,
"tid": "1fbd6ab4b85a11eebe106ae4d2d5261a"
}
And this for 2 device with (OLD) "product_id": "qcgxajmb0sdg608j"
{
"result": {
"model": "{"modelId":"000003x3i0","services":[{"actions":[],"code":"","description":"","events":[],"name":"默认服务","properties":[{"abilityId":1,"accessMode":"rw","code":"switch","description":"","extensions":{"iconName":"icon-dp_power2"},"name":"Power","typeSpec":{"type":"bool","typeDefaultValue":false}},{"abilityId":2,"accessMode":"rw","code":"mode","description":"","extensions":{"iconName":"icon-dp_mode"},"name":"Mode","typeSpec":{"range":["Air_Supply","Recirculation","Sleep","Auto","Eco","Anti_Condensation"],"type":"enum","typeDefaultValue":"Air_Supply"}},{"abilityId":3,"accessMode":"ro","code":"pm25","description":"","extensions":{"iconName":"icon-pm"},"name":"PM2.5","typeSpec":{"max":999,"min":0,"scale":0,"step":1,"type":"value","typeDefaultValue":0,"unit":"ug/m³"}},{"abilityId":5,"accessMode":"rw","code":"anion","description":"","extensions":{"iconName":"icon-function_eh"},"name":"Anion","typeSpec":{"type":"bool","typeDefaultValue":false}},{"abilityId":11,"accessMode":"ro","code":"filter_life","description":"","extensions":{"iconName":"icon-dp_heart"},"name":"Filter _life","typeSpec":{"max":100,"min":0,"scale":0,"step":1,"type":"value","typeDefaultValue":0,"unit":"%"}},{"abilityId":12,"accessMode":"rw","code":"fan_speed_enum","description":"","extensions":{"iconName":"icon-FanSpeed"},"name":"Fan_speed","typeSpec":{"range":["1","2","3","4","5","6"],"type":"enum","typeDefaultValue":"1"}},{"abilityId":13,"accessMode":"rw","code":"filter_reset","description":"","extensions":{"iconName":"icon-dp_filter"},"name":"filter_reset","typeSpec":{"type":"bool","typeDefaultValue":false}},{"abilityId":16,"accessMode":"rw","code":"countdown_set","description":"","extensions":{"iconName":"icon-dp_time2"},"name":"Timer_on","typeSpec":{"range":["cancel","1h","2h","3h","4h","5h","6h","7h","8h","9h","10h","11h","12h"],"type":"enum","typeDefaultValue":"cancel"}},{"abilityId":22,"accessMode":"ro","code":"temp_outdoor","description":"","name":"temp_outdoor","typeSpec":{"max":50,"min":-50,"scale":0,"step":1,"type":"value","typeDefaultValue":-50,"unit":"℃"}},{"abilityId":42,"accessMode":"rw","code":"heat","description":"","name":"Heat_up","typeSpec":{"type":"bool","typeDefaultValue":false}},{"abilityId":101,"accessMode":"rw","code":"countup_set","description":"","name":"Timer_off","typeSpec":{"range":["cancel","1h","2h","3h","4h","5h","6h","7h","8h","9h","10h","11h","12h"],"type":"enum","typeDefaultValue":"cancel"}},{"abilityId":102,"accessMode":"rw","code":"Temperature_set","description":"","name":"Temperature_set","typeSpec":{"max":30,"min":10,"scale":0,"step":1,"type":"value","typeDefaultValue":10,"unit":"℃"}}]}]}"
},
"success": true,
"t":<PHONE_NUMBER>959,
"tid": "846bc158b85911eea050fecb253acbfb"
}

Differences only in: modelId,  t,  tid ?

This isn't how it works. If the devices are different they can't just be added with a product id, the logs are needed to determine what is different about them.

Hello.
@make-all , can you add "product_id": "wcp2nfeclky0ybwi"? Or are additional logs required?


[Doc improvement][Teamsfx CLI version]

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/toolkit/TeamsFx-CLI.md
93
35
link
:white_check_mark:

msteams-platform/whats-new.md
93
32
link
:white_check_mark:

msteams-platform/zone-pivot-groups.yml
100
0
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.


Sort pull requests ordered by updated attribute

in order to avoid pagination.
cc: @Jimdo/platform

:100:


Updated Readme for copy_validations_from

This Readme update is driven by the following issue: https://github.com/apotonick/reform/issues/230
It is unreasonable to expect people to keep the copy_validations_from line under the property definitions. We should explicitly let people know this structure is required.

Oh good one, can you squash those 3 into one commit? Thanks! :heart:

@apotonick ah good call  - squashed em'

Rock'n'roll! Thanks!


BIDS at OHBM-OSR

Generated a list of talks happening in the OHBM-OSR that are related to BIDS. I took a broad approach to give a better sense of the wide range of ways BIDS can be applied throughout the field.
There are a few talks that are yet to be scheduled - the post can be updated when they are

thanks for sending over - have incorporated into the post

thanks @franklin-feingold!


rearrange the deck chairs on the CoreWalk titanic

Makes a small difference and I think it "more correct", but the time difference isn't noticable so if you disagree, close.
Selected reviewer: @dmontagu

please review.

not helping.


custom schema issue 2.4.11

In the jamf custom schema airdrop is missing.
Airdrop disable is 2.4.11 in the script but the custom schema has:
OrgScore2_4_11": {
            "type": "boolean",
            "title": "2.4.11 Disable Media Sharing (Automated)",
            "description": "This boolean is true or false.",
            "default": "false"

which in the script is 2.4.12

I found that the sample json file provided is not up to date at all. You should instead run:
Assemble.sh -j which will create the Custom Schema based on the fragments and make sure it is always 100% accurate.
Do not use the current pre-compiled json file as it has many many more issues than just this one.


Can not get esbuild configuration working, after migrating from TheBrainFamily/cypress-cucumber-preprocessor

Current behavior
I'm trying to migrate to this version of cypress-cucumber-preprocessor using the recommended esbuild method. However, I can't seem to get it working at all.
What is special about our setup is that our cypress setup is independent from the application it is testing. This should not be a problem as we only use it for e2e testing. This however does mean, that a lot of assumed configurations or packages are not presenting our setup.
# package.json
{
  "name": "integrations",
  "license": "UNLICENSED",
  "private": true,
  "description": "Integration testing using Cypress",
  "main": "index.js",
  "scripts": {
    "open": "cypress open",
    "test": "cypress run"
  },
  "dependencies": {
    "@badeball/cypress-cucumber-preprocessor": "latest",
    "@bahmutov/cypress-esbuild-preprocessor": "latest",
    "@esbuild-plugins/node-modules-polyfill": "latest",
    "cypress": "latest",
    "cypress-file-upload": "latest",
    "cypress-iframe": "latest",
    "cypress-otp": "latest",
    "esbuild": "latest",
    "uuid": "latest"
  },
  "cypress-cucumber-preprocessor": {
    "nonGlobalStepDefinitions": true,
    "stepDefinitions": [
      "[filepath]/steps.{js,ts}"
    ]
  }
}

# cypress config

const { defineConfig } = require("cypress");

module.exports = defineConfig({
  video: false,
  // chromeWebSecurity: false,
  defaultCommandTimeout: 10000,
  env: {
    TAGS: 'not (@ci-broken or @unstable)',
  },
  retries: {
    runMode: 2,
    openMode: 0,
  },
  e2e: {
    setupNodeEvents: require('./cypress/plugins/index.js'),
    specPattern: 'cypress/e2e/**/*.{feature,features,spec.js}',
    baseUrl: 'https://app.localtest.me',
  },
})

# cypress/plugins/index.js
/// <reference types="cypress" />
// ***********************************************************
// This example plugins/index.js can be used to load plugins
//
// You can change the location of this file or turn off loading
// the plugins file with the 'pluginsFile' configuration option.
//
// You can read more here:
// https://on.cypress.io/plugins-guide
// ***********************************************************

const createBundler = require("@bahmutov/cypress-esbuild-preprocessor");
const preprocessor = require("@badeball/cypress-cucumber-preprocessor");
const createEsbuildPlugin = require("@badeball/cypress-cucumber-preprocessor/esbuild");
// const nodePolyfills = require('@esbuild-plugins/node-modules-polyfill').NodeModulesPolyfillPlugin;
const generateOTP = require('cypress-otp');

// This function is called when a project is opened or re-opened (e.g. due to
// the project's config changing)

/**
 * @type {Cypress.PluginConfig}
 */
module.exports = async function setupNodeEvents(on, config) {
  await preprocessor.addCucumberPreprocessorPlugin(on, config);

  on(
    "file:preprocessor",
    createBundler({
      plugins: [
        // nodePolyfills(),
        createEsbuildPlugin.default(config),
      ],
    })
  );

  on('task', { generateOTP });

  // Make sure to return the config object as it might have been modified by the plugin.
  return config;
}

There are no other config files.
When running this, cypress keeps crashing with this error:
Build failed with 6 errors:
node_modules/esbuild/lib/main.js:1709:17: ERROR: Could not resolve "fs"
node_modules/esbuild/lib/main.js:1710:17: ERROR: Could not resolve "os"
node_modules/esbuild/lib/main.js:1711:19: ERROR: Could not resolve "path"
node_modules/esbuild/lib/main.js:1858:28: ERROR: Could not resolve "child_process"
node_modules/esbuild/lib/main.js:1859:21: ERROR: Could not resolve "crypto"

When I try to run it with nodePolyfills as described here, we get an other error:
process is not defined

Which leads me further down a rabbit hole, that I think is the wrong rabbit hole.
Desired behavior
Get cypress running with @badeball/cypress-cucumber-preprocessor using the suggested esbuild-cjs approach.
Test code to reproduce
See code above.
Versions

Cypress version: 10.3.1
Preprocessor version: 11.5.1
Node version: 16.14.2

Checklist

[x] I've read the FAQ.
[x] I've read Instructions for logging issues.
[x] I'm not using<EMAIL_ADDRESS>(package name has changed and it is no longer the most recent version, see #689).

I can't reproduce the issue with the provided information alone. I suspect that there's something going on with your actual step definitions. In any case, you will have to provide me a cloneable repository that allows me to observe the error.


Add support for subgraph names with more than one path segment (e.g. foo/bar)

We'll want this in order to namespace subgraphs by e.g. account / organization / user in hosted environments.
There are two parts to this:

Allowing subgraph names with slashes.
Updating the request handlers in the GraphQL HTTP and WebSocket servers to support multi-segment subgraph names.

I've got this one in progress actually!


Switch to latest ebpf-verifier and fix GSL issues

Description
This pull request includes a small change to the external/ebpf-verifier submodule. The change updates the submodule commit to a new version.

external/ebpf-verifier: Updated the submodule commit to 257897c60be7d7ac35ed993794d95b6a9f4c7573 from 07a6da07d721ca80ee43ae02d1ce0b2f51f8b1fd.

Testing
CI/CD
Documentation
No.
Installation
No.

Looks like a dup of what is included in PR #3506


ERROR: Could not find a version that satisfies the requirement torch (from versions: none) ERROR: No matching distribution found for torch

ERROR: Could not find a version that satisfies the requirement torch (from versions: none)
ERROR: No matching distribution found for torch

Install the latest pytorch version manually from their website, it works the same

Install python 64bit not 32bit


Trying to run todo example on local host... Error of no query provided

Followed the general instructions of
npm install
npm run update-schema
npm run build
npm start
My local host just throws me this on screen and 400 status code in my chrome console.
{
"errors": [
{
"message": "Must provide query string."
}
]
}
Please let me know if I'm missing anything blatantly obvious.

Was trying wrong port # lol ignore this


Website Redesign

Motivation

The website in its current form is kinda ugly (especially the header is a mess that's difficult to navigate visually) and looks a bit outdated.
Description

Redesign the website to a cleaner, nicer and more modern style.
Alternatives

Not look at the website, ehh?

Assign me if you want. I m ready to work on it


[iOS] Record sound while playing another sound in the background

When playing a background sound, the camera doesn't record audio. Someone was able to make it work by "using a different method of playing audio"
I was able to get this to work finally by using a different method of playing audio.

Originally posted by @helmsb in https://github.com/flutter/flutter/issues/53551#issuecomment-610587824
I don't know what to try. I'm currently playing the background audio with audioplayers. What other ways can I try to expect the same result as @helmsb ?

Hi @Mouradif
It seems you are asking for assistance on personal code. Please see https://flutter.dev/community for resources and asking questions like this,
you may also get some help if you post it on Stack Overflow and if you need help with your code, please see https://www.reddit.com/r/flutterhelp/
Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and I will reopen it.
Thank you


WIP: Triangle

Description

Adding support for triangle grids, adjusts hexagon vertices to use a triangular grid to support a faster distance method.
Todo List

[x] Reflection
[x] Rotation
[x] Lerp
[x] Range
[ ] Direction

Type of change

[X] New feature (non-breaking change which adds functionality)

Checklist:

[X] My code follows the style guidelines of this project outlined in the Contributing file
[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have made corresponding changes to the documentation
[X] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[X] Any dependent changes have been merged and published in downstream modules

Along_Axis function is incredibly fast, and the smooth function is incredibly slow. It might be possible to utilize the axis line function inside the smooth function to utilize the speed.


Capsule gets stuck certain convex hull geometry using Godot physics

Godot version
4.0.alpha10
System information
Windows 10, GLES3, NVidia RTX 3080
Issue description
Using Godot physics with a basic CharacterBody3D results in the capsule getting stuck in a number of locations with convex hulls, like this spot here:

Not sure if it's limited to convex hulls, but that's what I'm using, and I get stuck in places all the time.
Steps to reproduce
Project attached.  Simply walk forward (up arrow) and note that the capsule gets stuck against the wall and you are completely unable to move.
Minimal reproduction project
stuck_collision.zip

Confirmed. Here is a more minimal project, obtained by deleting all but two of the level's collision shapes:

stuck_collision_minimal.zip

Using move_and_collide without gravity and without a floor, the capsule character can penetrate the wall and pass through it. This is probably the underlying reason why the character gets stuck when using move_and_slide.
The reason for being able to penetrate the wall seems to be the following. When the capsule gets near the wall, Godot Physics tries to find a best separating axis, by testing (among others) the normals of the faces of the wall. Here the best_axis turns out to be the normal to the thin (vertically long) triangle face F at the front right edge of the wall. When the capsule and the wall collide, Godot Physics generates contact points based on the support of the capsule in the -best_axis direction, and the support of the wall in the best_axis direction. The capsule's support in the -best_axis direction is just a vertical edge (on the surface of the cylinder, from top to bottom), and the wall's support in the best_axis direction is the face F. When the capsule is not facing F but the other (big) face of the wall, the supports (the capsule's edge and F) are not even close to each other, so no contact points are generated at all. This causes the depenetration step of test_body_motion (which is called by move_and_collide) to fail, because no collision is detected when it should be.
So (almost) parallel faces cause problems for the current collision detection algorithm, and simplifying the wall collider (e.g. by removing two "superfluous" vertices) avoids the issue.
Unless/until we can fix the algorithm, we should probably introduce warnings for (almost) parallel faces, and perhaps offer a way to simplify colliders.

Hmm, from the description it'd explain why I have capsule characters penetrating my CSG walls sometimes!


Setting ThemeMode is wrong in DevicePreviewHelper

Ahem DevicePreview uses provider so one has to do
Provider.of(context, listen: false) and
then we can tirigger theme change.
Your code way never propagates to the simulated device. What happens instead is that
the theme used in the simulation will change but not the simulation's ThemeData.
In short words you will se the Typography text color change for light theme but it will still have the dark background applied to the surface.
And yes rest of the helper stuff will be wrong as you are not reading it via the Provider.of(context, listen:false) syntax.
You can verify this by examining the code on the tool panels from DevicePreview, they will have
context.read because of setState methods but outside of that we have to use Provider.of(context, listen:false) syntax.
See:
https://github.com/aloisdeniel/flutter_device_preview/blob/master/device_preview/lib/src/views/tool_panel/sections/system.dart
let me know if my explanation is not clear

Hi
I use DevicePreviewStore.toggleDarkMode to change the them which will change it global for the app
it will work and update the Theme and MaterialApp directly
this code from devicepreview where the data get notifed
  set state(DevicePreviewState value) {
    _state = value;
    notifyListeners();
  }

then every code that depense on DevicePreviewStore will be rebuild
DevicePreview widget have Provider.of<DevicePreviewStore>(context) and  context.select( (DevicePreviewStore store) =>
so  DevicePreview will rebuilt and our materialapp also
if you have a custom logic to change the dark/light mode  you could use
 SimpleScreenShot(
  processor: saveScreenShot,
  setDarkMode: ,
  setLightMode: ,

if i am missing something please sent a screenshot of the problem


Add EVM Push, Dup and Swap tests

After a look at yellow paper, it seems push has a bit of a problem which isn't caught by tests as they are not checking the stack in a case,

It seems that the merge with master failed

integration tests failed due to some TLS errors


Github test3 push

Nice work with Git Test part 3, Felipe! I have pulled in your branch to main and deleted your branch on the remote repo. You can now delete the Felipe-GitTest3branch in your local version of the textAnalysis-Hub.


Class decorator target to ES2015+ won't tree shaking

Bug Report

🔎 Search Terms
decorator, tree shaking, downlevel

🕗 Version & Regression Information
v3.3.3 to  v4.2.3

⏯ Playground Link

Playground link with relevant code
💻 Code

function abc(a:any, b?:any, c?: any, d?: any) {}

@abc
class Foo {
  @abc
  a?: number
}

🙁 Actual behavior
Any target which is above ES2015 will emit code like this

"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
function abc(a, b, c, d) { }
let Foo = class Foo {
};
__decorate([
    abc,
    __metadata("design:type", Number)
], Foo.prototype, "a", void 0);
Foo = __decorate([
    abc
], Foo);

🙂 Expected behavior

"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
function abc(a, b, c, d) { }
let Foo = /** @class */ (function () {
    let Foo = class Foo {
    };
    __decorate([
        abc,
        __metadata("design:type", Number)
    ], Foo.prototype, "a", void 0);
    Foo = __decorate([
        abc
    ], Foo);
    return Foo;
}());

Should it really be as you expected? I would say, given that decorators basically are side-effects, they should execute regardless of usage of Foo.

You mean in some DI framework, even there is no code use that class directly, we should still keep the class ?
But in my case, I just use decorator to write vue2 UI components, and hope people can tree shaking it if they don't use it.
I don't know. Maybe it's the question that what problem the decorator proposal want to solve.
In my opinion, no side effect is better than side effect, explicit state is better than implicit global state.

But why target to ES5, it compiles to code tree-shakable.
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
function abc(a, b, c, d) { }
var Foo = /** @class */ (function () {
    function Foo() {
    }
    __decorate([
        abc,
        __metadata("design:type", Number)
    ], Foo.prototype, "a", void 0);
    Foo = __decorate([
        abc
    ], Foo);
    return Foo;
}());

I think, since we already have side-effectful higher order function, why not build a side-effectless decorator even though we can not ensure a decorator function is side-effectless.

Side effects in decorators are very common. Tree shakers can always get smarter about this sort of thing if there's some sidechannel to inform them of functions which themselves don't create novel side effects in a given program.