Invalid Notification Content

Hi, this has been an awesome plugin so far. However, i have one issue. As stated in the documentation
"Issue: Invalid notification content
Fix: The notification sent via FCM services MUST respect the types of the respective Notification elements. Otherwise, your notification will be discarded as invalid one. Also, all the payload elements MUST be a String, as the same way as you do in Local Notifications using dart code.
To see more information about each type, please go to https://github.com/rafaelsetragni/awesome_notifications#notification-types-values-and-defaults"
I am sending my payload from firebase functions and the guide doesnt show much on how to send payload in the specified format using cloud functions

The firebase console test page is limited. To test it with more resources try to use Postman software. I let an example ready to use on README file.

Thanks a lot for your response. When i send a cloud message using postman or any other rest api tool it works very fine.
However, I will prefer not using http to send cloud messages. I want to use cloud functions to achieve this and when i do, it always says "Invalid Notification Content"
Is there a way i can get this to work with using cloud functions instead of HTTP?

Hello. I will be closing this issue since so far, using HTTP to send the notifications hasnt been a bad idea. Thanks a lot for your help

???
Ok, no problem. Good luck with your project. I hope you gonna find the answer for tour need.


Lk 130 restructure local loop

I'm not sure if I ever replied to this. I removed keytest.py from the MKOB project. It was a one-shot throwaway script that was never intended to be kept.

Sure. I added a version that takes into account 'config'. We can delete it at the point it isn't useful.


compile failed  with "./gradlew distDocker"

when I run CLI "./gradlew distDocker",
there is an error about swift-3.0.2-RELEASE-ubuntu14.04.tar.gz not found

https://swift.org/builds/swift-3.0.2-release/ubuntu1404/swift-3.0.2-RELEASE/swift-3.0.2-RELEASE-ubuntu14.04.tar.gz:
2017-08-07 06:56:48 ERROR 404: Not Found.

We know about this issue, will try to mitigate until Swift brings the binaries back.

I have this problem when
Executing:
/openwhisk# ./gradlew distDocker
Problem:
/root/.sdkman/candidates/java/current/bin/java: 1: /root/.sdkman/candidates/java/current/bin/java: Syntax error: end of file unexpected (expecting ")")


"please wait checking done !" error when using with auto save

I have enabled auto save with the extension and "please wait checking done !" error pops-up whenever I try to type something, which is  a bit irritating.
Can this notification be just suppressed or is there any other workaround ?

I have enabled auto save with the extension and "please wait checking done !" error pops-up whenever I try to type something, which is a bit irritating. Can this notification be just suppressed or is there any other workaround ?

Sir, I have encountered the same problem. Have you found a solution yet？

I have enabled auto save with the extension and "please wait checking done !" error pops-up whenever I try to type something, which is a bit irritating. Can this notification be just suppressed or is there any other workaround ?

Oh, my friend, I solved this pop-up prompt by modifying the plugin source code.
Find the directory locally after installing the plugin in your vscode：%userprofile%.vscode\extensions\qiumingge.cpp-check-lint-1.4.7
Find the cpplint.js and cppcheck.js files and make the modifications as shown in the following figure.


VOLUME seems work not as expected when run container with --volumes-from

Output of docker version:
Client:
 Version:      1.11.2
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   b9f10c9
 Built:        Wed Jun  1 21:47:50 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.11.2
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   b9f10c9
 Built:        Wed Jun  1 21:47:50 2016
 OS/Arch:      linux/amd64

Output of docker info:
Containers: 4
 Running: 2
 Paused: 0
 Stopped: 2
Images: 134
Server Version: 1.11.2
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 119
 Dirperm1 Supported: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge null host
Kernel Version: 3.13.0-92-generic
Operating System: Ubuntu 14.04.5 LTS
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 15.35 GiB
Name: xulei-ThinkPad-W530
ID: AMUO:ZLXA:UTSO:R7BG:RFJT:MVW4:FG45:OVQT:XPEX:6B4Z:JOZ7:76NN
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): false
Http Proxy: http://<IP_ADDRESS>:8118
Registry: https://index.docker.io/v1/
WARNING: No swap limit support

Additional environment details (AWS, VirtualBox, physical, etc.):
laptop
Steps to reproduce the issue:
Build the image with VOLUME like following:
FROM ubuntu:14.04

RUN apt-get update
RUN apt-get install -y libapparmor-dev libltdl-dev libsystemd-journal-dev

VOLUME ["/var/lib/mesos"]

Then run a container with the command line:
docker run -it -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/var/lib/mesos --name outer volumes /bin/bash
# in container
root@7723077d630e:/#mkdir -p /var/lib/mesos/slaves/outer/

Check the docker volume ls:
$ docker volume ls
DRIVER              VOLUME NAME

Run another container in the container outer:
# in the outer container run this
docker run -it -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/mesos/slaves/outer:/mnt/mesos/sandbox --volumes-from outer --name inner volumes /bin/bash
# in the inner container
root@1f9870c7794f:/#cd /mnt/mesos/sandbox
root@1f9870c7794f:/mnt/mesos/sandbox# touch from_inner

And check docker volume ls:
$ docker volume ls
DRIVER              VOLUME NAME

In my host directory /tmp/slaves/outer, I did not find any files that named from_inner:
➜  outer pwd
/tmp/slaves/outer
➜  outer ll
total 0

But in another host directory /var/lib/mesos/slaves/outer, I found the file:
➜  outer pwd
/var/lib/mesos/slaves/outer
➜  outer ll
total 0
-rw-r--r-- 1 root root 0  8月  8 19:11 from_inner

Describe the results you received:
no local volumes found in docker, but here is a new directory which name is the same as VOLUME in the host OS, and the file has been written to the new directory.
Describe the results you expected:
I think it should write to the /tmp/slaves/outer/ instead of /var/lib/mesos/slaves/outer.

First of all, you're not using volumes, only bind-mounted directories. Note that
--volumes-from is just a convenience flag for not having to specify the same
options on multiple containers, for example:
docker run -dit -v /foo:/bar --name first busybox sh

docker run -dit --volumes-from first --name second busybox sh

And you'll see that the volume definition from first is "copied" in the
definition of second:
docker inspect --format '{{ json .Mounts }}' second
[{"Source":"/foo","Destination":"/bar","Mode":"","RW":true,"Propagation":"rprivate"}]

docker inspect --format '{{ json .Mounts }}' first
[{"Source":"/foo","Destination":"/bar","Mode":"","RW":true,"Propagation":"rprivate"}]

In your case, you're not running docker-in-docker, but you're basically
running all containers directly on the host; you're only bind-mounting the docker
socket, and the docker client binary, but effectively controlling the docker daemon
that's running on the host; basically, what you're running is:
docker run -it -v /tmp:/var/lib/mesos --name outer volumes bash
docker run -it -v /var/lib/mesos/slaves/outer:/mnt/mesos/sandbox --volumes-from outer --name inner volumes /bin/bash
if we take the --volumes-from into account and "translate" that to the actual volumes (bind-mounts) that
docker creates, this becomes;
docker run -it -v /tmp:/var/lib/mesos --name outer volumes bash
docker run -it
-v /var/lib/mesos/slaves/outer:/mnt/mesos/sandbox
-v /tmp:/var/lib/mesos
--name inner volumes /bin/bash
So, the first container:

bind-mounts the /tmp directory on the host at /var/lib/mesos in the container

ANd the second container:

bind-mounts the /var/lib/mesos/slaves/outer directory on the host at /mnt/mesos/sandbox in the container
also bind-mounts the /tmp directory on the host at /var/lib/mesos in the container

There are no volumes, only bind-mounted directories, so docker volumes won't show anything
Looking at the above, I don't see a bug here, so I'll close this issue, but feel free to continue the conversation

@thaJeztah thanks for your response so quickly.


Dynamic states

I have very unique object model, it has many dependencies, (which is retrived from webapi, on IIS server)
object {         dependencies: [object Array]     }
So i want to configure or maybe dynamically change my state on object select, i mean i want to append to current url, but with different views, consider i have some attribute which shows me object type, and depend on object type i want to load special state, i can generate templates. But how can i make url?
Object model is very nested, so each dependent array of objects should have generated views, where i can edit it, and also edit it's child dependent objects. Any ideas?

https://gist.github.com/eddiemonge/f6a58169c2846731a1eb


Limit duplicate user logins

To prevent users from sharing their login, it would be useful to have an option to auto-kick any instances of a logged-in user when the user logs in again (mostly for bandwidth conservation). There will be some Streama admins who don't mind login sharing so this should probably be optional.

That would be a nice feature.
Or even a more advanced one: To limit the concurrent streams a user is allowed to play.

Hi, any updates on this matter? Would be a great feature.
Anyone have any ideas where to begin?

im not really part of this but ill look into it, discord is the best way to keep updated

This is a really great idea. Ane news about it?


Added longer eval periods

Added eval periods for month and year

Cool, that you added this extended eval period. I hope it is helpfull for you.

It is. Thanks for merging it so quickly

Do you know when you'll be publishing it?

Just published it :-)


Ctrl + \ quits instead of restarting

After upgrading guard-spork I can no longer to Ctrl + backslash to restart, instead SIGQUIT is sent.

From the Guard readme:
Interactions
From version >= 0.7.0 Posix Signal handlers are no more used to interact with Guard. If you're using a version < 0.7, please refer to the README in the v0.6 branch.
When Guard do nothing you can interact with by entering a command + hitting enter:

stop|quit|exit|s|q|e + enter - Calls each guard's #stop method, in the same order they are declared in the Guardfile, and then quits Guard itself.
reload|r|z + enter - Calls each guard's #reload method, in the same order they are declared in the Guardfile.
pause|p + enter - Toggle files modification listening. Useful when switching git branches.
just enter (no commands) - Calls each guard's #run_all method, in the same order they are declared in the Guardfile.

Hi,
From version 0.7 Guard is not using signals anymore, please consult Guard's README ("Interaction" section)!
Thanks.
Sent from my iPhone
On 10 oct. 2011, at 19:42, Fredrik Björk<EMAIL_ADDRESS>wrote:

