Fix dead key deletion

If you type Option-E, Backspace, then the in-progress accented character should be deleted. Similarly, in 2-Set Korean, if you press A, Backspace, the character should be deleted. Both of these don't work correctly yet, but this commit fixes it.
Currently, when you press Backspace, we are in composition mode and we receive a compositionend event then a keydown event for the backspace. Our composition handler doesn't exist composition mode immediately but rather waits 20ms to see if it gets a compositionstart event immediately (and if so, does not exit). It seems like if we receive a compositionend event then a keydown, we always want to exit composition mode immediately and re-interpret the keydown in edit mode. Here I do so.
This change is made trickier by the fact that each event handler reads from this.props.editorState, which doesn't get updated until the next rerender (that is, not synchronously). To combat this, we store the most current editor state in an instance variable and refer to it from all of the event handlers. (If we don't do this then the backspace isn't interpreted correctly by editOnKeyDown because the character data from compositionend hasn't been inserted into the editor state, so we'd end up effectively dropping the entire composition as well as deleting the preceding character.) In this commit, only editOnKeyDown needs the latest state but I changed the others for consistency. In cases where the parent always updates editorState in the same tick (as we recommend in the docs), there should be no behavior change.
Note: This also brings us closer to being able to handle cases where we don't always receive editorState synchronously -- instead we could store our own copy of the editorState locally but overwrite it with props when we receive new ones. It doesn't work yet though.
Test Plan: In plaintext example, type Option-E, Backspace (with US keyboard) or A, O, Backspace, Backspace (with 2-Set Korean keyboard). In both cases, the entire composition is deleted correctly.
cc @hellendag

Note to self: need to at least fix the private props here because they're broken by the class transform internally.

Looks like this also doesn't quite work in Firefox yet, though it seems no worse than the current code.

About half done reviewing this, and wondering about your comment "Note to self: need to at least fix the private props here because they're broken by the class transform internally." What is that about, and is more work needed on this before it's ready to merge?
Notes so far:

Thanks for removing the 'renderGuard' dead code!
The switch to use this._latestEditorState makes sense; the only way that would cause issues is if users were somehow delaying passing in the updated 'editorState' after their 'onChange' callback was called, and relying on Draft.Editor using the old 'editorState' value. The docs say "For any edits or selection changes that occur in the editor DOM, your onChange handler will execute with the latest EditorState object based on those changes." Am I missing anything there?
The way the handlers are determined by the current 'mode' using 'buildHandler' in DraftEditor is neat, and I wonder if there is a name for that pattern. cc @hellendag

About half done reviewing this, and wondering about your comment "Note to self: need to at least fix the private props here because they're broken by the class transform internally." What is that about, and is more work needed on this before it's ready to merge?

In the Facebook web codebase, we transform class Foo { ... this._bar ... } to class Foo { ... this.$Foo_bar ... } which prevents you from accessing private props from another file (specifically, from outside the class). In particular, both _latestEditorState and _onKeyDown need to be renamed here (or we can add @preventMunge to DraftEditor.react, but I was already nervous about using the private props cross-file so I'll just change it). A little more info at https://fburl.com/441040622 for FB employees.

if users were somehow delaying passing in the updated 'editorState' after their 'onChange' callback was called, and relying on Draft.Editor using the old 'editorState' value

We actually already don't support that: https://facebook.github.io/draft-js/docs/advanced-topics-issues-and-pitfalls.html#delayed-state-updates. This change probably brings us closer to being able to support that if we really wanted, actually.

The way the handlers are determined by the current 'mode' using 'buildHandler' in DraftEditor is neat, and I wonder if there is a name for that pattern.

Hmm, maybe related to delegation? https://en.wikipedia.org/wiki/Delegation_pattern

I decided to go with just adding @preventMunge because I don't want clients of DraftEditor thinking that it's okay to use these properties so I want to keep the underscore. Going to test in www.

Thanks - I'll try to read the rest of this later today.

Cool - so it's more like this:
It used to work like this:

                                 +--DraftEditor---------------------------+
                                 |                                        |
               event+----------->+ triggers '_update'                     |
                                 | ---> which calls 'this.props.onChange' |
                                 |      with the updated editorState      |
                                 |                                        |
                                 |                                        |
                                 |                                        |
                                 +----------------------------------------+

                                                      +
                                                      |
                                                      v

                                 +--DraftEditor---------------------------+
                                 |                                        |
           updates  <------------+ calls 'this.props.onChange'            |
           state.editorState     |                                        |
              +                  |                                        |
ANY DELAY     |                  |                                        |
HERE   XXXXXXX|                  |                                        |
CAUSES        v                  |                                        |
PROBLEMS   re-renders &          |                                        |
           passes in             |                                        |
           state.editorState +--------> We use updated                    |
           via props             |      this.props.editorState            |
                                 |                                        |
                                 |                                        |
                                 +----------------------------------------+

But now it works like this:

                                               +--DraftEditor---------------------------+
                                               |                                        |
                             event+----------->+ triggers '_update'                     |
                                               | ---> which calls 'this.props.onChange' |
                                               |      with the updated editorState      |
                                               |                                        |
                                               |                                        |
                                               |                                        |
                                               +----------------------------------------+

                                                                    +
                                                                    |
                                                                    v

                                               +--DraftEditor---------------------------+
Delays here could                              |                                        |
be OK because            updates  <------------+ calls 'this.props.onChange'            |
DraftEditor is           state.editorState     |    AND also updates                    |
*not* using                 +                  |    this.latestEditorState              |
props.editorState           |                  |                                        |
and it has      +---------> |                  |                                        |
already updated             v                  |                                        |
this.latestEditorState   re-renders &          |                                        |
                         passes in             |                                        |
                         state.editorState +--------> We can use                        |
                         via props             |      this.latestEditorState            |
                                               |      and not worry                     |
                                               |                                        |
                                               +----------------------------------------+

Overall I think this makes sense, and when I manually tested it (briefly) it works.
I'm working on the internal sync of 0.10.0, which includes a big API breaking change. I can either add this to 0.10.0 or do a 0.9.2 release. Either way I think it would be great to get this bug fix out soon. Thanks for working on it!

Yes, that's basically right! It's that we basically wanted two successive events with nothing in between and before we weren't getting the new editorState when processing the second event, because state updates are batched and we hadn't rerendered.

@spicyj Thanks you for your PR and I'm expecting merged version will be released soon (Because I'm using Korean.)  And I wonder another similar problem is solved or not with this PR. The problem is Left and Right arrow key doesn't work properly with Korean IME because of following codes at 0.9.1 https://github.com/facebook/draft-js/blob/master/src/component/handlers/composition/DraftEditorCompositionHandler.js#L96-L98
When I press arrow key, normally I expect to move cursor but it doesn't move and just change editor mode to composition end.  Unlike Japanese or Chinese, Korean IME doesn't use arrow key to select or finish composition. In Korean (same as English), arrow keys are used as arrow key whether IME is in composition or not.
@spicyj Cloud you test your PR also solve this problem or not?

Yes, it should. This Wednesday you should be able to confirm that typing works correctly on facebook.com. If not, please file a new issue and tag me in it describing exactly which sequence of keys behaves incorrectly, with your OS and browser version.

is it applied to npm?
if it is applied, I think 2-set korean removing still has problem. 😢

No, it is not yet.

too bad. But I really appreciate your work. I'll wait for the update.

Sorry @spicyj  I'm new to Coding. Does this solve the Enter key problem I have to Enter twice to got to the new line? the first time to trigger compositionend

Yes, it should.

thank you I'll text it 👍  you response so fast

@spicyj  a little more question. How do you handle the Enter action?
Right now when I push Enter key in Korean language. the function onChange and keyBindingFn are fired at almost the same time.
In my onChange function I have this code
onChange (editorState) {   this.setState(editorState) }
the thing is I wanna use the new this.state.editorState in the keyBigdingFn function. but unfortunately, the value has not updated yet.
What should I do about it?


Simple plugin config

Remove leftover boot support for running without the asset pipeline.
Remove installer since the default config is no config/compass.rb and advanced configurations should be handmade.

Changes Unknown when pulling 7eb5936b04ba448142f59dd94b18bc9f4fb9f1c0 on simple-plugin-config into ** on master**.


Update README.md, CDN to new version

The 3.10.0 has many things that 3.6.0 doesn't, I was looking for errors with setKeyPrefix, in the source(raw github) the function exists, but since I just got the CDN there wasn't.

@LuisEGR thanks!


Fix time granularity-related issues

related to https://github.com/apache/incubator-superset/pull/4755
@betodealmeida 👀

Codecov Report

Merging #4821 into master will increase coverage by <.01%.
The diff coverage is 36.36%.

@@            Coverage Diff             @@
##           master    #4821      +/-   ##
==========================================
+ Coverage   72.33%   72.34%   +<.01%
==========================================
  Files         208      208
  Lines       15568    15575       +7
  Branches     1204     1206       +2
==========================================
+ Hits        11261    11267       +6
- Misses       4304     4305       +1
  Partials        3        3

Impacted Files
Coverage Δ

superset/data/__init__.py
100% <ø> (ø)
:arrow_up:

superset/connectors/sqla/models.py
76.23% <0%> (-1.2%)
:arrow_down:

superset/models/core.py
86.54% <100%> (+0.04%)
:arrow_up:

...rset/assets/javascripts/explore/stores/visTypes.js
61.9% <25%> (-8.69%)
:arrow_down:

superset/viz.py
79.87% <0%> (+0.54%)
:arrow_up:

Continue to review full report at Codecov.

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

Taking a look — thanks for fixing this!


 To be able to create select boxes.

done, using nya-bootstrap-select instead !


[Slider] Button on vertical slider displace from the track

[x] This is not a v0.x issue.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior 🤔

The button on vertical slider should line up on the track.
Current Behavior 😯

The button on a vertical slider is currently displaced to the left. This is evident on the codesandbox demo at https://codesandbox.io/s/pby6d
Steps to Reproduce 🕹

