Add ability to provide extra kube-apiserver flags

This commit adds an ability to provide extra flags for self-hosted
kube-apiserver, so this feature can be used when configuring dex and
gangway for OIDC authentication to the cluster, as currently any manual
changes to kube-apiserver pods will be overwritten during cluster
upgrade.
Closes #122
Signed-off-by: Mateusz Gozdek<EMAIL_ADDRESS>TODO:

[ ] Add some tests? I was thinking about adding following snippet to CI configuration for smoke tests:kube_apiserver_extra_flags = [
  "-v=1",
]

Small nits. I think adding a smoke test like described makes sense.

All right, added then.

Pulled some additional reviewers for one more approval before merging.

@invidian Why not expose the variables needed for dex, rather than allowing user to specify any apiserver flag? Are there any unforeseen issues with being so much flexible?
Here I don't feel there is a lot of control over what is allowed and what is not. If you look at the hosted K8s providers they have control over what is allowed and what is not.

@surajssd we discussed that in original issue #122. TL;DR this is the simplest approach for now and we want to ship it with 0.1.0 release.

I think @surajssd has a point here, if we add freeform extra flags we might create a support burden, increase the feature matrix and expose the user to unnecessary complexity. This is Typhoon's reasoning.
OTOH projects like kubeadm do offer this kind of flexibility, but one can argue that they're a "building block" technology and need to be more flexible for that reason.
After thinking about it, maybe our best option for now is allowing extra flags but doing some validation them so we only support the ones we need and error out if others are passed. In this way we restrict what's possible, we don't need to change the implementation too much, and we don't expose tons of flags which be confusing. If in the future we support automatic generation of OIDC parameters for dex+gangway we can just tell users to remove the snippet, if we move to separate OIDC parameters we can tell them to switch to those.
I'd like to get some more opinions though.

I like the following approach, as it gives user freedom for adding any kind of parameters they need, which would be super useful in cases, where we don't have dedicated parameter for some flags. I do agree, that we shouldn't support setups, which use this flag, as user can put anything in there. Perhaps we could document, that one should use it at their own risk?

After thinking about it, maybe our best option for now is allowing extra flags but doing some validation them so we only support the ones we need and error out if others are passed.

That doesn't seem right to me. I'd rather change the implementation to only accept data we need then.

I too agree with Suraj here that we should be careful what with we add just because its the easiest step right now.
Can we not put the oidc related flags as optional fields in the cluster configuration ?

