Contour & Envoy memory usage

I have been doing some performance testing to evaluate the memory usage of Contour & envoy as the number of IngressRoutes & Services increase.
I've noticed that Contour & Envoy memory increases considerably as the IngressRoutes & Services are being created, but a fresh-restart of Contour/Envoy results in a much-lower memory footprint.
Steps to reproduce:

I have a set of Pods (4x nginx) that match a label selector app: nginx
Create IngressRoute object (ingress-0) that has a single Route to a Service service-0
Create a service object (service-0) that uses a label selector app:nginx
repeat for 0..2000
Restart Contour & Envoy processes

My test ingressroute & service script repo is here: https://github.com/rosskukulinski/contour-envoy-memory-batch.

# services & # IngressRoutes | Envoy Memory (MiB)
-- | --
6.00 | 17
100.00 | 32
500.00 | 91
1000 | 326
1500 | 823
2000 | 1610

# services & # IngressRoutes | Contour Memory (MiB)
-- | --
6.00 | 8
100.00 | 37
500.00 | 375
1000 | 880
1500 | 1490
2000 | 2010

I'm curious @rosskukulinski if after you create the 2k objects, could you try deleting? Does the memory go down?

@stevesloka

It took a while, but Contour did eventually start shedding memory

And I'm doing this with 1 contour, 5 envoys

Hi Ross,
What’s the scale on this graph? I my testing I’ve not seen contour use more than 55mb of heap.
Note, this is measured by contour using the go runtimes GODEBUG=gctrace=1 flag

On 1 Aug 2018, at 05:16, Ross Kukulinski<EMAIL_ADDRESS>wrote:
@stevesloka
It took a while, but Contour did eventually start shedding memory
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@davecheney the left side is GiB and the bottom is time. I did the same test on my machine and Contour got to just over 7GiB memory. After some time it dropped down to around 3Gib which is where it's sitting now.
I can try and re-run the test with the flags you mentioned.
Here's a graph from my last run over 6 hours:

Looks like (if I read the pprof correctly) is the memory usage is in the gRPC server:
(pprof) top
Showing nodes accounting for 862.22MB, 95.87% of 899.33MB total
Dropped 398 nodes (cum <= 4.50MB)
Showing top 10 nodes out of 37
      flat  flat%   sum%        cum   cum%
  645.88MB 71.82% 71.82%   829.25MB 92.21%  github.com/heptio/contour/vendor/google.golang.org/grpc/transport.(*http2Server).handleData
  183.36MB 20.39% 92.21%   183.36MB 20.39%  github.com/heptio/contour/vendor/google.golang.org/grpc/transport.(*recvBuffer).put
    9.12MB  1.01% 93.22%     9.18MB  1.02%  github.com/heptio/contour/internal/contour.(*cache).Values
    8.08MB   0.9% 94.12%     8.08MB   0.9%  github.com/heptio/contour/vendor/github.com/sirupsen/logrus.(*Entry).WithFields
    5.73MB  0.64% 94.76%    15.82MB  1.76%  github.com/heptio/contour/vendor/google.golang.org/grpc/transport.(*http2Server).operateHeaders
    4.60MB  0.51% 95.27%     4.60MB  0.51%  github.com/heptio/contour/vendor/google.golang.org/grpc/transport.(*decodeState).addMetadata (inline)
    2.21MB  0.25% 95.51%    27.01MB  3.00%  github.com/heptio/contour/internal/grpc.(*xdsHandler).stream
    1.78MB   0.2% 95.71%    28.94MB  3.22%  github.com/heptio/contour/vendor/google.golang.org/grpc.(*Server).processStreamingRPC
    1.31MB  0.15% 95.86%     5.07MB  0.56%  runtime.systemstack
    0.16MB 0.017% 95.87%    26.95MB  3.00%  github.com/heptio/contour/vendor/github.com/

I did the same test again looking at the go stats that get outputted from Contour, here are those graphs. The interesting piece is how the go routines top out at 10k. The graph shows a 3 hour window where I incrementally increased the Services/IngressRoutes, then the system sat idle to see how it reacts.

My guess is grpc models each StreamEndpoints connection as a goroutine, if
each goroutine had a stack of 8kb and there are 10,000 of them, that's 2gb
of heap.
I'm not sure what can be done about this.
On 3 August 2018 at 06:51, Steve Sloka<EMAIL_ADDRESS>wrote:

I did the same test again looking at the go stats that get outputted from
Contour, here are those graphs. The interesting piece is how the go
routines top out at 10k. The graph shows a 3 hour window where I
incrementally increased the Services/IngressRoutes, then the system sat
idle to see how it reacts.
[image: screen shot 2018-08-02 at 4 50 05 pm]
https://user-images.githubusercontent.com/1048184/43610445-26b6185c-9674-11e8-8d37-366fc7b5eb9a.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/heptio/contour/issues/599#issuecomment-410063934, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAAcA5VBq6_xvesdyujDTzlrGoRdRMJuks5uM2Y9gaJpZM4Vo0Un
.

@rosskukulinski please reproduce to verify that envoy still has functionality after restarting contour.  In the original graph, it looks like both envoy & contour have low-memory usage after a contour restart.  That seems odd.

Also, I don't think this needs to hold back beta-3

I am not going to get to this before beta-3, moving to 0.6.0 milestone.

shifting to 0.8

Nobody is available to work on this in 0.11. Punting to 0.12. Needs input from someone to verify if this is a problem.

Duplicate of #499. This issue has useful information, but spanning two issues is not useful. I am closing this to concentrate on #499.


ts-node-dev --compiler ttypescript fails to load .ts transformers

Running ts-node-dev --compiler ttypescript fails to load transformers which are .ts files.
I've narrowed down the issue to the way ts-node-dev handles compilation in the main process. I'm opening a PR with an explanation of the fix.

@jakzo
didn't work with TS transformers but added the tests:
https://github.com/whitecolor/ts-node-dev/blob/master/test/index.ts#L162
If the issue still relevant, could you elaborate on it?

Reopen if actual.


[feature] make it work with dotenv-webpack

Library Affected:
workbox-webpack-plugin
Browser & Platform:
all browsers
Issue or Feature Request Description:
it should work with dotenv-webpack or other way to inject environment variables
Use case:
I'd like to change firebase config based on .env
const config = {
  messagingSenderId: process.env.FIREBASE_MESSAGING_SEND_ID,
};

firebase.initializeApp(config);

but process is undefined on sw.js
I'm using workboxPlugin.InjectManifest

This should be addressed by https://github.com/GoogleChrome/workbox/releases/tag/v5.0.0-alpha.0
It will compile you swSrc, and if you need to pass in specific plugins to configure the webpack compilation (like a plugin to handle that replacement), you should be able to do that via the new webpackCompilationPlugins  configuration option.
Please reopen if I'm misinterpreting your use case, and you're still unable to accomplish that.

SO like how do i use environment variables in my service worker file

You should be able to pass in whichever webpack plugin you want to use to perform the replacement to the plugins option of InjectManifest.

How to use it without webpack 🙂🙂

You'll need some sort of build tool to replace the environment variable placeholders with their actual values. If you don't use webpack, you'll have to use something else, most likely something from https://bundlers.tooling.report/

Ok will look into it


Reference to Module.record.field is treated as reference to field in module Module.record.

Given Module.elm containing this:
-- ...
nameFilterLens =
  { get = .nameFilter
  , set = \ p w -> { w | nameFilter = p }
  }

... and Update.elm containing this:
import Model as Model exposing (Model)

useLens : Model -> String
useLens model =
  Model.nameFilterLens.get model      --- <<< THIS LINE FAILS TO COMPILE

... I get this compiler message:
790 $ elm-make Update.elm
-- NAMING ERROR ----------------------------------------------------- Update.elm

Cannot find variable `Model.nameFilterLens.get`.

7|   Model.nameFilterLens.get model
           ^^^^^^^^^^^^^^^^^^
No module called `Model.nameFilterLens` has been imported.

I was hoping that, since nameFilterLens is not capitalized, it wouldn't be taken as being part of a module name.
Full source is attached, with .elm extension changed to .txt to make Github happy.
Elm version is elm-make 0.18 (Elm Platform 0.18.0). OSX El Capitan 10.11.6
Model.txt
Update.txt

Duplicate of https://github.com/elm-lang/elm-compiler/issues/1549, isn't it?

Yes, I think. Sorry. Should I close?

Yes, I think so.


Authentication Error on Second Click of "Start Working"

Describe the bug
Authentication error when following link to "Start" working on an assignment that you've already started. Current workaround is to refresh page to get a new link. Better fix would be to automatically re-direct the "Start working" link if the assignment is already started.
To Reproduce
Steps to reproduce the behavior:

Teacher: at circuitverse.org, create an assignment for your group.
Student: go to "My Groups" and choose the relevant group.
Student: Scroll down to the assignments and find the new assignment.
Student: Follow the link "Start Working" by middle clicking (or whatever common shortcut you use in your browser to open in a new tab.) This opens Tab 2.
Student: Click "Launch Simulator." This opens Tab 3.
Student: Work on your assignment in Tab 3, then close Tab 3.
Student: Back in Tab 1, click "Start Working."
Student: Get a blank page with authentication error: "You are not authorized to do the requested operation"

Expected behavior
On Step 8, I would expect that my circuit preview should open.
That is: "Start Here" should automagically redirect to the "View your Work" link if the work is already started.
Desktop (please complete the following information):

OS: Windows 10
Browser Firefox
Version 69.0

Additional context
Many students kept running into this in class, and the error message was very intimidating. We had no idea why the students couldn't get into their circuits. We eventually figured out the workaround this semester.
Are you working on this issue? (Yes/No)
No

Suggested solution:
Rather than giving authentication error, "Start Here" should automagically redirect to "View your Work" link if the work is already started.

@phyzicist refreshing the page would be required to load the "View your Work" project.

@satu0king we have a fix for this in #472 we can implement the fix or close this issue.


Unknown host exception Android

I am getting below exception. mostly this issue is on Android 13 devices.
Caused by java.net.UnknownHostException: Unable to resolve host <HOST_NAME>: No address associated with hostname
at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:124)
at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)
at java.net.InetAddress.getAllByName(InetAddress.java:1152)
at okhttp3.Dns$Companion$DnsSystem.lookup(Dns.kt:49)
at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.kt:164)
at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.kt:129)
at okhttp3.internal.connection.RouteSelector.next(RouteSelector.kt:71)
at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:205)
at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
at java.lang.Thread.run(Thread.java:1012)

This is expected on mobile depending on network conditions.
Please use a site like stackoverflow for support.

