Support for multiple static users

Type of issue
Feature Request
What
Multiple Static User Support
Why
Currently the charm configuration supports only one static username and a corresponding password:
 static_config = {
            "enablePasswordDB": True,
            "staticPasswords": [
                {
                    "email": static_username,
                    "hash": hashed,
                    "username": static_username,
                    "userID": self.state.user_id,
                }
            ],
        }

Dex auth supports multiple static users (they just need to be added to the staticPasswords list).
I understand that static password is only meant as a bootstrapping measure and not recommended for production, but having the ability to have multiple users would help better demonstrate the multi-user isolation feature of kubeflow.

I had similar notes:
Today, the dex-auth charm currently only allows modification of a single user. We can see this from the charm source code. The charm keeps track of variables self.state.username and self.state.password. This implies that the charm is only designed to configure a single user, overwriting the username and password whenever the config is updated.
To handle this, the charm config would need to be updated. It wouldn't be enough to just set single values like static-username and static-password. We'd need some way to add multiple username/password combinations.

@kimwnasptd Identified this use case:
A team of students wants to use Kubeflow for an assignment.

They get a machine everyone can access
Install charmed kubeflow
Create a user for each
Everyone can work on their namespace and also share their findings, which live in the same cluster


Import all modules as lazily as possible

What says in the title, a bunch of changes to delay loading of modules, either submodules of PyNM or 3rd party modules, to the last moment possible right before they are needed.
Result: Package now takes 1.32 seconds to import as opposed to the 4 to 5 seconds it used to take
from time import time

start = time()
import py_neuromodulation
print("Total time sequential:", time() - start, "seconds.")

Total time sequential: 1.321627140045166 seconds.

Are you ok with merging this too @timonmerk ?

Hi @timonmerk, I thought about the readability issue, it's true that not having imports at the top can make it a bit harder to distinguish dependencies. There is always the possibility of doing Ctrl+F for "import" of course, but apart from that there are 2 solutions I can think of:

Keep the imports at the top as comments: this is not particularly pretty either, takes time and it brings the risk of actual imports being changed without the comments being updated... the solution for that newly created problem would be to create a git-hook that runs on commits, or on PR, and that basically looks for imports that are not at the top of the file and adds them as comments to the top of the file specifying where on the file they are (line number, function, class). This would be however a bit laborious and it would take a bunch of hours to get right.

Use the LazyLoader function from importlib.utils: https://docs.python.org/3/library/importlib.html#importlib.util.LazyLoader This is the closest to an official lazy loading implementation that exists in Python. I haven't tested it yet, but I can give it a go if you thikn it's a better idea.  It would look something like this

from py_neuromodulation.nm_utils import lazy_import

joblib = lazy_import("joblib")

The problem with this is that I have no idea how to implement from  joblib import Parallel for example, so it does not cover all of our use cases currently.
There was an official proposal for actual lazy loading in Python but it got rejected sadly https://peps.python.org/pep-0690/


Make Client API return semantic results

As discussed in https://github.com/MystenLabs/fastnft/pull/496, the application facing Client API should be able to return a more detailed results in terms of the effects, instead of the raw effects.
This is already done with the new APIs such as split_coin and merge_coin.
We should be able to do the same for transfer and publish.

Discussed with @patrickkuo offline, we don't need this one now. Will create a few separate issues (not for devnet) to clean this up


[ADD]: 3-COLUMN PREVIEW COMPONENT WEBSITE ✨

Close #2756
Checklist:

[x] I have mentioned the issue number in my Pull Request.
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have created a helpful and easy to understand README.md

Please merge this PR @TusharKesarwani, @pranjay-poddar, @Saurabh-kumar09 & @MohitGupta121.


Adding Reflex Training JS game

Issue Type:

[ ] Bug Report
[x] Feature Request
[ ] Documentaion

Describe the feature

I want to add a reflex training game to the repo with minimal design. I believe that this will help beginners to learn about DOM navigation in JS and UI/UX with CSS.

I plan to complete this project in 4 days.

kindly assign this issue to me.

Keep the project size as small as possible

Okay sure 👍


Way of formatting email body?

Hi,
is there a way of formatting the alert's email() body? With a combination of id() and message() one can modify the email subject, can it be done for the body as well to get something other than the JSON body which is currently being sent?
Thank you

This is a similar request to #75


Fix for #1712

Should resolve #1712. Also includes a few extra unit tests to validate the fix.

@TheMode LGTM


can we set width and height of the calender

Is there any chance to set the height and width of the calender

Here is an old code example for a custom modal. If this issue is critical for you, please consider sending a pull request to fix it.


Use getKeystoreInstance from KeystoreUtils

$subject
Related to https://github.com/wso2/product-is/issues/19506

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/11107201539

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/11107201539
Status: cancelled

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/11107278959

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/11107278959
Status: failure

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/11107415596

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/11125380264

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/11125380264
Status: success


Cannot set throwOnError

It appears that throwOnError is a property on internalOptions but there does not appear to be any way to set that. Am I missing something?

I suspect you are using the beta version which the API has changed:
https://github.com/jonathanKingston/broccoli-lint-eslint/tree/beta

The version that is brought in by ember-cli-eslint 1.0.0-beta.13. Looks like 1.0.1.

So this doesn't appear to be working on 1.1.1, is there something different in the API I need to set?


Update sources-dist-stable.json

new stable versions for energymanager and stiebel-isg

Yes, it is.

It is tested with the community and then directly pushed into stable. Will change the workflow.

ok, thank you


Slack channel is inaccessible to non-Fiqus email addresses.

Describe the bug
Attempting to join the #elp Slack channel results in being told your account cannot be found in the Erlang workspace. Attempting to sign up to the workspace requires you have an @fiqus.coop email address.
To Reproduce**

Attempt to sign-in with an unregistered email address.
Navigate to the account creation page ("create an account" on the top right of the page).
Attempt to register an account with the workspace.

Expected behavior
I would be able to ask a support question in #elp.
Actual behavior
I cannot access the workspace.
Context

ELP Version (output of elp version):
Editor used:

Hi @offsetcyan The #elp channel is part of the Erlang Slack. You can request an invitation by the Erlang Ecosystem Foundation here. Will update the description to reflect that (I have been a member of that Slack forever, so didn't recall you could not simply sign up). Thanks for raising this!

Added a reference here


39/fresh_user_data

Removes the userObject from locale storage. Just keep the JWT and isAdmin (could be derived from the JWT, but this will not add any dependencies).
Close #39

@sogasg Used this for the demo... and it worked perfectly! :D


clarify pins

define each pin name, default, usage
call out special admin pin restrictions
fixes drduh/YubiKey-Guide#248

@drduh any thoughts?

Looks good. Can you resolve the latest revisions and we'll merge?

I ended up falling into a rabbit hole due to the PIV/GPG PIN confusion and then found this PR.  It seems to be stale and decided to update it in https://github.com/drduh/YubiKey-Guide/pull/276.  I hope I'm not stepping on any toes.  Just want to make sure no one else gets stuck like I did.
Thanks!


Dependency issue?

Hi,
I installed manually the gmusicapi depedency as required by the readme (using he correct commit) but can t make the module work.
Below is my error message:
$ python ExportLists.py ../export/
Logging into google music...
<EMAIL_ADDRESS>password:
Login Successful.
Traceback (most recent call last):
  File "ExportLists.py", line 17, in <module>
    api = open_api()
  File "/Users/XXX/Downloads/gmusic-playlist-master/common.py", line 151, in open_api
    dlog(u'Available track details: '+str(get_google_track_details()))
  File "/Users/XXX/Downloads/gmusic-playlist-master/common.py", line 63, in get_google_track_details
    results = api.search_all_access(sample_song,max_results=1).get('song_hits')
  File "/Users/XXX/anaconda/lib/python2.7/site-packages/gmusicapi-7.0.0.dev0-py2.7.egg/gmusicapi/clients/mobileclient.py", line 938, in search_all_access
    res = self._make_call(mobileclient.Search, query, max_results)
  File "/Users/XXX/anaconda/lib/python2.7/site-packages/gmusicapi-7.0.0.dev0-py2.7.egg/gmusicapi/clients/shared.py", line 80, in _make_call
    return protocol.perform(self.session, self.validate, *args, **kwargs)
  File "/Users/XXX/anaconda/lib/python2.7/site-packages/gmusicapi-7.0.0.dev0-py2.7.egg/gmusicapi/protocol/shared.py", line 225, in perform
    raise CallFailure(err_msg, call_name)
gmusicapi.exceptions.CallFailure: Search: 404 Client Error: Not Found for url: https://mclients.googleapis.com/sj/v1.11/query?q=one+u2&max-results=1
(requests kwargs: {'url': 'https://mclients.googleapis.com/sj/v1.11/query', 'headers': {'Authorization': '<omitted>'}, 'params': {'q': 'one u2', 'max-results': 1}, 'method': 'GET'})
(response was: '{\n "error": {\n  "errors": [\n   {\n    "domain": "global",\n    "reason": "notFound",\n    "message": "Not Found"\n   }\n  ],\n  "code": 404,\n  "message": "Not Found"\n }\n}\n')

Any idea?
Kind regards,
Michael

The code should work for both all access and non all access accounts.  I've tested on accounts with and without to verify it works, but maybe there is a difference.
Do you have an all access subscription?  if so, did you just recently get it?
Can you try changing the code to look for another song besides the default?  Change line 62 in common.py to a different song.
If you don't have all access can you replace calls to api.search_all_access with an empty list and see if that fixes the issue? For example at line 63 in common.py results = []

Thank you @soulfx . Indeed I do not have all access, and I applied your solution (empty list).
It worked as expected!
Kind regards,
Michael


Leaks between namespaces in CI?

We have a situation in CI where we have multiple versions of the function controller running in separate namespaces. It looks like a function deployment gets picked up by the wrong function controller in a different namespace from where the function is deployed and then deployed into the namespace where the function was deployed but with the config parameters set to match that of the other namespace where the rogue function-controller was running.
The rogue function-controller is running image riffci/function-controller:0.0.0-pr26 with the following config:
Name:           m-rifffctrl-000pr26-659780-rifffctrl-function-controller-52wc4l
Namespace:      m-rifffctrl-000pr26-659780
Node:           gke-k8s-ci-default-pool-d7ac1668-d52q/<IP_ADDRESS>
Containers:
  rifffctrl-function-controller:
    Container ID:   docker://e85a6b4891237f0e67ead356008a9c1b0ac80177145418062a6f904e9085db2a
    Image:          riffci/function-controller:0.0.0-pr26
    Environment:
      SERVER_PORT:                                8080
      JAVA_TOOL_OPTIONS:                          -Xmx512m
      SPRING_CLOUD_STREAM_KAFKA_BINDER_BROKERS:   m-rifffctrl-000pr26-659780-rifffctrl-kafka:9092
      SPRING_CLOUD_STREAM_KAFKA_BINDER_ZK_NODES:  m-rifffctrl-000pr26-659780-rifffctrl-zookeeper:2181
      RIFF_FUNCTION_SIDECAR_TAG:                  0.0.3-build.12
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from m-rifffctrl-000pr26-659780-rifffctrl-sa-token-b2jnf (ro)