Open up the codesandbox vertical demo provided by the material ui team. The behavior is exhibited there.
Link:

https://codesandbox.io/s/pby6d

Context 🔦

Your Environment 🌎

Tech
Version

Material-UI
v3.?.?

React

Browser

TypeScript

etc.

@wnreynoldsWork Thank you for the report. The reproduction is simple.

Go to https://material-ui.com/components/slider/#vertical-slider
Edit in CodeSandbox.

The problem comes from the size of the element that contains the slider.
It's fixed in #15703 :).


Magic Hangs

While trying to use Openlane flow for the Aardonyx SoC designed at IIT Madras, there is a crash encountered during the run of Magic. The Ubuntu terminal hangs while writing to the LEF file after about 45 minutes of the start of Magic run. My system has 6GB of RAM and 6GB of swap space on top of it but the issue persists. I would like to know the recommended system RAM requirements for running Magic and the subsequent DRC and LVS checks. I would also like to know if there is any way to circumvent the issue faced. Do let me know if I need to provide any further details.
magic.log
Config Details:
set ::env(CLOCK_PERIOD) 11
set ::env(RUN_MAGIC) 1
set ::env(RUN_ROUTING_DETAILED) 1
set ::env(RUN_SIMPLE_CTS) 0
set ::env(CLOCK_TREE_SYNTH) 1
Verilog Source Directory:
aardonyx_soc.tar.gz

Just to give you a comparaison point, running the picorv32a design from the example (which is way smaller than your design)
used about 16G of RAM and took about 8h to complete. Using any swap instead of real ram would probably make it substantially slower because of the swap in/out ... (and all that swap might make the whole machine unresponsive).
So you're going to need to go buy a whole lot more RAM ...

(posted already on slack, but will post it here as well):
@harikumar27399: Could you share the routed DEF you got (under designs/aardonyx/runs/<tag>/results/routing ) to make it easier to reproduce?

@ax3ghazy I have shared the routed DEF file on slack for your perusal.

Stale, closing.


Traffic Ops does not ignore ANY_MAP Delivery Services when generating CRConfig

According to the documentation for Delivery Services:

ANY_MAP is not known to Traffic Router. For this deliveryservice, the “Raw remap text” field in the input form will be used as the remap line on the cache.

However, Traffic Ops treats it similarly to an HTTP Delivery Service when generating CRConfig, and this is only avoided by setting the ANY_MAP Delivery Service to inactive. Rather, Traffic Ops should filter out ANY_MAP Delivery Services when generating the CRConfig so that Traffic Router doesn't treat them like an HTTP Delivery Service.

@rawlinp  - can you put a severity level label on this? trivial, minor, major, critical...or actually, since you can't attach labels, reach out to me and i'll attach it for you

@mitchell852 I'd say it's probably minor because setting it to inactive if it's causing problems is easy enough.

I fixed this in the Perl API , but it looks like it was overlooked in the Golang rewrite of the CRConfig endpoints and is now an issue again.


misc bugs

https://github.com/jonathanhouge/ReeldIn/pull/68 has been put in here, just to create a small bug center hub

not a SINGLE pr can be merged into master until julius gets the prettier extension


Domain restrictions semantics

In the case when there's no "source" hostname, $domain should be checked against the request's host.
For instance, $domain=example.org,script should match example.org/script.js in the case when there's no source/referrer.

core/pull-requests/1500

Testing instructions:

add the following rule: *$empty,domain=google.com
open in browser google.com
check that page is blank (to ensure the correctness, check that the request to google.com has no referrer)

core/pull-requests/1541


Considering add some helper bracket functions to Util in order to avoid begin* and end* syntax

import Control.Monad.Catch (MonadMask, bracket_)

drawing :: (MonadIO m, MonadMask m) => m () -> m ()
drawing = bracket_ (liftIO beginDrawing) (liftIO endDrawing)

mode3D :: (MonadIO m, MonadMask m) => RL.Camera3D -> m () -> m ()
mode3D c = bracket_ (liftIO $ beginMode3D c) (liftIO endMode3D)

mode2D :: (MonadIO m, MonadMask m) => RL.Camera2D -> m () -> m ()
mode2D c = bracket_ (liftIO $ beginMode2D c) (liftIO endMode2D)

similar things
withWindow :: (MonadIO m, MonadMask m) => Int -> Int -> String -> Int -> (WindowResources -> m b) -> m b
withWindow w h title fps = bracket (liftIO $ initWindow w h title <* setTargetFPS fps) (liftIO . closeWindow)

Published in <IP_ADDRESS>


Support on Azure Cloud Shell

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Hi everyone,
It's possible to include support on the Azure Cloud Shell container image.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Use bicep in Azure Cloud Shell without the need to install this tool.

good idea! I'll include it an 0.2 as an investigation of what we need to do and adjust accordingly.

PR is here: https://github.com/Azure/CloudShell/pull/59
Maintainer would prefer not to merge while we are in the alpha stage, so we will likely get this done once v0.3 is released.

PR is merged and will be publicly available on 3/23


fix corner case

https://github.com/istio/istio/issues/16123
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[X ] User Experience
[ ] Developer Infrastructure

@irisdingbj: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

e2e-simpleTests-distroless-master
b26c2200a0ae651debd2134f07f3e44f9c8ba137
link
/test e2e-simpleTests-distroless-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@irisdingbj: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

e2e-simpleTests-distroless-master
b26c2200a0ae651debd2134f07f3e44f9c8ba137
link
/test e2e-simpleTests-distroless-master

istio-lint-master
b26c2200a0ae651debd2134f07f3e44f9c8ba137
link
/test istio-lint-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@irisdingbj: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

e2e-simpleTests-distroless-master
b26c2200a0ae651debd2134f07f3e44f9c8ba137
link
/test e2e-simpleTests-distroless-master

istio-lint-master
b26c2200a0ae651debd2134f07f3e44f9c8ba137
link
/test istio-lint-master

integ-new-install-k8s-presubmit-tests-master
b26c2200a0ae651debd2134f07f3e44f9c8ba137
link
/test integ-new-install-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@irisdingbj: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

e2e-simpleTests-distroless-master
b26c2200a0ae651debd2134f07f3e44f9c8ba137
link
/test e2e-simpleTests-distroless-master

istio-lint-master
b26c2200a0ae651debd2134f07f3e44f9c8ba137
link
/test istio-lint-master

integ-new-install-k8s-presubmit-tests-master
b26c2200a0ae651debd2134f07f3e44f9c8ba137
link
/test integ-new-install-k8s-presubmit-tests-master

istio-pilot-multicluster-e2e-master
b26c2200a0ae651debd2134f07f3e44f9c8ba137
link
/test istio-pilot-multicluster-e2e-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

I would just only call this function if the call succeeded. Because right now you will log the same error message twice?

Now it will skip following check if it fails to connect to k8s API server-- all the following check is meaningless in such case.

@irisdingbj: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

e2e-simpleTests-distroless-master
b26c2200a0ae651debd2134f07f3e44f9c8ba137
link
/test e2e-simpleTests-distroless-master

integ-new-install-k8s-presubmit-tests-master
b26c2200a0ae651debd2134f07f3e44f9c8ba137
link
/test integ-new-install-k8s-presubmit-tests-master

istio-pilot-multicluster-e2e-master
b26c2200a0ae651debd2134f07f3e44f9c8ba137
link
/test istio-pilot-multicluster-e2e-master

istio-lint-master
cfc1986b73b7613b8d30599208d7091a361a6e88
link
/test istio-lint-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@irisdingbj: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

e2e-simpleTests-distroless-master
b26c2200a0ae651debd2134f07f3e44f9c8ba137
link
/test e2e-simpleTests-distroless-master

integ-new-install-k8s-presubmit-tests-master
b26c2200a0ae651debd2134f07f3e44f9c8ba137
link
/test integ-new-install-k8s-presubmit-tests-master

istio-lint-master
cfc1986b73b7613b8d30599208d7091a361a6e88
link
/test istio-lint-master

istio-pilot-multicluster-e2e-master
cfc1986b73b7613b8d30599208d7091a361a6e88
link
/test istio-pilot-multicluster-e2e-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@irisdingbj: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

istio-pilot-multicluster-e2e-master
cfc1986b73b7613b8d30599208d7091a361a6e88
link
/test istio-pilot-multicluster-e2e-master

integ-new-install-k8s-presubmit-tests-master
45313c6c2b9b1e320f45ab877132930d5d5f9b73
link
/test integ-new-install-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@irisdingbj: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

istio-pilot-multicluster-e2e-master
cfc1986b73b7613b8d30599208d7091a361a6e88
link
/test istio-pilot-multicluster-e2e-master

integ-new-install-k8s-presubmit-tests-master
45313c6c2b9b1e320f45ab877132930d5d5f9b73
link
/test integ-new-install-k8s-presubmit-tests-master

integ-mixer-k8s-presubmit-tests-master
45313c6c2b9b1e320f45ab877132930d5d5f9b73
link
/test integ-mixer-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@irisdingbj: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-new-install-k8s-presubmit-tests-master
45313c6c2b9b1e320f45ab877132930d5d5f9b73
link
/test integ-new-install-k8s-presubmit-tests-master

integ-mixer-k8s-presubmit-tests-master
45313c6c2b9b1e320f45ab877132930d5d5f9b73
link
/test integ-mixer-k8s-presubmit-tests-master

istio-pilot-multicluster-e2e-master
45313c6c2b9b1e320f45ab877132930d5d5f9b73
link
/test istio-pilot-multicluster-e2e-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@fisherxu @esnible please help review the small change

@irisdingbj: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-new-install-k8s-presubmit-tests-master
45313c6c2b9b1e320f45ab877132930d5d5f9b73
link
/test integ-new-install-k8s-presubmit-tests-master

integ-mixer-k8s-presubmit-tests-master
45313c6c2b9b1e320f45ab877132930d5d5f9b73
link
/test integ-mixer-k8s-presubmit-tests-master

istio-pilot-multicluster-e2e-master
45313c6c2b9b1e320f45ab877132930d5d5f9b73
link
/test istio-pilot-multicluster-e2e-master

