fix breaking centered text-alignment for td, th

I noticed that :where(td,th) has text-align: left set, which messes things up when td or th has align="center" in their html tag.
I fixed this issue, but I think it would be better to remove the alignment from :where(td,th) altogether, because it might also cause problems for right-to-left users.

Thank you for filing this 🙂
I'm surprised I committed a physical property for text alignment, I assumed I would have committed text-align: start.
What if we did this:
:where(td:not([align]), th:not([align])) {
  text-align: start;
}

this way

start is always the default alignment (wont break for right to left users)
will only apply if the align attribute is absent from the cell
the :not() is within the :where() as to not increase specificity and be easy to override

That sounds a lot better indeed!


CI/CD automation

a starting point for this would be a basic linter in github actions. I like https://github.com/marketplace/actions/super-linter because it works for almost any language


How use a menu more times?

Hi,
i want use a menu, for example:
"Soccer Champions"
"Basket Champions"
"Sci Champions"
when an user click on button "Soccer Champions" i show the first ten champions.
After i want show again the menu, how can implement all this?
I've seen and tested this example: https://github.com/php-telegram-bot/example-bot/blob/master/Commands/Conversation/SurveyCommand.php and it works fine.
But it seems that there isn't possible to repeat the operations, as if the flow were single and not cyclical.
Can help me to understand?
Thanks

When you send the message to the user, you can simply attach the menu again in the reply_markup field, like when you send the initial message.

Ok, Thanks a lot. :-)


[WIP] Rename /devices endpoint

Summary
Details and comments
Fixes #354

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

-1 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.09%) to 66.285%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

qiskit_ibm_runtime/api/rest/cloud_backend.py
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.09%

Covered Lines:
2664

Relevant Lines:
4019

💛  - Coveralls


Write test for ellipse()

Suppress output of the bitmap to the screen
Check if the bitmap is equal to the expected bitmap (i.e. a bitmap of a particular ellipse)

Possibly borrow from https://github.com/python-pillow/Pillow/blob/master/Tests/test_imagedraw.py#L108-L125


Create dotnet.yml

 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: maranimoataz sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


Showing x-Axis and y-Axis values in tooltip

Hi.
I'm creating a website with some charts in it and I wanted these charts to show exact values in tooltip.
I know, that there is metaIsHTML flag but I can't figure out how to use it in my case.
I also know, there is tooltipFnc but this i can't figure out how to use at all.
Basicly what I'm trying to achieve is following:

What I get is (obviously) this:

Help? :(

I got the same question this morning and solved it by using metadata. Basically 2 possibilities, either add a meta value to your data array beforehand (suitable if the data is still numeric) or modify the data afterwards (there you can also write arbitrary text to the value field, as the x-y-coordinates are already assigned.
var labels = [0, 5, 10, 15, 20];
var values = [90, 160, 150, 155, 140];

// (a) Add metadata to points beforehand.
values = values.map(function(v, idx) { return { meta: 'Distance: ' + labels[idx] + 'km', value: v }; });

[...]

// (b) Alternatively add metadata when drawing the points.
chart.on('draw', function (data) {
  data.meta =  'Distance: ' + labels[data.index] + 'km';
});

Both results in a tooltip (swap value and meta if the order is important).
Distance: 21.9km
Heartrate 149.9

As already mehtioned, you can enable HTML support for metadata by passing metaIsHTML: true in the plugin options.

Thanks for the answer :)
In the meantime I've solved the issue. I somehow managed to use the tooltipFnc (can't paste the code right now) and it works for now. But I'll try your solution as it seems to be more compact than my function.
Thanks again.

I need to do the same as well. Can you explain in clearer details please? @stklcode  . How metaData relate to x axis data. I can only have y axis data in the tooltip atm


Simplify exponential backoff and refactor env

This steals the movement of the env functions from #1137 and refactors the exponential backoff logic, while greatly simplifying it.
The new exponential backoff api is quite simple:

.wait(): pauses execution if there has been a crash
.recordSuccess(): resets the backoff state
.recordFailure(): increments the pause and returns true if we've crashed too many times

As a sidenote, the segfault in the 8.3 tests also randomly happens on main, see #1141


Input overflow

Hello,
I updated the version of the package that shows the Form elements and it seems like there input overflow. Seems like they are longer than all the other elements and they overflow the parent
https://codesandbox.io/s/jjzvqzq31w
Am I doing something wrong here or is this a bug?

Hello @jacekschae, you don't have the correct box-sizing, you can inject global normalize or you can add:
* {
    box-sizing: border-box;
}

So no bug!

Thanks for pointing it out and your reply!


@nestjs/typeorm support

Is there a plan to support @nestjs/typeorm in this plugin?

Yup, I was trying to make it work with typeorm and it's a very hard process. Couldn't make it work chasing one bug after the other.

Our example app repository will soon be updated with more usage examples. Currently you can see NestJS examples here:
https://github.com/SoftwareBrothers/adminjs-example-app/tree/typescript-version/src/servers/nestjs

The updated link with examples is here: https://github.com/SoftwareBrothers/adminjs-example-app/tree/master/src/servers/nestjs.
Instead of the examples though, I would suggest following the updated documentation: https://docs.adminjs.co/installation/plugins/nest
I got a production-ready version working without issues. I think this issue can be closed.


Update references of "Launch" to "Tags" and "Reactor"

Description
Updates README
Motivation and Context
Ongoing maintenance
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] Update README

Checklist:

[x] I have signed the Adobe Open Source CLA.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

@brenthosie is there a Jira ticket for this?


feat: report method name in WS metrics

Description
Access method name in WS context so metrics can be reported with method name

Hi Mkykadir,
Thanks for the contribution!
Its a clever solution, however I am concerned about a race condition occurring with concurrent map access w.reqIdToMethod if the proxyd was under heavy ws traffic.
I'm curious if you would be able to find a solution that can avoid this?
Also please include test cases if possible

@jelias2 nice catches actually I missed a crucial point as well:

reqId within context is determined on WS connection and shouldn't be used for all following ws messages
now each ws connection will have its own concurrent map
and following message ids will be used for this
after its ok for you I'll go with tests as well


prevent With clause name shadowing

Name shadowing can be quite a footgun. Example:
TutorialD (master/main): x:=with (x as true) x
("with type",Relation (attributesFromList []) (RelationTupleSet {asList = []}))
("with type",Relation (attributesFromList []) (RelationTupleSet {asList = []}))
TutorialD (master/main): :showexpr x
ERR: RelVarAlreadyDefinedError "x"

The original expression should almost certainly be rejected, but the relational expression validation is sound, so we would need to check that the new relvarname "x" is not mentioned in the with clause names.
I am toying with the idea of preventing name shadowing of relvars or other with clause macro names (even macros shadowing macros). It does seem that name shadowing can be sometimes useful when moving subexpressions around, but the risk and cost of mistakes here is very high.
Any objection?

TutorialD (master/main): x:=with (x as true) x
TutorialD (master/main): :showexpr x
┌┐
││
├┤
└┘

It seems fine on my machine.

Indeed, it's just on a future branch, but what's the point of supporting that expression? It makes substitution much more difficult and optimizations have to track shadowed names recursively.

I see. I can't think of a useful example either.


Useful utility

Not an issue but I can't find anywhere else to comment, so please delete comment if inappropriate.
I needed exactly this utility and it works a treat.   Easily installed by the R Pi binary although I did take a look at Rust and nearly persuaded myself to do it the hard way.
Anyway, to control my living room lamp, I now have an R Pi with heliocron, a bit of Python, MQTT, and wifi to a Chinese switch flashed with Tasmota.   What could possibly go wrong 😉

That made my day, reading that :) Very pleased that you've gained some use out of it!


[Feature Request] Ability to do publishable 'library' builds

Bug Report or Feature Request (mark with an x)

[ ] bug report -> please search issues before submitting
[x] feature request

Versions.
N/A
Repro steps.
N/A
The log given by the failure.
N/A
Desired functionality.
What would like to see implemented?
The ability to do a build of a module that is appropriate to publish as a npm package/library
What is the usecase?:
Common use case is wanting to create a reusable 'ui-component' library to be used across multiple applications, and be appropriately versioned.
For example
src->app->kitchen sink demo
src->ui-kit->module with components/directives
ng serve would run the app
ability to do something like ng build --target=library --app=ui-kit that would make a build of the ui-kit that would be appropriate to publish as it's own library.
Mention any other details that might be useful.
n/a

Dupe of https://github.com/angular/angular-cli/issues/1692


Performing operations on files that do not exist, successfully.

Your Windows build number:  Microsoft Windows [Version 10.0.16299.309]

What you're doing and what's happening:
Create a directory anywhere using Bash or Windows Explorer (for this example I will use /mnt/c/Users/testuser/testdir) with any number of files in it (for this example I will use 1.txt, 2.txt, and 3.txt)
Create a new directory to the same parent as testdir, naming it 'testdir2' using Bash or Windows Explorer.
In Bash, navigate to /mnt/c/Users/testuser/testdir
In Windows Explorer, navigate to C:\Users\testuser
In Windows Explorer, delete testdir.
In Windows Explorer, rename testdir2 to testdir.
In Bash, without entering other commands, enter 'ls'
The output will be: 1.txt 2.txt 3.txt

What's wrong / what should be happening instead:
The output of the ls command is incorrect. It should either display the correct information, or fail.

Additional notes: Until you navigate away from the testdir folder, you can perform any operations on these deleted files, including cat, grep, and others.

Deleting a file in explorer doesn't delete the file. It moves the file to the trash.

Revising the reproduction instructions to not include any deletion produces the same results.
@therealkenc
Create a directory anywhere using Bash or Windows Explorer (for this example I will use /mnt/c/Users/testuser/testdir) with any number of files in it (for this example I will use 1.txt, 2.txt, and 3.txt)
Create a new directory to the same parent as testdir, naming it 'testdir2' using Bash or Windows Explorer.
In Bash, navigate to /mnt/c/Users/testuser/testdir
In Windows Explorer, navigate to C:\Users\testuser
In Windows Explorer, rename testdir to testdir3.
In Windows Explorer, rename testdir2 to testdir.
In Bash, without entering other commands, enter 'ls'
The output will be: 1.txt 2.txt 3.txt
Expected output is a zero length string.