The deployment for the square function has the following config:
Name:                   square
Namespace:              m-riff-003-008187
Pod Template:
  Labels:  function=square
  Containers:
   main:
    Image:        trisberg/square:0.0.1
    Port:         <none>
    Environment:  <none>
    Mounts:       <none>
   sidecar:
    Image:  projectriff/function-sidecar:0.0.3-build.12
    Port:   <none>
    Args:
      --inputs
      square
      --outputs
      replies
      --group
      square
      --protocol
      http
      --brokers
      m-rifffctrl-000pr26-659780-rifffctrl-kafka:9092
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>

Note the Image and --brokers settings which come from the function-controller in the m-rifffctrl-000pr26-659780 namespace instead of the function-controller in the m-riff-003-008187 namespace. That function-controller has the following config:
Name:           m-riff-003-008187-riff-function-controller-688dfff58b-kv8sj
Namespace:      m-riff-003-008187
Node:           gke-k8s-ci-default-pool-d7ac1668-dx8s/<IP_ADDRESS>
Containers:
  riff-function-controller:
    Container ID:   docker://1870dc0a2e048817f183159a091b753612a9e7c8bf09a40fecfd729b5ed5ac75
    Image:          projectriff/function-controller:0.0.4-build.3
    Image ID:       docker-pullable://projectriff/function-controller@sha256:f26e341ad42bd15a97ff27f9a25314edf153ce18b2d0531cfc10447ca1bf6e2b
    Port:           8080/TCP
    State:          Running
      Started:      Fri, 26 Jan 2018 18:10:04 -0500
    Ready:          True
    Restart Count:  0
    Liveness:       http-get http://:8080/health delay=60s timeout=5s period=15s #success=1 #failure=3
    Readiness:      http-get http://:8080/health delay=30s timeout=5s period=10s #success=1 #failure=3
    Environment:
      KAFKA_BROKERS:              m-riff-003-008187-riff-kafka:9092
      RIFF_FUNCTION_SIDECAR_TAG:  0.0.4-build.3
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from m-riff-003-008187-riff-sa-token-wps4f (ro)

This all looks correct, except for the fact that the deployed function uses config values from the wrong namespace and can't connect to the Kafka broker.

With the namespace changes to the cli and running a single riff instance on a cluster this is no longer an issue.


Update Modals for mobile/Add variable height to modals.

Make modals work for mobile/tablet sizes, as well as allow them to be variable height. The sizes used for modals should only affect width, and a max-height.

Fixed in newest Commit


Why does Android use the Vibrations API instead of View.performHapticFeedback + HapticFeedbackConstants

When digging into the code for Android I saw you are using the Android Vibration API. The haptic feedback on Android right now is very aggressive and a lot more 'in your face' than the nice subtle haptics on iOS delivered by UIImpactFeedbackGenerator.
There are APIs available for Android that use Haptics which allow for much more subtle feedback patterns:

https://developer.android.com/reference/android/view/HapticFeedbackConstants
https://developer.android.com/reference/android/view/View.html#performHapticFeedback(int)

Is there a specific reason for this choice? Otherwise, it might be interesting to implement this (I'd be happy to help via PR)

Hi, sorry for the late response.
As far as i read about the real haptic feedback of android the feedback must be bound to a View.
I tried back then a little bit around the API but couldn´t get a proper handling due to my lack of Java Skills.
I would be glad to get help regarding this feature as mentioned in the Readme:
Contribution Section

@eliaslecomte ;-)


Changed default ciphers

Updated default ciphers to match the defaults of the haproxy-boshrelease (here). This ciphers give a baseline for clients like: Firefox 1, Chrome 1, IE 7, Opera 5, Safari 1, Windows XP IE8, Android 2.3, Java 7.

Hi @lcacciagioni. Thanks for the PR. I understand the motivation to support different versions of different browsers, but the existing set of ciphers were chosen for security purposes. Opening it up would lead to some security vulnerabilities, and we can't allow that as a default configuration for haproxy.
One thing I'll point out is that the values provided in the spec file are only defaults -- you can always override them in your manifest. Just know that you'd potentially be opening yourself up to security issues if you did so.
I'll leave this PR open for a little while in case you have some follow up questions or other thoughts you want to bring up, but as is, it's unlikely that we'll merge this in.

@dsabeti I know that this is for security as it is, but it seems like a little restrictive more if you want to interact from browsers, anyway I think that you are right. Drop it if you fell it.


Fix big-endian bug

Fixes #254

@oyvindronningstad Would it be possible to update the zephyr version of zcbor and get the changes included for the 3.2 release?

@nordicjm When is that scheduled for?

This Friday

Can you contact me on Teams?


feat(riscv64,gnu): add some const PTRACE_*

PTRACE_GETFPREGS
PTRACE_SETFPREGS
PTRACE_GETFPXREGS
PTRACE_SETFPXREGS
PTRACE_GETREGS
PTRACE_SETREGS

get from sys/ptrace.h of riscv64 glibc
Signed-off-by: Coelacanthus<EMAIL_ADDRESS>

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @Amanieu (or someone else) soon.
Please see the contribution instructions for more information.

@bors r+

:pushpin: Commit a08edb469fd179c0f8e8064d149934dea78ecf37 has been approved by Amanieu

:hourglass: Testing commit a08edb469fd179c0f8e8064d149934dea78ecf37 with merge d5f6f7aa66d114c0aab12de6d4b737c46dd2487a...

:sunny: Test successful - checks-actions, checks-cirrus-freebsd-11, checks-cirrus-freebsd-12, checks-cirrus-freebsd-13
Approved by: Amanieu
Pushing d5f6f7aa66d114c0aab12de6d4b737c46dd2487a to master...


It's possible to have an Async label ?

Hi, thanks for this awesome lib!
My question is how to use in async way.
Lets say, Breadcrumb is to a product page and I want to show the product name
home -> category -> product name
Something like this (ie)
meta: {
  async breadcrumb() {
  const { data } = await api.get('product');
  const name = data.name;
  return {
    label: name
  };
  }
}

How to do that, if possible ?

@re2005 Hi, thanks for an interesting idea, but I'll try to figure out how to do it. If you have any ideas, feel free to submit them. PR are also welcomed

Can u accept a promise inside the component:
const label = this.getBreadcrumb(crumb.meta.breadcrumb);

So far, I do not see opportunities to implement this for several reasons:

The router does not work with promises
Rendering doesn't work with promises

Either I have not completely figured out the ecosystem vue and vue-router

So far, I do not see opportunities to implement this for several reasons:

The router does not work with promises
Rendering doesn't work with promises

Either I have not completely figured out the ecosystem vue and vue-router

Thanks for the feedback. Maybe on Vue3 this is something that will work.
I've also tried but didn't succeed.
Keep u posted if any update on my side.
Thanks

I'm not that deep into vue, but maybe it's an idea to use a similar logic like the vue-meta plugin. So that a child component can export certain fields to overwrite template strings in the parents.
https://github.com/nuxt/vue-meta

I'm not that deep into vue, but maybe it's an idea to use a similar logic like the vue-meta plugin. So that a child component can export certain fields to overwrite template strings in the parents. https://github.com/nuxt/vue-meta

Thanks anyway, I'll look into this pack!


Converting socks5 proxy to http(s) proxy?

Hi there,
Is it possible to use directly, or slightly modify this library to let it "convert" a SOCKS5 proxy to HTTP proxy?
Regards,
Jackson Hu.

I never worked with socks proxy before.
However I think you can route any packets that involves HTTP request (check if the packet stream content starts with HTTP methods like GET, CONNECT) to this proxy.

Okay thanks for that.


[MRG] SliceDict's copy now returns a SliceDict

Resolves #388

Thanks for this contribution. I've worked on this issue as well (#402). I should have put a note on the issue about that but I had falsely assumed that this would be a quick fix when it actually took me longer. The reason is that I had a look at some other methods that were broken and fixed them as well (__eq__ in particular).
I believe my PR supersedes yours. Again, sorry for the trouble.

That’s okay! Your PR looks good!


house price and minst

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


Updated overall Description

Updated overall Description

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

#sign-off

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


Next milestone

Hi All, the issue tracker is great for developing project of course, but what if you put the milestones for this project: what problems developers need to solve in the next milestones? It will ease the development process I think.

:+1: I agree with you.
HubPress is not ready for dev contribution. I'm fixing the build in // on the refactoring of the admin IHM.
After that, it will be easier to contribute and work with milestones

Just doing a bit of issue maintenance (as you can see, it's well overdue on this repo 😞).
Milestones would be great. We really need to work out the future of HubPress long term.


Linting files outside of the npm package?

I have ESlint installed in an npm package, but the npm package is only in a small part of my project.
project/
├── lib/
|    ├── .eslintrc
|    └──  A lot of files that should be linted.
├── tests/
|    ├── package.json
|    └──  node_modules/
|        └── .bin/eslint/

Only the files in tests/ are being linted. I've tried changing the working directory, installing eslint globally, no luck.

@bary12 installing eslint globally should work. When you open a file from the libs folder what is printed in the ESLint output channel.
You can also use the eslint.nodePath setting to control the install location of the eslint npm modules.

ESlint output channel:
(node:19348) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 90): TypeError: missingModuleReported.has is not a function
(node:19348) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 91): TypeError: missingModuleReported.has is not a function

I have tried "eslint.nodePath": "C:/Users/Bary/AppData/Roaming/npm". This is where the eslint package is installed globally, but it still didn't work.

This is strange. The ESLint extension has no missingModuleReported var or property. If you run ESLint in a terminal does it work or will it result in errors as well.

Sorry, my fault. Search in the wrong repository :-)

This is very wired. missingModuleReported is a HashMap created in main and it fails since it doesn't offer a 'has' function which all Maps have. Which version of VS Code and ESLint are you using.
The reason why this happens is that ESLint (the npm module) requires all plugins and the npm module itself to be either installed locally or globally. Since the files in the lib directory are validated using the global eslint you need to install all needed plugins globally as well.

Thank you, I did forget to install the plugin globally and now it works.


Extend unmangle type name method to respect F# naming features.