istio-lint-master
d0c78309be84cae2c0116f4c9563bc4ddef9123f
link
/test istio-lint-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@irisdingbj: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-mixer-k8s-presubmit-tests-master
45313c6c2b9b1e320f45ab877132930d5d5f9b73
link
/test integ-mixer-k8s-presubmit-tests-master

istio-pilot-multicluster-e2e-master
45313c6c2b9b1e320f45ab877132930d5d5f9b73
link
/test istio-pilot-multicluster-e2e-master

istio-lint-master
d0c78309be84cae2c0116f4c9563bc4ddef9123f
link
/test istio-lint-master

integ-new-install-k8s-presubmit-tests-master
d0c78309be84cae2c0116f4c9563bc4ddef9123f
link
/test integ-new-install-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@irisdingbj: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-new-install-k8s-presubmit-tests-master
d0c78309be84cae2c0116f4c9563bc4ddef9123f
link
/test integ-new-install-k8s-presubmit-tests-master

istio-lint-master
f2a7e93eec5ccdce1d83873cadb0ffd0ce361291
link
/test istio-lint-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@irisdingbj: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

istio-lint-master
f2a7e93eec5ccdce1d83873cadb0ffd0ce361291
link
/test istio-lint-master

integ-new-install-k8s-presubmit-tests-master
f2a7e93eec5ccdce1d83873cadb0ffd0ce361291
link
/test integ-new-install-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@irisdingbj: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

istio-lint-master
f2a7e93eec5ccdce1d83873cadb0ffd0ce361291
link
/test istio-lint-master

integ-new-install-k8s-presubmit-tests-master
f2a7e93eec5ccdce1d83873cadb0ffd0ce361291
link
/test integ-new-install-k8s-presubmit-tests-master

integ-mixer-k8s-presubmit-tests-master
f2a7e93eec5ccdce1d83873cadb0ffd0ce361291
link
/test integ-mixer-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@irisdingbj: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-new-install-k8s-presubmit-tests-master
ec3957a72ccf38d85d79a0fc7c69f28ea33c1fe2
link
/test integ-new-install-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@esnible ^^^

@irisdingbj: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-new-install-k8s-presubmit-tests-master
ec3957a72ccf38d85d79a0fc7c69f28ea33c1fe2
link
/test integ-new-install-k8s-presubmit-tests-master

integ-security-k8s-presubmit-tests-master
ec3957a72ccf38d85d79a0fc7c69f28ea33c1fe2
link
/test integ-security-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


Implement retries on 503s

This caps total attempts of any given request to at most 3x 503 responses (in other words, the third 503 will "bubble up" as-is).  The intent there is that if there is a serious issue with Hub, we don't want to continue retrying aggressively as that would likely contribute to the outage persisting longer.
(inspired by the recurring random 503s we keep getting that resolve on a retry)

Hmmm, maybe we should also consider checking the Retry-After header (which is valid for both 503 and 429; https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After). :thinking:

(I have no idea whether Hub is sending Retry-After with these though -- error reporting for these errors in almost all tools rarely includes the headers for a lot of good reasons :see_no_evil:)

Yeah, retrying one request is lighter weight than restarting the whole job, and should be enough for spurious 503s (and the explicit limit helps protect Hub if they aren't spurious :+1:) :eyes:


Add RAW APRS Output von Serial Port for later handling on Raspberry or PC

Good Morning everyone, my first Pullrequest, yeah.
So this addition should add a switch to activate the RAW-APRS-Message Output so that it is possible to process the Message over the Serial-Interface.
On Devices like the TTGO Beam, you don't have a LAN-Port, for Gateway usaged on high Builds with native Hamnet-Connection this is essential. Because, if you open a Wifi-Network on top of those buildings, the coverage is more then you won't.
The Software for the RasPi to sent the DATA to the APRS is already in the making.
I'm open for any other Ideas, if the approach is wrong.

Is it possible to have the data sent to the port formatted as APRS TEXT?
This will allow to connect LORA DIGI to APRSIS32 application. All received data will be shown on the map

Is it possible to have the data sent to the port formatted as APRS TEXT?
This will allow to connect LORA DIGI to APRSIS32 application. All received data will be shown on the map

@SQ9MDD Yes of course. That could be possible. I though of formatting it so that you could it to an TNC-Software'ish Gateway.

@SQ9MDD Yes of course. That could be possible. I though of formatting it so that you could it to an TNC-Software'ish Gateway.

I made it quickly, and not very neatly, but it works very well

I made it quickly, and not very neatly, but it works very well

Nice! Did you do it so that you only have this Output ? That'd be nice either.

Nice! Did you do it so that you only have this Output ? That'd be nice either.

Yes, but it was so quick I just turned off "logPrintD" and printed the frames generated by the digi and received by the radio to the serial.
Basically, this would have to be done without harming the previous functions.
Serial.println(BeaconMsg->encode());
Serial.println(msg->encode());
It would have to be done in such a way that turning this function on would turn off sending other data to the serial.
Ultimately the expected feature would be KISS TNC. A ready implementation is here:
https://github.com/markqvist/RNode_Firmware
But as for me it is too complicated to do it right.
I need someone with better "kung-fu" skills

Yes, but it was so quick I just turned off "logPrintD" and printed the frames generated by the digi and received by the radio to the serial.
Basically, this would have to be done without harming the previous functions.
Serial.println(BeaconMsg->encode());
Serial.println(msg->encode());
It would have to be done in such a way that turning this function on would turn off sending other data to the serial.
Ultimately the expected feature would be KISS TNC. A ready implementation is here:
https://github.com/markqvist/RNode_Firmware
But as for me it is too complicated to do it right.
I need someone with better "kung-fu" skills

That's a good idea. I think it's easy to integrate with a lightweight switch in die config-file.

That's a good idea. I think it's easy to integrate with a lightweight switch in die config-file.

So, how do we go further with this Idea?
@peterus  You've said it's an option that you implement such a function. Do you do it by yourself or should one of us make a new PR for develop-branch ?

So, how do we go further with this Idea?
@peterus  You've said it's an option that you implement such a function. Do you do it by yourself or should one of us make a new PR for develop-branch ?

please wait for some new implementations, i am working heavily on a new/complete redesigned version. this will take still some days.
To say the truth: i am not 100% convinced about connecting this firmware to an external software. We (german telegram chat) defined some very strickt rules for digipeating. this rules will be applied to a new project and the digi part in this igate software will be removed.
there are a lot of different possibilities to connect the esp32 to a wire if you ned: (example
the goal of this project was to remove the need for a raspberry pi. there are other solutions if you want to run APRS via LoRa on a raspberry pi (simple PCB with a simple modem).
What do you think?

please wait for some new implementations, i am working heavily on a new/complete redesigned version. this will take still some days.
To say the truth: i am not 100% convinced about connecting this firmware to an external software. We (german telegram chat) defined some very strickt rules for digipeating. this rules will be applied to a new project and the digi part in this igate software will be removed.
there are a lot of different possibilities to connect the esp32 to a wire if you ned: (example
the goal of this project was to remove the need for a raspberry pi. there are other solutions if you want to run APRS via LoRa on a raspberry pi (simple PCB with a simple modem).
What do you think?

In my opinion. If we are talking about a radio network.
Right now, the most flexible way to build DIGI into a fixed network is with APRX software, which has the ability to arbitrarily filter traffic between radio interfaces. This allows you to regulate traffic between LORA 70cm and APRS 2m, at the DIGI level without having to open a connection through APRS-IS.
APRX needs a modem to work, for example KISS TNC via TCP or serial port.
KISS TNC functionality would solve this problem without burdening your software with additional algorithms.
If we are talking about temporary work in the field, you also need an interface for e.g. visualization of stations in the field. A great application is APRSIS32 for PC or APRSDROID for ANDROID.
KISS TNC is also a great interface here.
Working in the field with trackers capable of receiving frames is also interesting. It is very good that DIGI function exists now, because it increases the operating range of the network. In such cases sending to APRS-IS is only an addition, the most interesting is to play with the radio.
Sorry I can explain it better only in my own language.

In my opinion. If we are talking about a radio network.
Right now, the most flexible way to build DIGI into a fixed network is with APRX software, which has the ability to arbitrarily filter traffic between radio interfaces. This allows you to regulate traffic between LORA 70cm and APRS 2m, at the DIGI level without having to open a connection through APRS-IS.
APRX needs a modem to work, for example KISS TNC via TCP or serial port.
KISS TNC functionality would solve this problem without burdening your software with additional algorithms.
If we are talking about temporary work in the field, you also need an interface for e.g. visualization of stations in the field. A great application is APRSIS32 for PC or APRSDROID for ANDROID.
KISS TNC is also a great interface here.
Working in the field with trackers capable of receiving frames is also interesting. It is very good that DIGI function exists now, because it increases the operating range of the network. In such cases sending to APRS-IS is only an addition, the most interesting is to play with the radio.
Sorry I can explain it better only in my own language.

Nice! Did you do it so that you only have this Output ? That'd be nice either.

DIGI is up and running and data is flowing to APRSIS32...

Nice! Did you do it so that you only have this Output ? That'd be nice either.

DIGI is up and running and data is flowing to APRSIS32...

@SQ9MDD sorry, but LoRa via APRS should never be mixed or feed from APRS on 2m!
the LoRa communication is way longer (in terms of seconds in the air) than 2m. LoRa is based on Long Range, and every Digi will decrease this range as the QRG is all the time full with messages which should not be on LoRa APRS.
I am in contact with the original authors from LoRa via APRS (some guys from Vienna und lower austria) and the original idea was this:

send position reports/messages from a tracker via LoRa to some iGates in very good places.
this iGates should forward the position reports/messages to an APRS-IS Server.
from the APRS-IS server just Messages for trackers which are close to the iGate should be forwarded - nothing else as we want to keep the QRG free for the trackers.
no other APRS formats are allowed than position reports, messages and in corner cases weather reports (max every 1, best every 3 hours).

you can see it is very strikt, and it should not be like on 2m where you can't even run a tracker in a city as there are high power digis all the time sending stupid stuff. Just image how it would be if you put some high power (1w) lora digis on some mountens in austria without limitation - you could never receive a tracker with low power because all the time the QRG will be blocked and the messages between the trackers would just be forwarded over all the alps all the time.
I am not completely against digis, please dont get me wrong. but there has to be some limitation and some restrictions. and i have a LOT of pressure form other people which are telling me how i should implement the digi firmware (some people are absolutly not happy that i am even considering something like this).

@SQ9MDD sorry, but LoRa via APRS should never be mixed or feed from APRS on 2m!
the LoRa communication is way longer (in terms of seconds in the air) than 2m. LoRa is based on Long Range, and every Digi will decrease this range as the QRG is all the time full with messages which should not be on LoRa APRS.
I am in contact with the original authors from LoRa via APRS (some guys from Vienna und lower austria) and the original idea was this:

send position reports/messages from a tracker via LoRa to some iGates in very good places.
this iGates should forward the position reports/messages to an APRS-IS Server.
from the APRS-IS server just Messages for trackers which are close to the iGate should be forwarded - nothing else as we want to keep the QRG free for the trackers.
no other APRS formats are allowed than position reports, messages and in corner cases weather reports (max every 1, best every 3 hours).

you can see it is very strikt, and it should not be like on 2m where you can't even run a tracker in a city as there are high power digis all the time sending stupid stuff. Just image how it would be if you put some high power (1w) lora digis on some mountens in austria without limitation - you could never receive a tracker with low power because all the time the QRG will be blocked and the messages between the trackers would just be forwarded over all the alps all the time.
I am not completely against digis, please dont get me wrong. but there has to be some limitation and some restrictions. and i have a LOT of pressure form other people which are telling me how i should implement the digi firmware (some people are absolutly not happy that i am even considering something like this). Of course i cant control what you are doing at your house ;) but i just dont want to piss of a lot of people.

@peterus
I understand what you mean but look more broadly. Lora can be a great extension for existing APRS 2m networks (LORA to 2m) . It's a shame to lose the potential to scrub LORA APRS just as a network feeding aprs.fi data.
Anyway, we'll see how these topics develop in the future.
R.

@peterus
I understand what you mean but look more broadly. Lora can be a great extension for existing APRS 2m networks (LORA to 2m) . It's a shame to lose the potential to scrub LORA APRS just as a network feeding aprs.fi data.
Anyway, we'll see how these topics develop in the future.
R.

@SQ9MDD i totaly understand your point! sorry that my answer is currently not what you want to hear :D lets see how it woll continue in the future ;)

@SQ9MDD i totaly understand your point! sorry that my answer is currently not what you want to hear :D lets see how it woll continue in the future ;)

