Clarify the code a comment applies to:

The seq & 0xff does not depend of diff, so does not belong in the block that
defines diff.
There should be no logic changes in this patch.

Clarify the code


Makefile: don't reference deleted INSTALL file in apidoc target

Fixes build error if all targets are made.

Thanks for the PR. However I don't see any build error related to the INSTALL file. How can I reproduce it?

I have stumbled upon this by using a regular packaging tool (in this case, Gentoo's Portage). Packaging tools in general avoid calling autoreconf but call the actual steps individually, which increases reproducibility and highlights leftovers in automake configurations better.
I checked which commands Portage calls in this case, and it burns down to:
mkdir -p aux src/autogen
libtoolize --install --copy --force --automake
aclocal -I m4
autoconf --force
autoheader
automake --add-missing --copy --foreign --force-missing
./configure
make -j10

It seems autoreconf -i -f has some tricks to work around the issue, it seems to find INSTALL referenced in the target and decides to generate it with some dummy content. That's probably why it's not seen in the CI here.

Note that another option would be to add:
AUTOMAKE_OPTIONS = gnu

to Makefile.am. This enforces generation of all missing files required by the gnu strictness level of automake during the automake --add-missing step, so the INSTALL file with the usual dummy content will be generated even without autoreconf -i.

I'm reluctant to change the build options. I don't want to risk that what comes out doesn't satisfy policies for other platforms. Would it be ok with you if I commit the INSTALL file, as it was already the case some time ago?

I'm reluctant to change the build options. I don't want to risk that what comes out doesn't satisfy policies for other platforms. Would it be ok with you if I commit the INSTALL file, as it was already the case some time ago?

I think it's actually better to have an INSTALL file committed, even if it's the default.

Would it be ok with you if I commit the INSTALL file, as it was already the case some time ago?

Sure, that would of course also be fine (note the alternative would be to drop the reference to the file as done in this PR, i.e. not install the file).
In general, since the gnu style basically means an INSTALL file should be present and autoreconf -i just creates it, either having it committed (and changing nothing else) or dropping the reference to it from the makefile (as done in this PR) seems like the two least dangerous choices.

The problem is the --foreign option to the call to automake in your build script. This overrides the default which is --gnu.
Without this the automake call will create the INSTALL file for you.

The problem is the --foreign option to the call to automake in your build script. This overrides the default which is --gnu.

The option --foreign is added by the package management infrastructure on Gentoo Linux if files mandated by GNU strictness are missing:
https://gitweb.gentoo.org/repo/gentoo.git/tree/eclass/autotools.eclass?id=0e74da3a3d3fd1e90fb779e7ce3a1147ce3d5300#n455
I could of course carry a downstream patch creating the INSTALL file or explicitly add AUTOMAKE_OPTIONS = gnu to Makefile.am via a downstream patch, but it would be nicer to have this upstream.

Installing the INSTALL file doesn't really make sense anyway. So accepting this PR would make sense anyway I think.


negative coordinates

Several bounding box coordinates in region_descriptions.json file contain negative values for x and/or y. If I understand correctly, the x and y coordinates indicate the lower left corner with the origin at the lower left corner of the image, therefore should never be negative... I am using version 1.2 of the dataset.
I count 5,408,689 region descriptions (which, surprisingly, is more than 4,297,502 which is listed on the visual genome homepage), of which 5654 contain a negative coordinate. There are also cases like region 5456063, in which even y + height yields a negative.What should one do about these cases?
Some examples with large negative coordinates:
{'height': 25, 'x': 179, 'phrase': 'A cloud in the sky.', 'image_id': 2330845, 'region_id': 5851305, 'width': 55, 'y': -904}
{'height': 6, 'x': 216, 'phrase': 'A window on a building.', 'image_id': 2315874, 'region_id': 5455943, 'width': 8, 'y': -710}
{'height': 24, 'x': 181, 'phrase': 'A leaf on a stem.', 'image_id': 2315869, 'region_id': 5456063, 'width': 25, 'y': -871}
Some examples with small negative coordinates (more frequent):
{'height': 35, 'x': 480, 'phrase': 'glass window on the building', 'image_id': 2417220, 'region_id': 5503839, 'width': 10, 'y': -2}
{'x': 1, 'height': 70, 'phrase': 'white bowl behind plate', 'width': 277, 'image_id': 2417836, 'y': -1, 'region_id': 5514392}
{'x': -1, 'height': 327, 'phrase': 'white plate with food', 'width': 500, 'image_id': 2417836, 'y': 45, 'region_id': 5514399}
{'x': -1, 'height': 207, 'phrase': 'wooden blocks of tile covering floor', 'width': 498, 'image_id': 2417841, 'y': 291, 'region_id': 5514473}
{'x': 415, 'height': 327, 'phrase': 'telephone wire running up wall', 'width': 82, 'image_id': 2417841, 'y': -1, 'region_id': 5514478}

Ah yes, that was an artifact of the annotation script we used. Any out of bounds indices should be rounded to the nearest edge of the image.


update .travis.yml

update .travis.yml

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@4b15c16). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff            @@
##             master      #2   +/-   ##
========================================
  Coverage          ?   94.8%
========================================
  Files             ?       2
  Lines             ?     250
  Branches          ?       0
========================================
  Hits              ?     237
  Misses            ?      13
  Partials          ?       0

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 4b15c16...b018aa4. Read the comment docs.


Example

Could you please add an example query in your README ? Thanks

The query depends on what data source you're using. Is there any data source in particular that you'd like to use this with?


Look and feel of the website

This is a place to collect thoughts on the look and feel of the website. It's not something I want to bikeshed about right now, but I want a place to put my thoughts when I have them so they don't get forgotten.

I don't like how similar the titles are, particularly ## and ### level titles are almost identical and it looks funny. Perhaps the ## sections should have horizontal lines, possibly not going across the whole page, separating them to signify a new section?
The TLDR boxes look a little out of place.
The inline code feature is really cool, but I would prefer if it looked more like an actual terminal, we could use a non-monospace font that was designed for code like Input, or a more traditional but still readable monospace font like Fira Code or JetBrains Mono.

I'm no expert at CSS but if you feel like it, most of it can be changed in jtd.css
Just keep in mind that the end goal is to put all of this in the Julia blog, so maybe we should actually copy their style and not be disappointed

Okay I thought I made it better but it is undoubtedly worse 🤣
Weird thing is, it builds locally on my computer (on yours too?) but the CSS doesn't seem to load when CI does it. @tlienart any idea what could cause that?

Lol the website broke for me

Yup, for me too. But does it also build locally for you? I think it's just an issue of the CSS not loading for some reason. It's also the case in the HTML page created in __site, but apparently Franklin.serve() doesn't see that

Reverting it now but it was very weird. For future reference, PR #27 broke it

My second trial in PR #30 broke it as well. It seems linked to the stylesheets being referenced as /css/style.css instead of /ModernJuliaWorkflows/css/style.css in the final HTML. For some reason that does not disturb the Franklin viewer but it means the styling is gone once we deploy

Weirdly enough it doesn't happen with the JLD style, only with Hyde

Copied your branch style2 to a separate repo, only changed the prepath in config.md which wasn't set, and it seems to work fine for me:
https://tlienart.github.io/test-mjw/pages/writing/
(base repo: https://github.com/tlienart/test-mjw)
Note: while looking at the build, it seems highlight.js is not happy with finding a code block with language "nothing"; that actually seems like a Franklin bug introduced in the REPL stuff added recently.

Sorry, I should have diagnosed it myself, I was this close 🤏 thanks for the help

Maybe it would make sense to add a comment to the readme about configuring prepath? It's literally the only thing missing for it to deploy automatically to github

In FranklinTemplates you mean? Yeah fair enough


GitPop instead of Useful Forks

Description
https://github.com/AndreMiras/gitpop3 or https://github.com/AndreMiras/gitpop2 is much more lightweight than https://github.com/useful-forks/useful-forks.github.io
Screenshot
No response
Example URL
https://github.com/useful-forks/useful-forks.github.io

Refer to https://github.com/refined-github/refined-github/issues/3638#issuecomment-711492714


I cant get this to work. Help wanted.

I have two components in react native. I am trying to fire an event from one and trying to catch the event in the other event. But it does not work. Please help.
component1.js
var EventEmitter2 = require('eventemitter2').EventEmitter2;
var server = new EventEmitter2();
server.emit('STORE_SELECTED', selectedStore);

component2.js
var EventEmitter2 = require('eventemitter2').EventEmitter2;
var listener = new EventEmitter2();
class component2 extends Component {
  componentWillMount() {
    listener.on('STORE_SELECTED', (value) => {
      console.log('event store selected', value);
    });
  }

  componentWillUnmount() {
    listener.removeListener('STORE_SELECTED');
  }
}

Can you please point me out what is wrong? There is no error message showing up but the console.log in the listener should get printed?
It would be better if you can provide me with a proper working code sample.
Thanks.

Anybody having problem like me, can use this library instead. It is a wrapper over event emitter2 but with a way easier and understandable implementation.

You're creating two separate isntances of EventEmitter2, you should pass the instance of the event emitter in the context or as a prop.

My whole point of using events was that i could pass and use some params between 2 totally unrelated components . If i had to use context and/or props why should i be using event emitter i could have directly passed my param in the context . Why would i be passing your event emitter instance in context and then using it for accessing params. I think you should be considering this as a feature request or something to implement something like this , where you just require the package in any file within the app and emit and listen to events globally. I guess thats the whole point of events. To emit event from any page and to listen to event and reacting on it on some other page. Events instance should be global by default.


SymbolicUtils v1 upgrade

SymbolicUtils v1 is a breaking release. Please follow https://github.com/JuliaSymbolics/SymbolicUtils.jl/blob/master/page/upgrade.md to upgrade.

https://github.com/SciML/StructuralIdentifiability.jl/blob/f872f19ebdf6d95d8b5beb946127281c93833e4b/src/util.jl#L284-L309
Not having an explicit compat for Symbolics or SymbolicUtils but depend on its internals isn't a good idea. StructuralIdentifiability.jl will be broken if MTK make a new release.
As a side note
ModelingToolkit.Symbolics.operation(e) in [+, -, *]

allocates a vector every time. You probably want (+, -, *).


Add op-build-pull-request suite

Soon, op-test-framework will appear as a submodule in op-build,
and CI jobs for op-build will look at the version of
op-test that the submodule points at, and run the
'op-build-pull-request' suite specified there.
The idea being that this connects "this op-build commit passes this
op-test commit's suite X"
Signed-off-by: Stewart Smith<EMAIL_ADDRESS>

The idea of this commit is to not construct something necessarily perfect, but to mirror what is currently being run in the IBM CI.

@debmc's change does the same thing I believe (https://github.com/open-power/op-test-framework/commit/351df4773e7525983190a7198bccd8db9418f458)
Which due to the magic of the pull request page order, I merged first :)

same thing

