Add skip to main for screenreaders

For screenreaders it is useful to add a link that allows them to skip past (i.e, navigation) to the main content. You already have a div that says role="main", but semantically it is more correct for this to be the <main> tag.

The main tag is new in HTML5 which sphinx just switched over by default I think in the upcoming Sphinx 2 version. sr-only sr-only-focusable these seem to be from bootstrap which we do not use.

Oops you're right. I forgot about that.


Stuck in loading while browsing

Steps to reproduce

Choose a source to browse (can be any source)
Tap on either latest or browse
Tap on any manga
Press back

Expected behavior
It should send me back to the previous menu
Actual behavior
The app keep loading
Crash logs
No response
Tachiyomi version
Preview r464
Android version
Android 11
Device
Oneplus Nord ce
Other details
No response
Acknowledgements

[X] This is a TachiyomiSY specific issue that does not happen in Tachiyomi Preview.
[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] If this is an issue with an extension, I should be opening an issue in the extensions repository.
[X] I have tried the troubleshooting guide.
[X] I have updated the app to version 1.8.4.
[X] I have updated all installed extensions.
[X] I will fill out all of the requested information in this form.

This is a known main Tachi bug

Ok idk why when i've test it on the latest tacho preview i didn't encounter the bug

Someone asked about the same bug in discord and they said it was known. Might be because the changes are not in the latest preview yet


Bump to ApiApprover 10.0.1

Affects Azure Service Bus only
Brings up to speed with PublicApiGenerator 10.0.1 which supports nullable reference types and has more stable member sorting
See https://github.com/PublicApiGenerator/PublicApiGenerator/releases/tag/10.0.0
I triple checked the API diff and it looks good apart from the new sorting and also a small change because we support properly now the sealed and other modifiers

I'll ask that @nemakam or @binzywu take point for this.

@weshaggard looks like a safe change to me. We might eventually discontinue this test but until we do having the latest version doesn't hurt.

Thanks for the context @danielmarbach @pakrym, I'm fine with the update but I'd like one of the service bus folks @nemakam @binzywu to sign-off before we merge.


How to use socks5 proxies?

Hello,
everytime I try to use socks5 proxies I got a Connection Error:
>>> get(
...     "https://ipv4.webshare.io/",
...     proxies={
...         "http": "socks5h://XXXX-rotate:XXXXX@p.webshare.io:80/",
...         "https": "socks5h://XXXX-rotate:XXXX@p.webshare.io:80/"
...     }
... ).text
Traceback (most recent call last):
  File "/home/bader/code/python3/lib/python3.11/site-packages/hrequests/response.py", line 72, in execute_request
    resp = self.session.execute_request(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/bader/code/python3/lib/python3.11/site-packages/hrequests/client.py", line 389, in execute_request
    raise ClientException(response_object['body'])
hrequests.exceptions.ClientException: failed to build client out of request input: scheme socks5h is not supported

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/bader/code/python3/lib/python3.11/site-packages/hrequests/reqs.py", line 209, in request
    req.send()
  File "/home/bader/code/python3/lib/python3.11/site-packages/hrequests/reqs.py", line 126, in send
    raise e
  File "/home/bader/code/python3/lib/python3.11/site-packages/hrequests/reqs.py", line 123, in send
    self.response = self.session.request(self.method, self.url, **merged_kwargs)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/bader/code/python3/lib/python3.11/site-packages/hrequests/session.py", line 181, in request
    proc.send()
  File "/home/bader/code/python3/lib/python3.11/site-packages/hrequests/response.py", line 65, in send
    self.response = self.execute_request()
                    ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/bader/code/python3/lib/python3.11/site-packages/hrequests/response.py", line 80, in execute_request
    raise ClientException('Connection error') from e
hrequests.exceptions.ClientException: Connection error

Unfortunately socks5h is not supported by tls-client due to limitations in Go's backend. There may be a time in the future in which socks5 support is added, but it isn't possible at the moment.
Here is a reference: https://github.com/golang/go/issues/13454

What about socks5 and not socks5h?

An experimental socks5 proxy has been added to tls-client a couple days ago, and should be rolled out with its next release. This should be added within the next couple of weeks.

v0.8.0-beta.2 bumped tls-client up to 1.7.2, so socks5 should work perfectly fine now 👍


fixes empty --tag-prefix

This check is superfluous. The default is set in rc.js. If we want to be type safe for expandTemplate() we can add a type check if we want to but I think it is not necessary.
fixes #141

Hmm, maybe we should switch to github actions?

@mathiask88 Do you want to publish it or should I?

@ralphtheninja Go for it, you are probably much faster, my last npm release is month ago 😄

6.0.1


feature: gives the possibility to add extra labels to the serviceAcco…

Fixes https://github.com/external-secrets/external-secrets/issues/1355
With this change, users of the Helm chart will have the possibility to add extra labels to the service accounts.
As explained in the issue, this is needed for users on AKS using Azure Workload Identity authentication.
Defaults to none.
Signed-off-by: cebidhem<EMAIL_ADDRESS>

To maintainers of the project: I just modified the Helm charts, and it fails the golangci-lint (as the last release commit btw)
I'm not sure I should try to fix it as I'm not a super Golang developer. Let me know what you think.

@gusfcarvalho if you have any advice on this I could use it :)

You don't need to. This is the CI failing due to lint timeout... I'm creating a separate issue for that. Some retries should do the trick here.

/approve

@cebidhem thank you for your contribution! 😄

/merge


MLPerf - Training Reference Implementation

Are Reference implementations for training the model under the development? Do they train the model effectively?

Reference implementations will train their respective models to an accuracy at least as high as the target quality specified in the rules.


Slashes in branch names break container build

What you expected to see, versus what you actually saw
Our pipeline to not break upon dependabot PR.

Since probably more than half of the dev world is building image(s) by now in their pipelines, I would expect dependabot to NOT create branch names that don't translate to image tags. How unvisionary is that?
Seeing this involves probably just replacing slashes with either underscore(s) or dash(es) I am hoping this will be a quick and easy fix here. Offering the configuration to replace these slashes (with underscore as default, as it makes most sense IMO) would be nice.

@Morriz you can configure the branch name separator using the config file: https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/configuration-options-for-dependency-updates#pull-request-branch-nameseparator
Sorry for the slow response!

@Morriz you can configure the branch name separator using the config file: https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/configuration-options-for-dependency-updates#pull-request-branch-nameseparator
Sorry for the slow response!

Well, I instructed the team already to only create meaningful branch names adhering to [a-z]+[a-z-]+ now, since we still would have to come up with identical rewrite logic for retagging. Plus we don't want long living branch names anyway ;)

Well, I instructed the team already to only create meaningful branch names adhering to [a-z]+[a-z-]+ now, since we still would have to come up with identical rewrite logic for retagging. Plus we don't want long living branch names anyway ;)


punctuation is removed

The  functions have problem with punctuations or even apostrophe
Example:
"WE'RE ALMOST HERE.".toCapitalCase() // "We Re Almost Here"
"WE'RE ALMOST HERE".toSentenceCase() // "We re almost here"
"WE'RE ALMOST HERE".toTitlelCase() // "WE'RE ALMOST HERE."

I would except the punctuation to stay, and stay the same.

Hey @solsticedhiver 👋
Thanks for bringing this to my attention, I'll work on a fix for this


fix(python): fix occasional missing logs on AWS

We could also document that the user can add PYTHONUNBUFFERED=TRUE to their .env so it's opt-in instead of set. Can link to this issue: https://github.com/aws/amazon-sagemaker-examples/issues/319

We could also document that the user can add PYTHONUNBUFFERED=TRUE to their .env so it's opt-in instead of set. Can link to this issue: aws/amazon-sagemaker-examples#319

True, another option would be for our SDK to call sys.stdout.flush() before exiting so we make sure logs are written.
That said, unless heavy logging is taking place this should present a significant performance issue and it ensures the logs aren't lost (which is what happens currently in some cases). Maybe we should find a way to make this opt out in a future update

would the best of both worlds here be to
ENV PYTHONUNBUFFERED=TRUE


request help: pkg/apisix/upstream.go List Returns when an error is encountered

Issue description
The following logic, if I run into an error, causes all nodes after this node to be skipped
Is this by design
https://github.com/apache/apisix-ingress-controller/blob/819b00318e8cd9b6639913301fb89d2acb168926/pkg/apisix/upstream.go#L127
        var items []*v1.Upstream
	for i, item := range upsItems.Node.Items {
		ups, err := item.upstream()
		if err != nil {
			log.Errorw("failed to convert upstream item",
				zap.String("url", u.url),
				zap.String("upstream_key", item.Key),
				zap.Error(err),
			)
			return nil, err
		}
		items = append(items, ups)
		log.Debugf("list upstream #%d, body: %s", i, string(item.Value))
	}
	return items, nil

2021-12-26T10:34:56+08:00	error	apisix/upstream.go:122	failed to convert upstream item	{"url": "http://apisix-admin.ingress-apisix.svc.cluster.local:9180/apisix/admin/upstreams", "upstream_key": "/apisix/upstreams/387087894457615097", "error": "unmarshal upstream failure,err:unexpected non-empty object,value:{\"timeout\":{\"send\":6,\"connect\":6,\"read\":6},\"type\":\"roundrobin\",\"scheme\":\"http\",\"update_time\":1640251964,\"id\":\"387087894457615097\",\"pass_host\":\"pass\",\"nodes\":{\"<IP_ADDRESS>:80\":100},\"name\":\"test_iam-frontend_80\",\"create_time\":1640251964,\"keepalive_pool\":{\"size\":320,\"idle_timeout\":60,\"requests\":1000}}: unexpected non-empty object", "errorVerbose": "unexpected non-empty object\nunmarshal upstream failure,err:unexpected non-empty object,value:{\"timeout\":{\"send\":6,\"connect\":6,\"read\":6},\"type\":\"roundrobin\",\"scheme\":\"http\",\"update_time\":1640251964,\"id\":\"387087894457615097\",\"pass_host\":\"pass\",\"nodes\":{\"<IP_ADDRESS>:80\":100},\"name\":\"test_iam-frontend_80\",\"create_time\":1640251964,\"keepalive_pool\":{\"size\":320,\"idle_timeout\":60,\"requests\":1000}}\ngithub.com/apache/apisix-ingress-controller/pkg/apisix.(*item).upstream\n\t/build/pkg/apisix/resource.go:132\ngithub.com/apache/apisix-ingress-controller/pkg/apisix.(*upstreamClient).List\n\t/build/pkg/apisix/upstream.go:120\ngithub.com/apache/apisix-ingress-controller/pkg/apisix.(*cluster).syncCacheOnce\n\t/build/pkg/apisix/cluster.go:211\ngithub.com/apache/apisix-ingress-controller/pkg/apisix.(*cluster).syncCache.func2\n\t/build/pkg/apisix/cluster.go:185\nk8s.io/apimachinery/pkg/util/wait.ConditionFunc.WithContext.func1\n\t/go/pkg/mod/k8s.io/apimachinery@v0.22.4/pkg/util/wait/wait.go:217\nk8s.io/apimachinery/pkg/util/wait.runConditionWithCrashProtectionWithContext\n\t/go/pkg/mod/k8s.io/apimachinery@v0.22.4/pkg/util/wait/wait.go:230\nk8s.io/apimachinery/pkg/util/wait.runConditionWithCrashProtection\n\t/go/pkg/mod/k8s.io/apimachinery@v0.22.4/pkg/util/wait/wait.go:223\nk8s.io/apimachinery/pkg/util/wait.ExponentialBackoff\n\t/go/pkg/mod/k8s.io/apimachinery@v0.22.4/pkg/util/wait/wait.go:418\ngithub.com/apache/apisix-ingress-controller/pkg/apisix.(*cluster).syncCache\n\t/build/pkg/apisix/cluster.go:182\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1371"}