Would be worth to add an test for this...
~In short, we assume that no white-spaces are allowed in declaration names. Therefore every white-space is replaced with an underscore.~
F# allows to make really strange variable names through using two backticks:
let ``supercrazyvarname 2345$"§"&/%43)=%4ß?\`` = 1

Signed-off-by: realvictorprm<EMAIL_ADDRESS>

@tritao this is ready


EF Core 6 support

Is anyone working on EF Core 6 support?
I tried this myself, but can't get the tests to work that use "WithExpressionExpanding".
Thanks!

@StefH, I think it is already fixed.


[CERT-TEST-FAILURE]  - TC-TCTL-2.3 - Test failed

Feature Area
Area:Refrigerators
Test Case
TC-TCTL-2.3
Summary
All-clusters-app has to be enabled with below mentioned Attributes :

[ ] CurrentTemperatureLevel
[ ] SupportedTemperatureLevels

GitHub hash of the SDK that was being used
40fb7c246671e9d37ca8bb2cfbf37f81c1509334
Platform
raspi
Platform Version(s)
RPI - 4, 8GB RAM

Enabled with 701fcb2


build: cancel previous github action runs

SUMMARY
CI has been slow recently, partly because of long running queue.
Each new commits to an open PR triggers a new CI job. Let's see if cancelling previous runs helps speed things up.
Ref: https://github.com/styfle/cancel-workflow-action
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
N/A
TEST PLAN
CI should work
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

Codecov Report

Merging #11940 (e474f43) into master (98dc657) will decrease coverage by 4.10%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master   #11940      +/-   ##
==========================================
- Coverage   67.63%   63.53%   -4.11%
==========================================
  Files         932      464     -468
  Lines       45221    28510   -16711
  Branches     4335        0    -4335
==========================================
- Hits        30587    18114   -12473
+ Misses      14531    10396    -4135
+ Partials      103        0     -103

Flag
Coverage Δ

cypress
?

javascript
?

python
63.53% <ø> (-0.64%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

superset/db_engines/hive.py
0.00% <0.00%> (-85.72%)
:arrow_down:

superset/db_engine_specs/hive.py
54.61% <0.00%> (-29.62%)
:arrow_down:

superset/db_engine_specs/presto.py
69.95% <0.00%> (-12.45%)
:arrow_down:

superset/db_engine_specs/sqlite.py
65.62% <0.00%> (-9.38%)
:arrow_down:

superset/utils/celery.py
96.42% <0.00%> (-3.58%)
:arrow_down:

superset/examples/world_bank.py
97.10% <0.00%> (-2.90%)
:arrow_down:

superset/db_engine_specs/postgres.py
97.56% <0.00%> (-2.44%)
:arrow_down:

superset/examples/birth_names.py
96.51% <0.00%> (-2.33%)
:arrow_down:

superset/views/database/mixins.py
80.70% <0.00%> (-1.76%)
:arrow_down:

superset/result_set.py
96.69% <0.00%> (-1.66%)
:arrow_down:

... and 479 more

Continue to review full report at Codecov.

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


New project added in Readme file (Mr. Pomodoro)

Mr. Pomodoro Project Added in Readme under Hacktoberfest 2021.
Hope You Review And Merge it soon.
Issue Link: https://github.com/Kushal997-das/Hacktoberfest-2021/issues/55#issue-1014104869
Thank u @Kushal997-das

@Kushal997-das this is under Hacktoberfest 2021. Please add the Hacktoberfest-accepted label.
Thank u


Create secret editing form

Issue:
currently when a user want to edit the provider credentials they used the edit provider form, this works well for small secrets, but in 2.5 we started to have larger and more complex secrets.
Fix:
create a specific form to handle all types and sub-types of secrets.
Ref: https://issues.redhat.com/browse/MTV-549

merged upstream #526

done in #526


Lawyer contributions

Lawyers would like to contribute to this library. In order of importance, lawyers would like to:

contribute representative template clause and contract text
contribute parameterized template grammar
contribute template models
write and contribute Ergo logic
see a template 'in action' somehow

@jeromesimeon good source of requirements for Template Studio.

All of the above drafting issues are addressed at https://studio.accordproject.org
We do still need some good instructions on how to use GitHub to share the contribution, however.

Does the studio really support all of those requirements? What if a lawyer wanted to contribute only the text, would that work with the current Cicero implementation?

Can we consider this closed: there is an issue on template studio to track the requirement for templates without logic.


Disable duplicate reminders across multiple VS Code instances

Hello.
Thank you for remining me!
I've to deal with concurrent projects, so I'm running multiple VS Code instances. Could you add e.g. a configuration parameter to show the reminders only once? (not in every running VS Code instance)
Gregards,
Thomas

Sorry for replying sooooo late, but I can't reproduce it. I have only received a notification from the active running vscode instance.


Bump Up Dependencies?

Should we bump up dependencies?

No real need right now – the only runtime dep has latest satisfied by the current semver range.


VoidPromise and others leak in 4.0.30.Final in my push server

Netty version: 4.0.30Final
Context:
I have been working on a push Server and I am testing the memory leak.
I use Netty to receive user request and send a result to user.
$ java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
jvm argument:
-Xmx128M
Operating system:
win7 64bit
the client and the server are both my PC,the buffer is used up many times by the client.
reproduce:

I can provide all my code and the code is so sample I believe that the problem will be solved soon
https://github.com/taojiaenx/taojiane_push.git
When the client send a message, the client will close the connetion
org.ddpush.v1.node.PushListener  include all the work that netty do and I think  PushTask or TimerSolver(a class In pushListener.java) may cause the meomroy leak
the channelContext is referenced by PushTask and the PushTask is a "FutureTask" which work in threadPool, I have establish a timeout solver the reference of channelContext will be dereferenced at most 45 seconds later
I use this way to send a push messages.
code is in org.ddpush.v1.node.client.appuser.example
for(int j = 0; j < 30; ++j) {
         for(int i = 0; i < 5000; ++i) {

            new Thread(new send0x20Task(ip,pushPort,clientUUID, ("testfewfwefewfewfewfewfewfewfwefwe " + 1).getBytes("utf-8"))).start();

              // when a push is finished, the connetion will be closed right now

         }

         TimeUnit.SECONDS.sleep(10);

        }

@taojiaenx - Can you provide a bit more detail as to why you think there is a leak, and why you feel this leak is in Netty?  For example have you forced a GC and traced GC roots?

I think may be this is the problem of my code and I just want to know how this happen, I will provider with the graph of class latter.

this is the heap

there is no out going reference.
when I test the client will send a message to the server then close the connection immdiatly, and there are a lot of clients do this operation at the same time.
I thick those code may cause the leak
this code is in a class which is the son class of SimpleChannelInboundHandler
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause)
throws Exception {
if (ctx.channel().isActive()) {
ctx.disconnect();
ctx.close();
}
// cause.printStackTrace();
}
Maybe  the leak is beacause of I use the ByteBuf in seperate thead, however there is no leak of ByteBuf.

sorry ignore this, found the bug, sorry

@taojiaenx - Glad you found it. Care to share what the root cause was?

Gentle ping to @taojiaenx. We are curious to know what the root cause was.

sorry I have not see this. I cause leak beacuse I set a to big timeoutValue, sorry


fix(cli): new command should add gitignore

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[BIR] Intersection type's functions are not available as top level functions

Description:
$subject
Steps to reproduce:
public type Frame readonly & object {
   public function toString() returns string;
};

Affected Versions:
SL Alpha 5
OS, DB, other environment details and versions:
Related Issues (optional):

Suggested Labels (optional):

Suggested Assignees (optional):

We can close this as we cannot reprduce this in beta1

Yes seems the PR was not linked. Linked it now. Fixing this would make the workaround obsolete


metricbeat uses daily indices

health status index                       uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   .kibana                     oebrJgJRSwCqXfStiq976w   1   1        136            3    248.9kb        248.9kb
yellow open   metricbeat-6.1.3-2018.02.15 ei2ExkE-TzuPdAHfnX1j6w   1   1      31358            0      4.2mb          4.2mb
yellow open   metricbeat-6.1.3-2018.02.16 86ehcmY1RUiBXN_BmkKhwg   1   1      32024            0      8.6mb          8.6mb
yellow open   funtoo                      h5oFubTFToedNaibqn3IRQ   5   1        109            2      6.1mb          6.1mb

this is the output from indices on ES. metricbeat uses daily rotated indices. I don't know what the advantage to this would be. Also don't know how to post index structure with the data. main concern is the timestamp field be indexed as number or text field and not as time.
will do some more research.maybe we could do monthly indices.

OK, so this is the proposal for changes:
            # load params for elastic search into report
            index => 'funtoo-201x.0y',
            type  => 'report',

change index to monthly or maybe even weekly index so for this week it would be
index => 'funtoo-2018.07'

I don't know what the performance implications are having a larger index. So theoretically if 100 users report every hour => 2400 reports a day => 16800 report a week => 67200 a month.
Going weekly will give us probably good balance between size/performance.

change the type => 'report'

and change the timestamp output format to:

"2018-02-16T11:14:48+01:00"
output from date on my system
root@latitudos ~ # ❯❯❯ date
Fri Feb 16 11:14:46 CET 2018
root@latitudos ~ # ❯❯❯ date -u
Fri Feb 16 10:14:48 UTC 2018

reference:
http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateOptionalTimeParser--

ES Help:
Date formats can be customised, but if no format is specified then it uses the default:
"strict_date_optional_time||epoch_millis"

If I submit epoch time it doesn't get recognised as date, but as number instead. That's why changing it to date'T'time[offset] is necessary.
Thank you in advance.

I think I have this right.. look at the new timestamp and report header(which now has dynamic index value)

works good, can be closed.