I believe the thoughts on the op-build-pull-request is to contain a set of tests that op-build would run (which may diverge and may be more comprehensive ?).
The 351df47 is targeted for other CI's (like hostboot CI) where they can maybe minimize or modify the content of those suites to speed things up and run maybe like the op-build-pull-request more periodically rather than for every commit, etc.
But either way, we were in the prototyping phases, so I'm good with either approach or a new one :)

Closing, if anything further needed we can address in future.


More cosmetic improvements

@elibarzilay,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


[Keep-Alive] Server pinging

As part of keep-alive, we want the client to automatically consider a connection terminated if the server hasn't sent anything in a while. In order for that to work, the server needs to send Ping messages frequently. However, we only want to do this for the WebSockets and Server-Sent Events transports. For Long Polling, it would disrupt the "long poll" by ending it prematurely and is unnecessary since the transport already supports a "reconnection" mechanic for issues inherent to long polling.
Related: #1157

Additional Notes:

The server will only ping if a message has not already been sent within the ping window. So a connection that is already sending data at the appropriate intervals will not require any ping frames.


Merge strategy

This is pull request #218 reopened. The PR has been closed unmerged for two years now, but there is no work on ticket 104 either. In order to move this forward a little I have rebased the original changes on master. It only implements part of ticket 104, namely "Fast Forward Only", "Merge If Necessary" and "Always Merge". I would request to merge that much already, even if it doesn't fully cover ticket 104.

Looks good and a reasonable request.


[TREE] Interaction constraints

I would like to incorporate interaction constraints functionality in tree building.
It currently only supports the API in R and in the exact greedy algorithm on multi-core.
Please see #3135 for more information.
First time trying to contribute so let me know if there are any issues or you require more information.

Thanks.  I haven't found other papers mentioning interaction constraints.  But I only did a quick search on google as I don't have access to academic archives.

Codecov Report

Merging #3136 into master will increase coverage by 0.1%.
The diff coverage is 9.52%.

@@             Coverage Diff             @@
##             master    #3136     +/-   ##
===========================================
+ Coverage     45.27%   45.37%   +0.1%
  Complexity      228      228
===========================================
  Files           166      166
  Lines         12776    13035    +259
  Branches        466      466
===========================================
+ Hits           5784     5915    +131
- Misses         6800     6928    +128
  Partials        192      192

Impacted Files
Coverage Δ
Complexity Δ

include/xgboost/tree_model.h
33.11% <0%> (-0.66%)
0 <0> (ø)

src/tree/updater_colmaker.cc
1.31% <0%> (-0.12%)
0 <0> (ø)

src/tree/param.h
59.93% <100%> (+0.47%)
0 <0> (ø)
:arrow_down:

src/gbm/gblinear_model.h
33.33% <0%> (-30.96%)
0% <0%> (ø)

src/linear/coordinate_common.h
33.13% <0%> (-29.66%)
0% <0%> (ø)

src/linear/updater_shotgun.cc
93.5% <0%> (-6.5%)
0% <0%> (ø)

src/predictor/cpu_predictor.cc
68.2% <0%> (-0.52%)
0% <0%> (ø)

src/objective/multiclass_obj.cc
16.25% <0%> (-0.42%)
0% <0%> (ø)

src/c_api/c_api.cc
18.65% <0%> (-0.21%)
0% <0%> (ø)

... and 27 more

Continue to review full report at Codecov.

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

I am hesitant to merge this PR because it adds a lot of new logic to the updater itself that's orthogonal to the tree algorithm. The updater should ideally consist mainly of algorithm.
When you get a chance, can you look at #3335? It creates a nice abstraction called SplitEvaluator. Your use case may be accommodated by creating a SplitEvaluator that assigns infinite penalty on splits that violate feature interaction constraints.

Sure. I just had a quick look at #3335 and it does seem more elegant to separate out the constraints.

I'll be working with the author of #3335 to make a room for feature interaction constraints. I'll keep you updated. Thanks!

Great, I will subscribe to that PR to as well.  Thank you.


Fixes to the encounter module.

Ensure all encounters started by the encounter module are ended.
Prevent the encounter module from starting a new encounter in the middle of another encounter from a different module.

The extra verbose testing output helped to debug an issue but I meant to turn it off. I'll comment out those settings so they are easy to re-enable in the future if needed.


Buttons not centered

Hi folks,
As you could see in the SS below that the button isn't centered. Need a fix for it.
Thanks.

Hi nathancarter209
I m willing to help your.
but first can your tell me which button you want to be centered
which button you need to centered

Hi nathancarter209
I m willing to help your.
but first can your tell me which button you want to be centred
which button you need to centered

sorry for the late response I wanted GitHub, SoundCloud and twitter button to be centred


Datastore improvements

Refactor the datastore, so only unique or "non-default" users are saved, and users that only inherit the default group are not.
Will require removing support for a custom default group.

Added in 6aea3b53f38ac6b53a808a905af3c3435752f141


BUG: levy_stable _fitstart fixes

Reference issue

See #14470
What does this implement/fix?

Adds new tests for levy_stable._fitstart(), and fixes bugs so the tests now pass.

A data sample and its mirror image (negative values) now return the same estimate of alpha.
A data sample and its mirror image now return mirror image estimates of the location parameter (delta).
A data sample with a negative location and a shifted sample with a slightly different negative location now return shifted estimates of the location parameter.

Additional information

There is still something flaky about the calculation of the location parameter (delta) when alpha==1, as it tries to calculate tan(pi/2) -> infinity.  In practice, it will be very rare that alpha==1. when estimated from data samples.

Note that there is an ongoing overhaul of the levy_stable code at https://github.com/scipy/scipy/pull/9523.
This fix is partially correct, but is handled in a somewhat incorrect way.
Note that McCulloch's paper notes how to handle negative values in their interpolations.

Table 1:

Table 2:

Table 3:

Table 4:

Table 5:

Table 6:

Table 7:

Scipy's code is simply missing the negative beta case in psi_1. Look at
# table III - alpha = psi_1(nu_alpha, nu_beta)
# table IV - beta = psi_2(nu_alpha, nu_beta)
# Table V - nu_c = psi_3(alpha, beta)
# Table VII - nu_zeta = psi_5(alpha, beta)

https://github.com/scipy/scipy/blob/88d4d946a22b3bd933884ec236bfba9526809ec9/scipy/stats/_continuous_distns.py#L5092-L5099
Really, I think you should add psi_1_1 similar to the existing definition of psi_2_1 and then use it in place of psi_1 at
https://github.com/scipy/scipy/blob/88d4d946a22b3bd933884ec236bfba9526809ec9/scipy/stats/_continuous_distns.py#L5111-L5116

I think you are also correct that the clipping of delta to [eps, infty) is incorrect here:
https://github.com/scipy/scipy/blob/88d4d946a22b3bd933884ec236bfba9526809ec9/scipy/stats/_continuous_distns.py#L5117-L5121
Of course, the location of the distribution can be negative and I see no reason why the code does this unless negative delta is handled elsewhere and I missed it while skimming it.

There is still something flaky about the calculation of the location parameter (delta) when alpha==1, as it tries to calculate tan(pi/2) -> infinity.

This is an unfortunate reality of the distribution itself in most common parameterizations (e.g. Zolotarev's / Nolan's S0). The mode of the distribution inherently diverges to infinity when delta is finite and alpha is close to (but not exactly) 1. McCulloch's paper has a few bits where this issue is mentioned, e.g.

Note: "if alpha is insignificantly different from unity, the true value of delta could lie anywhere".

@lutefiskhotdish I looked into this further and here are my suggested changes to the fix itself. I'm trying to keep the changes as minimal as reasonably possible so as to minimize the merging difficulties into the levy_stable overhaul in https://github.com/scipy/scipy/pull/9523.
diff --git a/scipy/stats/_continuous_distns.py b/scipy/stats/_continuous_distns.py
index 7d779e22a..070738737 100644
--- a/scipy/stats/_continuous_distns.py
+++ b/scipy/stats/_continuous_distns.py
@@ -5090,6 +5090,7 @@ class levy_stable_gen(rv_continuous):
             [0, -0.061, -0.279, -0.659, -1.198]]

         psi_1 = interpolate.interp2d(nu_beta_range, nu_alpha_range, alpha_table, kind='linear')
+        psi_1_1 = lambda nu_beta, nu_alpha: psi_1(nu_beta, nu_alpha) if nu_beta > 0 else psi_1(-nu_beta, nu_alpha)
         psi_2 = interpolate.interp2d(nu_beta_range, nu_alpha_range, beta_table, kind='linear')
         psi_2_1 = lambda nu_beta, nu_alpha: psi_2(nu_beta, nu_alpha) if nu_beta > 0 else -psi_2(-nu_beta, nu_alpha)

@@ -5109,14 +5110,14 @@ class levy_stable_gen(rv_continuous):
         nu_beta = (p95 + p05 - 2*p50)/(p95 - p05)

         if nu_alpha >= 2.439:
-            alpha = np.clip(psi_1(abs(nu_beta), nu_alpha)[0], np.finfo(float).eps, 2.)
+            alpha = np.clip(psi_1_1(nu_beta, nu_alpha)[0], np.finfo(float).eps, 2.)
             beta = np.clip(psi_2_1(nu_beta, nu_alpha)[0], -1., 1.)
         else:
             alpha = 2.0
             beta = np.sign(nu_beta)
         c = (p75 - p25) / phi_3_1(beta, alpha)[0]
         zeta = p50 + c*phi_5_1(beta, alpha)[0]
-        delta = zeta-beta*c*np.tan(np.pi*alpha/2.) if alpha == 1. else zeta
+        delta = zeta-beta*c*np.tan(np.pi*alpha/2.) if alpha != 1. else zeta

         return (alpha, beta, delta, c)

As mentioned in https://github.com/scipy/scipy/pull/14476#discussion_r677159863, note that the previous code mixes the cases for the delta estimate.
@lutefiskhotdish With the above patch, your tests still pass
$ python runtests.py -v -m full -t scipy/stats/tests/test_levy_stable_fitstart.py
Build OK (0:06:09.884302 elapsed)
================================================ test session starts =================================================
platform linux -- Python 3.9.6, pytest-6.2.4, py-1.10.0, pluggy-0.13.1 -- /usr/bin/python3.9
cachedir: .pytest_cache
rootdir: /home/ryan/PycharmProjects/scipy_stable/scipy, configfile: pytest.ini
collected 3 items

scipy/stats/tests/test_levy_stable_fitstart.py::TestLevy_stable::test_neg_beta PASSED                          [ 33%]
scipy/stats/tests/test_levy_stable_fitstart.py::TestLevy_stable::test_neg_delta PASSED                         [ 66%]
scipy/stats/tests/test_levy_stable_fitstart.py::TestLevy_stable::test_delta_shift PASSED                       [100%]

================================================= 3 passed in 0.19s ==================================================