Environment

current master

Is this by design

yes. If it doesn't return directly here, the user may not find this error.

And it looks like the problem with the old type format of apisix.

A node problem causes other nodes to be unavailable. Whether this logic makes sense ?
Looking for an error of one node can provide other reasonable ways ?

@tao12345666333 Can't the error just be logged and the return skipped?

@tao12345666333 Can't the error just be logged and the return skipped? What is the issue with that approach?

Making this modification is not difficult.
Can you describe your scenario and expectations?

Just removing the return statement and only logging the errors. So, even if one node fails, it will log the error but the loop will continue for other nodes.

Obviously we should make some changes.
Do you remember why this is done here?  @gxthrj @tokers

Obviously we should make some changes.
Do you remember why this is done here?  @gxthrj @tokers

A half-successful upstream set could cause other problems, which will be hard to troubleshoot, just let it fail can pin the problem and won't propagate.

I think the issue is related to https://github.com/apache/apisix-ingress-controller/issues/712, they have similar points:
The id in upstream is a string type, but the id from upstreams get from the List is int.
We need to consider the compatibility of this field.

@gxthrj For #712 I don't think we need to provide compatibility with dashboard upstream resources. The project directly manipulates etcd, and in the new roadmap of APISIX I see that this function will be weakened. Compatible with it probably doesn't make sense.
I have seen some issues recently. Most of the scenarios are to use ApisixUpstream resources to perceive changes in Kubernetes services/endpoints, and then use it with Dashboard to create routes.

I have seen some issues recently. Most of the scenarios are to use ApisixUpstream resources to perceive changes in Kubernetes services/endpoints, and then use it with Dashboard to create routes.

Yes, That is true.

For https://github.com/apache/apisix-ingress-controller/issues/712 I don't think we need to provide compatibility with dashboard upstream resources. The project directly manipulates etcd, and in the new roadmap of APISIX I see that this function will be weakened. Compatible with it probably doesn't make sense.

If that, we can not resolve this issue and #712. What is the plan about this issue?

As I said above, there will not be full support for the scenarios mentioned by #712.
But we can consider using APISIX Ingress to define ApisixUpstream, and route resources are maintained by others.

As I said above, there will not be full support for the scenarios mentioned by #712.
But we can consider using APISIX Ingress to define ApisixUpstream, and route resources are maintained by others.

OK, I see, so the ApisixUpstream resource will be supported frist.

Yes. I've seen a lot of feedback on that issue.


Fixed Camera preview when creating new scenes

The Camera preview button wasn't connected properly when a new viewport was created, unless a scene was loaded.
Same thing when switching from a loaded scene to a scene which is not saved yet, the preview button wasn't properly reconnected.
Fixes #33490

The regression was caused by #33107 which this partially reverts, so it would be good to check that #29230 is not reintroduced. CC @volzhs

I've tried and didn't reproduce the error cases from #29230 or #33050 with the new changes.

Thanks!


Spamming Ctrl+Z makes the JavaFXApplication crash

Hi,
Im using RichTextFX's CodeArea and noticed a weird bug.
Basically every shortcut works as expected : Ctrl+C, Ctrl+V... But spamming Ctrl+Z makes the JavaApplication crash.
Windows 10 x64, coding with NetBeans.
I'm using the RichTextFX FatJar version 0.6.10
Error code :
Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: Unexpected change received.
Expected:
org.fxmisc.richtext.PlainTextChange@745f
Received:
org.fxmisc.richtext.PlainTextChange@74c3
at org.fxmisc.undo.impl.UndoManagerImpl.changeObserved(UndoManagerImpl.java:185)
at org.reactfx.util.QueuingStreamNotifications.lambda$head$274(NotificationAccumulator.java:217)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.SuspendableBase.resume(SuspendableBase.java:64)
at org.reactfx.CloseableOnceGuard.close(Guard.java:49)
at org.reactfx.MultiGuard.close(Guard.java:83)
at org.fxmisc.richtext.StyledTextArea.replace(StyledTextArea.java:731)
at org.fxmisc.richtext.StyledTextArea.replaceText(StyledTextArea.java:718)
at org.fxmisc.richtext.TextEditingArea.replaceText(TextEditingArea.java:204)
at org.fxmisc.richtext.EditActions.replaceSelection(EditActions.java:119)
at org.fxmisc.richtext.skin.StyledTextAreaBehavior.keyTyped(StyledTextAreaBehavior.java:281)
at org.fxmisc.wellbehaved.event.EventHandlerTemplate$On.lambda$null$23(EventHandlerTemplate.java:156)
at java.util.Optional.ifPresent(Optional.java:159)
at org.fxmisc.wellbehaved.event.EventHandlerTemplate$On.lambda$act$24(EventHandlerTemplate.java:155)
at org.fxmisc.wellbehaved.event.EventHandlerTemplate$Builder.lambda$create$21(EventHandlerTemplate.java:117)
at org.fxmisc.wellbehaved.event.EventHandlerTemplate.lambda$null$17(EventHandlerTemplate.java:39)
at org.fxmisc.wellbehaved.event.EventHandlerTemplate.lambda$bind$14(EventHandlerTemplate.java:18)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Scene$KeyHandler.process(Scene.java:3964)
at javafx.scene.Scene$KeyHandler.access$1800(Scene.java:3910)
at javafx.scene.Scene.impl_processKeyEvent(Scene.java:2040)
at javafx.scene.Scene$ScenePeerListener.keyEvent(Scene.java:2501)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:216)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:148)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$353(GlassViewEventHandler.java:247)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:246)
at com.sun.glass.ui.View.handleKeyEvent(View.java:546)
at com.sun.glass.ui.View.notifyKey(View.java:966)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
at java.lang.Thread.run(Thread.java:745)
Any fix ?

Unexpected change received.
Expected:
org.fxmisc.richtext.PlainTextChange@745f
Received:
org.fxmisc.richtext.PlainTextChange@74c3

It's not the spamming of Ctrl+Z that's the issue.
UndoFX works like so:

The UndoManager gets notified every time the editable object gets changed. When it does, it stores that change in a queue.
When the user undos/redos a change, the UndoManager will store that change before applying it. By applying that change, the UndoManager now gets notified of the change. However, in this case, the received change is not a new one, so it should ignore it. It knows this by compares the change it received with the one it expected (the one it stored in a variable before applying it). If they equal (a.equals(b)), then it does not add the received change to its queue since it's already in there. The position that points to the next redoable redo and undoable undo gets incremented forward by one.
The issue you are experiencing arises when a unique situation happens: the user calls undo/redo, the change to be applied is stored away for comparison for later, and the change is applied. However, the applied change does not get emitted as a notification to the UndoManager. (I forget the exact reasons why....). When the user applies a change, the UndoManager goes through the normal steps: check if the expectedChange is null (this is a new change): false; check if the received change equals the expectedChange (this is a redone/undone change): false, because the previous change was never cleared out of expectedChange; default to third case: throw your above exception.

We might have fixed this in the latest 0.7 release, but I can't remember. Could you compare the `0.6.10In case you can't update to the newest release, I think, but am not entirely sure, you can backport the fix we implemented for that

This might be the same issue as #322.

If you can try 0.7-M2, if it doesn't solve the problem, it should at least give a better error message.

This might be the same issue as #322.

Mm... I thought we had addressed this elsewhere...

Ok it's working well since the 0.7 thanks a lot for your reactivity !


Unexpected behavior when using custom_jvp and BCOO sparse matrices