So last word from me, i will close the PR and write a new one, when time for it has to come.
But i think both attempt are kinda right. I think some kinda "Rate-Limiting" is the way to go with such Digipeater. A break between the Bands is in my opinion a big mistake. But there should be a way to go between the both camps.
The way could be that the Firmware on the Devices only do Receiving and with additional Software it is possible turn the Device in to a Digipeater.
So, enough for that. Let us discuss in other Places. (New PR/Telegram or on a Mailinglist)

So last word from me, i will close the PR and write a new one, when time for it has to come.
But i think both attempt are kinda right. I think some kinda "Rate-Limiting" is the way to go with such Digipeater. A break between the Bands is in my opinion a big mistake. But there should be a way to go between the both camps.
The way could be that the Firmware on the Devices only do Receiving and with additional Software it is possible turn the Device in to a Digipeater.
So, enough for that. Let us discuss in other Places. (New PR/Telegram or on a Mailinglist)


Opens when click on any notification

Hello!
When I click on the notification (pop-up) of any program, whatsie opens
Tried 4.2 (stable) and 4.2.1 (edge) from snap
I don't know if it matters, but, i use Linux mint, cinnamon
If you need more information<EMAIL_ADDRESS>Great app, thanks!

Linux Mint 20.3 Una
Cinnamon 5.2.7
Kernel: 5.4.0-113-generic x86_64

I noticed the same behavior, it is pretty annoying. My system in case it matters:
Arch, Kernel: 6.1.6-arch1-1
Sway 1.8 with waybar (for system tray) and mako (for notifications)

Out of curiosity I looked into this bug a bit. This is what I found out:

Disabling Notification Popups in Settings doesn't solve this
This seems to happen only if the nofitication has some kind of action defined, e.g. "Activate" (a custom notification created with "notify-send" without actions doesn't do the trick, but a mail-notification from thunderbird or a new-message notification from signal does)
In mainwindow.cpp: Uncommenting "this->show()" in line 1064 (in MainWindow::messageClicked()) and in line 543 (in MainWindow::notify())  prevents this behavior.
Debugging mainwindow.cpp with breakpoints at line 543 and 1064 confirms this: Everytime I click on a notification of another application (like Thunderbird, Signal, ...), both MainWindow::messageClicked() and MainWindow::notify() get called, resulting in those two lines being executed.

Unfortunately I don't know much about qt, so I couldn't figure out what calls these functions and why.

I will check. Thanks

It's a bug in Qt: https://bugreports.qt.io/browse/QTBUG-112170
I don't think it's possible to work around, other than implementing the system tray without QSystemTrayIcon. messageClicked() is just too broken.

I was trying to reproduce this behavior, and this what i found:

the issue only get triggred when app is running as snap
executing same code do not trigger the issue when built & run locally

Command to trigger the issue (notify-send clickable notification):
notify-send "Clickable Message" "This message can be clicked!" --icon=dialog-information --action="default,Open Terminal"

I was trying to reproduce this behavior, and this what i found:

the issue only get triggred when app is running as snap
executing same code do not trigger the issue when built & run locally

Probably because you're using Plasma? Plasma ships its own QSystemTrayIcon implementation which does not have that bug. Inside the Snap and Flatpak, this is not available and the broken Qt one is used.

Command to trigger the issue (notify-send clickable notification): notify-send "Clickable Message" "This message can be clicked!" --icon=dialog-information --action="default,Open Terminal"

Probably because you're using Plasma?

Yes.
Thanks for insight :)


Protobuf optional fields support

Because we use custom headers for protobuf messages *.hpp instead of the ones generated by protoc i.e. *.pb.h, we are missing the functions has_<fieldname>() which allow you to check if an optional field was part of the message.
For our existing use cases, we can check against default value to see if an optional field was included in the message or not. There might be a problem if the default value is actually a valid value for that field...
It might be worth considering if we should add explicit support for checking if an optional field was part of a protobuf message.

@TrentHouliston what are your thoughts on adding has functions for each field of a neutron?


Type declaration contains a cycle error