and the estimates are much more accurate
>>> from scipy.stats import levy_stable
>>>
>>> SIZE = 5 * 10 ** 7
>>> rvs = levy_stable.rvs(alpha=1.75, beta=0.5, loc=2.0, scale=5.0, size=SIZE)
>>> print(levy_stable._fitstart(rvs))
(1.7533970685117124, 0.554005532981971, 2.058881157647261, 4.990065245947207)
>>>
>>> rvs = levy_stable.rvs(alpha=1.75, beta=-0.5, loc=2.0, scale=5.0, size=SIZE)
>>> print(levy_stable._fitstart(rvs))
(1.7535113451206517, -0.5563912462386369, 1.937892365646908, 4.989910501051077)
>>>
>>> rvs = levy_stable.rvs(alpha=1.75, beta=0.5, loc=-2.0, scale=5.0, size=SIZE)
>>> print(levy_stable._fitstart(rvs))
(1.7530215468936947, 0.5526121180489312, -1.9417311451832033, 4.989026437213537)
>>>
>>> rvs = levy_stable.rvs(alpha=1.75, beta=-0.5, loc=-2.0, scale=5.0, size=SIZE)
>>> print(levy_stable._fitstart(rvs))
(1.7529422179586065, -0.5530799346384316, -2.05956703533164, 4.989271645373516)

These tests estimate loc ~ 0.9 in your code and scipy's current implementation.

@lutefiskhotdish You should also move your tests near the existing tests for levy_stable._fitstart() rather than making a completely new file. Somewhere around here:
https://github.com/scipy/scipy/blob/affdc4d54142cdcfedcfa06e1185c2ed0441c36c/scipy/stats/tests/test_distributions.py#L3028-L3052
perhaps with more specific names like test_fit_neg_beta(), test_fit_neg_delta(), and test_fit_delta_shift().
The tests in that location also set random seeds with np.random.seed() rather than setting rv_continuous.random_state directly, so you'll probably have to change that to match.
I also think you might want to use numpy.testing.assert_almost_equal() for comparing scalars even if assert_allclose() technically works here.

@ragibson Thanks.  I think I've taken your advice on board in the latest commits but let me know if I've missed anything or if you have additional suggestsions.

@lutefiskhotdish This looks mostly good to me. The CI linter does complain about a few formatting items:
scipy/stats/_continuous_distns.py:5093:9: E731 do not assign a lambda expression, use a def
scipy/stats/_continuous_distns.py:5093:80: E501 line too long (114 > 79 characters)
scipy/stats/_continuous_distns.py:5113:80: E501 line too long (83 > 79 characters)
scipy/stats/tests/test_distributions.py:3052:1: W293 blank line contains whitespace
scipy/stats/tests/test_distributions.py:3064:1: W293 blank line contains whitespace
scipy/stats/tests/test_distributions.py:3075:1: W293 blank line contains whitespace

After this, it looks like all the CI tests will pass, so you might have to go ahead and format the legacy code in _fitstart() according to PEP8 (c.f. https://github.com/scipy/scipy/pull/9523/files/34b9f6f14f3fe6c74200c8074b311b704f31b99f#r670516701).
I wonder if the scipy maintainers would be okay with disabling the lint check for those few lines in _continuous_distns.py just to make it easier to resolve merge conflicts with https://github.com/scipy/scipy/pull/9523 (where we have to resolve these PEP8 violations anyway). I suspect the answer is "no", but I admit I don't know exactly how they would handle this situation.

@ragibson I think the two commits I've just done make the bug fixes PEP8 compliant.  Am I to understand I should fix PEP8 violations in legacy code before BUG fixes can be taken on board?

@ragibson I think the two commits I've just done make the bug fixes PEP8 compliant. Am I to understand I should fix PEP8 violations in legacy code before BUG fixes can be taken onboard?

@lutefiskhotdish Typically you try to get the CI tests to pass before a PR is merged. Scipy has a tool that checks the diff for PEP8 violations, so editing legacy code (that is not PEP8 compliant) means you inherit those formatting errors from the perspective of the CI tests.
I see a few remaining PEP8 violations from your edits:
scipy/stats/_continuous_distns.py:5094:40: W291 trailing whitespace
scipy/stats/_continuous_distns.py:5095:80: E501 line too long (89 > 79 characters)
scipy/stats/_continuous_distns.py:5116:59: W291 trailing whitespace

For reference, this is from the CI failure at https://dev.azure.com/scipy-org/SciPy/_build/results?buildId=13326&view=logs&j=fdd89725-f657-5341-7d77-3c5c44c4f5b6&t=325fc03e-e0b9-5339-adaf-099a49a14600 and you can run similar checks locally with e.g.
$ python runtests.py -v --pep8

which gives me the same three warnings. There are some details on setting up your local environment correctly for this, but if you're interested, see https://scipy.github.io/devdocs/dev/contributor/runtests.html and https://scipy.github.io/devdocs/dev/contributor/pep8.html.

@ragibson Showing successful checks now so that must be progress, and now I know how to follow the trail of obscure links to find failing lint output....

@ragibson Was this one close enough to try to resolve the merge conflicts?

@ragibson Was this one close enough to try to resolve the merge conflicts?

Yes, the edits to fitstart() in scipy/stats/_continuous_distns.py here should map directly to
https://github.com/scipy/scipy/blob/a57451972d537b8e18a2f3badb482b7dc52ac4ef/scipy/stats/_levy_stable/__init__.py#L488-L629
and the edits in scipy/stats/tests/test_distributions.py can still be placed right after levy_stable's test_fit()
https://github.com/scipy/scipy/blob/7818647e1d0c7c5a29bb975919c43c4687c34af3/scipy/stats/tests/test_distributions.py#L3293-L3307

Hmmm. Many of the changes in this PR were already present. You can compare by going back to this commit and comparing against main. Maybe PEP8 made you make some of these changes when you moved to a new file?
I can make fixes if need be, but I'll let @steppi merge this one if it looks good.

I can make fixes if need be, but I'll let @steppi merge this one if it looks good.

Thanks. I should have time to take a look tomorrow.

Thanks @lutefiskhotdish and reviewers!


Can't use on header element

I used the sticky attribute on a <header> element but it won't stick.
If i use it on the inner <div> element it will stick but without the wrapping header, that way I lose the header element style, so everything looks different. any idea why this is happening and how can it be solved?

Just ran into the same issue. It appears because sticky makes calculations on an element's offset from the top of the page.
I shrunk my header and moved it down further to force an offset.

I see... Would you mind adding an example?
Thanks!

header {
 margin-top:1px
}

@chris480 Adding this causes the header to push the entire body downwards at the start of the scroll - leaving a white blank space when i scroll....
maybe is it because my header is transparent?

Ok, so i gave it a different background-color when it sticks and now its not white


Filip/publish scripts

The tests for set membership are ignored because of the error on CI, which I'm not getting locally.


Ability to download Youtube Membership posts

I have noticed that this program does not download YouTube membership posts.
I dont know if this is feasible but I believe this feature should be added.

I would implement it, but I have no way to test it as I have no membership to any channel. Unless someone is willing to help show the page response (json format) for the membership posts (when you scroll down the page and additional posts load) and the html page as it is first loaded for the membership posts (there must be at least one). I would also need someone to test the code afterwards. I could provide further details on how to do that if anyone is willing.


[backport] Fix "Revert test decorators order"

Backport of #5498 by @toslunar

[automatic post] Jenkins, test this please.

Jenkins CI test (for commit 6a1b3df2f6d3d6629fcf3a886ac3d41245c537e9, target branch v9) failed with status FAILURE.

Test failure should be fixed in https://github.com/cupy/cupy/pull/5563

pfnCI, test this please.

Jenkins CI test (for commit 6a1b3df2f6d3d6629fcf3a886ac3d41245c537e9, target branch v9) succeeded!


Do derivative themes need the ability to control sidebar/page widths?

I want the answer to be: No, because those (1) introduce a lot of complexity how this theme should handle responsiveness and (2) would make it accessible to end-users who will do things like 100% width on pages (see https://virtualenv.pypa.io/en/latest/) significantly hurting accessibility.
If we have any way to do this without making it easily-accessible to end users (i.e. not via theme.conf's options or via conf.py or whatever), I'm less opposed but this still means more complexity though.

One thing I'll note is that the current scaffold has 2 "content widths" -- depending on how wide the page is. Part of this is for:

making it easier for documentation authors to know how the page will wrap for their readers + less re-rendering when user resize the page.
having only one content width means that around each break-point there's a lot of seemingly unused space.

Having 2 content breakpoints is in the middle of "just use the available space after we hit a breakpoint" that mkdocs-material does vs "just keep the available space empty" that Furo does. I quite like this approach, but it does mean that we have more breakpoints. :)
Obviously, when the page is not wide enough for the smallest content width, the page's width is 100% and not over that.

Well, I take the answer is no. :)


Update immutability binding in tour

fixes https://github.com/dotnet/docs/issues/19916

@cartermp
Since the previous release, we've added a CI build for samples. It detects when source cod isn't part of a project that gets built. Can you add as fsproj in the right folder so that these snippets get built? Then, it's ready to merge.

@BillWagner I finished this up!


Update index.html

Added one more open source organization name.

Bro @karansingh1820 , It's already present in the website (below outreachy). You can add a new one 👍.

Ok. Give me some time, I will add another new one.

plz check it i added new one one with name(The PostgreSQL Global Development Group).

plz check it i added new one one with name(The PostgreSQL Global Development Group).

Yes I will merge it in few minutes, See to it that you have remove previous one (eclipse foundation).

Ok


PhpStorm can you force https over http link of GitHub on the Copy GitHub link

Hi @ben-gibson,
First of all from one developer to the other, thank you very much for this plugin it's a life saver.
I would like this simple feature for one simple reason, when I as team lead review the code from developers I often use blob shortcut from GitHub repository to show them where they can look for example.

So when I did a copy paste on the file in GitHub (3 dots aside) and copied the lines as permalink I realized the only difference between native GitHub in browser blob link and yours is in http/https link.

With GitHub I got: https://github.com/xyz/xyz-api/blob/1eba0ec73dc363380d889a08ee1dd66c34f84a6c/tests/Http/Controllers/V3/UserControllerTest.php#L22-L53
With Your Plugin inside PhpStorm by clicking on Copy GitHub link I get: http://github.com/xyz/xyz-api/blob/1eba0ec73dc363380d889a08ee1dd66c34f84a6c/tests/Http/Controllers/V3/UserControllerTest.php#L22-L53
Would you be so kind to check this out.
FYI my origin is set with ssh
mbaric@i7 /var/www/html/api (feature/TECH-3333) $ git remote -v
origin  git@github.com:xyz/api.git (fetch)
origin  git@github.com:xyz/api.git (push)

Perhaps there is some other tip and trick to make this happen. Looking forward to your response. Cheers.

You can force HTTPs from the plugin settings in Preferences -> Other Settings -> GitLink. It would be better if that was the default behaviour though, with the option to opt-out of HTTPS if required.

Hi @ben-gibson . I see it inside the Windows machine, will check it also inside the Linux machine, but it's working, thank you for your help.
And yes I agree with you that it should by default FORCE Https, but it's working that is the most important. Cheers thanks for your help.


react-native init hangs over time

It seems no one has ever solved this one yet so I reopen the issue. It hangs over time with no response at all. More people still encountering the problem. Adding --verbose as stated here https://github.com/facebook/react-native/issues/2806 shows now some log. I'm having this issue
events.js:141 - Unhandled 'error' event, Error: spawn npm ENOENT
Can some explain what's happening? Thanks.

i got the same problem , could you have something to resolve it ?

add react-native init ProjectName --verbose option

Tried today with react-native 0.17.  have a lot of these in the console after typing something like
react-native init MyProject --verbose :
(...)
npm info retry will retry, error on last attempt: Error: connect ETIMEDOUT <IP_ADDRESS>:443
(...)

Probably related to https://github.com/npm/npm/issues/9862.

Hi there! This issue is being closed because it has been inactive for a while.
But don't worry, it will live on with ProductPains! Check out its new home: https://productpains.com/post/react-native/react-native-init-hangs-over-time
ProductPains helps the community prioritize the most important issues thanks to its voting feature.
It is easy to use - just login with GitHub.
Also, if this issue is a bug, please consider sending a PR with a fix.
We're a small team and rely on the community for bug fixes of issues that don't affect fb apps.


New Landscape Entry - Valtrix Systems

Project Name
Valtrix Systems
Description
Valtrix Systems - an EDA company from Bangalore, India, is into the development of CPU and SoC design verification tools. STING, the flagship product of Valtrix, is a commercially supported design verification tool for RISC-V used by several CPU and SoC vendors for ensuring functional correctness and architectural compliance. The tool can be configured to generate portable bare-metal programs containing self-checking architecturally-correct test stimulus, which can then be enabled on simulation, FPGA prototypes, emulation or silicon.
Homepage URL
https://www.valtrix.in
Repository URL
Proprietary
Organization hosting or owning the project
Valtrix Systems
Evidence of RISC-V ecosystem support
https://www.prnewswire.com/in/news-releases/valtrix-and-codasip-cooperate-on-verification-of-risc-v-systems-822872272.html
https://www.prnewswire.com/in/news-releases/valtrix-broadens-support-for-risc-v-design-verification-with-latest-updates-to-sting-842621057.html
https://apnews.com/1c7def0817b4d4979641d8dd5b896fbf
https://www.ryt9.com/en/anpi/250484
https://www.valtrix.in/assets/pdf/Verifying_PULPino_RISCY_Core_for_a_Google_Accelerator_with_STING.pdf
Logo

Category
Design Tools

@bprestonlf for this we need a new Design Verification Tools group. Let see how we can reorganize the Landscape to accommodate new groups before merging this.

Will place in Design Tools + Compilers for now. Further refinement of categories/placement can be revisited later.
@andyjohnstonmoore - Please provide your +1 and I will merge in.
Thanks!

+1


Allow pinning of Jenkins version

Hi Geerlingguy,
A while back I saw the issue #38. This seems to have been closed now, but without resolution as far as I can tell. I'm planning on using this role to maintain a production instance of Jenkins, and as such I need to be able to pin the Jenkins version, and potentially down the line, also plugin versions.
I forked your project to see if there was an easy way to do this. And as it turns out we can do pinning of Jenkins version without changing any of the core behavior of your role. Would you be interested in pulling this in? And if so, how would you feel about an upcoming diff addressing my other problem i.e. optionally pinning versions of plugins?

This looks reasonable to me, and is a very nice feature addition for those who like not being surprised by Jenkins upgrades :)