Description
I encountered a strange behavior while using custom_jvp in combination with BCOO matrices.
It seems like the native autodiff rules work fine, but using custom_jvp gives strange results.
(Maybe my implementation for the custom jacobian-vector-product is wrong, but I'm pretty sure I did it correctly)
This problem seems similar to #10163.
The following code shows what I mean.
import jax
from jax import Array
from jax import numpy as jnp
from jax import random as rnd
from jax.experimental.sparse import BCOO

def mvp(A: BCOO, b: Array) -> Array:
    x = A @ b
    return x

def mvp_jvp(primals: tuple[BCOO, Array], tangents: tuple[BCOO, Array]) -> tuple[Array, Array]:
    (A, b) = primals
    (A_dot, b_dot) = tangents
    x = A @ b
    x_dot = A_dot @ b + A @ b_dot
    return (x, x_dot)

mvp_with_custom_jvp = jax.custom_jvp(mvp)
mvp_with_custom_jvp.defjvp(mvp_jvp)

A_shape = (3, 3)
A_indices = jnp.asarray([[0, 0],[1,1],[2,2]])
A_data_shape = (A_indices.shape[0],)
b_shape = (A_shape[1],)

def to_sparse(A_data: Array) -> BCOO:
    return BCOO((A_data, A_indices), shape=A_shape)

def data_mvp(A_data: Array, b: Array) -> Array:
    return mvp(to_sparse(A_data), b)

def data_mvp_with_custom_jvp(A_data: Array, b: Array) -> Array:
    return mvp_with_custom_jvp(to_sparse(A_data), b)

key = rnd.PRNGKey(0)

key, subkey = rnd.split(key)
A_data = rnd.uniform(subkey, shape=A_data_shape)

key, subkey = rnd.split(key)
b = rnd.uniform(subkey, shape=b_shape)

print(jnp.diag(b)) # since the sparse matrix is diagonal, the result should be this
print(jax.jacfwd(data_mvp)(A_data, b))  # correct
print(jax.jacrev(data_mvp)(A_data, b))  # correct
print(jax.jacfwd(data_mvp_with_custom_jvp)(A_data, b))  # wrong
print(jax.jacrev(data_mvp_with_custom_jvp)(A_data, b))  # wrong

What jax/jaxlib version are you using?
jax v0.4.17, jaxlib v0.4.17
Which accelerator(s) are you using?
cpu
Additional system info
No response
NVIDIA GPU info
No response

Thanks for the report! The problem is that custom_jvp does not propagate sparse indices correctly. You can fix it by doing this:
def mvp_jvp(primals: tuple[BCOO, Array], tangents: tuple[BCOO, Array]) -> tuple[Array, Array]:
    (A, b) = primals
    (A_dot, b_dot) = tangents
    A_dot.indices = A.indices
    x = A @ b
    x_dot = A_dot @ b + A @ b_dot
    return (x, x_dot)

This is a fundamental issue with the design of custom_jvp as it relates to the design of sparse.BCOO. In the past we've thought about ways to allow types like BCOO to register with the autodiff system how their attributes should be handled within autodiff operations, but we haven't come up with a good solution. So unfortunately, there are corner cases that remain broken, and you've found one of them.

Thanks for the quick reply! I didn't expect that you could provide a working solution this fast, so this is a welcome surprise.
Is there any way I could have known this in advance?

No, unfortunately the experimental sparse APIs don't have very complete documentation


Error with "npm run build"

Hi, I was trying to install the aria2 branch on my pc with Windos 7 operating system, however after performing the procedure, I arrive at the command npm run build and this message appears. What to do to solve?
Transpiling TypeScript to JavaScript...
destreamer/test/test.ts(6,25): error TS2307: Cannot find module './Types' or its corresponding type declarations.
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR<EMAIL_ADDRESS>build: echo Transpiling TypeScript to JavaScript... && node node_modules/typescript/bin/tsc && echo Destreamer was built successfully.
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!      C:\Users\Alex\AppData\Roaming\npm-cache_logs\2020-10-14T12_55_15_871Z-debug.log

Guys I solved, I close.


How to run rxinfer on infinite stream iteratively?

Hello, thank you very much for this awesome package and that it supports infinite streams.
I would like to use it, however my setup builds on Pluto.jl where the reactivity is source of the infinite stream. Something changes, and a new data point arrives because of this.
The infinite stream example seems to fully rely on Rocket.jl for iteration.
Is there a way to make this iteration explicit? I.e. can I rewrite the rxinference call to a standard for loop on a possible infinite iterator? (I then want to use a single iteration of this for loop)
EDIT: In Pluto, a respective plot is updated by just returning it. Hence I really need to run a single iteration step independently so that I can produce the plot and return it.

Hi @schlichtanders!
Good to hear that you like our package! I am interested to learn more about the issue that you are running into, such that we can improve our package for future users. Personally, I have also been using RxInfer in combination with Pluto, but have not yet experienced any issues.
I am not exactly sure about your setup and about what you want to achieve, as this is not entirely clear to me yet. Are you trying to create a setup where the datastream depends on a variable, which might get updated by the user at any moment in time (in your case in a Pluto notebook)? e.g.
# cell 1:
a = 1

# cell 2:
datastream = ... # something that depends on a

# cell 3:
rxinference(datastream= datastream, ....)

or are you trying to achieve something else?
Nonetheless, I think you might be interested in the following (advanced) examples, where we use Makie.jl to create an interactive interface:

https://github.com/biaslab/ReactiveMP_JuliaCon2021
https://github.com/biaslab/ReactiveInferencePendulum

Thank you for your answer. Yes I also thought that Makie and its use of Observables pretty well fits the design of RxInfer.
However for me the usecase is really different. Think more like this
# cell 1:
update = Dates.now()

# cell 2:
# do what ever rxinference does internally to get new posterios
posterior = rxinference_internal(prior, update)

# cell 3:
posterior.plot

This actually makes sense, as Pluto can trigger reevaluations of cells automatically, so that cell 1 could indeed run again and again if there is a new update available

@schlichtanders  Perhaps, for your use case you can just use the inference function then? Your logic will be looking like
# cell 1:
update = Dates.now()

# cell 2:
# I assume in your model specification you have a `datavar` named `y`
posterior = inference(model = my_model(prior), data = (y = update, ))

# cell 3:
plot(posterior)

or something similar. We use this kind of pattern in almost all of our examples in the documentation, and it works perfectly inside Pluto because Pluto itself handles all reactivity. The interface to the inference function is almost identical to rxinference, with the exception that it encapsulates all the reactivity magic inside, and simply returns the result, allowing you to write an explicit for loop. Based on your original question, it seems that this is precisely what you are looking for.
See more documentation for the inference function here: https://biaslab.github.io/RxInfer.jl/stable/manuals/inference/inference/
As @bartvanerp pointed out, you can also explicitly setup the datastream object yourself an update it with the next! function from Rocket manually and use the rxinference function. The logic will be looking something like
# I assume in your model specification you have a `datavar` named `y`
subject = Subject(Int) # An observable

# Transform (or map) the subject of integers into a datastream of named tuples
# `rxinference` function expects a source of `NamedTuple`s
datastream = subject |> map(NamedTuple{(:y, ), Tuple{Int}}, (update) -> (y = update, ))

engine = rxinference(datastream = datastream, ...)

subscription_on_posterior = subscribe!(engine.posteriors[:x], (new_posterior) -> do_something_with(new_posterior))

And then you can push a new update to a subject explicitly (when a timer hits or you get a new update from an internet)
next!(subject, 1)

See more documentation here: https://biaslab.github.io/RxInfer.jl/stable/manuals/inference/rxinference/
The thing is, you must not forget to unsubscribe from subscription_on_posterior to avoid a memory leak. This kind of pattern doesn't work well in Pluto because if you have an unsubscribe!(subscription_on_posterior) somewhere in Pluto, it will be executed immediately and unsubscribe right away. If you don't unsubscribe, Pluto will create a new subscription every time something changes, resulting in multiple running inference processes in the background. Therefore, for your case, I would suggest using the inference function first.


Can't docker pause from within a container

I can docker pause just fine from the host machine:
sudo docker pause container1

However, if I enter another container and try to pause container1, I get the following error:
docker exec -it container2 bash
docker pause container1 (in container2)

---> Cannot pause container container1: open /sys/fs/cgroup/freezer/docker/e045e46773783c32c9038cb835864c2ecf526b5f547ed5c7811c5fe609e6a661/freezer.state: no such file or directory
From the tests it seems like I should be able to do this, but perhaps I'm missing something.
docker version: Client version: 1.6.1
Client API version: 1.18
Go version (client): go1.4.2
Git commit (client): 97cd073
OS/Arch (client): linux/amd64
Server version: 1.6.1
Server API version: 1.18
Go version (server): go1.4.2
Git commit (server): 97cd073
OS/Arch (server): linux/amd64
uname -a: Linux vagrant 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Hi!
Please read this important information about creating issues.
If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
This is an automated, informational response.
Thank you.
For more information about reporting issues, see https://github.com/docker/docker/blob/master/CONTRIBUTING.md#reporting-other-issues

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
uname -a:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
 Have you tried upgrading?

Yep, this works as expected in 1.8.2 too. Also, don't forget that you have to mount docker's socket, like @aidanhs is doing in his example.
Closing this. Please, feel free to reopen if you upgrade to 1.8.2 and still find issues following the previous example.


Feature/update to readme

Description:
Added table of contents and animated GIFs showing screen flow to README.
Linked issues:
NA
Screenshots:

How to test:
NA

@deewhyweb sorry for the trouble but we think we might have fixed the issue with CI would you mind rebasing the develop branch to kick the CI process again. Thank you so much!

Resubmitting


single consumer version + ExampleConsumer and some alter

I have write the buffer for consumer to consume message
now build success
I am tring to run it successfully

@LemonGrassSmell   Please update me if it runs successfully. I'll merge it.


feat: double clicking sub list item row triggers centerPlayerOnTokens…

Implements update to close https://github.com/dayvar14/obr-draw-steel/issues/54
Just moves event handler up to the InitiativeSubListItem top-level element instead of just the token icon. Result is that double clicking on the icon or the row centers the user's view on the token.

Ignore the tests. Seem to be broken. I like this change. Thanks for your contribution.

Made this issue as cursor icon and css style when pressed would make this nicer
https://github.com/dayvar14/obr-draw-steel/issues/56


Updating info

Hello, I was looking on the about / help / Donate page of CommaFeed and noticed that the link to the Chrome Extension is broken.
Also, did CommaFeed go offline for a few hours yesterday? I was getting a page saying "Bad Gateway"

Google was no longer happy with the exttension being on the store :(
See https://github.com/Athou/commafeed/issues/967
As for the downtime, I apologize. It seems the automatic weekly restart did not go as planned and I was sleeping.


feat: add passkey warning message for not supported system

Add passkey warning messages for not supported devices.

Tested on the QA environment, it is working as expected


docs: add back section on innerTestRef

Looks like the section on HOC got removed from the 1.0 docs, this adds
the section back and updates for the 1.0 api.

Thanks!


GRANT and SHOW GRANTS docs

This PR finishes docs ons SHOW GRANTS and updates GRANTS to have a consistent structure with out SQL statement docs.
Fixes #688
Fixes #488

This change is

@mberhault, PTAL.

LGTM


incorrect treatment of sigma??

Hi,
I suspect in your CIR model you are forgetting to scale the brownian motion term. If I am reading your code correctly, instead of:
dr = K*(theta-rates[-1])*dt + sigma*np.sqrt(rates[-1])*np.random.normal()

I would have said:
dr = K*(theta-rates[-1])*dt + sigma*np.sqrt(rates[-1])*np.sqrt(dt)*np.random.normal()

What am I missing?
-VV

you're right, please scale it.


No code?

Hello!
It's been more than 6 months since the paper got released but we still don't have access to the source.
What's blocking the publication of the source code?
Did you find errors/issues that compromise the results you published?

I have trouble reproducing the diffusion model. How important is the coordinates map for the generation process?
Do you use a position encoding or normalized coordinates or rough integer coordinates in this map?

I have trouble reproducing the diffusion model. How important is the coordinates map for the generation process? Do you use a position encoding or normalized coordinates or rough integer coordinates in this map?

Are you referring to the sampling point process? The paper employs normalization within the range [-1, 1] and subsequently uses PyTorch's grid_sample function for interpolation. Alternatively, you could directly use integers and fetch features through index operations to proceed with the subsequent loss calculation.

No sorry, I was working on multiple things at the same time and got confused/mixed up, that question was not for your paper. 🙇

I'll wait on #1 to be resolved to get the source code.


im2rec with python

What is the speed compared to cxx implementation?

should be faster since it's multithreaded. especially on ssd

rebase and then merge?


Change direction of suggestion list (make it appear above the text field?)

Is this possible?
Thanks for the great work.

@decoyfox right now the control detects if the list will be under the keyboard, then it changes the position. Did you test it?. Are you expecting another behavior?. Thanks for the comment!.

Oh, so it should change automatically?
My list is stuck under the keyboard.
It would be awesome if I could get it to be above the text field!

On Mar 2, 2017, at 5:17 AM, Alejandro Pasccon<EMAIL_ADDRESS>wrote:
@decoyfox right now the control detects if the list will be under the keyboard, then it changes the position. Did you test it?. Are you expecting another behavior?. Thanks for the comment!.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Same here, it's below my keyboard on my 5 plus.

Can you please send me an screenshot?. Thanks!


[AutoPR containerregistry/resource-manager] [ACR] Update retention policy schema

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/7006

This PR has been merged into https://github.com/Azure/azure-sdk-for-go/pull/5602


Using different schemas for XAdES

I would like to know if it is possible to use a different .xsd eschema for the XAdES signature. I tried changing the http links in lines 12, 14, 38 (which point to schema files) in bes.py to no avail.

In this module xsd logic is hardcoded in code and follows http://www.w3.org/2000/09/xmldsig specification


II#21 update title tags

Tested to confirm all changes are successful.

Noticed the login page itself got left behind. updated that and should be good now.


something wrong with “Always On Top”

Microsoft PowerToys version
0.63.0
Installation method
GitHub
Running as admin
Yes
Area(s) with issue?
Always on Top
Steps to reproduce
First, I set the notepad always on top, and then, when I click the lower right corner of the screen to return desktop, the taskbar disappears, just like the img fllow:

Obviously, taskbar does not show:

When I use alt+tab to wake up the notepad, taskbar comes back.
✔ Expected Behavior
No response
❌ Actual Behavior
No response
Other Software
No response

Hi, could you attach /bugreport?
Also, what do you mean with when I click the lower right corner of the screen to return desktop ? Clik Show desktop or somewhere else?


Packagist.org not up to date?

Packagist delivers the wrong commit hash for dev-master - could you check the setup for the webhook?
Thank you in advance! :)

This might have to had something to do with the renaming of the repo from gcloud-php to google-cloud-php. I just triggered a force update on packagist which appears to have bundled up the latest code. I'll keep an eye on it during our next few merges to master to see if the issue is resolved or not.

The latest merge was reflected on packagist, looks like we can close this :) Thanks for the report!

My pleasure - thanks for the library :)