This has started happening randomly on our Android app and now is a frequent issue, while iOS app is working as expected. We have checked our servers, no downtime or host issues were encountered. Also, worked with our users and none of them had any internet issues when this happened. It's only happening for Android 13 and above, no prior version is impacted. I think it's worth looking in to this issue. I will be dedicated some time tomorrow to investigate it further and will share my findings here.

Please provide a way for us to reproduce. It's possible this is some doze mode on a particular device stopping network traffic

Hi @varuntribe did you manage to investigate it?

Hey @santosaprima , we had to add more reporting on this issue, as it's near impossible to reproduce in test env. We are releasing updated builds with additional reporting today so hopefully we will have some more insight into the issue in next week or so.
I think Yskimke might be on to something with the doze mode. We are also thinking around the same line. It could be our background worker thread that is failing, that's why we have added failed endpoints as part of the new reporting system.

Discussion on the other bug, but flagging here for different audience.  This comes from a 2 second negative result cache in Android.
https://cs.android.com/android/platform/superproject/main/+/main:libcore/ojluni/src/main/java/java/net/Inet6AddressImpl.java;l=117
So the question is why was network connectivity missing within the last two seconds even if working now.

Did anyone manage to find a workaround for this?

Same issue on Android 13 :(

same issue periodically raise

Android fix for this https://cs.android.com/android/_/android/platform/frameworks/base/+/0fa9120b8f72916951b2d070afd6c3dfd3c13f77. I'm not sure if this goes into mainline modules, but I'm assuming not.

is this issue addressed in the latest version?

@saikrupa you should check with Android, or your device maker.


Publish script is not bumping the version prior to creating the tag

UI Version: 0.10.0 <- This version shouldn't be possible

That tag wasn't pushed by the script, it was from @okwme : https://github.com/cosmos/voyager/releases/tag/v0.10.0

I think Billy was just the one who merged the last commit.

no idea, all i did was approve the PR, merge and delete branch
On Thu, Aug 30, 2018 at 8:23 PM David Braun<EMAIL_ADDRESS>wrote:

Hmm, this is confusing. Merging a PR doesn't run the publish script.
There's no evidence that v0.10.0 was created automatically:
https://github.com/cosmos/voyager/pulls?utf8=✓&q=is%3Apr+is%3Aclosed+automatic+release+created
@okwme https://github.com/okwme Do you have any ideas about where this
tag came from?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/cosmos/voyager/issues/1204#issuecomment-417419557,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA611J1aV4jzt-7D6SJRSb78-V2JKH9dks5uWC2WgaJpZM4WRWgf
.

OK, maybe this is related to #1177.  Let's see if it happens again once that is fixed.

We'll test this when we publish the next release.

What was the outcome here?


Command syntax is incorrect

Several of the commands on this page include '- EwsAllowList' when it should instead be '-EwsAllowList' (no space after the dash).

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 7bad8864-5f08-90ae-a6d1-a23e58fc1843
Version Independent ID: 7bad8864-5f08-90ae-a6d1-a23e58fc1843
Content: Bookings in Outlook
Content Source: microsoft-365/bookings/bookings-in-outlook.md
Service: bookings
GitHub Login: @kwekuako
Microsoft Alias: kwekua

@msbemba

@yogkumgit , PLease close this issue #8556, because the issue has been fixed by me. Please cross-check it

@yogkumgit The document is up to date and the issue can be closed.
Thanks
Sri


Fill readme, add examples

Hello @davidkpiano
I wasn't able to find examples on how to use this repo, so I added these myself.
Feel free to make any corrections needed.
BTW, I didn't found how to use actions/entries (as defined in https://github.com/matEhickey/xstate-python/blob/master/tests/test_machine.py), maybe is it still WIP ?
Bye !

Hey, thanks @matEhickey! Yes, this is still a work-in-progress, but I'll be happy to add your examples in.
By the way, if you can think of a more idiomatic (Pythonic) API for XState for Python, I'd be happy to hear it.


Random crash

Description
It lagged a lot when same tab opened up multiple times
Steps To Reproduce

Open up same tab 6-7 times (with a lot of files)
Try to switch between them

Steps to fix
(i have no clue to be honest)
Files Version
<IP_ADDRESS>
Windows Version
Windows 10 Home Single Language Version	21H2 19044.2075
Relevant Assets/Logs
debug.log

Is this an issue in the preview version? https://files.community/download/preview

Is this an issue in the preview version? https://files.community/download/preview

i downloaded it from microsoft store

works fine i guess, spammed a lotta tabs it slowed down a lot but didn't crashed


perf: optimise .schema

It was reported in Marimo that this is slow if run in a loop
We should see what we can do to optimise it

a few thoughts:

for non-pandas, we can probably use lru_cache for the input dtype
for pandas, we can probably do:

lru_cache for non-object dtypes
for object:

fastpath: if the first non-null in the first 10 elements is str, infer it as String
else, use pd.api.types.infer_type

Just doing
--- a/narwhals/_polars/utils.py
+++ b/narwhals/_polars/utils.py
@@ -5,6 +5,7 @@ from typing import Any
 from typing import Literal
 from typing import TypeVar
 from typing import overload
+from functools import lru_cache

 from narwhals.utils import import_dtypes_module

@@ -64,6 +65,7 @@ def extract_args_kwargs(args: Any, kwargs: Any) -> tuple[list[Any], dict[str, An
     }

+@lru_cache(maxsize=16)
 def native_to_narwhals_dtype(
     dtype: pl.DataType,
     version: Version,

makes the code reported in https://github.com/marimo-team/marimo/pull/3108 about twice as fast:

0.16258981800001493
0.08623049200002697

code:
np.random.seed(42)

num_rows = 1_000
data = {
    "int_col1": np.random.randint(0, 1000000, num_rows),
    "int_col2": np.random.randint(-1000000, 1000000, num_rows),
    "float_col1": np.random.normal(0, 1, num_rows),
    "float_col2": np.random.uniform(0, 100, num_rows),
    "str_col1": np.random.choice(["A", "B", "C", "D", "E"], num_rows),
    "str_col2": [f"val_{i}" for i in np.random.randint(0, 1000, num_rows)],
    "bool_col1": np.random.choice([True, False], num_rows),
    "bool_col2": np.random.choice([True, False], num_rows),
    "group": np.random.choice(
        ["group1", "group2", "group3", "group4"], num_rows
    ),
}
for i in range(1200):
    if i % 3 == 0:
        data[f"float_normal_{i}"] = np.random.normal(0, 1, num_rows)
    elif i % 3 == 1:
        data[f"float_uniform_{i}"] = np.random.uniform(-100, 100, num_rows)
    else:
        data[f"float_exp_{i}"] = np.random.exponential(1, num_rows)
    data.update(
        {
            f"derived_col_{i}": data["int_col1"]
            + np.random.randint(0, 100, num_rows)
            for i in range(10)
        }
    )
df = pl.DataFrame(data)
ndf = nw.from_native(df, eager_only=True)

tick = time.perf_counter()
for i in range(100):
    _ = ndf.schema
tock = time.perf_counter()
print(tock - tick)

But, I'll note that if we instead do the timing test with _ = df.schema, then it takes 0.03628135100007057
We can see what we can do to reduce the overhead, but .schema isn't free in Polars to begin with


Separate util files from controllers

The utility files should be split up from the controllers, instead of having /shared/gh/js/controllers/gh.api.util.js.
|-- constants
|-- controllers
|-- utils
   |-- gh.utils.js
   |-- gh.utils.time.js
   |-- gh.utils.templates.js
   |-- ...
|-- views

Assigning to @bp323 for review

Changes Unknown when pulling 28cd7cccfe5d1f70bee16ad23dfd4d0a05dcbd81 on Coenego:issue-167-utils into ** on CUL-DigitalServices:master**.

Changes Unknown when pulling 93421be1a5539295f39072a2f0bedc7dee29a310 on Coenego:issue-167-utils into ** on CUL-DigitalServices:master**.

Changes Unknown when pulling 675880bed5c316e195eeffbcf8431a15b05af00f on Coenego:issue-167-utils into ** on CUL-DigitalServices:master**.

Changes Unknown when pulling 675880bed5c316e195eeffbcf8431a15b05af00f on Coenego:issue-167-utils into ** on CUL-DigitalServices:master**.

I think I'll leave this one hanging until all PRs have been merged.

Can you take a look at the merge conflict?

Fixed merge conflict. Reassigning to @bp323

Coverage remained the same at 100.0% when pulling 149ad49825345abc5b23b313dbc84a033fdcc8ec on Coenego:issue-167-utils into fea30f11338c9c6a8b62fc43f17af380220e9acf on CUL-DigitalServices:master.

Assigning to @bp323 for review

Coverage remained the same at 100.0% when pulling 915acfe161975499aa09e29987588e7f82fbcfc7 on Coenego:issue-167-utils into bfaafd8f987ae8a5532c39a1e25956a138eec932 on CUL-DigitalServices:master.

Coverage remained the same at 100.0% when pulling 915acfe161975499aa09e29987588e7f82fbcfc7 on Coenego:issue-167-utils into bfaafd8f987ae8a5532c39a1e25956a138eec932 on CUL-DigitalServices:master.

Fixed some minor bugs. Back to @bp323

Verified and merged


Create Min and Max for Credit and Debit

Hi @himanshusingh335 !
I create a feature to find min and max value for credit and debit, i show this in the summary field in overview screen. Not just that, i'm doing another task. This is what i do:

Create min and max feature in Credit and Debit
Refactoring Card into single Card Item (Reusable)
Refresh state after Add item

I hope you will merge this PR and labeled as hacktoberfest-accepted
Thank you :)

The min and max debit/credit shown is for the entire transaction history, correct ?

Just keep in mind, I had used provider state management for this project.
So in the Home_screen.dart, instead of making the class HomeScreen a StatefulWidget, you could have just added the line 'updateBalance = Provider.of(context);' inside the build function to update data whenever any new change is made.
I believe i had forgotten to add that line while making the app and did not notice the stale data being shown in the Home Screen

The min and max debit/credit shown is for the entire transaction history, correct ?

Yes, i find the value from the history

Just keep in mind, I had used provider state management for this project.
So in the Home_Screen.dart, instead of making the class HomeScreen a StatefulWidget, you could have just added the line updateBalance= Provider.of<DatabaseServices>(context); inside the build function to update data whenever any new change is made.
I believe i had forgotten to add that line while making the app and did not notice the stale data being shown in the Home Screen

The reason why i change to Statefull because i found some problem.
When you add new item, the state of you item is not refreshed until i run hot reload.
So that's why i put this code after navigation
Navigator.pushNamed(context, '/new').then((value) {
  setState(() {});
});

That mean after you complete create new item, it will refresh current state, and the item is changes


Selinux not working with provided kernels

Hi,
I initially opened a proper ticket with Scaleway, but I was answered this :
"Please be aware that we do not provide support regarding available kernels.
I would suggest getting in touch with our developers directly through GitHub if needed, as they are the only ones in charge regarding kernels."
So here we go !
When booting various provided kernels on aarch64 nodes, selinux is disabled, and there is no way to change that. No way to influence cmdline to add "enforcing=1" or other parameters. and no way to just confirm that buit and provided kernels support it.
I only see older config files (like for https://github.com/scaleway/kernel-tools/blob/master/aarch64/4.9.30-std/.config) but nothing that maps to any kernel provided through any bootscript.
What would be the best way to have selinux enabled at kernel compile time and at runtime on the provisioned nodes ?

Just to add that I also provisioned a C2 / x86_64 instance and same issue : selinux is Disabled

Just to mention (in case people read this bug report) that it's a known issue : https://github.com/scaleway/image-centos/issues/19
For aarch64 there is still no workaround, but for x86_64, one can :

boot with normal bootscript/kernel
modify /etc/sysconfig/selinux (to put it in permissive)
touch /.autorelabel
modify bootscript to use fedora kernel
systemctl reboot

after a reboot, one can :

modify /etc/sysconfig/selinux (to put it in enforcing)
setenforce 1

What I'd like to see if support from Scaleway for bootscripts that allow selinux on all centos images, like aarch64 too
and it will relabel the filesystem and will have selinux in

im seeing same issue, what is the fix?


non-steam game not detected

As the title says, if I run a regular steam game the program will detect it, however if I add a non steam game and run it via steam launcher the program doesn't detect it, it says that I am not in the game. Is there any way to fix this?

did you fixed it?

Have the same issue with As Dusk Falls


Always add listener for _update_entity_states

If should_poll for ALL EntityComponent is False at startup but
dynamically change to True at runtime, entities can get stuck at an
undesirable states.
Description:
Currently, kodi shows such behavior.
To better illustrate the issue here's how to easily reproduce it.

Have one media_player configured (kodi)
Start kodi
Start HA. should_poll for kodi returns False
Exit kodi
Start kodi
=> HA does show kodi as being offline.

Related issue (if applicable): fixes #17265
Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass

Open an architecture issue first for changes to our entity model.


Jumping to line 0 segfaults

There is no upper bounds checking on line jumps so 0j will segfault

fixed in 09090e24bc600f2c7f4e1e4cabda46bb021227f5


[BugFix] Fix a wrong use of std::move() in cross-thread reduction lowering

Find a wrong use of std::move(). Please see the changes for detail. The wrong use leads to undefined Var of a buffer's data field.
Given C++ evaluates parameter expressions from the end to the beginning, we should use std::move at the first occurrence, instead of the last.
cc @junrushao1994 @Hzfengsy

Looks like I triggered an undefined behavior of C++ 🥺

:joy:
Given the undefined behavior of evaluation order, we decided to remove the std::move() here. Code was updated in the last commit.


makes script-documentation accessible via the robot.scriptDocumentati…

…on instance property
The parseHelp method already stores scriptDocumentation in a hash but does absolutely nothing with it. This mod pushes the stored documentation to an accessible @scriptDocumentation property so that other modules/scripts can make use of it (see https://www.npmjs.com/package/hubot-advanced-help, for example, which is a module I wrote that assumes this property exists). In the absence of this property, I'm going to have to resort to opening sibling scripts and parsing in the documentation even though the robot.coffee script already does that (it just does nothing with the data).
cc @imperialwicket @nealfax

I like the goal here. If we are going to go down this route, I would really like to combine with #917 and get a single, nice data structure that contains all the documentation separated by script. I'm game for iteration, but the first step needs to be hiding the internal data structures and exposing query methods instead.

@sharabash thanks for fixing up the commit authorship!
Two other pieces of feedback:

do you think it'd be more useful for accessing script documentation by script name (ie use an object instead of an array)?
could you add documentation to doc/scripting.md so script authors can discover it? I try to add documentation for these type of things, so it's not accidentally removed from core when it looks like it's not being used anything.

How about a set of functions to manipulate the command list? This will make it easier to understand what functionality should be tested and maintained when making code changes.
robot.registerCommand
  example: 'hubot: ping'
  description: 'Hubot will respond with PONG'
  module: 'hubot-ping'
robot.registeredCommands # returns an array of command examples

I'm not sure I completely like the functions as-is, but thinking in terms of functions instead of directly exposing data structures will make it a lot easier to maintain long term (you can see how hard changes are to directly exposed data structures in #917).

cc #873 because registerCommand is starting to feel a lot like some of the ideas there

:+1: for this idea. Coincidentally, I did the exact same thing because I wanted an easier way to generate a list of configuration options available.


adding protected contact and company to controller

💯 adding protected contact and company to controller 💯

💯 adding protected contact and company to controller 💯


Added a basic Dockerfile to improve dev experience

I made a simple docker container (heavily influenced on the official Tensorflow docker container that I've used for other deep learning projects, and sharing some of the same features as the official pytorch and openfold containers. I did this mostly because I didn't want to change the version of CUDA and other packages installed on my linux box, and figured this would enable some nice portability for users who I'd imagine are often running ESM in a Docker-based HPC environment like Kubernetes or AWS Batch.
In particular, this container

Is based off of an NVIDIA CUDA base image (uses CUDA 11.8 though that's compatible with this version of pytorch built against 11.3, providing some forward usability).
Uses ubuntu 22.
Includes Miniconda, reflecting the environment.yml file included in the repo, and builds that environment.
Includes the appropriate apt-get packages needed to install esm and openfold.
can be easily updated by users looking to work with pytorch or tensorflow since the underlying cuda installation works on both.

Build steps
 docker build -f Dockerfile -t esm .

Running the container
docker run -it  --rm --runtime=nvidia --gpus all esm
conda activate esmfold
# Whatever else you want to do!

I'd be happy to follow up with a docker-compose.yml file to further simplify build/usage, and to add some CI/CD automation to add container builds to Github Actions, if of interest. Figured I'd check with the maintainers first to see if this was of interest before continuing though.

Hi there
Is it already possible to use the container and how? I tried but without success....
MG

@Mar-Gra-creator what error do you get?


Missing $(TESTOPTS) in lots of test invocations

Original issue: https://charm.cs.illinois.edu/redmine/issues/646

$ git grep charmrun tests/ examples/  | grep Makefile: | grep -v TESTOPTS | egrep -v 'rm -r?f' | wc -l
154

This is an approximation of the number of charmrun invocations in tests and examples that don't include $(TESTOPTS) like they're supposed to.
The right answer to this is not adding them everywhere, but rather systematically replacing charmrun invocations with a standard 'run' function sourced from an included makefile snippet, so that this error can never be repeated again.

Original author: Ehsan Totoni
Original date: 2015-02-09 20:12:27

fix submitted for review:
http://charm.cs.uiuc.edu/gerrit/509
scripts used:
#!/bin/bash
FILES=`git grep charmrun tests/ examples/ | grep Makefile: | egrep -v 'rm -r?f' | cut -d : -f 1 | uniq`

for MFILE in $FILES; do
  echo $MFILE
  SLASHES=`echo $MFILE | grep -o "/" | tr "\n" "\0"`
#remove one slash
  SLASHES=${SLASHES:1}
  PRE=`echo $SLASHES | sed 's/\//\.\.\//g'`
  echo $PRE
  sed -i '1i-include '${PRE}'common.mk' $MFILE
done

#!/bin/bash
FILES=`git grep charmrun tests/ examples/ | grep Makefile: | egrep -v 'rm -r?f' | cut -d : -f 1 | uniq`

for MFILE in $FILES; do
  echo $MFILE
#sed -i -e 's/\btime\b//g' -e '/charmrun/ // s/$/\)/'   's/\.' $MFILE
  sed -i 's/\btime\b//g' $MFILE
  sed -i '/^[ \t]*-*\.\/charmrun/ s/\$(TESTOPTS)//g' $MFILE
  sed -i '/^[ \t]*-*\.\/charmrun/ s/$/)/' $MFILE
  sed -i 's/^[ \t]*\.\/charmrun/\t\$(call run,/' $MFILE
  sed -i 's/^[ \t]*-\.\/charmrun/\t-\$(call run,/' $MFILE
done

Original date: 2015-02-13 23:04:36

There may be some holdovers left behind, but the bulk work is done. Thanks!


Reset usb before connection.

This is required here for lglaf works at all. Otherwise, according to a wireshark capture, the bulk out packet goes out but there are no bulk in package (as it should) for the HELO message. It still fails the same way if the HELO message is skipped.
The problem was also seen on @steadfasterX fork.
After applying this patch the communication is established. Tested on an LG K-100
This is based on https://github.com/Lekensteyn/lglaf/issues/3 Thanks @shinobisoft :)
Note: I needed to add the --skip-hello for the opened shell to return some sensible responses.

thx ;) merged in my fork


[CC-KBC] Initial implement of CC-KBC.

This PR does not include the functional parts that need to communicate with KBS temporarily, because it needs to wait for KBS ready before development.

Let's try to get this merged. @jodh-intel, any further comments? @hdxia Any comments form the KBS perspective?


README.md and Assets updates

Hi, I've added some changes to the README.MD and Assets file.
Changes:

Updated the 3 pictures under the "Instructions" section with the current website.

Changed the README.md to reflect the changes on the website

Added a table of contents to README.md
Added a features section to README.md

Thank you, @ethanchan163, for your contribution.


[BUG] ppl retruns syntax error when field name is the ppl keyword

What is the bug?
PPL failed to parse when some fileds in log are PPL keywords.
How can one reproduce the bug?

Generate a log like { "log": "test mesg", "timestamp": "2022-07-28 22:45:00" } in index logstash-2022.07.28
Query the data by source=logstash-2022.07.28 | parse log "(?<almsg>\w+).*"
UI shows 400 client error.

What is the expected behavior?
Return parsed fields correctly
What is your host/environment?

OS: ubuntu 20.04 (but I run the opensearch & dashboard in docker)
Version: opensearch 2.1.0, opensearch-dashboard 2.1.0
Plugins: default plugins in docker images opensearch 2.1.0

Do you have any screenshots?

Do you have any additional context?
Is there any escape grammar for the scenario? I have tried to find in document but found nothing.
Or please show me the documentation I can refer.
Many thanks!

Need to extend keywordsCanBeId in ANTRL for PPL and SQL, see OpenSearchPPLParser.g4 and OpenSearchSQLIdentifierParser.g4:
https://github.com/opensearch-project/sql/blob/main/ppl/src/main/antlr/OpenSearchPPLParser.g4#L486-L492
https://github.com/opensearch-project/sql/blob/main/sql/src/main/antlr/OpenSearchSQLIdentifierParser.g4#L60-L66

Thx! That helps!

@Yury-Fridlyand don't we still need to make this fix?

I think yes


SWARM-681: health endpoints are counter-intuitive

[x] Have you followed the guidelines in our Contributing document?
[x] Have you created a JIRA and used it in the commit message?
[x] Have you checked to ensure there aren't other open Pull Requests for the same issue?
[x] Have you built the project locally prior to submission with mvn clean install?

Motivation
If a health endpoint is defined at path /app/health, it's primarily
available under /health/app/health. If it's unsecured, it's also
available at the original path /app/health, but if it's secured,
the original path /app/health returns 403. That's inconsistent
and counter-intuitive.
Modifications
All original paths of health endpoints simply return a 301 redirect.
Result
More intuitive behavior when original path of a health endpoint
is accessed.

Can one of the admins verify this patch?

add to whitelist

lgtm

@Ladicek the test needs to be updated


Profile - strcmp() expects parameter 2 to be string, object given

After update to version 0.9.9 from version 0.9.6
I get error if try to open /user/settings/profile
strcmp() expects parameter 2 to be string, object given
in C:\OpenServer\domains\TaxiTeeNee\vendor\yiisoft\yii2\helpers\BaseHtml.php at line 1712
Additional info

Q
A

Yii2 version
2.0.9

Yii2-user version
0.9.9

PHP version
5.6

I am sorry, i was stupid. I forget make migration/up. After when i update profile table the error was gone.
Please close this issue.

can this be the issue for #764 ??


Assertion failure when access token reponse does not include refresh token

In oauth2_flows/auth_code.dart, the function obtainAccessCredentialsViaCodeExchange() sends an OAuth2 token request, obtaining an access token as JSON, of the form:
0: "access_token" -> "<elided>"
1: "expires_in" -> 3487
2: "scope" -> "openid https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email"
3: "token_type" -> "Bearer"
4: "id_token" -> "<elided>"

This is returned and stored in credentials in endpoints/google_endpoint.dart:230. Then an AutoRefreshingClient is instantiated using these credentials. That causes an assert failure in auth_http_utils.dart:98:
        assert(credentials.refreshToken != null),

The access token JSON does not include refresh_token (which would be saved in credentials as refreshToken by auth_code.dart:128).
This causes Google login to fail.
I don't know why the response does not include a refresh token in this case, but wouldn't it be better to still enable temporary login even if a refresh token is not provided by the server?

I found this info here: https://stackoverflow.com/a/54572538/3950982

In order to get new refresh_token each time on authentication the type of OAuth 2.0 credentials created in the dashboard should be "Other". Also as mentioned above the access_type='offline' option should be used when generating the authURL.
When using credentials with type "Web application" no combination of prompt/approval_prompt variables will work - you will still get the refresh_token only on the first request.

I'm using the Android OAuth type in the developer console, so maybe this is why no refresh token is being sent?
Either way, the code should not fail here with an assertion failure, if the refresh token isn't sent under some circumstances.

It looks like you need to add access_type='offline' prompt='consent' to always be sent a refresh token:
https://github.com/googleapis/google-api-python-client/issues/213#issuecomment-217848296

Also quoted in that bug report:

"Be sure to store the refresh token safely and permanently, because you can only obtain a refresh token the first time that you perform the code exchange flow."

Is the refresh token being stored somewhere for the user, to avoid requesting it again?

However adding 'access_type': 'offline' to the request in obtainAccessCredentialsViaCodeExchange() gives a 500 server error...

See also this, re forcing the user to re-authorize, in order to obtain another refresh token. Is this done automatically by the googleapis library?
https://stackoverflow.com/questions/8942340/get-refresh-token-google-api/10220362#10220362

@lukehutch – which version of googleapis_auth are you using? What's in your pubspec.lock file?

I was using serverpod_auth_server 0.9.21, which depends upon googleapis_auth ^1.3.0.
https://github.com/serverpod/serverpod/blob/main/modules/serverpod_auth/serverpod_auth_server/pubspec.yaml
Currently this means it's pulling in version 1.3.1, since that is the latest version:
  googleapis_auth:
    dependency: transitive
    description:
      name: googleapis_auth
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.3.1"

Weird!
https://github.com/google/googleapis.dart/blob/master/googleapis_auth/lib/src/auth_http_utils.dart#L98
That assert is not on line 98.
Could you send me a stack trace?
On Tue, Jan 17, 2023 at 5:06 PM Luke Hutchison @.***>
wrote:

I was using serverpod_auth_server 0.9.21, which depends upon googleapis_auth
^1.3.0.
https://github.com/serverpod/serverpod/blob/main/modules/serverpod_auth/serverpod_auth_server/pubspec.yaml
Currently this means it's pulling in version 1.3.1, since that is the
latest version:
googleapis_auth:
dependency: transitive
description:
name: googleapis_auth
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.1"
—
Reply to this email directly, view it on GitHub
https://github.com/google/googleapis.dart/issues/487#issuecomment-1386313984,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAEFCR6MKM4VXDTL5ZNQPLWS46YBANCNFSM6AAAAAATUO44YQ
.
You are receiving this because you commented.Message ID:
@.***>

@lukehutch – send me a DM on Twitter - let's chat! https://twitter.com/kevmoo

As discussed on Twitter, this bug was triggered by (a slightly modified version of) the serverpod_auth example code, but I don't have this code anymore, because I had to move on to use Firebase Authentication. It should be relatively easy to try running this example code to replicate the problem.
https://docs.serverpod.dev/concepts/authentication
https://github.com/serverpod/serverpod/tree/main/modules/serverpod_auth
https://github.com/serverpod/serverpod/tree/main/examples/auth_example

@kevmoo I tried creating PR #524 to fix this bug, based on this suggestion but it didn't work -- what is the right way to force the user to consent to offline access?
Here's what's going on:
auth_code.dart, method obtainAccessCredentialsViaCodeExchange calls
  final jsonMap = await client.oauthTokenRequest(
    {
      'client_id': clientId.identifier,
      'client_secret': clientId.secret ?? '',
      'code': code,
      if (codeVerifier != null) 'code_verifier': codeVerifier,
      'grant_type': 'authorization_code',
      'redirect_uri': redirectUrl,
    },
  );

The response of this request does not include a refresh_token if the user has signed in before. Therefore, refreshToken ends up being null:
 final refreshToken = jsonMap['refresh_token'] as String?;

This is passed to AccessCredentials:
  return AccessCredentials(
    accessToken,
    refreshToken,
    scopes,
    idToken: idToken,
  );

These AccessCredentials are later passed to an AutoRefreshingClient, which causes the assert failure in auth_http_utils.dart:98:
        assert(credentials.refreshToken != null),

Possible solutions:

The refresh token should be saved in SharedPreferences and reused if available, as long as the logged-in user matches the user for the saved refresh token; or
The request should be made with the parameters prompt=consent&access_type=offline, to force consent on each login, which will deliver a new refresh token for each login.

I found a fix/workaround: by using the GoogleSignIn library, and providing forceCodeForRefreshToken: true, I can set prompt=consent on the first auth request.
However, the googleapis.dart library still needs to do something smarter if a refresh token is not returned from a request, rather than throwing an assertion error.


Browser support

Hi, what's the browser support of this plugin? I assume it supports IE8 since the minimum jQuery version needed is 1.4.*. Will be great if you put this information in the readme file.

I have confirm that it works on either IE7 and IE8, great! This info might be useful for other devs so please consider to add browsers support section in the readme file.


how to shut down the px4 in offb mode

Hi,
I'm running PX4 simulation in Gazebo with offboard mode,  I am in need to land it at a low height. I'm wondering is there any command(topic or sevice) i can send to the px4 by ROS to shut down it?
Thanks!

Disarm? mavros/cmd/arming


Cosmos kit can't keep state login when coin98 extension is disabled

I am using cosmos kit to connect coin98 , keplr, leap and cosmos leap metamask. When i disabled coin98 in chrome and connect with keplr or other wallet and reloading, the app can't keep wallet is connected.
All package is being used in my app below

I am looking forward to hearing from you !

@CaptainHoangLe  Can you provide a minimum codebase to recreate the issue or make a Loom(Loom.com) video to show the issue ?

I think this may be reason of my problem. You can disable or remove coin98 extension and try.
https://codesandbox.io/s/bold-moon-8dh7rm?file=/src/App.js&fbclid=IwAR1OTAWk1QUTWaR5Qm8vfpOe0cnLHci29hk7EkRRS47p59-K5ZTGM-dwzEk


Click on open test report goes to blank page.

Tried to send the report to ms teams using below command.

On click of open test report , blank page is opened.

Am i doing something wrong. Please help.

I´m facing a similar, issue, not sure how to set up the url link on the MSTeams message

I am also facing the same issue, I tried with below two urls but no luck
http://localhost:5500/allure-report/index.html
http://<IP_ADDRESS>:5500/allure-report/index.html

@maritome
I'm using azure for running the pipeline. and when the pipeline itself should send the message to MS Teams after is done. Now my doubt is what path should I use to link the report? I tried with the path to the index.html file inside the repo and I only get the file content inside the repo, so not what I need.
Using the working directory of the pipeline should display that? So something like npx cypress-msteams-reporter --report-url "$(System.DefaultWorkingDirectory)/allure-report/index.html"


Range method that handles date line wrapping

KDBush already has a range method, but geokdbush should have a wrapper around it that handles the date line wrapping.

I would also love to see this

I would love this too. For now as I don't need an exact orthogonal range (I'm only using this to reduce the set of items I need to process for efficiency) I'm changing my bounding box into a bounding circle by calculating the distance between my southWest and northEast points dividing by two and using that as my radius for the "around" function.
Just putting this comment here in case this workaround might be of help to others.


TCK: Provide test classes working directly on JDK9 interfaces

There's two ways to go about this I guess:
Proposed style of rolling it out:

change TCK code to work on JDK9 interfaces directly
make current Verification classes go through adapters provided via https://github.com/reactive-streams/reactive-streams-jvm/issues/294
add new Verification classes (named like "FlowPublisher...Verification" etc, which new users can use then

This would move "us" to test the JDK things directly, which is the end goal and allow slowly moving away from having to use the adapters for most impls (as impls move to implementing the JDK interfaces)

@ktoso I believe you wanted to take a stab at this? :)

Yes, absolutely - work in progress already.
Terribly jet-lagged though, hope a good nights sleep today will get me hacking on to finish this up on monday US time.

Awesome. Let me know how I can help.
--
Cheers,
√
On Oct 2, 2017 05:43, "ktoso"<EMAIL_ADDRESS>wrote:

Yes, absolutely - work in progress already.
Terribly jet-lagged though, hope a good nights sleep today will get me
hacking on to finish this up on monday US time.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/reactive-streams/reactive-streams-jvm/issues/388#issuecomment-333434655,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAqd3cPx4aHm3RRuOIuJ97dmnLp0D4Nks5soFvNgaJpZM4OWiq_
.

This should be simply a copy-paste of the current TCK in a new module and replacing org.reactivestreams with java.util.concurrent.Flow, right?

That would not be nice for maintenance though ;)
On 2 October 2017 at 02:09:03, David Karnok<EMAIL_ADDRESS>wrote:

This should be simply a copy-paste of the current TCK in a new module and
replacing org.reactivestreams with java.util.concurrent.Flow, right?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/reactive-streams/reactive-streams-jvm/issues/388#issuecomment-333480148,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAHYk_0xDS36nYUva9KLHLPa7lV8KZomks5soKgvgaJpZM4OWiq_
.

I'm not a Gradle guru but I'm sure it can be automatically synchronized via a scripting.

I'm not a Gradle guru but I'm sure it can be automatically synchronized via scripting.

Nope, it's still tedious as the references have to be carefully replaced since the containing package is org.reactivestreams too.


example-robot-data is required dependency even without tests

Example-robot-data is only required for the unit tests, it's correctly set as test_depend in the package.xml but it's always required in the CMakeLists.txt :
https://github.com/Gepetto/aig/blob/16d51618674c79e3a166a7f6f7963de299275fac/CMakeLists.txt#L42

We would benefit from a release for the packaging of @pFernbach I guess.
We have a pending PR which need more work that could also be release.
Question is, do we wait the pending PR for a new release?

Oh I didn't check on the devel branch, sorry. I can wait a couple of days for this. I will take a look at the pending PR


TestPR - DO NOT MERGE

What does this PR do?
test
What issues does this PR fix or reference?
Is your PR tested? Consider putting some instruction how to test your changes

LGTM

lgtm

/lgtm

/lgtm cancel

lgtm

/lgtm

/approve

/approve cancel

Closing this test PR.

lgtm

/lgtm

/lgtm

/lgtm cancel

Closing it.


[Help Wanted] Use viper as the configuration solution and support hot reload for config files

Why you need it?

Now, we use different ways to handle the config files for dfdaemon, dfget and supernode.
Let's take supernode as an example. In order to achieve that  command lines have a higher priority than the configuration file. We should do the three things as follows:

load config from config file
get cli config which specified by user explicitly
integrate the above two configurations which means use cli configurations overrides the configurations from config file

And everything will be simple with viper.
In addition, support for reloading a configuration with zero downtime is very useful especially after the project goes online. And viper also supports the ability to have your application live read a config file while running.
So I think we need to do following things:

[x] use viper to manage the configurations for supernode
[ ] use viper to manage the configurations for dfget
[ ] support hot reload config files for both dfdaemon and supernode
[ ] support init from environment variables both dfget, dfdaemon and supernode

How it could be?

Other related information

cc/ @lowzj  @inoc603 @yeya24
Please take a review. THX. 😄

Agreed. dfdaemon is already using viper, and it should be rather easy to support config hot reloading.

agree

/cc

@SataQiu Would you like to fix this issue? 😄

Yes, I‘d like to pick it up.  @Starnop
But these two days are a bit busy, I will try to fix this issue in the next two days.

@SataQiu I have updated this issue. And would you like to continue to fix it? 😄

Recently, I was trying to implement hot reload for dfdaemon.
But I'm confused about how to deal with Config object.
For now, we create the final Config object by integrating configurations from different sources(flag and file), then pass this Config object to the programs which need it.
It's easy to refresh Config object with viper, but how do we tell other components to re-read the configuration.
I think we might need a global Config singleton. Instead of passing the Config object everywhere, we should let the program get the global Config object through a static method(maybe config.GetConfig()). We can then implement hot reload by updating the global Config singleton.
Also, I don't think all configuration items support hot reloading. For example, listening ports are difficult to change without restarting the program. Perhaps we should plan which configuration items should support hot reload.
Looking forward to your Suggestions! @yeya24 @inoc603 @Starnop

/cc @allencloud

/cc @allencloud @lowzj

I agree with that. A global config var may help. I think we should divide the current configuration into two groups first, one group cannot be hot reload and these vars cannot change during runtime like port, log level, I think these vars should be passed via flags. Another group of vars support hot reload, like registry conf, they can only be passed via config files.
This pattern is very similar to Prometheus, which I think is a good way to deal with configurations.


Behaviours Panel is not reconstructing its state

Description

Open Design Editor
Select Element on Workspace
Add Behaviour -> Go To The Page => file.html
Close Design Editor
Reopen it
Select The same element
Open Behaviours panel

See that third dropdown menu has Choose File... placeholder instead of File value.

I've written some code and now it doesn't work properly only during the first opening. Now I need to investigate other purposes of this issue. I suppose it can be something with the element selection.

Now I am not sure what is responsible for this issue. I abandon it and switch to sth different.


Add GraphQL endpoint

Would make it much easier to build React & similar frontends. Maybe with https://github.com/graphql-python/sanic-graphql ?

great idea!

👋 I'd be interested in building this out in Q1 or Q2 of 2020 if nobody has tackled it by then. I would love to integrate Datasette into @thechicagoreporter's practice, but we're also fully committed to GraphQL moving forward.

@eads I'm interested in helping, if there's still a need...


Add Python API docs

Here's my plan for this:

Fix https://github.com/pulumi/pulumi-terraform/issues/168. Doing this will make it monumentally easier to generate high-quality documentation.
Python makes it extremely easy to inspect modules and programmatically extract documentation from them. This is what pydoc does. Pydoc is very opinionated about its output HTML format so we should do what Boto has done here and write a script that extracts documentation from our packages and formats it as documentation.
With our documentation tool in-hand, we can then begin annotating fields of type TypeMap in Terraform with the exact dictionary state that TF is expecting, so that we can generate documentation for them. Python has no explicit syntax for this but, if we own the documentation generator, we can use normal Python metaprogramming techniques to accomplish this.

The end result is high-quality generated documentation from Python modules. This involves writing a pydoc-like Python script for inspected our own modules. Luckily Python has extremely robust standard library support for doing this (inspect and importlib`). The big downside here is that writing a program like this is advanced Python that can get confusing.
For M20, I plan on taking steps 1 and 2. Step 3 is absolutely required for good documentation but it's out of scope for M20 since it's a bit more work.

To elaborate on 2, Boto accomplishes this by reflecting over the services that it provides and generates files that are ultimately fed to Sphinx, which generates HTML.
This may or may not be a good idea for us to adopt - I'm not sure yet. We've had a lot of success using tsdoc to generate json which we can then use to produce documentation that is still within the style and scheme of our existing documentation. Sphinx is opinionated and wants to control its output format. It may be hard to get Sphinx to play well with our existing documentation theme.
That said, Sphinx is the "standard" tool in this space and it would be nice just for practical reasons to stick as close to the "standard" path as possible.


Android : couchbase-lite-java-listener with XHR request wont work in background in latest chrome.

Hi Folks,
1)App design same as https://github.com/couchbase/couchbase-lite-java-listener/issues/78
2)Currently has below chrome issue/behavior and app JS /XHR client request fails to work in background.
https://github.com/couchbaselabs/TodoLite-PhoneGap/blob/f1a810f9408a9807f3bf25ae69ba1d6a6aaee71c/js/modules.js
https://bugs.chromium.org/p/chromium/issues/detail?id=913373.
3)JS/Webview Websockets client requests seems working, does the websocket TJWS was tested anytime with CBL?
http://tjws.sourceforge.net/
Acme.Serve.SelectorAcceptor - non secure, channel based implementation (use with websocket in non blocking IO mode).
rogatkin.wskt.SSLSelectorAcceptor - secure, channel based implementation (use with websocket in non blocking IO mode).
4)@pasin please share your thoughts on how servlet 2.3 was picked? and which version of TJWS is used in CBL Listener?

Tried enabling websocket provider(https://github.com/couchbase/couchbase-lite-java-listener/blob/master/vendor/tjws/src/java/Acme/Serve/Serve.java#L708) which uses 3.1 servlet below error is seen.Looks to me Serve.java(servlet 2.3) and Websocket code(servlet 3.1).

Getting error in https://github.com/couchbase/couchbase-lite-java-listener/blob/master/vendor/tjws/src/java/Acme/Serve/Serve.java
error: ServeConnection is not abstract and does not override abstract method getHeaderNames() in HttpServletRequest
error: getHeaderNames() in ServeConnection cannot implement getHeaderNames() in HttpServletResponse return type Enumeration is not compatible with Collection
error: getHeaders(String) in ServeConnection cannot implement getHeaders(String) in HttpServletResponse return type Enumeration is not compatible with Collection
https://github.com/saces/servlet-api-2.5/blob/master/src/javax/servlet/http/HttpServletResponse.java
https://github.com/saces/servlet-api-2.5/blob/master/src/javax/servlet/http/HttpServletRequest.java#L230
https://github.com/javaee/servlet-spec/blob/master/src/main/java/javax/servlet/http/HttpServletResponse.java#L416
Thanks
Nithin

@pasin
Please clarify the below.
1)If the this module is changed from XHR to web-socket API's.
https://github.com/couchbaselabs/TodoLite-PhoneGap/blob/f1a810f9408a9807f3bf25ae69ba1d6a6aaee71c/js/modules.js
2)Enable Websocket at TJWS server, then the do we need any other changes at listener or router for CBL REST requests to work? i.e message/header format for web-socket design will change?
https://github.com/couchbase/couchbase-lite-java-core/tree/master/src/main/java/com/couchbase/lite/router
https://github.com/couchbase/couchbase-lite-java-listener/tree/master/src/main/java/com/couchbase/lite/listener
Thanks
Nithin

@NitzDKoder CBL Android 1.x doesn't support Web Socket. We have never tested or attempted to enable Web Socket with TJWS server. The TJWS version info and the source code is in here.

@pasin  thanks..
Any design thoughts how easy to enable the TJWS with websocket?  when enabled, what changes are expected at router side?


Feature: add node run command

Fix #571

On second thought, for this PR, maybe the CLI should just be aztk spark cluster run --id <id> --node-id <tvm-xxx> instead of an entirely seperate endpoint.

Thought this, the problem is the same we talked about earlier where you might make a mistake and run on all nodes instead of a single one. Is it however a big deal?


#678 - Implemented

#678 - Implemented

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


send user/ip blocked signal only once

Only send the username/IP blocked signal if the user/IP is actually blocked.
Like this multiple sending of the signal is avoid. The block is set even though to avoid race conditions. There is still a slight chance the signal is send twice, but that should be OK.

Perhaps a unit test could be nice? There's already a SignalTest-somethingsomething test class ;)

Coverage increased (+0.1%) to 90.237% when pulling 666848bdc4c4d7850c7fed528608a05fc9672ffd on horida:send_blocked_signal_only_once into fcfa88d67905a9534a143f5ebeab35148593e534 on kencochrane:master.


Sockpress Router Instances

Hi,
I got some time today to start working on an Express style Router instance for sockpress, I wanted your initial feedback as to your thoughts on merging this in to the main repo once you're happy.
Inspired by: https://github.com/expressjs/express/tree/master/lib/router
The main part I am unsure of is whether Router.js should work using a collection of Route.js instances the same as Express? I am not sure if this is the best pattern for sockets?
Things I still need to do:

More tests (There are no tests for .use() currently)
Remove the need for the new keyword on creating an instance
Clean comments

Express Example:
var router = express.Router()

router.use(function(req, res, next) {
  // .. some logic here .. like any other middleware
  next();
});

router.get('/events', function(req, res, next) {
  // ..
});

// only requests to /calendar/* will be sent to our "router"
app.use('/calendar', router);

Sockpress Sockets Example:
var router = new app.io.Router()

// Optionally set route, or just call router.on() and router.event()

router.route('/')
.on('connection', function(socket) {
  // All functions on the router will return an instance of router,
  //not a route instance as with Express Router
})
.event('ping router_namespace', function(socket, data) {
  socket.emit('pong router_namespace', data);
})
.use(function (socket, next) {
  next()
})

app.io.route('/namespace', router);

All code can be viewed pulled from my fork of your repo.

Hi!
This seems to be a pretty good idea, and I would be really happy to merge this feature into Sockpress :)
Please just ensure that:

Current behavior is preserved
Current tests are still executed with success with the future route system
New tests are added to check that everything works

The main part I am unsure of is whether Router.js should work using a collection of Route.js instances the same as Express? I am not sure if this is the best pattern for sockets?

I'm a little bit confused by the term "Route" when we are dealing with sockets. How do you differentiate two events with the same name, but not the same route? Is it linked with namespaces?
Thank you for you work!

All original tests are still working, I just did a reshuffle of the code base to allow for the Router class. I added more namespace tests using the new Router too and that is all working, I just have to add some to check the .use() functionality.
You're correct, it is using namespaces to emulate the routes, we're using them on our company project so we can assign routes for each plugin within our modular express app and we don't need to worry about event naming conflict.
With Express it has a Router class that you can then call router.route('/someRoute'), this then returns a Route.js class instance and all methods you attach only affect that route.. With my router there isn't any concept of multiple routes within a router, only a single route and many events that will register to that route.
I guess my issues are not knowing enough about the best practices of sockets with complex namespaces & sub-namespaces but I will do some reading tomorrow as I have at least 1 more day to work on this.
Expect an update tomorrow and possibly some more commits.
If you have any suggestions I will be happy to implement them, check out the current tests to have a play with it if you like.

Closing this now as I have opened a pull request with the functionality implemented


Support brpc for PPC64 by HX

Is your feature request related to a problem? (你需要的功能是否与某个问题有关?)
Support brpc for PPC64
Describe the solution you'd like (描述你期望的解决方法)
Add some arch code.
Describe alternatives you've considered (描述你想到的折衷方案)
The uploaded code is more used to record for the question.
brpc-ppc64-build-fix.patch
Additional context/screenshots (更多上下文/截图)

The patch deletes some parts of performance. If performance is needed, main works will be done in neo2sse.c.

Hi @yjloong , thanks for your contribution, could you please consider opening a Pull Request?


MySql

Option to load videos ID from MySql DB to playing videos from youtube.

Hi! Do you want to have your own DB for this?

I have a Home page with links from YouTube.

From: Alexey Mostovoy @.>
Sent: Tuesday, December 7, 2021 4:14:24 PM
To: TalbotGooday/Android-Oembed-Video @.>
Cc: andretsc @.>; Author @.>
Subject: Re: [TalbotGooday/Android-Oembed-Video] MySql (Issue #4)
Hi! Do you want to have your own DB for this?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FTalbotGooday%2FAndroid-Oembed-Video%2Fissues%2F4%23issuecomment-987634113&data=04|01||415b74996f944665cea408d9b95132bb|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637744580670720270|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=gc9RespJS7WEF%2BPAUZKJBZWQcwi7%2FkAcxm3w8duiRQA%3D&reserved=0, or unsubscribehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAQFK5MPP2O3IPPTPT4JL7DLUPWX5BANCNFSM5JQC3EVQ&data=04|01||415b74996f944665cea408d9b95132bb|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637744580670720270|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=0dXk4E6UUSX82l9jUSvosGE0vuu4vTFNtBVZfSmh7L4%3D&reserved=0.
Triage notifications on the go with GitHub Mobile for iOShttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04|01||415b74996f944665cea408d9b95132bb|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637744580670730225|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=Mw%2FR0eM1VGVSuLe4RdB423pWfgpfQOubqhdzrDET%2BWo%3D&reserved=0 or Androidhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04|01||415b74996f944665cea408d9b95132bb|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637744580670730225|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=WNAysKFoe%2BilG1%2BPWn7KsC%2FAkSmHblHV3c2Vdc1%2Flok%3D&reserved=0.

And what is the problem to take that links and use the lib to load them?

Autoplay

From: Alexey Mostovoy @.>
Sent: Tuesday, December 7, 2021 5:54:14 PM
To: TalbotGooday/Android-Oembed-Video @.>
Cc: andretsc @.>; Author @.>
Subject: Re: [TalbotGooday/Android-Oembed-Video] MySql (Issue #4)
And what is the problem to take that links and use the lib to load them?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FTalbotGooday%2FAndroid-Oembed-Video%2Fissues%2F4%23issuecomment-987704550&data=04|01||3472c9a78570468cd77908d9b95f2581|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637744640571956249|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=wonvxkrdhpqaP9RDN4DB2huSW1lNHYLXaaOUw7Wxv4Q%3D&reserved=0, or unsubscribehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAQFK5MMJXD7NROZT5CPAGQDUPXDTNANCNFSM5JQC3EVQ&data=04|01||3472c9a78570468cd77908d9b95f2581|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637744640571966205|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=eaIe%2BKxQKH%2FEU2BfNmWV3hSfMbvmZzaUQ%2FJnTWNlLyQ%3D&reserved=0.
Triage notifications on the go with GitHub Mobile for iOShttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04|01||3472c9a78570468cd77908d9b95f2581|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637744640571966205|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=YD8AOqnD9o8EKfFG9%2FScj8ePbZ2bRbdODdnr92C%2Bv7w%3D&reserved=0 or Androidhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04|01||3472c9a78570468cd77908d9b95f2581|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637744640571966205|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=SXBow0MX1dZtu43BQuydwgi19P9rq7pauZgPdfeKU2E%3D&reserved=0.

What is wrong with autoplay?

Isn't starting automatically, another question is how to connect with my own DB?

From: Alexey Mostovoy @.>
Sent: Tuesday, December 7, 2021 10:19:59 PM
To: TalbotGooday/Android-Oembed-Video @.>
Cc: andretsc @.>; Author @.>
Subject: Re: [TalbotGooday/Android-Oembed-Video] MySql (Issue #4)
What is wrong with autoplay?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FTalbotGooday%2FAndroid-Oembed-Video%2Fissues%2F4%23issuecomment-987919432&data=04|01||f9c72fa3857a4d06f35e08d9b984456b|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637744800018762319|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=xVCtHJM3eQ08naRurjWmFdjGRylXksNHv5rx3rVqhes%3D&reserved=0, or unsubscribehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAQFK5MPFDNQAPDPHSRBVSTLUPYCX7ANCNFSM5JQC3EVQ&data=04|01||f9c72fa3857a4d06f35e08d9b984456b|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637744800018762319|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=gQ2JhGTfERR6ivK4jOhicHzGGv2L7dtoSaivjRRkCJc%3D&reserved=0.
Triage notifications on the go with GitHub Mobile for iOShttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04|01||f9c72fa3857a4d06f35e08d9b984456b|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637744800018772276|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=oS0R1xTmUJw2lXnYFb7v3NF%2Fetg%2F9M58emfOOGzW0Hw%3D&reserved=0 or Androidhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04|01||f9c72fa3857a4d06f35e08d9b984456b|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637744800018772276|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=fj1LiTIDwqe1G2Cr4BeL2qKNlu7wAxnwN444Rfz3zXo%3D&reserved=0.

Actually I'm not sure how my library can help you
If you want to play a video in a WebView with your set of ids you can use this link https://www.youtube.com/embed/${videoId}?autoplay=1&vq=small and that's it.


[T4A5][W09-B1]Yeo Xiang Guang Brandon

Ready for review.

Some comments added. Please close the PR after reading comments.


[RFC] Have case (non-exhaustive) and case! (exhaustive)

Now that #8424 is merged, and now that we'll soon make it an error and the implicit else nil will be gone, I think we all agree on these points:

having the compiler check exhaustiveness is great! No more else raise "can't happen"
having a single construct for this is a bit annoying. In many cases having to add an else nil or else # skip is tedious

In my original proposal, #8001, I envisioned using a different keyword for this: case!. The reasons against these were:

case! looks ugly, or variants of this (a keyword with a bang looks strange, etc.)
having two constructs which are similar but different can be confusing

However, now that we put exhaustive case in practice, I can see having two constructs as something good. Some benefits:

case keeps working like in Ruby, and it keeps working like in Crystal 0.33.0. That means no breaking changes, no warnings to fix, etc.
case! can be seen as a more strict case, where exaustiveness will be checked by the compiler
case! will only allow "patterns" that are provable by the compiler. You won't be able to do case! exp; when 'a' because char literals, number literals, etc., can't be proved for exhaustiveness. So you will only be able to put types and enum members. That will also get rid of the mysterious "can't prove exhaustiveness" warning where you for sure know that there's no way to prove exhaustiveness.
given that case! can only allow provable patterns, using a symbol there can only mean matching against an enum member, and translating that to enum code is straight-forward
case! is not a breaking change because it's a new keyword

If you don't like case! we could consider using another name, like match. The problem is, match is a very common name for when you get a regex match, so it's probably a big breaking change. Then there's case ... in instead of case ... when, but for me, case! looks more like a more assertive version of case, whereas case ... in vs. case ... when doesn't really shouts the difference to me.

Actually, I think I would prefer to have a case-construct that is exaustive by default, and "something else" that is not.
So that it's easier to write exaustive-checked code, and if we need the non-exhaustive version, we can use it sometimes.
Though I'm not sure what the non-exhaustive keyword to use ^^ #naming-language-things-is-hard

another comment to make sure downvote on this one are not put for the idea of my previous message
Crazy thought: if we could put annotations on arbitrary ast node, we could have:
@[NotExaustive]
case foo
when "bar"
end

@bew @[NotExhaustive] is harder than writing else nil

Ahah true, but which one is more explicit? (or mmediately spot-able when reading code)
I don't know really, it's probably not worth the burden

@bew @[NotExhaustive] is harder than writing else nil

Then I would argue that else nil is also better than having two similar keywords with slightly different behaviour 🤷♂
Also, the minimum is only else...
But: else also offers a great way to add a comment about why every other value is ignored/skipped.
Anyways, I'd hesitate to immediately change the newly introduced semantics. Let's see how it works out. If we want to change case back and add a new case!, that's a non-breaking change and could even be done after 1.0. So there's really no hurry.
Our current perception is strongly influenced by "the old way". The new behaviour feels unfamiliar and annoying. But let's not cloud our decision by temporary feelings.

My opinion is the opposite would be better, as previously said.
One reason is case! looks uglier, as said by @asterite , and less safe.

@straight-shoota Good point. I think I'll close this. We can always reopen it if we get tired of else nil.

For example, to_i! has no overflow check.
case! would have no exhaustive check.

@asterite I believe @ysbaddaden is already tired :smile:

I couldn't even remove one single else raise unreachable, I even added a bunch of them :sob:
I guess my coding style is not fit for exhaustive case. All my reluctance and fears were proven true, to my dismay.

Let's let this feature sit and mature in practice for a while before we discuss changing it again.

Can we consider this once more? It's clear more and more people are complaining about only having exhaustive case and nothing else. Having both things is clearly better, as I explained in the original comment.

I agree. There have been enough complaints now, that we should consider options to improve this.
Separating exhaustive and non-exhaustive case using different keywords seems like a good solution. There's just too many situations where you explicitly want one or the other behaviour and there should be a way to express that.
I am however not sure if case and case! is ideal. It's only a subtle difference, and - most importantly - only in the first line. Judging by real examples, case expressions can easily span a couple of lines (was like 700 somewhere in the parser? 😆 ). If you're somewhere in the middle or at the end, there's no way to tell whether it's actually an exhaustive case or not. So maybe an alternative to when would be better show the differnce in behaviour in all parts that belong to the expression.

incase @foo
is String
is Int32
end

🤣

I think exhaustive should be the default. And I still think adding an empty else to bring back the old behaviour is cleaner than two syntaxes.
If case! instead meant "yeah this is definitely exhaustive, please add the else raise "..." for me" it'd seem more useful. I'd still like to wait until the subclassing issue is fixed, since you all seem to actually like inheritance.

@RX14 it's not just the subclass case. For large enums it doesn't make sense to check exhaustiveness. If you want to use case as a big if, there's no need for exhaustiveness.
The way I see it now, the old case was fine except when you had to put that else raise can't happen. That's where you would tell the compiler that you covered all cases and that an else is not needed.
The lexer is an outlier, let's not design this feature around it.
case in, like Ruby, is another option that we can consider, given that it's also exhaustive.

The thing is, for me, these "large enums" and "using case as if" seem like outliers. Most of the time I use case cause I want it to be exhaustive. In fact, this was the only change which I had to make in all my shards to fix an exhaustive case warning. And I consider that to be a very good change.
Perhaps it suits certain coding styles more than others and I'm the outlier.

@RX14 In the compiler most of the changes where "else # go on"

"using case as if" seem like outliers

I just skimmed through the changes in #8424 and found well over 150 of such outliers in stdlib and compiler (I stopped at some point, there are likely 200+ total) which just work as a no-op default branch. Often they're annotated with a comment like # go on. Some have more meaningful comments and in those cases it's probably good to be expressive. But many use cases when case is used as a series of if don't care about the else branch. When exhaustiveness can't be proven anyway, I don't think it makes sense to force an else everywhere. It can be useful, but not always.
And I very much like the simple case as a cleaner way to write a series of ifs.

Well, I thought the compiler code was unrepresentative, but it turns out my code is unrepresentative.

Since we already make case to be exhaustive, with warnings (and in master with errors) it could make sense to consider cond as the non-exhaustive counterpart.
The downside is it's a new keyword. The up sides are: equal length, easy to type, similar semantics to Elixir (?)

@bcardiff What's wrong with case! or case ... in? Both are non-breaking changes, they don't introduce a new keyword, etc.

cond in Elixir doesn't take a condition. It seems more similar to expression-less case:
# Elixir
cond do
  foo -> ...
  bar -> ...
end

# Crystal
case
when foo
  ...
when bar
 ...
end

The equivalent in Elixir would be case, which is already exhaustive.
Another name to consider: match. But it's also a breaking change, and a very common name to use for regex match.

It keeps the exhaustive the default and it avoids going back and forth with changes on the semantics.
I was an advocate of useing case! for exhaustive in the first place, but on top of that I prefer to avoid going back and forth.
Having a different name has also de advantage that it is not one alternative vs the other. So is not  that one is the default case and then is the second alternative case!. But there are two different constructs to be used.

ok, yeah I don't know elixir that much :-) but it searches for the first condition that is truthy. That wind of reflects the idea.

I like the idea of having two keywords, since it makes it harder to use the wrong one.

@asterite I like match even if it's a breaking change. We should evaluate the impact. Other languages like Rust already have it and is already exhaustive. Also in the future we could evaluate adding pattern matching options within the same keyword.
Going back to non exhaustive case makes it familiar for Ruby users where this language inherited many of the semantics. @RX14 I understand you were already usted to the new behaviour. Me too. But if we decide having two separate keywords I think it's better to return case its previous semantics.

match sounds good to me, despite the fact that it's a breaking change

I like case! (exhaustive) ¯\_(ツ)_/¯
Nothing to add

case! will never happen because a keyword with a bang doesn't exist in other languages, so it will never happen.
Imagine if Matz said "blocks don't exist in other languages so I won't do it".

Actually, ignore the above comment. I also think case! is a bit ugly too. We might go with case ... in. But it's still not decided. We might just end up with having to put an else, like right now, which is maybe not that bad.

At least the current case behaviour is only a warning. Moving it to another keyword wouldn't be so bad, I'd just learn to never use case :P

I think if we have two cases you will use both. It just doesn't make sense to check for exhaustiveness when the compiler can't prove it for numbers, ranges, etc.

The change I showed above was using numbers. I appreciated making that exhaustive.

@RX14 Sorry if I missed it... what change?

In fact, this was the only change which I had to make in all my shards to fix an exhaustive case warning. And I consider that to be a very good change.

We had a small meeting today with the core team and decided that:

case is going to be reverted to work as it used before: non-exhaustive
we'll introduce case ... in as an experimental feature that will be there in 1.0. It's likely that this will stay as-is, but since it's experimental we could change it's syntax or enhance its behavior in the future

i update my project, and meet many can't prove case is exhaustive, it quite not fun to add else to such cases, which i use much:
use case to match many values single line:
case a
when "text", "l", "b-head"
  do_something
end

i use case to cast types:
case a
when Type1
  #a is Type1
end

in both this cases i not need else

@kostya This is changing in 0.35.0.  See https://forum.crystal-lang.org/t/are-unions-in-crystal-considered-as-tagged-unions-sum-type/2125/9?u=blacksmoke16.

This is done!


can support azure devops

required for https://github.com/weaveworks/weave-gitops-enterprise/issues/1704

I think we have moved this forward in another PR?

I think we have moved this forward in another PR?

yes, closing thins and the related ones as it was part of the initial discovery work


ES6, Webpack and much more

This PR is based on #86
Highlights

ES6 everywhere
Webpack

Minimal setup
Generate two dist files, minified and non-minified
babel-preset-env and browserlist take care of browser support
Fixes #79 IE issue
Watch mode for continuous build
npm run build:watch

Mocha-webpack

Test case can use ES6 syntax
Build (run webppack) then test against dist files
Watch mode to see test results in realtime
npm run test:watch

Specify node js version in package.json file

This will prevent npm install on older version and force same version across contributors machines

Throw Error object throw new Error() instead of string
Update .gitignore

ignore phpStorm/Webstorm generated files
ignore any *.log file (usually created by node)

API remains the same

Users can still use route() method same as before
We are taking advantage of webpack library build to expose route method to window object
Dist files are ready to use in module environment, like
import route from 'dist/js/route.js'
Dist files can be dumped to html page and works without any module bundler too

Speed up CI by caching vendor files

@DanielCoulbourne
Feel free to checkout this PR locally and make your changes.

Awesome I'll read this before bed! THANKS so much.

Can we get a release tagged by any chance?
I have a project that uses IE11 and I can't use this project without this fix. 😭

@reinink sorry man I meant to tag this sooner but wanted to rewrite the Docs first. I just tagged it and will clean up the docs in v0.5.1

@DanielCoulbourne Thanks!


Ernest Opoku-Kwarteng

exercise 1.pdf
exercise 2.pdf
exercise 3.pdf
excercise 4.pdf

Please "drag & drop" exercise 1 pdf file below.

Please "drag & drop" exercise 2 pdf file below.

Please "drag & drop" exercise 3 pdf file below.

Please "drag & drop" exercise 4 pdf file below.

Please UPDATE THE TITLE of this "Issue" in the title bar above with your name.

If you haven't done so, please go back to Module 2 and make sure to take
the post-training survey. Participating in surveys is required for receiving
the "GALUP Certificate" by the University of Florida.

Well done, Ernest. You clearly grasped the material outlined in Module 2 and successfully applied it to these exercises. Thank you for your participation!


unable to access the data in Google Drive

Could you please grant me access to the data? I would greatly appreciate it.


Issue with Newsdata Archive - timeout

Hi,
I have an issue with Newsdata Archive, all my requests to Archive results are not successful and I have the following error :
Exception has occurred: ReadTimeout
HTTPSConnectionPool(host='newsdata.io', port=443): Read timed out. (read timeout=300)
Could you please provide some help on this issue?
Thank you,
Amandine Pinget, PhD
Lead Data Scientist, niiwaa

issue fixed


Update Flight API list

Updated Flight Status and Tracking API reference links to README.md

Hey, please check the formatting. Thanks

I am going to close this one. Thanks anyway!


.pt download fail

hello,Hello, this is a very good job for me，but when I run the cifar_100C/tent.yaml file, I can't download the pt file, how to download it in the web version? In which folder will I put it after downloading?
Download started: path=ckpt/cifar100/corruptions/Hendrycks2020AugMix_ResNeXt.pt (gdrive_id=1ocnHbvDdOBLvgNr6K7vEYL08hUdkD1Rv)
////
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='docs.google.com', port=443)

Hi,
Unfortunately I could not reproduce your error. In my case,  the download started automatically and everything worked as expected.
Best regards,
Rob


Remove Initialize-EFConfiguration

Part of #231

Note, I'm manually testing my changes on 32-bit Windows 7, PowerShell 2.0, and VS 2015

(Updated to revert changes on uninstall)


routing-icon.png doesn't exist for leaflet-routing-collapse-btn

The collapsible button icon doesn't exist in the project files.  routing-icon.png is not distributed.
.leaflet-routing-container-hide .leaflet-routing-collapse-btn {
    position: relative;
    left: 4px;
    top: 4px;
    display: block;
    width: 26px;
    height: 23px;
    background-image: url('routing-icon.png');
}

Thanks!
closing with b35b60bdb205a043a7485adab105ca163386c305


refactor: add routing & general metadata entry points

What title says :P

Current dependencies on/for this PR:

main

PR #6   👈

This stack of pull requests is managed by Graphite.


13 create cumulative excess number plot

Created a new file that hosts all three functions included in the cumulative excess plot, along with corresponding manuscript data. Updated the README with the cumulative excess plot from manuscript. Tests have been created, and functions modified, to have the ability to account for missing data and/or variables. Should be a dynamic function.

@aemabe Thank you for creating the PR. I have a minor comment: In cumulative_excess_functions.R, "control" and "comparator" were used exchangeably. I think it would be good to use "control" consistently. Otherwise it looks good to me!


Accept glob string for [entry files]

browserify depends on the OS to expand the [entry files] in the command usage: browserify [entry files] {OPTIONS}
Thus the following usage from the handbook does not work on windows
"scripts": {
    "test": "tape test/*.js test/server/*.js",
    "test-browser": "browserify test/*.js test/browser/*.js | testlingify"
  }

glob is already in the dependencies list, and is used for the --ignore, --exclude, and --external options.

Related to #1170

I agree, same issue. I will move there.


[L03] Refactor make-release.ts main function

Description
This PR breaks down the main function in make-release to make it more readable
Related issues

Fixes https://github.com/celo-org/celo-labs/issues/723

Suspect its because of node-gyp which we use for building in the monorepo.

Suspect its because of node-gyp which we use for building in the monorepo.


Install

why the cilium show  install successful ?
But    run " cilium connectivity test "    show fail.
Where should I look for errors?

Please don't open duplicate issue on cilium/cilium and cilium/cilium-cli. Also, there isn't enough information here to help you debug. If you open an issue on cilium/cilium with all the required information, we'll likely be able to help.


⚠ Bofrost.at has degraded performance

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

HTTP code: 200
Response time: 1800 ms

Resolved: Bofrost.at performance has improved in 0a6e5a0 after 1 hour.


Build fails when upgrading to v3.0.3

Summary
We have an Typescript LWC app in a lerna repo and have been locked on v2.2.1, we want to upgrade to v3.0.3 so we can get Webpack 5 and hopefully use some of the latest TS features like optional chaining.
However the build fails with v3.0.3.
Steps To Reproduce:

Change lwc-services version package.json to ^3.0.2
yarn install
yarn build

Expected result
Successful build
Actual result
Build fails
@salesforce/soql-builder-ui: $ lwc-services build -w webpack.config.js -m production
@salesforce/soql-builder-ui: ⚡⚡⚡⚡⚡  Lightning Web Components ⚡⚡⚡⚡⚡
@salesforce/soql-builder-ui: ⌛  Creating build configuration
@salesforce/soql-builder-ui: 🌟  Using custom configuration from webpack.config.js.
@salesforce/soql-builder-ui: 📦  Starting build process.
@salesforce/soql-builder-ui: 🆘  The webpack build could not be compiled.
@salesforce/soql-builder-ui: /Users/jhork/Desktop/Workspace/soql-tooling/node_modules/lwc-services/lib/commands/build.js:27
@salesforce/soql-builder-ui:             const { errors } = stats.compilation;
@salesforce/soql-builder-ui:                                      ^
@salesforce/soql-builder-ui: TypeError: Cannot read property 'compilation' of undefined
@salesforce/soql-builder-ui:     at /Users/jhork/Desktop/Workspace/soql-tooling/node_modules/lwc-services/lib/commands/build.js:27:38
@salesforce/soql-builder-ui:     at /Users/jhork/Desktop/Workspace/soql-tooling/node_modules/webpack/lib/webpack.js:138:28
@salesforce/soql-builder-ui:     at processTicksAndRejections (internal/process/task_queues.js:75:11)
@salesforce/soql-builder-ui: error Command failed with exit code 1.
@salesforce/soql-builder-ui: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
lerna ERR! yarn run build exited 1 in '@salesforce/soql-builder-ui'
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Additional information
Feel free to attach a screenshot or code snippets.

I'll take a look my AM tomorrow. Can you DM me on Slack a branch of that repo where your change is already in?

Yeah sure can, thanks so much!

Reasons for the error was that between Webpack 4 and Webpack 5 the configuration options for webpack changed.
Published with #787 (released as 3.0.4) a fix that surfaces the Webpack errors better.


Cannot access demands for Build

According to this doc I should get the full Build representation including demands for my query: https://dev.azure.com/ucfconsort/ucx/_apis/build/builds?buildId=2875&api-version=5.0.
But I don't get it:
$ curl -s -X GET 'https://dev.azure.com/ucfconsort/ucx/_apis/build/builds?buildId=2875&api-version=5.1' | jq '. | {demands: .demands}'
{
  "demands": null
}

Demands were definitely set:

See pipeline config where demands were set. It works as expected.
Build inside Azure interface: https://dev.azure.com/ucfconsort/ucx/_build/results?buildId=2875

Could you please help me to get demands filed for a Build query?

Is anyone here? :)


[ECD-1443] Multiplatform build

Since we are going to use the image from AWS ECR on the direct https://eatclub.atlassian.net/browse/ECD-1443
we need to have a multiplatform build instead of arm only.
The image build with this PR (${{ secrets.CORE_ACCOUNT_ID }}.dkr.ecr.us-west-1.amazonaws.com/mjml-server:ecd-1443-multi-platform-build) was checked in a PR for direct - https://github.com/eatclub/direct-backend/pull/1506
The open question to the SRE team:
Do we need to change the docker pull ... in a tag-image-with-release-and-latest job of the Github Action of the repo?

@bulya
If the your intention is to continue pulling for linux/arm64, the existing docker pull command will still work. If you however want the linux/amd64 image, you need to change it to:
docker pull --platform linux/amd64 $ECR_REPO:$COMMIT_ID
Sidenote: If you don't specify any platform, Docker will automatically pull the image for the architecture of the host machine. So if the host is linux/amd64, it will pull the amd64 image; if it’s linux/arm64, it will pull the arm64 image.
Hope this answers your question.

This image from ECR will be used in core, which is arm and direct - amd64. The final step here is doing pull tag and push, I think we want the new tagged image will be available for both platforms. So, the question is more about do we need to duplicate this step for both platforms or keep it as it is, and that will still allow us to pull an amd64 image with the new tag.
      - name: Tag Docker Image with Latest and Release Tag
        run: |
          docker pull --platform linux/arm64 $ECR_REPO:$COMMIT_ID
          docker tag $ECR_REPO:$COMMIT_ID $ECR_REPO:latest
          docker tag $ECR_REPO:$COMMIT_ID $ECR_REPO:${{ needs.release-on-push.outputs.release_version }}
          docker push $ECR_REPO:latest
          docker push $ECR_REPO:${{ needs.release-on-push.outputs.release_version }}
          echo "Release version '${{ needs.release-on-push.outputs.release_version }}'"


Electron 5 Support?

Now that Electron 5.00 is out, are there any plans to make spectron also support that version? Maybe it is a tall order since Electron 4 does not seem to be fully supported #346.
At least what I have noticed is that Spectron is very tightly connected to<EMAIL_ADDRESS>and all the tests are being run on that version.
When I upgrade the devDependencies version to 4.1.5 or 5.0.0, then a lot of tests brake.

@codebytere can you help with that?

There are PRs in progress already to this end: https://github.com/electron/spectron/pull/361 https://github.com/electron/spectron/pull/364.

Even with those PRs merged and released, it still doesn't work with Electron 5: https://github.com/electron-userland/spectron/issues/254#issuecomment-489574565
/Users/sindresorhus/dev/oss/electron-serve/node_modules/spectron/lib/application.js:230

  Rejected promise returned by test. Reason:

  TypeError {
    message: 'waitUntilWindowLoaded Cannot read property \'isLoading\' of undefined',
  }

const app = new Application({
	path: electron,
	args: ['fixture.js']
});
await app.start();
const {client} = app;
await client.waitUntilWindowLoaded();
await client.waitUntilTextExists('h1', '🦄', 5000);

Hi,
I was able to solve this issue by following this:
https://github.com/electron-userland/spectron/issues/174

Here is a working sample with Electron 6
https://github.com/florin05/electron-spectron-example.
See the last commit for changes to support Electron upgrade.

Hi @florin05 ,After the completion of test, application isn't terminating. We've tried different ways to stop the application by keeping stop(), quit(), process.kill(), process.exit(0). However none of them worked to terminate the console after all the actions has been done.

@prathyu1616 , I don't see other windows open after test finishes, only the console the invoked the tests
npm run test

><EMAIL_ADDRESS>test .....\electron-spectron-example
> node ./node_modules/mocha/bin/_mocha

  Sample Test
    √ opens a window
    √ should get a url (596ms)
    √ should search (3718ms)

  3 passing (17s)


check for cookies

created three different reports, made those available for download to prove we really cared for cookies... (see #24)