gospel check issues a The type declaration for `t' contains a cycle error for the following piece of code:
module type A = sig
  type t
end

module type B = sig
  type t

  module C : A with type t = t
end

I believe this is a bug in the type-checker.

Two solutions:

if easy, fix the scoping issue
if hard, understand if we can reasonably reject module types temporarily

The bug lies in the fact that the type checker assumes all types are always recursive. We’ve added in #289 the following test:
include sig
  type t
end

type nonrec t = t

that’s rejected with the same error message.

That last example runs into more than that issue, unfortunately.
#302 will track the fact that include are (silently) ignored.


Build fails on ubuntu 16.04 with gcc 5.4

New ubuntu 16.04
//install basics
//automake/libtool is needed for protobuffers
sudo apt-get update
sudo apt-get install python python-pip build-essential make git cmake automake libtool
//install conan
sudo pip install conan
//add remote to conan
conan remote add lms http://mineforce.de:9300
conan install lms/2.0@lms/stable --build=missing

Error
[100%] Linking CXX executable bin/lms
liblmscore.so: undefined reference to `google::protobuf::internal::empty_string_'
liblmscore.so: undefined reference to `google::protobuf::internal::WireFormatLite::ReadString(google::protobuf::io::CodedInputStream*, std::string*)'
liblmscore.so: undefined reference to `pugi::xml_node::path(char) const' #Some other lib we have to fix
liblmscore.so: undefined reference to `google::protobuf::DescriptorPool::FindFileByName(std::string const&) const'
liblmscore.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteString(int, std::string const&, google::protobuf::io::CodedOutputStream*)'
liblmscore.so: undefined reference to `google::protobuf::Message::InitializationErrorString() const'
liblmscore.so: undefined reference to `google::protobuf::internal::StringTypeHandlerBase::Delete(std::string*)'
liblmscore.so: undefined reference to `google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void (*)(std::string const&))'
liblmscore.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(int, std::string const&, google::protobuf::io::CodedOutputStream*)'
liblmscore.so: undefined reference to `google::protobuf::internal::StringTypeHandlerBase::New()'
liblmscore.so: undefined reference to `google::protobuf::io::CodedOutputStream::WriteStringWithSizeToArray(std::string const&, unsigned char*)'
liblmscore.so: undefined reference to `google::protobuf::Message::GetTypeName() const'
collect2: error: ld returned 1 exit status
CMakeFiles/lms.dir/build.make:95: recipe for target 'bin/lms' failed
make[2]: *** [bin/lms] Error 1
CMakeFiles/Makefile2:104: recipe for target 'CMakeFiles/lms.dir/all' failed
make[1]: *** [CMakeFiles/lms.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

lms/2.0@lms/stable: ERROR: Package '13a8d081f533db91339ab619a0f71485c8820c78' build failed
lms/2.0@lms/stable: WARN: Build folder /home/phoenix/.conan/data/lms/2.0/lms/stable/build/13a8d081f533db91339ab619a0f71485c8820c78
ERROR: lms: Error 512 while executing cmake --build .

It works on ubuntu 14.04 with gcc 4.8 and 6.2.

A quick fix is to add this to the CMakeLists.txt for your project
add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)
Although the conan docs suggest that it should also work, for some reason specifying libstdc++ (vs libstdc++11) doesn't trigger this flag for me, which caused the build to fail with the same error you're seeing.  If I have time I'll track down the root cause.

That is true, the add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0) is automatically defined only when used from a conanfile.py recipe with the CMake helper.
Check: https://github.com/conan-io/conan/blob/develop/conans/client/generators/cmake_common.py#L171
This only works when the CONAN_LIBCXX is defined, which is done by the CMake helper, typically used in the build() method of the recipe.
The root cause is the high decoupling between conan and the build system. When you install conan dependencies you specify some settings, and a conanbuildinfo.cmake is generated for those settings. But when you are building your project, your project settings must match the installed dependencies. For some of them, like the compiler and compiler version, the conanbuildinfo.cmake already implements some checks, but not for the libcxx.
I have added an issue (https://github.com/conan-io/conan/issues/1202) to the main conan repo, to try to improve this (even if it doesn't look easy without breaking the low coupling). Thanks for the feedback!

Thanks for noticing!  :)  What's strange about this is that I built all dependencies from source with the same compiler and no specific settings or overrides, but still ended up with two different CXX11 versions somehow.  I checked the conaninfo.txt file in the build dir of the Protobuf dependency and everything matched.  Happy to provide any further details if you need them.


Recursion of dns entries

Lets say that I have configuration like this:
/skydns/local/domain/
/skydns/local/domain/a -. IP1
/skydns/local/domain/b -. IP2
/skydns/local/domain/c -. IP3
/skydns/local/domain/subdom1/
/skydns/local/domain/subdom1/a -. IP4
/skydns/local/domain/subdom1/b -. IP5
/skydns/local/domain/subdom1/c -. IP6
DIG for subdom1.domain.local.skydns returns IP4,5,6
DIG for domain.local.skydns returns IP1,2,3,4,5,6
How could I make
DIG for subdom1.domain.local.skydns returnn IP4,5,6
DIG for domain.local.skydns returnn IP1,2,3
?

You can't.
If you want this you should change domain to east (could be anything) for the 1,2,3 case and west for the 4,5,6 case. If you want to get everything you should dig for *.*.skydns.local.
Note the libc is picky about domainnames containing funny characters (see #127) for which I will allow the use of any instead of *.

I think it would be nice if skydns supported RR depth. In this case depth=1

[ Quoting<EMAIL_ADDRESS>in "Re: [skydns] RoundRobin for domain ..." ]

I think it would be nice if skydns supported RR depth. In this case depth=1

?
Sorry, you have to be more clear with what you mean with that.
/Miek
--
Miek Gieben

I suggest:
-round-robin=-1 (same as current=true)
-round-robin=0 (same as current=false)
-round-robin=1 (round robin one level deep)

You want to limit the recursion skydns does? (This has nothing to do with round-robin per se).
I also think there are ways around this "limitation" by placing your records differently in Etcd (i.e. use a different naming scheme).

Basically yes.
Can you suggest a way to place records in etcd to overcome this issue and have subdomain.domain.skydns domain.skydns with different entries? Without doing something like subdomain1.domain.skydns subdomain2.domain.skydns?

Let's go back a step. What do you actually want to accomplish?

I have a domain for my service like:
messaging.company.services (HTTP backend, round-robin)
And I have domain for internal service infrastructure:
mongodb.messaging.company.services
And I'm unable to assign different ips for mongodb.messaging.company.services (because of recursion in skydns)

I think what you need to do is bring the services to the same level, i.e. http.messaging.company.services and mongodb.messaging.company.services. (at least if you want to use SkyDNS). SkyDNS is not a fullblown nameserver.

I was about to file the same issue.
I'd like to offer sub-domains that are not considered part of their parent.
E.g. I have foo.local which has an A record and I want bar.foo.local to have a different A record and not be part of foo.local's A records.
I could do dummy.foo.local and bar.foo.local if only I could add a CNAME or A for foo.local -> dummy.foo.local.

I'd like to offer sub-domains that are not considered part of their parent.
E.g. I have foo.local which has an A record and I want bar.foo.local to have a different A record
and not be part of foo.local's A records.

I see, but as I said before this isn't really how SkyDNS is designed.

I could do dummy.foo.local and bar.foo.local if only I could add a CNAME or A for foo.local -> dummy.foo.local.

... and then skydns should stop recursing when it sees such a CNAME record? This can work, but it is all becoming rather complex.
Rather than using CNAME we could add a Copy element to msg.Service that copies the records found under whatever Host points to. Having it not recursing is then a different problem.
Maybe it is nicer to have a Group attribute which could be used to tell SkyDNS the only group queries together from the same group. The foo.local would be group foo and the levels below that would have group foo-1, meaning that foo-1 records will not be included in the reply. The semantics would then be:

if there is a group on the level of the query, use that. I.e foo.local -> group foo, bar.foo.local -> different group
if there isn't a group, don't do this and use the normal behavior.

With such a group thing, you don't need Copy nor CNAMEs I think.

Regarding CNAME, what if SkyDNS just kept CNAME records in a separate tree?  I know you didn't intend it to be a full DNS server, but if you just had a way to say that CNAMEs are special things, off to the side, that point to other names, I could side-step this issue.
Alternately, your Group field sounds workable, though it is getting pretty complex.  As before, happy to try it out if you have a quick hack you want me to patch in...

A separate tree can work, but is also complex. And I still believe you'll have the recursion problem, unless you say "if you hit this other tree", we won't recurse...But this is more opaque then a Group attribute.

It's your project, and obviously I am coming at it from an "I just want a
DNS server" approach.  I'm happy to try your group approach, if you like.
On Thu, Apr 9, 2015 at 11:49 PM, Miek Gieben<EMAIL_ADDRESS>wrote:

A separate tree can work, but is also complex. And I still believe you'll
have the recursion problem, unless you say "if you hit this other tree", we
won't recurse...But this is more opaque then a Group attribute.
—
Reply to this email directly or view it on GitHub
https://github.com/skynetservices/skydns/issues/147#issuecomment-91455823
.

Yeah :-) Something like Group makes sense. @bketelsen: any strong thoughts on this?

In France for the weekend.  Will try to look
Sent from my iPhone

On Apr 10, 2015, at 9:05 AM, Miek Gieben<EMAIL_ADDRESS>wrote:
Yeah :-) Something like Group makes sense. @bketelsen: any strong thoughts on this?
—
Reply to this email directly or view it on GitHub.

[ Quoting<EMAIL_ADDRESS>in "Re: [skydns] RoundRobin for domain ..." ]

In France for the weekend.  Will try to look

lame excuse :)
Enjoy!

Another "hack" which sadly won't work because client will do the queries is to looks at the recursion-flag in the query (RD bit). If it is off only give a one level reply if it is on do the full recursion.
Again: a hack that won't work for real world clients.

Part of the problem is that we're trying to map DNS onto a struct that
isn't natively DNS.  I appreciate your help - I think this ability makes
SkyDNS more useful overall, but if you told us to buzz off, it would not be
unsurprising. I am glad you didn't, though :)
On Mon, Apr 13, 2015 at 6:34 AM, Miek Gieben<EMAIL_ADDRESS>wrote:

Another "hack" which sadly won't work because client will do the queries
is to looks at the recursion-flag in the query (RD bit). If it is off
only give a one level reply if it is on do the full recursion.
Again: a hack that won't work for real world clients.
—
Reply to this email directly or view it on GitHub
https://github.com/skynetservices/skydns/issues/147#issuecomment-92353432
.

[ Quoting<EMAIL_ADDRESS>in "Re: [skydns] RoundRobin for domain ..." ]

Part of the problem is that we're trying to map DNS onto a struct that
isn't natively DNS.  I appreciate your help - I think this ability makes
SkyDNS more useful overall, but if you told us to buzz off, it would not be
unsurprising. I am glad you didn't, though :)

Hehe :)
During the weekend I've thought about this feature and I think it can work and
we still adhere to the SkyDNS philosophy (whatever that maybe).
I'll wait for Brian to chime in.

So I don't have a strong implementation preference (the cname tree sounds more flexible for the end-user, but harder to wrap my head around the implications of how to implement) I do agree that this feature would be useful and worth supporting.
Semi-related: If etcd is a limiting factor in so many of our tickets as it seems to be lately, why don't we consider a replicated in-memory store using one of the Go raft impls like we had in SkyDNS 1?

Semi-related: If etcd is a limiting factor in so many of our tickets as it seems to be lately, why don't we
consider a replicated in-memory store using one of the Go raft impls like we had in SkyDNS 1?

I don't think so. Because even in memory you want a tree like structure (which we had in v1). And this problems exists because of "the special meaning given to subdomains", which clashes with the issue raised here.

i wish we could survey users somehow.  my guess is that nobody is using the "special meaning of subdomains"

Well the recursive stuff is heavily used. But yeah, usage patterns would be nice.

I use SkyDNS to approximate what I would get if I manually wrote DNS
records.  In other words, I start with the DNS records I want to produce
and I try to coax SkyDNS into producing those records.  It has mostly
worked, though it has taken a fair bit of experimenting and sometimes the
tree structure just gets in the way.  I'm not saying I am a typical SkyDNS
user, but you said "survey users" :)
On Tue, Apr 14, 2015 at 3:28 AM, Miek Gieben<EMAIL_ADDRESS>wrote:

Well the recursive stuff is heavily used. But yeah, usage patterns
would be nice.
—
Reply to this email directly or view it on GitHub
https://github.com/skynetservices/skydns/issues/147#issuecomment-92758244
.

Wait... if you don't want SkyDNS to recurse to deeper levels we can just add a flag that makes it stop doing that, and make it behave more like a "real" DNS server backed with Etcd.

Maybe you want to use both. I would like to suggest adding one more level into directory structure of SkyDNS like:
/recursive/tld/domain/subdomain
/stantard/tld/domain/subdomain
Or setting value of {"host": x.x.x.x, "recurse": true/false}?

Wait... if you don't want SkyDNS to recurse to deeper levels we can just
add a flag that makes it stop doing that, and make it behave more like a
"real" DNS server backed with Etcd.

I don't think the current etcd structure would allow the expression of
things like we are expressing today.  Recursion is the way we achieve SRV,
multiple A records, etc.  Real DNS has nodes in the tree that are both
"files" and "directories" at the same time.
e.g. an A record for bar.foo.com and a set of A records for foo.com that is
not inclusive bar.foo.com

[ Quoting<EMAIL_ADDRESS>in "Re: [skydns] RoundRobin for domain ..." ]

Maybe you want to use both. I would like to suggest adding one more level into directory structure of SkyDNS like:
/recursive/tld/domain/subdomain
/stantard/tld/domain/subdomain

Yes this basically to choice we have to make.

Or setting value of {"host": x.x.x.x, "recurse": true/false}?

I propose to use a group attribute, so you know what to include. But the basic
idea is the same.
/Miek
--
Miek Gieben

If we're making choices, I think the group attribute looks better.
On Wed, Apr 15, 2015 at 3:17 AM, Miek Gieben<EMAIL_ADDRESS>wrote:

[ Quoting<EMAIL_ADDRESS>in "Re: [skydns] RoundRobin for
domain ..." ]

Maybe you want to use both. I would like to suggest adding one more level
into directory structure of SkyDNS like:
/recursive/tld/domain/subdomain
/stantard/tld/domain/subdomain

Yes this basically to choice we have to make.

Or setting value of {"host": x.x.x.x, "recurse": true/false}?

I propose to use a group attribute, so you know what to include. But the
basic
idea is the same.
/Miek
--
Miek Gieben
—
Reply to this email directly or view it on GitHub
https://github.com/skynetservices/skydns/issues/147#issuecomment-93232761
.

--

Brian Ketelsen
bketelsen  gmail  com

I agree that a group attribute is better than parallel trees.
On Apr 15, 2015 3:45 AM, "Brian Ketelsen"<EMAIL_ADDRESS>wrote:

If we're making choices, I think the group attribute looks better.
On Wed, Apr 15, 2015 at 3:17 AM, Miek Gieben<EMAIL_ADDRESS>wrote:

[ Quoting<EMAIL_ADDRESS>in "Re: [skydns] RoundRobin for
domain ..." ]

Maybe you want to use both. I would like to suggest adding one more
level
into directory structure of SkyDNS like:
/recursive/tld/domain/subdomain
/stantard/tld/domain/subdomain

Yes this basically to choice we have to make.

Or setting value of {"host": x.x.x.x, "recurse": true/false}?

I propose to use a group attribute, so you know what to include. But the
basic
idea is the same.
/Miek
--
Miek Gieben
—
Reply to this email directly or view it on GitHub
<
https://github.com/skynetservices/skydns/issues/147#issuecomment-93232761>
.

--

Brian Ketelsen
bketelsen  gmail  com
—
Reply to this email directly or view it on GitHub
https://github.com/skynetservices/skydns/issues/147#issuecomment-93317568
.

ok. hoping to get this, and multiple domains in, in the next couple of days
On 15 Apr 2015 3:44 pm, "Tim Hockin"<EMAIL_ADDRESS>wrote:

I agree that a group attribute is better than parallel trees.
On Apr 15, 2015 3:45 AM, "Brian Ketelsen"<EMAIL_ADDRESS>wrote:

If we're making choices, I think the group attribute looks better.
On Wed, Apr 15, 2015 at 3:17 AM, Miek Gieben<EMAIL_ADDRESS>wrote:

[ Quoting<EMAIL_ADDRESS>in "Re: [skydns] RoundRobin for
domain ..." ]

Maybe you want to use both. I would like to suggest adding one more
level
into directory structure of SkyDNS like:
/recursive/tld/domain/subdomain
/stantard/tld/domain/subdomain

Yes this basically to choice we have to make.

Or setting value of {"host": x.x.x.x, "recurse": true/false}?

I propose to use a group attribute, so you know what to include. But
the
basic
idea is the same.
/Miek
--
Miek Gieben
—
Reply to this email directly or view it on GitHub
<

https://github.com/skynetservices/skydns/issues/147#issuecomment-93232761>

.

--

Brian Ketelsen
bketelsen  gmail  com
—
Reply to this email directly or view it on GitHub
<
https://github.com/skynetservices/skydns/issues/147#issuecomment-93317568>
.

—
Reply to this email directly or view it on GitHub
https://github.com/skynetservices/skydns/issues/147#issuecomment-93428380
.

Any progress on this issue?

[ Quoting<EMAIL_ADDRESS>in "Re: [skydns] Recursion of dns entri..." ]

Any progress on this issue?

Progress is slow as I don't have much time. But there is a group branch, with
some ideas implemented, i.e. a Group function in msg/service.go. Once that is
finished and tested, you can simply call Group on the returned services and it
should do what you want it.
/Miek
--
Miek Gieben

Please try the group branch and provide feedback. It should work, but I'm interested if it's obvious to use and if my choices make sense.

Looking at documentation.
I suggest adding example values for a/b that it would be clear that those entries need to have group value
https://github.com/skynetservices/skydns/blob/group/README.md#groups

re: @bketelsen  (late reply)

i wish we could survey users somehow. my guess is that nobody is using the "special meaning of > subdomains"

This is used in for instance Prometheus to target specific sets of hosts to scrape.

I still have not had a chance to test the groups branch, I apologize.
On Tue, May 12, 2015 at 1:29 AM, Miek Gieben<EMAIL_ADDRESS>wrote:

re: @bketelsen https://github.com/bketelsen (late reply)
i wish we could survey users somehow. my guess is that nobody is using the
"special meaning of > subdomains"
This is used in for instance Prometheus to target specific sets of hosts
to scrape.
—
Reply to this email directly or view it on GitHub
https://github.com/skynetservices/skydns/issues/147#issuecomment-101187074
.

no problem.
On 12 May 2015 5:00 pm, "Tim Hockin"<EMAIL_ADDRESS>wrote:

I still have not had a chance to test the groups branch, I apologize.
On Tue, May 12, 2015 at 1:29 AM, Miek Gieben<EMAIL_ADDRESS>wrote:

re: @bketelsen https://github.com/bketelsen (late reply)
i wish we could survey users somehow. my guess is that nobody is using
the
"special meaning of > subdomains"
This is used in for instance Prometheus to target specific sets of hosts
to scrape.
—
Reply to this email directly or view it on GitHub
<
https://github.com/skynetservices/skydns/issues/147#issuecomment-101187074
.

—
Reply to this email directly or view it on GitHub
https://github.com/skynetservices/skydns/issues/147#issuecomment-101330683
.

I've tested the group branch, looks like it works like expected.

[ Quoting<EMAIL_ADDRESS>in "Re: [skydns] Recursion of dns entri..." ]

I've tested the group branch, looks like it works like expected.

cool :-) I took the liberty to already merge it to master :-)
I am concerned about one thing which is cname chaining and groups. You might end
up in a situation where you need an IP, but you can't return that specific IP,
because the group's settings don't allow it. Not sure if this is a problem in
practise. I also haven't found a good testcase for it.
/Miek
--
Miek Gieben

Wait a little before merging to master yet. I'm still checking some things.

[ Quoting<EMAIL_ADDRESS>in "Re: [skydns] Recursion of dns entri..." ]

Wait a little before merging to master yet. I'm still checking some things.

I consider this feature still to be "in-flux", so I don't mind changing it.
/Miek
--
Miek Gieben

There's a problem if subdom1.domain.local.skydns have a lot of record (e.g. 3000 records). In this case, when i query domain.local.skydns, it tooks very long time to return IP1,2,3. Hope that we can have limit recursive level in the next release. Thanks!


Attempt to write file span of 0 bytes while using iree-llvm-link-embedded=false

What happened?
cd /tmp/ireep/build-host/benchmarks/TFLite && /tmp/ireep/build-host/tools/iree-compile --output-format=vm-bytecode --mlir-print-op-on-diagnostic=false --iree-hal-target-backends=dylib-llvm-aot --iree-input-type=tosa --iree-llvm-target-triple=aarch64-none-linux-android29 /tmp/ireep/build-host/benchmark_suites/TFLite/mobilenet_v2_1.0_224.tflite.mlir -o /tmp/ireep/build-host/benchmark_suites/TFLite/vmfb/mobilenet_v2_1.0_224.tflite.mlir-793b221ac8a815ddac8a36aba0b9d7e9.vmfb --iree-llvm-embedded-linker-path=\"/tmp/ireep/build-host/third_party/llvm-project/llvm/bin/lld\" --iree-llvm-wasm-linker-path=\"/tmp/ireep/build-host/third_party/llvm-project/llvm/bin/lld\" --iree-llvm-keep-linker-artifacts --iree-llvm-link-embedded=false
/tmp/ireep/build-host/benchmark_suites/TFLite/mobilenet_v2_1.0_224.tflite.mlir:1:1: remark: linker artifacts for system_elf_arm_64 preserved:
    /tmp/mobilenet_v2_1.0_224.tflite_linked_llvm-165cbe.so
module {
^
jpienaar@aether /tmp/ireep/build-host/benchmarks/TFLite (main)> file /tmp/mobilenet_v2_1.0_224.tflite_linked_llvm-165cbe.so
/tmp/mobilenet_v2_1.0_224.tflite_linked_llvm-165cbe.so: empty
jpienaar@aether /tmp/ireep/build-host/benchmarks/TFLite (main)> adb push /tmp/ireep/build-host/benchmark_suites/TFLite/vmfb/mobilenet_v2_1.0_224.tflite.mlir-793b221ac8a815ddac8a36aba0b9d7e9.vmfb /data/local/tmp/iree-benchmarks/TFLite/vmfb/mobilenet_v2_1.0_224.tflite.mlir-793b221ac8a815ddac8a36aba0b9d7e9.vmfb
/tmp/ireep/build-host/benchmark_suites/TFLite/... skipped. 52.9 MB/s (13979279 bytes in 0.252s)
jpienaar@aether /tmp/ireep/build-host/benchmarks/TFLite (main)> adb shell "cd /data/local/tmp/iree-benchmarks/TFLite/MobileNetV2-fp32,imagenet/iree-dylib__CPU-ARM64-v8A__1-thread,big-core,full-inference,default-flags && TRACY_NO_EXIT=0 IREE_PRESERVE_DYLIB_TEMP_FILES=/data/local/tmp/iree-benchmarks taskset 80 /data/local/tmp/iree-benchmarks/traced-tools/iree-benchmark-module --flagfile=flagfile"
/tmp/ireep/runtime/src/iree/base/internal/dynamic_library_posix.c:103: NOT_FOUND; unable to write file span of 0 bytes to '/data/local/tmp/iree-benchmarks/iree_dylib_jYvocv_mem_.so'; while invoking native function hal.executable.create; while calling import;
[ 1]   native hal.executable.create:0 -
[ 0] bytecode module.__init:634 /tmp/ireep/build-host/benchmark_suites/TFLite/mobilenet_v2_1.0_224.tflite.mlir:1:1

Steps to reproduce your issue
This seems specific to NDK 21 - repro'd with 21e above, switching to 23c completes without issue. But unfortunately no error reported anywhere along the lines, extracting the linker command
/android-ndk-r21e/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android29-clang -nostdlib -o /tmp/fii /tmp/mobilenet_v2_1.0_224.tflite_linked_llvm-054767.o --for-linker=-static --for-linker=-shared --for-linker=-no-pie -v

reports success status but doesn't produce any output file.
At the moment it seems using newer NDK is best and we were looking to see why 21e doesn't even produce any error output here.
What component(s) does this issue relate to?
No response
Version information
No response
Additional context
No response

This issue is pretty strange... maybe we can just close it as obsolete, as long as people running that style of command use a more recent Android NDK?


Remove dead code from project

There seem to be a number of dead code files / folders in the project eg in the samples folder.  Please remove all dead code

Done


Arrow should consider using dateutil.tz.win.tzwinlocal on Windows.

dateutil exposes two "local time" functions - tzlocal() and tzwinlocal(). In most cases, this is perfectly acceptable because tzlocal() uses the time module to query to operating system about the local time zone in an OS-independent way so the results will be the same between them. However, there is a bug in Python / Microsoft CRT which makes it so that time's time zone information is not re-loaded during the runtime of the Python operation. As such, changes in the system time zone during an application's run will not be reflected in tzlocal() on Windows.
Since dateutil.tz.win.tzwinlocal() is implemented using system calls to Windows functions, it is unaffected by this issue. It might be a good idea to have arrow try to import tzwinlocal() and on ImportError import tzlocal() instead. Some "time zone switching" context helpers are defined in dateutil's test suite that would allow you to write a test like this one for arrow objects:
   def testTzwinLocalEquality(self):
        tw_est = tz.tzwin('Eastern Standard Time')
        tw_pst = tz.tzwin('Pacific Standard Time')

        with TZWinContext('Eastern Standard Time'):
            twl1 = tz.tzwinlocal()
            twl2 = tz.tzwinlocal()

            self.assertEqual(twl1, twl2)
            self.assertEqual(twl1, tw_est)
            self.assertNotEqual(twl1, tw_pst)

        with TZWinContext('Pacific Standard Time'):
            twl1 = tz.tzwinlocal()
            twl2 = tz.tzwinlocal()
            tw = tz.tzwin('Pacific Standard Time')

            self.assertEqual(twl1, twl2)
            self.assertEqual(twl1, tw)
            self.assertEqual(twl1, tw_pst)
            self.assertNotEqual(twl1, tw_est)

Obviously that's testing something else, but you can see the point - switch to two different contexts and make sure you get different answers.

Interesting. Makes sense to me, unfortunately I don't have a windows machine to develop on. I'd be willing to accept a PR that addresses this.

That's a good idea. If I have time I may go that route.

ref #487
If anyone feels like reviving the above PR feel free.


Implementation of SchemeDynPyCodeComponent  and SchemeSymPyCodeComponent  classes

Two classes for code reporting are to create. Mentioned classes have to embed an examples of DynPy or/and SymPy classes and methods application which present system scheme.

DONE


I can't import commot

Hi developer:
I successful install commot in my new conda environment,but i can't import it.
Here is my code:

import commot as ct
Traceback (most recent call last):
File "", line 1, in
File "/sibcb1/chenluonanlab6/daihao/anaconda3/envs/commot/lib/python3.9/site-packages/commot/init.py", line 5, in
from . import preprocessing as pp
File "/sibcb1/chenluonanlab6/daihao/anaconda3/envs/commot/lib/python3.9/site-packages/commot/preprocessing/init.py", line 1, in
from ._infer_spatial import infer_spatial_information
File "/sibcb1/chenluonanlab6/daihao/anaconda3/envs/commot/lib/python3.9/site-packages/commot/preprocessing/_infer_spatial.py", line 4, in
import scanpy as sc
File "/sibcb1/chenluonanlab6/daihao/anaconda3/envs/commot/lib/python3.9/site-packages/scanpy/init.py", line 16, in
from . import plotting as pl
File "/sibcb1/chenluonanlab6/daihao/anaconda3/envs/commot/lib/python3.9/site-packages/scanpy/plotting/init.py", line 1, in
from ._anndata import (
File "/sibcb1/chenluonanlab6/daihao/anaconda3/envs/commot/lib/python3.9/site-packages/scanpy/plotting/_anndata.py", line 28, in
from . import _utils
File "/sibcb1/chenluonanlab6/daihao/anaconda3/envs/commot/lib/python3.9/site-packages/scanpy/plotting/_utils.py", line 35, in
class _AxesSubplot(Axes, axes.SubplotBase, ABC):
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

Thanks for your attention!

Oh! I have solved this error yet! It seems has problem with scanpy if it's installed by pip.
So i run 'conda install scanpy' to reinstall scanpy.And then I can import commot successfully.


Add Outline functionality to all Drawables. Fix Rotation orientation

Codecov Report

Merging #298 (6a2490c) into master (e000fc7) will increase coverage by 0.05%.
The diff coverage is 97.93%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@            Coverage Diff             @@
##           master     #298      +/-   ##
==========================================
+ Coverage   95.49%   95.54%   +0.05%
==========================================
  Files         178      179       +1
  Lines        4197     4313     +116
==========================================
+ Hits         4008     4121     +113
- Misses        189      192       +3

Files
Coverage Δ

impl/jamtemplate/common/animation.cpp
86.04% <100.00%> (+0.50%)
:arrow_up:

impl/jamtemplate/common/bar.cpp
100.00% <100.00%> (ø)

impl/jamtemplate/common/bar.hpp
100.00% <ø> (ø)

impl/jamtemplate/common/color/palette_builder.cpp
97.82% <ø> (ø)

impl/jamtemplate/common/graphics/drawable_impl.cpp
97.47% <100.00%> (+0.18%)
:arrow_up:

impl/jamtemplate/common/graphics/drawable_impl.hpp
100.00% <ø> (ø)

...jamtemplate/common/graphics/drawable_interface.hpp
100.00% <ø> (ø)

impl/jamtemplate/common/tilemap/tile_layer.cpp
100.00% <100.00%> (ø)

impl/jamtemplate/common/tilemap/tile_layer.hpp
100.00% <ø> (ø)

impl/jamtemplate/sfml/line.cpp
100.00% <100.00%> (ø)

... and 8 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Dev

Update to improve performance with large libraries to work around crashes of galaxy.

Updated the paging timing to get around more of galaxy's crashes with large libs. It is now configurable in the configuration along with disabling most logging to better allow for the winning of the race condition imposed by galaxy.


Improve desc for the logic of respectMaybeMoreData

Motivation
If 'respectMaybeMoreData' is true, the reading will stop even we think there is more data. thus, the current description is that if we think there is no more data, we will stop reading. It is original function for DefaultMaxMessagesRecvByteBufAllocator.MaxMessageHandle#defaultMaybeMoreSupplier. This fact is no relationship with new added 'respectMaybeMoreData'.
Modification
Change the description for 'respectMaybeMoreData' for its function.
Result
The new description for respectMaybeMoreData will be more clear.

there is error on PR. close it


module restarts when receive new message.

When module receive new message, it restarts.

Problem is solved but just linking an aluminium sheet with antenna like in attached image.


SSL issue attempting to install on MacOS

10:00:40 PM » curl https://hishtory.dev/install.py | python3 -
Traceback (most recent call last):
  File<EMAIL_ADDRESS>line 1348, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
  File<EMAIL_ADDRESS>line 1282, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File<EMAIL_ADDRESS>line 1328, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File<EMAIL_ADDRESS>line 1277, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File<EMAIL_ADDRESS>line 1037, in _send_output
    self.send(msg)
  File<EMAIL_ADDRESS>line 975, in send
    self.connect()
  File<EMAIL_ADDRESS>line 1454, in connect
    self.sock = self._context.wrap_socket(self.sock,
  File<EMAIL_ADDRESS>line 513, in wrap_socket
    return self.sslsocket_class._create(
  File<EMAIL_ADDRESS>line 1071, in _create
    self.do_handshake()
  File<EMAIL_ADDRESS>line 1342, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 13, in <module>
  File<EMAIL_ADDRESS>line 216, in urlopen
    return opener.open(url, data, timeout)
  File<EMAIL_ADDRESS>line 519, in open
    response = self._open(req, data)
  File<EMAIL_ADDRESS>line 536, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
  File<EMAIL_ADDRESS>line 496, in _call_chain
    result = func(*args)
  File<EMAIL_ADDRESS>line 1391, in https_open
    return self.do_open(http.client.HTTPSConnection, req,
  File<EMAIL_ADDRESS>line 1351, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)>

Thank you for filing! This is a duplicate of #50 and was due to a transient issue with my serving infrastructure. This is resolved and I've added monitoring to alert me if this does ever happen again.


[Fix-15787] Reuse code and solve the problem of complex SQL parsing exceptions in…

… druid, corresponding to issue fix #15787

Purpose of the pull request

Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

(or)
If your pull request contain incompatible change, you should also add it to docs/docs/en/guide/upgrede/incompatible.md

Codecov Report
Attention: Patch coverage is 75.00000% with 1 lines in your changes are missing coverage. Please review.

Project coverage is 39.53%.  Consider uploading reports for the commit cd5c412 to get more accurate results

Files
Patch %
Lines

...source/oracle/param/OracleDataSourceProcessor.java
75.00%
0 Missing and 1 partial :warning:

Additional details and impacted files
@@             Coverage Diff              @@
##                dev   #15833      +/-   ##
============================================
+ Coverage     39.47%   39.53%   +0.05%
- Complexity     4993     5015      +22
============================================
  Files          1347     1347
  Lines         45641    45568      -73
  Branches       4892     4878      -14
============================================
- Hits          18018    18015       -3
+ Misses        25699    25628      -71
- Partials       1924     1925       +1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

@qingwli @SbloodyS The UT that reports the error is meaningful. The com.alibaba.druid.sql.parser.SQLParserUtils.splitAndRemoveComment tool class does not do special processing for Oracle, which requires overall execution of PL/SQL. As a result, a complete statement will be incorrectly split. After correcting the logic of the code, I conducted unit tests on a series of PL/SQL statements and multiple compound SQL statements, and the tests all passed. But I didn't submit the code because there were too many test samples. If necessary, I will provide a comprehensive test sample in the comment area or make a git submission. I will continue to follow up on the maintenance of this data source from now on

That's ok @xinxingi , This pr is merged, Thanks for your contributing


Add benchmark for gencode parser

Could you please add benchmark for gencode (https://github.com/andyleap/gencode), it seems very fast. Am at the beginning of migrating from python to golang and I wish I could do it myself. Thanks.

Not relevant for json parsing, sorry..


#3675a Update version to 2.4-SNAPSHOT

Signed-off-by: Nigel Jones<EMAIL_ADDRESS>Updates master to 2.4-SNAPSHOT as per #3675a

Note #3525 applies here - first build after a version bump causes an issue. Will aim to fix for next release


[FLINK-19309][coordination] Add TaskExecutorManager

Adds the TaskExecutorManager (TEM), a component of the new declarative slot manager handling all task executor related things, including bookkeeping of active task executors, allocation of new workers, idleness checks, and more.
While this sounds sophisticated, it really isn't. The TEM was created by literally ripping out all the task executor stuff from the slot manager and dumping it into this class. Some log messages and method names were adjusted though.
The main purpose of this class is to keep all this stuff out of the slot manager; there are a fair number of things in there that the slot manager shouldn't deal with, but the current distribution of responsibilities (that we have to maintain to be compatible with the RM) does not allow us to change it. This component is a compromise of sorts. It must be refactored in the future.
On the testing side things don't look any better; there were some tests for the slot manager that were only covering behaviors of the (now existing) TEM, and were moved to work directly against the TEM, which is essentially it.
Any person brave enough to glare at this PR is advised to take a peek at this branch to see how the new slot manager interacts with the TEM.

The TEM contains literally all logic that is specific to task executors. That was the entire thought process.
Should the SlotManager (SM) handle pending slots? Maybe. But I could also envision a worker allocator that queries the SM for required resources and allocates workers as necessary, fulfilling all current conditions that exist. That would then mean the SM only ever works with actually existing slots via a single code path (the registration of a TM / it's slots).
The SM does not necessarily need to know about pending slots; it already doesn't now it in case of external systems starting task executors anyway. The only difference in behavior is how many notifications the JM receives, which shouldn't be a problem due to the proposed stabilization protocol.


Investigate cats effect testing

Cats effect test allow to integrate with some of our Scalatest classes and could help simplify and improve our integration between Scalatest and Cats effect

Here is a list of thoughts:

The only time we use async in ScalaTest at the moment is the integration (kg) tests
These tests can’t really use the nice new assertions, because of the way that our test http client forces you to pass the assertion as an argument. I don’t like this and think it would be better to use the cats-effect-testing-scalatest style, however it is a high-cost low reward refactor IMO. Perhaps it could be something we do for future integration tests, but I suppose the question would be why we would do this rather than using MUnit if that’s what we prefer
Another complication is that the trait used brings in an implicit IORuntime, which conflicts with our imported version

Given these factors, I'm going to close this ticket. Perhaps in the future if things change it could be worth looking into again


Tabbing through value boxes

Grid tabbing is correct, but tabbing through the the feature info values is incorrect.
Also, when tabbing, highlight the value in the text box so user can easily overwrite the value with a new value. This doesn't happen for any text box.

Copy this approach


Sholl diagram needed

For compatibility with experimental data, a Sholl diagram is needed. Something like this:
    radial_distances = [array of distances from 0 to max radial distance]
    intersections = nrn.get_intersections(radial_distances, neurite_type=ttype)
    plt.plot(radial_distances, intersections)

@lidakanari @eleftherioszisis Any comments on this? I believe the possibility of implementing this has been discussed recently.

Yes, indeed. This have been discussed as a possible implementation in the future. However, the code is a bit more complicated than the one described by Alexander. Here is the corresponding paper: http://www.sciencedirect.com/science/article/pii/S0165027014000272
First of all, I would propose that we concentrate on the extraction of the data in the Sholl analysis function and we leave the plotting to the user (that will indeed be trivial).
Second, since Sholl analysis require the parsing of the tree for each circle in order to define the number of intersections, I would proposed an optimized approach: first define all the circles and then parse the tree once, calculating all intersections for all circles.

"...an optimized approach: first define all the circles and then parse the tree once, calculating all intersections for all circles."
Yes, it will be linear in the number of points, n. I suppose same algorithm is used for touch detections as well! If not, it could be as slow as n^2.

Hello @a1eko,
I have added this feature in #570, and would appreciate it if you gave it a shot, and see if it works for your use case.
Thanks.

#570 merged


Add robots.txt to prevent scraping for AI training

Add a robots.txt file to block web crawlers for AI training
https://www.cyberciti.biz/web-developer/block-openai-bard-bing-ai-crawler-bots-using-robots-txt-file/

[ ] create robots.txt
[ ] add to _quarto.yml project: resources:
[ ] explain in README.md instructions

Also take a look at this: https://darkvisitors.com/docs/robots-txt


Trim slashes from request uri before redirecting

Hi @JaZo,
Could you specify what problems you are bumping into in this case? This looks like an adjustment for a really specific situation and looks like something that might be adjustable with some server configuration.

Approved after internal review.

Thanks for the quick response!


Patch method does not use patch documents

The current implementation of PATCH is I think not completely in line with standards.  Specifically from RFC5789:

The PATCH method requests that a set of changes described in the request entity be applied to the resource identified by the Request-URI.  The set of changes is represented in a format called a "patch document"

RFC6902 specifies a format for JSON patch files.  They look like this:
[
     { "op": "test", "path": "/a/b/c", "value": "foo" },
     { "op": "remove", "path": "/a/b/c" },
     { "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] },
     { "op": "replace", "path": "/a/b/c", "value": 42 },
     { "op": "move", "from": "/a/b/c", "path": "/a/b/d" },
     { "op": "copy", "from": "/a/b/d", "path": "/a/b/e" }
]

I'm not a REST fundamentalist, and honestly think these "patch documents" are excessively verbose, but the current implementation is maybe not future-proof.  Thoughts?

Actually the patch verb is agnostic with respect to the patch format used. So I opted to use a simpler format. :smile: From the RFC:

it is expected that different patch document formats will be
appropriate for different types of resources and that no single
format will be appropriate for all types of resources.  Therefore,
there is no single default patch document format that implementations
are required to support.  Servers MUST ensure that a received patch
document is appropriate for the type of resource identified by the
Request-URI

You're right that we should be clearer about what's going on though. We should think of a name for the patch document format used in PostgREST and put it into an Accept-Patch header.
Another issue is whether to also support the full application/json-patch+json format. Does it provide features that you would like to use?

Actually no, I don't have any use for application/json-patch+json!  I was pleasantly surprised by the simplicity of the PATCH method you built in--it's the kind of method I've always built and felt guilty about.  Thanks for the response!

I was just going to try and start a discussion about this, myself. I see a lot of value in RFC 6902. My own use case involves syncing a relatively "fat" client-side store with PostgREST in the face of optimistic updates, undo/redo, network outages, constraint checking, back-end processes potentially updating the DB, and (to a lesser degree) multi-user access. Therefore my Flux+React frontend already manages its core data mutations as JSON patches on top of immutable data structures, and naturally I would love to use those same patches when communicating with the server. It would provide the client with greater insight into the state of the DB after each update.
More generally, I think the nicest feature of JSON patches that PostgREST may be missing is their transactional nature. They are in fact a way to write potentially complex transactions applying to a single table/view using a small set of primitives. I humbly submit that there's a place for that capability in PostgREST, and that it might as well be an RFC 6902 implementation since that's standard, well-understood and (at the very least) gaining acceptance.

Good point about being able to encode some types of transactions in an already documented format and about the operations lining up nicely with immutable data structures on the client. They seem like good reasons to support rfc6902.

@motiz88: :+1: I have similar reasoning.

Batching requests into a transaction is very important. I don't think we need the special patch format to do it though. What I have in mind is supporting HTTP/2 with the convention that if multiple requests come into a single HTTP/2 connection then they will be put into the same sql transaction. Seems more general purpose.
Thoughts?

What about non-http/2 clients?

@begriffs I believe that the http/2 connection will stay open basically indefinitely when used with websockets or any kind of periodic polling, even playing a video/audio stream from the same server, so I'm not sure if that would work. I'm not sure if multiplexing still happens when the connection has been upgraded to a websocket connection. I do know if socket.io is using XHR polling with a ping/pong behind NGINX that the connection will stay open. If you have your websocket server and postgrest behind the same front end I don't see how you can use the duration of the HTTP/2 connection for transactions.

Whether or not the solution involves HTTP/2, it seems like this particular issue is an instance of batching requests into a transaction. Let's move conversation over to #286.