install.sh: rbenv_install_ruby: Ruby openssl extension was not compiled

Installing Ruby 2.3.0 with rbenv (rbenv install 2.3.0) fails due to openssl extension not being compiled.
[INFO] Installing Ruby 2.3.0 via rbenv
Downloading ruby-2.3.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2
Installing ruby-2.3.0...

BUILD FAILED (Debian 9.4 using ruby-build 20180224)

Inspect or clean up the working tree at /tmp/ruby-build.20180310212506.81358
Results logged to /tmp/ruby-build.20180310212506.81358.log

Last 10 log lines:
installing rdoc:              /home/machos/.rbenv/versions/2.3.0/share/ri/2.3.0/system
installing capi-docs:         /home/machos/.rbenv/versions/2.3.0/share/doc/ruby
The Ruby openssl extension was not compiled.
ERROR: Ruby install aborted due to missing extensions
Try running `apt-get install -y libssl-dev` to fetch missing dependencies.

Configure options used:
  --prefix=/home/machos/.rbenv/versions/2.3.0
  LDFLAGS=-L/home/machos/.rbenv/versions/2.3.0/lib
  CPPFLAGS=-I/home/machos/.rbenv/versions/2.3.0/include
[FATAL] Failed to install Ruby 2.3.0 via rbenv