Hi, would it be possible to merge this pull request ?

This would be useful for closing #70. Seems Jenkins v2.15 is not playing nice with plugins.

There are a few small changes I'd like to see before merging; also, there are now some conflicts. I won't have time to fix those in a new branch in the next few days, but if someone can, I'd be willing to merge.

Sorry for the delay on this, I've been on a prolonged vacation and forgot about this pull request while I was away.
I need to refresh my memory and look at the conflicts but I'm lacking time for this unfortunately. I'll try to look at this during this week but if anyone else wants to solve the merge + issues that Geerlingguy pointed out, feel free to do so.

I'm going to start working on this, but it turns out I've never actually tried to work against someone elses PR in GitHub. On Gerrit it's pretty obvious how to commit to another PR. I'll figure it out though, and hopefully something will be here in the next hour or so after I drink some coffee.

Ah looks like I can't "work on" an existing PR (that I didn't open) like I can with Gerrit, so please see the continued work in #75

Thanks soooo much for your work on this everyone! Closing with the fixes @leifmadsen incorporated in #75!


isDirectoryContaining fails for expected patterns

Let's assume that there is a directory C:\Temp\junit12854012982575283912 which contains a file test-6e672c4ba0be4f0886d434125a0d062c.txt.
The assertion of assertThat(dir).isDirectoryContaining("glob:test-[0-9a-f]*.txt") and assertThat(dir).isDirectoryContaining("regex:test-[0-9a-f]+\\.txt") fails although it is not expected do so.
The error messages is confusing and does not give a hint why this pattern would be wrong.
Expecting directory:
  C:\Temp\junit12854012982575283912\out
to contain at least one file matching the 'glob:test-[0-9a-f]*.txt' pattern but there was none.
The directory content was:
  [test-6e672c4ba0be4f0886d434125a0d062c.txt]

Using the same with a PathMatcher succeeds.
assertThat(dir.getFileSystem().getPathMatcher("glob:test-[0-9a-f]*.txt").matches(Path.of("test-6e672c4ba0be4f0886d434125a0d062c.txt"))).isTrue();
assertThat(dir.getFileSystem().getPathMatcher("regex:test-[0-9a-f]+\\.txt").matches(Path.of("test-6e672c4ba0be4f0886d434125a0d062c.txt"))).isTrue();

There is also a difference between using Path instead of File. If the directory variable is of type Path, the error outputs the absolute paths of the file in the directory. That gives a hint about what might be wrong.
Expecting directory:
  C:\Temp\junit12854012982575283912\out
to contain at least one file matching the 'glob:test-[0-9a-f]*.txt' pattern but there was none.
The directory content was:
  [C:\Temp\junit12854012982575283912\out\test-6e672c4ba0be4f0886d434125a0d062c.txt]

isDirectoryContaining tests against the absolute path of the files although it should test against their relative paths. The patterns from my example will of course never match against the absolute path! Using "glob:**test-[0-9a-f]*.txt" works but the expectation when using the API is that the paths are relative. If it is really the intention to test against the absolute path, the docs should be very clear about this.
p.s.
This example in the javadoc .isDirectoryContaining("glob:**.{ext,bin") is missing a closing "}". It should be .isDirectoryContaining("glob:**.{ext,bin}").

Thanks for reporting this, we will discuss it with the team and get back to you.

My example with PathMatcher should show what IMHO would be expected when using isDirectoryContaining. Right now you have to adjust the patterns to either include the parent directory or prepend it with **/. Both leave questions for others reading the test, are counterintuitive, and "bloat" the test code. The use of glob:**.txt for example would only make sense when using isDirectoryRecursivelyContaining, which would also check files in sub-directories. isDirectoryContaining is not expected to check them as it would only find direct child elements of the directory - so why include ** when there are not directory boundaries to cross?
Furthermore, if you change the pattern and prepend ** without a trailing slash to make the assertion pass (e. g. glob:**test-[0-9a-f]*.txt) and the directory includes a file "anothertest-123asd.txt" instead of "test-123asd.txt", the assertion will falsely succeed.

Great, thank you.

As per internal discussion, all the error messages should display the filenames only.
Also, with #2338 we will make sure that isDirectoryRecursivelyContaining(String) follows the same behavior, but this will be delivered earliest in 3.22.0.

@sephiroth-j we will postpone this change to 3.22.0 as we would like to think a bit more about the behavior for both isDirectoryContaining(String) and isDirectoryRecursivelyContaining(String).


Refresh website?

It looks like the latest changes from say here: https://github.com/containerd/containerd/commit/16f04383ae741790c7e951e04618fc636bd91584
Aren't being picked up when I visit containerd.io
cc: @crosbymichael

I'm unfamiliar with the publication process.
cc @chanezon

friendly ping @chanezon, is there another publish step outside of just being part of gh-pages?

@caniszczyk someone with admin access on the repo must follow the steps at https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/ to publish it as GH pages? @crosbymichael ? Then https://help.github.com/articles/using-a-custom-domain-with-github-pages/ I will do the DNS part.

@caniszczyk now that the LF has control over containerd.io DNS, maybe you should setup Github Pages for the project and point DNS to it so that it autopublishes automatically from the source repo. It seems right now DNS still points to my CloudFront and container based deployment.

We can do netlify, I just need to reach out and set things up with the
maintainers
On Fri, Dec 1, 2017 at 8:36 PM Patrick Chanezon<EMAIL_ADDRESS>wrote:

@caniszczyk https://github.com/caniszczyk now that the LF has control
over containerd.io DNS, maybe you should setup Github Pages for the
project and point DNS to it so that it autopublishes automatically from the
source repo. It seems right now DNS still points to my CloudFront and
container based deployment.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/containerd/containerd/issues/1218#issuecomment-348661780,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAD5IZ3EEBgkSbMVznpfXMqMNU-5URi_ks5s8LemgaJpZM4OdOK5
.

--
Cheers,
Chris Aniszczyk
http://aniszczyk.org
+1<PHONE_NUMBER>

@caniszczyk Could we use something that the maintainers can easily update? In this case, we didn't have the ability to update with the 1.0 release. If we go with something like netlify, will there be someone in charge of managing content and updates?

@stevvooe my understanding is that once netlify is in place and connected to containerd.io dns, you just merge PRs in containerd codebase under /docs and the website will be refreshed. But @caniszczyk or someone in LF infra team need to set that up.

This is done


github: init Update flake.lock action

So that we stay up-to-date, even inside a release branch.
This will create a PR weekly (or on demand) that proposes the result of a nix flake update --commit-lock-file for the EPNix repository, on each release branch.

Note for myself: after this PR is merged, I need to go through the repository settings, so that:

we allow the DeterminateSystems/update-flake-lock action
we allow the creation of update-flake-lock/* local branches.


Update dependencies

im on the latest rustless version (v0.7.3)
    Name                                   Project Ver  SemVer Compat  Latest Ver
    rustless->bodyparser                      0.0.6          --          0.4.1
    rustless->cookie                          0.2.5          --          0.3.0
    rustless->hyper                           0.8.1        0.9.10        0.9.10
    rustless->iron                            0.3.1        0.4.0         0.4.0
    rustless->jsonway                         0.3.5          --          1.0.0
    rustless->lazy_static                     0.1.16         --          0.2.1
    rustless->queryst                         0.1.16         --          1.0.0
    rustless->traitobject                     0.0.1        0.0.3         0.0.3
    rustless->url                             0.5.9        1.2.0         1.2.0
    rustless->valico                          0.8.2          --          1.0.0

another question: is this crate dead or are there plans to continue the development?

It would be nice to at least update to hyper 0.10 when we get async IO:
https://github.com/hyperium/hyper/pull/778

@chpio this crate is not dead, but I decided to delay future development until Iron get Async support.

I'll update rustless to latest dependencies anyway.

I decided to delay future development until Iron get Async support, because this is a game-changer and everything will be different.

what's the reason that let you change your mind?

@chpio what do you mean?


Add a "second swipe" option for Hardwarehack #62

I first thought, that this isn't needed, but:
If a card/figure gets removed from the box, the music pauses. The playback can be started again by buttons (play, next, previous). If the same figure is placed again on the box, the music pauses again. But it should keep playing and pauses, when the figure is removed again.
This is a option for second swipe, that always starts playing (no switching with pause).

Hi @BerniPi
one question before I commit: "If a card/figure gets removed from the box, the music pauses" - how is this the case? Usually it's only swiping. Did you build a solution that allows to park the RFID on the reader?

Yes, i use this modification: https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Stop-on-removal-with-USB-RFID-Reader


Alerting Support

Is there currently support to setup alerts on these graphs?

This plugin is not backend datasource plugin.
So, this plugin can't support alerting...

Would it be possible if there was a backend implementation using a service account instead of the front end oauth workflow?

Perhaps, it is technically possible.
I didn't check backend plugin implementation (https://github.com/grafana/grafana/issues/6841), but I guess it support alerting.
To support alerting, we need to re-implement some of datasource plugin code.
We need to maintain two similar code...
I hesitate to support alerting, if anyone try to do it, I'm welcome to merge it.

@mtanda I've been trying to find some documentation on how to modify this plugin to support alerting. I was thinking this should be very similar to how the CloudWatch datasource works.
Would it require adding to the tsdb pkg in the golang core? https://github.com/grafana/grafana/tree/c5419ba8854d8ae3a8b0ff825d11716d9f740fe4/pkg/tsdb/cloudwatch
I'm still not fully connecting the dots on how this works, but ideally there would be some way to store a service key in ~/.gcloud/credentials
Do you have any details that might point me in the right direction?

@ericuldall This is a only available information about backend tsdb plugin.
https://github.com/grafana/grafana/issues/6841#issuecomment-354456371
You may need to implement the code like https://github.com/bergquist/simple-json-datasource/blob/backend/datasource.go .

Thanks for those!


Anonymous warn/ban commands

Currently Nadeko will include the user that sent the warn/ban in the DM to the receiving user, it'd be great if there was a way to disable this as an option. I've found that mods tend to not want to warn people due to personal backlash that they might get, and this would make things easier for them.

No, as it's open another possibility, mods going rogue and warning people for no reason without knowledge. Also this is a place for bugs. featurehub is for features.


dbt downloads bumpversion.cfg when it doesn't need it

Issue description
In main.py, dbt imports version.py. At the bottom of version.py, dbt will always fetch the .bumpversion.cfg file to determine the latest version of dbt.
dbt should instead only fetch the latest version from github if dbt --version is run.
This happens on dbt v0.10.2.

This behaviour currently completely breaks dbt when trying to run it offline.

Fixed in #949


ext_proc filter ASSERT at canIterate() when client not sending trailer

ext_proc filter ASSERT at canIterate() when downstream client is not sending trailer at same time the filter is configured to send trailer to the external processing server.
The problem is that In such case, during decodeData(), ext_proc filter creates  an empty trailer and adds it to the trailer map:
https://github.com/envoyproxy/envoy/blob/030a5ec32387ab7ab8e3a4794512ae9e871579f8/source/extensions/filters/http/ext_proc/ext_proc.cc#L274
, then returns stopIterationAndWatermark:
https://github.com/envoyproxy/envoy/blob/030a5ec32387ab7ab8e3a4794512ae9e871579f8/source/extensions/filters/http/ext_proc/ext_proc.cc#L288
The returned stopIteration cause filter_manager break from the loop:
https://github.com/envoyproxy/envoy/blob/030a5ec32387ab7ab8e3a4794512ae9e871579f8/source/common/http/filter_manager.cc#L692
Later on it call decodeTrailer() from next filter, which is router filter:
https://github.com/envoyproxy/envoy/blob/030a5ec32387ab7ab8e3a4794512ae9e871579f8/source/common/http/filter_manager.cc#L699
This caused router filter calls decodeTrailer() before call decodeHeaders().  And later on when it call decodeHeaders(), it ASSERT at canIterate().
There is an issue raised for this:
https://github.com/envoyproxy/envoy/issues/28620

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

[2023-07-24 16:49:33.519][30][trace][http] [source/common/http/filter_manager.cc:550] [Tags: "ConnectionId":"3","StreamId":"14728416450513760437"] decode headers called: filter=envoy.filters.http.router status=1
yanjun 10 commonHandleAfterHeadersCallback iteration_state_ 1
[2023-07-24 16:49:33.519][30][critical][assert] [source/common/http/filter_manager.cc:140] assert failure: canIterate().
[2023-07-24 16:49:33.519][30][critical][backtrace] [./source/server/backtrace.h:104] Caught Aborted, suspect faulting address 0xfffe00000011
[2023-07-24 16:49:33.519][30][critical][backtrace] [./source/server/backtrace.h:91] Backtrace (use tools/stack_decode.py to get line numbers):
[2023-07-24 16:49:33.519][30][critical][backtrace] [./source/server/backtrace.h:92] Envoy version: 0/1.27.0-dev/test/DEBUG/BoringSSL
[2023-07-24 16:49:33.520][20][trace][connection] [source/common/network/connection_impl.cc:362] [Tags: "ConnectionId":"7"] readDisable: disable=false disable_count=1 state=0 buffer_length=0
[2023-07-24 16:49:33.522][20][debug][http2] [source/common/http/http2/codec_impl.cc:1605] [Tags: "ConnectionId":"7"] updating connection-level initial window size to 268435456
[2023-07-24 16:49:33.522][20][trace][connection] [source/common/network/connection_impl.cc:575] [Tags: "ConnectionId":"7"] socket event: 2
[2023-07-24 16:49:33.522][20][trace][connection] [source/common/network/connection_impl.cc:686] [Tags: "ConnectionId":"7"] write ready
[2023-07-24 16:49:33.552][30][critical][backtrace] [./source/server/backtrace.h:96] #0: Envoy::SignalAction::sigHandler() [0x61412ac]
[2023-07-24 16:49:33.553][30][critical][backtrace] [./source/server/backtrace.h:96] #1: __restore_rt [0x7fcc24023420]
[2023-07-24 16:49:33.585][30][critical][backtrace] [./source/server/backtrace.h:96] #2: Envoy::Http::FilterManager::decodeHeaders() [0x53ae204]
[2023-07-24 16:49:33.616][30][critical][backtrace] [./source/server/backtrace.h:96] #3: Envoy::Http::ActiveStreamDecoderFilter::doHeaders() [0x53ac927]
[2023-07-24 16:49:33.646][30][critical][backtrace] [./source/server/backtrace.h:96] #4: Envoy::Http::ActiveStreamFilterBase::commonContinue() [0x53a87d4]
[2023-07-24 16:49:33.677][30][critical][backtrace] [./source/server/backtrace.h:96] #5: Envoy::Http::ActiveStreamDecoderFilter::continueDecoding() [0x53b50d5]
[2023-07-24 16:49:33.707][30][critical][backtrace] [./source/server/backtrace.h:96] #6: Envoy::Extensions::HttpFilters::ExternalProcessing::DecodingProcessorState::continueProcessing() [0x2d0a7b0]
[2023-07-24 16:49:33.737][30][critical][backtrace] [./source/server/backtrace.h:96] #7: Envoy::Extensions::HttpFilters::ExternalProcessing::ProcessorState::continueIfNecessary() [0x2cfdcf6]
[2023-07-24 16:49:33.767][30][critical][backtrace] [./source/server/backtrace.h:96] #8: Envoy::Extensions::HttpFilters::ExternalProcessing::ProcessorState::handleTrailersResponse() [0x2d011a6]
[2023-07-24 16:49:33.798][30][critical][backtrace] [./source/server/backtrace.h:96] #9: Envoy::Extensions::HttpFilters::ExternalProcessing::Filter::onReceiveMessage() [0x2ce445d]
[2023-07-24 16:49:33.828][30][critical][backtrace] [./source/server/backtrace.h:96] #10: Envoy::Extensions::HttpFilters::ExternalProcessing::ExternalProcessorStreamImpl::onReceiveMessage() [0x2cd5e02]
[2023-07-24 16:49:33.860][30][critical][backtrace] [./source/server/backtrace.h:96] #11: Envoy::Grpc::AsyncStreamCallbacks<>::onReceiveMessageRaw() [0x2cd6baf]
[2023-07-24 16:49:33.890][30][critical][backtrace] [./source/server/backtrace.h:96] #12: Envoy::Grpc::AsyncStreamImpl::onData() [0x46ab8ca]
[2023-07-24 16:49:33.921][30][critical][backtrace] [./source/server/backtrace.h:96] #13: Envoy::Http::AsyncStreamImpl::encodeData() [0x46bb5c4]
[2023-07-24 16:49:33.951][30][critical][backtrace] [./source/server/backtrace.h:96] #14: Envoy::Router::Filter::onUpstreamData() [0x4e67da4]
[2023-07-24 16:49:33.982][30][critical][backtrace] [./source/server/backtrace.h:96] #15: Envoy::Router::UpstreamRequest::decodeData() [0x4e9d9bf]
[2023-07-24 16:49:34.013][30][critical][backtrace] [./source/server/backtrace.h:96] #16: Envoy::Router::UpstreamRequestFilterManagerCallbacks::encodeData() [0x4eaf8b2]
[2023-07-24 16:49:34.045][30][critical][backtrace] [./source/server/backtrace.h:96] #17: Envoy::Http::FilterManager::encodeData() [0x53bb00b]
[2023-07-24 16:49:34.076][30][critical][backtrace] [./source/server/backtrace.h:96] #18: Envoy::Http::ActiveStreamDecoderFilter::encodeData() [0x53b991a]
[2023-07-24 16:49:34.106][30][critical][backtrace] [./source/server/backtrace.h:96] #19: Envoy::Router::UpstreamCodecFilter::CodecBridge::decodeData() [0x4ebbefe]
[2023-07-24 16:49:34.137][30][critical][backtrace] [./source/server/backtrace.h:96] #20: Envoy::Http::ResponseDecoderWrapper::decodeData() [0x4613a3c]
[2023-07-24 16:49:34.168][30][critical][backtrace] [./source/server/backtrace.h:96] #21: Envoy::Http::Http2::ConnectionImpl::StreamImpl::decodeData() [0x55134a8]
[2023-07-24 16:49:34.198][30][critical][backtrace] [./source/server/backtrace.h:96] #22: Envoy::Http::Http2::ConnectionImpl::onFrameReceived() [0x5527679]
[2023-07-24 16:49:34.228][30][critical][backtrace] [./source/server/backtrace.h:96] #23: Envoy::Http::Http2::ConnectionImpl::Http2Callbacks::Http2Callbacks()::$_24::operator()() [0x553735d]
[2023-07-24 16:49:34.259][30][critical][backtrace] [./source/server/backtrace.h:96] #24: Envoy::Http::Http2::ConnectionImpl::Http2Callbacks::Http2Callbacks()::$_24::__invoke() [0x5537325]
[2023-07-24 16:49:34.290][30][critical][backtrace] [./source/server/backtrace.h:96] #25: http2::adapter::CallbackVisitor::OnDataForStream() [0x5f07eec]
[2023-07-24 16:49:34.320][30][critical][backtrace] [./source/server/backtrace.h:96] #26: http2::adapter::callbacks::OnDataChunk() [0x5ed6e00]
[2023-07-24 16:49:34.351][30][critical][backtrace] [./source/server/backtrace.h:96] #27: nghttp2_session_mem_recv [0x5f19a45]
[2023-07-24 16:49:34.382][30][critical][backtrace] [./source/server/backtrace.h:96] #28: http2::adapter::NgHttp2Session::ProcessBytes() [0x5ed42ab]
[2023-07-24 16:49:34.412][30][critical][backtrace] [./source/server/backtrace.h:96] #29: http2::adapter::NgHttp2Adapter::ProcessBytes() [0x5ecd476]
[2023-07-24 16:49:34.443][30][critical][backtrace] [./source/server/backtrace.h:96] #30: Envoy::Http::Http2::ConnectionImpl::dispatch() [0x552198d]

The related logs shows the problem:
Tags: "ConnectionId":"3","StreamId":"14728416450513760437"] request end stream
[2023-07-24 16:49:33.490][30][trace][misc] [source/common/event/scaled_range_timer_manager_impl.cc:60] enableTimer called on 0x36dc7f720700 for 300000ms, min is 300000ms
[2023-07-24 16:49:33.490][30][trace][ext_proc] [source/extensions/filters/http/ext_proc/ext_proc.cc:467] decodeData(10): end_stream = true
[2023-07-24 16:49:33.490][30][trace][ext_proc] [source/extensions/filters/http/ext_proc/ext_proc.cc:273] Creating new, empty trailers
[2023-07-24 16:49:33.490][30][trace][ext_proc] [source/extensions/filters/http/ext_proc/ext_proc.cc:279] Header processing still in progress -- holding body data
[2023-07-24 16:49:33.490][30][debug][ext_proc] [source/extensions/filters/http/ext_proc/processor_state.cc:409] Watermark raised on decoding
[2023-07-24 16:49:33.491][30][debug][http] [source/common/http/conn_manager_impl.cc:1778] [Tags: "ConnectionId":"3","StreamId":"14728416450513760437"] Read-disabling downstream stream due to filter callbacks.
[2023-07-24 16:49:33.491][30][debug][http2] [source/common/http/http2/codec_impl.cc:416] [Tags: "ConnectionId":"3"] Stream 1 disabled, unconsumed_bytes 0 read_disable_count 0
[2023-07-24 16:49:33.491][30][trace][ext_proc] [source/extensions/filters/http/ext_proc/ext_proc.cc:469] decodeData returning 2
[2023-07-24 16:49:33.491][30][trace][http] [source/common/http/filter_manager.cc:682] [Tags: "ConnectionId":"3","StreamId":"14728416450513760437"] decode data called: filter=envoy.filters.http.ext_proc status=2
[2023-07-24 16:49:33.491][30][debug][router] [source/common/router/router.cc:874] [Tags: "ConnectionId":"3","StreamId":"14728416450513760437"] router decoding trailers:
[2023-07-24 16:49:33.491][30][trace][http] [source/common/http/filter_manager.cc:772] [Tags: "ConnectionId":"3","StreamId":"14728416450513760437"] decode trailers called: filter=envoy.filters.http.router status=1
...
[2023-07-24 16:49:33.519][30][trace][http] [source/common/http/filter_manager.cc:550] [Tags: "ConnectionId":"3","StreamId":"14728416450513760437"] decode headers called: filter=envoy.filters.http.router status=1
[2023-07-24 16:49:33.519][30][critical][assert] [source/common/http/filter_manager.cc:140] assert failure: canIterate().
[2023-07-24 16:49:33.519][30][critical][backtrace] [./source/server/backtrace.h:104] Caught Aborted, suspect faulting address 0xfffe00000011

The solution is to not call decodeTrailer() if filter_manager decodeData() function break from the loop early due to individual filter call of decodeData() returns stopIteration.

please hold off pushing CI for the next few hours while we push through release CI

The issue can be simply reproduced by the added ext_proc integration test case, which test this in the request_body path.
It can also be reproduced at the response_body path by below change.
diff --git a/test/extensions/filters/http/ext_proc/ext_proc_integration_test.cc b/test/extensions/filters/http/ext_proc/ext_proc_integration_test.cc
index 762606cca9..e70e6418bd 100644
--- a/test/extensions/filters/http/ext_proc/ext_proc_integration_test.cc
+++ b/test/extensions/filters/http/ext_proc/ext_proc_integration_test.cc
@@ -1065,13 +1065,15 @@ TEST_P(ExtProcIntegrationTest, AddTrailersOnResponse) {
// Test the filter using a configuration that processes response trailers, and process an upstream
// response that has no trailers, but when the time comes, don't actually add anything.
TEST_P(ExtProcIntegrationTest, AddTrailersOnResponseJustKidding) {

proto_config_.mutable_processing_mode()->set_response_header_mode(ProcessingMode::SKIP);
proto_config_.mutable_processing_mode()->set_response_body_mode(ProcessingMode::BUFFERED);
proto_config_.mutable_processing_mode()->set_response_trailer_mode(ProcessingMode::SEND);
initializeConfig();
HttpIntegrationTest::initialize();
auto response = sendDownstreamRequest(absl::nullopt);
processRequestHeadersMessage(*grpc_upstreams_[0], true, absl::nullopt);
handleUpstreamRequest();

processResponseHeadersMessage(*grpc_upstreams_[0], false, absl::nullopt);

processResponseBodyMessage(*grpc_upstreams_[0], false, absl::nullopt);
processResponseTrailersMessage(*grpc_upstreams_[0], false, absl::nullopt);
verifyDownstreamResponse(*response, 200);

Below are the logs, which you can see the spurious message received since ext_proc filter is sending trailer to ext_proc server right after it sends the body to the ext_proc server. This causes the ext_proc state machine broken since it is now waiting for trailer response, but ext_proc server may sends back the body response first.    ext_proc state machine requires sequentially message sending.
[2023-07-25 18:24:56.541][3802][trace][ext_proc] [source/extensions/filters/http/ext_proc/ext_proc.cc:557] encodeData(100): end_stream = true
[2023-07-25 18:24:56.541][3802][trace][ext_proc] [source/extensions/filters/http/ext_proc/ext_proc.cc:273] Creating new, empty trailers
[2023-07-25 18:24:56.541][3802][debug][ext_proc] [source/extensions/filters/http/ext_proc/ext_proc.cc:322] Sending request body message
[2023-07-25 18:24:56.541][3802][debug][ext_proc] [source/extensions/filters/http/ext_proc/ext_proc.cc:572] Sending a body chunk of 100 bytes
[2023-07-25 18:24:56.541][3802][debug][ext_proc] [source/extensions/filters/http/ext_proc/processor_state.cc:30] Traffic direction OUTBOUND: 200 ms timer enabled
[2023-07-25 18:24:56.542][3802][debug][ext_proc] [source/extensions/filters/http/ext_proc/processor_state.cc:30] Traffic direction OUTBOUND: 200 ms timer enabled
[2023-07-25 18:24:56.542][3802][debug][ext_proc] [source/extensions/filters/http/ext_proc/ext_proc.cc:601] Sending trailers message
[2023-07-25 18:24:56.542][3802][trace][ext_proc] [source/extensions/filters/http/ext_proc/ext_proc.cc:559] encodeData returning 1
[2023-07-25 18:24:56.542][3802][trace][http] [source/common/http/filter_manager.cc:1343] [Tags: "ConnectionId":"1316","StreamId":"4316459117058928206"] encode data called: filter=envoy.filters.http.ext_proc status=1
[2023-07-25 18:24:56.542][16][debug][testing] [./test/integration/fake_upstream.h:181] Received gRPC message: response_body {
body: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
end_of_stream: true
}
[2023-07-25 18:24:56.542][16][debug][testing] [./test/integration/fake_upstream.h:170] Sent gRPC message: response_body {
}
[2023-07-25 18:24:56.542][16][debug][testing] [./test/integration/fake_upstream.h:189] Waiting for gRPC message...
[2023-07-25 18:24:56.542][3802][debug][ext_proc] [source/extensions/filters/http/ext_proc/ext_proc.cc:660] Received response body response
[2023-07-25 18:24:56.542][3802][warning][ext_proc] [source/extensions/filters/http/ext_proc/ext_proc.cc:709] Spurious response message 4 received on gRPC stream
[2023-07-25 18:24:56.543][3802][debug][ext_proc] [source/extensions/filters/http/ext_proc/ext_proc.cc:188] Calling close on stream
[2023-07-25 18:24:56.543][3802][debug][ext_proc] [source/extensions/filters/http/ext_proc/client_impl.cc:58] Closing gRPC stream
[2023-07-25 18:24:56.543][16][debug][testing] [./test/integration/fake_upstream.h:181] Received gRPC message: response_trailers {
trailers {
}
}
[2023-07-25 18:24:56.543][16][debug][testing] [./test/integration/fake_upstream.h:170] Sent gRPC message: response_trailers {
}

/assign @tyxia @yanavlasov @stevenzzzz

/retest

/assign @mattklein123

Thanks @yanavlasov for approval.
@tyxia I searched ext_proc API proto and all the related docs, one place which mentioned this is below:
https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/ext_proc/v3/ext_proc.proto#envoy-v3-api-msg-extensions-filters-http-ext-proc-v3-externalprocessor:~:text=Request trailers%3A Delivered if they are present and if the trailer mode is set to SEND.
"
Request trailers: Delivered if they are present and if the trailer mode is set to SEND.
Response trailers: Delivered according to the processing mode like the request trailers.
"
This states we send the trailer if it is present, which is not changed by this PR.  I didn't find any doc or API stating send an empty trailer if client doesn't send it and filter is configured to do so.  Please let me know if you find something like that.

@yanjunxiang-google No worries, it is fine if this disabled behavior was not documented before.


fix: use runes in when detecting Svelte 5

fixes #11027 (not the underlying issue, but the problem within SvelteKit)
fixes #11022

Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[x] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
[x] This message body should clearly illustrate what problems it solves.
[ ] Ideally, include a test that fails without this PR but passes with it.

Tests

[ ] Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

[x] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. Changesets that add features should be minor and those that fix bugs should be patch. Please prefix changeset messages with feat:, fix:, or chore:.

actually @benmccann is right, this should work. i'm rescinding my approval
@trueadm this is what i was talking about before when i was saying afterUpdate shouldn't be bound to render effects, it should be bound to get

I also opened an issue in the svelte REPL with a much more minimal reproduction https://github.com/sveltejs/svelte/issues/9420

actually @benmccann is right, this should work. i'm rescinding my approval

What exactly should work? Are you saying that you also expect $effect.pre to run in SSR? Because we're in agreement then, I also think that should be the behavior 😄

@Rich-Harris The issue with all of this (we currently do afterUpdate on writes) is that the signal you're reading/writing to has only a component context of where it was created. So if you create a signal like this outside of a component or in another component context, non of this will work. This is what I meant by the some of these problems are likely not to be possible to be fixed and thus we need to document these breaking changes.

I'd prefer:
$effect.once(fn)

This would be an effect that runs one on the server and once on init on the client. Which seems to handle this use-case?

This is basically onMount, with added functionality of running on server

It is not what's wanted here. What's wanted here is a function that runs once on the server and before every update on the client (basically $effect.pre)

$effect.pre has a major downside here doing what you describe. If you run the logic on the server and it produces x = 5 but it runs twice on the client and produces x = 6 then you'll end up having different values before you come to entering the render effects that will hydrate the DOM – this will cause a mismatch and instantly cause hydration performance issues. This is why other frameworks are so strict to prevent this behavior from happening – it's a performance cliff like no other.

I think my solution to that problem would instead be to detect in dev mode that the value on the client differs from the value on the server. Because it seems unusual to me that something would run twice on the client before hydration and once on the server and that seems like something to avoid

@benmccann I mean the same logic would also run twice on the server if it could – but given we're saying that $effect.pre only runs once, then you get mismatches. I would just like us to understand the implications of having this and possibly causing mismatches as there's one thing detecting a mismatch in DEV vs enabling a developer to fix this problem easily. I still firmly believe we should be pushing people to the happy path.
The way other frameworks deal with this problem is to make it not possible to run effects on the server, and then making it clear there was a mismatch on the client – meaning there's a single place to look to fix it, the client code. In which case the fix is generally to make it an $effect rather than an $effect.pre – this goes to the useLayoutEffect vs useEffect case in React. Now another way of looking at that is saying the inverse – $effect.server only runs once on the server and you can't update state that affects UI in it, which is actually better than overloading $effect.pre.
This is important as I expect the majority of use-cases for $effect.pre to be reading the DOM before it's painted, so calculations around styling and scroll are available. These shouldn't ever run on the server, so it makes no sense to have it run there to begin with.

This seems like something you'd do frequently with stores. I think another solution to this might be to replace the use of stores.page with runes? We could potentially provide a helper function which wraps this pattern to help people interact between the two types of reactivity

@benmccann There was a suggestion to have a $kit rune a while back, this could just be something that lives on that rune.

Are you saying that you also expect $effect.pre to run in SSR?

No, absolutely not
and I'm not sure what $effect.once(fn) would mean other than fn()

We should have the "how does afterUpdate work correctly" discussion in https://github.com/sveltejs/svelte/issues/9420

Are you saying that you also expect $effect.pre to run in SSR?

No, absolutely not

I don't understand what changes you are requesting to this PR then.

The issue with all of this (we currently do afterUpdate on writes) is that the signal you're reading/writing to has only a component context of where it was created

Where the signal was created is irrelevant — what matters is where the signal is read. What I'm suggesting is basically this (pseudo-code):
function get(signal) {
  if (current_component) {
    signal.consumers.add(current_component);
  }

  // ...
}

I tried that and the issue is current_component is always null after the init phase, unless you're inside an effect. In which case, if you're inside an effect, then the existing logic of handling it for render effects can be expanded to be other effects too.

I don't understand what changes you are requesting to this PR then

What I'm saying is that we shouldn't need to remove the afterUpdate stuff. It should continue to work

I tried that and the issue is current_component is always null after the init phase, unless you're inside an effect. In which case, if you're inside an effect, then the existing logic of handling it for render effects can be expanded to be other effects too.

Yeah I'm not talking about what current_component is or isn't at present, or the details of the implementation. I'm just describing how we can make it work correctly at a high level

But it's deprecated, and we're encouraging people to move away from it. It sounds counter-intuitive to not use the new tools we have in runes mode. And it's a quick-fix for the issue in the context of SvelteKit, and we can look at the underlying problem in https://github.com/sveltejs/svelte/issues/9420, where - again - we should have the discussion about how to fix this.

The replacement code is just super nasty. I think it would be better to keep using afterUpdate until we can use state-based replacements for the stores (and keep the stores as a legacy interface to those replacements)

ok — i think we should undo the afterUpdate change once we get it working though, unless we want to keep it to motivate us to build a state-based $page etc

ok — i think we should undo the afterUpdate change once we get it working though, unless we want to keep it to motivate us to build a state-based $page etc

Yeah, let's do that. I think it makes most sense.

Someone made a related issue: https://github.com/sveltejs/svelte/issues/9278


Feature Request: Use custom DB parameter group enhancement

Problem Description:
It may be desirable to offer the ability to customize database tuning-options. Need the DB to use a custom — rather than the currently used RDS-default — parameter group.
Expected Behavior:
Ability to tune DB behavior via DB parameter-group settings
Actual Behavior:
Current use of RDS-default DB parameter-group precludes tuning customizations
(Detailed) Steps to reproduce:
Deploy RDS DB from existing templates
(Optional) Fix recommendation:
Add a AWS::RDS::DBParameterGroup resource-type into the current RDS templating.

Encapsulated in rebasing effort (see: d272ddd2f20bb48d698697171a3bf7666a083145)


Support +page.server.gql

Describe the feature
Would be very interesting to automatically convert a +page.server.gql file into a load function that gets created inside of a .server.js file
edit: Since there are a lot of 👍  on this issue I should probably mention that this is relatively straight forward, even if it sounds a bit daunting. If someone wants to take this on, please reach out to me on Discord

and the form actions in +page.server.gql

Actions are more for mutation no?
Could you describe a bit more the usecase, I'm curious 👀?

you can see here https://github.com/xmlking/svelte-starter-kit/tree/main/src/routes/(app)/dashboard/policies/[id]
in +page.server.ts I am using both  load and actions
load  is used to populate the edit form.  and actions   are used when they click Save button.
I want to replace this +page.server.ts  file with +page.server.gql

I would see +page.server.gql handling the load function.
To keep in mind:

You will still have to provide id in a way (or https://github.com/HoudiniGraphql/houdini/issues/372 in the future)
You will still have to manage your errors & "not found" custom code.

Today you have one action called save and inside you

Check if the user is logged
Decide (with some logic) if it's a create or an update.
you have to get form data to pass them as variables request.formData() (adding some logic like formData.id = crypto.randomUUID();, ...)
Then you handle errors & "not found" custom code.

All this too say that you have some custom code to write somewhere (your own business logic).

I see that you are using row "gql queries" and "await fetch",
Did you try doing something like (having GetByID.gql file beside your +page.server.ts):
import { GetByIDStore } from '$houdini'

export async function load(event) {
	const gql = new GetByIDStore()
	const { data } = await gql.fetch({ event })

// Your custom logic

	return { data }
}

I just throw this here as a memo, maybe:

+page.server.gql => can be use in combination with _houdini_load of +page.server.ts
+page.create.server.gql => can be use in combination with _houdini_action_create of +page.server.ts
+page.update.server.gql => can be use in combination with _houdini_action_update of +page.server.ts

(I don't know how it would look like)

This would be great to have.  Really just want a +page.server.gql to align to all my other non-graphql fetching happening in +page.server.ts.


add EphemeralsBinding.get_range

Problem
In PR #993, new package command ephemerals and intersects were introduced, however it may not work as expect when you wish to disable a package feature (or other term ?) by default as this example.
See demo code below :
from rez.rex_bindings import EphemeralsBinding, intersects
from rez.vendor.version.requirement import Requirement

# Topic: Is foo.bar on ? Default off
# case 1
ephemerals = EphemeralsBinding([Requirement(".foo.bar-1")])
bar_on = intersects(ephemerals.get("foo.bar", "0"), "1")
assert bar_on is True  # It's on.
# case 2
ephemerals = EphemeralsBinding([])
bar_on = intersects(ephemerals.get("foo.bar", "0"), "1")
assert bar_on is True  # Still on !
# case 3 (workaround)
ephemerals = EphemeralsBinding([])
bar_on = intersects(ephemerals.get("foo.bar", "foo.bar-0"), "1")
assert bar_on is False  # Now it's off..

As you can see, intersects still returns True even no ephemeral requirement given, unless you explicitly set default value to foo.bar-0.
Turns out this behavior was because the default value of ephemerals.get got parsed into Requirement obj in intersects :
https://github.com/nerdvegas/rez/blob/6ee535a71b7cf7e04c82db6a786a7cdffe65688f/src/rez/rex_bindings.py#L231-L233
So when no matched ephemeral given like in case 2 above, it was actually intersecting Requirement('0') with VersionRange('1'). Which always intersects !
Feature propose
To overcome this problem and provide a much intuitive interface, I propose to add ephemerals.get_range, which should always return VersionRange object for intersecting.
With this, the above demo code will then be :
# Topic: Is foo.bar on ? Default off
# case 1
ephemerals = EphemeralsBinding([Requirement(".foo.bar-1")])
bar_on = intersects(ephemerals.get_range("foo.bar", "0"), "1")
assert bar_on is True  # It's on.
# case 2
ephemerals = EphemeralsBinding([])
bar_on = intersects(ephemerals.get_range("foo.bar", "0"), "1")
assert bar_on is False  # It's off.

Hope this make sense to you all :)

Hey, good find! I agree this isn't intuitive and needs better syntax. We're on the right track but there are a few things missing.
First, 'intersects' should be updated to raise an exception if it's given a requirement-like object that's a string, but not a valid package request. Eg, intersects("1", "0") should raise rather than return True - "1" is not a valid package requirement, and this will help avoid accidental misuse. Note that intersects should also work for raw ephemeral request strings (eg ".foo-1"), so that should be taken into account (drop leading '.' before checking with PackageRequest).
Second, the wiki docs (Ephemeral-Packages and Package-Commands) need to be updated to reflect this - as you can see I've go the wrong examples there (they probably worked by fluke when I was testing them).
Third - I'm not sure about intersects() being able to take a VersionRange object. It's a little confusing that it can take version/requirement- like objects (and their string equivalents), and range objects, but not string-equivalents of range objects. It may make things clearer to add a "get_request" method to EphemeralBinding instead. Thus:
intersects(ephemerals.get("foo", "0"), "1")  # bad, will raise exception
intersects(ephemerals.get_request("foo", "0"), "1")  # good

Note that the error raised in the first case should say something like "Invalid package request syntax '0'. Did you use request.get/ephemerals.get instead of get_request?"
Forth - as that last point alludes, we need to provide the same function for the request object, since it suffers the same potential misuse.
Fifth - need to ensure that this kind of thing is supported:
intersects(ephemerals.get_request("foo", "==1.2.3"), "1")

Thanks @nerdvegas :)
For the third point :

I'm not sure about intersects() being able to take a VersionRange object. It's a little confusing that it can take version/requirement- like objects (and their string equivalents), and range objects, but not string-equivalents of range objects

Since what intersects() do is intersecting version ranges, isn't that actually make sense to feed it VersionRange object directly ? And, I think it would be better and simpler to restrict it to only accept version range objects and the string-equivalents of them. Further more, I found that "1" can be a valid package name (no error raised when doing PackageRequest("1")). So it may not easy to distinguish between requirement-string-equivalent and range-string-equivalent, nor a best place for implementing that logic.

It may make things clearer to add a "get_request" method to EphemeralBinding instead.

Actually, I think get_range is more intuitive.
From what I understand about ephemeral packages and how I use them, what I need is to query the requested range of one specific ephemeral package. So I suppose the name get_range is better for the scenario. No ?
Disclaimer, above points are based on my usage of ephemerals, so they might be incorrect.
But if they stand... , back to the first point:

Eg, intersects("1", "0") should raise rather than return True - "1" is not a valid package requirement, and this will help avoid accidental misuse.

If we agree letting intersects to only takes version range objects and the string-equivalents, we can ignore this one.
To summarize my points:

Implement get_range for both EphemeralsBinding and RequirementsBinding
Change to treat string input as VersionRange's string-equivalent in intersects()

Ouch @ "1" being a valid package name, you're right.
In terms of 'intersects' taking range-like objects only, there are two
problems there:
1: This feature is already released, and that would break backwards
compatibility
2: I wanted the syntax to be as succinct as possible, eg "if
intersects(resolve.maya, "2019+").
The docs for intersects state:
"""A boolean function that returns True if the version or version range of
the given object, intersects with the given version range"""
I don't think there's any absolutely correct fix for this one. I do agree
that get_range is intuitive though, despite it not really matching the
types that 'intersects' already accepts.
How about:

We go with get_range support in intersects
Wiki is updated to fix incorrect examples, and to explain that
get_range() results are accepted. We should also include the wrong way to
do it (ie in current examples) as a warning
Ensure that ranges such as "==1" work as expected

?
A
On Tue, Mar 2, 2021 at 8:06 PM David Lai<EMAIL_ADDRESS>wrote:

Thanks @nerdvegas https://github.com/nerdvegas :)
For the third point :
I'm not sure about intersects() being able to take a VersionRange object.
It's a little confusing that it can take version/requirement- like objects
(and their string equivalents), and range objects, but not
string-equivalents of range objects
Since what intersects() do is intersecting version ranges, isn't that
actually make sense to feed it VersionRange object directly ? And, I
think it would be better and simpler to restrict it to only accept
version range objects and the string-equivalents of them. Further more, I
found that "1" can be a valid package name (no error raised when doing
PackageRequest("1")). So it may not easy to distinguish between
requirement-string-equivalent and range-string-equivalent, nor a best place
for implementing that logic.
It may make things clearer to add a "get_request" method to
EphemeralBinding instead.
Actually, I think get_range is more intuitive.
From what I understand about ephemeral packages and how I use them, what I
need is to query the requested range of one specific ephemeral package. So
I suppose the name get_range is better for the scenario. No ?
Disclaimer, above points are based on my usage of ephemerals, so they
might be incorrect.
But if they stand... , back to the first point:
Eg, intersects("1", "0") should raise rather than return True - "1" is not
a valid package requirement, and this will help avoid accidental misuse.
If we agree letting intersects to only takes version range objects and
the string-equivalents, we can ignore this one.
To summarize my points:

Implement get_range for both EphemeralsBinding and
RequirementsBinding
Change to treat string input as VersionRange's string-equivalent in
intersects()

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nerdvegas/rez/pull/1030#issuecomment-788747111, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAMOUSVZSEPPNSE3Y53YRUDTBSTA5ANCNFSM4YLW6VDA
.

Ouch @ "1" being a valid package name, you're right.

Ouch indeed !

I don't think there's any absolutely correct fix for this one.

Of course :)
I see your concerns now.

Ensure that ranges such as "==1" work as expected

I have added a few test cases, and this is also validated in there.
And I also adds get_range for RequirementsBinding, this is still needed, right ?
About updating Wiki, I'll try that tomorrow.

I have updated the Wiki pages, but was afraid putting the example code in my very first comment of this PR will make the page too verbose, so I only put a short warning in ephemeral-packages page.
And I also noticed this:
ephemerals = EphemeralsBinding([])
intersects(ephemerals.get("foo"), "1")
# RuntimeError: Invalid type <class 'NoneType'> passed as first arg to 'intersects'

An error raised if not default value given when using ephemerals.get, which I think it should be handled as a valid input, hence the commit c12a8b9.
But wasn't sure if we still need to handle it as VersionRange object, since the intersecting result with VersionRange(None) will always be False. Should we take the short cut to just return False in intersects() ?


"Additional licensing requirements might be required to enable this feature"

What additional licenses would be required for this feature?  Anything that would cover a premium connector?  Or a license that would cover Dataverse?

Thanks for contacting us. Can you point us to the doc page you're referring. It helps us assign the issue to the correct writer.

https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/geospatial-overview

I'm checking with our engineering team now and will let you know.

Hi @samadane I received this reply:

Geospatial components are premium and they consume Power Platform requests. Any license that enables end-users to use an app that is designated as premium will work for the geospatial components.

I'll work on updating the documentation to call this out as a requirement and will reply here when it's published.
Thanks for your feedback!


GeoLocator Not Working in my simulator or device android

💬 Questions and Help
Hi Gues How Are You ?
i Have A big Problem: when run my code in android studio to my phone with using geolocator package i against this problem:
E/flutter (12560): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: MissingPluginException(No implementation found for method getCurrentPosition on channel flutter.baseflow.com/geolocator)
E/flutter (12560): #0 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:154:7)
E/flutter (12560): <asynchronous suspension>
E/flutter (12560): #1 MethodChannelGeolocator.getCurrentPosition (package:geolocator_platform_interface/src/implementations/method_channel_geolocator.dart:122:27)
E/flutter (12560): <asynchronous suspension>
E/flutter (12560): #2 MyApp.getLocation (package:geolocation_app/main.dart:10:25)
E/flutter (12560): <asynchronous suspension>

Please Help Me 🙂

Hi @NassimCodeDev,
This error seems the same as issue #745. Please have a look if the instructions in this comment solve your problem. This seems to be related to something getting corrupted on your local environment.
If this doesn't work please provide additional information to this issue:

The version of the geolocator plugin that is used;
Include the output of the flutter doctor -v command;
The platform on which the error occurs (Android, iOS or macOs);
Include the contents of the android/app/src/main/AndroidManifest.xml and/or the ios/Runner/Info.plist file to the issue.

You'll have to rebuild the app once

MissingPluginException(No implementation found for method getCurrentPosition on channel flutter.baseflow.com/geolocator_android)


[release-1.1] Enforce name and namespace length in the webhook

This is a cherry-pick of da3eff6afaa1aa0f012f59a97e7b973da7622393.
/cc @mresvanis

When the .spec.moduleLoader.container.version field is set, the combined length of the name and namespace fields should not exceed 40 characters to avoid issues with labels.
Upstream-Commit: eb5f375d9e430217772c372d920eabba5411c8a9
Upstream-Commit: 237a0d4364380e6a4a01608346bc9e94742a9139

/lgtm


Customize spawn location for shapes on paper

Describe the feature you'd like
It might be helpful for users to be able to determine where they want to spawn their shapes.
Perhaps there could be some kind of interface to see default values of a shape when it is spawned in, like its text contents, size, spawn location, etc.
Or possible we could have them drag and drop the shape onto the paper.. not sure how it would be done but see the demo for Rappid.js to see what I mean.

Something to consider: Perhaps we could add a feature where the user does a drag and drop of a shape from the menu on to the paper. That way they get to choose where it shows up and it will always show up on the paper.


Update under-consideration.md

Added Linx
Add / Change Your awesome nocode or lowcode tool
Why is this awesome?
What makes Linx interesting? A common concern for programmers considering low-code tools is the lack of flexibility.  Most low-code tools are based on a workflow paradigm. Linx differs by following a programming paradigm which makes it more of an all-rounder and easy for developers and IT professionals to pick up.
Linx abstracts programming concepts so our tools naturally work like common programming tools. The Linx Designer is an IDE that allows you to program and debug at a higher level and saves the program specification to files that are deployed to one or more Linx Servers to run the application.
Building solutions in Linx should be no different to how you would do it with low-level programming, it’s just with bigger pieces, more visual help and lots of ready-made functionality available on the server-side. You can almost say we’re a low-code Visual Studio for backend development.

because of this
Developers can quickly create back-ends for

APIs: Microservices; Customer or vendor facing APIs; Facades in front of legacy systems. Back-ends for mobile or web apps.

Systems integration: Use databases, files, APIs and message queues to move data around.

Automated workflows: Send or parse emails; Create or import files; Expose endpoints to workflow systems.

Testing ideas: Publish or consume APIs; Rapidly build MVPs.

and this
It allows you to focus on solving the problem rather than spending time on boilerplate code or struggling with low-level programming concerns.

It does not hide the technology you’re working with, e.g. when working with a SQL database you still need to write SQL and have a connection string, but makes it easier to use the technology and discover its features.

Added Linx

I'm sorry but this tool is not awesome enough.


Code comments and installer wrongly states that PHP 5.3.3 is the minimal version?

Affected Version
3.6.6
Description
I did a new install and due to a local dev mishap forgot to enable the apache PHP module and got the main.php displayed. This showed me that Please install PHP 5.3.3 or higher, preferably PHP 5.3.4+.
Steps to Reproduce
Do a text search for 5.3.3 to list all places where this out of date.

We do support PHP 5.3 in SS 3.x, what would you prefer that it said?

Ah, yes, sorry, I read the wrong server requirements
https://docs.silverstripe.org/en/4/getting_started/server_requirements/
when I should have read:
https://docs.silverstripe.org/en/3/getting_started/server_requirements/
Apologies


provide warning if id & host endpoint not set when using skills

Is your feature request related to a problem? Please describe.

I'm always frustrated when I forget to set them and it takes time to figure out why my skills don't work.
Describe the solution you'd like

Provide warning if id & host endpoint not set when using skills:

Describe alternatives you've considered

Additional context

Good suggestion!


Move the dev_compiler strong mode tests into sdk/tests/.

Sending this out as a pull request because Reitveld apparently can't handle a patch this big...
DDC's codegen test copies those files to a local "gen" directory so
that it can do stuff like splitting out the multitests before it
compiles them to JS.
I left all of that alone, so the rest of DDC's test infrastructure is
unchanged. The very first step that builds the "gen" directory just
copies from sdk/tests/..._strong/... instead and the rest is good to go.
I did not move not_yet_strong_tests.dart somewhere more accessible yet
because I'm not sure if kernel needs it or where it should go.
I did not create any status files because DDC doesn't need them and
there are no test suites for the new directories for the other
platforms.

Fixes #27992.

lgtm - seems travis is unhappy though on a couple tests for some reason.

It seems the line ending encoding was changed for some tests that rely on a specific encoding (I believe it affects multiline string literals).
Otherwise LGTM, and thanks!

It seems the line ending encoding was changed for some tests that rely on a specific encoding (I believe it affects multiline string literals).

Oops, yeah, I think Git renormalized them since it thinks they are new files. I'll fix that.
I think that's what's breaking Travis too.