After upgrading guard-spork I can no longer to Ctrl + backslash to restart, instead SIGQUIT is sent.
--
Reply to this email directly or view it on GitHub:
https://github.com/guard/guard-spork/issues/36

Aha too slow! :P

Yeah, the Guard organization has an incredible response time (during CET) :P

Thanks!

You're amazing! :)

So how do I get Guard to re-run all specs again? Just enter does nothing for me.

Please can you show us your Guardfile,

https://gist.github.com/5277cb3666d07c958f34

Ok weird, and you're using guard 0.8.4 launched with bundle exec right? Entering 'q' + enter is not working neither?

Yeah, and q works fine.

That's really really weird, never have issues to run all specs by just pressing enter.
Maybe give us more info about your environment (ruby, os, terminal app...)

By any chance, does it change anything if you press return?


the dataset of flow  are damaged files

can you upload the dataset again, thanks

Hi,
I download the extracted rgb frames and optical flow images from this repo. If this link is broken, you might need to download the original videos of UCF101 and extract the rgb and optical flow images manually.
Jeffrey


Dropdown on a right item menu, cover the item

When dropdown is used on a right item menu, it cover the item. I tried with position:relative but nothing changes.

  User Menu

      Profile

See readme

Sorry, I didn't read how to submit issue.
This is the jsfiddle link for the issue, if you click on the menu item the dropdown cover the parent menu item.
http://jsfiddle.net/bxms2Ldo/2/


no way to set incremental image pull policy explicitly

pull policy used to pull the previous image is tied to the pull policy for the builder image.

For now forcepull (in OSEv3.2) does not work with incremental build. From code and description i assume this will enable these two to work together?

What do you mean incremental does not work with forcepull today?
this feature simply enables you to set a cluster wide default such that all builds will, by default, use incremental builds.

Still debugging on this, but one of the clients started complaining that incremental builds stopped working when they added this to the template.
if incremental is set build maven builds copy paste .m2 data into new container. And if they added forcepull: true it apparently stopped doing incremental ones.
But still need to confirm this one before raising new ticket...

ok, keep us posted, but it should work.

Will do. I suspect that previous build was failed so it defaulted to build from scratch, despite the fact we had one n-2 build running. But at this point its my assumption before debugging.


Improved docker image

I've taken the liberty of rewriting the Dockerfile so that it can be built automatically on docker hub (I've got my own clone of this here in case you're interested).
I've also added a wrapper script (docker-run.sh) that periodically invokes droplan (the interval can be specified using $DO_INTERVAL).
Also, I've added a paragraph about using the docker image to README.md
The example command I've added to README.md should be enough to have the tool restart on reboot, be executed in a 5 minute interval, etc.
Let me know if there's anything you want me to add and/or change.