Expected output is a zero length string.

No, it isn't.  The new testdir (renamed from testdir2) is a different inode with the same name.
That enough for today. I you believe you have found a diverge in rename(2) or [rmdir(2)[(http://man7.org/linux/man-pages/man2/rmdir.2.html) try the scenario under Real Linux in a VM first, and post the repro steps as CLI commands (mkdir, touch, mv) following CONTRIBUTING.md. You can use interop under WSL for the windows side.


Complete sequence in build.rb ci_utils added

html mail added but faked

!!!! Do not merge this PR! ci_utils.rb is missing


Polymorphism Issues: Classes not being saved from browser to .sketch file

Here's one way to replicate the polymorphism issue that we were talking about @bakercp.
Create a new project, paste the below classes in and hit run.  It gives an error that indicates DerivedClass isn't extending BaseClass (error: cannot convert 'DerivedClass*' to 'BaseClass*' in initialization).
If I open up BaseClass.sketch in sublime, it looks correct.  If I open up DerivedClass.sketch in sublime, it hasn't been updated from the default template (so it isn't a subclass of BaseClass).
Haven't gotten a chance to do any additional detective work on this.  This is happening on win 8.1 (latest ofSketch), does it happen on OSX?
Main Class:
#include "BaseClass.h"
#include "DerivedClass.h"
void setup() {
    std::shared_ptr<BaseClass> a = std::shared_ptr<BaseClass>(new BaseClass());
    std::shared_ptr<BaseClass> b = std::shared_ptr<BaseClass>(new DerivedClass());
}

Base Class:
#pragma once
class BaseClass{
public:
	BaseClass(){
	}
};

Derived Class:
#include "BaseClass.h"
class DerivedClass: public BaseClass{
public:
	DerivedClass(){
	}
};

This is definitely an issue with RC4.  Just came up in class :(

Not sure why the other classes aren't getting saved past initialization.

The work-around is to not make more than 2 tabs.  Just past additional subclasses under the 2nd subclass.  Ugh, but it works.

:( I never dug around the source, so I don't have anything more helpful to contribute


Add CONFIG_NF_CONNTRACK_PROCFS in kernel config

Is this a request for help?: Yes?
Is this an ISSUE or FEATURE REQUEST? (choose one): Feature request
What version of acs-engine?: any

Could the kernel flag CONFIG_NF_CONNTRACK_PROCFS be enabled on the kernels we get with acs-engine clusters? This would allow reading conntrack statistics to metrics systems from /proc/net/stat/nf_conntrack, which is useful to alert on for example https://github.com/kubernetes/kubernetes/issues/56903.

@carlpett short answer is maybe - I haven't looked into this yet. We'd need to make sure that this doesn't have any negative side effects for aks-engine and AKS clusters (which also use our image). Let's move this issue to the aks-engine queue. If you want this sooner than later, feel free to start a PR for it.

Thanks for the context! My understanding of this flag is that it simply exposes the conntrack data already maintained in the kernel via the proc interface, as compared to netlink (the data is the same as the one returned by conntrack -S).
PR-wise, it'd need to be to where the kernel is built, which I guess isn't in this repo?


Matrix: make forum answers to fold into a thread

From original request:

Forum notifications in one channel and threading for posts
implemented here: https://github.com/discourse/discourse-chat-integration/blob/a73f5da114d6d7adfac53bdd58b7f45a4e3ac31a/lib/discourse_chat_integration/provider/matrix/matrix_provider.rb
Answer to forum posts from Matrix

Problem:
Currently forum posts every individual post or answer under it as separate message in matrix room, which is (i suppose, from request) hard to read.
Solution:
The idea is to leverage standard (yet beta) threads functionality of matrix. So when someone posts a new topic, it goes directly to matrix room, and when someone answers under topic - it automatically places answers in thread under topic message
Additionally someone suggested that would be nice to be able to answer to the forum topic from the matrix thread. So if you post a message in this thread from element client - it'd automatically reply from your account in forum. But this needs to be evaluated separately. (Do we really need it, what's the effort and caveats)

I think threads in matrix are evil 😅
if we stack them in threads, then it won't show up as new message in main room, which will make it a lot harder to spot new (latest) answers and pay attention to activity on forum. I will close it for now


[Feature Request] Integrate Wiseflow for Dynamic Knowledge Management

Initial Checks

[X] I have searched Google & GitHub for similar requests and couldn't find anything
[X] I have read and followed the docs & demos and still think this feature is missing

Description
Hello!
Your project is truly impressive! 🎉 Its innovation and efficiency have greatly inspired me. 👏
I would like to recommend Wiseflow to you. By integrating Wiseflow, your project can gain dynamic knowledge management capabilities, and you can even build an agent that continuously learns from the internet! ✨
Integrating Wiseflow is straightforward, as it uses PocketBase to store all extracted content and original articles. You only need to be familiar with PocketBase's read/write operations. PocketBase provides SDKs for popular languages like Go, JavaScript, and Python. For more details, please refer to Wiseflow's README.
Looking forward to the powerful combination of  your project with  wiseflow!  🚀
Use case
No response

Thank you very much for your interested.
We will checkout Wiseflow project, to see how to run it within our agent flow.

Thank you very much for your interested. We will checkout Wiseflow project, to see how to run it within our agent flow.

Glad to hear that. If you have any questions during the process, feel free to contact me and I will be happy to provide you with info.


How to change a parameter ok NAV Server Config in NAV Container

Hello,
I tried to find the similar cmdlet as set-navserverconfiguration in a container.
Is there any similar cmdlet?

Invoke-ScriptInNavContainer -containername  -scriptblock {
Set-NavServerConfiguration -InstanceName BC/NAV -...
Set-NavServerInstance -InstanceName BC/NAV -restart
}
(or docker exec if you don't use navcontainerhelper).
for docker exec you might need to run c:\run\prompt.ps1 to import all NAV PS modules.

ok thanks it is useful.
the windows client and web client only works with the IP Address as database server in my container. So I change the parameter with this solution that you give.
is there any tips to avoid this ?

Are you using the NavContainerHelper to create your container?

Yes. But i dont want to create a new one.
I want to modify a parameter : the ip address for instance because i cant access to NAV windows or web client with the container name.
For example, containername = test, i cant access to http://test/NAV, i have to replace test by the IP Address if i want that it works;

and the problem is that the ip address change after a restart...

If you specify -updatehosts when creating the container, navcontainerhelper will update the hosts file to allow you to use container name (and will update upon restart).
https://freddysblog.com/2019/08/20/business-central-on-docker-for-non-experts/
The database configuration inside the container is localhost - and normally you don't need to change that.

In general, my recommendation is not to try and keep a container running.
Keep the script, which generates the container.
If you need to keep a database, you should consider placing the database on a sql server (possibly on the host)

Closing this as it seems to be resolved

as an alternative, you can also make use of static IP's for containers and start them using that specific IP, but this case is more for when you want a container accessible beyond the docker host and accessible to your local network. Versus using the docker network settings, you can create a docker network with 'transparent' as the network type (an overlay vs a bridge), and containers can be configured on the same network as the container host.
After this you can make a DNS entry to point a hostname at your container which is accessible on your local domain. As Freddy mentioned, databases can be kept on external SQL servers, this setup would let your containers access SQL servers beyond the container host in your network easier.
By default I believe docker uses a bridge network, which lets containers share the host IP address for external things in a non default world, but by default the network created by docker after install does not allow external access as per https://docs.docker.com/network/bridge/ .


Update release script and doc

Update the release doc to verify helm is installed prior to executing the release script. Also updates the release script for:

new Makefile build targets after merging of #1039
adds a check for helm being installed.

LGTM

/lgtm


StatefulSet never ready on no-op deployment with partitions.

Hi,
We're running into an issue where our StatefulSets are never considered ready when using partition in the updateStrategy.rollingUpdate.
The scenario is as follows:

A StatefulSet with 3 replicas is set to partition: 3.
A chart is applied which doesn't cause a change to the statefulSet.
When waiting for the statefulset, this message appears:

StatefulSet is not ready: namespace-example/statefulset-example. 3 out of 0 expected pods have been scheduled

In the StatefulSet's status, the currentRevision matches the updateRevision and both the currentReplicas and updatedReplicas are set to 3.
The related code here: https://github.com/helm/helm/blob/662090a37e977922828779d249f9cc4f8fc7ed1d/pkg/kube/wait.go#L321-L331 also matches the behaviour
expectedReplicas := replicas - partition (equals 0)
and int(sts.Status.UpdatedReplicas) != expectedReplicas since UpdatedReplicas is 3.
Getting a StatefulSet in this state can happen when updating the partition attribute after a rolling update:

Start with a STS partition: 3
Deploy a change.
Rolling update by setting partition 0.
Set partition back to 3.

I'm not sure if this would catch other cases, but it seems like taking the revisions into account would work:
expectedReplicas := replicas
if (sts.Status.UpdateRevision != sts.Status.CurrentRevision) {
   expectedReplicas -= partition
}

Output of helm version:
version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"dirty", GoVersion:"go1.14.3"}

Output of kubectl version:
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.10", GitCommit:"575467a0eaf3ca1f20eb86215b3bde40a5ae617a", GitTreeState:"clean", BuildDate:"2019-12-11T12:41:00Z", GoVersion:"go1.12.12", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.10", GitCommit:"575467a0eaf3ca1f20eb86215b3bde40a5ae617a", GitTreeState:"clean", BuildDate:"2019-12-11T12:32:32Z", GoVersion:"go1.12.12", Compiler:"gc", Platform:"linux/amd64"}

Cloud Provider/Platform (AKS, GKE, Minikube etc.): N/A

For context here are how other libraries handle this:
kubectl rollout status: https://github.com/kubernetes/kubectl/blob/18e781fa774127786b5a2092ed2dc0351dafdb87/pkg/polymorphichelpers/rollout_status.go#L119-L152
kstatus: https://github.com/kubernetes-sigs/cli-utils/blob/master/pkg/kstatus/status/core.go#L77-L152

What is the Helm command you ran?

We're directly calling Install.Run
https://github.com/helm/helm/blob/94438b67221d4af3c9993945a42275be7ffc6baa/pkg/action/install.go#L172
We're currently on v3.0.0-beta.4.0.20200320140559-9dfda5437505 but it seems that the same path is still on master.
It's not simple to do an upgrade to test this right now, but I'll keep you posted if you can try out 3.3.1

I'm not sure there's been a resolution for this.

I'm not sure there's been a resolution for this.

If you can reproduce the issue with a more recent version of helm 3 then we can reopen and investigate further. We cannot provide support for beta pre-releases of helm 3. That is why we asked if you can reproduce with helm 3.3.1.
The most recent release now is helm 3.4.2. I would start there.

If you can reproduce the issue with a more recent version of helm 3 then we can reopen and investigate further. We cannot provide support for beta pre-releases of helm 3. That is why we asked if you can reproduce with helm 3.3.1.
The most recent release now is helm 3.4.2. I would start there.

I can reproduce this issue with helm 3.4.2. I tried this with both minikube (kubernetes 1.20.0, docker driver) and against GKE. I have also been able to reproduce this with previous versions of helm.
The steps I used were:
1.
kubectl create namespace tmp-2 && helm3 install yb-demo  ~/code/charts/stable/yugabyte/ --set
resource.master.requests.cpu=0.25,resource.master.requests.memory=0.35Gi,resource.tserver.requests.cpu=0.25,resource.tserver.requests.memory=0.35Gi --namespace tmp-2 --wait
# code/charts/stable/yugabyte comes from https://github.com/yugabyte/charts/stable/yugabyte
# this step succeeds

Add a partition field set to the above chart

helm3 upgrade yb-demo  ~/code/charts/stable/yugabyte/ --set partition.master=1,resource.master.requests.cpu=0.25,resource.master.requests.memory=0.35Gi,resource.tserver.requests.cpu=0.25,resource.tserver.requests.memory=0.35Gi --namespace tmp-2 --wait
# this step hangs indefinitely. partiton.master defaults to 0 and maps to rollingUpdate.partition https://github.com/yugabyte/charts/blob/57aad61c947cafee4df8ef8d2b15255c0465095a/stable/yugabyte/templates/service.yaml#L162

The status of the stateful set looks as follows:
status:
  collisionCount: 0
  currentReplicas: 3
  currentRevision: yb-master-5d5844777d
  observedGeneration: 2
  readyReplicas: 3
  replicas: 3
  updateRevision: yb-master-5d5844777d
  updatedReplicas: 3

I can reproduce this issue with helm 3.4.2. I tried this with both minikube (kubernetes 1.20.0, docker driver) and against GKE. I have also been able to reproduce this with previous versions of helm.
The steps I used were:
1.
kubectl create namespace tmp-2 && helm3 install yb-demo  ~/code/charts/stable/yugabyte/ --set
resource.master.requests.cpu=0.25,resource.master.requests.memory=0.35Gi,resource.tserver.requests.cpu=0.25,resource.tserver.requests.memory=0.35Gi --namespace tmp-2 --wait
# code/charts/stable/yugabyte comes from https://github.com/yugabyte/charts/stable/yugabyte
# this step succeeds

Add a partition field set to the above chart

helm3 upgrade yb-demo  ~/code/charts/stable/yugabyte/ --set partition.master=1,resource.master.requests.cpu=0.25,resource.master.requests.memory=0.35Gi,resource.tserver.requests.cpu=0.25,resource.tserver.requests.memory=0.35Gi --namespace tmp-2 --wait
# this step hangs indefinitely. partiton.master defaults to 0 and maps to rollingUpdate.partition https://github.com/yugabyte/charts/blob/57aad61c947cafee4df8ef8d2b15255c0465095a/stable/yugabyte/templates/service.yaml#L162

The status of the stateful set looks as follows:
status:
  collisionCount: 0
  currentReplicas: 3
  currentRevision: yb-master-5d5844777d
  observedGeneration: 2
  readyReplicas: 3
  replicas: 3
  updateRevision: yb-master-5d5844777d
  updatedReplicas: 3

I am facing the same issue with "helm upgrade --wait" command, where the Statefulset's replica count target can never be archived. The Statefulset's replicaCount is set to 2 but Helm keeps complains about it and timeout eventually in upgrade.
Error Message:
wait.go:348: [debug] StatefulSet is not ready: isp-flux/flux-stolon-keeper. 2 out of 0 expected pods have been scheduled

Stateful status:
status:
  collisionCount: 0
  currentReplicas: 2
  currentRevision: flux-stolon-keeper-59f7ddfbd6
  observedGeneration: 1
  readyReplicas: 2
  replicas: 2
  updateRevision: flux-stolon-keeper-59f7ddfbd6
  updatedReplicas: 2

This issue occurs when the Statefulset's update strategy is set to "RollingUpdate".
The error occurs at function "statefulSetReady" in pkg/kube/wait.go file
During upgrade. the partition is equal to replicas. Thus values of "expectedReplicas" is calculated to 0 and can never be equal to Status.UpdatedReplicas. And it will stuck here and ends up in upgrading time out eventually.


ADR10

https://trello.com/c/ncPAwfSt/1449-csr-table-adr-10-enable-comparison-of-suppliers-across-all-categories-during-in-400-mobile-view-for-accessibility?filter=member:tommortimer7

moved overall rating to p3
showing all cols on mobile
made table scroll horizontally
adjusted column widths to accommodate contents on mobile table

Have tested on mobile and reduced desktop browser viewport

@marianayovcheva Can I ask you for a review on this one, in David's absence? I know there are WCAG guidelines about horizontal scrolling.

Not sure if it's just me, but I can only get the scroll bar to work straight out of the box on Safari. On Firefox I can only see and interact with the scroll bar once I've clicked the Show more suppliers/Show fewer suppliers button. On Chrome I can see the scroll bar, but don't seem to be able to interact with it.

@stringiest

Not sure if it's just me, but I can only get the scroll bar to work straight out of the box on Safari. On Firefox I can only see and interact with the scroll bar once I've clicked the Show more suppliers/Show fewer suppliers button. On Chrome I can see the scroll bar, but don't seem to be able to interact with it.

That's interesting! I've tried on all those browsers and in all of them I can see the scrollbar. I wonder if it's a mac setting that makes things different.

Not something that comes from this PR but it's visible now that there is horizontally scrolling table:  (Chrome, macbook) The Show more suppliers button and the Showing x out of y.. text appear in the same overflown container as the table with the scroll bar below. I believe this is because the button is also part of the cads-table-container which has overflow: auto. I wonder if it's possible to rearrange the elements in a way that only the table will be part of the table container - not sure if this will also involve tweaking the js.

I will ask the designer whether this is within the scope of the ticket.

@stringiest

Not sure if it's just me, but I can only get the scroll bar to work straight out of the box on Safari. On Firefox I can only see and interact with the scroll bar once I've clicked the Show more suppliers/Show fewer suppliers button. On Chrome I can see the scroll bar, but don't seem to be able to interact with it.

That's interesting! I've tried on all those browsers and in all of them I can see the scrollbar. I wonder if it's a mac setting that makes things different.

Mac hides scrollbars because scrolling on this platform is generally performed (and desired by Apple as part of their UI paradigm) as a multitouch swipe gesture instead of dragging a scroll bar, and the users will expect/be familiar with this.

Not something that comes from this PR but it's visible now that there is horizontally scrolling table:  (Chrome, macbook) The Show more suppliers button and the Showing x out of y.. text appear in the same overflown container as the table with the scroll bar below. I believe this is because the button is also part of the cads-table-container which has overflow: auto. I wonder if it's possible to rearrange the elements in a way that only the table will be part of the table container - not sure if this will also involve tweaking the js.

Product mgr has requested this remains as-is

The updates are looking good! The only thing to add is:

The Show more suppliers button and the Showing x out of y.. text appear in the same overflown container

I'd suggest going back to AbilityNet, since they've produced the report, and checking with them if having the button and the text will fail the Reflow criteria. The reason I'm suggesting this is because I can see in their report (if I have the up to date one) there is a note saying:

make sure that users are not required to scroll in multiple directions (such as up and down, as well as left and right) to access the content.

I know that data tables are except from this criteria but not sure about the button and the text below.

@tommortimercab Can you talk to Emily and Daniel (and potentially AbilityNet) to try to find a solution which fixes ADR-10 but doesn't introduce a reflow issue?

@tommortimercab Can you talk to Emily and Daniel (and potentially AbilityNet) to try to find a solution which fixes ADR-10 but doesn't introduce a reflow issue?

Just to be clear on what needs to be done, you're specifiying that the button should not scroll off screen despite Emily's instruction as the product owner to leave it as it is? That's no problem if so but I'll need to check with her first.

@tommortimercab apologies, I've probably not explained the issue and suggested approach well. I don't think it's necessary to address it with CSS and position absolute. It should be enough to rearrange the way the wrapper class is used here: https://github.com/citizensadvice/energy-comparison-table/blob/main/app/components/supplier_table_component.html.haml#L1 (only a html change).
The problem comes from .cads-table-container wrapping the table, the count text and the button below.
.cads-table-container comes from the design system: https://github.com/citizensadvice/design-system/blob/7b5de903e12ffaefd12cef5d6849e40b77e61f05/scss/4-elements/_tables.scss#L1. Its function is to make sure that the table doesn't overflow over the whole page especially when on smaller devices - so we still need that class but we need to change the wrapping so it doesn't apply to and scroll non-table components when the user scrolls horizontally over the table.
Current (pseudo code):

Counting results

  <button>Show more</button>

Suggested:

Counting results

  <button>Show more</button>

In the suggested option, there is a new wrapper div around the table where we apply the cads-table-container class. We still have a div wrapping the table, button and count text with a class of supplier-table--show-more. We need to keep it because it controls the showing and hiding of the buttons and extra table cells both in js and css.

adding @stringiest incase a different reviewer is required. will message you if so lucy.

Have removed Mariana as reviewer and added Lucy as agreed in standup this morning. Please review and approve or otherwise at your discretion @stringiest

Looks good in the review app and when I run locally 👍🏻
@tommortimercab are you able to give me access to the AbilityNet report that is linked to in the trello card?

I've made a request for the owner (Emily IIRC) to give you permissions


UUID values set to all zeros in unpicking, and custom case class byte arrays not what expected

I have a Type 1 UUID in my case class. pickling is doing this to the value:
original: 51662fe0-ecd8-11e4-934d-290c46447b11
final uuid 00000000-0000-0000-0000-000000000000
import scala.pickling._,scala.pickling.Defaults._,scala.pickling.binary._
val pid = e.id.pickle.value
val uid = pid.unpickle[UUID]

What am I doing wrong?
version "0.10.0"
scala 2.10.5 and 2.11.5
Thanks

This is a known issue with 0.10.0 reported originally as #122 and fixed in #123, but have not been released yet. The general unpickle asymmetry problem still stands and it's been discussed more in #295 and #296.
@jsuereth, @havocp, we should release 0.10.1.

@eed3si9n @jsuereth @havocp  - Oh please release the next version if it does resolve the UUID issue. I need it for my Cassandra streaming solution, which I am hoping to release soon, but as it stands I had to back out my type-1 UUID (time-based UUID) id for each event due to this. I really want to keep using pickling for this solution.

Hi @eed3si9n and @jsuereth, any ideas on a release date with the UUID fix?

Hi @helena – it appears it's already been release, but it seems we never updated the README or pinged you in this thread! Sorry.
http://search.maven.org/#artifactdetails|org.scala-lang.modules|scala-pickling_2.11|0.10.1|jar
Can you let us know if you still have this issue after trying 0.10.1?

@heathermiller thanks :) yes I didn't hit mvn repos, just checked the readme to see if it was released, thanks for the update! I'm psyched this made it in.

I just updated my application - which is also having this problem - to version 0.10.1 and this problem does not seem to be resolved.

@helena Sorry I missed the message above. 0.10.1 is out.
@dodnert It works for me as follows:
scala> import scala.pickling._,scala.pickling.Defaults._,scala.pickling.binary._
import scala.pickling._
import scala.pickling.Defaults._
import scala.pickling.binary._

scala> import java.util.UUID
import java.util.UUID

scala> val id = UUID.randomUUID
id: java.util.UUID = 8ef3e994-9d88-4030-8012-9975b18fb67e

scala> val pkl = id.pickle
pkl: pickling.binary.pickleFormat.PickleType = BinaryPickle([0,0,0,14,106,97,118,97,46,117,116,105,108,46,85,85,73,68,-114,-13,-23,-108,-99,-120,64,48,-128,18,-103,117,-79,-113,-74,126])

scala> val obj = pkl.unpickle[UUID]
obj: java.util.UUID = 8ef3e994-9d88-4030-8012-9975b18fb67e

Please open an issue if this doesn't work for you.

The issue I am seeing is that a java.util.UUID value is not pickled correctly if that value has been cast to a scala.Any. In my application, the value to be pickled is passed in to my application as an Any reference. Can this be made to work if the value is a UUID?

I've opened a new issue, #336 for the problem described in my previous comment.

I tested with both type-1 UUID for timestamps and regular and it works, for instance:
import java.util.UUID
import scala.pickling._
import scala.pickling.Defaults._
import scala.pickling.binary._
def serialize(uuid: UUID): Array[Byte] = uuid.pickle.value
def deserialize[A: Unpickler: FastTypeTag](data: Array[Byte]): A = data.unpickle[A]
"uuid roundtrip" in {
val expected = UUID.randomUUID
val ser = serialize(expected)
val des = deserializeUUID
des should === (expected)
}
"type-1 uuid roundtrip" in {
val in = UUIDGen.getTimeUUID(now.getMillis)
val ser = serialize(in)
val des = deserializeUUID
des should === (in)
}


Don't nag for bugs with a "checkin on $future_date" whiteboard entry

Fixes #97

This could probably do with some tests...


Filter for dates not working on hunts list

Also: the month values are not appearing correctly.

Fixed!


BREAKING CHANGE: remove isDeepEqual function

Description
This PR removes the function isDeepEqual since it is not used in other packages to reduce the package size
Type of change
Please delete options that are not relevant.

[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)

It's not a breaking change because isDeepEqual has not been exported to users.

It's not a breaking change because isDeepEqual has not been exported to users.

Fix myself, it's been exported


Fix some syntax for fresh variables

For example,
Code:
macro foo
  p :%fresh_var
end

foo

Result:
:__temp_92

%fresh_var is a fresh variable and it can concatenate  some syntaxes.  I added some syntax for fresh variables.

Thanks!
I learned fresh variable and tried some samples.  It seems good except for above question.

Thanks!


Dnsmasq improvements

Merged a few tasks and disable systemd-resolved if needed.

@gardar
do you mind rebasing / resolving conflicts?

@gardar  FYI you can also catch me in irc libera.chat under the same name

@gardar FYI you can also catch me in irc libera.chat under the same name

Gotcha! I'm there too under the same name as on here.

FYI. This breaks master in a few ways. There are a couple outstanding PRs to resolve the issue already. I'm not sure who best to review though.

@IamTheFij do you mind explaining what breaks?
I tested the changes before creating the PR and it passes the molecule tests.

It's explained here: https://github.com/ansible-community/ansible-consul/issues/469
I was personally impacted by link_source typo and the item.when issue.

I imagine the tests don't cover these cases though. Kinda hard to be 100% sure with something like Ansible when configurations differ wildly from system to system.


fix the cid is not string data type issue

Dear,
According the [Go JSON Unmarshal func API Doc] (http://golang.org/src/encoding/json/decode.go?s=2621:2669#L64)
The JSON numbers should be float64 , not sting type .
So, need to do date type conversation.

Current behavior is correct. http://bosh.io/docs/cpi-api-v1.html#create-vm contract states that's it's an opaque string. It's just happens that softlayer CPI returns only numeric values; however, most CPIs return non numeric IDs.
Sent from my iPhone

On Aug 31, 2015, at 7:02 PM, Quan Wen<EMAIL_ADDRESS>wrote:
Dear,
According the Go JSON Unmarshal func API Doc
The JSON numbers should be float64 , not sting type .
So, need to do date type conversation.
You can view, comment on, or merge this pull request online at:
https://github.com/cloudfoundry/bosh-init/pull/43
Commit Summary
fix the cid is not string data type issue
File Changes
M cloud/cloud.go (27)
Patch Links:
https://github.com/cloudfoundry/bosh-init/pull/43.patch
https://github.com/cloudfoundry/bosh-init/pull/43.diff
—
Reply to this email directly or view it on GitHub.


How to install the module:"_pvcnn_backend"

No module named '_pvcnn_backend'
File "/home//MyProjects/PVD/modules/functional/backend.py", line 22, in
'bindings.cpp',
File "/home//MyProjects/PVD/modules/functional/ball_query.py", line 3, in
from modules.functional.backend import _backend
File "/home//MyProjects/PVD/modules/functional/init.py", line 1, in
from modules.functional.ball_query import ball_query
File "/home//MyProjects/PVD/modules/ball_query.py", line 4, in
import modules.functional as F
File "/home/**/MyProjects/PVD/modules/init.py", line 1, in
from modules.ball_query import BallQuery
File "/home/MyProjects/PVD/model/pvcnn_generation.py", line 6, in
from modules import SharedMLP, PVConv, PointNetSAModule, PointNetAModule, PointNetFPModule, Attention, Swish
File "/home//MyProjects/PVD/train_generation.py", line 11, in
from model.pvcnn_generation import PVCNN2Base

@RavenScroft863 I was wondering did you solve this problem? I encounter the same question when I try to run this code. My system is Ubuntu18.04, Cuda is 10.1, Pytorch is 1.4.0.

@RavenScroft863 I was wondering did you solve this problem? I encounter the same question when I try to run this code. My system is Ubuntu18.04, Cuda is 10.1, Pytorch is 1.4.0.
Have you solved it? I also encountered this problem.

i also encountered this problem.

In file "/ PVD - the main/modules/functional/bacend py", I put the line "- STD =" 7 and 8 lines "-- the compiler - bindir =" into my computer version. My problem is solved.


Mention npm installer

Addresses https://github.com/elm-lang/elm-lang.org/issues/294 and helps in situations like this.
The bit about setting ELM_HOME will appear on the linked page with the next release of the installer. (It's already in the README.)

Awesome, thank you!

I think I can get things compatible with 7.10 this week, and hopefully be able to release all the error message stuff next week so it'll be out there!

Should be live now!


fix-view-file-link-in-pr breaks links to deleted files

fix-view-file-link-in-pr makes it easier to edit files after you click "View file", but this doesn't make sense for deleted files: there's no file to delete anymore.
By default, GitHub links to the previous version of the file, before its deletion.
For this reason, deleted files should not be affected by fix-view-file-link-in-pr
Example: https://github.com/yakov116/TestR/pull/21/files
It normally links to: https://github.com/yakov116/TestR/blob/7f9a18b4d0f3b8627180a7cbea6513d72d85cfb0/sub/README.md
But it's changed to: https://github.com/yakov116/TestR/blob/yakov116-patch-4/sub/README.md (404)

Note: this feature only affects open PRs

I broke the entire feature, never mind deleted files. It need to link to the head repo.
Will send a PR soon


WindowCaption Widget Bugs/Requests - Buttons and Top Resize

Window shouldn't start drag when clicking window buttons
There shouldn't be any delay when clicking maximize/minimize/close button
The height of the top resize region should be 8 pixel (if top border is completely cut off)

I added a new VirtualWindowFrame Widget to simulate the window frame and add drag to resize the window area.


Add python documentation strings

Thanks!
Do you know if it's compatible with pyo3?
Will it use it when building the package?


Make the title and message of the AlertDialog editable.

My use-case is I have a "Report a Bug" button, and when the user taps it BugShaker says "Shake detected!" which is not the case. It would be nice if we can make the title and message editable. Probably another method like show or a simple overload of hearShake() to accept title and message parameters.

I think, similarly to #94, I'm going to decline this feature request for now since it's not core to the functionality of Bug_Shaker_. It should be fairly simple to fork the library and edit the relevant constants if that's absolutely a requirement for you at this time.
(I've been thinking about whether it would be easy to abstract the bug report trigger mechanism; if so, and I choose to follow that path, I'll revisit this issue at that time :))


[BUG] regullar disconnected from UI due to SSL cert

Describe the bug
I have been temporarily disconnected from UI twice. The first time it’s when I was configuring the backup and it seems node promotion is also happening, the second time is when I was adding a new image. The new image gets stuck in that case, and one of the harvester pods seems restarted (need to re-confirm the SSL certificate later). I’ve checked the Harvester server log but cannot see anything there.
To Reproduce
Steps to reproduce the behavior:

when the pod is restart

Expected behavior

make an enhancement of the SSL cert change
print logs on the harvester if has any

Log
N/A
Environment:

Harvester ISO version: v0.2.0-rc1
Installation Mode: ISO
Underlying Infrastructure (e.g. Baremetal with Dell PowerEdge R630):

Additional context
Add any other context about the problem here.

Address this in https://github.com/rancher/harvester/issues/632

Did not encounter this error after using the VIP entry point with 0.3-master-48c97ea7-head, feel free to reopen it if needed.


prisma2 generate fails

Error: request to https://prisma-builds.s3-eu-west-1.amazonaws.com/master/e7579bd35e0938dbf773f1706c098a0d14a5a038/windows/prisma.exe.gz failed, reason: write EPROTO
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

What version are you using? This happens on on the older versions

@malekjaroslav
I installed it today when I was going through the tutorial.
PS C:\Users\Anton\code\workbooks\apps\prisma-api> prisma2 --version
<EMAIL_ADDRESS>binary version: e7579bd35e0938dbf773f1706c098a0d14a5a038

Red herring @malekjaroslav - this is indeed the new and working binary URL.
Are you behind a proxy @thehappycoder? Anything else funky about your environment maybe?

Nothing unusual about my environment. My desktop Windows PC is connected to a 4g modem via an Ethernet cable. After a few attempts, I managed to do prisma2 generate successfully.
After that, I got the same issue on my macbook laptop running MacOS. Without making any more attempts, I connected to the Internet via hotspot created by my phone, which worked.

Thanks for that information @thehappycoder - seems your connection had problems with Amazon's S3. We will work on fallbacks in the future here so the CLI will have workarounds for that by itself.

We moved the binaries to a cloudfront distribution, which should fix this issue.
In case you still hit this limitation, please let us know and we reopen this issue!

Gents.
I am trying to get Prisma2 loaded on my work PC. Its pretty locked down and only talks with the internal Nexus. No problem there, however, when it goes out to get the binaries I am getting a failed response. Not sure what I can do about it at this point... hoping you can help?
In short, I am POC'ing for a client and would like to use Prisma2.
Here are the logs:

Please create a new issue for this @realrhys - then we can take a proper look at the details and help you debug this. Thanks.


Optimizing drag and drop performance with translate

after:

before:

This is a great idea, will merge ASAP

@StringKe apologies for the delay here.
I think this is a great upgrade, I just want to make sure its stable. Have you tested this thoroughly?

I've tested it in my product and no other issues have arisen so far.

@StringKe i'll merge this when i get home tonight

Any update on this?

@StringKe you weren't kidding, that is way better!
@andoni-enriquez I'm publish a new version as we speak.


Inconsistent opacity behaviour on form radio buttons

Bug Report
Opacity behaviour is inconsistent on form radio buttons
Steps

Create a Form.Radio inside a Form and set the Form.Radio to disabled
Create a Form.Radio inside a Form.Field and set the Form.Field to disabled
Create a Radio inside a Form and set the Radio to disabled

Expected Result
opacity should be the same in all three cases
Actual Result

In the first case (Form.Radio inside a Form), opacity is set to 0.45 on the radio input and then again on the grandparent div. This makes it difficult to read the radio label

This also appears to happen for Form.Input

In the second case, the radio button opacity is set to 0.45
In the third case, the radio button opacity is set to 0.5

Version
2.0.4
Testcase
https://codesandbox.io/s/4je9u

This is my current workaround (the second one is for another case I found where the opacity is applied twice on Form.Input):
/* Work around doubled opacity */
.disabled.field .ui.disabled.checkbox label {
  opacity: 1 !important;
}
.disabled.field .ui.disabled.input {
  opacity: 1 !important;
}
/* Use same opacity as .disabled.field (normally it's 0.5) */
.ui.disabled.checkbox label {
  opacity: 0.45 !important;
}

Hi @bmaupin
Note that CSS is not included in this repo for reporting bugs. If we take a look at the markup output and classnames from the SUIR components, they should present themselves in valid parent-child relationships in order to utilize the global CSS from the parent SUI project.
In your codesandbox example, there are a few invalid component/markup structures, and these are the root of styling inconsistencies. I updated the codesandbox with some notes about where these issues are in all of your examples, identified which of your examples are valid, and then below them, I created examples of how to use Form.Radio (sugar) or Form.Field with a child Radio component.
I am going to go ahead and close this bug report as the markup being rendered from the components is consistent and valid in the supported structures. If you have any other questions, feel free to respond here, or post questions on Stack Overflow.

@brianespinosa
My apologies, I had started with code from the examples in the documentation and got a little carried away trying different things.
I had originally titled the bug something like "disabled radio buttons too dim" but changed it to inconsistent behaviour. I still see both.
Radio buttons too dim
Both of your examples display this behaviour; an opacity of .45 is applied to the field div, and then an opacity of .5 is applied to the radio label. These opacities double the dimming effect and make the radio labels difficult to read.
Dimming behaviour inconsistent
Let's take an example directly from the documentation. Like your examples, an opacity of .45 is applied to the field div, but this time a different opacity of .45 is applied to the radio label.
So the labels are still too dim but now the opacities don't match:
      <Form.Group>
        <Form.Field
          disabled
          label='This one'
          control='input'
          type='radio'
        />
        <Form.Field
          disabled
          label='That one'
          control='input'
          type='radio'
        />
      </Form.Group>

Just one more, also from the documentation. Unlike your example, the disabled attribute is only put on the Radio element in the documentation.
This one actually looks reasonable to me. An opacity of .5 is applied only once to the label. But of course the amount of dimming is inconsistent with my above example as well as both of your examples:
      <Form.Field>
        <Radio label='Disabled' disabled />
      </Form.Field>
      <Form.Field>
        <Radio toggle label='Disabled' disabled />
      </Form.Field>

Here's a sandbox with the above examples as well as yours: https://codesandbox.io/s/fphm2
Are you saying that it's intentional that:

The radio labels are so dim that I can barely read them? (it sounds like the answer to this is yes?)
Three different levels of dimming behaviour is intentional?

Thanks!

Makes sense, thanks for the feedback!


Update links to YouTube video

Fix #21
Signed-off-by: Gianpaolo Macario<EMAIL_ADDRESS>

Tested locally.
Looks Good To Me, merging


fix: update dataset source name for GermanDPR

Fix for issue #426, I saw in the previous commits that we mistakenly changed the source name of the GermanDPR dataset when we did the refactoring (see commit). It's fixed now and the task runs correctly.
I'll add 1 point for bug fix, is it okay with everyone?

Okay I'm merging, thanks for the quick reply @isaac-chung!

Oh, forgot to add your review points, I think @KennethEnevoldsen added one point for him and @MartinBernstorff in this issue: https://github.com/embeddings-benchmark/mteb/pull/405/files#diff-0417f311c9f5b079e1d75fa9aa8b1f47bd2f2d284a4cd376a81d2c9a2c1f3e03. Can you please add 1 point for you on your next PR/review?


[@zeit/next-css] Have an option to inline imported css.

Hi,
I have gone through all issues and even though #238 is a work-around, it doesn't help as the head contains duplicate  imports. I am currently using postcss with my next-css plugin. It'd be great if there's an option to inline imported css into a style tag in head to improve page load speed.
Thanks in advance

Is there any updates on this? I would be happy to implement this.

This would be handy. The workaround in #238 feels a bit dirty.

Hi, thanks for creating an issue. We currently recommend using https://nextjs.org/docs/basic-features/built-in-css-support as the plugins have been deprecated in favor of the built-in support.

Hi @timneutkens how does the built-in CSS support handle inlining the CSS? I can't see any references to that in the docs.


Implement cur_offset and truncate across nodes

Should close https://github.com/nrc/strings.rs/issues/3.
I worked on this is because I dream of a future for rustfmt where it always appends the StringBuffer -- even for expressions -- and then truncates when things don't work out.

Thanks for doing this, it's a really ugly wart and has been bugging me for ages!

Updated PR


Periodically seeing Errno::EPIPE "Broken pipe" errors on SSH Linux targets

Describe the Bug
Periodically, when targetting Linux hosts with SSH i'm getting the following error on a task:
2020-04-27T07:25:40.005535 INFO   Bolt::Executor: {"target":"hostname.domain.tld","action":"task","object":null,"status":"failure","value":{"_error":{"kind":"puppetlabs.tasks/exception-error","issue_code":"EXCEPTION","msg":"Broken pipe","details":{"class":"Errno::EPIPE","stack_trace":"/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:153:in `write'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:153:in `handle_sudo'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:169:in `block in check_sudo'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:169:in `map!'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:169:in `check_sudo'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:354:in `execute'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:125:in `block (2 levels) in run_task'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:263:in `with_tempdir'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:89:in `block in run_task'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:224:in `running_as'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:77:in `run_task'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/transport/simple.rb:43:in `block in run_task'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/transport/ssh.rb:27:in `with_connection'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/transport/simple.rb:42:in `run_task'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/transport/base.rb:108:in `block in batch_task'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/transport/base.rb:50:in `with_events'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/transport/base.rb:106:in `batch_task'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/executor.rb:275:in `block (3 levels) in run_task'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/executor.rb:236:in `with_node_logging'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/executor.rb:274:in `block (2 levels) in run_task'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/executor.rb:115:in `block (3 levels) in queue_execute'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:348:in `run_task'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `loop'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `block (2 levels) in create_worker'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `catch'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `block in create_worker'\\n/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'"}}}}

I extracted the stacktrace and unescaped the newlines which resulted in this:
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:153:in `write'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:153:in `handle_sudo'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:169:in `block in check_sudo'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:169:in `map!'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:169:in `check_sudo'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:354:in `execute'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:125:in `block (2 levels) in run_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:263:in `with_tempdir'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:89:in `block in run_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:224:in `running_as'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/shell/bash.rb:77:in `run_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/transport/simple.rb:43:in `block in run_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/transport/ssh.rb:27:in `with_connection'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/transport/simple.rb:42:in `run_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/transport/base.rb:108:in `block in batch_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/transport/base.rb:50:in `with_events'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/transport/base.rb:106:in `batch_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/executor.rb:275:in `block (3 levels) in run_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/executor.rb:236:in `with_node_logging'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/executor.rb:274:in `block (2 levels) in run_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.6.0/lib/bolt/executor.rb:115:in `block (3 levels) in queue_execute'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:348:in `run_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `loop'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `block (2 levels) in create_worker'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `catch'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `block in create_worker'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'

I'm not sure why this is happening. I haven't been able to come up with a set of reproduction steps yet. The commonalities between the failures are:

It always happens on a Linux host (observed on CentOS 7 and RHEL 7, we don't have much Ubuntu/Debian at all so probably not ever going to see i there)
It is always a task that is executing a bash script
It appears to always fails in the sudo part of the code

Other observations:

Fails on different hosts each time, across different customer environments
Fails on different tasks each time, so i don't think it's a task bug
Failed across several version of Bolt, seen on both 2.5.0 and 2.6.0

Stack trace on 2.6.0 is above. Stack Trace on 2.5.0 is below:
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/shell/bash.rb:153:in `write'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/shell/bash.rb:153:in `handle_sudo'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/shell/bash.rb:169:in `block in check_sudo'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/shell/bash.rb:169:in `map!'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/shell/bash.rb:169:in `check_sudo'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/shell/bash.rb:354:in `execute'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/shell/bash.rb:125:in `block (2 levels) in run_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/shell/bash.rb:263:in `with_tempdir'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/shell/bash.rb:89:in `block in run_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/shell/bash.rb:224:in `running_as'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/shell/bash.rb:77:in `run_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/transport/simple.rb:43:in `block in run_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/transport/ssh.rb:27:in `with_connection'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/transport/simple.rb:42:in `run_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/transport/base.rb:108:in `block in batch_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/transport/base.rb:50:in `with_events'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/transport/base.rb:106:in `batch_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/executor.rb:276:in `block (3 levels) in run_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/executor.rb:237:in `with_node_logging'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/executor.rb:275:in `block (2 levels) in run_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/bolt-2.5.0/lib/bolt/executor.rb:116:in `block (3 levels) in queue_execute'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:348:in `run_task'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `loop'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `block (2 levels) in create_worker'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `catch'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/concurrent-ruby-1.1.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `block in create_worker'
/opt/puppetlabs/bolt/lib/ruby/gems/2.5.0/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'

Expected Behavior
No exceptions are thrown.
Steps to Reproduce
Unable to successfully reproduce yet
Environment

Bolt 2.5.0 and 2.6.0
Platform CentOS 7 and RHEL 7

It looks like this will happen if the task exits before Bolt can finish writing all of STDIN (so presumably the task doesn't actually use STDIN in this case). This bug appears to have already
been present with the local transport when using run-as and was ported to the SSH transport when that code was generalized in #1750
We actually explicitly handle this case (even with a comment explaining what can happen) when not using sudo, but don't handle it for sudo. I'll get together a fix. Thanks for reporting this.

There's a related issue here that causes a deadlock in the case where a) both stdin and stdout are larger than the pipe buffer, b) you're using run-as, c) the task doesn't read stdin. The task will block trying to write stdout, but Bolt is blocked trying to write stdin.
When not using run-as, Bolt will do the right thing and select() on all the streams, but for run-as it just tries to write stdin in one go. That bug will require a bit more of a rework to the way we handle sudo, so I might deal with it separately and just get up the PR for this.

Closed by #1775


Rebuild dist directory

Created by running npm install && npm run build && npm run format && npm run lint && npm run pack on the current master of the repository. This should get rid of the deprecation warnings from https://github.com/yokawasa/action-setup-kube-tools/issues/36.

@msg-freiheit I confirmed that there were no longer warnings in test actions run https://github.com/yokawasa/action-setup-kube-tools/actions/runs/3345579285/jobs/5549052691
Thank you for the contribution!


Tutorial USP

This PR is for including the material developed for the workshop in USP on Devito's tutorial/examples.

ok, just created a new 00_index.ipynb explaining what's going on in a MVP fashion.
about the file lowering, it is still incomplete. i will add more about subs and lowering yet.
please see new commit to see if that's clarifying

Nice work, trivial comments.
Can that be used or extended to cover #520 ?

ok, sorry, I guess you have already that into your mind! ;-) Just saw your #520 talk...

i'm still facing errors with the CI for the case gcc8. has someone experienced this ?

Maybe it is convenient to put substitutions and domain-alignment in a different notebook, so that we can merge this PR ASAP. As there will be more to be added under lowering (see the new method in master's operator.py, called "_add_implicit",  to deal with subdomains...). Also, I think the data regions notebook could/should be moved before the domain-alignment one. What do you think?

Maybe it is convenient to put substitutions and domain-alignment in a different notebook, so that we can merge this PR ASAP. As there will be more to be added under lowering (see the new method in master's operator.py, called "_add_implicit", to deal with subdomains...). Also, I think the data regions notebook could/should be moved before the domain-alignment one. What do you think?

roger that. fixed this for a quick PR.
i'm still stuck with the gcc8 issue. it seems that some cells of other notebooks are failing in this particular case
i completely agree with moving data regions to before of domain alignment.

point 2: i'm still not sure if you can visualize the pdf of 00_index.ipynb that i've uploaded from there. may you confirm it please?

I cannot !

point 1: i'm still stuck with the gcc8 case in CI. it seems that some cells of the notebook 01 are failing. all errors are:
Unexpected output fields from running code: {'text/latex'} (like for cell [1])
have you seen this before?

try using print(X) instead of just X ?

point 2: i'm still not sure if you can visualize the pdf of 00_index.ipynb that i've uploaded from there. may you confirm it please?

I cannot !

fixed this with
from IPython.display import IFrame

point 1: i'm still stuck with the gcc8 case in CI. it seems that some cells of the notebook 01 are failing. all errors are:
Unexpected output fields from running code: {'text/latex'} (like for cell [1])
have you seen this before?

try using print(X) instead of just X ?

thank you, trying that

it seems the solution using Iframe wont pass through CI.
should I use .png instead, or maybe other solution for displaying .pdf?

@btrb

it seems the solution using Iframe wont pass through CI.
should I use .png instead, or maybe other solution for displaying .pdf?

My suggestion is, instead of working around, just try to understand what the issue is. Have you looked at the CI logs? the error seems to be a stupid one -- just the Python repr of an object changing (as expected) at each run.
'<IPython.lib...7f50a8919320>' == '<IPython.lib....7f09f844ee10>'

<IPython.lib.display.IFrame at 0x7f50a8919320>
?                                    - ^ ^ ---

<IPython.lib.display.IFrame at 0x7f09f844ee10>
?                                     ^^ ^^^^

So this would be easily fixable -- either assigning the output to a dummy variable or using the usual #NBVAL_IGNORE_OUTPUT at the top of the cell.]
However, why do we not just insert the image via Markdown? As for example shown here
this way, the cell will be a markdown one, and so won't cause any harm to CI (CI, via the nbval package, only runs the Python cells, not the Markdown ones)

@btrb

it seems the solution using Iframe wont pass through CI.
should I use .png instead, or maybe other solution for displaying .pdf?

My suggestion is, instead of working around, just try to understand what the issue is. Have you looked at the CI logs? the error seems to be a stupid one -- just the Python repr of an object changing (as expected) at each run.
'<IPython.lib...7f50a8919320>' == '<IPython.lib....7f09f844ee10>'

<IPython.lib.display.IFrame at 0x7f50a8919320>
?                                    - ^ ^ ---

<IPython.lib.display.IFrame at 0x7f09f844ee10>
?                                     ^^ ^^^^

So this would be easily fixable -- either assigning the output to a dummy variable or using the usual #NBVAL_IGNORE_OUTPUT at the top of the cell.]

going for the 2nd

However, why do we not just insert the image via Markdown? As for example shown here

just tried this, but it looks that this example doesn't work for .pdfs

this way, the cell will be a markdown one, and so won't cause any harm to CI (CI, via the nbval package, only runs the Python cells, not the Markdown ones)

@btrb I think this is fantastic work! Many thanks for all this, really appreciated.
There only are two small items left, and then we merge this:

I tried running the notebook, and now to see the PDF we have to execute the cell...which is a bit counterintuitive. I think I prefer to have a JPG/PNG/whatever embedded directly in markdown. Even though it's not PDF, it is still better than having to execute a cell to see a static image
The notebook enumeration is now wrong, since we have flipped data_regions with indexification.

@btrb I think this is fantastic work! Many thanks for all this, really appreciated.
There only are two small items left, and then we merge this:

I tried running the notebook, and now to see the PDF we have to execute the cell...which is a bit counterintuitive. I think I prefer to have a JPG/PNG/whatever embedded directly in markdown. Even though it's not PDF, it is still better than having to execute a cell to see a static image

ok, fixed

The notebook enumeration is now wrong, since we have flipped data_regions with indexification.

you're right. in fact, i renamed lowering to indexification in the new commit

Codecov Report

Merging #825 into master will increase coverage by 0.75%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #825      +/-   ##
==========================================
+ Coverage   88.82%   89.57%   +0.75%
==========================================
  Files         104      105       +1
  Lines       11301    12960    +1659
  Branches     2225     2821     +596
==========================================
+ Hits        10038    11609    +1571
- Misses        980     1052      +72
- Partials      283      299      +16

Impacted Files
Coverage Δ

devito/symbolics/inspection.py
87.09% <0%> (-4.8%)
:arrow_down:

devito/dse/__init__.py
100% <0%> (ø)
:arrow_up:

devito/dse/rewriters.py
94.47% <0%> (ø)

devito/dse/aliases.py
95.77% <0%> (+0.02%)
:arrow_up:

devito/operator.py
93.7% <0%> (+1.03%)
:arrow_up:

devito/symbolics/queries.py
86.4% <0%> (+1.34%)
:arrow_up:

devito/types/dense.py
93.65% <0%> (+1.36%)
:arrow_up:

devito/ir/support/basic.py
93.92% <0%> (+1.5%)
:arrow_up:

devito/types/dimension.py
94.69% <0%> (+1.53%)
:arrow_up:

devito/finite_differences/finite_difference.py
94.28% <0%> (+1.83%)
:arrow_up:

... and 11 more

Continue to review full report at Codecov.

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

@btrb there are few more things that need to be addressed. I'm writing them down here, but only one is strictly needed for this PR. I can take care of the others as I assume you're getting tired of this :D

the only thing we have to do is to resize the image in 00_index and make it way smaller, as it's currently a punch in the eye (also, at such a big size, the resolution really sucks)

The other non-compulsory things to do are:

The beginning of 03_iet-A is now a bit off. This sentence

This is the first part of a tutorial describing the Iteration/Expression Tree (IET), an intermediate representation based on Abstract Syntax Trees (AST) used in the Devito compiler. In this part we will show how to access and navigate the IET rooted in an Operator.

Given the previous (existing and non-existing) notebooks, we should rewrite it simply as
In this tutorial we will show how to access and navigate the Iteration/Expression Tree (IET) rooted in an `Operator`.

This sentence

The reader of this tutorial is expected to be familiar with the basic Devito API (i.e., Grid, Function/TimeFunction, Operator, ...). Otherwise, the CFD tutorials in examples/cfd are a better place to start.

should/could be moved to 00_index (and replace "of this tutorial" with "of this series of tutorials")

Similarly, the beginning of 04_iet-B should be updated. From

This is the second part of a tutorial describing the Iteration/Expression Tree (IET), an intermediate representation based on Abstract Syntax Trees (AST) used in the Devito compiler. In this part we will learn how to build, compose, and transform IETs.

to something simpler
In this tutorial we will learn how to build, compose, and transform Iteration/Expression Trees (IETs).

@btrb there are few more things that need to be addressed. I'm writing them down here, but only one is strictly needed for this PR. I can take care of the others as I assume you're getting tired of this :D

oh no, please don't assume that. i'm actually looking forward to push it further as soon as this PR is merged.

the only thing we have to do in this PR is to resize the image in 00_index and make it (much) smaller, as it's currently a punch in the eye (also, at such a big size, the resolution really sucks)

ok, resized it to bellow 91.25%. (i'm afraid the lateral letters become too small)

The other non-compulsory things to do are:

The beginning of 03_iet-A is now a bit off. This sentence

This is the first part of a tutorial describing the Iteration/Expression Tree (IET), an intermediate representation based on Abstract Syntax Trees (AST) used in the Devito compiler. In this part we will show how to access and navigate the IET rooted in an Operator.

ok, fixed

Given the previous (existing and non-existing) notebooks, we should rewrite it simply as
In this tutorial we will show how to access and navigate the Iteration/Expression Tree (IET) rooted in an `Operator`.

fixed

* This sentence

The reader of this tutorial is expected to be familiar with the basic Devito API (i.e., Grid, Function/TimeFunction, Operator, ...). Otherwise, the CFD tutorials in examples/cfd are a better place to start.

should/could be moved to 00_index (and replace "of this tutorial" with "of this series of tutorials")

ok, fixed

Similarly, the beginning of 04_iet-B should be updated. From

This is the second part of a tutorial describing the Iteration/Expression Tree (IET), an intermediate representation based on Abstract Syntax Trees (AST) used in the Devito compiler. In this part we will learn how to build, compose, and transform IETs.

to something simpler
In this tutorial we will learn how to build, compose, and transform Iteration/Expression Trees (IETs).

roger that. fixed

This is good to go now apart from the figure that really is unreadable. I created a new high-res PNG for you, which I'm attaching. Can you try with this one?

Can you also rebase on latest master please?

Can you also rebase on latest master please?

hm.. this is the first time i shall do that. i will create a tutorial_usp-3 branch just in case, then proceed to rebase

It's perfect now. Many thanks @btrb ! I really like it. Merged.


Fails to compile java code with a valid java annotation syntax.

Compiler version
3.3.4
Minimized code
https://github.com/msosnicki/scala-annotations-java-issue
Piece of code that contains errors:
public record AnnotatedRecord(
  @JsonProperty("userId")
<EMAIL_ADDRESS><EMAIL_ADDRESS>UserId> userId) {};

The code in the repo compiles fine in presence of sbt compileOrder := CompileOrder.ScalaThenJava settings. If it's removed, it is not compiling anymore (same as in 2.13.14).
Output
[error] -- Error: /home/ssn/code/scala/scala-annotations-java/src/main/java/scalac/issues/AnnotatedRecord.java:7:12
[error] 7 |<EMAIL_ADDRESS><EMAIL_ADDRESS>UserId> userId) {};
[error]   |            ^^^^
[error]   |            identifier expected but @ found.
[error] -- Error: /home/ssn/code/scala/scala-annotations-java/src/main/java/scalac/issues/AnnotatedRecord.java:8:0
[error] 8 |
[error]   |^^^^^^
[error]   |identifier expected but eof found.
[error] two errors found

Expectation
Code compiles

Linking https://github.com/scala/scala3/issues/20026 and https://github.com/scala/scala3/pull/20064 where I said I would do more java annotation parsing.

cc @hamzaremmal @dwijnand


Problems with WhereClause

I need where clause like this
$statement->where('DATE(myDate)', '>=', 'DATE(NOW())');
But if we look at what happened with
$statement->__toString()
we will see
TE(myDate) >= ?
The problem in this expression:
return ' WHERE '.ltrim(implode('', $args), ' AND');
ltrim removes all letters listed in $character_mask.
string ltrim ( string $str [, string $character_mask ] )
http://php.net/manual/en//function.ltrim.php

Another problem is that >= ? part -- like it is looking for a variable to replace in there, instead of a comparison.
In the "value" part of the where() method, can we check to see if it is not a variable and if not, just use as, is? You can't do this, either:
->where('columnA', '<>', 'columnB')

It treats columnB like a value, eg:
SELECT * FROM table WHERE columnA <> ?

instead of
SELECT * FROM table WHERE columnA <> columnB

If not in a ->where(), maybe a new method ->whereCompareCol() or something?
If Maintainer doesn't see any caveats, I'll do it and a PR.

I believe this was fixed a while ago in a different bug report.  Is this still using the latest 2.x branch?  There is now a RAW clause for doing things that shouldn't be escaped.


Implement vector op assign

+= etc. for vector-vector and vector-scalar. benchmark. if faster, test reimplementing + by cloning self, then applying +=.

Normal versions seem to be slightly faster. Benchmark results for addition below.


[Suggestion] EssentialsX GUI (Addon)

https://www.spigotmc.org/resources/essentialsgui-bsp-playerfriendly-essentials-warp-and-kit-gui.34023/
So, BSP originally Created Essentials (at the time) Gui Addon. I was able to configure/figure it out long time ago. The default was nice.
but you could change the icon, at kit.yml of Essentials, aswell as change the order at the kit.yml from Essentials. It died on (Beta).
this is better than the kit preview from essentialsX, aswell as you could add Glass planes/etc to fit in your style.
It was as advanced, as TrickyShops.
Edit: I really don't know if Genesis (itself) has this inside already. or if there is a Addon somewere in the Discord. But, would like to see it on spigotmc.org

That plugin was done by a different author and the source code is not available. So I can't upgrade it to work with Genesis, nor are there other alternative extensions that I know about

I sent an email to the original dev of that addon, but that was several months ago. If they ever get back to me with thee source and allow us to use it we will add it.


pull request for e2e test at 12/05/2016 06:15:04

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Add extra cost to is_precompile check for PrecompileSets

Adds an extra storage read to ERC1155, ERC20 and ERC721 is_precompile checks.
Note Futurepass PrecompileSet does not have any extra costs

LGTM; however, may need to update the TxCosts.md file respectively; can be seperate PR.

Yeah I thought about this, but didn't want to make things annoying for your AssetsExt benchmark PR. Can do a final run once all are merged


Help wanted!  Kindly share a document of usecase, how to install plugins for example

Oni Version: 0.3.6
Neovim Version (Linux only): NVIM v0.3.1-187-gcd6e7e8cf
Operating System: LinuxMint
Issue: I am new to nvim as well as oni. I wanted to install plugins and it's so all over the place about how to it. There are few for Neovim and few for vim, and everything is do dispersed, cluttered to new programmers. I am learning to code in Elixir and I am even not sure if plugins are there for that too.
Expected behavior: Expect a tutorial and a plugin feature which is integrated to the editor for easy install or atleast a document mentioning how to do so.
Actual behavior:
Steps to reproduce:

Hey! This is being worked on, and is in the 0.4 milestone. Right now, you can use a vim plugin manager (I use vim-plug, but there are plenty of options).


Increase channel buffer size from network worker to node tasks

Right now the buffer size is 5 elements. In other words, the worker can send 5 elements to a libp2p tasks, after which it has to go to sleep waiting for the libp2p task to make some space in that queue.
In practice, however, grandpa seems to sometimes send bursts of hundreds of messages, and it probably wouldn't hurt to increase this buffer size to a bit more than 5.
This requires changes in libp2p to make this buffer size configurable, but I'm opening it here to not forget to update Substrate later.

It seems that this change is indeed positive.
CPU usage of tasks (red is the network worker):

Size of queue of messages to send out:

These changes indeed seem to indicate that the network worker is often waiting for some node task to be ready, and that during this wait there's an accumulation of messages in the buffers, leading to the network worker taking a long time to process them.

I'm going to reopen this, because it seems to be that these channel sizes are still not as large as they should be.
Before blindly increasing the sizes again, we should introduce some way to know when the network worker is waiting for a libp2p node.

There has also definitely been an improvement to these spikes of networker worker CPU work.

Going to close this after https://github.com/paritytech/substrate/pull/6692


Set better pipelinerun generate name for sample: pipelinerun-with-par…

People can not know where the case come from just base the name "pr-xxxx", confuse people when try make integration-test works, like this:
pipelinerun-echo-greetings                               Succeeded   True      2020-05-04T23:49:40Z
pipelinerun-with-params                                  Succeeded   True      2020-05-04T23:49:36Z
pipelinerun-with-taskspec-to-echo-good-morning           Succeeded   True      2020-05-04T23:49:38Z
pipelinerun-with-taskspec-to-echo-greetings              Succeeded   True      2020-05-04T23:49:39Z
pipelinerun-with-taskspec-to-echo-message                Succeeded   True      2020-05-04T23:49:38Z
pr-d4t4v                                                 Succeeded   Unknown   2020-05-04T23:49:35Z
pr-different-path-7f2cc                                  Succeeded   True      2020-05-04T23:49:34Z

Changes

Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:

[ ] Includes tests (if functionality changed/added)
[ ] Includes docs (if user facing)
[ ] Commit messages follow commit message best practices

See the contribution guide for more details.
Double check this list of stuff that's easy to miss:

If you are adding a new binary/image to the cmd dir, please update
the release Task to build and release this image.

Reviewer Notes
If API changes are included, additive changes must be approved by at least two OWNERS and backwards incompatible changes must be approved by more than 50% of the OWNERS, and they must first be added in a backwards compatible way.
Release Notes
Describe any user facing changes here, or delete this block.

Examples of user facing changes:
- API changes
- Bug fixes
- Any changes in behavior

/test pull-tekton-pipeline-integration-tests

/retest

/lgtm cancel

/test pull-tekton-pipeline-integration-tests

/lgtm

Please update the Release Notes section of your PR, or remove it if this change is not visible to users.

This file was removed in https://github.com/tektoncd/pipeline/pull/2546/files
So I think we can probably close this for now?

/close
Feel free to reopen if there's still more to do here!


Possible Feature Request - "One to Many" Relationships

Hello,
We are trying to define a GET request that returns all events and on each event it returns all multimedia on that event.  I don't know if this is currently possible or out of the scope of the library, but I think it would be a great thing to add since we are maintaining two APIs.
We are currently using the following to get all events in our .ydsl file:
route /events {
    get {
        select e.id, e.*, u.username
        from Invitation as i
        inner join Event as e
        on i.eventId = e.id
        inner join User as u
        on e.ownerId = u.id
        where i.userId = $auth.id;
    }
}

What we want to do is add an array of multimedia to this request.  So the response would be something like:
[
{ name: "Event's Name"
, id: "Event's Id"
, multimedia: [{name: "Multimedia's Name", id: "Multimedia's Id", ...}, ...],
...
},
...
]

Is it possible to update our code to get this type of response?

Currently the tool implicitly assumes that a GET handler will just wrap a single SQL SELECT result into a JSON object. If you don't mind repetition in the data, namely Event.name and Event.id, you could add another join and then you'd have all the necessary data. The returned JSON array would still be "flat", e.g.[ { eventName: "Event's Name", eventId: "Event's id", multimediaName: "Multimedia's Name", multimediaId : "Multimedia's Id" }, ... ].
One easy option would be to transform the JSON array into whatever the client likes best (see https://github.com/tlaitinen/yesod-dsl/issues/20 ).
A slightly more complicated alternative would be to use something like json_agg(row_to_json((multimedia.id, multimedia.name))) but it's available only with PostgreSQL. This would avoid data duplication at server-side.
I'm inclined towards the former because it works with all SQL backends and is easier to implement. The latter could be added later own if needed.
What do you think=

@tlaitinen As you mention, having the JSON array return "flat" has issues with repetition of data.  If an event had a lot of multimedia then there is going to be many instances of that event to iterate through on the client side.  This is something we are trying to avoid with this request since we could always just get all events and then make separate requests per event to get all multimedia on that event.  Obviously, that is costly.  Currently we are doing this on our development platform.
I agree option one would be preferred as it is the simplest and is database agnostic.
Do you have a timeline of when this feature will be implemented?  I don't know if it has been started, but I can imagine that it will be somewhat complex.

The easiest way to implement this is just to indicate in the .ydsl file that the resulting JSON object should be post-processed by a Haskell function defined elsewhere. This is fairly easy to implement.
The downside to this approach is that it is not very type-safe as the JSON object's field labels are referenced as strings. However, until a better solution is found and implemented, it may be a viable solution to avoid transferring redundant data.
Later, an extension to the .ydsl select-statement itself could be worked on to allow type-safe post-processing of SQL SELECT's rows.
I'll try to implement the "custom" approach today.

I added a new statement which allows to customize the JSON object-to-be-returned in a get handler.
Example:
import Handler.Utils (mapEvents)
route /events {
    get {
        select e.id, e.*, u.username
        from Invitation as i
        inner join Event as e
        on i.eventId = e.id
        inner join User as u
        on e.ownerId = u.id
        inner join Multimedia as m on m.eventId = e.id
        where i.userId = $auth.id;

       map json with mapEvents;
    }
}

mapEvents has  the type forall m. (MonadIO m) => Value -> ReaderT SqlBackend m Value it can do quite complex post-processing with the JSON object.
A slight inconvenience is that you need to parse the JSON object and then serialize it again. The issue https://github.com/tlaitinen/yesod-dsl/issues/32 is related and could be useful when implemented.


[Bug]: infinity::ParserException, Boolean type should be true or false.

Is there an existing issue for the same bug?

[X] I have checked the existing issues.

Branch name
main
Commit ID
80d04e1
Other environment information
No response
Actual behavior
terminate called after throwing an instance of 'infinity::ParserException'
  what():  Boolean type should be true or false @src/parser/type/data_type.cpp:489
Aborted (core dumped)

Expected behavior
No response
Steps to reproduce
Function test case can be found in test_import.py `test_csv_with_different_delimiter`

Additional information
No response

Fixed by #880

It seems fixed.


Update README.md: add missing GEM package installation instructions

Add missing GEM package installation instructions

There's also a missing webpack-cli dependency<EMAIL_ADDRESS>but I'm unable to push up the branch due to permissions

There's also a missing webpack-cli dependency
When this example app was originally created, the webpack package included the webpack-cli. It was later on that it was independently required. That alone shows how old this repo is :) Perhaps time this is totally regenerated for Rails 6 and 7.


Fix/issue 450

closes #450

I signed CLA

Closing for now, please see comments on #450 for more details.  Also, it appears that there may be an unexpected change to README.md here?

Please see my comments on #450
I will undo unexpected changes to README.md before next PR.


requirejs -> window.require

@jdfreder

This tricks webpack into not bundling it?

requirejs is not a function...

It is added when you use require.js

Yes, but it's an object...

Requirejs works as a function too

Not when I load requirejs like this: https://github.com/SylvainCorlay/embed-bqplot/blob/master/index.html#L3.

What I'm interested in is using window.System so we can swtich to SystemJS for webpack 1 and 2.0.


Add a Gitter chat badge to README.md

hiloteam/Hilo now has a Chat Room on Gitter
@06wj has just created a chat room. You can visit it here: https://gitter.im/hiloteam/Hilo.
This pull-request adds this badge to your README.md:

If my aim is a little off, please let me know.
Happy chatting.
PS: Click here if you would prefer not to receive automatic pull-requests from Gitter in future.

 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.


Update messages.RU.yml

You are always so on top of this!
I may have a few more command messages coming for the new "fetch" command but I'm hoping I'll stop making more work for you soon :)

There is no problems absolutely, it's not that hard for me :)


python38Packages.mne-python: 0.23.4 -> 0.24.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python38Packages.mne-python is: "Magnetoencephelography and electroencephalography in Python"
meta.homepage for python38Packages.mne-python is: "https://mne.tools"
meta.changelog for python38Packages.mne-python is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
/nix/store/0pmqvzg53hir1lkfv9vz9k6yjkf50lz1-python3.8-mne-python-0.24.0/bin/.mne-wrapped passed the binary check.
/nix/store/0pmqvzg53hir1lkfv9vz9k6yjkf50lz1-python3.8-mne-python-0.24.0/bin/mne passed the binary check.
0 of 2 passed binary check by having a zero exit code.
2 of 2 passed binary check by having the new version present in output.
found 0.24.0 with grep in /nix/store/0pmqvzg53hir1lkfv9vz9k6yjkf50lz1-python3.8-mne-python-0.24.0
found 0.24.0 in filename of file in /nix/store/0pmqvzg53hir1lkfv9vz9k6yjkf50lz1-python3.8-mne-python-0.24.0

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

2 package rebuild(s)

2 x86_64-linux rebuild(s)
2 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
python38Packages.mne-python
python39Packages.mne-python

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/0pmqvzg53hir1lkfv9vz9k6yjkf50lz1-python3.8-mne-python-0.24.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python38Packages.mne-python https://github.com/r-ryantm/nixpkgs/archive/a53521b536daa74fe4f52549d65eb8715ff843b7.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/0pmqvzg53hir1lkfv9vz9k6yjkf50lz1-python3.8-mne-python-0.24.0
ls -la /nix/store/0pmqvzg53hir1lkfv9vz9k6yjkf50lz1-python3.8-mne-python-0.24.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

python38Packages.mne-python
python39Packages.mne-python

Maintainer pings
cc @bcdarwin for testing.

@GrahamcOfBorg build python3Packages.mne-python python38Packages.mne-python


Add Multimedia University

@wenrong443 First stage of verification passed, official domain for Multimedia University is mmu.edu.my as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@wenrong443 Thank you for your patience while waiting for a review and processing your request. Pull request merged.
Please start requesting the licenses in about an hour, to let the changes to propagate through our system.