Error message suggests installing libssl-dev but it's already installed.
machos@GLaDOS:~/Desktop$ sudo apt install libssl-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libssl-dev is already the newest version (1.1.0f-3+deb9u1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Related issues:

https://github.com/rbenv/ruby-build/issues/377
https://github.com/rbenv/ruby-build/issues/197

Also have this problem when installing ruby 2.3.5 on Debian 9.4.0.

Possibly related: https://github.com/rbenv/ruby-build/issues/1199

Ruby < 2.4 is not compatible with openssl 1.1.
You need to install libssl1.0-dev.

Tested d988eb7cfd73023737f4303678577f88abeb60a2, it works.


[stable/docker-registry] fix values.yaml imagePullSecrets example

What this PR does / why we need it:
values.yaml example fix
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
imagePullSecret example in values.yaml
Special notes for your reviewer:

Should I do a version increment? Think it's not necessary

Can you please include [stable/docker-registry] in the PR title so someone can easily tell what it's for.

Version should always be incremented.
The tests will fail if you don't increment the version.

/ok-to-test

/lgtm


*: show more region info in api

close https://github.com/pingcap/pd/issues/583
PTAL @disksing @siddontang @andelf

Please fix the conflict first.

what does the pd-ctl output now?

like
{
  "id": 2,
  "end_key": "bURCOjMAAAD/APsAAAAAAAD/AGhUYWJsZTr/NwD+AAAAAAD6",
  "region_epoch": {
    "conf_ver": 9,
    "version": 2
  },
  "peers": [
    {
      "id": 44,
      "store_id": 7
    },
    {
      "id": 65,
      "store_id": 1
    },
    {
      "id": 17259,
      "store_id": 6
    }
  ],
  "Leader": null,
  "DownPeers": [],
  "PendingPeers": []
}

I think we should support protobuf string output format for start and end key later.
LGTM

LGTM


Annotated PCUIC

The idea is to provide an annotated variant of the syntax of PCUIC.
For the moment, I just defined the syntax as well as maps between the two syntaxes.
I don't know how much should be developed for this. If we want to prove correctness of erasure/annotation, we would need to duplicate typing and all the lemmata, which doesn't seem like something we want to do again.
In any case, we would need to have soundness of retyping, on which I started working : https://github.com/TheoWinterhalter/template-coq/blob/pcuic/pcuic/theories/PCUICRetyping.v.

@TheoWinterhalter could you make a new PR with just the PCUICRetyping stuff, even if we forget about annotated syntax for now?

Ok, I'll try and do that.


feat(RHIDP-968): Split component YAMLs to shards of 50k entities

Depends on #25

/hold

/unhold https://github.com/redhat-performance/backstage-performance/pull/25 is merged, rebased

/unhold


feat: support PixiJS v7

Description
Thank you for the awesome work on updating DragonBonesJS to modern JS! I've been using this fork package for a while and it works perfectly. 👍
The only problem is that the PIXI packages in peerDependencies of this package are specified to ^6.4.0, which causes "unmet peer dependency" error when npm installing along with PIXI 7+.
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning " ><EMAIL_ADDRESS>has unmet peer dependency "<EMAIL_ADDRESS>warning " ><EMAIL_ADDRESS>has unmet peer dependency "<EMAIL_ADDRESS>warning " ><EMAIL_ADDRESS>has unmet peer dependency "<EMAIL_ADDRESS>warning " ><EMAIL_ADDRESS>has unmet peer dependency "<EMAIL_ADDRESS>warning " ><EMAIL_ADDRESS>has unmet peer dependency "<EMAIL_ADDRESS>warning " ><EMAIL_ADDRESS>has unmet peer dependency "<EMAIL_ADDRESS>warning " ><EMAIL_ADDRESS>has unmet peer dependency "<EMAIL_ADDRESS>warning " ><EMAIL_ADDRESS>has unmet peer dependency "<EMAIL_ADDRESS>
Changes
I did some tests with<EMAIL_ADDRESS>+<EMAIL_ADDRESS>setup, and it seems that almost everything works as expected (ignoring some type mismatches):
https://stackblitz.com/edit/pixi7-dragonbones
To support PixiJS v7, here are changes included in this patch:

[x] Update peerDependencies in package.json to support both v6 and v7 of PixiJS
[x] Add a workaround for the change of custom display object events in v7
[x] Remove string type in EventStringType for better type auto completions

Questions
Though it's not very relevant to this PR... it looks like that the code in the repository slightly differs from the code in the published npm package. Is the code on the master branch update-to-date?

lol, someone is actually using this, only reason this repo exists it because a client wanted a skeletal animation and I did not want to pay for spine xD
lol x2, your are right I did not push
sure no problem, I'll push the version changes to package json, I'll just revert package-lock to still be on v6 as that is what I use and I dont plan on moving because I don't really like changes in v7 (given that pixi themselves are doing a full rewrite in v8 they dont like v7 as well)

done, published as v5.8.1, have fun

That's wonderful. Thank you! 😉


[Task] Comply with DID core updates

Description
Describe the task, this may be scoped beyond a single PR.
A few simple tasks to comply with the latest DID standard.
Resources
Link to any resources relevant for the task such as Issues, PRs, reference implementations, or specifications.

Timestamps
JSON-LD

To-do list
Create a task-specific to-do list . Please link PRs that match the To-do list item behind the item after it has been submitted.

[ ] Move timestamps (created, updated) to meta-object, away from core DID Document.
[ ] Allow output of JSON-LD (Aka, just add the default context)

Change checklist
Add an x to the boxes that are relevant to your changes, and delete any items that are not.

[ ] The feature or fix is implemented in Rust and across all bindings whereas possible.
[ ] The feature or fix has sufficient testing coverage
[ ] All tests and examples build and run locally as expected
[ ] Every piece of code has been document according to the documentation guidelines.
[ ] If conceptual documentation (mdbook) and examples highlighting the feature exist, they are properly updated.
[ ] If the feature is not currently documented, a documentation task Issue has been opened to address this.

Just to make sure I understand:

Reading through the code it looks like the created and updated fields in did::Properties should be moved to a new DIDMetadata struct, correct?
Since currently the Properties are the the first generic parameter to the "core" Document type, we would likely need to introduce a new type param to Document to be generic over a specific "metadata", correct?

And one other question: Would we want unique "input metadata" and "output metadata" types? The new spec says "Input and output metadata is often involved during the DID Resolution"

Reading through the code it looks like the created and updated fields in did::Properties should be moved to a new DIDMetadata struct, correct?

Yes and there are already distinct types for this, just not really utilized - resolution is still awkward and easier if you use the Client directly and not the generic DID resolver (the difference is mostly just the input/output formats)

Since currently the Properties are the the first generic parameter to the "core" Document type, we would likely need to introduce a new type param to Document to be generic over a specific "metadata", correct?

The data structures stored on the Tangle are going to change soon(ish); this will make Properties redundant and provide much clearer separation between the Document and metadata.
we probably won't need to use generics


⚠ ClamAV has degraded performance

In 985c549, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 447 ms

Resolved: ClamAV performance has improved in a176266 after 5 minutes.


Production as default, development/demo configurable

With the next major version we should turn the postcss configuration option on by default or rename it to preprocess and invert the value.
The goal of this change is to make the use in production more straight forward and that the default case is the one with better performance.
Maybe we should also add a loadCorsStylesheets configuration option that defaults to false, so that we don’t fetch any stylesheets by default (in modern browsers). Legacy browsers would still need an ajax call for stylesheets that have the crossorigin attribute set.

Implemented in version 0.4.0.


Fix a failure in bio_dgram_test on the NonStop platform

The size of the datagram header is significantly larger that we might expect on NonStop (probably driven by sizeof(BIO_ADDR)). We adjust the assumptions in the test about how many datagrams we can fit into the default buffer size.
Fixes #22013

I redid this based on the suggestion from @t8m. Please take another look.

I don't think we are there yet:
04-test_bio_dgram.t ..
# The results of this test will end up in test-runs/test_bio_dgram
1..1
    # Subtest: ../../test/bio_dgram_test
    1..2
        # Subtest: test_bio_dgram
        1..4
        # INFO:  @ /home/randall/openssl/test/bio_dgram_test.c:119
        # # Testing with AF_INET, local=0
        #
        ok 1 - iteration 1
        # INFO:  @ /home/randall/openssl/test/bio_dgram_test.c:125
        # # Testing with AF_INET6, local=0
        #
        ok 2 - iteration 2
        # INFO:  @ /home/randall/openssl/test/bio_dgram_test.c:119
        # # Testing with AF_INET, local=1
        #
        ok 3 - iteration 3
        # INFO:  @ /home/randall/openssl/test/bio_dgram_test.c:125
        # # Testing with AF_INET6, local=1
        #
        ok 4 - iteration 4
    ok 1 - test_bio_dgram
        # Subtest: test_bio_dgram_pair
        1..3
        ok 5 - iteration 1
        # ERROR: (int) 'i >= 9' failed @ /home/randall/openssl/test/bio_dgram_test.c:568
        # [6] compared to [9]
        # 00000000:error:10000070:BIO routines:dgram_pair_write:non-fatal or transient error:/home/randall/openssl/crypto/bio/bss_dgram_pair.c:1272:
        # OPENSSL_TEST_RAND_ORDER=1694477662
        not ok 6 - iteration 2
        ok 7 - iteration 3
    # OPENSSL_TEST_RAND_ORDER=1694477662
    not ok 2 - test_bio_dgram_pair
../../util/wrap.pl ../../test/bio_dgram_test => 255
not ok 1 - running bio_dgram_test

#   Failed test 'running bio_dgram_test'
#   at /home/randall/openssl/util/perl/OpenSSL/Test/Simple.pm line 77.
# Looks like you failed 1 test of 1.
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests

Test Summary Report
-------------------
04-test_bio_dgram.t (Wstat: 256 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
Files=1, Tests=1,  1 wallclock secs ( 0.01 usr  0.00 sys +  0.66 cusr  0.00 csys =  0.67 CPU)
Result: FAIL

New commit pushed addressing the failure in the other iteration of this test. Same underlying cause, just a slightly different instance of it.
@tom-cosgrove-arm / @t8m / @paulidale - please can I get reapprovals?

Passed on NonStop. If I could review, I would give this a LGTM.

Pushed. Thanks.


Initial support for lists of language strings

The default message providers still only returns one string, but it stores messages in a list.

Just want to make sure this doesn't get forgotten. @main-- thoughs?

We talked in IRC about this and I told @dumptruckman that I don't like the fact that String getMessage(MultiverseMessage) still exists. (In my opinion: Either only single strings or only string-lists). But there are some other nice additions in there. I'm going to merge parts of this PR tomorrow.

I squashed the commits a bit and committed them to my fork. I think I'm going to cherry-pick main--/Multiverse-Core@1507b0d94d9ea37e210d285fbd9a9f4f067dc45f, improve it and push it.

Parts of this pull request were merged in 3e4b042de85c9fcdeded07bd7a78bec98b14e833.

But at the moment I don't think that I'm going to pull the multiline-feature. Lists make everything so complicated compared to single strings.

Oh, I totally forgot about this pull request. I'm going to be away for some days, I'll handle it when I'm back.


Exploration Enhancement: is_universal_pipeline and is_monomer no longer needed?

With the latest enhancements to the quick start notebooks, are the following variables needed anymore?  Can these be determined by the pipeline metadata?

Thanks,
Isaac

Hi @iojohnso,
No, you don't have to set these variables anymore.
We implemented this utility to check if the fasta is a monomer or multimer.
https://github.com/GoogleCloudPlatform/vertex-ai-alphafold-inference-pipeline/blob/main/src/utils/fasta_utils.py
We also check if there are any sequences and if their length > 0.


Deprecated docker-compose Command Used

Description:
When running the command xx run, the script tries to use the deprecated docker-compose command. This causes issues on systems where only Docker Compose V2 is installed, as the newer version uses the docker compose syntax (with a space) instead of docker-compose (with a hyphen).
Steps to Reproduce:

Install Docker with the Docker Compose V2 plugin (docker-compose-plugin).
Run the xx run command.
Observe the error indicating that docker-compose is not found.

Expected Behavior:
The script should use the docker compose syntax, which is the standard for Docker Compose V2.
Actual Behavior:
The script calls the docker-compose command, which is no longer available in systems using Docker Compose V2.
Suggested Solution:

Update the code to replace docker-compose with docker compose to ensure compatibility with Docker Compose V2.
Optionally, provide a fallback mechanism or documentation for users who might still use the older standalone docker-compose.

Workaround:
Users can create a symbolic link to map the docker-compose command to the Docker Compose V2 binary:
sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose
However, this is not recommended as it’s a temporary fix and relies on user intervention.
Environment:

Docker Version: 27.4.1
Docker Compose Version: v2.32.1
OS: Ubuntu 22.04
xest.js CLI Version: 0.0.0-alpha.23

Additional Context:
Docker Compose V1 has been deprecated in favor of V2, and docker-compose is no longer installed by default. Updating the script to use docker compose ensures better compatibility and avoids reliance on deprecated commands.

Good find. What's the implication on Mac OS systems? I believe docker-compose comes as per default there.

On macOS, Docker Desktop includes Docker Compose V2 by default since version 3.4.0 (May 2021), so most users should have access to docker compose. However, users with older Docker Desktop versions might still have the legacy docker-compose command.

Please write docker compose version to terminal and see which version do you have currently and try to run a compose file using docker compose -f <file_name> up to see if you have a updated version of docker-compose-plugin
If some users are still on older Docker Compose versions, we might need a fallback plan for them.


Find average user resource usage (cpu, mem, storage).

determine usage average for each user to manage growth capacity/expectations.

several options and issues here so far:

slurm-web has everything we'd need in a live service- trying to get it working in a poc env
slurm info isn't exactly giving me the numbers I want to see to be able to determine actual usage- for instance it's showing that the cluster has only been utilized .018% over it's lifetime- can't be right. Still testing.

https://github.com/centerforaisafety/usage_report


Could not open library 'libvips.so.42': libvips.so.42: cannot open shared object file: No such file or directory

Firstly thanks for vips and this gem! Great work.
Whilst writing this up, I'm not 100% sure this is the right place to ask for help but the error is the same as similar issues:
https://github.com/libvips/ruby-vips/issues/176
https://github.com/libvips/ruby-vips/issues/187
LoadError: Could not open library 'vips.so.42': vips.so.42: cannot open shared object file: No such file or directory.
Could not open library 'libvips.so.42': libvips.so.42: cannot open shared object file: No such file or directory

ruby-vips '2.0.17'
ruby '~> 2.5.7'
ffi - 1.11.3
I've tried multiple build packs to get ruby-vips deployed on heroku.
https://elements.heroku.com/buildpacks/brandoncc/heroku-buildpack-vips
https://elements.heroku.com/buildpacks/alex88/heroku-buildpack-vips
https://elements.heroku.com/buildpacks/verumex/heroku-buildpack-libvips
And building my own debian packages by following this blog
https://renchap.com/blog/post/building_recent_libvips_on_debian/
https://dronebase-buildpacks.s3.amazonaws.com/libvips-dev_8.6.3-1_amd64.deb
https://dronebase-buildpacks.s3.amazonaws.com/libvips-tools_8.6.3-1_amd64.deb
https://dronebase-buildpacks.s3.amazonaws.com/libvips42_8.6.3-1_amd64.deb
However this is the latest from heroku build logs..
-----> Detecting rake tasks
 !
 !     Could not detect rake tasks
 !     ensure you can run `$ bundle exec rake -P` against your app
 !     and using the production group of your Gemfile.
 !     rake aborted!
 !     LoadError: Could not open library 'vips.so.42': vips.so.42: cannot open shared object file: No such file or directory.
 !     Could not open library 'libvips.so.42': libvips.so.42: cannot open shared object file: No such file or directory

I have got this running locally with 'rails s' and managed to tile my high res image. However if a try and launch my server with foreman and sidkiq workers it fails to launch with:
23:39:11 assets_worker.1       | /bundle/gems/ffi-1.11.3/lib/ffi/library.rb:145:in `block in ffi_lib': Could not open library 'vips.so.42': vips.so.42: cannot open shared object file: No such file or directory. (LoadError)
23:39:11 assets_worker.1       | Could not open library 'libvips.so.42': libvips.so.42: cannot open shared object file: No such file or directory
23:39:11 assets_worker.1       | 	from /bundle/gems/ffi-1.11.3/lib/ffi/library.rb:99:in `map'
23:39:11 assets_worker.1       | 	from /bundle/gems/ffi-1.11.3/lib/ffi/library.rb:99:in `ffi_lib'
23:39:11 assets_worker.1       | 	from /bundle/gems/ruby-vips-2.0.17/lib/vips.rb:528:in `<module:Vips>'
23:39:11 assets_worker.1       | 	from /bundle/gems/ruby-vips-2.0.17/lib/vips.rb:525:in `<top (required)>'
23:39:11 assets_worker.1       | 	from /bundle/gems/activesupport-<IP_ADDRESS>/lib/active_support/dependencies.rb:274:in `require'
23:39:11 assets_worker.1       | 	from /bundle/gems/activesupport-<IP_ADDRESS>/lib/active_support/dependencies.rb:274:in `block in require'
23:39:11 assets_worker.1       | 	from /bundle/gems/activesupport-<IP_ADDRESS>/lib/active_support/dependencies.rb:240:in `load_dependency'
23:39:11 assets_worker.1       | 	from /bundle/gems/activesupport-<IP_ADDRESS>/lib/active_support/dependencies.rb:274:in `require'
23:39:11 assets_worker.1       | 	from /bundle/gems/ruby-vips-2.0.17/lib/ruby-vips.rb:1:in `<top (required)>'
23:39:11 assets_worker.1       | 	from /var/lib/gems/2.5.0/gems/bundler-1.17.3/lib/bundler/runtime.rb:81:in `require'
23:39:11 assets_worker.1       | 	from /var/lib/gems/2.5.0/gems/bundler-1.17.3/lib/bundler/runtime.rb:81:in `block (2 levels) in require'
23:39:11 assets_worker.1       | 	from /var/lib/gems/2.5.0/gems/bundler-1.17.3/lib/bundler/runtime.rb:76:in `each'
23:39:11 assets_worker.1       | 	from /var/lib/gems/2.5.0/gems/bundler-1.17.3/lib/bundler/runtime.rb:76:in `block in require'
23:39:11 assets_worker.1       | 	from /var/lib/gems/2.5.0/gems/bundler-1.17.3/lib/bundler/runtime.rb:65:in `each'
23:39:11 assets_worker.1       | 	from /var/lib/gems/2.5.0/gems/bundler-1.17.3/lib/bundler/runtime.rb:65:in `require'
23:39:11 assets_worker.1       | 	from /var/lib/gems/2.5.0/gems/bundler-1.17.3/lib/bundler.rb:114:in `require'
23:39:11 assets_worker.1       | 	from /home/app/Sake/config/application.rb:16:in `<top (required)>'
23:39:11 assets_worker.1       | 	from /bundle/gems/sidekiq-5.2.7/lib/sidekiq/cli.rb:280:in `require'
23:39:11 assets_worker.1       | 	from /bundle/gems/sidekiq-5.2.7/lib/sidekiq/cli.rb:280:in `boot_system'
23:39:11 assets_worker.1       | 	from /bundle/gems/sidekiq-5.2.7/lib/sidekiq/cli.rb:46:in `run'
23:39:11 assets_worker.1       | 	from /bundle/gems/sidekiq-5.2.7/bin/sidekiq:12:in `<top (required)>'
23:39:11 assets_worker.1       | 	from /bundle/bin/sidekiq:29:in `load'
23:39:11 assets_worker.1       | 	from /bundle/bin/sidekiq:29:in `<main>'

Any tips would be appreciated. THanks

Hello @jrae,
Sorry, I'm not a Heroku expert :(
Where does your libvips.so.42 end up? If it's in one of the standard locations, you'll need to run ldconfig before ruby-vips can find it. If it's in a non-standard location, you'll need to set LD_LIBRARY_PATH to that directory.
I've made a dockerfile which builds and tests ruby-vips with the latest libvips on heroku18, if that's any help:
https://github.com/jcupitt/docker-builds/tree/master/ruby-vips-heroku18
You'll probably want to add some other loaders. It makes a libvips installed to /usr/local/vips, so it needs LD_LIBRARY_PATH to be set to usr/local/vips/lib.

Thanks a lot for this response! Really helpful
So far I can't find libvips.so.42 on the instance I'm deploying to which explains a lot :/
find . -name *vips*
./usr/lib/x86_64-linux-gnu/ImageMagick-6.8.9/modules-Q16/coders/vips.la
./usr/lib/x86_64-linux-gnu/ImageMagick-6.8.9/modules-Q16/coders/vips.so
./app/vendor/bundle/ruby/2.5.0/gems/fog-openstack-0.1.2/tests/openstack/models/network/lb_vips_tests.rb
./app/vendor/bundle/ruby/2.5.0/gems/fog-openstack-0.1.2/lib/fog/openstack/models/network/lb_vips.rb
./app/vendor/bundle/ruby/2.5.0/gems/fog-openstack-0.1.2/lib/fog/openstack/requests/network/list_lb_vips.rb

Build logs look like it was installed
-----> Fetching .debs for libvips-dev
       Reading package lists...
       Building dependency tree...
       The following additional packages will be installed:
         ...
         libvips-doc libvips-tools libvips42 libvorbis0a libvorbisfile3
         ...
       Get:154 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libvips42 amd64 8.2.2-1 [650 kB]
       ...
       Get:160 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libvips-dev amd64 8.2.2-1 [829 kB]
       Get:161 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libvips-doc all 8.2.2-1 [228 kB]
       Get:162 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libvips-tools amd64 8.2.2-1 [33.5 kB]
       Fetched 101 MB in 10s (9,590 kB/s)
       Download complete and in download only mode
...
-----> Installing libvips42_8.2.2-1_amd64.deb
-----> Installing libvips-dev_8.2.2-1_amd64.deb
-----> Installing libvips-doc_8.2.2-1_all.deb
-----> Installing libvips-tools_8.2.2-1_amd64.deb
...
-----> Writing profile script
-----> Rewrite package-config files

For this run I was using one of the build packs again. I would have expected it to be added along side glib dependency
find . -name *glib-2.0*
./usr/lib/x86_64-linux-gnu/glib-2.0
./usr/share/glib-2.0
find: ‘./lost+found’: Permission denied
find: ‘./etc/ssl/private’: Permission denied
./lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2
./lib/x86_64-linux-gnu/libglib-2.0.so.0

(tried ldconfig but not installed either)
line 43: ldconfig: command not found
...
Path variable: /tmp/build_b99920d5653d9580e99149abced93b2d/.apt/usr/bin:/usr/local/bin:/usr/bin:/bin:/tmp/codon/vendor/bin
/app/tmp/buildpacks/4e88fe351f64f40373034c7cf2473428fc755a3dd14f9746e4314794e0cca80e98d1fd19c3f1e29257554f1c278bd88c8643f16fc9fc9ed0a076684542205b0c/bin/compile:

Thanks again, it has narrowed the search. I will share progress here in case it is useful

Finally found this buildpack which allows me to deploy with heroku-16 (behind due to other dependency issues).
https://github.com/zoras/heroku-buildpack-libvips
Thanks @zoras!
However I'm now seeing
Vips::Error: VipsOperation: class "dzsave" not found

At runtime. Tried installing
http://ftp.acc.umu.se/pub/GNOME/sources/libgsf/1.14/libgsf-1.14.46.tar.xz
with .vendor_urls based on this comment.
https://github.com/libvips/pyvips/issues/65#issuecomment-423081974
Still no joy. Will edit this comment when I find a solution.

Have a look at the output of libvips configure -- there's a line for libgsf.
If it can't find it, you probably need to adjust PKG_CONFIG_PATH.

Here where I work we have used this buildpack and it is working now! 🚀

Hello @jrae,
Sorry, I'm not a Heroku expert :(
Where does your libvips.so.42 end up? If it's in one of the standard locations, you'll need to run ldconfig before ruby-vips can find it. If it's in a non-standard location, you'll need to set LD_LIBRARY_PATH to that directory.
I've made a dockerfile which builds and tests ruby-vips with the latest libvips on heroku18, if that's any help:
https://github.com/jcupitt/docker-builds/tree/master/ruby-vips-heroku18
You'll probably want to add some other loaders. It makes a libvips installed to /usr/local/vips, so it needs LD_LIBRARY_PATH to be set to usr/local/vips/lib.

Thanks John, its work properly...

This is what worked for me (one liner)

https://elements.heroku.com/buildpacks/brandoncc/heroku-buildpack-vips

I've added  https://elements.heroku.com/buildpacks/brandoncc/heroku-buildpack-vips
But I still receive this error
Could not open library 'libvips.so.42': libpoppler-glib.so.8: cannot open shared object file: No such file or directory

configured an Aptfile with the following
libglib2.0-0
libglib2.0-dev
libpoppler-glib8

Been using
ruby "3.0.0"
gem "rails", "~> 7.0.0"

on Heroku with amazon S3 configured with ActiveStorage.
Any idea's?

I've added https://elements.heroku.com/buildpacks/brandoncc/heroku-buildpack-vips
But I still receive this error
Could not open library 'libvips.so.42': libpoppler-glib.so.8: cannot open shared object file: No such file or directory

configured an Aptfile with the following
libglib2.0-0
libglib2.0-dev
libpoppler-glib8

Been using
ruby "3.0.0"
gem "rails", "~> 7.0.0"

on Heroku with amazon S3 configured with ActiveStorage.
Any idea's?

Did you ever track this down to get it to work? I'm having the same issue at Heroku.

I would ask on brandoncc's github. Eg. this issue:
https://github.com/brandoncc/heroku-buildpack-vips/issues/19

So I had the same problem on Heroku, took me a couple of hours to get this running. I am not using Docker.
I added this buildpack to my app:
heroku buildpacks:add heroku-community/apt --index 1
And the Aptfile in my root directory contains:
libglib2.0-0
libglib2.0-dev
libpoppler-glib8
libheif-dev
libvips-dev
libvips

Note: This added 140MB to my slug size, but at least it runs now.

Yeah adding everything manually (with no buildpack) ended up working for me too, though it bloated by slug past the "soft limit" 300MB size too. We don't do any PDF stuff so I just went with
libglib2.0-0
libglib2.0-dev
libheif-dev
libvips-dev
libvips

And may try to pull out pieces until it breaks to lower the size. TBD.

You can remove GIFLIB from brandoncc's buildpack --- libvips ships with its own GIF decoder now. It won't make a substantial difference to the slug size though :(
I'll open an issue for this.

Thanks @jcupitt — I've seen your wisdom and many comments across a multitude of Vips libraries, packages, adapters, etc. and just wanted to give a proper thank you for all of your efforts 🙂
With Rails 7 now defaulting active storage to Vips > ImageMagick I imagine there's going to be a lot more uptake. I tried  brandoncc's buildpack but was getting errors from it (same as these) so ended up just going the full-apt route.

Oh hey, no problem, it's nice to see my baby being useful.
Maybe ldconfig for Brandon's buildpack? I'm a bit unclear about slugs.

Sorry for the delay there John. Heroku's concept of a 'slug' I believe is just the total file size of the build container after the app's build completes (so all the app files + libs etc.).
The challenge with Heroku is that it's a tremendously slow cycle between trying a thing and seeing if it worked because there's no real way to halt a build and SSH in (etc) — you have to ship up a code change to the build script or something then wait for the build to run and see how it went. It's admittedly a little frustrating. Build packs are supposed to be the magic that makes it plug-and-play .. and usually they are! But in this case it's proving a tad challenging.
ldconfig is a small program to help set/configure the ld library path I imagine? Sorry, I'm hip to this stuff but tend to operate and work more up at the app layer than the system layer. Would you mind elaborating (or linking to a note somewhere if you already have!) on using that tool?
I saw someone mention in another thread that Heroku apps may work fine with Brandon's buildpack when using the Nodejs buildpack and making sure that buildpack is executed before the Ruby pack (they do run in order) but I've had no such luck.

I fixed up my docker build a bit:
https://github.com/jcupitt/docker-builds/tree/master/libvips-heroku18
It makes a 4MB tarball which runs on a bare heroku image and includes most useful file formats (including PDF, via PDFium) and disables all the dubious ones. The README has some notes.
With this test dockerfile:
FROM heroku/heroku:18

RUN apt-get update \
    && apt-get install -y ruby-dev

COPY libvips-heroku18.tar.gz /usr/local/src

RUN cd /usr/local/lib \
    && tar xf /usr/local/src/libvips-heroku18.tar.gz \
    && ldconfig

RUN gem install ruby-vips

RUN ruby -e 'require "vips"; puts "ruby-vips: libvips #{Vips::LIBRARY_VERSION}"'

I see:
$ docker build -t libvips-heroku:18 -f Dockerfile.test .
Sending build context to Docker daemon   4.05MB
Step 1/6 : FROM heroku/heroku:18
...
---> 9beef2c73619
Step 6/6 : RUN ruby -e 'require "vips"; puts "ruby-vips: libvips #{Vips::LIBRARY_VERSION}"'
 ---> Running in f9980c32c39c
ruby-vips: libvips 8.12.2-Tue Jan 25 09:34:32 UTC 2022
Removing intermediate container f9980c32c39c
 ---> fda0e87ba4fa
Successfully built fda0e87ba4fa
Successfully tagged libvips-heroku:18

Oh awesome. Thanks John! @brandoncc I wonder if we might be able to update the heroku-buildpack-vips script with John's updates? 🤔

@jcupitt I'm wondering what the ramifications of switching from poppler to PDFium would be. I seem to remember that a long time ago I had some image "ghosting" issues and it was related to the PDF renderer that was being used. I remember it was the same engine that is used by Firefox. Would that be poppler or PDFium? I use the PDF capabilities of vips very heavily, so I am hesitant to make that change in the buildpack...

Actually, moving my question to your issue on the buildpack.

Hello, Is this a similar issue to mine?
https://github.com/libvips/ruby-vips/issues/329

Ran into this problem upgrading rails 6 to 7, this solved the problem.
Followed the steps given with a little tweek to the Aptfile, I used:
libglib2.0-0
libpoppler-glib8
libvips

Instead so the slug size would be smaller by about 40mb

LoadError: Could not open library 'vips.so.42':

I think your ffi gem is not generating the correct lib name (it should be libvips.so.42).
https://github.com/ffi/ffi/blob/master/lib/ffi/library.rb#L34-L55
Maybe your PLATFORM::LibPrefix is not being set correctly?

wauw - that was fast 😃
% gem list | grep ffi
ffi (1.15.5)
public_suffix (4.0.7, 4.0.6)
%

I use gem 'image_processing' which translates into
    image_processing (1.12.2)
      mini_magick (>= 4.9.5, < 5)
      ruby-vips (>= 2.0.17, < 3)

and what is even worse - doing a which vips on my MBAir M1 tells me that I don't have one - 😮
that, however, should not hinder me deploying - or?

That message is definitely due to not having vips installed. One, does it work locally for you?
Regarding Heroku, what does your aptfile look like?
On Aug 17, 2022, at 10:06 AM, Walther Diechmann @.***> wrote:

wauw - that was fast 😃
% gem list | grep ffi
ffi (1.15.5)
public_suffix (4.0.7, 4.0.6)
%
I use gem 'image_processing' which translates into
image_processing (1.12.2)
  mini_magick (>= 4.9.5, < 5)
  ruby-vips (>= 2.0.17, < 3)

and what is even worse - doing a which vips on my MBAir M1 tells me that I don't have one - 😮
that, however, should not hinder me deploying - or?
—
Reply to this email directly, view it on GitHubhttps://github.com/libvips/ruby-vips/issues/219#issuecomment-1218058533, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADTGUW5QSZVB56C7YZMONV3VZTWXDANCNFSM4KFPCQIA.

Could not open library '/opt/homebrew/lib/libglib-2.0.0.dylib': dlopen(/opt/homebrew/lib/libglib-2.0.0.dylib, 0x0005): tried: '/opt/homebrew/lib/libglib-2.0.0.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/opt/homebrew/Cellar/glib/2.72.3/lib/libglib-2.0.0.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64'))):