I like the entrypoint script and readme updates, but I'm not a fan of release docker images also having all the build tools in them. I would accept this PR if it was just the entrypoint and readme update.
(I've created https://github.com/tam7t/droplan/pull/38 for a more consistent build process, but do not wish docker hub to build the images for me)

I'll update the pull request.
Personally I trust automatic builds a little more (since then the whole process - from source code to image - is public and reproducible) and am willing to pay the few megs of overhead for that certainty.
If it's ok with you, I'll keep my 'auto-build' version of droplan on Docker Hub then (I'll probably put it into a separate build repo though)

👍 thanks


fp_layers fuzzy match unexpected behaviour

for example, model.layers.1 will exclude model.layers.1 and model.layers.11, model.layer12 ,etc.

Besides, to_quant_block_names has not been changed correctly, which will impact auto-gptq format


Enable dependabot to update GH Action versions periodically

Description
Dependabot will automatically update the versions in the workflow files, similar to how pre-commit bot works.
See https://github.com/pybamm-team/PyBaMM/pull/3264#discussion_r1298912968
Fixes # (issue)
Type of change
Please add a line in the relevant section of CHANGELOG.md to document the change (include PR #) - note reverse order of PR #s. If necessary, also add to the list of breaking changes.

[ ] New feature (non-breaking change which adds functionality)
[ ] Optimization (back-end change that speeds up the code)
[ ] Bug fix (non-breaking change which fixes an issue)

Key checklist:

[ ] No style issues: $ pre-commit run (or $ nox -s pre-commit) (see CONTRIBUTING.md for how to set this up to run automatically when committing locally, in just two lines of code)
[ ] All tests pass: $ python run-tests.py --all (or $ nox -s tests)
[ ] The documentation builds: $ python run-tests.py --doctest (or $ nox -s doctests)

You can run integration tests, unit tests, and doctests together at once, using $ python run-tests.py --quick (or $ nox -s quick).
Further checks:

[ ] Code is commented, particularly in hard-to-understand areas
[ ] Tests added that prove fix is effective or that feature works

Weekly makes much more sense, thanks, @agriyakhetarpal!

A lot of dependabot PRs haha - https://github.com/pybamm-team/PyBaMM/pulls/app%2Fdependabot


Surprising config file resolution behavior

Our repo has two pyproject.toml files with [tool.ruff] sections:

pyproject.toml  ("root")
examples/docs_snippets/pyproject.toml  ("docs_snippets")

The logic that resolves the config file for any given invocation of ruff surprised me:
$ ruff `git ls-files '*.py'`  # uses root config for files in `examples/docs_snippets`
$ ruff `git ls-files 'examples/docs_snippets/*.py`  # uses docs_snippets config

So, for a given file in examples/docs_snippets, different runs of ruff from the same cwd and with the same config files on disk will use different pyproject.toml files. It suprised me to have the config used for a particular file determined by whatever unrelated files also happen to be being processed instead of just (a) the cwd; and (b) location of existing config files.
I don't have a strong opinion on how a config file is resolved, but IMO it should always resolve to the same one if the launch CWD and config files on disk are constant.

The current behavior is: take the common ancestor of all provided files, then find the most specific pyproject.toml file in that ancestor path. (So, in the first invocation, it uses the root; in the second, examples/docs_snippets is the common ancestor, so it ends up using examples/docs_snippets/pyproject.toml.)
Need to think on the right change here.

Need to think on the right change here.

IMO the best approach is to always use the most specific config for every file processed (allowing multiple configs to be used in a given run for different files). Together with config inheritance (#1055), this is most convenient from a user perspective, allowing a single run from the root to process every file with appropriate config.

Yeah I think that's right.

(Just not a trivial change so will take a bit of time.)

I'll try to prioritize this and get it done this week.

Yeah I can totally empathize. Monorepos are amazing but tend to be so under-supported by tooling. Will try to make this happen soon!

(I'm probably over-stating how much work this is, the code is actually pretty well set-up for it.)

Noticed after updating to 0.0.165 that:
$ ruff --config=pyproject.toml --select=I001 `git ls-files 'examples/docs_snippets/*.py'`

No longer treats the docs_snippets package as first party when sorting imports. I assume this is a consequence of the changed logic around finding the "project root", but this seems like a bug right? Regardless of where the project root is, files inside docs_snippets should be identified as part of the docs_snippets package and imports from docs_snippets treated as first-party.

I think you want to set this:
[tool.ruff]
src = ["python_modules/dagster", "examples/docs_snippets"]

Otherwise, it's as if you're trying to import doc_snippets from the root directory.

Hmm, I don't think that's quite what's happening. If you're using --config=pyproject.toml, then it shouldn't matter whether you "directly target" a given directory -- all resolution will happen from the root directory.
In fact, it does look like dagster-graphql is being classified as third-party (I confirmed this with some extra logging). Notice this diff after changing the TOML file to:
src = ["python_modules/dagster", "python_modules/dagster-graphql", "examples/docs_snippets"]

Which leads to this change:
--- a/python_modules/dagster-graphql/dagster_graphql/implementation/fetch_runs.py
+++ b/python_modules/dagster-graphql/dagster_graphql/implementation/fetch_runs.py
@@ -1,7 +1,6 @@
 from collections import defaultdict
 from typing import TYPE_CHECKING, Dict, KeysView, List, Mapping, Sequence, cast

-from dagster_graphql.implementation.fetch_assets import get_asset_nodes_by_asset_key
 from graphene import ResolveInfo

 from dagster import (
@@ -16,6 +15,7 @@
 from dagster._core.storage.pipeline_run import RunRecord, RunsFilter
 from dagster._core.storage.tags import TagType, get_tag_type
 from dagster._legacy import PipelineDefinition, PipelineRunStatus
+from dagster_graphql.implementation.fetch_assets import get_asset_nodes_by_asset_key

So there are a few ways to solve this. Immediately, you could add your modules as known-first-party, or add them to src. Later on, you could add pyproject.toml files to all of your packages, and we could use those to automatically detect module roots (when we support cascading configuration files).

I'm gonna try to write up a proposal for how this system change before I implement it, to ensure that it works well for individual projects and monorepos.

My current plan is as follows:

From now on, only consider pyproject.toml files with a tool.ruff section.
Always use the pyproject.toml containing a tool.ruff section "closest" to a given file.
Always resolve paths (like per-file-ignores, exclusions, etc.) relative to the pyproject.toml file.
Add an extends key to pyproject.toml, which takes a relative path to another pyproject.toml and performs a deep merge with the inherited pyproject.toml.
Modify the semantics of extend-ignore and extend-select to always extend and never override. (This would allow nested configs to add and remove errors from parents without risk of overriding a parent's extend-ignore or extend-select.)

A couple other relevant details:

If we can't find any pyproject.toml file, we'll just use the current working directory and default settings. (So we'll probably remove the .git detection?)
We could also support a ruff.toml file similar to Hatch's hatch.toml.
We'll need to remove some keys from the Settings struct (like --format) which don't make sense in an inherited model and only as top-level options.

One thing I'm unsure of is how the src path resolution should work here (which, today, is only used for inferring first-party imports, but in the future will be applicable beyond that).
Thinking aloud for a sec, let's say I have the following setup:

./python_modules/dagster/dagster
./python_modules/dagit/dagit
./examples/docs_snippets/docs_snippets

Say, in my root ./pyproject.toml, I have:
[tool.ruff]
src = ["python_modules/dagster", "python_modules/dagit"]

And in ./examples/doc_snippets/pyproject.toml (which I want to customize to exclude E501, or something), I have:
[tool.ruff]
extends = "../../pyproject.toml"
extend-ignore = ["E501"]

The nice thing about this model is that running ruff examples/doc_snippets from root and ruff . from ./examples/doc_snippets will have the same behavior, which is a great property and one that @smackesey has brought up a few times.
The confusing thing is that because we set src = ["python_modules/dagster", "python_modules/dagit"] in the root ./pyproject.toml file, and we're inheriting it in ./examples/doc_snippets/pyproject.toml, we won't treat any of the doc_snippets imports as first-party.
To achieve that, we'd need to add src = ["."] to ./examples/doc_snippets/pyproject.toml, or include "examples/doc_snippets" in the root ./pyproject.toml file.
A few ways to solve that problem:

Don't solve it, and assume that you should enumerate all modules in the root pyproject.toml.
Add extends-src = ["."].
Do something else? Infer sources differently?

Hey Charlie thanks for writing this up. In general I really like this plan as it incorporates basically everything I requested! Some specific questions/comments:

Modify the semantics of extend-ignore and extend-select to always extend and never override. (This would allow nested configs to add and remove errors from parents without risk of overriding a parent's extend-ignore or extend-select.)

(1) Will extend-exclude get the same treatment?
(2) Would it be possible in this scheme to override (without the old mechanism of direct setting overwriting) an inherited select/ignore by setting the opposite parameter? So if the parent config does --extend-select=F401, will the current config's --extend-ignore=F401 beat out the parent?

We could also support a ruff.toml file similar to Hatch's hatch.toml.

I think this is important since other tools may deal with pyproject.toml the way ruff currently deals with it-- i.e. thinking the closest one is the source of truth regardless of the existence of a tool-specific section. Like if you have a root pyproject.toml (R) and a subproject pyproject.toml (S), another tool might discover S inside the subproject, and even though there are no settings for the tool, not look any further up to find R (where it is configured). If we allow ruff.toml then users always have an option to configure ruff without screwing with the config of other tools.

One thing I'm unsure of is how the src path resolution should work

Before commenting, I need to clarify my own understanding of src-- is the idea that the union of all files rooted under an src entry constitutes one big body of "first-party" code? For example, below there is an example pyproject.toml and some imports in a hypothetical dagster-graphql file. I marked the imports with whether they are considered "first-party" given the settings. Are my marking correct?:
### pyproject.toml (root)

[tool.ruff]
src = [
    "python_modules/dagster/dagster",
    "python_modules/dagit",
]

### python_modules/dagster-graphql/dagster_graphql/foo/bar.py

from dagster import op   # first party
from dagster_graphql import implementation  # third party

Let me do a bit of research into how isort handles this. (The current logic is based on reorder-python-imports which I liked for its simplicity.) It's not totally clear to me how you would reliably detect the root package for a given file. E.g., above, how would you know that from dagster_graphql import implementation is first-party, but from foo import other_thing isn't?

I guess you could traverse upwards and look for __init__.py, but I think there are cases like namespace packages where __init__.py is omitted. (I can't really remember, I always try and get in and out of that kind of stuff as quickly as possible.)

E.g., above, how would you know that from dagster_graphql import implementation is first-party, but from foo import other_thing isn't?

Pretty sure every Python module has a unique __name__:
$ ipython

In [1]: import dagster._core

In [2]: dagster._core.__name__
Out[2]: 'dagster._core'

Once you have the name of the current module, you can easily tell if the module being imported from should be first-party or not.
So you would need to model the logic used to generate a module's __name__-- not sure off the top of my head how it's done for namespace packages, but I've learned it before so I'm going to look into it.

I do think that the current behavior is similar to isort's? I recreated the example above, and running isort on this directory treats both of those imports as third-party:

I do think that the current behavior is similar to isort's?

Interesting, yeah you're right-- in that case, IMO this represents an an opportunity to improve on isort's behavior. It is confusing to not see intra-package imports classified as first party by static tooling, because logically they are first-party.
Let me just describe what I think is the ideal functionality, with some concrete examples from Dagster:

Within a single run of ruff, ruff is able to vary the set of first-party packages depending on what file is being processed.
The current package is always classified as a first party package.
This is achievable with minimal configuration.

Regarding (1), this matters because a monorepo can easily contain, e.g. example project code (ours does) which should treat the main packages as third-party.
(2) is tricky to nail 100% because a module's __name__ is determined during the import process-- I don't think there's a 100% reliable way to determine it statically. However, tracing __init__.py up the file hierarchy is going to work in 99% of cases. My preferred solution is that this is the first step in a "first party" check, then it falls back to src and known-first-party.
However, if you decide to go with a wholly explicit approach (all first party must be listed in src), I think the status quo could be improved by allowing glob patterns here. Like I've mentioned before, Dagster has like ~50 packages. New examples etc are added fairly regularly. It is a maintenance burden to keep an accurate list of these in config. But e.g. this would be much easier:
src = [
    "python_modules/*",
    "python_modules/libraries/*",
    "examples/*",
    "helm/dagster/schema",
    "integration_tests/test_suites/*",
    "integration_tests/python_modules/*"
]

This would capture all of Dagster's packages. A caveat is that this overshoots a little bit-- like python_modules/libraries would be captured by python_modules/*, but it shouldn't be on src-- so some kind of exclusion (maybe exclusion patterns like git uses) or additional check logic would be required.

Another possibility, and I think you ultimately might need something like this anyway if you want to replicate e.g. pylint or pyright' s ability to catch unresolvable imports, is to make use of sys.path and basically simulate the logic of Python's import system. This would probably give the best experience. You would want to provide a python-interpreter or python-path setting like that provided by pylance/pyright that you could set to a virtualenv.

Ok cool. This all makes sense. I'm leaning towards the __init__.py tracing... but that opinion may change as I spend more time with the problem.

I'll provide an update here when I have an estimate of when this should all ship. I'm gonna ship pieces of it incrementally.

Another config-related item that might be usable-- environment variable interpolation, specifically for the planned extends field. Our use case is that we have a second internal repo where we've had to maintain a copy in pyproject.toml of the config from the OSS repo. But ideally we could just do this:
[tool.ruff]
extends = "${OSS_REPO}/pyproject.toml"
# ... a few internal-specific settings

This becomes more useful the more repos you have.

Alright, let's see how much of this I can get done today.

Hierarchical settings (use the closest pyproject.toml for every file) is pretty much good to go in #1190.
(I have to make some decisions around how Ruff behaves when it can't find a pyproject.toml, and how it treats a few of the special-case, top-level "options" like fix = true, which doesn't easily cascade.)

@smackesey - I think I'm likely to support glob patterns in src as described above (https://github.com/charliermarsh/ruff/issues/1222).

This is going out in v0.0.178 -- both the hierarchical resolution, and the globbing (https://github.com/charliermarsh/ruff/issues/1222).

@smackesey -- Na that hasn't gone out yet. But I did ship the python_modules/* globbing which hopefully helps a bit?

Correct me if I'm wrong but the globbing just helps capture all of our packages under src, which is then used to determine first-party right? So if I did this in root pyproject.toml:
[tool.ruff]

src =[
  "examples/*",
  "python_modules/*"
]

That would mean that all of our examples and python modules would form one giant first-party blob right? So that would mean that, no matter which package I'm in, everything caught by the globs is first party. So if I were in a file examples/my-example/my_example/foo.py, and I imported dagster-aws, it would be treated as first party.
What I'm looking to achieve is to treat only the current package (and possibly core dagster) as first party. This is achievable with the new hierarchical config system by giving every package a pyproject.toml where it lists itself as first-party, but with __init__.py detection we wouldn't even need the pyproject.toml.

Yeah I think what you're describing is correct (I thought you wanted all modules to use the same set of third- and first-party rules).

So the idea was to use __init__.py to detect the current package for every file, and then automatically mark imports from that package as first-party, right?

So the idea was to use init.py to detect the current package for every file, and then automatically mark imports from that package as first-party, right?

exactly

IMO it should be on by default, but togglable with a setting. Although I can't think of why one would turn it off (doesn't mean there isn't a case!)-- it's basically the definition of "first party" to be in the current package-- and if you want to make other stuff first party too, you can always specify that explicitly.

Sounds good. This won’t go out today, but it shouldn’t be too hard to implement.


ARROW-543: C++: Lazily computed null_counts counts number of non-null entries

Green build here: https://travis-ci.org/xhochy/arrow


Define the interface for Model.py

We should discuss the interface of Model, what method should be mandatory for subclasses.
Definitions (to be added in a wiki)

[ ] Model:

Some questions

[ ] Should we have a method Initialize in the model. If so, what should it took as input?

Suggestions

[ ]

Model interface :
class Model(object):
    def get_model_output(self, inputs: theano.Varable) -> theano.Variable

    @abstractproperty
    def parameters(self) -> Iterable[theano.SharedVariable]

    @abstractmethod
    def save(self, path)

    @abstractclassmethod
    def load(self, path)

    @abstractmethod
    def initialize(self, rng)
      # A random number generator (instead of a seed) to generate the model with default initializers

    def use_regression(self, X: theano.Variable) -> theano.Variable
      return self._use_regression(self.generate_model_output(X))

    def use_classification(self, X: theano.Variable) -> theano.Variable
      return self._use_classification(self.generate_model_output(X))

    @abstractmethod
    def _use_regression(self, out: theano.Variable) -> theano.Variable

    @abstractmethod
    def _use_classification(self, out: theano.Variable) -> theano.Variable


Improve hostapd config

The hostapd config is the example config, with only minimal changes. It should be reviewed and updated with sensible settings, and config lines removed if they're the defaults.
We should at least consider:

Whether hostapd is built with config_acs, which would allow use to use auto channel selection
Understand what needs to be done to enable 802.11n support (the Pi 3 supports it, but we're only using 802.11g in the config)
country_code (and how it would be set - perhaps in the admin interface as a part of language selection for the interface)
How to set the tx power

Doco: hostapd

Make sure UTF8 SSIDs are enabled: utf8_ssid=1


Auto cleanup always keeps deleted VODs

The auto cleanup always keeps deleted VODs, even when "Keep Twitch deleted VODs" is disabled in config.
Manual cleanup works as expected.

i've seen some weird behavior, not sure how to pinpoint it though.
the log message "Cleanup old VODs for ${data_username}" shows up when it happens, does the candidate filter show anything odd?

I have a similar issue where no files are deleted.
I get this message in the logs:
Keeping [filename] due to it not being over storage limit (0.00 B/30.00 GB) and not being over vod limit (0/1)

But there are already 2 recordings of the same streamer with combined more than 30GB.
I get this message also for other streamers.

Ah okey, I see that it is ignoring the latest recording and therefore its within the limit.
So there is currently no possibility to just keep one recording and replace it every time a new recording has finished?

It works when setting the max vod count to 0. But this only works on the global setting because setting 0 on the channel vod setting makes it use the global setting.

i've rewritten it twice but still can't really understand how to handle all the cases

This works for me perfectly fine. I download all files from my public server, where I have limited storage, to my private home server where I can serve them over Jellyfin. So having set the limit of 0 globaly works for me without problems.
I think that it could work better if the total count of vods checked starts with 1, because the first vod (which was recorded) is ignored.
https://github.com/MrBrax/LiveStreamDVR/blob/b67889bae08937c058737b2acdcad30840d0ad07/server/src/Core/TwitchChannel.ts#L467
The total size would have to be increased by the size of the same last recorded vod. But I dont know where to get the value from ^^
But maybe I am overlooking something here.

i'm trying to write some tests and yeah i don't understand how this would work at all still, i'm so bad with math

ok so with a ton of tests i think it's a lot better now, but i'm still scared of vods randomly being deleted
legacy mode that only deletes one vod is still kinda broken though, but i doubt anyone but me uses it


No tasks?

What is the expected result?
See all my calendars + the Google Calendar Tasks
What happens instead?
See all my calendars but not my Google Calendar Tasks

Please use Google Keep for your tasks. These are synced to Google Now & Inbox, whereas the older Calendar Tasks are not.

Well may be I don't want my tasks to be synced with Google Now & Inbox, and instead I want to see them in my Calendar. Also the app icon is dispayed blanc, I mean only graphic part but no date. At least I'm expecting to see the date, like on the website icon.

Also may be not close the thread when I didn't even answer?!

I closed it because there is a separate extension to see your tasks in Chrome, it's just not what this extension is about.
You can always reopen if you disagree, closing an issue is not permanent.
The "no date on app icon" is a separate bug and it is not a good idea to simply change the title of a closed bug to report a completely separate bug.

I don't just want to see my taks in Google Chrome. I want to see them next to my events by dates AND in Chrome. I know there are other apps just for tasks. I'm even using one of them – SuperSimpleTasks. But yeah... I think that putting my tasks on certain dates is important and should be a part of what your app is about.
p.s. I don't know how to re-open the thread.


Add a column for the current table size in K/M/G

Is your feature request related to a problem? Please describe.
I'd like to see how much disk space my tables occupy.
Describe the solution you'd like
Currently, I can see the size of my tables in the menu (on the left). However, I'd like to see it when I list up all the tables inside a specific schema (on the right). Then I could sort my tables by size.

Describe alternatives you've considered
Write down all the table names and sizes in a spreadsheet and sort it there.

Thank you for the idea.


Rnn implementation

I wanted to try do some visualising for mddf but found that there is no range or rnn implemented yet. I don't quite entirely understand all of the code in this module yet, but there is my very simple implementation. Not entirely sure if that's exactly correct implementation from algorithmic point of view, looks way too simple, I might be embarrassing myself here.

Thanks! Published in 1.3.0.


fix(charts): Scrollbar after removing an annotation

SUMMARY
ControlPopover is in charge of handling the scroll status, however, after we remove an annotation, its ControlPopover is not longer available thus the scroll status stays hidden. We need reset it to be auto so the scroll bar shows
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
Before:

After:

TESTING INSTRUCTIONS

open mix-time series chart in explore
add annotation
remove annotation
Expected results: Scrollbar is still showing in the control panel section after you remove the annotation

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[X] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

/testenv up


Custom JSON serializer not being used for bulk operations

Hello, thanks so much for your work. I'm loving the library and relying heavily on it for a new enterprise web app.
I'm setting up import procedures but had troubles because the custom serializer is not being used with the import_bulk and insert_many methods of the collection (and possibly in other bulk operations).
When inserting a single document the custom serializer is working fine.
Can this be implemented?

Hi @sushi2all
Could you please be a bit more explicit? What do you mean by "the custom serializer is not being used"?
It is being used by all methods that send a request, including the ones you mentioned: insert_many and import_bulk. Could you please double-check that? Maybe the problem got fixed in the meantime.
I tested it locally, with the last release (commit https://github.com/arangodb/python-arango/blob/99f5d9bf9c06f6845957df4604181ac067b14feb, corresponding to 7.9.1).
Data is always normalized while processing every request. I hope I'm not being overly confusing here by pointing at the code (that's not the idea), I'm just trying to check whether I got your question right.
Please let me know whether the problem is still there, otherwise I think we can close the issue.

Closing as completed. Feel free to open another one in case you still experience any issues.


document installation / cli usage?

I attempted to use this, and am not a python expert, and wasn't sure how to install it and run it? Tried a few different things (pip, poetry, flit), and tried doing python stac_geoparquet/stac_geoparquet.py and python stac_geoparquet/cli.py. Both complained about ModuleNotFoundError: No module named 'stac_geoparquet.utils'; 'stac_geoparquet' is not a package
I'm guessing I'm just not installing it right. The CLI looks cool and I'd be psyched to use it, but not sure how.
Feel free to just give me brief instructions here and I'm happy to try and then make PR to the readme.
Thanks!

The CLI seems to be for only a limited part of the code. You can use my stactools package for the more general stuff, I think.: https://github.com/stactools-packages/geoparquet-items

I'll have to check on the CLI stuff. I haven't had a chance to use https://github.com/stactools-packages/geoparquet-items. I actually didn't realize you were implementing it outside of the stac-geoparquet repo. IMO they'd be best developed together.

As for the usage, I'll put together some examples. Does https://github.com/stac-utils/stac-geoparquet#usage work for you? A full shell session would be something like
# Make a virtual environment
$ python3 -m venv .venv  # assuming you have python, pip, and venv. brew install python3 gives this I think
$ . .venv/bin/activate  # assuming you're using bash
# Install stuff into the virtual environment
$ pip install stac-geoparquet requests
(.venv) $ python
Python 3.10.8 | packaged by conda-forge | (main, Nov 22 2022, 08:26:04) [GCC 10.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
import stac_geoparquet
item = requests.get("https://planetarycomputer.microsoft.com/api/stac/v1/collections/naip/items/ia_m_4209150_sw_15_060_20190828_20191105").json()
df = stac_geoparquet.to_geodataframe([item])
df.to_parquet("naip.parquet")
>>> import stac_geoparquet
>>> item = requests.get("https://planetarycomputer.microsoft.com/api/stac/v1/collections/naip/items/ia_m_4209150_sw_15_060_20190828_20191105").json()

>>> df = stac_geoparquet.to_geodataframe([item])
>>> df.to_parquet("naip.parquet")

I'm not sure whether the CLI should be developed here or separate. Keeping this as just a library with separate CLI ensures it's a clean interface and stactools may give it a bit more expsoure. Also, I'm starting to add a bit more to it than just using this library for conversion (although that could also be separate), see https://github.com/stactools-packages/geoparquet-items#command-line-usage

Keeping this as just a library with separate CLI ensures it's a clean interface and stactools may give it a bit more expsoure.

Maybe, but I've been doing the opposite pattern with stac-asset, where cli is an optional extra set of dependencies (e.g. click, https://github.com/stac-utils/stac-asset#installation). The issue w/ depending on stactools is that it's pretty heavy and might have dependencies you don't need.

I just ran into this, trying to install via conda-forge pixi search stac-geoparquet but noticed the PRs there haven't been merged for a while https://github.com/conda-forge/stac-geoparquet-feedstock/pulls so it's a few versions behind pypi currently (0.4.1 vs 0.6). @TomAugspurger looks like you have permissions on the feedstock, not sure why the CI's not passing.

Taking a look.

The 0.6 PR is merged in https://github.com/conda-forge/stac-geoparquet-feedstock/pull/7 now. It should be available through conga-forge soon.


[Feature Request] A Switch for Theme

Like the title says, a simple switch to switch between dark or light themes without having to depend on the windows default app theme.
Something like this:

I guess why not

Related to https://github.com/martinet101/WingetUI/issues/117

Done!


Refactor the handler classes

Make a base class that handles loading and json parsing config files
Have the json parsing thing be a generic that takes the type that should get returned (or just have the caller do as foo?)
Can the base class access this.handlerName for logging purposes and the logging can happen here too?

The handler classes are singletons, this doesn't work.


Running on own dataset

Hi,
I am planning to run this on cityscapes dataset to check the results(Detection got from instance).However It seems extremely complicated to train a simple network. Just changing the image paths is not sufficient.
Are you planning to add any read me on how to train on other datasets?
If not could you let me know what all I files I would need to change to simply train ?

@athus1990  Did you tried the training.py script? If yes, you can see the script involved in the training process. In general, datasets.py, loader.py, and training.py. I recommend to you try to train using the VOC and COCO dataset with different images. There is a demo.py also.
When you said: Just changing the image paths is not sufficient. what do you mean by that? Did you got and error?

Hi @athus1990,
I'm planning to rewrite the data pipeline with the new tensorflow Dataset functionality to make it neater.
For now, if you want to run it with another dataset, you need to create a new loader that reads images and their annotations (similar to voc_loader.py or coco_loader.py) and to write a function in datasets.py that encodes your data into TFRecords.
P.S. To train on a new dataset is almost never as easy as just changing the paths ;)

@fastlater @dvornikita Thanks a lot for the comments. Yea I prepared my data to match the VOC datatsets(xml annotations and image labels for segmentation).It is just that somewhere in the middle things fail and I need to debug using breakpoints in pycharm. It gets pretty complicated as even the data loader is using TF and parallel reading modules and unless you run the graph you wont know what went wrong.
I was just wondering if you could add a simple readme for the steps to be taken for new dataset. Or at least have an alternative simple data loader/reader like you said. I shall work on it and post my experiences or changes I made for it to work with cityscapes too.
Thanks a lot!

@fastlater @dvornikita I have started training on cityscapes successfully. However I had a question regarding the classes.

As you can see in cityscapes dataset not all segmentation classes have detection. In your code I have used the same classnames so they match the same segmentation ids.Therefore for segmentation classids 0 to 10 there are no bounding boxes at all from xml files.Do you think this will affect the performance of the other classes that have detentions while training?

@hondaathma Well, I haven't train the model with new classes yet.
3 ideas for the missing bounding boxes:

Check in the internet if someone added the boxes and uploaded the file somewhere.
Create a code to check pixels through the segmented ground truth and automatically add the box.
Manually add them using labelImg (desperate approach but just in case that to test this dataset is important for you).

If you wanna try with changes in the code, you will have to wait for @dvornikita  reply.

@fastlater  A quick update,
I was able to still train with the imbalance is classes without much change to the code. that is the object detector predicts boxes for all the classes that have bboxes and the segmentation segments all the classes even background(like road,sidewalk etc.). The accuracy is not that great.But this might be because of the citsycapes image size is very huge and resizing to 300 or 512 doesnt make sense.
"Create a code to check pixels through the segmented ground truth and automatically add the box."
-is not a good idea. objects that are close together will be segmented as one cluster.putting a bounding box over all of them will just give one huge bbox.What we need is instance.
Any way the point is the net still works without the need for classes to have both bbox an segmentation Ground truth.
Thanks!

Hi @hondaathma, I think it makes perfect sense to not detect the sky, fences, vegetation and so on. As for traffic signs, you can obtain boxes from instance segmentation masks. In the mode where you have fine annotation and ignoring crowd annotations for this class, I guess you will be able to train the model better. Ideally, you would like to not consider anchor boxes that match to crowd annotations at all in the final loss, to not confuse the network by penalizing these detections. Unfortunately, this functionality is not implemented in our pipeline.

Ideally, you would like to not consider anchor boxes that match to crowd annotations at all in the final loss, to not confuse the network by penalizing these detections.

Hey @dvornikita when you said crowd annotations  you mean boxes that fall on sky,fences,vegetation and so on right(and not on car pedestrian and so on right)?
One more question. when you  choose anchor boxes sizes how do you do it? for example if we find the mean bounding box size of pedestrians in the image can we use that as information to change the anchor size? If so where should I change or add more anchor sizes in the code?
Only place i see it is in  'aspect_ratios': [[2], [2, 3], [2, 3], [2, 3], [2], [2]], in config.py but I dont understand what these numbers mean?
Thanks for all your help.

@hondaathma I meant something different. Sometimes a bunch of cars or street signs could be segmented as one instance of its class with mark "crowd" or so. It typically happens when the instances are too small to label each separately and are close to each other so they could be grouped and labeled as one thing.
The initial tiling is not conditioned on anything (neither on the classes) so you would bias by doing so. If it is your plan, do it as follows:
Let's say we have L - a list of lists - which is parameter defining aspect ratios, let's say L = [[2], [2, 3], [2, 3], [2, 3], [2], [2]]. It's necessary that len(L) = n, where n is the number of layers from which you do detection - the number of layers in the upscale-stream. If L[i] = [2, 3] it means that for the i'th layer we use 5 sets of bounding boxes with different aspect ratios: [1, 2, 1/2, 3, 1/3]. If L[i] = [2] then it's [1, 2, 1/2] and so on.

I want to test the blitznet on the cityscapes, however, i get the 'InvalidArgumentError (see above for traceback): assertion failed: [labels out of bound] [Condition x < y did not hold element-wise:x (mean_iou/confusion_matrix/control_dependency:0) = ] [11 11 11...] [y (mean_iou/ToInt64_2:0) = ] [21]' error, @hondaathma. Can you provide some advise?

@kecaiwu I believe something is wrong with the evaluation mean ap caluclation. In the code the meanAP for detection is calculated over all the classes. but mean in cityscapes has to be only from class 11 to class 20( as class1 to class 10 are all background,road etc..).
so i had to change this function evaluation.py
 def compute_ap(self):
        """computes average precision for all categories"""
        aps = {}
        for cid in range(11, self.loader.num_classes-1):
            cat_name = self.loader.ids_to_cats[cid]
            rec, prec = self.eval_category(cid)
            ap = voc_ap(rec, prec, self.loader.year == '07')
            aps[self.loader.ids_to_cats[cid]] = ap
        print 'calculated MAP for number of class: '+str(len(range(11, self.loader.num_classes)))
        return aps

Try debugging it step by step to see where exactly it is failing.

Thank your for help, now is ok  @hondaathma

Hi @hondaathma
I just started using this network and also interested in training it on Cityscapes. Can I ask a few questions regarding how to train on Cityscapes? First question is where i can download the Cityscapes instance dataset? Their Download page seems not have instance segmentation?  Second question is if you could share the process what you have changed to make it work on Cityscapes and how you turn the instance segmentation to bounding boxes? Really appreciate your help!

Closing due to lack of recent activity.

@hondaathma
Hello, thank you for your training in the cityscapes!
Recently, I also trained with blitznet on cityscapes. The category settings for detection and segmentation are consistent with you.
I want to know what is the final detected mAP and split mIoU that you get? I finally got 42.2 mAP and 50.6 mIoU after training 65,000 iterations. I feel that the split score is too low, and the test score is too high.I will be very grateful to you if you tell me the results of the final detection and segmentation you got.


Add a way to edit/add more endpoints after creating a Project

I wanted to add a staging endpoint URL to a project and noticed that it currently doesn't have that option.

@lucasbento Since 0.1.4 you should be able to add more endpoints via the settings button

Oh, alright, that's cool.
Didn't see that button over there.
Thank you, @olivierandriessen!


Implement onClick hook

Currently it isn't possible to specify a handler at the <Tree /> level for node onClick events.

[x] Implementation
[x] Unit test
[x] Docs

Can we get the metadata of the node clicked?

Hi Suzanna,
Can definitely push this as 1.3.1, what exactly do you define as metadata in this case?

Hi,
All the nodes should be able to contain the metadata related like id, label etc. So on click, all these data should be accessible on the callback.
eg: children:[
{
name: "child1",
metadata: {
id: 1
}
]
So if we click on this node, I should receive, {name: child1, id: 1}

Is it possible to release with this requirement today? I need this kinda urgent. Thank you.

I'm currently at work but I will try to fit it in afterwards :)
In the meantime feel free to add a pull request with your suggested changes if it's urgent for you.

@Suzanna-Manoj-Williams
Published 1.3.1, onClick handler now passes nodeData as the first param of the callback function.


Tiny wording fix

Can't tell what's been changed from the diff... what did you change?

Rich diff did the trick.
- For applications that needs ad-hoc custom
+ For applications that need ad-hoc custom

Ha, ok


Add career-related resources for junior software developers

Add links to resources for junior software developers, such as:

Internships and apprenticeships that don't require a CS degree; diversity-focused programs are especially welcome
Websites, books and apps for tech interview prep
Job boards
Other info that might help someone get their first job as a developer.

Thank you for curating this list. I would like to add some resources that I have found useful! :)

@TeddyGavi, sure, that would be awesome! Feel free to create a PR in this repo.


Invalid subcommand arg

scala.cli.integration.SipScalaTests.test directories command when run as* needs to be adjusted, as it relies on the old error message


License not recognized as BSD-3-Clause.

The license is not being recognised by github as BSD-3-Clause. For an example that is recognised, see the license of hpack-dhall.

Resolved by GitHub support, closing.


Add location editing to API

Should be doable on the API at this point as per this PR https://github.com/superTeamAwesomeMegaFun/growlerdar/pull/24


gather more statistics on definition changes that force the slow path in LSP

Motivation

Stripe's statistics show that something like 50-60% of the reasons for taking the slow path (i.e. typecheck the entire world) in LSP are related to changed definitions.  We'd like to try and understand what sort of changes are triggering this.  Ideally we can get enough information that we can decide the best plan for driving that number down and taking the fast path more often.
Test plan

See included automated tests.  I have not benchmarked this, but I am guessing that tossing a few more arithmetic operations into GlobalState::hash (especially since they could be computed in parallel with hierarchyHash, subject to functional units) is not going to have that big of an impact.  Totally willing to revert after we gather some data, too.

The only thing I'm worried about with this change is the impact it has on max_rss. It looks like we're adding 20 bytes per core::File.

max_rss on Stripe's codebase is noisier than 20 bytes/file * 150k files.  I think the max_rss concern is totally valid, but I also think there are better ways of addressing max_rss issues.  And there's also backing this out once we have a sense of what the data is telling us.


Add package.metadata.docs.rs

Fix https://github.com/yewstack/yew_router/issues/253

Thanks, I didn't realize the failure on the docs site. This should prompt me to put out a 0.10.1 soon.


⚠ Bofrost.at has degraded performance

In ea9481a, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1082 ms

Resolved: Bofrost.at performance has improved in d0f31bd after 11 minutes.


Should KNN indexing throw an exception if beamWidth < maxConn to alert users to misconfiguration?

Description
I was using luceneutil's knnPerfTest.py to test KNN recall tradeoffs, and accidentally tested larger and larger maxConn that was beyond my beamWidth.
If I understand these hyper parameters correctly (it's entirely possible I do not!), then that makes no sense (allowing maxConn < beamWdith)?  beamWidth is the top K nearest vectors that will be retrieved (and the size of the priority queue) during indexing of a new vector to record into its nearest neighbors list in the index.
So it is likely an accident if the user tries this, and maybe we should throw an exception so they catch/realize the mistake?  Else it's trappy...

@mikemccand this seems like a valid configuration to me as we will add "back links" to new nodes. Thus its possible for the number of connections to grow for a node after it has been added.
It is a weird configuration for sure, but I am not sure its invalid.

Oh!  OK I was confused then.  I thought a node's edges didn't change after it (its vector) was added.  OK false alarm, thanks for the clarification @benwtrent!


Latest version includes build output for macOS

Commit c0ee94005370 updated TBB to 2017, but also includes build output for macOS, which I assume was added accidentally. That should be removed (although ideally from the history completely).

Can you be more specific? Which files are the build output? I remember checking and not seeing anything objectionable.

https://github.com/wjakob/tbb/tree/master/build/macos_intel64_clang_cc7.3.0_os10.11.6_release

argh :-S. That is indeed a problem! I will have to rewrite history to get rid of this.
cc @hjmjohnson

@wjakob Yeah, I had mentioned that problem in https://github.com/wjakob/tbb/pull/17#issuecomment-246200964

Sorry, I did not spot them before merging and assumed that @hjmjohnson removed them.

No problem! Thanks for your help! :+1:

I am sorry.  I did remove them at least 1 time, but a subsequent update must have re-introduced them.
What can I do to help resolve this issue?
Hans

History is rewritten.

Awesome. Thanks!

@wjakob @LogicalKnight
THANK YOU!


Introduce kluent

issue
none
change detail

introduce kluent.
Add default parameter to Scope constructor.

Codecov Report

Merging #17 into master will increase coverage by 0.44%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master      #17      +/-   ##
============================================
+ Coverage        22%   22.44%   +0.44%
- Complexity       44       45       +1
============================================
  Files            36       36
  Lines           450      450
  Branches         58       58
============================================
+ Hits             99      101       +2
  Misses          345      345
+ Partials          6        4       -2

Impacted Files
Coverage Δ
Complexity Δ

...src/main/java/com/sys1yagi/mastodon4j/api/Scope.kt
100% <100%> (ø)
4 <3> (-1)
:arrow_down:

...src/main/java/com/sys1yagi/mastodon4j/api/Range.kt
100% <0%> (+40%)
4% <0%> (+2%)
:arrow_up:

Continue to review full report at Codecov.

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


GoLang: 8.6.DOC Concurrency - Select

Description 📜
Buffered Channels
Basic-Intermediate-Advanced information about Select in Golang, also needs to create some examples.
This must be inside Concurrency folder.

References:

Geeks for Geeks
A Tour of Go
gobot

Domain of Contribution 📊

[x] Golang

Instructions ✔

Kindly make a README going over the subtopic.
Changes should be made under the Golang branch only and push your PR to the same.
This issue is for GWOC'21 contributors only.
You need to push in a single commit. If there exists more than one commit then you need to squash your commits into one commit.

@amino19 assign me


fix: name tag merge order

Description
When passing a tags map with a "Name" key, the custom name generated by this module (appending the "private/public/db" suffix to the subnets name, for example) is ignored.
This happens specially when using in conjunction with the terraform-null-label module, which is already exporting the tags map with "the value of the Name key is set to the module id output", when passing directly the tags from one module to the other (tags = module.terraform_null_label.tags).
Motivation and Context
This PR fixes issue #466, by changing the order in which the tags are merged.
As per Terraform documentation over the merge function, "if more than one given map or object defines the same key or attribute, then the one that is later in the argument sequence takes precedence."
Therefore, when the tags map used as an input of this module already contains a "Name" key, the merge will keep that one instead of using the generated one with format.
Breaking Changes
No, it's backward compatible as it does not break nor recreate anything; it will just update the tags (including the "Name" one used as the resource human-friendly ID).
How Has This Been Tested?
This was applied on an existing config, with just the expected change on affected resources managed by this module, like this one on a public subnet:
  # module.base_vpc.aws_subnet.public[0] will be updated in-place
  ~ resource "aws_subnet" "public" {
        id                              = "subnet-0fdca660bc0b7d881"
      ~ tags                            = {
          ~ "Name"      = "my-subnet-name" -> "my-subnet-name-public-us-east-1a"
            # (6 unchanged elements hidden)
        }
      ~ tags_all                        = {
          ~ "Name"      = "my-subnet-name" -> "my-subnet-name-public-us-east-1a"
            # (6 unchanged elements hidden)
        }
        # (9 unchanged attributes hidden)
    }

Hi,
This is desired functionality. If a user does not want to specify Name tag, it will be set for them. Otherwise, tags will be overridden in the right sequence.
Also, this PR is not backward compatible because it will change tags for all existing users.


Icons do not fit mobile screen.

On the TV series screen, the icons don't fit within the constraints of the screen. It's not that big of a deal, I'm not too sure what import causes it:

I'm using the Jellyfin android client in the screenshot, however the issue also occurs on the mobile website too.

I've managed to fix it by disabling the fixes.css for mobile screens.

Well don't close the issue, that's a workaround, still means there's something that needs "fixing" in theme itself.

Coincidentally fixed by 9a9d7b9809025f94624c9c5b80b0e3384a82b830


Fix faststream docs gen producing wrong asyncapi

Publishers and subscribers in the doc should be named after the topics they are connected to, and that is not the case in the generated docs
The topic name is described in the "channel specific info"
Schema is generated in https://github.com/airtai/faststream/blob/main/faststream/kafka/asyncapi.py#L31

@Sternakt here is a my naming rules suggestion
from faststream.kafka import KafkaBroker

broker = KafkaBroker()

@broker.subscriber("test-topic")
async def simple_handler():
    """
    test-topic/SimpleHandler
    test-topic/SimpleHandler/Message
    SimpleHandler/Message/Payload
    """

@broker.subscriber("test")
async def test_handler():
    """
    test/Handler
    test/Handler/Message
    Handler/Message/Payload
    """

@broker.subscriber("test")
async def handle_test():
    """
    test/Handle
    test/Handle/Message
    Handle/Message/Payload
    """

@broker.subscriber("test")
@broker.subscriber("test2")
async def handle_multi():
    """
    test/HandleMulti
    test/HandleMulti/Message

    test2/HandleMulti
    test2/HandleMulti/Message

    HandleMulti/Message/Payload
    """

@broker.subscriber("test", title="custom_name")
async def handle_manual():
    """
    custom_name
    custom_name/Message
    custom_name/Message/Payload
    """

def filter_naming():
    @broker.subscriber("test", filter=lambda m: m.content_type == "application/json")
    async def handle_json():
        """
        test/Handle
        test/Handle/Message  (payload oneOf)
        """

    @broker.subscriber("test")
    async def handle_default():
        """
        test/Handle
        test/Handle/Message  (payload oneOf)
        """

    """
    HandleJson/Message/Payload
    HandleDefault/Message/Payload
    """

from pydantic import BaseModel

class PydanticPayload(BaseModel):
    ...

@broker.subscriber("test")
async def handle_pydantic(msg: PydanticPayload):
    """
    test/HandlePydantic
    test/HandlePydantic/Message
    PydanticPayload
    """

# Publisher

@broker.publisher("test")
async def handler():
    """
    test/Publisher
    test/Publisher/Message
    test/Publisher/Message/Payload
    """

@broker.publisher("test", title="custom_publisher")
async def handler():
    """
    custom_publisher
    custom_publisher/Message
    custom_publisher/Message/Payload
    """

@broker.subscriber("test")
async def handler() -> PydanticPayload:
    """
    test/Publisher
    test/Publisher/Message
    PydanticPayload
    """

# RMQ Case

from faststream.rabbit import RabbitBroker

broker = RabbitBroker()

@broker.subscriber("test")
async def handler():
    """
    test/_/Handler
    test/_/Handler/Message
    test/_/Handler/Message/Payload
    """

@broker.subscriber("test", "topic")
async def handler():
    """
    test/topic/Handler
    test/topic/Handler/Message
    test/topic/Handler/Message/Payload
    """

...

subject name
message name
payload name

Looks fine, I have two objections:

In these cases:

@broker.subscriber("test")
async def test_handler():
    """
    test/Handler
    test/Handler/Message
    Handler/Message/Payload
    """

@broker.subscriber("test")
async def handle_test():
    """
    test/Handle
    test/Handle/Message
    Handle/Message/Payload
    """

I would still keep the whole function name, not remove topic from it, seems that we are adding non necessary complexity into the parsing and naming otherwise

In the filter case, how do we decide the function name that will be used in the documentation, lets say they are named something more complex:

def filter_naming():
    @broker.subscriber("test", filter=lambda m: m.content_type == "application/json")
    async def parse_json_msgs():
        """
        test/Handle
        test/Handle/Message  (payload oneOf)
        """

    @broker.subscriber("test")
    async def default_handler():
        """
        test/Handle
        test/Handle/Message  (payload oneOf)
        """

    """
    HandleJson/Message/Payload
    HandleDefault/Message/Payload
    """

Should there still be a test/Handle or something else in the docs?

I suggest to remove topic name from the function name
I thought about looking for same prefix for functions with filters, but, probably, we can use the first occured name

I may be nitpicking, but what about something like this, do we: remove all occurrences in string, only remove when suffix/prefix, remove when it's a standalone verb
```@broker.subscriber("data")`
async def save_data_to_database():
"""
test/SaveToDatabase or SaveDataToDatabase or SaveToBase
test/Handler/Message
Handler/Message/Payload
"""
Obviously all occurrences is a bit naive, but just to show that this unecessarily complicates the logic, I would rather keep the whole function name

2. I agree, although, we could use a format like this:
topic:HandleFunc1/HandleFuncN...
And in rabbit case:
queue/exchange:HandleFunc1/HandleFunc2

well, probably, we can leave the function name originally and do nothing with it. Looks like a best solution, especially, cuz user can manually change name directly, it just a default logic
I still think that the prefix logic is a better decision, but we should document this behavior

So, here is the compiled proposition for naming based on the discussion:
Async Endpoint Naming Rules
Endpoints should follow the <topic>/<handler> naming expression. The topic name will remain as it was defined, and the handler name will be defined in a camel case convention.
Basic Example
The most basic endpoint example would be this:
@broker.subscriber("test-topic")
async def simple_handler():
    pass

The naming for this case will be:

Endpoint name:

test-topic/SimpleHandler

Message name:

test-topic/SimpleHandler/Message

Payload name:

SimpleHandler/Message/Payload

Handling Multiple Topics
In the case of handling multiple topics, the handler name will stay the same, but the topic prefix will change accordingly:
@broker.subscriber("test")
@broker.subscriber("test2")
async def handle_multi():
    pass

First endpoint naming will be:

Endpoint name:

test/HandleMulti

Message name:

test/HandleMulti/Message

Payload name:

HandleMulti/Message/Payload

Second endpoint naming will be:

Endpoint name:

test2/HandleMulti

Message name:

test2/HandleMulti/Message

Payload name:

HandleMulti/Message/Payload

Custom Names
Custom names can be used to override the default naming convention:
@broker.subscriber("test", title="custom_name")
async def handle_manual():
    pass

Endpoint name:

custom_name

Message name:

custom_name/Message

Payload name:

custom_name/Message/Payload

Filter Naming
Naming the filters will be done as naming separate topics, so the endpoints will be all documented in the AsyncAPI specification:
@broker.subscriber("test", filter=lambda m: m.content_type == "application/json")
async def handle_json():
    pass

@broker.subscriber("test")
async def handle_default():
    pass

First endpoint naming will be:

Endpoint name:

test/HandleJson

Message name:

test/HandleJson/Message

Payload name:

HandleJson/Message/Payload

Second endpoint naming will be:

Endpoint name:

test/HandleDefault

Message name:

test/HandleDefault/Message

Payload name:

HandleDefault/Message/Payload

Pydantic Payload Description
When we define the structure of the payload using pydantic, the name of the payload will reflect the name of the pydantic class that defines the payload structure:
from pydantic import BaseModel

class PydanticPayload(BaseModel):
    ...

@broker.subscriber("test")
async def handle_pydantic(msg: PydanticPayload):
    pass

Endpoint name:

test/HandlePydantic

Message name:

test/HandlePydantic/Message

Payload name:

PydanticPayload

RMQ Case
In the RabbitMQ case, we don't have topics but queues and exchanges, so the naming must include both. The  now becomes /. If the exchange is not defined, it will default to "_":
@broker.subscriber("test")
async def handler():
    pass

Endpoint name:

test/_/Handler

Message name:

test/_/Handler/Message

Payload name:

test/_/Handler/Message/Payload

@broker.subscriber("test", "topic")
async def handler():
    pass

Endpoint name:

test/topic/Handler

Message name:

test/topic/Handler/Message

Payload name:

test/topic/Handler/Message/Payload

I am still not sure about filtering case. Looks like oneOf payload type is the best solution, but I can't image channel naming rule in this case

@Sternakt can we use the first function handler name in the filtering case for now? I am still adhere to one subscriber for filters, but with the oneOf payload, but I am really confused about naming in this case.. Probably, using the first occured is OK

@Sternakt can we use the first function handler name in the filtering case for now? I am still adhere to one subscriber for filters, but with the oneOf payload, but I am really confused about naming in this case.. Probably, using the first occured is OK

Yes, I am implementing it like that right now
I am having some issues with the parsing of payloads, but I should resolve it in the morning
Also, including the exchange in the rabbit naming case requires some rework on the tests but it should be ready for merge soon

dirty-equals allows you to use regex as a string template, so we can use it in naming tests to support variations
Also, don't forget to check FastAPI integration case naming too


Expose Better Global Config API

We create a Vue 3 app like this:
// main.js
import { createApp } from 'vue';
import { setup } from './setup';

const app = createApp(App);
setup(app);
app.mount('#app');

Why not make the vue-test-utils global configuration for the mount method similar so we can share the same setup function?
// jest.setup.js
import { app } from '@vue/test-utils'
import { setup } from './setup';

setup(app);

Where setup is a function that might look like this:
// setup.js
export function setup(app) {
  installIcons(app);
  setupI18n(...).install(app);
  app.use(createPinia());
}

I don't fully understand your proposal. What API are you suggesting?

Came here with similar desire.. I found some other docs mentioning what we might need. I don't think the official vue-test-utils-next docs mention  how to precisely configure globals.
// setup.jest.js
import { config } from "@vue/test-utils"

config.global.mocks = {
  mock: "Default Mock Value"
}

Hi! We do, although they might be hard to find:
https://next.vue-test-utils.vuejs.org/api/#config-global
Really open to suggestions on how to improve docs! 🙌

Does the above docs solve the problem @scvnc and @micDropper?

@afontcu

Really open to suggestions on how to improve docs!
That example is basically unreadable. Any way it could be converted to either JavaScript or English

not sure if passive agressive or real feedback 🤔 You mean that the example on how to mock $t globally is unreadable?

Sorry, was referring to the signature. The Component.vue and Component.spec.js are fine.

I was thinking rather than exposing a global config API unique to vue-test-utils, just extend Vue 3's app configuration API. I'm sure there is a typescript interface somewhere defining exactly what Vue 3's createApp() method returns. Vue-test-utils could extend that interface and add some of it's own config options, maybe add methods like app.mock(<something>). This would allow Vue 3 and vue-test-utils to share the same Vue configuration by using the exact same setup(app) function (see original post). Additional setup specific to vue-test-utils could take place before or after the shared Vue configuration happens.
Now, I am assuming it's desirable to have the exact same Vue root-app configuration in unit tests as in production, but I may be wrong on that. But even if I am, this API doesn't have to be shared. It could be configured completely separately. I think it would make more sense to developers already familiar with the Vue 3 application config API.

Yep, createApp returns an App type.
Back on the original post, I haven't seen this before:
// main.js
import { createApp } from 'vue';
import { setup } from './setup';

const app = createApp(App);
setup(app);
app.mount('#app');

Either way, I think the challenge people are facing is Vue separates the config setup from mount. For example:
// create
const app = createApp()

// setup
app.use(...)

// mount
app.mount('#app')

But VTU does all of these in one go. We use global to install plugins, mixins, etc.
We cannot change the existing behavior, but we could make the internals more modular, which might help. We almost have what you want... createWrapper, which receives an app argument and returns the VueWrapper with all the fun APIs like setProps, get, etc. That's here. As you can see it receives a few extra arguments like $vm, so we'd probably need to move a few things around. This would be a kind of "low level" API, since you'd need to deal with installing plugins yourself, you wouldn't have access to any of the mounting options, etc.
Does this sound like what people are asking for? It's not as straight-forward to just export this method, we need to consider what else needs to be handled (eg, do you want to use stubs? If so, how do you think those should be applied? How should the API look?)

Firstly, thanks for your attentiveness to this issue.
Perhaps the docs have been updated or else I am reading the docs better now that I no longer hastily trying to figure this out while getting some tested features refactored.  It seems clear now.
I see a useful example illustrating that test-utils exports a 'global' config object as depicted by the imports in the example. I could not see it immediately and I thought the signature was referring to MountingOptions.global on the mount interface, which caused me to make a wrapped mount for my project which all tests must use.
Verbiage of 'global configuration' in the mount function
possible confusion point

New clarity in the docs
Now I scroll down and see this helpful example, perhaps I missed it last time.

That is very confusing. It should be something like "accepts a second parameter that defines the component's state and configuration. It also accepts a global key <insert link to global: https://next.vue-test-utils.vuejs.org/api/#global > that defines default configuration".
We should also have a simple example there, something like:
const wrapper = mount(Component, {
  props: {
    msg: 'world'
  },
  global: {
    plugins: [vuex]
  }
})

That would make it more clear. A PR would be welcome!
Also, still happy to explore a better separation between config and mounting.

I'd be glad to PR for some clarity.  As I see how the markdown is rendered, I suspect part of the issue is how title anchors are used and possibly conflict.  I almost need to make a flowchart in reading to untangle it because I get into a path of confusion when clicking through the anchor links.


Multiple /twsf guess commands can return the text of an initial command and not update when new guesses are submitted

https://cdn.discordapp.com/attachments/990643818393129040/993187879109017611/Screenshot_20220703-121348.jpg

FeMan: Did my guess come through? Apollo AS-203
FeMan: AS-203 - Uncrewed flight, exploded in space from pressurizing hydrogen tank
benetherington: It did!
FeMan: Ok kept showing me test after my... Test. So.. lol
benetherington: Image
benetherington: Oh, hm, that's weird.
FeMan: Well I ended up putting the full thing in there.
benetherington: Can you send me a screencap of the feedback you got? It's not visible to me and the logs probably got dumped bc I didn't have them pulled up.
benetherington: Oh! Yep, I see that too now.
FeMan: Image
benetherington: Hmmm it should show your actual text. It doesn't go and pull anything out of the database, so I've zero idea what's going on there.
FeMan: Me either! Haha


Correctly validate URLs in XFA documents (bug 1731240)

With this patch we'll ensure that only valid absolute URLs can be used in XFA documents, similar to the existing validation done for "regular" PDF documents.
Furthermore, we'll also attempt to add a default protocol (i.e. http) to URLs beginning with "www." in XFA documents as well; this on its own is enough to fix https://bugzilla.mozilla.org/show_bug.cgi?id=1731240

/botio unittest


Typescript in vue file

How can I get code IntelliSense for typescript in vue file?

I'll work on it once js IntelliSense is improved in #26.


[web][a11y] Screen reader doesn't voice information about the list and the number of items

Steps to reproduce

Execute flutter run -d chrome on the code sample.
On web, use a screen reader to read the elements.

Expected results

Items are grouped into a list.
The list is voiced with the number of items.
When moving through the elements, its index is voiced.

Actual results

Items are not included in the list.
Each item as a separate empty group.

Code sample
Code sample
import 'package:flutter/material.dart';
import 'package:flutter/semantics.dart';

void main() {
  runApp(const MyApp());
  SemanticsBinding.instance.ensureSemantics();
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Material(
        child: Scaffold(
          appBar: AppBar(backgroundColor: Colors.blue),
          body: ListView(
            semanticChildCount: 3,
            padding: const EdgeInsets.all(20.0),
            children: const [
              Text('Text 1'),
              Text('Text 2'),
              Text('Text 3'),
            ],
          ),
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
Here is an example of how it looks:

https://github.com/flutter/flutter/assets/61043519/04caeaf2-0d1c-4a09-a8b6-ff335ccbb55c
Here is an example of what I need:

https://github.com/flutter/flutter/assets/61043519/6e58ce4e-ac7f-4ad1-b81d-709d53242161

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.19.3, on macOS 14.3.1 23D60 darwin-x64, locale en-GB)
    • Flutter version 3.19.3 on channel stable at /Users/oleh.lysenko/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ba39319843 (5 days ago), 2024-03-07 15:22:21 -0600
    • Engine revision 2e4ba9c6fb
    • Dart version 3.3.1
    • DevTools version 2.31.1

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/oleh.lysenko/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15C65
    • CocoaPods version 1.14.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)

[✓] Android Studio (version 2020.3)
    • Android Studio at /Users/oleh.lysenko/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7784292/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.67.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.60.0

[✓] Connected device (4 available)
    • iPad (mobile)      • 00008103-001A6936112B401E            • ios            • iOS 17.3.1 21D61
    • iPhone 15 (mobile) • FEA1C1BB-BC7D-4C29-968A-FE7D45A7C3A8 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-17-2 (simulator)
    • macOS (desktop)    • macos                                • darwin-x64     • macOS 14.3.1 23D60 darwin-x64
    • Chrome (web)       • chrome                               • web-javascript • Google Chrome 122.0.6261.112

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Thanks for the report.

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.19.3, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.19.3 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ba39319843 (6 hours ago), 2024-03-07 15:22:21 -0600
    • Engine revision 2e4ba9c6fb
    • Dart version 3.3.1
    • DevTools version 2.31.1

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15C500b
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)

[✓] VS Code (version 1.87.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.84.0

[✓] Connected device (3 available)
    • iPhone (mobile) • d9a94afe2b649fef56ba0bfeb052f0f2a7dae95e • ios            • iOS 15.8 19H370
    • macOS (desktop) • macos                                    • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)    • chrome                                   • web-javascript • Google Chrome 122.0.6261.112

[✓] Network resources
    • All expected network resources are available.

• No issues found!

[!] Flutter (Channel master, 3.21.0-4.0.pre.37, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.21.0-4.0.pre.37 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 8270872f86 (3 hours ago), 2024-03-12 17:52:24 -0700
    • Engine revision ea848c3b24
    • Dart version 3.4.0 (build 3.4.0-227.0.dev)
    • DevTools version 2.33.1
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15C500b
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)

[✓] VS Code (version 1.87.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.84.0

[✓] Connected device (3 available)
    • iPhone (mobile) • d9a94afe2b649fef56ba0bfeb052f0f2a7dae95e • ios            • iOS 15.8 19H370
    • macOS (desktop) • macos                                    • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)    • chrome                                   • web-javascript • Google Chrome 122.0.6261.112
    ! Error: Browsing on the local area network for iPad. Ensure the device is unlocked and attached with a cable or associated with the same local area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

This seems to be a framework-wide issue. We don't have this information in the semantics API. Redirecting to the framework team for evaluation. If anything needs to change in the web engine, happy to help with that.

I am pretty sure the framework provides this information in the indexInParent and scrollShildCount property:

https://main-api.flutter.dev/flutter/semantics/SemanticsConfiguration/indexInParent.html
https://main-api.flutter.dev/flutter/semantics/SemanticsConfiguration/scrollChildCount.html

I recently tested this on Android and it was working there. If you don't see this information, feel free to assign it back.

@goderbauer SemanticsConfiguration is not reported to the engine. The engine receives attributes sent through this: https://main-api.flutter.dev/flutter/dart-ui/SemanticsUpdateBuilder/updateNode.html
How do whose attributes translate to updateNode?

updateNode appears to get this information as scrollChildren and scrollIndex on the node that's scrollable:

scrollChildren: The total number of scrollable children that contribute to semantics.
scrollIndex: The index of the first visible semantic child of a scroll node.

We do know the index of each child in the scrollable (the indexInParent), but looks like we are currently not sending that information to the engine. What information do you need?

I initially didn't think of this feature request as something specific to scrolling, but lists in general. Lists, including the scrolling kind, should theoretically be achievable via some combination of ARIA list, listitem, aria-setsize, and aria-posinset. Would that be the right semantic for something with the word "scroll" in the name? Can you have lists that have nothing to do with scrolling, e.g. something that uses a Column for example?

b/328628687


400s for print progress notifications

I've noticed that I'm only getting notifications for bed temperature threshold, starting from about the 16th of this month.  In octoprint.log I'm seeing these errors for failed notifications:
2020-05-20 01:31:16,259 - octoprint.plugins.octopod - INFO - Notification Response: b'{"timestamp":"2020-05-20T01:31:16.214+0000","status":400,"error":"Bad Request","message":"Unable to parse form content","path":"//v1/push_printer"}'

My config:
    octopod:
        _config_version: 8
        bed_low: '40'
        bed_target_temp_hold: '0'
        camera_snapshot_url: http://localhost/motion/100/current
        mmu_interval: '15'
        pause_interval: '15'
        tokens:
        -   apnsToken: [redacted]
            date: 2020-04-13 15:13:13.324990
            deviceName: [redacted]
            languageCode: en
            printerID: [redacted]
            printerName: Prusa

Hi @blalor,
Are you using latest 0.2.6 version? That same error log was fixed in https://github.com/gdombiak/OctoPrint-OctoPod/issues/39#issuecomment-613677527. Let me know if you are running the latest version and still see this problem.
Thanks,
Gaston

I am running 0.2.6, I’m afraid.

ok. Would it be possible for you to share/post here the image that http://localhost/motion/100/current returns? I can use it for testing and see what is going on.
Thanks,
Gaston

Here you go:

Curl output:
$ curl -vvv 'http://localhost/motion/100/current'
*   Trying ::1:80...
* connect to ::1 port 80 failed: Connection refused
*   Trying <IP_ADDRESS>:80...
* Connected to localhost (<IP_ADDRESS>) port 80 (#0)
> GET /motion/100/current HTTP/1.1
> Host: localhost
> User-Agent: curl/7.70.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: nginx/1.17.6
< Date: Sun, 24 May 2020 21:42:36 GMT
< Content-Type: image/jpeg;
< Content-Length: 1179648
< Connection: keep-alive
<

I think the problem is the file is too big. The resolution is ok but file is too big probably it is using no compression. Would it be possible to increase compression of the jpg file so it is under 1MB?

I don’t know if I can do that from motion, but I’ll look. That seems like something the plugin should be able to do, tho?

That's a great idea. I can add a setting to control compression of the jpg image. If you are using octopi (and its mjpeg streamer) then follow this guide to control compression quality. You will have to use the -q parameter like in this example:

camera_usb_options="-r 1280x720 -f 10 -q 75"

or this one

camera_raspi_options="-fps 10 -x 1280 -y 720 -quality 75"

I'm using motion instead of mjpg-streamer so that I can have multiple cameras without needing to juggle a bunch of ports.  Nothing's jumping out at me for reducing image size; I tried setting picture_quality to 50 (the default is already 75), but there's no difference in file size.
I think modifying the plugin for the requirements of the APNS service will be a big help!

I'm having a similar problem - my snapshot image is over 1MB, which triggers an error from http://octopodprint.com
The reason my image is larger than 1MB is because -quality setting for camera_raspi_options in octopi.txt doesn't seems to affect the snapshot's file size. My streaming resolution is -x 1640 -y 1232 because I'm using the new Raspberry Pi High Quality Camera. As soon as it arrived, I upped the resolution (which is fantastic) and suddenly notifications of print completion from Octopod stopped dead  :(
For now, the higher res streaming is more important to me than the notifications, but I miss them! At least this thread has allowed me to understand where it's going wrong. Looking forward to a future version of the plugin that can control compression of the jpg image.


[Feature enquiry] Redisson create throws exception when the redis cluster is not ready.

I was wondering whether the presence of the redis cluster is must to instantiate the redisson client via Redisson.create(config)).
I am evaluating the Redisson along with Jedis. I noticed that Jedis does not require the redis cluster to reachable when instantiating the client. However, redisson throws exception if there is no redis cluster exists.
We have the use case where our service is started when redis is not available and we expect the redisson client to retry to connect to redis cluster by itself when it is asked to retrieve value.
Could confirm whether this is supported feature or not?
Sincerely,
Peter

This would be great, we are currently having a similar issue. We have some test that test the system in a black-box manner (we bring up an instance of the application as well as an instance for redis). This works fine except that a lot of the times our application comes up faster than our redis instance, which causes Redisson.create is crash and burn.
Would be great if it retried.

I have found a workaround to this problem. I added a retry method with exponential backoff.
  @tailrec
  private def retryExponentialBackoff[T](timesBeforeBackOff: Int, initialTime: Int)(block: Unit => T): T = {

    @tailrec
    def retry[T](times: Int)(func: Unit => T): Try[T] = Try(func()) match {
      case Failure(_) if times > 1 => retry(times - 1)(func)
      case result => result
    }

    retry(timesBeforeBackOff)(block) match {
      case Failure(_) =>
        println(s"[info] could not connect to redis, trying again in $initialTime milliseconds")
        Thread.sleep(initialTime)
        retryExponentialBackoff(timesBeforeBackOff, initialTime * 2)(block)
      case Success(value) =>
        println("[info] connection to redis successful")
        value
    }
  }

And the usage is as follows:
val redisson: RedissonClient = retryExponentialBackoff[RedissonClient](10, 1000) { _ =>
    Redisson.create(config)
  }

Hope it helps someone. I suggest to do this in the ConnectionPool, maybe as a configuration. @mrniko you made implementation, am I right?

Implemented in https://github.com/redisson/redisson/issues/3042