I mostly agree with @invidian here, specially on this: if we are going to allow only some things (like validate only some flags are exposed), let's expose them nicely instead of that very hacky approach (and probably more complex because of checking that those strings are what we "allow").
Regarding what @surajssd mentions about managed service having that kind of control, I want to add THAT is one of the biggest complains for managed services: users can't add flags (for auth and others). And this is not a managed service, so why not allow the user to take the risks he wants? (I don't have a source for this, just my mem from mailing list and reddit).
I think in general there are two approaches for this: "abstract" as much as possible for the users and provide a nice and clean interface, doing kind of a "whitelist" of params user can tune, or abstract some things but allow any random flags they want to use.
Envoy is quite complex, so for example contour is only exposing very simple things and it hides the envoy complexity. That has the overhead of every single change needs to be properly integrated and is blocked until it is. And the positive thing that everything you configure is properly integrated in contour (like in it's CRD).
While nice, I'm not sure the trade-off is good for kubernetes. Specially if you think in alpha features: kubernetes is constantly adding them, for example. You are already managing your cluster, why wouldn't you be able to enable an alpha feature you may benefit from? An alpha feature I guess some will need is IPv4/IPv6 dual-stack. Or a feature we currently don't support but needs api flag is Kubernetes Auditing. I don't think we want to prevent people from using them, though.
As long as this doesn't expand our test matrix and we warn the user that it may cause instability and, even if we want say it is not supported (like, open a bug report only if you can reproduce without that)... I don't see why not do it. I see the Typhoon decision against this: "can create reliance on alpha features/behaviors that get canned, and can cause instability that lowers the quality bar". Maybe we can reconsider if it causes lot of bug reports?
Also, in my experience when using kubernetes, I really needed to change flags some times. There was a bug in the linux kernel for CFS and another in Kubernetes in the way that configured CPU limits, that made latency sensitive apps impossible to run and one of the ways to make it work (this bug took more than an year to be solved in k8s) was adding a flag to the kubelet. Hopefully, in kops I couls specify that flag very easily (in the yaml) for compoenents, it would have been a deal breaker in that case that kops didn't allow that. So, IMHO, I'd even go further and suggest to consider adding an extra_flags params to all k8s components in the future (another discussion for another time :)).
Kubernetes has TON of features, and even more flags... I don't think we plan to provide a nice interface for ALL of them (and it expands quite fast). And one of the biggest disadvantage of managed services I've read people complain is the restriction to control flags (again, no sources, just what I've read in mailing list and reddit). Therefore, I lean towards allowing users to take risk, by having a "extra_flags" param, and warn that is not supported/tainted or something.
What do others think?

If we decide to expose only parameters required for OIDC, which parameters should we expose exactly? Just 'issuer URL' or all of them? And if so, how do we expose them? as oidc_issuer_url parameter? Or maybe it would be better to use a block:
oidc {
  issuer_url = ...
}

Then, if we use block, should we put it in inside cluster block, or maybe move towards more generic solution and put it in root config, so it's platform-agnostic then (as suggested in #123.
I think Terraform implementation can stay generic as it is right now. We only need to change user-facing interface.

If we decide to expose only parameters required for OIDC, which parameters should we expose exactly? Just 'issuer URL' or all of them? And if so, how do we expose them? as oidc_issuer_url parameter? Or maybe it would be better to use a block:
oidc {
  issuer_url = ...
}

Then, if we use block, should we put it in inside cluster block, or maybe move towards more generic solution and put it in root config, so it's platform-agnostic then (as suggested in #123.
I think Terraform implementation can stay generic as it is right now. We only need to change user-facing interface.

oidc block seems like a reasonable tradeoff between not giving user an option to pass all sorts of kubelet flags and lokomotive controlling what flags can be provided.

oidc block seems like a reasonable tradeoff between not giving user an option to pass all sorts of api server flags and lokomotive controlling what flags can be provided.

And which parameters should be exposed then via the block? All of them or only issuer_url?

IMHO, all of them. We can't force users to use this auth method or nothing. If we want to expose those, we should expose them all so they can configure other OIDC providers.
And use sensible defaults (like for the other params use the values we will use for our auth by default) for the others, IMHO.
We have an interface that for users using the component is as easy as possible, but with flexibility for other params to be tuned if users don't want this auth.
Does it make sense?

Does it make sense?

Yes, thanks.
Then, do you think I can implement it in the following way:
cluster "packet" {
  ...
}

oidc {
  issuer_url = "..."
}

I would like to start build more reusable blocks and not duplicate the parameters across platforms.

Duplication can be a little bit reduced by using a embedding a common struct in the platform struct, and reusing parsing functions, probably. But it will be some boilerplate code.
I think this impacts on how syntax will be for multi-cluster. But, trying to be pragmatic, I think we are already doing this with other fields (at least backend) and as long as we don't add many more, it should be easy to move them back into cluster config if we decide that is the path (not sure).
So, IMHO, both options are fine. The big warning for embedding in cluster block would be to not duplicate all code (i.e. using common structs and parsing functions, if the end code is not a PITA to work with or some other smarter trick).

I'm done with Calico-related work now, so I'll be looking into this now.

Oops, I'll be working on #216 for now, so if anyone wants to pick this up, feel free to do so.

I will take this forward.

As discussed with @surajssd, @ipochi is currently working on #123, which will simplify a lot adding this feature, so I think we should postpone the work on this issue, until the refactoring is in place, unless this has higher priority.

delayed but, @surajssd @invidia refactoring PR incoming.

I don't think this PR closes #122 anymore since we're exposing the OIDC flags directly and AFAIU not exposing arbitrary flags to the user. It should close #279. Please change the PR description.

I don't think this PR closes #122 anymore since we're exposing the OIDC flags directly and AFAIU not exposing arbitrary flags to the user. It should close #279. Please change the PR description.

yes,I'll update. I haven't touched the PR description that @invidian had at the creation of PR

@invidian please review. I've addressed all your feedback.

@ipochi I think it would also help, if all OIDC changes related to single platform would be in one commit: docs, CI configuration, etc.
Also, ideally generated_assets.go should be done per commit as well, so the git history can be bisected with clean state.

Done. Every commit now checks if the assets have been updated or not and appends them to the commit.
Each platform has a single commit for docs, ci examples and functionality.
Please review again. I've addressed all your feedback from your latest review

@invidian please re-review

@surajssd please re-review.


Missing accounts in the list

Describe the bug
Due to numerous accounts, some accounts are not loaded immediately in one request.
To Reproduce
Steps to reproduce the behavior:

Go to "/accounts"
Add accounts until you have 100+ accounts.
Try refreshing the page
Confirm the missing accounts.

Expected behavior
All accounts should be loaded automatically as much as possible.
Platform (please complete the following information):

Device: Desktop
OS: Windows
Browser and its version: Firefox 117.0.1
Package version: v0.2.0-dev

Additional context
This was first seen on viewing financial entries, and some modifiers are unknown. See efa8249ff3d59684bb1214eb53dfbaad5ada7d21...6b1c8bfd5d6b48ba602fa801ebfbfcabc3b47c2b for the solution created as an example.
The solution should also be applied to currency once it has been formalized.

This was already solved since 58fa881f5160d4b1f0016244eaaa66db2ff456c5. A resource loader was added to load all accounts on demand.


[BUG] timeout, network error

I did not report an error when I started the program, but the connection timed out after I created the flows. I am using a global agent in mainland China. I wrote a few python programs using the openai api before, and it was normal. It is very strange. I don’t know how to solve it. I hope can get everyone's help

@cuizheng0520 i'd suggest removing the log above, as the api key was exposed.
One possible way is to set BASE_URL:

ok what this value set up I try?
Henry Heng @.***>于2023年6月30日 周五06:19写道：

@cuizheng0520 https://github.com/cuizheng0520 i'd suggest removing the
log above, as the api key was exposed.
One possible way is to set BASE_URL:
[image: image]
https://user-images.githubusercontent.com/26460777/249909220-45b2d7f2-769c-4f0d-8b56-6bea93128994.png
—
Reply to this email directly, view it on GitHub
https://github.com/FlowiseAI/Flowise/issues/447#issuecomment-1613872700,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A6WQJXP7DDYZYYTGZROFMN3XNX5NNANCNFSM6AAAAAAZY2MLHA
.
You are receiving this because you were mentioned.Message ID:
@.***>

set base path not work,
now:
Request failed with status code 404 and body {"error":{"message":"Invalid URL (POST /chat/completions)","type":"invalid_request_error","param":null,"code":null}}
:(

解决了兄弟？我也是一样的问题。。哭了

解决了兄弟？我也是一样的问题。。哭了

兄弟们，大家解决了吗？一样的问题啊tt


Set name label

I have searched in the official documentation, but I can't find how to change the name attribute of input

There's inputName prop :)

Oh thank you! I couldn't find it in the documentation.


[Feature]: Recurring reminders

Goal or desired outcome of this feature
Ability to schedule repeated and recurring tasks and reminders.
Thank you for your work, I have just started using your plugin and it's useful!
Describe the feature
It would be useful to schedule recurring reminders for regular tasks.
Examples

Run backup @weekly
Workout @daily

The syntax used for cron schedule expressions could be used for scheduling exactly to one's needs.
I could see history being generated below each item, based on if the item was completed that time or not, but that might not be super useful for everyone, for example:

[ ] Workout (@daily)

3.1.2022 - Done
4.1.2022 - Missed
5.1.2022 - Done

(Each check-in workout would generate a new line and then reset back to an unchecked state)
Screenshots, mockups, or videos
No response

Thank you for your suggestion!
You can use Tasks Plugin integration feature.
related:

https://uphy.github.io/obsidian-reminder/guide/interop-tasks.html
https://github.com/uphy/obsidian-reminder/issues/35
https://github.com/uphy/obsidian-reminder/issues/17

I want to focus on the reminder feature in this plugin; the recurring feature is considered to be a category of task management, not a reminder.
In order to avoid making code more complicated than they need to be, I would like to solve this problem by using Tasks Plugin .

That seems like a great solution, thank you, have a great day!


454107D7 - FIFA 06: Road to FIFA World Cup

Validation

[X] I've read the FAQ.
[X] The Xenia build used is from a canary branch. (not MLBS/AlexVS/master/pull requests, etc)
[X] This issue isn't for help (tech support) with Xenia, or a game.
[X] I've checked if this game doesn't already have a compatibility report.

Xbox 360 Marketplace link
https://marketplace.xbox.com/en-gb/Product/FIFA-06-RTFWC/66acd000-77fe-1000-9115-d802454107d7
Xenia version
https://github.com/xenia-canary/xenia-canary/commit/d24d3295c69388ef6c465cd69d73431027019a4c
Issues
Guest crash after EA Sports logo. (https://github.com/xenia-project/game-compatibility/issues/1200)
tested with these builds ;
https://github.com/xenia-canary/xenia-canary/commit/d24d3295c69388ef6c465cd69d73431027019a4c
https://discord.com/channels/308194948048486401/701111856600711208/1061706612777177128
Log
canary-loglevel3.zip
Screenshots

Labels
state-intro

can this game be made to work?

first time I've seen in-game graphics using Xenia (tested with canary and netplay branch)
https://github.com/AdrianCassar/xenia-canary/commit/ea78d4bc8adfaf8c3218fc0426e0daf7fb8776fc

xenia netplay - log level 3.zip

Tested on: https://github.com/xenia-canary/xenia-canary/commit/a3bd34122be24b5e9868cbe00d937751df428571
xenia.zip

requires readback_resolve to render the field.
Audio Worker error shortly after audio goes silent. New XMA decoder keeps it running for longer, but ultimately also fails.

readback_resolve off vs on:

The longest I survived in-game was 6th minute of the first half:

apu-garbage | backwards-compatibility-unsupported | gpu-readback


koord-scheduler: remove allocated in filter hook

Currently, the resource reservation plugin doesn't subtract allocated resources from the reservepod after allocating resources to the pod, which will lead to fewer available resources on the nodes.
For example, a reservation reserved 2c on node and the reservation allocated 1c to pod. In this case available resource on node is allocated-2c instead of allocated-3c.

@KunWuLuan thanks for your contribution. please add more unit tests for the cases.

/lgtm

/approve


nsqd: add start_time to /stats

Ready for reveiw
Adding a timestamp for start date to the json format and a readable start time and uptime to the text format for the stats endpoint
Sample text format:
nsqd v0.3.3-alpha (built w/go1.4)
start_time 2015-02-21T20:25:51-08:00
uptime 1m18.478010195s

NO_TOPICS

Sample JSON:
 {"status_code":200,"status_txt":"OK","data":{"version":"0.3.3-alpha","health":"OK","start_time":1424579151,"topics":[]}}

works for me!
thanks

Thanks!


For some CLI tools dependencies are not installed

For some CLI tools click as a dependency is not installed and even after doing pipx inject it still fails to run.
You can find a codesnippet here:
 ~ pipx --version
<IP_ADDRESS>

  ~ pipx install doc2dash                                                                                installed package doc2dash 2.3.0, Python 3.7.5
These apps are now globally available
   - doc2dash
done! ✨ 🌟 ✨

 ~ doc2dash
Traceback (most recent call last):
  File "/Users/user/.local/bin//doc2dash", line 5, in <module>
    from doc2dash.__main__ import main
  File "/Users/user/.local/pipx/venvs/doc2dash/lib/python3.7/site-packages/doc2dash/__main__.py", line 13, in <module>
    import click
ModuleNotFoundError: No module named 'click'

 ~ pipx inject doc2dash click
done! ✨ 🌟 ✨

doc2dash
Traceback (most recent call last):
  File "/Users/user/.local/bin//doc2dash", line 5, in <module>
    from doc2dash.__main__ import main
  File "/Users/user/.local/pipx/venvs/doc2dash/lib/python3.7/site-packages/doc2dash/__main__.py", line 13, in <module>
    import click
ModuleNotFoundError: No module named 'click'

~/.local/pipx/venvs/doc2dash/bin/python -m pip install click

 ~ doc2dash
Usage: doc2dash [OPTIONS] SOURCE
Try "doc2dash --help" for help.

Error: Missing argument "SOURCE".

How to reproduce
 ~ pipx install doc2dash --verbose
pipx > (run_pipx_command:134): Virtual Environment location is /Users/user/.local/pipx/venvs/doc2dash
pipx > (run:97): running /usr/local/opt/python/bin/python3.7 -m venv --without-pip /Users/user/.local/pipx/venvs/doc2dash
pipx > (run:97): running /Users/user/.local/pipx/venvs/doc2dash/bin/python -m pip install doc2dash
Collecting doc2dash
  Using cached https://files.pythonhosted.org/packages/2f/20/c0d9eecb24af0006949e294866a6462c1bfbd8b971db2b60fcfe0f737138/doc2dash-2.3.0-py2.py3-none-any.whl
Requirement already satisfied: click in /usr/local/Cellar/pipx/<IP_ADDRESS>/libexec/lib/python3.7/site-packages (from doc2dash) (7.0)
Collecting beautifulsoup4
  Using cached https://files.pythonhosted.org/packages/3b/c8/a55eb6ea11cd7e5ac4bacdf92bac4693b90d3ba79268be16527555e186f0/beautifulsoup4-4.8.1-py3-none-any.whl
Collecting six
  Using cached https://files.pythonhosted.org/packages/65/26/32b8464df2a97e6dd1b656ed26b2c194606c16fe163c695a992b36c11cdf/six-1.13.0-py2.py3-none-any.whl
Collecting Sphinx
  Using cached https://files.pythonhosted.org/packages/be/a4/f42463e18bb36a47325d43004ab6f4afb5c863e6ffdb936104acc15cfc11/Sphinx-2.2.2-py3-none-any.whl
Collecting zope.interface
  Using cached https://files.pythonhosted.org/packages/46/f8/d6f022f17d5c5d229b0003555d2fe7846069ade155d7babefdaa97173281/zope.interface-4.7.1-cp37-cp37m-macosx_10_6_intel.whl
Collecting attrs
  Using cached https://files.pythonhosted.org/packages/a2/db/4313ab3be961f7a763066401fb77f7748373b6094076ae2bda2806988af6/attrs-19.3.0-py2.py3-none-any.whl
Collecting colorama
  Using cached https://files.pythonhosted.org/packages/c9/dc/45cdef1b4d119eb96316b3117e6d5708a08029992b2fee2c143c7a0a5cc5/colorama-0.4.3-py2.py3-none-any.whl
Collecting soupsieve>=1.2
  Using cached https://files.pythonhosted.org/packages/81/94/03c0f04471fc245d08d0a99f7946ac228ca98da4fa75796c507f61e688c2/soupsieve-1.9.5-py2.py3-none-any.whl
Collecting requests>=2.5.0
  Using cached https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl
Collecting Jinja2>=2.3
  Using cached https://files.pythonhosted.org/packages/65/e0/eb35e762802015cab1ccee04e8a277b03f1d8e53da3ec3106882ec42558b/Jinja2-2.10.3-py2.py3-none-any.whl
Collecting sphinxcontrib-devhelp
  Using cached https://files.pythonhosted.org/packages/b0/a3/fea98741f0b2f2902fbf6c35c8e91b22cd0dd13387291e81d457f9a93066/sphinxcontrib_devhelp-1.0.1-py2.py3-none-any.whl
Collecting imagesize
  Using cached https://files.pythonhosted.org/packages/fc/b6/aef66b4c52a6ad6ac18cf6ebc5731ed06d8c9ae4d3b2d9951f261150be67/imagesize-1.1.0-py2.py3-none-any.whl
Collecting sphinxcontrib-jsmath
  Using cached https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl
Collecting sphinxcontrib-htmlhelp
  Using cached https://files.pythonhosted.org/packages/e4/35/80a67cc493f4a8a9634ab203a77aaa1b84d79ccb1c02eca72cb084d2c7f7/sphinxcontrib_htmlhelp-1.0.2-py2.py3-none-any.whl
Collecting Pygments>=2.0
  Using cached https://files.pythonhosted.org/packages/be/39/32da3184734730c0e4d3fa3b2b5872104668ad6dc1b5a73d8e477e5fe967/Pygments-2.5.2-py2.py3-none-any.whl
Collecting snowballstemmer>=1.1
  Using cached https://files.pythonhosted.org/packages/7d/4b/cdf1113a0e88b641893b814e9c36f69a6fda28cd88b62c7f0d858cde3166/snowballstemmer-2.0.0-py2.py3-none-any.whl
Collecting packaging
  Using cached https://files.pythonhosted.org/packages/cf/94/9672c2d4b126e74c4496c6b3c58a8b51d6419267be9e70660ba23374c875/packaging-19.2-py2.py3-none-any.whl
Collecting sphinxcontrib-qthelp
  Using cached https://files.pythonhosted.org/packages/ce/5b/4747c3ba98b3a3e21a66faa183d8f79b9ded70e74212a7988d236a6eb78a/sphinxcontrib_qthelp-1.0.2-py2.py3-none-any.whl
Collecting docutils>=0.12
  Using cached https://files.pythonhosted.org/packages/22/cd/a6aa959dca619918ccb55023b4cb151949c64d4d5d55b3f4ffd7eee0c6e8/docutils-0.15.2-py3-none-any.whl
Requirement already satisfied: setuptools in ./.local/pipx/shared/lib/python3.7/site-packages (from Sphinx->doc2dash) (42.0.2)
Collecting alabaster<0.8,>=0.7
  Using cached https://files.pythonhosted.org/packages/10/ad/00b090d23a222943eb0eda509720a404f531a439e803f6538f35136cae9e/alabaster-0.7.12-py2.py3-none-any.whl
Collecting sphinxcontrib-applehelp
  Using cached https://files.pythonhosted.org/packages/13/9a/4428b3114d654cb1cd34d90d5e6fab938d5436f94a571155187ea1dd78b4/sphinxcontrib_applehelp-1.0.1-py2.py3-none-any.whl
Collecting babel!=2.0,>=1.3
  Using cached https://files.pythonhosted.org/packages/2c/60/f2af68eb046c5de5b1fe6dd4743bf42c074f7141fe7b2737d3061533b093/Babel-2.7.0-py2.py3-none-any.whl
Collecting sphinxcontrib-serializinghtml
  Using cached https://files.pythonhosted.org/packages/57/b3/3648e48fa5682e61e9839d62de4e23af1795ceb738d68d73bd974257a95c/sphinxcontrib_serializinghtml-1.1.3-py2.py3-none-any.whl
Collecting idna<2.9,>=2.5
  Using cached https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl
Collecting certifi>=2017.4.17
  Using cached https://files.pythonhosted.org/packages/b9/63/df50cac98ea0d5b006c55a399c3bf1db9da7b5a24de7890bc9cfd5dd9e99/certifi-2019.11.28-py2.py3-none-any.whl
Collecting chardet<3.1.0,>=3.0.2
  Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1
  Using cached https://files.pythonhosted.org/packages/b4/40/a9837291310ee1ccc242ceb6ebfd9eb21539649f193a7c8c86ba15b98539/urllib3-1.25.7-py2.py3-none-any.whl
Collecting MarkupSafe>=0.23
  Using cached https://files.pythonhosted.org/packages/ce/c6/f000f1af136ef74e4a95e33785921c73595c5390403f102e9b231b065b7a/MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl
Collecting pyparsing>=2.0.2
  Using cached https://files.pythonhosted.org/packages/c0/0c/fc2e007d9a992d997f04a80125b0f183da7fb554f1de701bbb70a8e7d479/pyparsing-2.4.5-py2.py3-none-any.whl
Collecting pytz>=2015.7
  Using cached https://files.pythonhosted.org/packages/e7/f9/f0b53f88060247251bf481fa6ea62cd0d25bf1b11a87888e53ce5b7c8ad2/pytz-2019.3-py2.py3-none-any.whl
Installing collected packages: soupsieve, beautifulsoup4, six, idna, certifi, chardet, urllib3, requests, MarkupSafe, Jinja2, sphinxcontrib-devhelp, imagesize, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, Pygments, snowballstemmer, pyparsing, packaging, sphinxcontrib-qthelp, docutils, alabaster, sphinxcontrib-applehelp, pytz, babel, sphinxcontrib-serializinghtml, Sphinx, zope.interface, attrs, colorama, doc2dash
Successfully installed Jinja2-2.10.3 MarkupSafe-1.1.1 Pygments-2.5.2 Sphinx-2.2.2 alabaster-0.7.12 attrs-19.3.0 babel-2.7.0 beautifulsoup4-4.8.1 certifi-2019.11.28 chardet-3.0.4 colorama-0.4.3 doc2dash-2.3.0 docutils-0.15.2 idna-2.8 imagesize-1.1.0 packaging-19.2 pyparsing-2.4.5 pytz-2019.3 requests-2.22.0 six-1.13.0 snowballstemmer-2.0.0 soupsieve-1.9.5 sphinxcontrib-applehelp-1.0.1 sphinxcontrib-devhelp-1.0.1 sphinxcontrib-htmlhelp-1.0.2 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-1.0.2 sphinxcontrib-serializinghtml-1.1.3 urllib3-1.25.7 zope.interface-4.7.1
  installed package doc2dash 2.3.0, Python 3.7.5
  These apps are now globally available
    - doc2dash
done! ✨ 🌟 ✨

Expected behavior
working package after installation

Sorry if I’m way off, but do you happen to have the environment variable PIP_USER set in your shell?

no  I do not have such env var set.

How did you install pipx? It's not installing click because it thinks it's already installed. It thinks that because it can find the site-packages directory in a tree below ~/pipx; it probably doesn't have access to that at runtime. If that directory is on one of your path variables, which may get mangled by pipx later, that might explain it?

Installed with brew
Requirement already satisfied: click in /usr/local/Cellar/pipx/<IP_ADDRESS>/libexec/lib/python3.7/site-packages (from doc2dash) (7.0)

It things that click requirements satisfied by packages in libexec of pipx package.
Should it be isolated?

I kind of recall some similar issues from Pipenv installed via Homebrew… Did you upgrade the python formula to 3.8?

https://formulae.brew.sh/formula/python
Currently available version of python via brew is 3.7.5

Or did you upgrade python (say from 3.7.4 to 3.7.5) after installing pipx? Also try brew update && brew upgrade pipx and see if that helps. (Sorry if I seem to keep asking weird questions without helping much.)

 ~ brew info pipx                                                                                 
pipx: stable <IP_ADDRESS> (bottled)
Execute binaries from Python packages in isolated environments
https://github.com/pipxproject/pipx
/usr/local/Cellar/pipx/<IP_ADDRESS> (120 files, 854.8KB) *
  Poured from bottle on 2019-12-10 at 11:46:19

Installed after upgrade to python 3.7.5 with brew.
No problems, feel free to ask me whatever you need.

This looks similar to https://github.com/pipxproject/pipx/issues/233 which was fixed in master but not yet released on PyPI.

@beastea does the master branch of pipx work for you? You can test it out with
pipx run --spec git+https://github.com/pipxproject/pipx.git pipx install doc2dash --force

@cs01 I've got a workaround right now and I've checked the issue referenced. It looks exactly like what I'm experiencing now. Fix looks good to me and I could live untill the next version with what I have now, I'm sorry to bother you but I wasn't been able to find a similar issue with the search. But now all fine. Thanks in advance. Looking forward for next release.

Nice! No need to apologize, it was a valid bug you ran into. And thanks @uranusjr and @clbarnes for helping out as well!


Solis wifistick alternative approach

This is an alternative approach to the changes in PR #55.
Instead of not allowing a session to be provided it will now use the provided session or create a session for one time use.
Note that I don't really like the big try/finally block, but it seemed better than putting callse to close() all over the place which is errorprone.

We are still actively closing the session and that's something I don't want. By default it should still be possible to reuse the session and if you don't specify a session in the request, the session will also be cleaned up.

It was a bit tricky because the codepath is only triggered when there is a session active, so during a request, but I have it covered now.


Filters and folders question.

I looked around and can't tell. I still use the old af 'RSS Owl' because it has 1.Filters and 2.Folders so I can sort content. I want to switch to this but as far as I can tell it does not have these features. please let me know if im missing something on either front. Or if not how hard would it be to add them?

Hey @sasnfbi1234, this isn't something that is currently supported; however, we do have plans to implement this functionality in the near future. Cheers!


🐃 Buyers can easily arbitrate their own purchases processes

Currently, you can do this from the DAPP:

Buyer makes an offer on a 12ETH watch
Seller accepts offer, delivers watch.
Buyer had set the offer arbitrator to an account he controls
Buyer opens a dispute
Buyer rules in his own favor, ending up with the watch and the 12ETH.

The biggest weakness we have to cover in our distributed, negotiated arbitrator setup is that we give the tools and UI support to allow sellers to safely know if they can agree to the buyer's proposed arbitrator. Any slip here and the seller can be robbed.
I think we need:

The seller can see who the arbitrator is
It's very clear when the arbitrator is untrusted by the DAPP, possibly even a blocking confirmation dialog.

To reproduce:
// ID must match the listing you want to buy
// default dev listings are currently broken, don't buy them
const listing = await originTest.marketplace.getListing("999-000-10")
const listingId = parseInt(listing.id.split("-")[2])
const totalPrice = listing.price
const commission = listing.commission

const hash = await originTest.ipfsService.saveObjAsFile({
    schemaId: "http://schema.originprotocol.com/offer_v1.0.0",
    listingType: "unit",
    unitsPurchased: 1,
    totalPrice: totalPrice,
    "commission":commission
})

const price = await originTest.contractService.moneyToUnits(totalPrice)
const commissionUnits = await originTest.contractService.moneyToUnits(commission)
const hashBytes = originTest.contractService.getBytes32FromIpfsHash(hash)

const me = (await web3.eth.getAccounts())[0]
const currencies = await originTest.contractService.currencies()
const args = [
    listingId,
    hashBytes,
    Math.round(+new Date() / 1000) + 60 * 60 * 24,
    me,
    commissionUnits,
    price,
    currencies[totalPrice.currency].address,
    me
]

await originTest.contractService.call("V00_Marketplace",'makeOffer',args, {value:price})

// Seller accepts

// Then buyer does
await originTest.marketplace.initiateDispute("999-000-10-0",{})
await originTest.marketplace.resolveDispute("999-000-10-0",{},1,"0")

We'll need origin.js support to fix this:
https://github.com/OriginProtocol/origin-js/issues/537

Tyler has made a PR that makes origin.js throw and error if the arbitrator is anything other than the official origin address. I don't think this is the long term way of handling it, but it certainly solves the security problem for now.
https://github.com/OriginProtocol/origin-js/pull/549


Improve "ExecCtx::RunList()" with O(1) implementation.

We don't have to iterate through the list for combining the two lists. They can be combined directly. It can improve the performance.

Is there anyone, who can help to review the PR?

Is there anything else I need to do?

@yashykt , can the PR be merged?

Can anyone help to take look at the PR?

Sorry for the delay! I will take a look at this PR this week.
@ctiller would appreciate another pair of eyes here.

@yashykt @ctiller , thanks for your reviews. I decide to close the PR as I can't find a good way to make the change while keeping the debug code.


Blog post: 7 tips for webdev agencies to build better client relationships

@featurepeek /blog/7-tips-for-webdev-agencies-to-build-better-client-relationships/

LGTM!

https://app.clubhouse.io/featurepeek/story/4943/update-blog-draft-7-ways-that-webdev-agencies-can-foster-better-client-relationships


Add WinFsp to developer projects

WinFsp enables the creation of user mode file systems in Windows. Think of it as FUSE for Windows.
WinFsp now includes a .NET API. This is included in the latest prerelease.

Thanks @billziss-gh -- appreciated.


Use briefly to generate temp files for html template output

This adds a dependency on briefly for generating good temporary files.
This is a better choice than having a static file as that will be a
point of contention and lead to race condition errors / generally combat
concurrency.
It also adds the ability to set an env var, PUPPETEER_PDF_PATH, in
order to specify the path for the puppeteer-pdf binary.

Thanks @knewter for the contribution. I had a local branch with a change to the temporary file created, but your solution looks better with Briefly usage. Monday I will test it (and add some CI to this module) and merge it to master.

\o/ thanks!


Javascript RUN button doesn't work for me

Hi there,
I'm trying to practice Javascript with jsbin and the RUN button does nothing at all. Am I doing something wrong? Please view my video of this:
http://screencast.com/t/8eDUPB6FZ0
Thank you!

Bin url please.

sorry, newbie user error


As a project coordinator, I want to know that when I press the add contacts to a project button it will add more contacts, not commit the data so that I can be confident I will remain on the page.

Description:
In the create project page, the button for add another contact currently says "Add" and is a primary button which normally "drive users to the next positive action such as going to the next page, completing an action, or starting a user journey." Usability testing revealed that people thought the button would submit the contacts data to the database, not add another contact. Perhaps this could be changed to a secondary button that says "Add another contact."
Acceptance Criteria:
Given that a user is on the add a contact to a project page
When they want to add another contact to a project
Then they will look to a button that they recognize will do that
Development Checklist:

[ ] Checklist item
[ ] Checklist item
[ ] Checklist item
[ ] Meets the DOD

Notes:

@elliottSlee just to confirm, is this about the ambiguity caused by having the "Add" and the "Submit" button side by side, with semantically close meanings?

@pbastia Yes, users felt that Add meant Submit.

@pbastia - Could we change 'Add' to 'Add another contact' I think wording alone can tackle this c:

Sounds good to me 👌

New UI to make the distinction clear. Changed text of secondary contacts button to say ‘Add a secondary contact’ with + sign. Secondary contacts button has secondary button design instead.

This issue is no longer required as it has been addressed through #694, #695, #701 and #705.

Closing ticket.


Update domchange.js

Fix Chinese input method collaborative content is not correct

Hello marijnh
I am a developer from China. I found a problem with a prosemirror cooperating under the Chinese input method.
This problem will happen in this situation：
1. Two people open this link : http://prosemirror.net/examples/collab/#edit-Example
2.First person edit like this, but not press Space

3.Another person do same thing

4.First person press Space then second person press Space，we get the wrong result

This is beacase domchange.js caculate "to" is wrong

Thanks for looking into this. Does setting to to Math.max(from, mapping.map(change.endA, -1)) also solve the problem for you? I think that'd be more correct.

yes, this is also work!
thanks!

I re-submitted a Pullrequest！
Thanks for the support


Error cleanly if operation called on closed tunnel

When an operation is performed on a closed tunnel, Chopsticks gets quite far into attempting to perform the operation. This should fail fast with a message like "Operation on closed tunnel". The current error message is this:
Traceback (most recent call last)
<ipython-input-4-43d4acc4cee4> in <module>()
----> 1 tun.call(ip)

/home/mauve/dev/chopsticks/chopsticks/tunnel.py in call(self, callable, *args, **kwargs)
    217         """
    218         self._call_async(loop.stop, callable, *args, **kwargs)
--> 219         ret = loop.run()
    220         if isinstance(ret, ErrorResult):
    221             raise RemoteException(ret.msg)

/home/mauve/dev/chopsticks/chopsticks/ioloop.py in run(self)
    275         self.running = True
    276         while self.running and (self.read or self.write):
--> 277             self.step()
    278         return self.result

/home/mauve/dev/chopsticks/chopsticks/ioloop.py in step(self)
    251         rfds = list(self.read) + [self.breakr]
    252         wfds = list(self.write)
--> 253         rs, ws, xs = select(rfds, wfds, rfds + wfds)
    254         if self.breakr in rs:
    255             rs.remove(self.breakr)

OSError: [Errno 9] Bad file descriptor

This is no longer an issue as tunnels now connect lazily (issue #4), so calling an operation on a closed tunnel will attempt to connect.


Add Warden::WebAuthn::RackHelpers; prepend to StrategyHelpers

In order to provide a clean, isolated module for other libraries to use the centralized default relying_party_key, we need to:

Break out the relying_party_key into a new Warden::WebAuthn::RackHelpers module
Auto-include that module as part of Warden::WebAuthn::StrategyHelpers to achieve the same goal of a centrally located default key

(@Vagab I can't officially tag you as a reviewer on this, but would definitely appreciate your feedback since we've been working on this)
This closes #4

Prepending is so that the rack helper ends up in the final destination when the strategy is included, see: https://stackoverflow.com/a/15384720
We still need the old relying_party method because it's strategy-specific; while the RackHelper is meant to be used across Rack applications

I know the difference between prepend and append perfectly well, but what’s the situation when the method from the strategy will be called, and not from the rack helper?

on the other hand, I might be sleepy or smth, but I don't get:

what's the reason for prepending vs including in the strategy helpers? Let me explain:

module A; end
module B; include A; end
class C; include B; end

C.ancestors # => [C, B, A, ...]

module A1; end
module B1; prepend A1; end
class C1; include B1; end

C1.ancestors # => [C1, A1, B1, ...]

so the method will always end up in there. So what am I missing?
2. what's the situation when the relying_party_key method from StrategyHelpers will be called, instead of the method from RackHelpers? Any module which includes StrategyHelpers will have RackHelpers prioritised in the ancestors chain. However if it was included instead I can see how it could be reached. Or once again what am I missing?

I apologize, you're correct here: prepend and include accomplish the same thing. I wrote some sample code to confirm it at the end of this comment.
I got in the habit of using prepend in these cases because I'd been burned by inheritance problems in Ruby when trying to setup clearly defined "protocols" . Which I know isn't truly The Ruby Way, but the pattern is useful for certain cases.
Since the code works, and I can't think of a reason why prepend would cause issues; I think we'll keep it that way. But if there does turn out to be an issue, we'll get it fixed ASAP 💪

module A
  def check
    "A"
  end
end

module B
  include A

  def print_check
    puts check
  end
end

class C
  include B

  def check
    "C"
  end
end

class D < C
  def check
    "D"
  end
end

C.new.print_check
#=> "C"

D.new.print_check

module A1
  def check
    "A1"
  end
end

module B1
  prepend A1

  def print_check
    puts check
  end
end

class C1
  include B1

  def check
    "C1"
  end
end

class D1 < C
  def check
    "D1"
  end
end

C1.new.print_check
#=> "C1"

D1.new.print_check

Since the code works, and I can't think of a reason why prepend would cause issues; I think we'll keep it that way. But if there does turn out to be an issue, we'll get it fixed ASAP 💪

ok, makes sense 🙂 . What about:

what's the situation when the relying_party_key method from StrategyHelpers will be called, instead of the method from RackHelpers? Any module which includes StrategyHelpers will have RackHelpers prioritised in the ancestors chain. However if it was included instead I can see how it could be reached. Or once again what am I missing?

I got in the habit of using prepend in these cases because I'd been burned by inheritance problems in Ruby when trying to setup clearly defined "protocols" . Which I know isn't truly The Ruby Way, but the pattern is useful for certain cases.
Since the code works, and I can't think of a reason why prepend would cause issues; I think we'll keep it that way. But if there does turn out to be an issue, we'll get it fixed ASAP 💪

Ok, makes sense 😄 . What about:

what's the situation when the relying_party_key method from StrategyHelpers will be called, instead of the method from RackHelpers? Any module which includes StrategyHelpers will have RackHelpers prioritised in the ancestors chain. However if it was included instead I can see how it could be reached. Or once again what am I missing?

I actually don't think that a relying_party_key method defined inside StrategyHelpers would be called in either case (see sample code below), which is a good thing in this case! We want the RackHelper to be the source for the relying_party_key, because it's a bridge module between this gem and other Rack apps.

module A
  def check
    "A"
  end
end

module B
  include A

  def check
    "bad value"
  end

  def print_check
    puts check
  end
end

class C
  include B

  def check
    "C"
  end
end

class D < C
  def check
    "D"
  end
end

C.new.print_check
#=> "C"

D.new.print_check

module A1
  def check
    "A1"
  end
end

module B1
  prepend A1

  def check
    "bad value1"
  end

  def print_check
    puts check
  end
end

class C1
  include B1

  def check
    "C1"
  end
end

class D1 < C
  def check
    "D1"
  end
end

C1.new.print_check
#=> "C1"

D1.new.print_check
#=> "D1"

my point exactly. So why do we need it there at all, if it's not gonna be called at any point?


Test fps of fullmap vs roomrect capture

Test fps of fullmap vs roomrect capture, result will determine whether should have a real-time navigation for v11.

Results are as follows:
Grab image, apply filter, find player, grab points
Fullmap = 32.2fps (211,200px)
Room = 64.5fps (4,770px)
Therefore for the average fullmap the updates would be equivalent to 0.93px/sec, therefore real-time navigation is possible for v11.


⚠ Bofrost.es has degraded performance

In d96bba1, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1454 ms

Resolved: Bofrost.es performance has improved in 3b213c9 after 6 minutes.


Updated etcd version from v3.4.13 to v3.4.18

What this PR does / why we need it:
This PR Upgrades the etcd version used from v3.4.13 to v3.4.18
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Release note:

Can you also  update the release note.

Can you also update the release note.
Done


install latest azd version on containers

Without this change, we are installing a previous version from azd on containers, instead of the latest release.

Repoman Generation Results
Repoman pushed changes to remotes for the following projects:
Project: todo-csharp-cosmos-sql
Remote: azure-samples-staging
Branch: pr/1766
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-cosmos-sql -b pr/1766

View Changes | Compare Changes

Project: todo-csharp-sql-swa-func
Remote: azure-samples-staging
Branch: pr/1766
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-sql-swa-func -b pr/1766

View Changes | Compare Changes

Project: todo-csharp-sql
Remote: azure-samples-staging
Branch: pr/1766
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-sql -b pr/1766

View Changes | Compare Changes

Project: todo-java-mongo-aca
Remote: azure-samples-staging
Branch: pr/1766
You can initialize this project with:
azd init -t Azure-Samples/todo-java-mongo-aca -b pr/1766

View Changes | Compare Changes

Project: todo-java-mongo
Remote: azure-samples-staging
Branch: pr/1766
You can initialize this project with:
azd init -t Azure-Samples/todo-java-mongo -b pr/1766

View Changes | Compare Changes

Project: todo-nodejs-mongo-aca
Remote: azure-samples-staging
Branch: pr/1766
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-aca -b pr/1766

View Changes | Compare Changes

Project: todo-nodejs-mongo-aks
Remote: azure-samples-staging
Branch: pr/1766
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-aks -b pr/1766

View Changes | Compare Changes

Project: todo-nodejs-mongo-swa-func
Remote: azure-samples-staging
Branch: pr/1766
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-swa-func -b pr/1766

View Changes | Compare Changes

Project: todo-nodejs-mongo
Remote: azure-samples-staging
Branch: pr/1766
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo -b pr/1766

View Changes | Compare Changes

Project: todo-nodejs-mongo-terraform
Remote: azure-samples-staging
Branch: pr/1766
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-terraform -b pr/1766

View Changes | Compare Changes

Project: todo-python-mongo-aca
Remote: azure-samples-staging
Branch: pr/1766
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-aca -b pr/1766

View Changes | Compare Changes

Project: todo-python-mongo-swa-func
Remote: azure-samples-staging
Branch: pr/1766
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-swa-func -b pr/1766

View Changes | Compare Changes

Project: todo-python-mongo
Remote: azure-samples-staging
Branch: pr/1766
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo -b pr/1766

View Changes | Compare Changes

Project: todo-python-mongo-terraform
Remote: azure-samples-staging
Branch: pr/1766
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-terraform -b pr/1766

View Changes | Compare Changes

Closing as this is not the right fix.  The problem is docker build cache.


Origin and Cumulative input boxed usability issues Distance and Direction widget

When I'm adding values to this list, I click in the "Double click to add value" box, and the text is not selected, so I have to manually select (or double-click again) and delete it before entering a value.
Would be nice for text to disappear on click in box.
Also, after entering a value, pressing Enter does not commit the value and move on to the next box (or next item in the GUI). Would be nice for Enter key to commit value. Might also be nice for it to instantiate another input box that would disappear if you clicked outside of it without entering a value.
Another, more serious issue reported as: https://github.com/Esri/distance-direction-addin-dotnet/issues/507

@adgiles @kgonzago  a couple of usability issues.

@BobBooth The SimpleTable dijit the D&D widget uses is a core WAB dijit. I will report your findings as an issue in Devtopia.

@BobBooth Can you add screenshots to this issue?

@kgonzago - done.

Thanks @BobBooth

Issue submitted in Devtopia.

@kgonzago are you sure we cannot put a onclick event on the row to clear the value if it is still set to ‘Double click to change value’

@adgiles The watermark being displayed as actual text after a user clicks the textbox is an issue WAB team needs to address. Also, it should be normal behavior to accept a value after the Enter key is pressed by the user. Agreed, we can listen to those events and implement the workaround behavior but both these issues should be standard behavior from the SimpleTable dijit. An issue was submitted. Let's see how the WAB team addresses it. If they can't apply a fix in time for 6.1, we'll then just put in the workaround logic.

The ‘watermark’ is actually the value of the cell set when the new row is added

Ah yes, I see it on this line. I'll edit the Devtopia issue to reflect that.

After discussing this further, let's take care of this ourselves. I doubt the WAB team will have time to fix these minor issues in time for 6.1. @adgiles Do you have time to look into this?

Yep, can you send me over the latest version of the widget by email

@BobBooth changes made as per your suggestion, @kgonzago is moving code up to Devtopia

enter now commits a value. the watermark text is removed when you single click on the text box  to insert a value. I believe this can be closed


Can not find MockWebServer class

I use testCompile add MockWebServer library ,but can not find MockWebServer class.
My AndroidStudio version is 1.5.1.
  compile 'com.squareup.okhttp3:okhttp:3.0.1'
  testCompile 'com.squareup.okhttp:mockwebserver:2.7.2'

What import are you using for it?

You should really update MWS to com.squareup.okhttp3:mockwebserver:3.0.1 if you're using OkHttp 3.0.1...

I solved this problem by using androidTestCompile .
compile 'com.squareup.okhttp3:okhttp:3.0.1'
androidTestCompile 'com.squareup.okhttp:mockwebserver:2.7.2'

Sounds good.

I hope you update README.

Well the README is correct for unit tests for both Java projects and Android projects, just not Android-specific instrumentation tests.

Got it.

it's now available on testImplementation("com.squareup.okhttp3:mockwebserver:4.0.0"), i still got same error

it's not available on testImplementation("com.squareup.okhttp3:mockwebserver:4.0.0"), i still got same error

I think latest stable version is
 androidTestImplementation "com.squareup.okhttp3:mockwebserver:3.10.0"


Infinite rotation without fading effect?

Hello, Animate.css looks awesome. But I am missing a very simple animation: Rotate. Maybe I am missing the obvious, but there is always a fade-in/out effect. No plain rotation preset.
Question:
How to get a simple rotation effect, left or right. Without fading.
Any clue? Thanks in advance.

This isn’t something I’m likely to add to Animate.css, but it’s a really simple animation you can do yourself:
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

.element {
  animation: spin 1s infinite linear;
}

Thanks for your comment and tip!
(Although, I still think it should be an option. IMHO, it would make animate.css more complete and generally useful. Actually, the fade-fx is the "extra candy", which is not suitable for every animation.)


Using cluster inspection to extend endpoint capability is a path to madness

@bzbarsky-apple
Feature description
Problem description:
My product is a light switch which has a built in LED to indicate the status of the switch.  I created a standard LightSwitch endpoint which was marked with the LightSwitch device type.  I then extended the standard endpoint by adding a LevelControl cluster representing my LED. I marked this extension by adding a VendorDeviceType. I was careful to do my extension in such a way that it in no way impacted the functions required by the standard LightSwitch device type. My extension is a pure super set.
When I added this device to Apple Home I observed a completely unexpected behavior. Apple Home added the Light Switch but then it performed cluster inspection and also added a Light Bulb device.

Impacts:
Using cluster inspection to extend endpoint capability is a backdoor way to extend the spec and it should be prohibited by the spec.  Due to Apple Home performing cluster inspection I have now lost any ability to create vendor specific super sets of a device type.  I lose this ability because I have no mechanism to disable Apple Home's cluster inspection. Also consider what is going to happen if the spec adds indicator LEDs to the Light Switch specification. Apple's creation of this UI disrupts how an indicator LED would work (the LED should not have a UI, instead it is bound to the switch group so that it tracks the state of the group). But now, because of Apple Home's cluster inspection, we can't add indicator LEDs to the Light Switch type.
Proposed solution:
First, all cluster inspection should be banned. Endpoint capability is determined by the device type(s) and only the device type(s). This is the path to madness, if these extensions are not marked with a vendor device type there is no mechanism to sort out conflicting extensions.
Any extensions to an endpoint MUST be marked by a VendorDeviceType. And these extensions MUST be a pure super set. It MUST still be possible to use the endpoint's base device type and to ignore the vendor extensions. Endpoints like this would list two device types, the base device type and the vendor device type.
Apple Home can still generate this extended UI, however, to trigger it you will need to add an AppleDeviceType on your endpoint in addition to the base device type to indicate that it has the extended capabilities. If that AppleDeviceType isn't there, Apple Home should not go probing for clusters. Note that even though this is an AppleDeviceType any vendor can use it, it is an AppleDeviceType because Apple defined it.
Since Apple Home has already shipped this a legacy solution is needed. I would propose that Apple Home define and document this AppleDeviceType. Newly shipped products would need to include it in the future in order to trigger the UI. For existing products Apple Home should be modified to check for the existence of a VendorDeviceType on the endpoint and if there is a VendorDeviceType it should disable this UI. Using lack of a VendorDeviceType to enable the Apple Home extended behavior is a legacy solution. All future devices should add the AppleDeviceType to trigger this extended UI.
The conformance tests should be modified to enforce this. If an endpoint contains clusters or attributes which are not part of the base device type then it MUST be marked with a vendor device type.
Requiring extensions to be clearly marked and prohibiting cluster inspection will close this backdoor to spec extensions.
Platform
all
Platform Version(s)
No response
Anything else?
No response

This issue seems integration-specific rather than SDK specific.
Please follow the instruictions for providing feedback to apple (https://project-chip.github.io/connectedhomeip-doc/issue_triage.html#apple-integration)


Unable to launch the lib

Hello,
I would like to use the lib to do some dev with it but i'm facing issues even launching a project with it.
My project is built with poetry so i'm handling the libs through this tool. My config file looks like this:
[tool.poetry]
name = "poetrytestproject"
version = "0.1.0"
description = "Test project"
authors = ["Kamigaku<EMAIL_ADDRESS>
[tool.poetry.dependencies]
python = "^3.10"
matplotlib = "^3.5.3"
Unidecode = "^1.3.4"
numpy = "^1.23.4"
scipy = "^1.9.3"
tweepy = "^4.12.1"
Pillow = "^9.2.0"
fonttools = "^4.38.0"
twitter-scraper-selenium = "^4.1.2"

[tool.poetry.dev-dependencies]

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

When i'm launching the project with a simple import of your solution, i'm getting this error:
Traceback (most recent call last):
  File "G:\Code\Python\PoetryTestProject\main_selenium.py", line 6, in <module>
    from twitter_scraper_selenium import scrape_profile
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\twitter_scraper_selenium\__init__.py", line 5, in <module>
    from .keyword import scrape_keyword
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\twitter_scraper_selenium\keyword.py", line 4, in <module>
    from .driver_initialization import Initializer
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\twitter_scraper_selenium\driver_initialization.py", line 12, in <module>
    from seleniumwire import webdriver
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\seleniumwire\webdriver.py", line 27, in <module>
    from seleniumwire import backend, utils
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\seleniumwire\backend.py", line 4, in <module>
    from seleniumwire.server import MitmProxy
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\seleniumwire\server.py", line 5, in <module>
    from seleniumwire.handler import InterceptRequestHandler
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\seleniumwire\handler.py", line 5, in <module>
    from seleniumwire import har
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\seleniumwire\har.py", line 11, in <module>
    from seleniumwire.thirdparty.mitmproxy import connections
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\seleniumwire\thirdparty\mitmproxy\connections.py", line 10, in <module>
    from seleniumwire.thirdparty.mitmproxy.net import tls, tcp
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\seleniumwire\thirdparty\mitmproxy\net\tls.py", line 43, in <module>
    "SSLv2": (SSL.SSLv2_METHOD, BASIC_OPTIONS),
AttributeError: module 'OpenSSL.SSL' has no attribute 'SSLv2_METHOD'. Did you mean: 'SSLv23_METHOD'?

Process finished with exit code 1

I've read on multiple spot on the internet (and even on your facebook scrapper project) that the issue might comes from the "PyOpenSSL" package and i've downgraded its version to "21.0.0" using poetry and the error changes to:
Traceback (most recent call last):
  File "G:\Code\Python\PoetryTestProject\main_selenium.py", line 6, in <module>
    from twitter_scraper_selenium import scrape_profile
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\twitter_scraper_selenium\__init__.py", line 5, in <module>
    from .keyword import scrape_keyword
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\twitter_scraper_selenium\keyword.py", line 4, in <module>
    from .driver_initialization import Initializer
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\twitter_scraper_selenium\driver_initialization.py", line 12, in <module>
    from seleniumwire import webdriver
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\seleniumwire\webdriver.py", line 27, in <module>
    from seleniumwire import backend, utils
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\seleniumwire\backend.py", line 4, in <module>
    from seleniumwire.server import MitmProxy
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\seleniumwire\server.py", line 5, in <module>
    from seleniumwire.handler import InterceptRequestHandler
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\seleniumwire\handler.py", line 5, in <module>
    from seleniumwire import har
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\seleniumwire\har.py", line 11, in <module>
    from seleniumwire.thirdparty.mitmproxy import connections
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\seleniumwire\thirdparty\mitmproxy\connections.py", line 9, in <module>
    from seleniumwire.thirdparty.mitmproxy import certs, exceptions, stateobject
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\seleniumwire\thirdparty\mitmproxy\certs.py", line 10, in <module>
    import OpenSSL
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\OpenSSL\__init__.py", line 8, in <module>
    from OpenSSL import crypto, SSL
  File "C:\Users\Aurelien\AppData\Local\pypoetry\Cache\virtualenvs\poetrytestproject-3wjWjU16-py3.10\lib\site-packages\OpenSSL\crypto.py", line 3279, in <module>
    _lib.OpenSSL_add_all_algorithms()
AttributeError: module 'lib' has no attribute 'OpenSSL_add_all_algorithms'

Process finished with exit code 1

Any idea what might cause it?
I've got a friend that is also having the same issue.
I'm using python version 3.10.0
Thanks!

No, I don't have much idea about this. AttributeError: module 'lib' has no attribute 'OpenSSL_add_all_algorithms' This denotes that OpenSSL_add_all_algorithms() does not have that method. I think you should check if this version of lib has that method,

I was facing the same issue today when running this library so I updated selenium, and selenium-wire to the latest version and that fixed the issue.


Add-Faqs[CDS-87894]: Faqs for Jan 12

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the CODEOWNERS.
What Type of PR is This?

[ ] Issue
[ ] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[ ] Tested Locally
[ ] Optional Screen Shoot.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65a10fe399c9c1abe15d5d73--harness-developer.netlify.app


[WIP] Add real checksum for resources

Need some more testing, but seems to work ok in the cases I've tested.
Specs are still failing, I'll fix those after there's been another set of eyes on the logic. :)

functionality included in #35


Ho Ho Ho!

Merry Christmas Flame Fellows! 🎅 🎄🎄🎄🎄
Santa Claus is asking which features we'd like to have on Flame next year
Make your wish list here, and let's see what happens next :))  🎁🎁🎁

Full gamepad support (currently only android is supported and there is no support for the analog sticks)
Keyboard support (but needs to check if flutter is ready for this)

Desktop Support (using Flutter for Desktop, now being worked on on v1.0)

add native support for commonly used by the gamede community, like tiled for example

add native support for commonly used by the gamede community, like tiled for example

I think it will be nice to work on that. It looks like some already started to support TMX files 4 years ago :)
I played a little bit with this lib and it seems to be well written... I'm in contact with the owner.
Huh, Santa has listen to one wish 🎁

Update the documentation. :-P I'm a heavy flutter developer, but new to flame, currently having a hard time to a hello world!

@Panthro could you list the issues you had with the documentation, so we can be more assertive improving it where it lacks information?

@erickzanardo From my point of view, looks like you guys are heavy game developers that are porting something you know very well to flutter. This makes the documentation expecting a lot of knowledge from guys like me that has never developed a gameLoop aware game in my life try to tear my eyes and throw them out of the window when I can't make things like a background continuously tile.
The examples pointed out are either too simple (a box without a background that explodes in it's own position), or too complex (everything separated in their own components with a lot of functionality inside each component that I don't understand).
Things I missed the most int he documentation:

WTF is the camera and how do y play with it? (now I kinda understand, but was about 2-3 hours banging my head against the wall and playing with numbers to understand it).
How to add a Flame Game inside an app with other widgets, currently dealing with that and having a hard time.
There are several of the examples of the documentation like the handleTap method that was mentioned somewhere which does not exists in the baseGame (or was created in another class).
What all the different ways of painting and interacting with the canvas? I know this seems basic to game developers, but that was the first time I actually painted on the canvas by myself on a flutter app :-)

To be more assertive:
Examples and documentation would be more self explanatory, without interdependencies. Think about this, when we're new to an API, we don't know which methods are native to the api and which ones are not, so creating new methods for the example confuses newcomers.

BTW, amazing work on abstracting a lot of things to a non regular game developer, just realised you guys are from 🇧🇷as well, me too :-)
Obrigado pela ferramenta.

I see, indeed we could add some tutorials to the docs, maybe some step by step examples to help who never developed games and chose flame as its starting tool in the gamedev life.
Sadly this is kind of a lot of work and I don't know when we will be able to do that, so I created an issue here so we don't forgot about it and you can keep track of the progress of the tutorials.
In the meantime also feel free to ask questions about it, we will try to help whenever we can, if you like and use discord join our server, there is a channel dedicated to flame there: https://discord.gg/jzM7vPP
Also happy to see a fellow countryman here o/


[FLINK-12169] [javadocs] improve javadoc of MessageAcknowledgingSource…

What is the purpose of the change

Improve Javadocs of {{MessageAcknowledgngSourceBase}}

Brief change log

*Improve Javadocs of {{MessageAcknowledgngSourceBase}}

Verifying this change
N/A
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency):  no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? N/A

@flinkbot approve all
Merging...


ARROW-7547: [C++][Dataset][Python] Add ParquetFileFormat options

Add parquet reader and arrow reader options to file format

@jorisvandenbossche I have namespaced reader specific options within ParquetFileFormat so they won't conflict with writer options. I've also switched to using names to designate dictionary columns. batch_size is a general consideration of scans, so I've promoted to a scan option (@fsaintjacques  testing that necessitated resolving https://issues.apache.org/jira/browse/ARROW-7338 )
PTAL

@fsaintjacques Since use_buffered_stream/buffer_size were introduced to resolve https://issues.apache.org/jira/browse/ARROW-6180 (multiple threads accessing a single RandomAccessFile), maybe this shouldn't be an option and instead should be configured automatically during a multithreaded scan?

I am not really familiar with those options. So if your comment about them is accurate, it indeed doesn't sound useful to expose them here.

@fsaintjacques @jorisvandenbossche I was incorrect: these options are not related to threading. They are provided to reduce memory overhead in the case where large row groups would otherwise be mapped whole into memory. I'll reintroduce the options and update the doccomments

ICYMI there's a bug in the Rcpp you added: https://github.com/apache/arrow/pull/6235/checks?check_run_id=458210010#step:5:1020


Calendar package

Feature Use Case

Schedule events (or appointments, phone calls, meetings, etc...)
Some operations: Create / Get / Update / Delete

# Example
--> Leon, what do I have planned for tomorrow?
<-- At 13:00 you have a nap

Feature Proposal
Implement a Calendar package with sub-modules for each provider. For example

Local calendar, through TinyDB
Google Calendar
Outlook
Etc...

 ✨ Todo Package

 ✨ Calendar Package

Hello @molamk,
Thanks for suggesting. I adjusted a card on the roadmap.
To do so, it'll be better to wait for the NLU improvement to be able to subtract dates entities at least.

Related to https://github.com/leon-ai/leon/issues/62.

I've started to work on it by introducing the modules actions.

Quick question: Is the calendar package going to use DAV? That would allow integration with tools like Nextcloud Calendar

Thanks for suggesting! This is definitely something we can keep in mind and can be added on the top.

I finished the first shot of the To-Do List module.
:gb: https://youtu.be/Ahfg6rRI9Lw
:fr: https://youtu.be/QVSVBkVev1k


Update ESMValCore requirement

Update ESMValCore requirement to be able to use 2.1 pre release version

note the failed installation tests are quite right to fail since esmvalcore is picked up as an environment dependency and installed from conda where we haven't updated the package to 2.1 yet :+1:

Yes, this is helpful!
I wanted to test some recipes and already doubted my abilities to pull a new branch or run the ESMValTool since I got the error message about the ESMValCore settings in the setup.py file...

The version would also need to be changed for the conda package, in the file package/meta.yml

Done! The environment.yml file is also missing, but I think it makes sense to modify it only after ESMValCore 2.1 is available on conda


Sign up/log in fails when using kubeshark CLI

When using kubesahrk tap and trying to use the authentication mechanism (e.g. sign up, login), the operation fails.
This is likely due to the kubeshark tap using kube-proxy mechanism instead of port-forward. It may be that kube-proxy is killing the authentication credentials carried in the request URI.
How to reproduce:

Run kubeshark tap
Try to log in
See that log in fails

How to bypass:

Use helm install kubeshark kubeshark/kubeshark instead of kubeshark tap; or
log in to https://console.kubeshark.co and copy your license. Use with --set license=<license>

Fixed with https://github.com/kubeshark/kubeshark/releases/tag/v52.3.62


Font size

Is your feature request related to a problem?
I expected to find font size value in settings to make it little bit less. Cant believe its not there.
Describe the solution you'd like
Add font size setting in settings.
Additional context
Thank you!

Maybe you can achieve a smaller font using custom CSS.

Good idea, i achieved desired result with .memo-content-text { zoom: 0.8; } thanks, but i still think it would be good to add it as setting.

Custom CSS is a more general solution instead of adding a new setting item.


restrict start record button click after 5 take 5 retake (click) in videojs.record.js ??

@sagarj789 I'm not sure if I understand you correctly but if you want to restrict recording to max 5 times, try something like:
var maxRecordTimes = 1;

player.on('finishRecord', function() {
    if (maxRecordTimes === 5) {
        // disable record button
        player.recordToggle.disable();
        // or hide the record button completely:
        // player.recordToggle.hide();
    }
    maxRecordTimes += 1;
});

No feedback, closing.


"Failed" transaction in Metamask results in successful transaction on-chain

Description
Metamask shows a failed transaction, which was successfully executed by the network and shows properly on hashscan.
I've included a screenshot of the tx on Metamask (we don't have a tx hash, but you can see the same time stamp with Hashscan).
Parent (ETH) transaction: https://hashscan.io/testnet/transaction/1674489539.768035019?tid=0.0.902-1674489526-986487488
Child (HTS NFT transfer) transaction: https://hashscan.io/testnet/transaction/1674489539.768035020?tid=0.0.902-1674489526-986487488

Steps to reproduce
Haven't identified how to reproduce this and not every failed tx in Metamask results in a successful tx on-chain.
Additional context
If I had to guess, I believe this may be related to incorrectly receiving gas estimations. Many times the gas estimations offered by MM are 0.00000 (which you can see in the MM tx screenshot). Often this results in a failed tx but infrequently the tx is actually broadcast and accepted by the protocol.
Also, when using the Brave browser + integrated wallet, I frequently see the error "Failed to get the gas fees for EIP-1559 transaction". While there's an outstanding github issue for this, the overlap of this + the issue we're seeing in the Chrome MM extension seem too similar not to mention. I did previously report this, but had then concluded that it wasn't on our side. I'm not less confident.

Hedera network
testnet
Version
JS sdk version: v2.15.0
Operating system
Windows

It might have something to do with the fact that the Hedera relay doesn't yet fully support eth_gasEstimate. Have you tried explicitly passing a sufficient gas value to the transaction parameters? In my understanding, if you do pass gas then Metamask doesn't do an eth_gasEstimate.
Also, if you're using the hashio relay in Metamask it's possible calls are failing(such as getting the gas price) due to rate limits. Try use your Arkhia URL and see if the issue persists.
Regarding why Metamask showed Failed for that transaction that actually succeeded as can be seen on Hashscan, it's possible that the call to get the status of the transaction(possibly eth_getTransactionReceipt) failed again due to rate limits, hence why Metamask showed Failed when it, in fact, did not.
Your transaction occurred around the same time I experienced #827 which seems to be a rate-limiting issue.

Hi, I'm working with @Ashe-Oro on the project where this issue occurred.
A solution that we used for transactions that were failing because of insufficient gas is setting the gas explicitly as @mshakeg suggested.
When trying to use Arkhia on testnet metamask can't fetch our HBAR balance, thus we can't do any operations as metamask blocks everything for insufficient funds.
We have no news on why the transaction failed in metamask and succeded on network. Probably some rate limiting problem as mentioned. We made multiple new transactions through Metamask and they are shown as success both in Metamask and network.

Hey @Ashe-Oro Can you try again, as we've introduced some bugfixes, if the issue still persist?

@BartoszSolkaArianelabs this issue should be resolved in testnet please confirm you're no longer seeing it

@Nana-EC yeah, we have no problem with insufficient gas after the update


Prevent user from accidentally changing key shift

The indexer_key_shift config value can't change once the database is populated. Otherwise, the application is going to be looking for the keys at different flag ledgers than were written previously. We need to either detect this change on startup, or just store the shift in the database.

keys table will be removed as part of caching


[WIP] Split PBlib.py and PDBlib.py into sub-modules to improve modularization

Like said previously, with the most of the refactoring done, the PBlib.py file has grown very large. I propose a separation of it into sub-modules based on #25.
Don't merge it yet because the scripts have not been modified.
Here, a suggestion of architecture. The spitting was not so obvious so don't hesitate to bring your opinions to improve it. (bold state for folders and italic for functions/classes/constants)

pbxplore

analysis

clustering.py: distance_matrix, _matrix_to_str, hclust
compare.py: matrix_to_single_digit, compare_to_first_sequence
neq.py: _neq_per_residue, compute_neq, write_neq

core

PB.py: REFERENCES, NAMES, SUBSTITUTION_MATRIX_NAME, load_substitution_matrix, write_flat, compute_score_by_position, substitution_score
PBs_substitution_matrix.dat
assignement.py: _angle_modulo_360, assign, _write_phipsi_entry, write_phipsi
count.py: _assert_same_size, count_matrix, read_occurence_file (shouldbe rename in read_count_file), write_count_matrix

formats

PDB.py: PDB
fasta.py: FASTA_WIDTH, read_fasta, read_several_fasta, _write_fasta_entry, write_fasta
loader.py: chains_from_files, chains_from_trajectory
structure.py: Atom, Chain, get_dihedral

scripts will contain later PBassign.py, PBcount.py, PBclust.py and PBstat.py
utils.py: _slice_matrix, compute_freq_matrix
visualization.py: plot_neq, plot_map, generate_weblogo
init.py to expose some critical functions directly to the users.

The idea was to separate:

the core functions which are intern to pbxplore (the dihedral assignement, the matrix of count, etc)
formats pbxplore handle: PDB, fasta, xtc. I'm not entirely satisfied by this sub-modules because it will be hard to define how to expose it to the user (more on that later). For example, functions inside loader.py should be directly accessible from pbxplore (pbxplore.chains_from_files()). Maybe also it lakes of proper API functions.
the analysis functions. See the __init__.py for the exposed functions.
the visualizations functions. Since there is no so much here, I didn't want to make a folder.

From this architecture, the main question/issue I struggle is how to expose the functions inside the submodules core and formats to the API user and I need your opinions. That's why I didn't change the scripts (hence the fail on tests).
I think for analysis and visualization, it's pretty clear: the user will import the submodule to use the functions.
For example, functions chains_from_files, chains_from_trajectory, assign should be directly accessible from pbxplore main module (pbxplore.my_function) but what about the other ones ?
Should all be exposed to the main module ? If not, which ones ?

    # PBassign example
    import pbxplore

    # Maybe this whole block could be turn into a API function
    chains = pbxplore.chains_from_files(pdb_name_lst)
    all_comments = []
    all_sequences = []
    all_dihedrals = []
    for comment, chain in chains:
        dihedrals = chain.get_phi_psi_angles()
        sequence = pbxplore.assign(dihedrals)
        all_comments.append(comment)
        all_dihedrals.append(dihedrals)
        all_sequences.append(sequence)

    with open("fasta", 'w') as outfile:
        #What is the best line ?
        pbxplore.write_fasta(outfile, all_sequences, all_comments)
        pbxplore.formats.fasta.write_fasta(outfile, all_sequences, all_comments)
        pbxplore.fasta.write_fasta(outfile, all_sequences, all_comments)
        # ...

     with open("flat", 'w') as outfile:
        #Same here
         pbxplore.write_flat(outfile, all_sequences)
         pbxplore.formats.PB.write_flat(outfile, all_sequences)
        # ....

Again, maybe it's not clear because either I split those functions in wrong way or either it lakes of "global" API functions. Also, the number of read/write functions on different objects (count ,fasta, phipsi, flat) does not ease it and for this case, it's already API functions.
I'm all ears.

Hi @HubLot.
I propose visualization.py goes into the analysis directory since map or neq are kinds of analysis.
One way to make things easier would be to expose to the main API all functions inside core and format.

Yeah @HubLot ! Great !
I do not know how things should be on the file side, but on the API side I would avoid having to many levels. I would suggest to remove the penultimate level of your hierarchy, then pbxplore.analysis.neq.compute_neq would become pbxplore.analysis.compute_neq. It can be done with your file organization by importing the content of pbxplore.analysis.neq in pbxplore.analysis.__init__.
I would prefer to have all function related to file (excepted the visualization stuff) in pbxplore.formats that may be rename pbxplore.fileio or pbxplore.io. This include functions such as write_neq and  write_phipsi.
I suggest to rename pbxplore.core.PB into pbxplore.data,  to move compute_score_by_position, and substitution_score in pbxplore.analysis, and to move write_flat in pbxplore.formats.
pbxplore.formats.PDB and pbxplore.formats.structure could be merged in pbxplore.structure. I do not know what to do with get_dihedral, though.
count.py could go in analysis, therefore core could become assign.
It may look like a lot of change, but then the package is organized  the same way I see PB used: from a structure or a trajectory (pbxplore.structure), PB sequences are assigned (pbxplore.assign), then analyzed (pbxplore.analysis); the output of the analysis is written into a file (pbxplore.formats) or plotted in some way (pbxplore.vizualise). If somebody wants to use an other PDB parser, then it will not use pbxplore.structure. If the PB sequences are already assigned, then pbxplore.structure and pbxplore.assign are not useful. pbxplore.data limits the need for imports across the module, it also allows a user to write new applications of the PB (like PB prediction of structure building) without touching the rest of pbxplore.
Finally, this really needs a shortcut:
chains = pbxplore.chains_from_files(pdb_name_lst)
all_comments = []
all_sequences = []
all_dihedrals = []
for comment, chain in chains:
    dihedrals = chain.get_phi_psi_angles()
    sequence = pbxplore.assign(dihedrals)
    all_comments.append(comment)
    all_dihedrals.append(dihedrals)
    all_sequences.append(sequence)

Thanks guys for your inputs.

I do not know how things should be on the file side, but on the API side I would avoid having to many >levels. I would suggest to remove the penultimate level of your hierarchy, then >pbxplore.analysis.neq.compute_neq would become pbxplore.analysis.compute_neq. It can be done >with your file organization by importing the content of pbxplore.analysis.neq in >pbxplore.analysis.init.
It's already done in this PR ;)

I agree with the view of @jbarnoud about the changes with minor revisions (ahah). I think some "core" functions need to be directly accessible from the main module (i.e chains_from_files, chains_from_trajectory and assign). Then the user will load analysis and/or io to perform what he wants.
I agree also with @pierrepo about visualization. I think I can move it to analysis (to reduce the number of sub-modules to load) and access the functions like this pbxplore.analysis.plot_neq

OK. But try to be KISS.

I made changes following our discussion. I also updated the scripts (PBassign.py, etc) to give you an idea.

pbxplore

analysis

clustering.py: distance_matrix, _matrix_to_str, hclust
compare.py: matrix_to_single_digit, compare_to_first_sequence
count.py: _assert_same_size, count_matrix, read_occurence_file
neq.py: _neq_per_residue, compute_neq
utils.py: _slice_matrix, compute_freq_matrix, compute_score_by_position, substitution_score
visualization.py: plot_neq, plot_map, generate_weblogo
all functions that don't start with '_' are exposed to analysis(pbxplore.analysis.compute_neq)

io

fasta.py: FASTA_WIDTH, read_fasta, read_several_fasta, _write_fasta_entry, write_fasta
write.py: _write_phipsi_entry, write_phipsi, write_flat, write_count_matrix, write_neq

structure:

PDB.py: PDB
loader.py: chains_from_files, chains_from_trajectory
structure.py: Atom, Chain, get_dihedral

PB.py: REFERENCES, NAMES, SUBSTITUTION_MATRIX_NAME, load_substitution_matrix,
PBs_substitution_matrix.dat
assign.py: _angle_modulo_360, assign,
scripts will contain later PBassign.py, PBcount.py, PBclust.py and PBstat.py
_init_.py to expose some critical functions directly to the users (chains_from_files, chains_from_trajectory, assign and PB module)

I rename the folder formats by structure but I kept the structure and the files in it. In fact, it's mainly internal parser and the user should only know about chains_from_files, chains_from_trajectory.
I followed the suggestions for PB.py but I kept his name because this one is more recognizable (PB = Protein Blocks) than data (data is a good name for variable, not so much for modules).
Overall, the changes made the architecture and the use of the module clearer and easier.
But, if you look into the scripts, I'm not satisfied with the import needed. Right now, we need 3 imports and the length to the function calls are long. Maybe @pierrepo was right by exposing all functions to the main module :)

Well well well. Can we have the week-end to think about it?

I looked at PBassign.py and liked it much. I do not see a problem with the 3 lines of import. It is fairly common, and I find it neater: you know right from the imports what the script is about. Also, having things split that way should make things easier with optional dependencies.
Are the function call really much longer? pbxplore.io.write_fasta is 3 characters longer than pbxplore.write_fasta The names that are a bit long are those of the constants in pbxplore.structure. They are not used that often, if they are they can be imported as from pbxplore.structure import THE_LONG_CONSTANT_NAME.

I looked at PBassign.py and liked it much. I do not see a problem with the 3 lines of import. It is fairly > common, and I find it neater: you know right from the imports what the script is about. Also, having > things split that way should make things easier with optional dependencies.

I could agree for the "analysis" sub-modules but not so much for the others (structure, io). 3 imports is huge imho. Numpy, matplotlib, mdtraj have mainly one import and they are pretty clear.

Are the function call really much longer? pbxplore.io.write_fasta is 3 characters longer than > pbxplore.write_fasta

Indeed but with one main import, we could do:
import pbxplore as pbx
pbx.write_fasta()

@HubLot If you want to reduce the number of imports, you can add some imports in pbxplore.__init__. If you have import .io in the __init__ you should be able to access pbxplore.io from the import pbxplore.
I agree that the most common functions should have shortcuts, but not all functions or it will quickly become a mess.

@HubLot If you want to reduce the number of imports, you can add some imports in   pbxplore.__init__. If you have import .io in the __init__ you should be able to access pbxplore.io from the import pbxplore.

Indeed, this is already the case for the sub modules PB and we could add io and structure too. Then, the shortcut import pbxplore as pbx will work fine ( i.e pbx.io.write_fasta())

I made few changes based on the discussion. As suggested by @jbarnoud, the submodules are exposed directly into the main pbxplore module through the pbxplore/__init__.py. I also exposed the submodule analysis to keep consistency between submodules.
Now, only one import is required (import pbxplore as pbx) but the hierarchy/level of the submodules are kept:
import pbxplore as pbx
pbx.assign()
pbx.chain_from_files()
pbx.io.write_fasta()
pbx.analysis.compute_neq()

OK. I merge the beast.


Angular2Multiselect causing flicker when opening NgbModal

I have a basic multiselect component on many pages that work fine:
<angular2-multiselect
        [data]="filter.value.items"
        [(ngModel)]="filter.value.selectedItems"
        [settings]="filter.value.settings"
        (onSelect)="filterByMultiselect(filter.value.filterName, filter.value.selectedItems)"
        (onDeSelect)="filterByMultiselect(filter.value.filterName, filter.value.selectedItems)"
        (onSelectAll)="filterByMultiselect(filter.value.filterName, filter.value.selectedItems)"
        (onDeSelectAll)="filterByMultiselect(filter.value.filterName, filter.value.selectedItems)">
 </angular2-multiselect>

However, when I open a modal (using NgbModal bootstrap 5) on a page with the multiselect on it, the page slightly flickers before the modal opens
Using:

Angular 8
Bootstrap 5.1.1
Angular2multiselect 4.6.3

I'm also noticing that the modal open animation doesn't on work on pages with a multiselect.


Builder::search() ignores value provided for $threshold when caller omits $columns arg

Builder::search() allows a call like this, where the $columns arg is omitted and the value false is taken as the value for $fulltext instead:
$query = $this->getModel()->search('jarek tkaczyk', false);

(from tests/SearchableBuilderTest.php:311)
However, in this call:
$query = $this->getModel()->search('jarek tkaczyk', false, 40);

the value of 40 is ignored, instead of being used as the value for $threshold. The default of null is used instead.

Something else was wrong here. This doesn't affect 3rd param.


Basic firejail configuration

Second part of #86

Given that people seem to be happy with the plan for #86, I will go ahead and deploy that part.


There is a bug in line 308 of the TextField class.

Run the project error every time you pass the toolbarOptions property to the TextField Widget
TextField(
  toolbarOptions: ToolbarOptions(
    copy: true,
    cut: true,
    selectAll: true,
    paste: true,
  ),
),

Error message：
════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
The following assertion was thrown building ClearableTextField(dirty, state: _ClearableTextFieldState#6726b):
type 'ToolbarOptions' is not a subtype of type 'bool'

Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=BUG.md

User-created ancestor of the error-causing widget was:
  Column file:///Users/hanpeidong/WorkSpaces/AndroidSpace/JDSpace/flutter_appframework_demo/lib/tech_share/flutter_base/login/login_page.dart:33:22
When the exception was thrown, this was the stack:
#0      new TextField (package:flutter/src/material/text_field.dart:308:40)
#1      _ClearableTextFieldState.build (package:appframework_demo/tech_share/flutter_base/login/clearable_text_field.dart:164:16)
#2      StatefulElement.build (package:flutter/src/widgets/framework.dart:4047:27)
#3      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3941:15)
#4      Element.rebuild (package:flutter/src/widgets/framework.dart:3738:5)
...
════════════════════════════════════════════════════════════════════════════════════════════════════

The error occurred in the following location：
// TextField line 308
toolbarOptions = toolbarOptions ?? obscureText ?
         const ToolbarOptions(
           selectAll: true,
           paste: true,
         ) :
         const ToolbarOptions(
           copy: true,
           cut: true,
           selectAll: true,
           paste: true,
         ),

I think this is an operator priority issue, and it's okay to write as follows.
toolbarOptions = toolbarOptions ?? (obscureText ?
         const ToolbarOptions(
           selectAll: true,
           paste: true,
         ) :
         const ToolbarOptions(
           copy: true,
           cut: true,
           selectAll: true,
           paste: true,
         )),

my flutter doctor:
JRMWD3RDHTD5:~ hanpeidong$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.9.1+hotfix.6, on Mac OS X 10.14.6 18G84, locale
    zh-Hans-CN)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 10.3)
[✓] Android Studio (version 3.2)
[✓] Android Studio (version 3.5)
[✓] VS Code (version 1.40.1)
[✓] Connected device (2 available)

• No issues found!

Hi @PennHan
does this code represent the issue you are describing?
I've experienced the error
type 'ToolbarOptions' is not a subtype of type 'bool'
thank you

Yes

This looks like a dup of https://github.com/flutter/flutter/issues/40664, and if that's the case it's already been patched on master: https://github.com/flutter/flutter/commit/b730a993c1e6dd2774b270fb2e0253a26e69cf39.

See @LongCatIsLooong's comment, closing because it's a dup.


two less teeth

have you tried 2 less teeth?  They have some benefits.

Not yet

have you tried 2 less teeth? They have some benefits.

2 less teeth is easier to draw from 3d software using two normal less 1 teeth cycloidal discs


"UnicodeDecodeError: 'charmap' codec can't decode byte 0x9f in position 1732" during pip install in Windows

with open('README.rst') as file:
    long_description = file.read()

will fail in Windows in Git Bash with the following error:
$ pip install -r requirements.txt                                                                               Collecting git+https://github.com/e1ven/Robohash.git (from -r backend/requirements.txt (line 24))
  Cloning https://github.com/e1ven/Robohash.git to c:\users\foo\appdata\local\temp\pip-req-build-csx0_u6g
  Running command git clone -q https://github.com/e1ven/Robohash.git 'C:\Users\foo\AppData\Local\Temp\pip-req-build-csx0_u6g'
    ERROR: Command errored out with exit status 1:
     command: 'c:\devel\other\heedview\venv\scripts\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\foo\\AppData\\Local\\Temp\\pip-req-build-csx0_u6g\\setup.py'"'"'; __file__='"'"'C:\\Users\\foo\\AppData\\Local\\Temp\\pip-req-build-csx0_u6g\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-info
         cwd: C:\Users\foo\AppData\Local\Temp\pip-req-build-csx0_u6g\
    Complete output (7 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\foo\AppData\Local\Temp\pip-req-build-csx0_u6g\setup.py", line 7, in <module>
        long_description = file.read()
      File "C:\Users\foo\AppData\Local\Programs\Python\Python38\lib\encodings\cp1257.py", line 23, in decode
        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
    UnicodeDecodeError: 'charmap' codec can't decode byte 0x9f in position 1732: character maps to <undefined>
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Windows Git Bash uses cp1257 encoding by default, README contains Unicode emoji that doesn't have a mapping in cp1257, hence the error.
Fix is simple, use
with open('README.rst', encoding='utf-8') as file:

@e1ven note that open with encoding breaks Python 2.7 compatibility

A simple solution is to modify your requirement.txt file by removing version number of python-stdnum package
before:
python-stdnum==1.8
after:
python-stdnum


'className' type on dialog seems to have been broken in 1.0.5

Bug report
Current Behavior
className property has type error in 1.0.5 of  @radix-ui/react-dialog

Expected behavior
no errors on className property

Reproducible example
install latest version of @radix-ui/react-dialog
Suggested solution

Additional context

Your environment

Software
Name(s)
Version

Radix Package(s)
react-dialog
1.0.5

React
n/a

Browser

Assistive tech

Node
n/a

npm/yarn
pnpm

Operating System
Linux

Given 1.0.5 is a patch release, I'm assuming this was a bug and the type was dropped. Gonna help recovering it. This is the commit in question: https://github.com/radix-ui/primitives/commit/f873591ac32c31df9e860d3b6fc65be3cb910ba4.

The issue has been fixed with latest shadcn update. Thanks everyone who gave suggestions.!

closing issue

I am using Button from @radix-ui/themes simply like this
<Button className="rounded-none text3">Upload Documents</Button>
But my custom CSS class "text3" is not applied, nor did my TailwindCss class "rounded-none. Only inline style is working. Why is that?

Hi @mtalha218
I've never used radix-ui/themes before (I always use primitives with shadcn) but from what I'm seeing in docs they might not be using tailwind classes? (I may be wrong though)
take a look:

if somebody knows what's going, they can help you! Good luck : )


The decimalPlaces property was not fixed, rather the hardcoded 2 was used for decimalPlaces

closes #61

Great job! thank you for your contribution 😄


feat(protocol): update PlonkVerifier to accept new public inputs

Attention: It's not the final version, don't approve
Because the contract of verifier is too large and more than 24kb, so I will optimize the size in next version

Attention: It's not the final version, don't approve
Because the contract of verifier is too large and more than 24kb, so I will optimize the size in next version

Yah after the verification contract bytecode size issue fixed, i will change this PR's status to "Ready for review".


models.Request.sent never set to True?

While dissecting the models.Request.send() method for unit testing I tried to find the path where return self.sent actually returns True. I ack-ed through the code but failed to find a path. Did I miss something or is it really never set?

Yikes! Thanks for the catch.


Add LibreELEC logo

Description
Added ascii for LibreELEC as requested in #1481.

Sorry I force pushed the squashed commits while the PR was closed. That did not work obviously and I coulndn't reopen this one.
:sweat_smile:


fix: Revert "feat: pass global header bearer token as apikey to RealtimeCl…

…ient (#699)"
This reverts commit b55d386b35cdf9373fabbbc07199f86811bde339.
Additional context
This is not needed.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-1.04%) to 62.814%

Totals

Change from base Build<PHONE_NUMBER>:
-1.04%

Covered Lines:
84

Relevant Lines:
111

💛  - Coveralls


Revert the change to switch to the XCBuild system for a bit.

rdar://problem/38693902
rdar://problem/38817254

@swift-ci test and merge