eprosima::fastrtps::PublisherImpl::lifespan_expired(): Assertion `interval.count() > 0' failed [7857]

A few seconds after starting a ROS 2 node with a publisher in ROS 2 foxy, the node gets SIGABRT and the following assertion:
eProsima/Fast-RTPS/src/cpp/publisher/PublisherImpl.cpp:503: bool eprosima::fastrtps::PublisherImpl::lifespan_expired(): Assertion 'interval.count() > 0' failed.
Expected Behavior
No assertion, node starts publishing.
Current Behavior

Steps to Reproduce
Build the ROS 2 system modes package with ROS 2 foxy. After that, follow the example. Step no. 3, starting the mode-manager, yields the above error.
System information

Fast-RTPS version: branch 'origin/1.9.x'
OS: Ubuntu 18.04
Network interfaces: lo (<IP_ADDRESS>)
ROS2: foxy

Additional resources

GDB trace:

(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff58e4801 in __GI_abort () at abort.c:79
#2  0x00007ffff58d439a in __assert_fail_base (fmt=0x7ffff5a5b7d8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7ffff2006401 "interval.count() > 0",
    file=file@entry=0x7ffff2006220 "/home/arne/dev/ros2f/src/eProsima/Fast-RTPS/src/cpp/publisher/PublisherImpl.cpp", line=line@entry=503,
    function=function@entry=0x7ffff2006860 <eprosima::fastrtps::PublisherImpl::lifespan_expired()::__PRETTY_FUNCTION__> "bool eprosima::fastrtps::PublisherImpl::lifespan_expired()") at assert.c:92
#3  0x00007ffff58d4412 in __GI___assert_fail (assertion=0x7ffff2006401 "interval.count() > 0", file=0x7ffff2006220 "/home/arne/dev/ros2f/src/eProsima/Fast-RTPS/src/cpp/publisher/PublisherImpl.cpp", line=503,
    function=0x7ffff2006860 <eprosima::fastrtps::PublisherImpl::lifespan_expired()::__PRETTY_FUNCTION__> "bool eprosima::fastrtps::PublisherImpl::lifespan_expired()") at assert.c:101
#4  0x00007ffff1caf064 in eprosima::fastrtps::PublisherImpl::lifespan_expired (this=0x5555559f5ae0) at /home/arne/dev/ros2f/src/eProsima/Fast-RTPS/src/cpp/publisher/PublisherImpl.cpp:503
#5  0x00007ffff1cac8c7 in eprosima::fastrtps::PublisherImpl::<lambda()>::operator()(void) const (__closure=0x5555559fc490) at /home/arne/dev/ros2f/src/eProsima/Fast-RTPS/src/cpp/publisher/PublisherImpl.cpp:84
#6  0x00007ffff1caf702 in std::_Function_handler<bool(), eprosima::fastrtps::PublisherImpl::PublisherImpl(eprosima::fastrtps::ParticipantImpl*, eprosima::fastrtps::TopicDataType*, const eprosima::fastrtps::PublisherAttributes&, eprosima::fastrtps::PublisherListener*)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/7/bits/std_function.h:302
#7  0x00007ffff1bf5cb6 in std::function<bool ()>::operator()() const (this=0x5555559fc490) at /usr/include/c++/7/bits/std_function.h:706
#8  0x00007ffff1bf5579 in eprosima::fastrtps::rtps::TimedEventImpl::trigger (this=0x5555559fc480, current_time=..., cancel_time=...)
    at /home/arne/dev/ros2f/src/eProsima/Fast-RTPS/src/cpp/rtps/resources/TimedEventImpl.cpp:96
#9  0x00007ffff1bef058 in eprosima::fastrtps::rtps::ResourceEvent::do_timer_actions (this=0x5555559a9540) at /home/arne/dev/ros2f/src/eProsima/Fast-RTPS/src/cpp/rtps/resources/ResourceEvent.cpp:230
#10 0x00007ffff1beeb06 in eprosima::fastrtps::rtps::ResourceEvent::run_io_service (this=0x5555559a9540) at /home/arne/dev/ros2f/src/eProsima/Fast-RTPS/src/cpp/rtps/resources/ResourceEvent.cpp:158
#11 0x00007ffff1bf1f2e in std::__invoke_impl<void, void (eprosima::fastrtps::rtps::ResourceEvent::*)(), eprosima::fastrtps::rtps::ResourceEvent*> (
    __f=@0x5555559a8e50: (void (eprosima::fastrtps::rtps::ResourceEvent::*)(eprosima::fastrtps::rtps::ResourceEvent * const)) 0x7ffff1beeab6 <eprosima::fastrtps::rtps::ResourceEvent::run_io_service()>,
    __t=@0x5555559a8e48: 0x5555559a9540) at /usr/include/c++/7/bits/invoke.h:73
#12 0x00007ffff1bf09c9 in std::__invoke<void (eprosima::fastrtps::rtps::ResourceEvent::*)(), eprosima::fastrtps::rtps::ResourceEvent*> (
    __fn=@0x5555559a8e50: (void (eprosima::fastrtps::rtps::ResourceEvent::*)(eprosima::fastrtps::rtps::ResourceEvent * const)) 0x7ffff1beeab6 <eprosima::fastrtps::rtps::ResourceEvent::run_io_service()>,
    __args#0=@0x5555559a8e48: 0x5555559a9540) at /usr/include/c++/7/bits/invoke.h:95
#13 0x00007ffff1bf491b in std::thread::_Invoker<std::tuple<void (eprosima::fastrtps::rtps::ResourceEvent::*)(), eprosima::fastrtps::rtps::ResourceEvent*> >::_M_invoke<0ul, 1ul> (this=0x5555559a8e48)
    at /usr/include/c++/7/thread:234
#14 0x00007ffff1bf48bc in std::thread::_Invoker<std::tuple<void (eprosima::fastrtps::rtps::ResourceEvent::*)(), eprosima::fastrtps::rtps::ResourceEvent*> >::operator() (this=0x5555559a8e48)
    at /usr/include/c++/7/thread:243
#15 0x00007ffff1bf488c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (eprosima::fastrtps::rtps::ResourceEvent::*)(), eprosima::fastrtps::rtps::ResourceEvent*> > >::_M_run (
    this=0x5555559a8e40) at /usr/include/c++/7/thread:186
#16 0x00007ffff5f6a66f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#17 0x00007ffff6ce06db in start_thread (arg=0x7ffff036c700) at pthread_create.c:463
#18 0x00007ffff59c588f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Talker and listener example from demo_nodes_cpp package runs flawlessly in the same setup btw.
Tell me, if I can/should test anything

I'm having trouble building system modes with ROS2 foxy. It looks like some mismatch with rclcpp on foxy. Build logs on system modes build error.log.
Are you by any chance using a different version than the one packed on foxy?

I will double check that I am on current foxy with all relevant packages and that my workspace is not polluted.

I reset my workspace to comprise exactly what is in foxy/ros2.repos right now (Iam building from source). This currently points to eProsima/Fast-RTPS:e72b1c3c380 and rclcpp:96ebf59a6.
I just realized that the linked rclcpp commit is related to publisher lifespan. I don't understand if this is connected to this issue, though.

Digged a little bit into the building errors. Looks like the repository at the provided link norro/system_modes uses an old version of the rclcpp API. For example:
 src/system_modes/mode_manager.cpp:343:    this->state_request_pub_[node_name]->publish(info);
where info is std::shared_pointer<TransitionEvent>
That method overload was removed from rclcpp on rclcpp:89119c64 on Sept 2019
I see that norro/system_modes has not been updated in more than a year, so it is still using the old API.
I switched back to the original  micro-ROS/system_modes  and it builds correctly. Also tested the example in that repo, and found no error.
Before wandering further, can you please check the exact configuration used to get the issue? Maybe using the example from the fork with the component from micro-ROS? (I don't know if that's even supported right now)

Sorry about the confusion, this was a copy&paste error in my initial bug report: I was indeed all the time using the micro-ROS/system_modes repo (not the norro/system_modes).
Sorry for the confusion!
My setup is:

ros 2 foxy built from sources according to https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos
micro-ROS/system_modes master

Let me know, if I can help in any way (might be delayed a bit due to the current overall chaos).

@norro Could you check with the source branch of #1097 ?

Works like a charme with eProsima/Fast-RTPS bugfix/lifespan-several-samples.
Thank you very much, @MiguelCompany, @IkerLuengo!


Where are the silence rules stored

What did you do?
I create silence rules via web ui
What did you expect to see?
after restarting the k8s pod, all rules for silences disappear. I want save silence rule

The silences are stored in the directory specified as the --storage.path flag (data/... by default).
If you run a K8s pod without any persistent volume attached, Alertmanager stores the silences locally, and if you restart the pod, you get an empty local directory. So you need a persistent volume in a stateful set to keep silences across restarts.
It makes more sense to ask questions like this on the prometheus-users mailing list rather than in a GitHub issue. On the mailing list, more people are available to potentially respond to your question, and the whole community can benefit from the answers provided.


Clearout shutdown_cont_event when the event has been processed

shutdown_cont_event was cleared out in main_event_handler but not in state_closed. It can cause a crash during ATS is draining connections.

Cherry-picked to 7.1.x

Cherry-picked to 8.0.x


Fix: Missing includes for Scores-Graphics TU

Travis build: 266.2 failed because of missing includes for std::{array, tuple}.

The PR will be closed via a regular "Merge". :incoming_envelope: :inbox_tray:
(Will be automatically merged in <2hrs from this message if no objections)

As there are no objections, will merge.


Huge performance impact

I've noticed that vim-numbertoggle has a huge performance impact.
I can't explain it myself, by looking at the code, why.
Might be related to my vimrc, you can find it here: https://github.com/Leandros/dotfiles/blob/master/.vimrc

Ok, after further investigation, it seems to be the redrawing of Vim (which is required with relative numbers) inside of tmux which slows it down a lot.
Adding set ttyfast and set lazyredraw seems to improve it a bit.


Running multiple commands in one invocation

I need to run tmux show-options -g -v default-shell. There's a catch, however: it doesn't work if a tmux server hasn't already been started. In command line, you solve that by running tmux start-server \; show-options -g -v default-shell.
In tmux_interface there can be (at least) two — well, three approaches to accomplishing that.
The first one is to manually assemble the command and then also manually call SessionOptions.from_str to parse the output, but that's boring :)
The second approach would be to add some kind of "append command" mechanism to TmuxCommand. To preserve the ability to parse output (of the last command) (which would be an optional feature — the most basic thing to do would probably be just a way to assemble a sequence of commands into an std::process::Command), I'd probably also add an analogue of From<TmuxCommand> implementations for (all? some?) command structs so that they preserve cmd/cmd_args of previously added commands. It looks like a lot of work though, and it'll probably require modifying the internals of TmuxCommand from what I can see.
The third approach is to add a special "run in a new server" flag to (all? some?) commands that would prepend "start-server", ";" to the command. Not sure if that's the direction you want to develop the API in.
What do you think?

Here's what I'm doing right now with 0.2.0:
pub fn get_default_shell() -> Result<Option<String>> {
    let option_name = SESSION_OPTIONS.iter().find_map(|t| if t.3 == DEFAULT_SHELL { Some(t.0) } else { None }).unwrap();
    let mut command = ShowOptions::new();
    command.global().option(option_name);
    // dirty hack
    command.0.bin_args = Some(vec![START_SERVER.into(), ";".into()]);
    let output: SessionOptions = command
        .output()
        .wrap_err("failed to run tmux to get default shell")?
        .to_string()
        .parse()
        .wrap_err("failed to parse show-options output")?;
    Ok(output.default_shell)
}

Before I explain my thoughts about architecture of the library.
I’m not sure, is this suitable for your purposes, but still. Examples below are something I would write if I had to get options using current version of the lib (excluding any error processing, just as an example):

Variant, direct access to tmux command show-options

Variant, getting all available server/session/window/pane options (ServerOptions::, SessionOptions::, WindowOptions::, PaneOptions::get_all()) returns the structure, with all available fields filled with information

Variant, selectively getting variables
(ServerOptions::, SessionOptions::, WindowOptions::, PaneOptions::get(VARIABLE1_BITFLAG | VARIABLE2_BITFLAG)) returns the structure, with only given fields filled with information, others stay None

use tmux_interface::{SessionOptions, TmuxCommand, DEFAULT_SHELL};
use std::io::Result;

// 1. Variant
pub fn get_default_shell1() -> Result<Option<String>> {
    let tmux = TmuxCommand::new();

    tmux.start_server().output().unwrap();

    // 1. Variant
    let output = tmux
        .show_options()
        .global()
        .value()
        .option("default-shell")
        .output()
        .unwrap()
        .to_string();

    Ok(Some(output))
}

// 2. Variant
pub fn get_default_shell2() -> Result<Option<String>> {
    let tmux = TmuxCommand::new();

    tmux.start_server().output().unwrap();

    let output = SessionOptions::get_all().unwrap();
    Ok(output.default_shell)
}

// 3. Variant
pub fn get_default_shell3() -> Result<Option<String>> {
    let tmux = TmuxCommand::new();

    tmux.start_server().output().unwrap();

    let output = SessionOptions::get(DEFAULT_SHELL).unwrap();
    Ok(output.default_shell)
}

fn main() {
    let default_shell = get_default_shell1();
    dbg!(default_shell);

    let default_shell = get_default_shell2();
    dbg!(default_shell);

    let default_shell = get_default_shell3();
    dbg!(default_shell);
}

You can't execute start-server separately from show-options, because (unless you specify some more options) the server will be immediately stopped, as it doesn't have any sessions attached to it. And I don't want to keep the new server running after I get the option value, because there's a chance I won't need it after all.

Now I've got your point. Sorry, was thinking about shell related command execution with that semicolon.
tmux manual:

PARSING SYNTAX
...
Each command is terminated by a newline or a semicolon (;).
Commands separated by semicolons together form a ‘command sequence’
- if a command in the sequence encounters an error, no subsequent
commands are executed.
...

Give me some time to think about possible implementation of this feature.

First of all thank you for all your suggestions. I wasn't even familiar with this great feature of tmux. Talking about the ways to solve it, you proposed:

The first one is to manually assemble the command
...
but that's boring :)

Agree, why does some user need to use the library at all then.

The second approach would be to add some kind of "append command" mechanism to TmuxCommand

Best approach of proposed in my opinion.

The third approach is to add a special "run in a new server" flag

Only as an ad-hoc and specific solution of only this problem, but it's not so elegant, because it doesn’t allow to take the full advantage of this tmux feature.
Great thing would be to implement some universal method:

reusable in “direct access mode” and in control mode as well
make possible to use other parts of this feature too (commands in a broad sense, not just as union / separation of multiple commands like new-session and other but if-else conditionals, brackets, etc)

What I am thinking of is some kind of an array to hold all the commands. Array members can be joined and the resulting command line (command array) can be passed through to std::process::Command.
Something like (simplified pseudo code):
let tmux = TmuxCommand::new();
let start_server = tmux.start_server();
let get_options = show_options().global().value().option("default-shell");

let cmds: TmuxCommands(Vec<TmuxCommand>) = TmuxCommands::new();
let output = cmds.push(start_server.0)
.push(get_options.0)
.output()
.unwrap();

Or using method as you described like .append() (simplified pseudo code):
let cmds = TmuxCommands::new();
let output = cmds
.start_server().append()
.show_options().global().value().option("default-shell")
.output().unwrap();

From current point of view I would say these concepts could be good solutions, but of course few related side problems must be analyzed and solved. It takes time to check it and implement some proof of concept.

In addition some drafts of graphical representation, of my mindset about architecture of the library.
They are incomplete, may have inaccuracies etc, not everything matches the current state of the code base, but anyway probably they can give some additional information about the whole vision and illustrate it.
Abstraction Levels:

Tmux Modes:

Structures and functions call trace:

The way I envisioned it, we have:

the Command as a backend;
TmuxCommand to represent a single invocation of tmux binary, providing methods to set global flags for the invocation, to add "raw" commands (by just specifying sequences of Cow<OsStr> or something like that), to create command builders (like ShowOptions) attached to this command, and to wrap the (last sub-)command in a high-level interface (like SessionOptions);
the command builders, for example, taking &mut TmuxCommand and manipulating it;
the high-level interfaces that provide native idiomatic access to the commands and their output to Rust code.

let mut cmd = TmuxCommand::new(); // command: tmux

cmd.start_server() // -> StartServer; invocation: tmux start-server
    // here you can interact with the StartServer instance
    .end_command(); // -> &mut TmuxCommand; invocation: tmux start-server \;
// ^ alternatively: cmd.append_full_command([START_SERVER])
// ^ alternatively: StartServer::append_to(&mut cmd).end_command();

let shell: Option<String> = SessionOptions::get(cmd) // fn get(_: TmuxCommand) -> GetSessionOptions
    .global()
    .single(DEFAULT_SHELL); // invokes the command

// alternatively:
let shell: Option<String> = SessionOptions::get(cmd) // fn get(_: TmuxCommand) -> GetSessionOptions
    .global()
    .all() // invokes the command
    .get(DEFAULT_SHELL);

This roughly covers things up to Level 3 in your terms; I'm not quite sure how Level 4 is supposed to work.

new mechanisms proposed in v0.3.0
thank you for the suggestion
multiple commands can be chained and executed in one call of tmux binary executable
Exmaple
    let output = Tmux::new()
        .add_command(StartServer::new())
        .add_command(ShowOptions::new().value().option("default-terminal"))
        .output();
    dbg!(output);

I hope this improvement is still relevant and it can help you solve your problems in convenient way. I apologize very much for the very long waiting time for implementing this.

Thanks! My dirty hack has been serving me well, but I'll look into upgrading to v0.3 as time permits :)

Reporting back: I migrated my code to 0.3 and it's great. I think we can consider this particular issue solved.

thx for your feedback, alright i'm closing this as solved. Please feel free to reopen
or create a new one in case of newly discovered problems.


Sync eng/common directory with azure-sdk-tools for PR 1983

Sync eng/common directory with azure-sdk-tools for PR https://github.com/Azure/azure-sdk-tools/pull/1983  See eng/common workflow

/azp run js - storage - tests

/azp run net - storage-blob - tests

/azp run js - storage-blob - tests

/check-enforcer evaluate

/check-enforcer override


client port option not working

What version of Node.js are you using?
16.15.0
What version of npm are you using?
8.9.0
What operating system are you using?
windows 10
What version of SnailyCAD are you currently using?
1.0.0-beta.96
Describe the Bug
when putting thee client port in the cad it dosnt edit the json file to launch the client on the port specified. i can try and open a pr with a fix
Expected Behavior
the client will launch on whatever port is deinfed in .env
To Reproduce
run the build and watch the client package.json with the start node command not get edited to -p (port number)

Sure, you can try fix it!

hm, just tested this, and it works fine for me. It copies the port correctly over. What did you try to do?

https://github.com/SnailyCAD/snaily-cadv4/blob/main/scripts/copy-env.mjs#L15 why is this needed

The linux file system works a bit differently.


Fixing conversation history

Typo in conversation history which means it was never being sent to the AI resulting in a completely lack of an conversation type functionality.

Thanks for sending this PR in. Will take a look and get back to you.


Upgrade Camel to 3.10.0.fuse-800003

@ppalaga @zbendhiba please can you take a look at this PR to upgrade the 1.8.1 product branch to Camel 3.10. Hopefully I am not missing anything or adding something unrelated.
For jsonpath, I did things a little differently to upstream. As I understand things, upstream we added back the net.minidev:json-smart dependency to satisfy GraalVM for native compilation. Since we don't have that concern here, I didn't bother to add it back.

Thanks, great work @jamesnetherton !


feat(challenge-editor): make work in gitpod

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes issue where Naomi does not want contributors to have an easy time using Gitpod.

@ojeytonwilliams I did not want to clog up the .env with this stuff.
 I create the variable API_LOCATION, because it is one of Gitpod or other, but the Gitpod env variables are only set by Gitpod.
I suggest we still go with this, and we can discuss a different solution another time.

I did not want to clog up the .env with this stuff.

Yeah, I understand.  The challenge editor is a tool that just happens to reside in the fcc repo, so I think it should have it's own environment variables.

 I create the variable API_LOCATION, because it is one of Gitpod or other, but the Gitpod env variables are only set by Gitpod.

They're set by Gitpod, sure, but that's the extent of Gitpod's involvement.  It's analogous to HOME_LOCATION - we use
export HOME_LOCATION=$(gp url 8000)

in the .gitpod.yml, rather than creating a new variable GITPOD_HOME_LOCATION.
TL;DR: all Gitpod config should be in the .gitpod.yml file


Implement template for library pages

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #
Test URLs:

Before: https://main--danaher-ls-aem--hlxsites.hlx.page/
After: https://implement-template-for-library-pages--danaher-ls-aem--hlxsites.hlx.page/us/en/library/organoids

@sharanagoudapatil and @amlan18041996 I can see CTA is broken, please check that as well.

@rgravitvl - CTA button is fixed now. Please check now.


Use same path for CDC agent irrespective of C*/DSE version/agent version

Moving CDC agent to /opt/cdc_agent/cdc-agent.jar for all agent versions and all C*/DSE versions. As requested by @emerkle826 and @burmanm.

@Miles-Garnsey let me know if you have trouble merging and/or releasing. All that you need to do to release is push a new tag once the change is merged into master.


AutoSizeTextField not working at all !!!

**I have just copy pasted the code provided in the example section ->https://pub.dev/packages/auto_size_text_field/example
.
It is not auto resizing at all.
Please look into it at the earliest.**
Here is the code:
`import 'package:auto_size_text_field/auto_size_text_field.dart';
import 'package:flutter/material.dart';
class NotWorking extends StatefulWidget {
NotWorking({Key key, this.title}) : super(key: key);
final String title;
@override
_NotWorkingState createState() => _NotWorkingState();
}
class _NotWorkingState extends State {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Not Working'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Fixed width (full width of parent's BoxConstraints)',
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 24),
child: AutoSizeTextField(
controller: TextEditingController(),
minFontSize: 24,
style: TextStyle(fontSize: 64),
),
),
SizedBox(
height: 48,
),
Text(
'Auto adjusted width based on contents',
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 24),
child: AutoSizeTextField(
textAlign: TextAlign.center,
fullwidth: false,
controller: TextEditingController(),
minFontSize: 24,
style: TextStyle(fontSize: 64),
),
),
SizedBox(
height: 48,
),
Text('Auto adjusted width with hintText and minWidth'),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 24),
child: AutoSizeTextField(
controller: TextEditingController(),
decoration: InputDecoration(hintText: 'Hint Text'),
fullwidth: false,
minFontSize: 24,
minWidth: 280,
style: TextStyle(fontSize: 64),
textAlign: TextAlign.center,
),
)
],
),
), // This trailing comma makes auto-formattig nicer for build methods.
);
}
}
`
Image attached:

Hey did you find any solution? I am facing the same issue. Please help. It's urgent.

Hey @vasurana , could you please post some reproducible code so I can take a look?
It's very likely that you do not have a layout container outside which can limit the size of the children.

Hi @vasurana @salonikohse2001 this should have been fixed as part of this commit https://github.com/lzhuor/auto_size_text_field/commit/20a7f8f343abfedba9d5b08be5ac9082f962b3a1


Sea Eval - pass snapshot date as argument (not compiled in)

The Sea Eval bakes in the snapshot date to the code. This is a shame because it means jetski can't cache the code. The snapshot date should really be passed in via the psv_config_t or something.

Think this is done


ROX-16992: Allow long Role select-menu to scroll

Description
Select popup list PR component seems to have no limit, and when user has more roles than can fit on height of whole webpage, there is no way to scroll to them.
This simple fix gives that popup list a max-height of the vertical height of the page, and the forces and scrolling when number of item is taller than that.
Checklist

[ ] Investigated and inspected CI test results

Testing Performed
Manual test: create a bunch of roles and make sure they scroll

I suspect the options would go beyond the navbar if the page is in a state where it doesn't have to scroll and there are enough roles to choose from? i.e. small text/large screen/lots of pixels.

I suspect the options would go beyond the navbar if the page is in a state where it doesn't have to scroll and there are enough roles to choose from? i.e. small text/large screen/lots of pixels.

Indeed, good catch.
Even though I had tried it at several heights on a large monitor, I was able to still get a couple to get cut off after you pointed this out (had to remove the current warning from the DOM, and make the page as high as my big monitor allowed).
Change incoming


[Question] - Upgrading

Hi there,
Firstly I wanted to say you have done an amazing job with this template, it has so many great features.
I love all the updates that you keep doing, I'm just a little concerned about how to keep upgrading existing projects.
How would you suggest someone goes about minimising the impact of upgrading various files in the project? Say I'm version 4.0 but now the project is 4.2.2 there are many changes do they have to all be manually added? Is there an upgrade guide of some sort?

This is a good question. I talk about it towards the end of the ReadMe.html file.
Some of the upgrades would come from just upgrading the Boilerplate NuGet packages. Others would mean making code changes to the template files and there is no way for me to make these changes for you. You can review the Release Notes to see what has changed in this case.

Hi,
I just found out about boilerplate and already learned a lot from it.
The upgrading question is one of the first things that came into my mind. Wouldn't it be possible to split boilerplate into two projects?
A - The template with all the setup code and configuration you wouldn't want to auto-update anyway
B - A class library with all the helpers, filters, middleware, etc. that is distributed via npm
Thank you very much for sharing the awesome work you are doing.

I already ship as much shared code as possible already in Boilerplate.AspNetCore.* NuGet packages. All helpers, filters and middleware is contained within.

Of course. I've been so heads deep into all the new stuff with .net core that I didn't check the obvious NuGet. Perfect!
Thanks and sorry for bothering you.

@jofran73 No worries :)


ori_injected_file_size

I get this error  while running sudo python math-with-slack.py
Using Slack installation at: /usr/lib/slack/resources/app.asar
Traceback (most recent call last):
  File "math-with-slack.py", line 335, in <module>
    mathjax_json_header, append_file_paths = dir_to_json_header(mathjax_dir, ori_data_size + ori_injected_file_size + len(inject_code))
NameError: name 'ori_injected_file_size' is not defined

Not sure if this is an issue that should be sent to https://github.com/thisiscam/math-with-slack. But I have just fixed it there, so you may give it a try?


Create  incompatible-protocol-version

Soon, when users launch LBRY browser with an incompatible daemon, it will display a warning, force the app to close, and link them to this FAQ page. This page needs to explain how to fix the problem.

(this isn't ready to ship, it's for you to finish @tzarebczan)

Roger that. I'd assume it would tell them to reinstall the latest version while ensuring no lbry processes are running? Or to manually download daemon files and replace in app directory?

Not the latter. I think reinstall with no processes running should be
sufficient, but I don't know for sure. Was hoping you would via
troubleshooting.
On Fri, Jul 14, 2017 at 4:30 PM, Thomas Zarebczan<EMAIL_ADDRESS>wrote:

Roger that. I'd assume it would tell them to reinstall the latest version
while ensuring no lbry processes are running? Or to manually download
daemon files and replace in app directory?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/lbryio/lbry.io/pull/183#issuecomment-315460130, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAgZVkXOSN5CFvS6Y5Hn6IX04x2LEop9ks5sN8_5gaJpZM4OYtEE
.

--
Jeremy Kauffman, Founder, LBRY http://lbry.io/
(267) 210-4292
Build LBRY: get https://lbry.io/get, follow https://twitter.com/lbryio,
like https://facebook.com/lbryio

@kauffj - let me know if this will suffice. See my notes in the first commit.

LGTM!

@kauffj - looks like it auto created the troubleshooting category (https://lbry.io/faq) but it looks a bit unclean.  I'll work on adding the Troubleshooting category and then moving some of our other FAQ (clean install, lbrynet log and any future troubleshooting related ones) to it.


Expose showTicket and showConversation methods

These methods are not exposed by useIntercom hook
https://developers.intercom.com/installing-intercom/web/methods/#intercomshowticket-ticketid
https://developers.intercom.com/installing-intercom/web/methods/#intercomshowconversation-conversationid

Please check out this PR #671


feat: Replace ComboBox with ⌘K-style component SearchList

This PR adds SearchList, a ⌘K-style component implementing similar functionality to the downshift-based ComboBox component which it replaces.
https://github.com/dxos/dxos/assets/855039/672529d2-ea98-42a5-92d5-6cf2e991ca54
Etymology
Note that the term ‘combobox’ refers to many patterns. I’d prefer to avoid using the term directly for a component that doesn’t facilitate strictly all of those patterns.
One such pattern is facilitated by this component. The trigger must be a button, not a text input, but it opens a popover or dialog that contains a text input for querying.
This component can also be used on its own to implement a modal ⌘K. In that configuration, it is just a dialog, not a combobox. It suits the combobox role only when the trigger and popover/dialog are used together.
Since it is both narrower in scope and can be used in ways that don’t suit the combobox role, it merits a name indicating as much. I chose the term SearchList to reflect that this is specifically a ⌘K-style dialog content which is almost always a listbox.
Why not Command
This component inherits from a component called Command, however I believe this term should be avoided because it is already defined by ARIA: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/command_role

ARIA command role
Best practices
Do not use.

Furthermore, this component can be used for more than just commands (and the term ‘command’ does not superficially convey it is a queryable list), so as a term it seems to violate the maxim of manner.

This works as expected in Composer with TablePlugin enabled. Will set to merge.


Extracted the transport-state group and data from the HDF and stored in a new h5 file. This HDF is for test TARDIS full.
This regression data is used in the pull request: https://github.com/tardis-sn/tardis/pull/2611.

Also, link issues affected by this pull request by using the keywords: close, closes, closed, fix, fixes, fixed, resolve, resolves or resolved.

N/A

:pushpin: Resources
Examples, notebooks, and links to useful references.
:vertical_traffic_light: Testing
How did you test these changes?

[ ] Testing pipeline
[x] Other method: used the h5 tools.
[ ] My changes can't be tested (explain why)

In tardis-refdata repository:
I copied the transport-state group and stored in a new h5 file.
h5copy \
 --input unit_test_data.h5 \
 --source "/test_transport_simple/transport_state" \
 --output TestTransportSimple.h5\
 --destination "/transport_state"

Validate that the original and the copy are the same.
h5diff \
 -r \
 unit_test_data.h5 \
 TestTransportSimple.h5 \
 /test_transport_simple/transport_state/j_blue_estimator \
 /transport_state/j_blue_estimator

Moved the generated file TestTransportSimple.h5 to the repository tardis-regression-data.
:ballot_box_with_check: Checklist

[ ] I requested two reviewers for this pull request
[ ] I updated the documentation according to my changes
[ ] I built the documentation by applying the build_docs label

Note: If you are not allowed to perform any of these actions, ping (@) a contributor.

/update-refdata


[BUG] Dialog not showing up with xdg-desktop-portal > 1.16

Hi,
I am running Arch Linux, with the 6.1 LTS kernel.
I have the xdg-desktop-portal (1.18.0) installed with the xdg-desktop-portal-gtk (1.15.1) backend.
When compiling rfd with the xdg-portal feature, the dialog won't show up.
I was able to make it work by downgrading xdg-desktop-portal to version 1.16, though, so this might be some breaking API changes.
Kind regards,

I'm having similar issues. The main difference in my setup is I'm using xdg-desktop-portal-hyprland as the backend instead of -gtk.

I have encountered this problem in tauri

running cargo run --example save --no-default-features --features xdg-portal works on both my desktop arch box running gnome and xdg-desktop-portal 1.18.2 as well as my fedora laptop running the same configuration

Name         : xdg-desktop-portal
Version      : 1.18.2

Name         : xdg-desktop-portal-gtk
Version      : 1.15.1

Works fine here.
@alerque

The main difference in my setup is I'm using xdg-desktop-portal-hyprland as the backend instead of -gtk.

hyperland portal does not provide a file picker, or anything beyond screen sharing. You have to have a portal that does next to hyperland portal. (You can, and should run both)

I have encountered this problem in tauri with xdg-desktop-portal-hyprland

@LIMPIX31
Probably same as above

Hello,
I come from Tauri v2 alpha here, and open a Dialog freeze the application. I'm using archlinux with wayland and hyprland, seems to be related to this.
With the taui v1.3 version I don't have the problem.

Hello,
I come from Tauri v2 alpha here, and open a Dialog freeze the application. I'm using archlinux with wayland and hyprland, seems to be related to this. With the taui v1.3 version I don't have the problem.

The same. I have tried different versions of rfd and xdg-desktop-portal but no result.

That's unrelated, Tauri does not use xdp backend

For me a workaround is to pin the rfd version to 0.12.0:
rfd = "=0.12.0"
Change this to a newer version (e.g. 0.12.1) causes this issue again.

How about master? We updated ashpd like 2h ago perhaps that helps somehow

With master:
rfd = { git = "https://github.com/PolyMeilex/rfd.git", branch = "master" }
I still have the same issue as with version 0.12.1 or 0.13.0

How about now? Either master or new 0.14
XDG Backend now has zenity fallback.
And XDG Backend is not the default, without the need to enable any features.


Add keybinding to rename the current session

The keybinding is s ,

We also need to update the README.md so users can find this new keybinding. It's a minor fix so I'll just do it before pushing. Thanks!


Fix breakage when re-rendering with different children

This addresses the slider disappearing and becoming unusable, relating to changing the children (slides). It fixes #297, and could also be the solution for #267, #278, and #295.

@akiran It appears to be an efficient (fast) and reliable way to check if we should indeed call this.changeSlide instead of this.update. I can't think of a situation where this logic would be faulty, though another (slightly slower) solution would be to loop through this.props.children and nextProps.children in parallel, breaking out of the loop when a difference in keys is found.
We could also compare the lengths of this.props.children and nextProps.children, but we can't solely rely on length to determine what should be called in componentWillReceiveProps.
I did notice an error with my change if the slider is created with no children, so I've added an additional check for that.

Any chance we could merge this PR and republish to NPM? I heavily rely on slickGoTo and since updating to<EMAIL_ADDRESS>this functionality has been broken :( . Thanks again for all the hard work on this plugin!

Fixed #297  in master. Will make a npm release soon


Release Google.Cloud.Run.V2 version 2.9.0

Changes in this release:
New features

Support update_mask in Cloud Run UpdateService (commit bb34cc0)
Add Job start_execution_token and run_execution_token to execute jobs immediately on creation (commit bb34cc0)
Add Job ExecutionReference.completion_status to show status of the most recent execution (commit bb34cc0)

Documentation improvements

Clarify optional fields in Cloud Run requests (commit bb34cc0)

Created release for Google.Cloud.Run.V2-2.9.0


fix(version): update fabric8-stack-analysis-ui to 0.1.19

There were the following issues with your Pull Request

Commit: afbbf7c956d31c37f85d94d63b59644d20ccd7c7
Your subject line is longer than 50 characters

Guidelines are available at https://github.com/fabric8io/fabric8-ui

This message was auto-generated by https://gitcop.com


More advanced user agent options

Available user agents were last updated almost a year and a half ago (05-08-2015), which causes some sites to report that they won't run with WebApps when a user agent different than "Default" is selected.
Some proposals (can be mixed together):

Update the current list.

Create the user agent string dynamically by changing only some fields from the System WebView UA string and leaving the version unchanged.

Allow the user to enter a free-form custom user agent string.

Allow the user to "build" a custom user agent string from fixed lists (plus a "custom" option) of operating system (and version), device, browser (and version).

I agree with the option to add a custom user agent. I've left the old user agents as-is, because most sites support those particular versions differently to anything newer. Twitter and Google News are examples of these - they degrade differently to older versions.


ffe-grid(-react): Modifier for setting text-align: center;?

Which package is this issue related to?
ffe-grid and ffe-grid-react
Describe your issue
When using the center modifier the boxes in the grid column get centered horizontally, but the content inside those boxes does not get centered.
Sometimes I'd like to center the text content as well. Now I have to add a custom class just to center some text.
Would it be OK to add a new modifier to the grid that also applies text-align: center;?

Do it! :v:

On it! 💪🏿


Add File Open/Close Functions for NodeRecorder

Changes:

Removed file parameter from initialization - this passes the value without a reference, leaving the user with the possible mistake of forgetting to close the file outside the scope of NodeRecorder

Added deinit so temp files can be deleted after the recorder is done being used

Added openFile function

Added closeFile function

Added a recordedFileURL to keep track of the url of the most recently closed file

Modified audioFile computed variable to return a file for reading based on the recordedFileURL

Changed the AVAudioPCMBufferTests to work with the new NodeRecorder

Added NodeRecorder tests which use openFile and closeFile

This should now make the test demonstrated in #2634 pass if the new NodeRecorder is used accordingly

Is there a way to get the tests unstuck? I've noticed sometimes a test will keep running like an infinite loop does in Xcode. It seems to happen in CI too. I'm curious what causes this.

Is there a way to get the tests unstuck? I've noticed sometimes a test will keep running like an infinite loop does in Xcode. It seems to happen in CI too. I'm curious what causes this.

I restarted the action.

I'm definitely doing something wrong. This doesn't happen with main. Don't merge yet, but stay tuned. I'm looking into it :)!


Greenkeeper/prettier 1.19.0

Coverage remained the same at 77.815% when pulling f468c6114ac94a9960fbfab135bb63e665134d0e on greenkeeper/prettier-1.19.0 into 6be04e0c38ffe15b796eea69b1830a727f410408 on master.


Add questions page in math section

Is your feature request related to a problem? Please describe.
Add questions page in math section
Describe the solution you'd like
Make the question page similar to the physics question page.

I would like to work on this issue under JWOC

@Kaggrov what's the update?

Yeah I have done a part of problem and working on another part.

@Kaggrov see u need to just copy the same format as Physics ,nothing new things to be added.


Map-optimisation comes at an FPS cost to the client

I am currently running

SpongeForge version: Untested
SpongeVanilla version: 7.3.0
Note that we specifically don't use the latest bleeding version of sponge since that seems to be laggier - somehow in terms of chunks, though that may not be an issue anymore, and has not been tested recently
Java version: 8
Operating System: Debian Linux 10

Plugins/Mods:
Worldedit + about 20 self-made plugins specific to the server.

Issue Description
Turning on map-optimisation causes micro-stuttering for the client.
Original issue thread for the server - https://gitlab.com/minecraftonline/sponge-update/-/issues/245
The most important thing I found is:
Using VisualVM's sampler, I can trace the call stack of where time is being spent.
I have also identified scheduledExecutables as pretty much processing ANY packet.
I then identified where the packets were being processed on the main thread - And followed the stack trace down.

The running of scheduled tasks is all done by net.minecraft.util.Util.func_181617_a(), however, despite only being 2.9%, I see SPacketMaps jumping in 100ms-300ms spikes, directly correlated with the lag spikes I observe on the graph.
After disabling the map-optimisation config, the lag spikes disappeared and there was far less time spent on packets.
I can't seem to reproduce this issue on the test server, so I suspect it has something to do with players actively placing blocks where maps are tracking.
I am still trying to debug this further, using a client mod that logs when map packets are received, and how large (in bytes) they are, but I haven't had to opportunity to turn map-optimisation back on, as I don't want to disrupt the server. Its unlikely that anyone here will be able to debug this unless they realise something specific about map-optimisation that could cause this. So for now I am just leaving this here so it is known, and I will work on providing more details/a fix

Here is an exemplar log when having map-optimisation enabled. I only include a part of the log as it contains staff-only chat, but this same thing happens again later in the log. (This is near first log in, another happens 10 minutes later). This is probably due to my location on the server at the given time, e.g spawn has a lot more maps than the wild.
https://gist.github.com/tyhdefu/77895d3c205fca45a9202db653b60abe
I believe the issue is this:
An EntityTrackerEntry is an entry in a large map of entries. Each of these stores their own updateCounter which ticks up to 10.
The sponge version replaces all of this and makes some great optimisations, however, it does Sponge.getServer().getRunningTimeTicks() % 10 == 0. (See MapDataMixin_MapOptimization.mapOptimizationImpl$updatePlayersInWorld() )This logic runs for each map at the end of each tick.
So instead of getting staggered map loads depending on what tick a map loaded, they are all thrown at the player at once (when the ticks are divisible by 10). I believe this is the cause of the lag spike. I suspect the lag isn't caused every 10 ticks, as sponge knows the client already has some packets, so its the first 10 ticks, where a large majority are invalid.
Hopefully I will follow-up soon with a fix to this. Not sure whether it is best to add a random tick number onto each MapData, e.g on creation, random number between 0 and 10 and then Sponge.getServer().getRunningTimeTicks() % 10 == this.randomNumber, or some other solution.
Expect a PR soon.


Add automatic benchmarking utility

Summary
Adds a python script that can generate and run benchmarks for most of function signatures in math. It can:

benchmark prim, rev, fwd overloads
plot results
compare OpenCL and CPU implementations (including or excluding data transfers)
compare different implementations of same function

What is not supported (yet?): higher order functions, mixed mode autodiff.
Also for now all arguments' dimensions are the same. In other words all matrices are square and have same number of rows/cols as any vector/array arguments.
Tests
Not tested.
Side Effects
Expression tests were refactored a bit so they share some code with benchmarking script.
Release notes
Adds a python script that can generate and run benchmarks for most of function signatures in math.
Checklist

[ ] Math issue #(issue number)

[ ] Copyright holder: Tadej Ciglarič
The copyright holder is typically you or your assignee, such as a university or company. By submitting this pull request, the copyright holder is agreeing to the license the submitted work under the following licenses:
- Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
- Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

[ ] the basic tests are passing

unit tests pass (to run, use: ./runTests.py test/unit)
header checks pass, (make test-headers)
dependencies checks pass, (make test-math-dependencies)
docs build, (make doxygen)
code passes the built in C++ standards checks (make cpplint)

[ ] the code is written in idiomatic C++ and changes are documented in the doxygen

[ ] the new changes are tested

Very nice!
@ahartikainen would you mind reviewing the python code?
This is also going to close https://github.com/stan-dev/math/issues/2083, though you will have to build Benchmark manually before building benchmarks.

Should benchmark.py just  sit in the top level folder like runBenchmarks.py?

Really neat! Couple little things

$ python ./benchmarks/benchmark.py
usage: benchmark.py [-h] [--overloads OVERLOADS [OVERLOADS ...]]
                    [--multiplier MULTIPLIER] [--max_size MAX_SIZE]
                    [--max_dim MAX_DIM] [--cpp filename] [--repeats N]
                    [--csv filename] [--plot filename] [--plot_log_y]
                    [--opencl setting] [--plot_cl_speedup]
                    [--plot_reference filename] [--skip_similar_signatures]
                    functions [functions ...]
benchmark.py: error: too few arguments

Can we just have it print the help output if not enough arguments are selected?

For the benchmark name that gets printed

multiply_Primrow_vector_Revvector/16777216/manual_time

Could we make that nicer like
multiply_double_row_vector_var_vector/16777216/manual_time

For the benchmarks using our AD stack we should fill up the ad stack with data before calling the first benchmark. Otherwise the first benchmark called will be arbitrarily slower than the others. I use something like this passing it a little over the max allocation I expect like

constexpr int end_mem = 100 * 1.2;
BENCHMARK_TEMPLATE(toss_me, end_mem);

after we call .grad() I think it makes sense to call benchmark::ClobberMemory();

Each benchmark should probably be static

Because of the number of functions in each benchmark file you may run into benchmark issue #461 where you end up with some function alignment issues that can impact performance of different tests by a good bit. It's talked about in this video (timestamped at where he starts talking about it). The only way around this I'm aware of is careful compiler flags or breaking up the benchmarks into individual files. Would it be difficult to build multiple .cpp files and collate their results after? Maybe we could just test one function to see if this is an issue or not

I think (16000000)**(1/dimm) with a multiplier of 4 feels wayyy to big and not granular enough. Most stan programs are not hitting data or var sizes of 16,000,000. I'd rather have something like a range of (1:32,768) and a granularity of (2) everywhere

For all scalar benchmarks can the multipler and range be removed?

BENCHMARK(multiply_Primreal_Revreal)->UseManualTime();

Does this just make every value in the matrix 0.4?

Eigen::Matrix<double, 1, Eigen::Dynamic> arg0 = stan::test::make_arg<Eigen::Matrix<double, 1, Eigen::Dynamic>>(0.4, state.range(0));

Why don't we just set the seed to 0 and then just use random?

Also would this be able to use varmat if we had a list of all varmat supported functions somewhere? Or is it because the compiler doesn't support varmat yet?

Can we just have it print the help output if not enough arguments are selected?

Fixed.

For the benchmark name that gets printed
Could we make that nicer like

I would prefer not to. 5-argument functions already have very long names. But I can add the additional underscore.

For the benchmarks using our AD stack we should fill up the ad stack with data before calling the first benchmark. Otherwise the first benchmark called will be arbitrarily slower than the others.

Not the first benchmark, just the first run of the first benchmark. Also I have never in practice observed such slowdowns due to the allocation. However adding something like that does not cost much, so sure, I'll add allocation. Although I don't see any need for doing any calculations on such memory before the benchmarks like you did.
Calculating the amount of memory needed is hard in general. I added an estimate that should work for many functions. However ones working on nested arrays exceed that quite a lot.

after we call .grad() I think it makes sense to call benchmark::ClobberMemory();

added

Each benchmark should probably be static

I don't think it matters, but ok.

Would it be difficult to build multiple .cpp files and collate their results after?

It would be some extra work. Also this does not solve the issue, just makes it repeatable. If there was a large difference due to alignment I think it might be better to have possibility to detect it.

I'd rather have something like a range of (1:32,768) and a granularity of (2) everywhere

That is why you can set those parameters.

For all scalar benchmarks can the multipler and range be removed?

The range is se to (1,1), which is equivalent.

Does this just make every value in the matrix 0.4?

Yes (except for functions requiring specific values). I know that is bad for functions that branch depending on values, but there is no good solution except setting range in which to generate values manually for every function (or even distribution to generate data from).

Should script try run bench again if it fails?
I tried this
python benchmarks/benchmark.py multinomial_log

(I directed stdout to a file)
make: 'test/expressions/stanc' is up to date.

make ./benchmarks/benchmark

./benchmarks/benchmark
2020-12-17 10:33:55
Running ./benchmarks/benchmark
Run on (12 X 2592 MHz CPU s)
Load Average: 0.52, 0.58, 0.59
terminate called after throwing an instance of 'std::domain_error'
  what():  multinomial_lpmf: Probabilities parameter is not a valid simplex. sum(Probabilities parameter) = 4, but should be 1

Should script try run bench again if it fails?

Oh, I did not think of this. The arguments for functions requiring simplices (or some special matrices) are not yet supported. I will look into how to add that. Meanwhile you can test it on some other function.

It seems expression tests are using python 2, so we can not use subprocess.run():
Traceback (most recent call last):
  File "./runTests.py", line 375, in <module>
    main()
  File "./runTests.py", line 349, in main
    handleExpressionTests(tests, inputs.only_functions, num_expr_test_files)
  File "./runTests.py", line 297, in handleExpressionTests
    generateExpressionTests.main(only_functions, n_test_files)
  File "test/expressions/generateExpressionTests.py", line 96, in main
    signatures = get_signatures()
  File "test/sig_utils.py", line 210, in get_signatures
    p = subprocess.run((make, stanc3))
AttributeError: 'module' object has no attribute 'run'

Then I think Popen is the best option.
Is there a reason for py2? Old image?

No idea. @rok-cesnovar you set that up, right?

No reason apart from no one upgrading because we werent forced to :)
its not just the expressions script, I think this goes back toRunTests.py.
I am not sure anyone knows if all our py scripts are py3 compliant. The main ones probably are else someone would complain.
These arent all images and virtual machines, some are physical machines so this isnt a 2-min task.  I would say we do py2 for this PR as well and make an issue for moving to python3 in CI.

@ahartikainen I think I addressed all your comments. Is there anything else to fix?

I commited your suggestions, so this needs another approval.

Yes, I don't have write permissions for math, and it is fine.


Virtual events

Glossary:

virtual - using this to mean that something happens on the internet, and you need to be at a computer to experience it. This only refers to the timeframe of the actual event i.e. startTime => endTime. I am avoiding using online for now as that is overloaded by the fact that we might have other things available online e.g. podcasts, stories, videos etc
place - could also be called a location. This is what we call it in Prismic, and I am trying to iterate as opposed to create new things. This can relate to things that are virtual or not.
available online - Has a video / audio / something you can consume online at any stage

It feels important to make sure we don't conflate available online and happens online, albeit it's similar language.
Model options
1. Making the event virtual
We could attach the property to the event that it is virtual. This would be a boolean value.
JSON
// Virtual without recording
[
  {
    "id": "1",
    "title": "Virtual event",
    "isVirtual": true,
    "place": {
      "title": "Youtube live"
    }
  },

  // Virtual with recording
  {
    "id": "2",
    "title": "Virtual event with recording",
    "isVirtual": true,
    "place": {
      "title": "Youtube live"
    },
    "media": [
      {
        "title": "Youtube live recording",
        "url": "https://youtube.com/blarp"
      }
    ]
  },

  // In venue without recording
  {
    "id": "3",
    "title": "Event",
    "isVirtual": false,
    "place": {
      "title": "Wellcome Collection"
    }
  },

  // In venue with recording
  {
    "id": "4",
    "title": "Event with recording",
    "isVirtual": false,
    "place": {
      "title": "Wellcome Collection"
    },
    "media": [
      {
        "title": "Youtube recording",
        "url": "https://youtube.com/blarp"
      }
    ]
  }
]

Filters

query
returns

/events?isVirtual=true
[1,2]

/events?availableOnline=true
[2,4]

/events?availableOnline=true&isVirtual=true
[2]

2. Making the place virtual
Pretty much identical to the above, except you would have:
{
// ...
  "place": {
    "title": "Youtube live",
    "isVirtual": true
  }
}

And the filter would be /events?place.isVirtual=true
This only feels useful if we want to be creating virtual places, and don't want create a blanket place called "online". If we were going to do that latter, I would stick with it being a property on the event.

No 1. is definitely simpler and, I think, gives us everything we need. If we wanted to create specific virtual places though, No 2. would be the way to go.

@jamesgorrie This makes sense to me. I think you're right that option 1 is best.
But just to clarify:
Would option 2 imply that we would intend to build a filter for a virtual place, e.g. show me all events that happen on YouTube live?
If that's the benefit it would give us, it doesn't seem a necessary one. I can't think off the top of my head of having a virtual place unless we were conducting hundreds of events a month.

Would option 2 imply that we would intend to build a filter for a virtual place, e.g. show me all events that happen on YouTube live?

The benefit would be you could do:
Gets us events with virtual places
/events?places.isVirtual=true

// gets us events on youtube
/events?places.id=youtube

But that granularity doesn't seem useful, and would mean that we need to create places that are virtual.
Double agreeing, what we are asking if for events that are virtual.

This was finished in #5822


Failed to process consensus server notification

Hi,
Description
I am running a bitcoind(prune) background and lnd. I am getting error something like "Failed to process consensus server notification (name: blockconnected, detail: failed to store sync information<PHONE_NUMBER>0000000009062530da4a81da5cdd23999c15a16be443ec41b41b1e: failed to fetch block hash for height 535583: couldn't get hash from database)"
bitcoin-cli -getinfo
{
"version": 160000,
"protocolversion": 70015,
"walletversion": 159900,
"balance": 0.00000000,
"blocks": 535584,
"timeoffset": -1,
"connections": 8,
"proxy": "",
"difficulty":<PHONE_NUMBER>609.53,
"testnet": false,
"keypoololdest":<PHONE_NUMBER>,
"keypoolsize": 10000,
"paytxfee": 0.00000000,
"relayfee": 0.00001000,
"warnings": ""
}
lncli getinfo
{
"identity_pubkey": "0395f6d538b90efbad4c9d9e93a8d2a3fba48c29dff1c298069a521170dde1ba43",
"alias": "sts_lnd",
"num_pending_channels": 0,
"num_active_channels": 0,
"num_peers": 0,
"block_height": 535584,
"block_hash": "00000000000000000009062530da4a81da5cdd23999c15a16be443ec41b41b1e",
"synced_to_chain": false,
"testnet": false,
"chains": [
"bitcoin"
],
"uris": [
"0395f6d538b90efbad4c9d9e93a8d2a3fba48c29dff1c298069a521170dde1ba43@myip:9735"
],
"best_header_timestamp": "1532715932",
"version": "0.4.2-beta commit=a0b2fadea35fa4642daf4e9f56e6ecfe31d22ce1"
}
both lnd and bitcoind are at same height but I am not able to connect with any node. Here I am using bitcoind in prune is this the problem?
(Note:Bad english)

Here I am using bitcoind in prune is this the problem?

Yes that's the issue. We currently don't support bitcoind in pruned mode, as eventually (if lnd is down) it may prune out blocks that we actually need for various purposes. We have plans to eventually support this mode, but for now, you'll need to run a full archive node.

@Roasbeef  Thanks


fix(e2e): make sure replica receives a block

Send a simple tx to replica before running tests. This would add it to the pool and await replica receiving a block with this transaction, thus flipping the prague fork activation here https://github.com/paradigmxyz/reth/blob/0a1473b6e7949875f480043fa6874bdc583786d2/crates/transaction-pool/src/validate/eth.rs#L467
This is a workaround until we figure out why replica is not able to receive blocks from sequencer over p2p right away after the launch

thus flipping the prague fork activation here

I'd consider this pool initialization issue, tracking on reth