ffi (1.15.5) lib/ffi/library.rb:145:in `block in ffi_lib'
ffi (1.15.5) lib/ffi/library.rb:99:in `map'
ffi (1.15.5) lib/ffi/library.rb:99:in `ffi_lib'
ruby-vips (2.1.4) lib/vips.rb:45:in `<module:GLib>'
ruby-vips (2.1.4) lib/vips.rb:36:in `<main>'

I've been fighting this Apple MBair M1 since day one (the arm64 vs x86 battle that is) and to get MySQL to work I had to install it using brew86 (my alias for arch -x86_64 /usr/local/bin/brew) and perhaps this is why my dev env is now acting up (don't know); "sigh" live was easier when everybody was one the Intel boat (not that it was a better/faster/prettier boat, but stuff "just worked")

Ah didn't realize you were on M1, I thought this was heroku. See https://github.com/libvips/ruby-vips/issues/130#issuecomment-1210890935

brew install vips (which to my big surprise installed the other half of the entire Internet)

Yes, the homebrew vips package installs every possible libvips dependency. I queried this and the homebrew devs said they don't want it to fall back to building from source, so they don't want to omit any options at all if possible.
It means you can't use the homebrew binary on untrusted data, but probably no one does.

ouch - I realized what a mess I'd drag myself into and quickly withdrew back to 'safer grounds' with gem 'mini_magick' but alas that now seems a dead end too 😟
anyway that's for me to keep digging into - must have taken another wrong turn somewhere on my hurried fallback 😆
thx for responding impressively fast 🤗
(I'm not even close to demonstrating the kind of *-fu that's required to start tearing apart/assembling stuff like vips, dokku, buildpacks, and what not; so I'll just stick to implementing stuff using toolchains that you guys dream up - and other guys writes blog posts about, eventually leading to guys like me get to make users happy using) 😄
2022-08-17T14:56:21.004083000Z app[web.1]: I, [2022-08-17T14:56:21.003728 #15]  INFO -- : [894c80bf-f873-44f5-8ea9-3b371e099ec1]   Disk Storage (1.1ms) Uploaded file to key: 0gmdiyfygqto97fp8u77i0aizw7k (checksum: 7OOCOay9KJedSUXKo6NeIQ==)
2022-08-17T14:56:21.006757000Z app[web.1]: I, [2022-08-17T14:56:21.006506 #15]  INFO -- : [894c80bf-f873-44f5-8ea9-3b371e099ec1] [ActiveJob] Enqueued ActiveStorage::PurgeJob (Job ID: 029d5a07-d9cd-4816-82c0-463ce331c5e8) to Async(default) with arguments: #<GlobalID:0x00005567522f46a8 @uri=#<URI::GID gid://speicher/ActiveStorage::Blob/354>>
2022-08-17T14:56:21.009336000Z app[web.1]: I, [2022-08-17T14:56:21.009079 #15]  INFO -- : [894c80bf-f873-44f5-8ea9-3b371e099ec1] [ActiveJob] Enqueued ActiveStorage::AnalyzeJob (Job ID: cfa8cd45-6a7e-4f3b-ab6a-26daf2b00ff2) to Async(default) with arguments: #<GlobalID:0x000055675235ee40 @uri=#<URI::GID gid://speicher/ActiveStorage::Blob/370>>
2022-08-17T14:56:21.022202000Z app[web.1]: I, [2022-08-17T14:56:21.021896 #15]  INFO -- : [894c80bf-f873-44f5-8ea9-3b371e099ec1]   Rendered application/show.html.haml (Duration: 10.2ms | Allocations: 5629)
2022-08-17T14:56:21.024503000Z app[web.1]: I, [2022-08-17T14:56:21.024289 #15]  INFO -- : [ActiveJob] [ActiveStorage::PurgeJob] [029d5a07-d9cd-4816-82c0-463ce331c5e8] Performing ActiveStorage::PurgeJob (Job ID: 029d5a07-d9cd-4816-82c0-463ce331c5e8) from Async(default) enqueued at 2022-08-17T14:56:21Z with arguments: #<GlobalID:0x0000556752449aa8 @uri=#<URI::GID gid://speicher/ActiveStorage::Blob/354>>
2022-08-17T14:56:21.026735000Z app[web.1]: I, [2022-08-17T14:56:21.026500 #15]  INFO -- : [894c80bf-f873-44f5-8ea9-3b371e099ec1] [ActiveJob] Enqueued GenerateLabelJob (Job ID: 20e8b0d3-f1d5-4655-ac73-9d9e31ee4ebc) to Async(default) with arguments: {:ids=>[1598], :account=>2, :user=>1, :when=>"20220817145621"}
2022-08-17T14:56:21.030069000Z app[web.1]: I, [2022-08-17T14:56:21.029691 #15]  INFO -- : [894c80bf-f873-44f5-8ea9-3b371e099ec1] [ActiveJob] Enqueued GeneratePdfJob (Job ID: 7de9251f-b925-4504-b7b5-463669164a85) to Async(default) with arguments: {:ids=>[1598], :account=>2, :user=>1, :when=>"20220817145621"}
2022-08-17T14:56:21.033973000Z app[web.1]: I, [2022-08-17T14:56:21.027288 #15]  INFO -- : [ActiveJob] [ActiveStorage::AnalyzeJob] [cfa8cd45-6a7e-4f3b-ab6a-26daf2b00ff2] Performing ActiveStorage::AnalyzeJob (Job ID: cfa8cd45-6a7e-4f3b-ab6a-26daf2b00ff2) from Async(default) enqueued at 2022-08-17T14:56:21Z with arguments: #<GlobalID:0x00005567524215d0 @uri=#<URI::GID gid://speicher/ActiveStorage::Blob/370>>
2022-08-17T14:56:21.035329000Z app[web.1]: I, [2022-08-17T14:56:21.035078 #15]  INFO -- : [ActiveJob] [GeneratePdfJob] [7de9251f-b925-4504-b7b5-463669164a85] Performing GeneratePdfJob (Job ID: 7de9251f-b925-4504-b7b5-463669164a85) from Async(default) enqueued at 2022-08-17T14:56:21Z with arguments: {:ids=>[1598], :account=>2, :user=>1, :when=>"20220817145621"}
2022-08-17T14:56:21.040799000Z app[web.1]: I, [2022-08-17T14:56:21.040435 #15]  INFO -- : [ActiveJob] [ActiveStorage::AnalyzeJob] [cfa8cd45-6a7e-4f3b-ab6a-26daf2b00ff2]   Disk Storage (0.4ms) Downloaded file from key: 0gmdiyfygqto97fp8u77i0aizw7k
2022-08-17T14:56:21.040985000Z app[web.1]: I, [2022-08-17T14:56:21.028318 #15]  INFO -- : [ActiveJob] [GenerateLabelJob] [20e8b0d3-f1d5-4655-ac73-9d9e31ee4ebc] Performing GenerateLabelJob (Job ID: 20e8b0d3-f1d5-4655-ac73-9d9e31ee4ebc) from Async(default) enqueued at 2022-08-17T14:56:21Z with arguments: {:ids=>[1598], :account=>2, :user=>1, :when=>"20220817145621"}
2022-08-17T14:56:21.043451000Z app[web.1]: I, [2022-08-17T14:56:21.043154 #15]  INFO -- : [894c80bf-f873-44f5-8ea9-3b371e099ec1] Completed 201 Created in 125ms (Views: 10.9ms | ActiveRecord: 13.5ms | Allocations: 90095)
2022-08-17T14:56:21.048010000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:51: warning: already initialized constant GLib::G_FREE
2022-08-17T14:56:21.048290000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:51: warning: previous definition of G_FREE was here
2022-08-17T14:56:21.048884000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:59: warning: already initialized constant GLib::LOG_FLAG_RECURSION
2022-08-17T14:56:21.048984000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:59: warning: previous definition of LOG_FLAG_RECURSION was here
2022-08-17T14:56:21.049064000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:60: warning: already initialized constant GLib::LOG_FLAG_FATAL
2022-08-17T14:56:21.049111000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:60: warning: previous definition of LOG_FLAG_FATAL was here
2022-08-17T14:56:21.049156000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:63: warning: already initialized constant GLib::LOG_LEVEL_ERROR
2022-08-17T14:56:21.049204000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:63: warning: previous definition of LOG_LEVEL_ERROR was here
2022-08-17T14:56:21.049248000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:64: warning: already initialized constant GLib::LOG_LEVEL_CRITICAL
2022-08-17T14:56:21.049291000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:64: warning: previous definition of LOG_LEVEL_CRITICAL was here
2022-08-17T14:56:21.049333000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:65: warning: already initialized constant GLib::LOG_LEVEL_WARNING
2022-08-17T14:56:21.049393000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:65: warning: previous definition of LOG_LEVEL_WARNING was here
2022-08-17T14:56:21.049443000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:66: warning: already initialized constant GLib::LOG_LEVEL_MESSAGE
2022-08-17T14:56:21.049485000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:66: warning: previous definition of LOG_LEVEL_MESSAGE was here
2022-08-17T14:56:21.049524000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:67: warning: already initialized constant GLib::LOG_LEVEL_INFO
2022-08-17T14:56:21.049565000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:67: warning: previous definition of LOG_LEVEL_INFO was here
2022-08-17T14:56:21.049608000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:68: warning: already initialized constant GLib::LOG_LEVEL_DEBUG
2022-08-17T14:56:21.049650000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:68: warning: previous definition of LOG_LEVEL_DEBUG was here
2022-08-17T14:56:21.049695000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:71: warning: already initialized constant GLib::GLIB_TO_SEVERITY
2022-08-17T14:56:21.049737000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:71: warning: previous definition of GLIB_TO_SEVERITY was here
2022-08-17T14:56:21.049783000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:86: warning: already initialized constant GLib::LOG_HANDLER
2022-08-17T14:56:21.049826000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:86: warning: previous definition of LOG_HANDLER was here
2022-08-17T14:56:21.049871000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:155: warning: already initialized constant GObject::GBOOL_TYPE
2022-08-17T14:56:21.049911000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:155: warning: previous definition of GBOOL_TYPE was here
2022-08-17T14:56:21.049954000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:156: warning: already initialized constant GObject::GINT_TYPE
2022-08-17T14:56:21.050005000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:156: warning: previous definition of GINT_TYPE was here
2022-08-17T14:56:21.050050000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:157: warning: already initialized constant GObject::GUINT64_TYPE
2022-08-17T14:56:21.050094000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:157: warning: previous definition of GUINT64_TYPE was here
2022-08-17T14:56:21.050139000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:158: warning: already initialized constant GObject::GDOUBLE_TYPE
2022-08-17T14:56:21.050185000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:158: warning: previous definition of GDOUBLE_TYPE was here
2022-08-17T14:56:21.050231000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:159: warning: already initialized constant GObject::GENUM_TYPE
2022-08-17T14:56:21.050274000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:159: warning: previous definition of GENUM_TYPE was here
2022-08-17T14:56:21.050322000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:160: warning: already initialized constant GObject::GFLAGS_TYPE
2022-08-17T14:56:21.050370000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:160: warning: previous definition of GFLAGS_TYPE was here
2022-08-17T14:56:21.050878000Z app[web.1]: I, [2022-08-17T14:56:21.048553 #15]  INFO -- : [ActiveJob] [ActiveStorage::AnalyzeJob] [cfa8cd45-6a7e-4f3b-ab6a-26daf2b00ff2] Skipping image analysis because the ruby-vips gem isn't installed
2022-08-17T14:56:21.050974000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:161: warning: already initialized constant GObject::GSTR_TYPE
2022-08-17T14:56:21.051092000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:161: warning: previous definition of GSTR_TYPE was here
2022-08-17T14:56:21.051143000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:162: warning: already initialized constant GObject::GOBJECT_TYPE
2022-08-17T14:56:21.051194000Z app[web.1]: /app/vendor/bundle/ruby/3.0.0/gems/ruby-vips-2.1.4/lib/vips.rb:162: warning: previous definition of GOBJECT_TYPE was here
2022-08-17T14:56:21.067045000Z app[web.1]: I, [2022-08-17T14:56:21.066681 #15]  INFO -- : [ActiveJob] [ActiveStorage::AnalyzeJob] [cfa8cd45-6a7e-4f3b-ab6a-26daf2b00ff2] Performed ActiveStorage::AnalyzeJob (Job ID: cfa8cd45-6a7e-4f3b-ab6a-26daf2b00ff2) from Async(default) in 54.44ms

That message is definitely due to not having vips installed. One, does it work locally for you? Regarding Heroku, what does your aptfile look like? On Aug 17, 2022, at 10:06 AM, Walther Diechmann @.> wrote:  wauw - that was fast 😃 % gem list | grep ffi ffi (1.15.5) public_suffix (4.0.7, 4.0.6) % I use gem 'image_processing' which translates into image_processing (1.12.2) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) and what is even worse - doing a which vips on my MBAir M1 tells me that I don't have one - 😮 that, however, should not hinder me deploying - or? — Reply to this email directly, view it on GitHub<#219 (comment)>, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADTGUW5QSZVB56C7YZMONV3VZTWXDANCNFSM4KFPCQIA. You are receiving this because you commented.Message ID: @.>

libglib2.0-0 libglib2.0-dev libpoppler-glib8

it installs perfectly - but later on in the build process something chokes on Could not detect rake tasks (LanguagePack::Helpers::RakeRunner::CannotLoadRakefileError) (and "the Internet" tells me to uninstall bundler and try with another bundler) but how can adding those 2 buildpacks ahead of ruby get (the rest of) the toolchain foobar-ed?

@limitlessmind and @jcupitt
thank you so much for chipping in! I decided this was not the battle for me to engage in - so I withdrew to the safer coasts of "mini_magick", (to live another day so to speak)
again my sincere gratitude for being so attentive and willing to offer assistance ❤

Ideally in the future Heroku will include a libvips binary. It seems it just missed Heroku 22, unfortunately. Maybe Heroku 24.
https://github.com/heroku/heroku-buildpack-ruby/issues/1200#issuecomment-1161296337


Pulsar 2.0 Documentation

Created a master issue for tracking all the documentation tasks for pulsar 2.0.

[ ] Documentation for Schema Registry
[ ] Documentation for Topic Compaction
[ ] Documentation for Regex Subscription #1176
[ ] Documentation for Builders
[ ] Documentation for Pulsar Functions
[ ] Documentation for upgrading pulsar from 1.22.0 to 2.0
[ ] Documentation for configuration store (renaming global zookeeper)

[ ] Message deduplication

@lucperkins added "message deduplication"

@lucperkins can you check the boxes what items are done?


error in starting kosmos shell from host

i have installed jumpscalex in a host, docker container created and jumpscalex installed sucessfully but starting  kosmos shell fail
steps:
curl https://raw.githubusercontent.com/threefoldtech/jumpscaleX/development/install/jsx.py?$RANDOM > /tmp/jsx
chmod 777 /tmp/jsx
python3 /tmp/jsx container_install
python3 /tmp/jsx container_kosmos
DOWNLOADED INSTALLTOOLS TO /tmp/InstallTools.py
MYENV INIT
OK
MYENV INIT
MYENV INIT

EXCEPTION

        /sandbox/bin/kosmos                                          : 162 : j.application.bcdb_system  # needed to make sure we have bcdb running, needed for code completion
        /sandbox/lib/jumpscale/Jumpscale/core/Application.py         : 67  : bcdb = self._j.data.bcdb.get("system")
        /sandbox/lib/jumpscale/Jumpscale/data/bcdb/BCDBFactory.py    : 151 : self.bcdb_instances[name] = BCDB(zdbclient=zdbclient, name=name, reset=reset)
        /sandbox/lib/jumpscale/Jumpscale/data/bcdb/BCDB.py           : 41  : self.meta = BCDBMeta(self)
        /sandbox/lib/jumpscale/Jumpscale/data/bcdb/BCDBMeta.py       : 20  : self.reset()
        /sandbox/lib/jumpscale/Jumpscale/data/bcdb/BCDBMeta.py       : 83  : self.data
        /sandbox/lib/jumpscale/Jumpscale/data/bcdb/BCDBMeta.py       : 28  : data = j.core.db.get(self._redis_key)

Wed 19 16:18:54 Application.py   -  64 - bcdb_system                        : EXCEPTION: 'BCDBMeta' object has no attribute '_redis_key'
CANNOT CONTINUE
Connection to localhost closed.

jumpscalx version inside docker container

root@3bot:/sandbox/code/github/threefoldtech/jumpscaleX# git branch
* development_installer
root@3bot:/sandbox/code/github/threefoldtech/jumpscaleX# git log -1
commit 09efbac79b07cba572c814c774fe428d21bb28db (grafted, HEAD -> development_installer, origin/development_installer)
Author: Reem Khamis<EMAIL_ADDRESS>Date:   Wed Jun 19 16:36:01 2019 +0200

    Merge branch 'development' into development_installer

host

root@test-zbundle:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.2 LTS"

check on #682

it works good ( new installation )

verified
commit 0eaf5449eac84b33e3b3146689c0c6afd8717d94 (grafted, HEAD -> development, origin/development)
Author: Christophe de Carvalho<EMAIL_ADDRESS>Date:   Tue Jul 9 16:32:50 2019 +0200

    tfchain capacity: handle decode error in reservation tx list


Refactor Widget.Children to support accessing child layout modifiers.

Changes Widget.Children to support accessing + being notified about changes to child modifiers.
I left LayoutModifiers as part of Widget for the moment as it's not clear how we plan to extend layout modifiers in the future (e.g. IDs).
Not super satisfied with the design so looking for feedback!

@JakeWharton My main concern was around using MutableListChildren inside the other children implementations, but on second look this is probably ok.
Also I kept going back and forth on whether widgets should have access to their own layout modifiers. At the moment I'm leaning toward no, but didn't want to make that big change without discussing it. My thoughts:

Only scoped layout modifiers currently make sense because they have to be explicitly handled by the parent.
If we want to have unscoped layout modifiers they probably shouldn't be handled by the widget that they're applied on. Instead, we probably need some kind of UnscopedLayoutModifierApplier<T> interface that's provided to the WidgetFactory and handles applying a LayoutModifier on T at a global level. In this case LayoutModifiers still don't need to exist on Widget.

Either way I think I'll leave that change for a separate PR since my main goal is to unblock the per-item padding/alignment modifiers in Column and Row so Jesse can start using them in the Activity and Money tabs.


Investigate & Use Helm Chart for Kubernetes Deployment

https://helm.sh/

[ ] Write up a design doc for adopting helm chart. (Make sure to outline how helm chart can benefit us as Clipper architecture grows)
[ ] Implement it.

Investigated. Helm Chart does not seem to be the best option for clipper as clipper is much more dynamic.


Adopt VS Code's 'asWebviewUri' API

Hi, I maintain VS Code's Webview API
Issue
Our telemetry suggests that your extension uses webviews and may be loading resources in these webviews using hardcoded vscode-resource: URIs. These URIs have some important limitations and don't work properly when VS Code is run in a browser. We are also making changes in the desktop version of VS Code that may cause these URIs to not work properly in future versions of VS Code.
While we are making our best effort to continue support existing webview extensions that use vscode-resource: URIs on desktop versions of VS Code, we will not able to fully support all uses cases.
Fix
To ensure that your extension continues to work in as many environments as possible—including on web and remotely—please:

Switch to use the Webview.asWebviewUri function for loading resources.

Switch to use the Webview.cspSource property in content security policies.

These APIs shipped around 2 years ago so they should be available in all modern versions of VS Code. You can find additional information about the issue here: https://github.com/microsoft/vscode/issues/97962
Let me know if you have any questions about this change

Hi @mjbvz, thanks for reaching out.
The .asWebviewUri function presents a special challenge to this VSCode extension.  A primary feature of this extension is to display 3D models in glTF format.  These are JSON files that reference a couple other files by name, including a binary file and a small number of JPG or PNG image files.
The files are being loaded by 3rd-party JavaScript frameworks such as BabylonJS, CesiumJS, and ThreeJS, embedded in the Webview.  When these frameworks load the file, they will be looking for relative paths from the glTF file's root folder, to find the binary and image files that belong to the 3D model.
Because .asWebviewUri causes paths to no longer be relative, the raw glTF file becomes unusable in the Webview.  One idea I had is to have the extension itself attempt to parse the glTF document before handing it off to the webview, and replace all occurrences of relative URIs with webview URIs, before it gets into the WebGL frameworks.
I'm still looking into this, but this appears to be a massively breaking change, at least for formats like glTF.

asWebviewUri should still work with relative urls. In fact, we already try to rewrite all hardcoded vscode-resource: urls to use the same url scheme that asWebviewUri produces. If vscode-resource: works today, then asWebviewUri should also work

Thanks @mjbvz.  Somehow I had the idea in my head that paths couldn't be relative, but you're right, they still are.
It still took some doing but I now have PR #185 open that I believe fixes this extension the correct way, without rewriting the glTF.

Version 2.2.11 published.


What do we do with the treshold?

In the R implementation of BFAST some people are using the threshold map to better understand what is the displayed results. Do we want to keep this feature ?
Do we want to add it as a third band or a complete different file ? (for the color palette we will need the separated file)
DO we want to display it on the map ?

I'm going to add a section in the documentation to compute the thresholding for those who were used to this type of display


feat: promotes settings2 => settings

OK, so lots to delete.
Notable are the routing updates:
  "/settings": "/settings/edit-settings",
  "/profile/edit": "/settings/edit-profile",
  "/user/edit": "/settings/edit-settings",
  "/user/delete": "/settings/delete",
  "/user/saves": "/settings/saves",
  "/user/auctions": "/settings/auctions",
  "/user/shipping": "/settings/shipping",
  "/user/purchases": "/settings/purchases",
  "/user/payments": "/settings/payments",

We also are dropping the /user/refresh route. Which previously was used to 'refresh' the Backbone user model. Since now all user updates are in Relay, it's no longer needed.

Warnings

:warning:

Routes added to routes.tsx should have a corresponding cypress.js smoke test. See the cypress/integration folder for examples.

  Generated by :no_entry_sign: dangerJS against 7f0ca7e5960744d9948de3a8bcfd4fe7fac54690

@damassi https://github.com/artsy/force/pull/9296/commits/25aa8f350cf0e4edc9929fea125912319144b8a4
Updated with spec. I'll add some env vars to Circle (just copying over the test user that Integrity uses). And you'll have to grab the env var to run the spec locally.

It should now; just updated the env there.

OK, so it looks like CI isn't actually loading the JS for Cypress specs. Rather than deal with that I'm just going to write a more comprehensive suite in Integrity (which will have to be updated for this anyway)


move support link to the bottom

Proposal to move support link to the bottom of the navigation.  I think this will make it stand out and not pollute the navigation items. Although I added a support link to mobile navigation, I think it should not contain it as it already looks crowded.
The footer could also be used for displaying version(-s) of components (https://github.com/LibrePhotos/librephotos/issues/575)

Looks good to me 👍 Didn't really think about how to show the support link in the mobile view. I think it would make sense to add it to the dropdown when you click on the avatar in the mobile view.
Also switching to ActionIcons in the mobile view like we did in the regular view would be great as they look a bit nicer :)


Responsive arrow solution

A first attempt for the responsive feature (#30). Scale and rotated are working, though may be in need of some refactoring, as well as some precision issues when calculating vertex.

Working on improvements.