Advertising / Reading ICE trickle support

TL;DR, this is the issue for tracking the TODO at https://github.com/pion/sdp/blob/master/jsep.go#L91
ICE trickling helps speed up the connection establishment. For it to work though, the receiving side should support it. If we send ICE candidates after the SDP payload for clients who do not support ICE trickling, these candidates would be ignored; we could even send an offer without any candidates and the call would fail entirely.
To know whether the other side supports ICE trickling:

The support can be advertised through the signaling channel (which will work without this ticket)
The support can be advertised through an SDP ICE option, a=ice-options:trickle

https://datatracker.ietf.org/doc/html/rfc8840#section-4 specifically mentions:

Trickle ICE Agents MUST indicate support for Trickle ICE by including the ice-option "trickle" within all SDP Offers and Answers in accordance to [RFC8838].

To do this, we probably need to add an "ICETricklingSupported" bool option to webrtc.OfferAnswerOptions that the user can set. If set, the a=ice-options:trickle attribute is added to the generated SDP payload.
In addition, we would need to be able to know if the remote side sent the attribute, corresponding to https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/canTrickleIceCandidates in the Web spec. This would probably be a method on SessionDescription?

As for the actual use case, I'd like to half ICE trickling optimistically to speed up connection establishment in an environment where I do not control the remote client so I do not know whether trickling is supported.

Hey @delthas, Sorry for the delay.
It would be trivial adding a=ice-options:trickle to the Offer/Answer (from Pion). Are you interested in doing that? We shouldn't just uncomment the line in jsep.go, but instead have pion/webrtc pass it in somehow.
 I don't believe any logic needs to be added as a receiver.
If you aren't interested in contributing tell me and I can have this fixed in 30 minutes :)


document tile format

see and update https://github.com/andrewxhill/tilecubes
since windshaft supports torque tiles we should create a public document with the tile format spec

reference spec: https://github.com/andrewxhill/tilecubes/blob/master/2.0/spec.md

This is already being worked on internally. Feel free to open issues on specific improvements to the spec.

The ticket was about a "public document". Working on it internally doesn't make this issue solved :)


File could not be decoded. Upload cancelled

i just joined a server one day and then i tried to spawn in something but then an error message appeared as this "File could not be decoded. Upload cancelled." so i restarted gmod, and nothing still happened, the server crashed, nothing still happened... i have been trying to fix this but its not doing anything! please i want my stuff back!

Either corrupted file or doesn't have read access. or server data directory doesn't have write access.


use-package :if keyword does not work with straight.el

According to the manual one of the features is support for conditional installation, as well as use-package integration.
But :if keyword of use-package does not work with Straight.
E.g.:

(use-package bm
  :if (not window-system))

unconditionally always loads bm.
So, what the proper way to do conditional installation? How to conditionally disable package install, may be by means of :files' directive?

So there's a couple of things here.
Firstly, what I meant by conditional installation was that it's possible to tell straight.el about a package without immediately installing and loading it. That's actually separate from the :if keyword of use-package. And I should probably be clear about this in the documentation.
Secondly, it appears that the :if keyword does not work when using straight.el with use-package. That's a bug. In other words, what you called conditional installation was different from what I called conditional installation, but both should be supported.
Thirdly, it's on the roadmap to merge these two previous points: that is, special-case the :if directive so that it does the only-register-but-don't-install mechanism when :if is disabled, and does the regular register-and-install mechanism otherwise. This feature is tracked by https://github.com/raxod502/straight.el/issues/45.
So in summary:

this is an unexpected bug
the documentation should also be fixed

The :files directive doesn't have anything to do with it.

Cursory inspection yields the following insight:
(macroexpand-1 '(use-package foo :if nil))

(progn
  (straight-use-package-ensure-function
   (quote foo) (quote t) (quote (:deferred t)) :ensure)
  (when nil))

That is, the :ensure function is called outside of the when clause.
I have a question for you: are you sure that :if correctly prevents package.el from installing a package as well? In other words, are you sure that this is a problem with straight.el, rather than a problem with use-package?

(Of course, it might be my fault after all: I was the one who added generalized :ensure support to use-package in the first place!)

Before report I check bare use-package. It works as expected for me.

In the meantime obvious workaround may be used:

(unless window-system
  (use-package bm))

I just tested and AFAICT this is not a straight.el problem; it also occurs when using use-package with package.el. You should probably open an issue against use-package instead.

Let's test it again.
(Always run Emacs as `emacs -Q'.)

Prepare.

(require 'package)
(package-initialize)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-refresh-contents)
(package-install 'use-package)

Restart Emacs.

Evaluate:

(require 'package)
(package-initialize)
(require 'use-package)
window-system => x
(use-package async
    :ensure t
    :if (not window-system))
(featurep 'async) => nil

Restart Emacs.

Evaluate:

(require 'package)
(package-initialize)
(require 'use-package)
window-system => x
(use-package async
    :ensure t
    :if window-system)
(featurep 'async) => t

So, use-package works as expected with package.el.
I also test it without package.el loaded, simple by

(add-to-list 'load-path "~/.emacs.d/straight/build/use-package")
(add-to-list 'load-path "~/.emacs.d/straight/build/bind-key")
(add-to-list 'load-path "~/.emacs.d/straight/build/async")
(require 'use-package)
.....

Am I missing something?

...but if async is not installed, use-package installes it unconditionally.

That's what I thought. Indeed, I only tested about whether async was installed conditionally, not whether it was loaded conditionally.
You're saying that the loading does happen conditionally, even though the installation happens unconditionally, for package.el? (I haven't run your test yet, but will later.)

Just so.

OK. I understand what you are saying now. The confusion is that there are two different concerns:

whether the package is made available by the package manager (i.e. autoload evaluation and load-path extension) in the case of :if nil
whether the feature is actually required in the case of :if nil

I did not even think of case (1) since I turned on use-package-always-defer months ago. But now I see that case (1) was what you meant when you said "loading a package".
This means that your results in https://github.com/raxod502/straight.el/issues/132#issuecomment-322576647 (i.e. that package.el works correctly w.r.t case (1)) make perfect sense to me. However, I tested your original issue, and I can't reproduce it. That is, after I evaluate
(use-package bm
  :if (not window-system))

then (featurep 'bm) returns nil if I'm in windowed Emacs. Both when using package.el and when I'm using straight.el.
For case (2), there's a bug in use-package, so case (2) does not work in package.el nor straight.el.

Let me know if you can find a recipe to reproduce the original bug report from emacs -Q.

...but if async is not installed, use-package installes and loads it unconditionally. (Why?!)

Just in case I didn't make this clear, this behavior is because of the bug on use-package vis-a-vis case (2) in https://github.com/raxod502/straight.el/issues/132#issuecomment-322632626.
Although, perhaps the upstream doesn't consider it a bug, but rather desired behavior. I'm not going to ping @ jwiegley since he's stated multiple times that he doesn't use the :ensure keyword in use-package and can't maintain it. Not sure who to bring into the discussion, if anyone.

I can't reproduce it with emacs -Q. Surprisedly I can't reproduce it with working config anymore. Works just fine, except case (2) oddities though.
Feel free to close the issue after documentation correction, if needed.

I'm not actually sure what I could change in the docs to make this clearer. I'll most likely leave things as is for the moment, but if somebody else is confused (or has suggestions on how to improve), I'll update it.

github.com/jwiegley/use-package/issues/496


Support Dictionary Based Plan for DISTINCT Aggregates

Description
This PR introduces the notion of dictionary based execution for DISTINCT aggregates when the aggregate contains only a single, dictionary enabled column and no predicates.
Upgrade Notes
Does this PR prevent a zero down-time upgrade? (Assume upgrade order: Controller, Broker, Server, Minion)

[ ] Yes (Please label as backward-incompat, and complete the section below on Release Notes)

Does this PR fix a zero-downtime upgrade introduced earlier?

[ ] Yes (Please label this as backward-incompat, and complete the section below on Release Notes)

Does this PR otherwise need attention when creating release notes? Things to consider:

New configuration options.  YES
Deprecation of configurations
Signature changes to public methods/interfaces
New plugins added or old plugins removed

[x] Yes (Please label this PR as release-notes and complete the section on Release Notes)

Release Notes

pinot.server.query.executor.use.dictionary.for.distinct -- Use this parameter to enable query planner to use dictionary based execution plan for single column, no predicate DISTINCT aggregates

Documentation

Codecov Report

Merging #7129 (3d051a8) into master (3503074) will decrease coverage by 31.80%.
The diff coverage is 8.12%.

@@              Coverage Diff              @@
##             master    #7129       +/-   ##
=============================================
- Coverage     73.48%   41.67%   -31.81%
+ Complexity       91        7       -84
=============================================
  Files          1494     1497        +3
  Lines         73576    73583        +7
  Branches      10595    10632       +37
=============================================
- Hits          54069    30669    -23400
- Misses        15980    40319    +24339
+ Partials       3527     2595      -932

Flag
Coverage Δ

integration
41.67% <8.12%> (+0.11%)
:arrow_up:

unittests
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...ombine/DistinctUsingDictionaryCombineOperator.java
0.00% <0.00%> (ø)

...aggregation/function/AggregationFunctionUtils.java
81.13% <0.00%> (-7.33%)
:arrow_down:

...educe/DistinctUsingDictionaryDataTableReducer.java
0.00% <0.00%> (ø)

.../pinot/core/query/reduce/ResultReducerFactory.java
72.72% <0.00%> (-16.17%)
:arrow_down:

...ator/query/DictionaryBasedAggregationOperator.java
36.61% <14.28%> (-53.04%)
:arrow_down:

...va/org/apache/pinot/core/plan/CombinePlanNode.java
81.25% <20.00%> (-8.59%)
:arrow_down:

...pinot/core/plan/maker/InstancePlanMakerImplV2.java
65.76% <25.00%> (-23.24%)
:arrow_down:

...e/pinot/core/query/reduce/BrokerReduceService.java
91.72% <83.33%> (-2.57%)
:arrow_down:

.../core/plan/DictionaryBasedAggregationPlanNode.java
84.61% <100.00%> (+1.28%)
:arrow_up:

...c/main/java/org/apache/pinot/common/tier/Tier.java
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 984 more

Continue to review full report at Codecov.

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

Superseded by https://github.com/apache/incubator-pinot/pull/7141


responsive css

The display of PDF/Video is not nicely displayed on small devcies phones The PDF/Video becomes a box with sliders .
@media only screen and (min-width: 480px) and (max-width: 767px) { }
@media only screen and (max-width: 479px) { }

Can you post a screenshot ?

Vines to width..

For vine there is an option to set its width .
Writing the pdf/video css based on the device width is not great always because sometimes that is not taking the full device width and is wrapped inside a div of somewhat lesser width than the device's width. That will create problems for the user.
So better you write your own css based on the div width in which you are using the plugin and not the device width.

You can always add your css over the default one according to your needs. If you have some solution that will be consistent in all cases then only it can be implemented in the plugin.

Thnx. fixed it by getting the class width and parsing it true embed.js
var width = $('.forum').width();
var $window = $(window);

$window.resize(function resize(){
    var width = $('.forum').width();
});

For the pdf and youtube i will create custom css for phones.

Can you send a PR ?

What is a PR :P

Its Pull Request. see this

Never did it before. Ill read is as soon as !

Though your solution will work but i will have to include this responsiveness code inside the plugin as on each resize your code will reload the whole content. This means repeated http requests. Thats never good. I will see what i can do.

can you also set in your next release the hight of the iframe fore VINE + 2 pixels? 158 seems te be to short for the last borderline from Vine
str = str + '';

currently working on a iframe refresh after resize window:
$('.ejs-vine-iframe',window.parent.document).attr('src',$('.ejs-vine-iframe',window.parent.document).attr('src'));

I default size is 500 for vine, and opening page with vine on smaller device the vinewidt is 500px.
resizing from large window to smaller works, vine shrinks too. but when resizing from very small to big window the vine does not resize bigger anymore,
maybey it's an solution to get the width of the element div and take a amount of pixels to lower the width. when resizing then always resize the vine box too.

Actually here width that you set is maxWidth but i guess yours solution seems better .I will fix this

When there is no width set it will take the width of whole div

Now there are slight change in options
vineOptions:{
            maxWidth:500,
            type:'postcard',         //'postcard' or 'simple' embedding
            responsive:false         // whether to make the vine embed responsive
      },

I guess you can understand the function about how it works. If not do reply here. I am closing this issue now.

thank you for this :)


Ripper won't rip mp4's from Tumblr.

Ripme version: 1.7.19
Java version:  Version 8 Update 161 (build 1.8.0_161-b12)
Operating system: Windows 10 x64
Exact URL you were trying to rip when the problem occurred: http://gowillworld.tumblr.com/ and https://elraysworld.tumblr.com/ .
Please include any additional information about how to reproduce the problem:

Expected Behavior
I post the URL and expect all posts on the Tumblrs to rip to their appropriate folders.
Actual Behavior
Only the images and gifs rip leaving out the mp4's and leaving me an "error: null" message.

@L3sb0t Why did you close this?

Also can you post a smaller tumblr with videos? Both of the ones you posted are over 5000 items which makes checking them for a video post to test with rather difficult.


Lora + Controlnet

can we train a controlnet with lora weights on on flux ? maybe combining the lora weights with the model then doing the controlnet ?

I believe you can do that with the current repository as is.


fix(es/compat): Handle nullish in fn expr scope

Description:
Related issue:

Closes: #7977

many thanks for quick fix ! any ETA when new release will land on npm ? cheers


Can no longer download posts

Download button simply does not appear. No message is logged.

I'm not an overskilled javascript reader but I'd say the _aagt class is not present anymore on the image.
On of the following one seems to be there on the homepage and the detailpage.
pytsy3co buh8m867 s8sjc6am ekq1a7f9 f14ij5to mfclru0v
Certrainly not in line with their _aa* naming, curious.
Or go for a different approacht? The first image below div with class _aagv.

@mittya Just noticed the button missing on profiles today

Same here

As @Ascathon it looks like Firefox at least changed the value it returns on the mouseover event.
It looks like the target is now the image class as checked by adding console.log(event.target.className);
The if statement can be updated to something like if (event.target.className.includes("pytsy3co")) {

I just checked this morning and the download button is not appearing for me as well.
There are some great theories and offered directions above. Hopefully the author can look at this soon.

I'm not a JS expert, but could
   if (event.target.className === '_aagt') {
be simply extended to
   if (event.target.parentNode.className === '_aagt') {

@Santeri-Salminen 's solution seems to work in debugging. But with so many selectors it is up to the developer to pick te best one. Other devvers don't know his philosophy in picking the best selector.

@mleyen Any timeline on when you might be able to fix this?  Thank you

I made a derp, sorry


Firing a RPCRequest fails

The code
.then(function(ormResult) {
    var r = new this.Request({
        select: '*'
    });
    var promise = r.send('entity');
    return promise;
}.bind(this)).then(function(status, rpcResult) {
    callback(null, rpcResult);
}).catch(function(error) {
    callback(error);
});

does not work.
With this approach the argument callback of the _handleRequest(...) function in the
DefaultService.js file is a response object instead of a function. Therefore the program crashes at
https://github.com/eventEmitter/ee-soa-service/blob/master/lib/DefaultService.js#L342
In addition, we believe that the code block at
https://github.com/eventEmitter/ee-soa-rpc-request/blob/master/lib/RCPRequest.js#L105
is incorrect. Replacing it with this code block may help:
callback = function(statusCode, data) {
    if (statusCode !== 1 && statusCode !== 2) rejectPromise(statusCode);
    else resolvePromise(statusCode, data);
};

thanks for the fix on line 105
this implementation was never tested using a service, i will have to implement this functionality.


kubernetes: 1.21.3 -> 1.22.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/kubernetes/kubernetes/releases.
meta.description for kubernetes is: "Production-Grade Container Scheduling and Management"
meta.homepage for kubernetes is: "https://kubernetes.io"
meta.changelog for kubernetes is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

Warning: a test defined in passthru.tests did not pass

/nix/store/pv7a136rlcavqhr2pg4n2xd14hl2jzwr-kubernetes-1.22.0/bin/kubeadm passed the binary check.

/nix/store/pv7a136rlcavqhr2pg4n2xd14hl2jzwr-kubernetes-1.22.0/bin/kubectl passed the binary check.

/nix/store/pv7a136rlcavqhr2pg4n2xd14hl2jzwr-kubernetes-1.22.0/bin/kubelet passed the binary check.

/nix/store/pv7a136rlcavqhr2pg4n2xd14hl2jzwr-kubernetes-1.22.0/bin/kube-apiserver passed the binary check.

/nix/store/pv7a136rlcavqhr2pg4n2xd14hl2jzwr-kubernetes-1.22.0/bin/kube-controller-manager passed the binary check.

/nix/store/pv7a136rlcavqhr2pg4n2xd14hl2jzwr-kubernetes-1.22.0/bin/kube-proxy passed the binary check.

/nix/store/pv7a136rlcavqhr2pg4n2xd14hl2jzwr-kubernetes-1.22.0/bin/kube-scheduler passed the binary check.

/nix/store/pv7a136rlcavqhr2pg4n2xd14hl2jzwr-kubernetes-1.22.0/bin/e2e.test passed the binary check.

/nix/store/pv7a136rlcavqhr2pg4n2xd14hl2jzwr-kubernetes-1.22.0/bin/kube-addons passed the binary check.

/nix/store/pv7a136rlcavqhr2pg4n2xd14hl2jzwr-kubernetes-1.22.0/bin/.kube-addons-wrapped passed the binary check.

/nix/store/pv7a136rlcavqhr2pg4n2xd14hl2jzwr-kubernetes-1.22.0/bin/kube-addons-lib.sh passed the binary check.

9 of 11 passed binary check by having a zero exit code.

3 of 11 passed binary check by having the new version present in output.

found 1.22.0 with grep in /nix/store/pv7a136rlcavqhr2pg4n2xd14hl2jzwr-kubernetes-1.22.0

found 1.22.0 in filename of file in /nix/store/pv7a136rlcavqhr2pg4n2xd14hl2jzwr-kubernetes-1.22.0

directory tree listing: https://gist.github.com/e403c8c4812fc207143a7acc45d15912

du listing: https://gist.github.com/8d44e771d6817ebcdcd81817a7a113ab

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

8 total rebuild path(s)

2 package rebuild(s)

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

First fifty rebuilds by attrpath
kubectl
kubernetes

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/pv7a136rlcavqhr2pg4n2xd14hl2jzwr-kubernetes-1.22.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/pv7a136rlcavqhr2pg4n2xd14hl2jzwr-kubernetes-1.22.0
ls -la /nix/store/pv7a136rlcavqhr2pg4n2xd14hl2jzwr-kubernetes-1.22.0/bin

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

2 packages built:

kubectl
kubernetes

Maintainer pings
cc @johanot @offlinehacker @saschagrunert for testing.

Result of nixpkgs-review pr 132759 at e9427520 run on aarch64-linux 1

2 packages built successfully:

kubectl
kubernetes

2 suggestions:

warning: missing-patch-comment
Consider adding a comment explaining the purpose of this patch on the line preceeding.
Near pkgs/applications/networking/cluster/kubernetes/default.nix:37:15:
   |
37 |   patches = [ ./fixup-addonmanager-lib-path.patch ];
   |               ^

warning: missing-phase-hooks
installPhase should probably contain runHook preInstall and runHook postInstall.
Near pkgs/applications/networking/cluster/kubernetes/default.nix:62:3:
   |
62 |   installPhase = ''
   |   ^

LGTM, have not run the tests locally

OfBorg also didn't run the tests for some reason.
This is all a bit unfortunate because the tests fail consistently.  I think kubernetes is just broken on master now.
Problem 1: --kubelet-https flag was removed
Error in the test logs:
machine1 # [   22.006042] kube-apiserver[896]: Error: unknown flag: --kubelet-https

Indeed, the kubelet-https flag was removed in 1.22: commit.  In case anyone's wondering, there's nothing in the kubernetes release notes about this.
I think the fix is to just remove that option (which defaults to true) from apiserver.nix.
Problem 2: authentication problems
Errors in the test logs:
machine1 # [   43.038418] kube-controller-manager[1387]: I0813 12:00:42.792674    1387 serving.go:347] Generated self-signed cert in-memory
machine1 # [   44.832908] kube-scheduler[1419]: I0813 12:00:44.588185    1419 serving.go:347] Generated self-signed cert in-memory

machine1 # [   52.633935] kube-proxy[1311]: E0813 12:00:52.389329    1311 node.go:161] Failed to retrieve node info: nodes "machine1.my.zyx" is forbidden: User "system:kube-proxy" cannot get resource "nodes" in API group "" at the cluster scope

machine1 # [   52.773553] flannel[1341]: E0813 12:00:52.528999    1341 reflector.go:201] github.com/coreos/flannel/subnet/kube/kube.go:307: Failed to list *v1.Node: nodes is forbidden: User "flannel-client" cannot list resource "nodes" in API group "" at the cluster scope

machine1 # [   55.878718] kube-scheduler[1419]: E0813 12:00:55.634212    1419 reflector.go:138] k8s.io/client-go/informers/factory.go:134: Failed to watch *v1beta1.CSIStorageCapacity: failed to list *v1beta1.CSIStorageCapacity: csistoragecapacities.storage.k8s.io is forbidden: User "system:kube-scheduler" cannot list resource "csistoragecapacities" in API group "storage.k8s.io" at the cluster scope

I think this might have something with this ominous warning from the release notes:
controller-manager MUST start with --authorization-kubeconfig and --authentication-kubeconfig correctly set to get authentication/authorization working.

That said, the Core Components Page hasn't been changed, so I think the special system:kube-proxy and system:kube-scheduler roles should still work.
I've not gotten to the bottom of this yet, but I need to run off now, so saving progress.

Darn. Should I revert this?

Give me a few hours.  The fix for problem 1 is easy.  Maybe the fix for problem 2 will be easy as well.  Then we could just merge the fixes and carry on.

The PR for the fix is up.
Funnily enough, all the errors I mentioned in "Problem 2" above were red-herrings.  It turns out they're benign and were present before the upgrade to 1.22 too.  I don't see those errors in my live cluster though, so I'll have a look later to figure out why the tests are showing them.


Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms) only in the test mode

When I fine tuned the resnet50 with keras 2.0.3 and tensorflow 1.1.0.
CUDNN: 5.1
CUDA: 8.0
Every time when I directly try to test it, I just got the error:
017-04-11 17:35:03.446611: E tensorflow/stream_executor/cuda/cuda_dnn.cc:359] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2017-04-11 17:35:03.446639: E tensorflow/stream_executor/cuda/cuda_dnn.cc:326] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2017-04-11 17:35:03.446647: F tensorflow/core/kernels/conv_ops.cc:665] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)
Aborted (core dumped)
But, if I test it after the training, there is no problem.

Please provide details about what platform you are using  (operating system, architecture). Also include your TensorFlow version. Also, did you compile from source or install a binary?  Make sure you also include the exact command if possible to produce  the output included in your test case.   We ask for this in the issue submission template, because    it is really difficult to help without that information. Thanks!
If this involves other libraries, it's probably better to post on StackOverflow.

It seems that the problem comes from the conflicts with cv2 package. I used the deep learning models from https://github.com/fchollet/deep-learning-models.
'''bash
def preprocess_input(x, dim_ordering='default'):
if dim_ordering == 'default':
dim_ordering = K.image_dim_ordering()
assert dim_ordering in {'tf', 'th'}
 if dim_ordering == 'th':
     x[0, :, :] -= 103.939
     x[1, :, :] -= 116.779
     x[2, :, :] -= 123.68
     # 'RGB'->'BGR'
     x = x[::-1, :, :]
 else:
     x[:, :, 0] -= 103.939
     x[:, :, 1] -= 116.779
     x[:, :, 2] -= 123.68
     # 'RGB'->'BGR'
     x = x[:, :, ::-1]
 return x

def preprocess_image(im):
im = cv2.resize(im, (224, 224)).astype(np.float32)
im = preprocess_input(im)
 dim_ordering = K.image_dim_ordering()
 print dim_ordering
 assert dim_ordering in {'tf', 'th'}

 if dim_ordering == 'th':
     im = im.transpose((2,0,1))
 return im

def eval(self):
img_path = 'elephant.jpg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
#x = preprocess_input(x)
#x = np.expand_dims(x, axis=0)
x = preprocess_image(x)
x = np.expand_dims(x, axis=0)
print('Input image shape:', x.shape)
intention = np.expand_dims(config.transform_intention(config.FORWARD),      axis=0)
     print x.shape, intention.shape
     pred = self.model.predict([x, intention])
     print 'pred', pred

'''
When I call preprocess_image() in the eval() function, I got the error:
2017-04-12 11:29:55.861593: E tensorflow/stream_executor/cuda/cuda_dnn.cc:359] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2017-04-12 11:29:55.861630: E tensorflow/stream_executor/cuda/cuda_dnn.cc:326] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2017-04-12 11:29:55.861639: F tensorflow/core/kernels/conv_ops.cc:665] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)
Aborted (core dumped)
But If I call preprocess_input(), there is no error. It's very weired.
Thanks a lot.

As mentioned in the previous comment, please do fill in all the details requested and in particular provide a means of reproducing the problem. Without that it is hard to provide useful assistance. The snippet you provided above seems incomplete, relying on external libraries and data files which were not provided.

Tensorflow: 1.1.0, no matter install from binary or source
Keras: 2.0.3
# -*- coding: utf-8 -*-
'''ResNet50 model for Keras.

# Reference:

- [Deep Residual Learning for Image Recognition](https://arxiv.org/abs/1512.03385)

Adapted from code contributed by BigMoyan.
'''
from __future__ import print_function

import numpy as np
import warnings

from keras.layers import Input
from keras import layers
from keras.layers import Dense
from keras.layers import Activation
from keras.layers import Flatten
from keras.layers import Conv2D
from keras.layers import MaxPooling2D
from keras.layers import GlobalMaxPooling2D
from keras.layers import ZeroPadding2D
from keras.layers import AveragePooling2D
from keras.layers import GlobalAveragePooling2D
from keras.layers import BatchNormalization
from keras.models import Model
from keras.preprocessing import image
import keras.backend as K
from keras.utils import layer_utils
from keras.utils.data_utils import get_file
from keras.applications.imagenet_utils import _obtain_input_shape
from helper import decode_predictions, preprocess_input, preprocess_image
from keras.engine.topology import get_source_inputs

WEIGHTS_PATH = 'https://github.com/fchollet/deep-learning-models/releases/download/v0.2/resnet50_weights_tf_dim_ordering_tf_kernels.h5'
WEIGHTS_PATH_NO_TOP = 'https://github.com/fchollet/deep-learning-models/releases/download/v0.2/resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5'

def identity_block(input_tensor, kernel_size, filters, stage, block, name=None):
    """The identity block is the block that has no conv layer at shortcut.

    # Arguments
        input_tensor: input tensor
        kernel_size: defualt 3, the kernel size of middle conv layer at main path
        filters: list of integers, the filterss of 3 conv layer at main path
        stage: integer, current stage label, used for generating layer names
        block: 'a','b'..., current block label, used for generating layer names

    # Returns
        Output tensor for the block.
    """
    filters1, filters2, filters3 = filters
    if K.image_data_format() == 'channels_last':
        bn_axis = 3
    else:
        bn_axis = 1
    conv_name_base = 'res' + str(stage) + block + '_branch'
    bn_name_base = 'bn' + str(stage) + block + '_branch'

    x = Conv2D(filters1, (1, 1), name=conv_name_base + '2a')(input_tensor)
    x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2a')(x)
    x = Activation('relu')(x)

    x = Conv2D(filters2, kernel_size,
               padding='same', name=conv_name_base + '2b')(x)
    x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2b')(x)
    x = Activation('relu')(x)

    x = Conv2D(filters3, (1, 1), name=conv_name_base + '2c')(x)
    x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2c')(x)

    x = layers.add([x, input_tensor])
    if name:
        x = Activation('relu', name=name)(x)
    else:
        x = Activation('relu')(x)
    return x

def conv_block(input_tensor, kernel_size, filters, stage, block, strides=(2, 2)):
    """conv_block is the block that has a conv layer at shortcut

    # Arguments
        input_tensor: input tensor
        kernel_size: defualt 3, the kernel size of middle conv layer at main path
        filters: list of integers, the filterss of 3 conv layer at main path
        stage: integer, current stage label, used for generating layer names
        block: 'a','b'..., current block label, used for generating layer names

    # Returns
        Output tensor for the block.

    Note that from stage 3, the first conv layer at main path is with strides=(2,2)
    And the shortcut should have strides=(2,2) as well
    """
    filters1, filters2, filters3 = filters
    if K.image_data_format() == 'channels_last':
        bn_axis = 3
    else:
        bn_axis = 1
    conv_name_base = 'res' + str(stage) + block + '_branch'
    bn_name_base = 'bn' + str(stage) + block + '_branch'

    x = Conv2D(filters1, (1, 1), strides=strides,
               name=conv_name_base + '2a')(input_tensor)
    x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2a')(x)
    x = Activation('relu')(x)

    x = Conv2D(filters2, kernel_size, padding='same',
               name=conv_name_base + '2b')(x)
    x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2b')(x)
    x = Activation('relu')(x)

    x = Conv2D(filters3, (1, 1), name=conv_name_base + '2c')(x)
    x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2c')(x)

    shortcut = Conv2D(filters3, (1, 1), strides=strides,
                      name=conv_name_base + '1')(input_tensor)
    shortcut = BatchNormalization(axis=bn_axis, name=bn_name_base + '1')(shortcut)

    x = layers.add([x, shortcut])
    x = Activation('relu')(x)
    return x

def ResNet50(include_top=True, weights='imagenet',
             input_tensor=None, input_shape=None,
             pooling=None,
             classes=1000):
    """Instantiates the ResNet50 architecture.

    Optionally loads weights pre-trained
    on ImageNet. Note that when using TensorFlow,
    for best performance you should set
    `image_data_format="channels_last"` in your Keras config
    at ~/.keras/keras.json.

    The model and the weights are compatible with both
    TensorFlow and Theano. The data format
    convention used by the model is the one
    specified in your Keras config file.

    # Arguments
        include_top: whether to include the fully-connected
            layer at the top of the network.
        weights: one of `None` (random initialization)
            or "imagenet" (pre-training on ImageNet).
        input_tensor: optional Keras tensor (i.e. output of `layers.Input()`)
            to use as image input for the model.
        input_shape: optional shape tuple, only to be specified
            if `include_top` is False (otherwise the input shape
            has to be `(224, 224, 3)` (with `channels_last` data format)
            or `(3, 224, 244)` (with `channels_first` data format).
            It should have exactly 3 inputs channels,
            and width and height should be no smaller than 197.
            E.g. `(200, 200, 3)` would be one valid value.
        pooling: Optional pooling mode for feature extraction
            when `include_top` is `False`.
            - `None` means that the output of the model will be
                the 4D tensor output of the
                last convolutional layer.
            - `avg` means that global average pooling
                will be applied to the output of the
                last convolutional layer, and thus
                the output of the model will be a 2D tensor.
            - `max` means that global max pooling will
                be applied.
        classes: optional number of classes to classify images
            into, only to be specified if `include_top` is True, and
            if no `weights` argument is specified.

    # Returns
        A Keras model instance.

    # Raises
        ValueError: in case of invalid argument for `weights`,
            or invalid input shape.
    """
    if weights not in {'imagenet', None}:
        raise ValueError('The `weights` argument should be either '
                         '`None` (random initialization) or `imagenet` '
                         '(pre-training on ImageNet).')

    if weights == 'imagenet' and include_top and classes != 1000:
        raise ValueError('If using `weights` as imagenet with `include_top`'
                         ' as true, `classes` should be 1000')

    # Determine proper input shape
    input_shape = _obtain_input_shape(input_shape,
                                      default_size=224,
                                      min_size=197,
                                      data_format=K.image_data_format(),
                                      include_top=include_top)

    if input_tensor is None:
        img_input = Input(shape=input_shape)
    else:
        if not K.is_keras_tensor(input_tensor):
            img_input = Input(tensor=input_tensor, shape=input_shape)
        else:
            img_input = input_tensor
    if K.image_data_format() == 'channels_last':
        bn_axis = 3
    else:
        bn_axis = 1

    x = ZeroPadding2D((3, 3))(img_input)
    x = Conv2D(64, (7, 7), strides=(2, 2), name='conv1')(x)
    x = BatchNormalization(axis=bn_axis, name='bn_conv1')(x)
    x = Activation('relu')(x)
    x = MaxPooling2D((3, 3), strides=(2, 2))(x)

    x = conv_block(x, 3, [64, 64, 256], stage=2, block='a', strides=(1, 1))
    x = identity_block(x, 3, [64, 64, 256], stage=2, block='b')
    x = identity_block(x, 3, [64, 64, 256], stage=2, block='c')

    x = conv_block(x, 3, [128, 128, 512], stage=3, block='a')
    x = identity_block(x, 3, [128, 128, 512], stage=3, block='b')
    x = identity_block(x, 3, [128, 128, 512], stage=3, block='c')
    x = identity_block(x, 3, [128, 128, 512], stage=3, block='d', name='feat1')

    x = conv_block(x, 3, [256, 256, 1024], stage=4, block='a')
    x = identity_block(x, 3, [256, 256, 1024], stage=4, block='b')
    x = identity_block(x, 3, [256, 256, 1024], stage=4, block='c')
    x = identity_block(x, 3, [256, 256, 1024], stage=4, block='d')
    x = identity_block(x, 3, [256, 256, 1024], stage=4, block='e')
    x = identity_block(x, 3, [256, 256, 1024], stage=4, block='f', name='feat2')

    x = conv_block(x, 3, [512, 512, 2048], stage=5, block='a')
    x = identity_block(x, 3, [512, 512, 2048], stage=5, block='b')
    x = identity_block(x, 3, [512, 512, 2048], stage=5, block='c', name='feat_layer')

    x = AveragePooling2D((7, 7), name='avg_pool')(x)

    if include_top:
        x = Flatten()(x)
        x = Dense(classes, activation='softmax', name='fc1000')(x)
    else:
        if pooling == 'avg':
            x = GlobalAveragePooling2D()(x)
        elif pooling == 'max':
            x = GlobalMaxPooling2D()(x)

    # Ensure that the model takes into account
    # any potential predecessors of `input_tensor`.
    if input_tensor is not None:
        inputs = get_source_inputs(input_tensor)
    else:
        inputs = img_input
    # Create model.
    model = Model(inputs, x, name='resnet50')

    # load weights
    if weights == 'imagenet':
        if include_top:
            weights_path = get_file('resnet50_weights_tf_dim_ordering_tf_kernels.h5',
                                    WEIGHTS_PATH,
                                    cache_subdir='models',
                                    md5_hash='a7b3fe01876f51b976af0dea6bc144eb')
        else:
            weights_path = get_file('resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5',
                                    WEIGHTS_PATH_NO_TOP,
                                    cache_subdir='models',
                                    md5_hash='a268eb855778b3df3c7506639542a6af')
        model.load_weights(weights_path)
        if K.backend() == 'theano':
            layer_utils.convert_all_kernels_in_model(model)

        if K.image_data_format() == 'channels_first':
            if include_top:
                maxpool = model.get_layer(name='avg_pool')
                shape = maxpool.output_shape[1:]
                dense = model.get_layer(name='fc1000')
                layer_utils.convert_dense_weights_data_format(dense, shape, 'channels_first')

            if K.backend() == 'tensorflow':
                warnings.warn('You are using the TensorFlow backend, yet you '
                              'are using the Theano '
                              'image data format convention '
                              '(`image_data_format="channels_first"`). '
                              'For best performance, set '
                              '`image_data_format="channels_last"` in '
                              'your Keras config '
                              'at ~/.keras/keras.json.')
    return model

def preprocess_input(x, dim_ordering='default'):
     if dim_ordering == 'default':
         dim_ordering = K.image_dim_ordering()
     assert dim_ordering in {'tf', 'th'}

     if dim_ordering == 'th':
         x[0, :, :] -= 103.939
         x[1, :, :] -= 116.779
         x[2, :, :] -= 123.68
         # 'RGB'->'BGR'
         x = x[::-1, :, :]
     else:
         x[:, :, 0] -= 103.939
         x[:, :, 1] -= 116.779
         x[:, :, 2] -= 123.68
         # 'RGB'->'BGR'
         x = x[:, :, ::-1]
     return x

def preprocess_image(im):
     import cv2
     im = cv2.resize(im, (224, 224)).astype(np.float32)
     im = preprocess_input(im)

     dim_ordering = K.image_dim_ordering()
     print dim_ordering
     assert dim_ordering in {'tf', 'th'}

     if dim_ordering == 'th':
         im = im.transpose((2,0,1))
     return im

def test():
    model = ResNet50(include_top=True, weights='imagenet')
    img_path = 'elephant.jpg'
    img = image.load_img(img_path, target_size=(224, 224))
    x = image.img_to_array(img)
    #x = preprocess_input(x)
    #x = np.expand_dims(x, axis=0)
    x = preprocess_image(x)
    x = np.expand_dims(x, axis=0)

    pred = model.predict(x)

if __name__ == '__main__':
    test()

When I call preprocess_image() in the eval() function, I got the error:
2017-04-12 11:29:55.861593: E tensorflow/stream_executor/cuda/cuda_dnn.cc:359] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2017-04-12 11:29:55.861630: E tensorflow/stream_executor/cuda/cuda_dnn.cc:326] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2017-04-12 11:29:55.861639: F tensorflow/core/kernels/conv_ops.cc:665] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)
Aborted (core dumped)
But If I call preprocess_input(), there is no error. It's very weired.
Thanks a lot.

This seems like a graphics card or CUDNN configuration error. Could you check if any of the suggestions in #8879 help?

I'm running into this same issue but didn't see this open issue until now. I added my post to "the original" #8879.

Automatically closing due to lack of recent activity. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!

I had the same problem "Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)" and resolved it by downgrading CuDNN from version 9.1-7 to version 9.0-7
OS: Windows 10
TF version: 1.6
CUDA version: 9.0
CuDNN version: 9.0-7


Cleanup

@stefanpenner this should probably be reviewed on a commit-by-commit basis. the last two commits in particular are things I'm not 100% sure about, but in case I understood the code correctly they should work fine.

@stefanpenner do you need me to do any changes here? The test was already missing before the PR so we can add that in a separate PR afterwards. Feel free to just cherry pick the good commits for now if you disagree with parts of this PR.

@Turbo87 opened an issue: https://github.com/stefanpenner/capture-exit/issues/3


Additional changes from etc to conf

High-level description
Additional places that use etc when they should now use conf
Corresponding DC/OS tickets (required)

DCOS-ID JIRA title / short description.

Related tickets (optional)

DCOS-ID JIRA title / short description.

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[ ] Change log from the last version integrated (this should be a link to commits for easy verification and review): example
[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain.
[ ] Test Results: [link to CI job test results for component]
[ ] Code Coverage (if available): [link to code coverage report]

I am merging this myself as the changes are minor.


Rework commitments

Reworked the commitment interfaces and Pedersen commitments.
Must merge the expr-opt branch into math first.

@rheitjoh can you please merge the expression stuff and then this?

@rheitjoh can you please merge the expression stuff and then this? (As soon as it's convenient - no need for a huge hurry, though)

Is this till ongoing?

math isn't getting merged any time soon due to the rewrite so we should merge anyway

math isn't getting merged any time soon due to the rewrite so we should merge anyway

@JanBobolz maybe you added something that depends on the new math stuff?

There is some code that uses the new expressions. But the new things on craco master already use that anyway.

@JanBobolz maybe you added something that depends on the new math stuff?

This branch currently depends on the old version of the expressions. When the whole rework stuff is done, it shouldn't use expressions at all anymore, I think. We can merge this after the big rework, I'd say

Why https://github.com/upbcuk/upb.crypto.craco/pull/10/commits/90878b5b9c3a811147079c4aab5b3b66f4dbc219 ? https://discuss.gradle.org/t/best-practice-for-gradle-properties-and-scm/5809/4


routing error upon startup

I have iron:router installed. I just updated useraccounts to 1.12.2 and now when I start up my server, I get this error:
" You now need a routing package like useraccounts:iron-routing or useraccounts:flow-routing to be able to configure routes!"
Why?

I added useraccounts:iron-routing (a very confusing name, btw).
Here is the error I get now upon startup:
"Error: changePwd route configured but enablePasswordChange set to false!"
Here is the line from my at_config.js:
enablePasswordChange: true,

Routes should now be configured AFTER normal options since they're now defined on the fly...
I think I should add another note to thedocumentation for the useraccounts:iron-routing package.

Actually this is the same as #514

see https://github.com/meteor-useraccounts/iron-routing/commit/ab184ca1c056e62a3d75c364f6387e75a158da60


Fix bug 224 by removing duplicated code

Ⅰ. Describe what this PR does
Fix bug 224 by removing duplicated code
Ⅱ. Does this pull request fix one issue?

fixes #224
Ⅲ. List the added test cases (unit test/integration test) if any, please explain if no tests are needed.
No test case added, since the PR is only to remove duplicated code and the method is already covered.
Ⅳ. Describe how to verify it
The code change is verified by running UT and integration test
Ⅴ. Special notes for reviews

Thanks very much for your contribution. @chaowangnk1


helmet and chrome don't support hpkp, nor Public Key Pinning

I know this isn't exactly an error, but it would be nice to update the text about helmet in best-practice-security page.
It could misslead some new learners, like me hehe
Thanks guys

It looks like that middleware has been deprecated according to helmetjs
https://helmetjs.github.io/docs/hpkp/

This middleware has been deprecated. It will be removed in Helmet 4. You can still read the documentation here but no new features will be added to the hpkp module.

The relevant information regarding Public Key Pinning can be found at https://developer.mozilla.org/en-US/docs/Web/HTTP/Public_Key_Pinning

This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

Thanks, sorry for any trouble.


typo

AssetCode was 2, indicating $20/month not $2/month

amount = 200
scale = 2
is $2.00
Am I missing something?

Interledger amounts are integers, but most currencies are typically represented as fractional units, e.g. cents. This property defines how many Interledger units make up one regular units. For dollars, this would usually be set to 9, so that Interledger amounts are expressed in nanodollars.

^ From interledgerjs/ilp-connector
If it's going by orders of magnitude then that would mean that
(scale = 1, amount = 2, total = $2.00), (scale = 2, amount = 2, total = $0.20), (scale = 3, amount = 2, total = $0.02) therefore (scale = 3, amount = 200, total = $2.00)
right?
This stuff always trips me up haha

(scale = 1, amount = 2, total = $2.00)

I believe all implementations treat scale = 1, amount = 2 as $0.20, not $2.00. Here's the relevant code from ilp-connector; the scale is the number of orders of magnitude it shifts the decimal place.
From the settlement engine RFC:

Asset amounts may be represented using any arbitrary denomination. For example, one U.S. dollar may be represented as $1 or 100 cents, each of which is equivalent in value. Likewise, one Bitcoin may be represented as 1 BTC or 100,000,000 satoshis.
A standard unit is the typical unit of value for a particular asset, such as $1 in the case of U.S. dollars, or 1 BTC in the case of Bitcoin.
A fractional unit represents some unit smaller than the standard unit, but with greater precision. Examples of fractional monetary units include one cent ($0.01 USD), or 1 satoshi (0.00000001 BTC).
An asset scale is the difference in orders of magnitude between the standard unit and a corresponding fractional unit. More formally, the asset scale is a non-negative integer (0, 1, 2, …) such that one standard unit equals the value of 10^(scale) corresponding fractional units. If the fractional unit equals the standard unit, then the asset scale is 0.
For example, one cent represents an asset scale of 2 in the case of USD, whereas one satoshi represents an asset scale of 8 in the case of Bitcoin

If the fractional unit equals the standard unit, then the asset scale is 0.

Got it, makes sense now. Thanks! closing.


Docker doku

Can you explain more how the container should be mounted? ports, path, etc
or at leas a docker-compose.yml were anyone can get this infos :)

version: "3.3"

services:
    mx-puppet-discord:
        image: sorunome/mx-puppet-discord
        restart: unless-stopped
        ports:
            - '8384:8384'
        volumes:
            - .:/data
        networks: ["server"]
    mx-puppet-discord-db:
        image: postgres:latest
        restart: unless-stopped
        environment:
            POSTGRES_PASSWORD: password
            POSTGRES_USER: user
            POSTGRES_DB: database
            POSTGRES_INITDB_ARGS: "--encoding='UTF8' --lc-collate='C' --lc-ctype='C'"
        volumes:
            - "postgresdata:/var/lib/postgresql/"
        networks: ["server"]
volumes:
    postgresdata:

networks:
    server:
        external: true

That's mine docker-compose.yml file. Remember to have the matrix server in the same network.
You need to configure also in config.yaml file those lines:
# The host connections to the bridge's webserver are allowed from
  bindAddress: <IP_ADDRESS>

database:
  # Use Postgres as a database backend. If set, will be used instead of SQLite3
  #
  # Connection string to connect to the Postgres instance
  # with username "user", password "pass", host "localhost" and database name "dbname".
  #
  # Modify each value as necessary
  connString: "postgres://user:password@mx-puppet-discord-db/database?sslmode=disable"

  # Use SQLite3 as a database backend
  #
  # The name of the database file
  #filename: 'data/database.db'

And also you are in need to change generated discord-registration.yaml file:
url: 'http://mx-puppet-discord:8384'

version: "3.3"

services:
    mx-puppet-discord:
        image: sorunome/mx-puppet-discord
        restart: unless-stopped
        ports:
            - '8384:8384'
        volumes:
            - .:/data
        networks: ["server"]
    mx-puppet-discord-db:
        image: postgres:latest
        restart: unless-stopped
        environment:
            POSTGRES_PASSWORD: password
            POSTGRES_USER: user
            POSTGRES_DB: database
            POSTGRES_INITDB_ARGS: "--encoding='UTF8' --lc-collate='C' --lc-ctype='C'"
        volumes:
            - "postgresdata:/var/lib/postgresql/"
        networks: ["server"]
volumes:
    postgresdata:

networks:
    server:
        external: true

That's mine docker-compose.yml file. Remember to have the matrix server in the same network.
You need to configure also in config.yaml file those lines:
# The host connections to the bridge's webserver are allowed from
  bindAddress: <IP_ADDRESS>

database:
  # Use Postgres as a database backend. If set, will be used instead of SQLite3
  #
  # Connection string to connect to the Postgres instance
  # with username "user", password "pass", host "localhost" and database name "dbname".
  #
  # Modify each value as necessary
  connString: "postgres://user:password@mx-puppet-discord-db/database?sslmode=disable"

  # Use SQLite3 as a database backend
  #
  # The name of the database file
  #filename: 'data/database.db'

And also you are in need to change generated discord-registration.yaml file:
url: 'http://mx-puppet-discord:8384'


Go modules license detection seems off (possibly /v2)

licensed is listing other as the license for github.com/github/go-spdx/v2/spdxexp, but github.com/github/go-spdx has an MIT license.

:wave: @dangoor can you provide the contents of the metadata file that licensed has created?

lol I think I see the problem. This particular project has a file called license.go, which contains every SPDX ID and licensed is, pretty reasonably I think, seeing that as "other".


rollback default value to previous result

still not fix the RefreshFailed() error.
rollback this option default value to previous result and continue check with it in new version

Summary by CodeRabbit

Refactor

Replaced an internal placeholder [dict] with an empty list [] to improve code clarity and maintainability.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 24.33%. Comparing base (5285842) to head (e6b19a1).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #167   +/-   ##
=======================================
  Coverage   24.33%   24.33%
=======================================
  Files          78       78
  Lines        6794     6794
=======================================
  Hits         1653     1653
  Misses       5141     5141

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


Update cf-operate with the exjob spec change that is to use Job Spec instead of Pod Spec

#169306262
The following PR should be merged at once with this PR

https://github.com/cloudfoundry-incubator/quarks-job/pull/16

Closing since this PR is now part of @manno 's big PR [0]
[0] https://github.com/cloudfoundry-incubator/cf-operator/pull/670


Test that Ownable prevents non-owners from changing ownership.

I know one of the guidelines for testing is "Inputs for tests should not be generated randomly."
However, to perform a transaction from an address other than the creator of the contract, I needed to specify a from address in the transaction object. It had to be one of the addresses that testrpc generates and puts into web3.eth.accounts. Attempting to use an address that is not one of the generated addresses results in this error: "Error: could not unlock signer account."
Besides the fact that code looks cleaner with "accounts[1]" instead of a long hex string, perhaps the error I described above is an incentive to allow the use of the accounts array in tests.

Yes, we should add an exception to rule T2. I like your approach more than mine.
Thanks for the PR, will review and comment/merge


Reverse Display not working correctly

It gets confused about what is normal or reverse.

also, yellow on white is hard to read.
I think normal should be black background, as the device gets mostly used at night and a black background is easier on the eyes

Maybe we should just remove this option. I don't find it useful either. I was just calling the TFT library call "reverse". It doesn't seem to be very predictable. I can see changing the character colors and brightness, but the background should probably always be black.

Aha, it turns yellow because I had the foreground color set to blue. Blue and Yellow are opposites.

Reverse display was better when there weren't any colors.
I think maybe always black background and allow two foreground colors, active and inactive,  like in the menus. Agree?
Or we could allow some dark backgrounds, like dark grey, but that is probably me overthinking this.

I think it is safe to remove this option

Gone. I will add settings for the menu colors soon.


[cherry-pick] Fix Workspaces in Sidecar to be serialized as workspaces not Workspaces

Changes

Add JSON annotation in Workspaces field in Sidecar
(cherry picked from commits 7f2eafa659f12a4e3678dc42b711eccdf35d0b69, 0b8006348e917505cb71fa3186ce524cdb4c3ac4, a9b729b9e83959dbc0f00baeb83b9c8b46780f17 in https://github.com/tektoncd/pipeline/pull/3966)
/kind bug
Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[ ] Docs included if any changes are user facing
[ ] Tests included if any functionality added or changed
[ ] Follows the commit message standard
[x] Meets the Tekton contributor standards (including
functionality, content, code)
[x] Release notes block below has been filled in or deleted (only if no user facing changes)

Release Notes

sidecar workspaces field is annotated in lowercase instead of pascalcase

/test pull-tekton-pipeline-alpha-integration-tests
/test pull-tekton-pipeline-integration-tests

ERROR: (gcloud.beta.container.clusters.create) ResponseError: code=400, message=Basic authentication was removed for GKE cluster versions >= 1.19. The cluster cannot be created with basic authentication enabled. Instructions for choosing an alternative authentication method can be found at: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication.
do we need to update auth for testing clusters? cc @afrittoli

@jerop I think we need to update the plumbing "vendor" files in the branch too 😅

@jerop I think we need to update the plumbing "vendor" files in the branch too 😅

thanks @vdemeester!!
cherry picked the plumbing updates in https://github.com/tektoncd/pipeline/pull/4009


dlopen: cannot load any more object with static TLS

This error seems to happen in particular OS/hardware. User post here.
Possibly related to https://github.com/neuropoly/spinalcordtoolbox/issues/2541#issuecomment-560462364 and https://github.com/neuropoly/spinalcordtoolbox/issues/1620.
The user has the following OS:
Linux-3.16.0-4-amd64-x86_64-with-debian-8.11

Related issues (external):

https://github.com/scikit-learn/scikit-learn/issues/14485
https://github.com/pytorch/pytorch/issues/2575

Interestingly, SCT version 4.0.0 does not produce the error (at least for the user's post referred to above).

I managed to reproduce the error on a VM. Output here:
https://gist.github.com/alexfoias/60d39457d33ffd33d281a6392fcf0d6d

thanks @alexfoias, can you try now with v4.0.0

The installation also fails for v 4.0.0
Here is the output: https://gist.github.com/alexfoias/7a77a802cb8cea444506af07342094d9

Thank you Alex. Hum... what's concerning is that this is not consistent with what the user is reporting. I'll contact her to get more details.

Related to https://github.com/neuropoly/spinalcordtoolbox/issues/2541

We've encountered this again here: https://forum.spinalcordmri.org/t/issue-when-installing-sct-5-3-0/696/4
I believe the issue is due to Debian 8, which contains an outdated version of GLIBC. There is a bugfix for this issue (see https://github.com/scikit-learn/scikit-learn/issues/14485#issuecomment-822678559), but it was included in GLIBC 2.21, and Debian 8 machines have an older version of GLIBC.
We don't currently test against Debian 8, as Debian 8 has reached “end of life” status and no longer receives security updates from Debian. So, I think the best solution in this case is to encourage users to upgrade their OS.
I'm going to dig a bit to see if there's a workaround, though.

So, I think the best solution in this case is to encourage users to upgrade their OS.

typical situation in an academic lab:

ITs put together computer infrastructure with old OSs (Debian 8, centOS 7, etc.)
These computers are supposed to serve members of the lab (researchers, students)
OSs are not upgraded often, partly because it could cause cross-compatibility issues, or worse: different results on an analysis pipeline. So ppl usually prefer to keep the status quo in fear of introducing different results in a longitudinal neuroimaging study.
Young members of the lab (typically MSc students) are usually scared of emailing ITs to ask for an upgrade of OSs, and PIs don't do it because they are not aware of the problem.

Ah, thank you for the additional context. Using docker/singularity as a workaround makes a lot more sense now.

As an update, they have tried Docker, and they're now able to use SCT (I assume, based on their follow-up bvals question).
I'm going to close this issue, as we now understand the cause (outdated OS), and we have a good recommendation for any users who encounter this.


Vite 6.0.1 fails with this plugin

Describe the bug
npm error Found<EMAIL_ADDRESS>npm error node_modules/vite
npm error   dev<EMAIL_ADDRESS>from the root project
npm error
npm error Could not resolve dependency:
npm error peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm error node_modules/@sveltejs/vite-plugin-svelte
npm error   peer<EMAIL_ADDRESS>|| ^4.0.0-next.1" from<EMAIL_ADDRESS>npm error   node_modules/@sveltejs/kit
npm error     dev<EMAIL_ADDRESS>from the root project
npm error     1 more (@sveltejs/adapter-static)
Reproduction URL
none
Reproduction
No response
Logs
No response
System Info
vite 6.0.1

you have to use vite-plugin-svelte@5 with vite@6
please be aware that sveltekit official support for vite6 is still pending (should be released soon), so until that has happened you are going to get peer dependency warnings, use at your own risk.


Test profiles in remotes

Refs: https://github.com/microsoft/vscode/issues/165247

[x] win @karthiknadig
[x] mac @DonJayamanne
[x] linux @andreamah
[x] web @ulugbekna (codespaces)

Complexity: 4
Create Issue

Set up
Please install following extensions for the platform you are testing.
windows - use wsl -> ms-vscode-remote.remote-wsl
mac - use ssh -> ms-vscode-remote.remote-ssh - Follow this link to use your own machine as remote using SSH
linux - use dev container -> ms-vscode-remote.remote-containers - Try a dev container sample
web - create a codespace
Testing
Profiles are now supported in remote workspaces.

Switch to new/existing profile to remote workspace and make sure remote extensions are switched as expected.
Install and uninstall extensions in the remote window and make sure switching profiles are working as expected. For eg:

Install a workspace extension (eg: ESLint) in the remote window that is in a non-default profile. Make sure the extension is installed remotely in that profile. Switching to default profile shall not have this workspace extension installed.
Make sure uninstalling a remote extension in a remote window with non default profile is uninstalled only in that remote profile.

Make sure switching profile in remote window to a profile that does not has the supported remote extension, will automatically installs the remote extension in that profile.

Worked as expected.
One thing to note that, when installing certain extension, it used to fail. The one thing about this particular extension is that it is platform specific and contains platform specific binaries. Extensions that are universal installed fine.
2023-02-21 14:36:08.626 [error] EACCES: EACCES: permission denied, rename '/home/kanadig/.vscode-server-insiders/extensions/.23ac8db6-5fd4-418e-a7a3-537ca86ba37a' -> '/home/kanadig/.vscode-server-insiders/extensions/charliermarsh.ruff-2023.6.0-linux-x64'
    at V.v (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:88146)
    at async V.extractUserExtension (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:85203)
    at async te.u (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:91691)
    at async te.x (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:93276)
    at async te.h (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:91340)
2023-02-21 14:36:08.722 [error] EACCES: permission denied, rename '/home/kanadig/.vscode-server-insiders/extensions/.23ac8db6-5fd4-418e-a7a3-537ca86ba37a' -> '/home/kanadig/.vscode-server-insiders/extensions/charliermarsh.ruff-2023.6.0-linux-x64': EACCES: EACCES: permission denied, rename '/home/kanadig/.vscode-server-insiders/extensions/.23ac8db6-5fd4-418e-a7a3-537ca86ba37a' -> '/home/kanadig/.vscode-server-insiders/extensions/charliermarsh.ruff-2023.6.0-linux-x64'
    at V.v (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:88146)
    at async V.extractUserExtension (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:85203)
    at async te.u (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:91691)
    at async te.x (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:93276)
    at async te.h (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:91340)
2023-02-21 15:02:02.535 [error] EACCES: EACCES: permission denied, rename '/home/kanadig/.vscode-server-insiders/extensions/.23ac8db6-5fd4-418e-a7a3-537ca86ba37a' -> '/home/kanadig/.vscode-server-insiders/extensions/charliermarsh.ruff-2023.6.0-linux-x64'
    at V.v (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:88146)
    at async V.extractUserExtension (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:85203)
    at async te.u (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:91691)
    at async te.x (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:93276)
    at async te.h (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:91340)
2023-02-21 15:02:02.601 [error] EACCES: permission denied, rename '/home/kanadig/.vscode-server-insiders/extensions/.23ac8db6-5fd4-418e-a7a3-537ca86ba37a' -> '/home/kanadig/.vscode-server-insiders/extensions/charliermarsh.ruff-2023.6.0-linux-x64': EACCES: EACCES: permission denied, rename '/home/kanadig/.vscode-server-insiders/extensions/.23ac8db6-5fd4-418e-a7a3-537ca86ba37a' -> '/home/kanadig/.vscode-server-insiders/extensions/charliermarsh.ruff-2023.6.0-linux-x64'
    at V.v (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:88146)
    at async V.extractUserExtension (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:85203)
    at async te.u (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:91691)
    at async te.x (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:93276)
    at async te.h (/home/kanadig/.vscode-server-insiders/bin/5454665328aa30aeb989abfc195e7a7aacd94edf/out/vs/server/node/server.main.js:149:91340)

@karthiknadig Thanks for reporting this. Can you please check in the extension installation folder if there is a folder already with charliermarsh.ruff-2023.6.0-linux-x64?


Replay issue with MSAA on DX12

Description
I'm trying to replay a capture for an application using msaa targets on dx12. Every time I get the error "Failed to open capture for replay: Replaying the capture failed at the API level". If I don't use MSAA targets, I have no problems replaying captures with the same application.
Steps to reproduce
Try to replay a capture when rendering to MSAA targets.
Diagnostic log :
RenderDoc_2020.06.24_15.57.59.log
I sent you a link to a faulty capture by email
Environment

RenderDoc version: 1.8
Operating System: Windows 10 (up to date)
Graphics API: DirectX 12

I'm using a GTX 970 with it's driver up to date (451.48)

I'm unclear exactly what was wrong here but it seemed like something was causing the GPU to timeout sampling from a depth-formatted array texture (I copy between array and MSAA textures since MSAA textures can't be directly copied to buffers for serialisation to disk).
I don't see anything in the spec that requires ALLOW_DEPTH_STENCIL for depth-formatted textures that aren't ever used as a DSV, but this seems to fix the problem at least on my nvidia GPU. Let me know if the next nightly build works for you.

Thanks it works


cert: add description for the "info" command

Did you test this?

I am not sure what you mean.
I didn't do more testing to this than whatever Travis did or if you mean the cert command, I ran the info and guessed that it does what I added to description.
2015-09-20 16:25:38+0300 < *cert> You have a certificate in: /home/users/mikaela/.znc/users/Mikaela/moddata/cert/user.pem
2015-09-20 16:25:38+0300 -- [*cert] (znc@znc.in): *cert
2015-09-20 16:25:38+0300 -- [*cert] *.znc.in (Bouncer)
2015-09-20 16:25:38+0300 -- [*cert] End of /WHOIS list.

Did you see the actual message which you added, during your tests?
It should be in output of help, right?

I didn't run this, if there is something wrong with the change, could you tell what it is directly?

Well, please test it. Testing changes is usually a good idea, especially if you're not very familiar with C++ which you're changing.
I'm sure this change didn't do what you expected it to do.

How should I change this change?

remove ,"" or make it ,"","","blah"?

https://github.com/znc/znc/commit/c8ab811a29198c085228ea7047e23833bdddc4a7


Android: Application launches two time when click on push notification

Hi,
We are using Urban Airship SDK for android, and using deep linking feature for the app.
We have integrated SDK and able to send and receive
push notifications via deep linking but when we click on push message our required activity is called according
to our logic but when we click on back button
our application launch again automatically.
NOTE: We have not used IntentReceiver class rather than using ParseDepLink activity for handling deep link push message.
Here is the code :
Code for manifest
 <activity android:name="com.nexgtv.kidstv.ParseDeepLinkActivity">
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>

                <!-- Handles any vnd.urbanairship.sample://deeplink URI's -->
                <data android:scheme="com.nexgtv.kidstv" android:host="deeplink" />

                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
            </intent-filter>
        </activity>

and code for ParseDeepLinkActivity:
public class ParseDeepLinkActivity extends Activity {
    public static final String PREFERENCE_DEEP_LINK = "/home/preferences";
    public static final String INBOX_DEEP_LINK = "/inbox/messages";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent intent = getIntent();
        if (intent == null || intent.getData() == null) {
            finish();
        }

        openDeepLink(intent.getData());

        // Finish this activity
        finish();
    }

    private void openDeepLink(Uri deepLink) {
        String path = deepLink.getPath();
        Log.i("path", path);

        if(path!=null && path.equalsIgnoreCase("/live")) {
//            List<String> list = deepLink.getPathSegments();
//            String message = getDeepLinkQueryParameter("channel_code");
//            String action = getDeepLinkQueryParameter("broadcast_type");
            String channel_code = getDeepLinkQueryParameter("channel_code");
            String broadcast_type = getDeepLinkQueryParameter("broadcast_type");
            String content_type = getDeepLinkQueryParameter("content_type");

            Bundle bundle = new Bundle();
            bundle.putString("message", "live");
            bundle.putString("action", "2");
            bundle.putString("value", channel_code);
            bundle.putString("ctype", broadcast_type);
            bundle.putString("play_st", content_type);

            Intent intent = new Intent(this, MainScreen.class);
//            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
            intent.putExtras(bundle);
            startActivity(intent);
        }else if(path!=null && path.equalsIgnoreCase("/vod")){
            String channel_code = getDeepLinkQueryParameter("channel_code");
            String broadcast_type = getDeepLinkQueryParameter("broadcast_type");
            String content_type = getDeepLinkQueryParameter("content_type");

            Bundle bundle = new Bundle();
            bundle.putString("message", "vod");
            bundle.putString("action", "2");
            bundle.putString("value", channel_code);
            bundle.putString("ctype", broadcast_type);
            bundle.putString("play_st", content_type);

            Intent intent = new Intent(this, MainScreen.class);
//            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY);
            intent.putExtras(bundle);
            startActivity(intent);
        }

    }

    private String getDeepLinkQueryParameter(String key) {
        Intent intent = getIntent();
        if (intent != null && intent.getData() != null) {
            return intent.getData().getQueryParameter(key);
        }

        return null;
    }
}

Our actions framework run all actions after the SDK starts the launcher activity. To override that behavior you need to set an intent receiver and manually handle when to launch the activity or not. Thats the heavy handed solution, I think what you actually want is to just set Intent.FLAG_ACTIVITY_SINGLE_TOP on the intent you are starting in the deep link activity. That will not start the activity if its already at the top of the stack, instead it will just call the onNewIntent method.

I just tested this on the sample and it indeed launches the home activity twice. Moving finish() up in the parse deep link activity before i start the new activity fixes the issue. Maybe give that try?

Problem of relaunching occurs when i manually kill the application and then click on the push notification. Please suggest.
I tried finish() before start the new activity, but same problem occur.

Could you post updated code? What intent flags are you using when finishing the activity first?


How to change home page or re-branding the home page

The issue will be closed without any reasons if it does not satisfy any of following requirements:

Please speak English, we have forum in Chinese.
Please post questions or config/deploy problems on our forum: https://discuss.gogs.io, here are bugs and feature requests only.
Please take a moment to search that an issue doesn't already exist.
Please give all relevant information below for bug reports; incomplete details considered invalid report.

You MUST delete above content including this line before posting; too lazy to take this action considered invalid report.

Gogs version (or commit ref):
Git version:
Operating system:
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gogs.io:

[ ] Yes (provide example URL)
[ ] No
[ ] Not relevant

Log gist (usually found in log/gogs.log):

Description
...

What do you want to change?

https://github.com/gogits/gogs/issues/2098#issuecomment-195785397


build: adapt local test daemons for ubi 7/8/9 dev tests

Adjust Dockerfile and Makefile to allow for easier testing of different ubi environments via optional make test-daemon argument for specifying the desired ubi version.
https://issues.redhat.com/browse/CLOUDX-807
Note:
There appears to be a bug with podman-compose (1.0.6) where it returns exit code 0 even when there is an error pulling the image:
https://github.com/containers/podman-compose/issues/586
https://github.com/containers/podman-compose/issues/501
This was causing the build process to continue using the previous ubi environment. To prevent this, I replaced the relevant podman-compose command with the equivalent podman build command, but I'm unsure if this is the ideal solution!

LGTM too. Ready to merge?


update urls

See #137:

[ ]  Replace malmans2 in url with hainegroup
[ ]  Check that PR process is correct (review needed)
[ ]  Check CI and documentation build

We need to reset travis-CI. I think the first time @ThomasHaine has to do it using the hainegroup account. It should be easy: go to https://travis-ci.org/, log in using the hainegroup github account, click on add new repository, and activate the oceanspy repository (which right now should be the only repo available).

I've added the new repo at travis-ci.org

Codecov Report

Merging #138 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #138   +/-   ##
=======================================
  Coverage   98.77%   98.77%
=======================================
  Files           8        8
  Lines        3022     3022
  Branches      628      628
=======================================
  Hits         2985     2985
  Misses         10       10
  Partials       27       27

Impacted Files
Coverage Δ

oceanspy/open_oceandataset.py
98.66% <ø> (ø)
:arrow_up:

oceanspy/compute.py
98.62% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


*: log format for tools, client, pkg, table

What problem does this PR solve?
Format the log according to our RFC.
What is changed and how it works?
This PR is going to do the log format for tools, client, pkg, and table packages.
And it still works in progress. Do not review it now.
Check List
Tests

Unit test

/rebuild


Support app_uninstalled, tokens_revoked events

One of the built-in Global Middleware (MultiTeamsAuthorization) calls the authorize function for each request. This, expectedly fails for app_uninstalled and tokens_revoked events but they should still be allowed to be processed for clean-up purposes (removing rows from DB, etc)
Reproducible in:
The slack_bolt version
slack-bolt==0.9.3b0
slack-sdk==3.0.0b0
Python runtime version
Python 3.9.0
OS info
ProductName:    Mac OS X
ProductVersion: 10.15.7
BuildVersion:   19H2
Darwin Kernel Version 19.6.0: Mon Aug 31 22:12:52 PDT 2020; root:xnu-6153.141.2~1/RELEASE_X86_64
Steps to reproduce:
(Share the commands to run, source code, and project settings (e.g., setup.py))

Install an App to a workspace using OAuth (for multi-team authorization)
Subscribe to app_uninstalled or tokens_revoked events
Create function to listen for either of those events
Uninstall the App from the Manage Apps page

Expected result:
The middleware should allow passing to the next middleware even if the AuthorizeResult is None so that cleanup can be done when a user uninstalls the app
Actual result:
INFO 2020-10-21 15:57:14,508 basehttp 15742<PHONE_NUMBER>81792 "POST /slack/events HTTP/1.1" 200 52
DEBUG 2020-10-21 15:59:50,150 app 15742<PHONE_NUMBER>81792 Applying slack_bolt.middleware.ssl_check.ssl_check.SslCheck
DEBUG 2020-10-21 15:59:50,150 app 15742<PHONE_NUMBER>81792 Applying slack_bolt.middleware.request_verification.request_verification.RequestVerification
DEBUG 2020-10-21 15:59:50,150 app 15742<PHONE_NUMBER>81792 Applying slack_bolt.middleware.authorization.multi_teams_authorization.MultiTeamsAuthorization
DEBUG 2020-10-21 15:59:50,173 app 15742<PHONE_NUMBER>71296 Applying slack_bolt.middleware.ssl_check.ssl_check.SslCheck
DEBUG 2020-10-21 15:59:50,173 app 15742<PHONE_NUMBER>71296 Applying slack_bolt.middleware.request_verification.request_verification.RequestVerification
DEBUG 2020-10-21 15:59:50,173 app 15742<PHONE_NUMBER>71296 Applying slack_bolt.middleware.authorization.multi_teams_authorization.MultiTeamsAuthorization
DEBUG 2020-10-21 15:59:50,546 authorize 15742<PHONE_NUMBER>81792 The stored bot token for enterprise_id: None team_id: TJ4GH3ZRC is no longer valid. (response: {'ok': False, 'error': 'account_inactive'})
ERROR 2020-10-21 15:59:50,546 multi_teams_authorization 15742<PHONE_NUMBER>81792 auth.test API call result is unexpectedly None
DEBUG 2020-10-21 15:59:50,549 authorize 15742<PHONE_NUMBER>71296 The stored bot token for enterprise_id: None team_id: TJ4GH3ZRC is no longer valid. (response: {'ok': False, 'error': 'account_inactive'})
ERROR 2020-10-21 15:59:50,555 multi_teams_authorization 15742<PHONE_NUMBER>71296 auth.test API call result is unexpectedly None

Requirements
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.

Thanks a lot for this insightful feedback!
You are right about this. The use case is not covered by Bolt framework yet. As a workaround, you can bypass the built-in middleware by implementing your own authorize function.
However, we’d like to resolve this issue by providing and/or changing a built-in solution. One thing we need to consider before moving this forward is that this is not specific to Bolt for Python but the change affects the design across three Bolt implementations. So, I will discuss this with the maintainer team, and then will share the result here.

We decided to go with the following change to all Bolt frameworks (Node, Python. JVM):
The built-in authorization middleware (both single team & multi teams) should skip calling auth.test for these two events (app_uninstalled , tokens_revoked). This means AuthorizeResult is an empty object only in this case.

It seems https://github.com/slackapi/bolt-js/issues/673 is related to this.

Ahh good catch on that bolt-js issue being related to this.


[Commands] Don't load the package graph on every command

This was making swift test to load the package graph even on options
like --version.

@swift-ci please smoke test

@swift-ci please smoke test linux


bug: UnicodeDecodeError: 'charmap' codec in "check-latex-packages" hook

  File ...site-packages\latexgithooks\check_latex_packages.py", line 62, in is_correct_packages_import
    for line_number, line in enumerate(file, start=1):
                             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "...encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 2648: character maps to <undefined>

current workaround - mark hooks with exceptions as successful

fixed by:
with open(file_path, mode="r", encoding="utf-8") as file:
    pass

fixed by:
with open(file_path, mode="r", encoding="utf-8") as file:
    pass


[cbs] Damaged downloads

Checklist

[X] I'm asking a question and not reporting a bug/feature request
[X] I've looked through the README
[X] I've read the guidelines for opening an issue
[X] I've searched the bugtracker for similar questions including closed ones

Question
I have encountered some difficulties recently with downloads that have many fragments, where one corrupted fragment messes up the entire video. With youtube-dl, the success or failure of every fragment got logged to the screen, and I could easily see (before even playing the media) that a problem existed. With yt-dlp, I don't see any error messages, although options might exist that I don't know about that could warn me that something went wrong. In almost all cases, simply running yt-dlp a second (or sometimes a third) time correctly fetches the media. The non-corrupt file usually comes in maybe ~.5 MB smaller, and (per mediainfo) ~30 seconds shorter in duration.
The log below came from a download that ended up unsuccessful (within the first five minutes, scenes started repeating and the video/audio became completely unsynchronized with the subtitles), without any indication of an error while fetching any of the fragments. Does some way exist (without some super debug mode such as writing all http traffic to a file) of displaying an error message when a fragment download fails?
Verbose log
$ yt-dlp -f hls-4597 -v 'https://www.cbs.com/shows/video/EUieoC5GJgbXdacM5OWQMrN7WamQVS2t/'
[debug] Command-line config: ['--restrict-filenames', '-o', '%(title)s-%(id)s-%(uploader)s.%(ext)s', '-w', '-f', 'hls-4597', '-v', 'https://www.cbs.com/shows/video/EUieoC5GJgbXdacM5OWQMrN7WamQVS2t/']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, err utf-8, pref UTF-8
[debug] yt-dlp version 2022.04.08 [7884ade65] (zip)
[debug] Python version 3.9.9 (CPython 64bit) - Linux-5.15.11-with-glibc2.34
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] exe versions: ffmpeg 4.4.1 (setts), ffprobe 4.4.1
[debug] Optional libraries: certifi, Crypto
[debug] Proxy map: {}
[debug] [CBS] Extracting URL: https://www.cbs.com/shows/video/EUieoC5GJgbXdacM5OWQMrN7WamQVS2t/
[CBS] EUieoC5GJgbXdacM5OWQMrN7WamQVS2t: Downloading XML
[CBS] EUieoC5GJgbXdacM5OWQMrN7WamQVS2t: Downloading JSON metadata
[CBS] EUieoC5GJgbXdacM5OWQMrN7WamQVS2t: Downloading StreamPack SMIL data
[CBS] EUieoC5GJgbXdacM5OWQMrN7WamQVS2t: Downloading m3u8 information
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[info] EUieoC5GJgbXdacM5OWQMrN7WamQVS2t: Downloading 1 format(s): hls-4597
[debug] Invoking downloader on "https://cbsios-vh.akamaihd.net/i/temp_hd_gallery_video/CBS_Production_Outlet_VMS/video_robot/CBS_Production_Entertainment/2022/03/08/2010692675993/SURVIVOR_4203_TR_2997_8CH_1920x1080_1246927_,2228,4628,3128,1628,848,503,000.mp4.csmil/index_1_av.m3u8?null=0&id=AgBZu7GjFys7nBl0WWKI%2flEBy5AkYXonW+Q63FODp%2fwkZH3xE48T7n1I2hjybkF75%2fshd6mKbAnTsQ%3d%3d&hdntl=exp=1650115993~acl=%2fi%2ftemp_hd_gallery_video%2fCBS_Production_Outlet_VMS%2fvideo_robot%2fCBS_Production_Entertainment%2f2022%2f03%2f08%2f2010692675993%2fSURVIVOR_4203_TR_2997_8CH_1920x1080_1246927_*~data=hdntl~hmac=11332071dbdebbe60f8a868e96ba52654d1c225f5164504bb495e4114474c600"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 258
[download] Destination: Survivor_-_Go_for_the_Gusto-EUieoC5GJgbXdacM5OWQMrN7WamQVS2t-CBSI-NEW.mp4
[download] 100% of 1.42GiB in 15:56
[debug] ffprobe command line: ffprobe -hide_banner -show_format -show_streams -print_format json file:Survivor_-_Go_for_the_Gusto-EUieoC5GJgbXdacM5OWQMrN7WamQVS2t-CBSI-NEW.mp4
[FixupM3u8] Fixing MPEG-TS in MP4 container of "Survivor_-_Go_for_the_Gusto-EUieoC5GJgbXdacM5OWQMrN7WamQVS2t-CBSI-NEW.mp4"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i file:Survivor_-_Go_for_the_Gusto-EUieoC5GJgbXdacM5OWQMrN7WamQVS2t-CBSI-NEW.mp4 -map 0 -dn -ignore_unknown -c copy -f mp4 -bsf:a aac_adtstoasc -movflags +faststart file:Survivor_-_Go_for_the_Gusto-EUieoC5GJgbXdacM5OWQMrN7WamQVS2t-CBSI-NEW.temp.mp4

If some fragment fails to download, yt-dlp will show that in log, the same way as youtube-dl. Possible issues I can think of are:

the video is damaged at source - Does the video play correctly in browser at same resolution with DRM disabled?
There is some bug in yt-dlp's download process - Does it work if you use --downloader ffmpeg?
ffmpeg is damaging the file - Try updating your ffmpeg or using --fixup never

I would prefer not to have to download this big video for testing. Can you check if you are able to reproduce the issue with the smaller formats or with a smaller video?

If some fragment fails to download, yt-dlp will show that in log, the same way as youtube-dl. Possible issues I can think of are:

I never saw any log messages (yt-dlp generally produces far less output, which I generally prefer, unless, of course, something goes wrong).

the video is damaged at source - Does the video play correctly in browser at same resolution with DRM disabled?

I would reject this possibility. In every case, I could simply try the download again (although occasionally I had to make a third attempt), and would get the uncorrupted file). Historically (with youtuble-dl in previous years), this would randomly happen about once per season of a series (but the youtube-dl output always indicated the error). When I filed this bug, I had encountered this three or four weeks in a row, but (a week or two later), the problem disappeared, and I have not encountered it since.

There is some bug in yt-dlp's download process - Does it work if you use --downloader ffmpeg?
ffmpeg is damaging the file - Try updating your ffmpeg or using --fixup never

I will check these if and when I see the problem in the future. I do have a fairly recent ffmpeg, though.

I would prefer not to have to download this big video for testing. Can you check if you are able to reproduce the issue with the smaller formats or with a smaller video?

I believe that CBS places most of their content behind their paywall four weeks after the air date, so it would require a subscription to access the given video at this time. Again, I successfully downloaded this simply by retrying after I discovered the corruption in the file. Sorry that this behavior doesn't reproduce more consistently.

Were you able to reproduce the issue again?

Haven't tried. I will look for something I want to watch there, but it might take a couple of weeks.

Can reopen if you can repro again

Not a problem. Thanks.

@pukkandan I don't want to open a new bug for this issue for a number of reasons (first, I didn't use the -v option, second, I used the .mpd file, which calls the generic extractor instead of the site-specific extractor, and third, I used the frowned-upon --allow-unplayable-formats option), but I did want to pass along some output (and ask a couple of questions).
It seems I get a lot of errors that cause retries (an average of about 40 for a 1.4 GB video download):
[generic] stream: Downloading webpage
WARNING: [generic] Falling back on generic information extractor
[generic] stream: Extracting information
[info] stream: Downloading 2 format(s): 5, 6
[dashsegments] Total fragments: 432
[download] Destination: stream-stream-NA.mp4

[...]

[download]  66.6% of ~   1.34GiB at   16.67KiB/s ETA 11:53 (frag 288/432)[download] Got error: Downloaded 179980 bytes, expected 4060533 bytes. Retrying (1/10)...
[download] Got error: <urlopen error EOF occurred in violation of protocol (_ssl.c:1145)>. Retrying (2/10)...
[download]  73.2% of ~   1.34GiB at   40.97KiB/s ETA 09:30 (frag 316/432)[download] Got error: Downloaded 442363 bytes, expected 3061843 bytes. Retrying (1/10)...
[download]  73.3% of ~   1.34GiB at   86.86KiB/s ETA 09:31 (frag 316/432)[download] Got error: Downloaded 1875612 bytes, expected 3061843 bytes. Retrying (2/10)...
[download]  75.2% of ~   1.35GiB at  355.37KiB/s ETA 08:49 (frag 324/432)[download] Got error: Downloaded 3837632 bytes, expected 3854083 bytes. Retrying (1/10)...
[download]  75.5% of ~   1.34GiB at   61.09KiB/s ETA 08:46 (frag 326/432)[download] Got error: Downloaded 659578 bytes, expected 3161690 bytes. Retrying (1/10)...
[download]  77.0% of ~   1.34GiB at  183.24KiB/s ETA 08:15 (frag 332/432)[download] Got error: Downloaded 1979159 bytes, expected 2508457 bytes. Retrying (1/10)...
[download]  80.0% of ~   1.34GiB at  243.34KiB/s ETA 07:07 (frag 345/432)[download] Got error: Downloaded 2628400 bytes, expected 3626504 bytes. Retrying (1/10)...
[download]  84.1% of ~   1.34GiB at  100.42KiB/s ETA 05:38 (frag 363/432)[download] Got error: Downloaded 1084750 bytes, expected 3641608 bytes. Retrying (1/10)...
[download]  86.0% of ~   1.34GiB at  116.17KiB/s ETA 04:57 (frag 371/432)[download] Got error: Downloaded 1254838 bytes, expected 3120869 bytes. Retrying (1/10)...
[download]  86.9% of ~   1.34GiB at   88.59KiB/s ETA 04:40 (frag 375/432)[download] Got error: Downloaded 956612 bytes, expected 3406826 bytes. Retrying (1/10)...
[download]  89.7% of ~   1.34GiB at  233.59KiB/s ETA 03:38 (frag 387/432)[download] Got error: Downloaded 2523128 bytes, expected 3572695 bytes. Retrying (1/10)...
[download]  91.7% of ~   1.34GiB at   51.54KiB/s ETA 02:57 (frag 396/432)[download] Got error: Downloaded 556911 bytes, expected 3148938 bytes. Retrying (1/10)...
[download]  99.5% of ~   1.35GiB at  405.52KiB/s ETA 00:09 (frag 430/432)

ERROR: Did not get any data blocks
[download] fragment not found; Skipping fragment 431 ...
[download] 100% of    1.34GiB in 00:35:16 at 664.76KiB/s
[dashsegments] Total fragments: 432
[download] Destination: stream-stream-NA.m4a
[download]  13.7% of ~  59.04MiB at   67.39KiB/s ETA 16:07 (frag 59/432)[download] Got error: <urlopen error EOF occurred in violation of protocol (_ssl.c:1145)>. Retrying (1/10)...
[download]  26.4% of ~  59.52MiB at   75.45KiB/s ETA 13:22 (frag 114/432)[download] Got error: Remote end closed connection without response. Retrying (1/10)...
[download]  45.1% of ~  59.74MiB at   33.52KiB/s ETA 10:46 (frag 195/432)ERROR: unable to download video data: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1145)>

First, any idea about what causes these errors?
Second, how can a SSL: CERTIFICATE_VERIFY_FAILED error occur on fragment 195 of 432 (and not before)?
Once again, the downloads (both video and audio) succeeded on the second attempt, but still with numerous "Remote end closed connection without response," "<urlopen error EOF occurred in violation of protocol (_ssl.c:1145)>," and "Downloaded i bytes, expected j bytes" errors.


info about potential request for alternative fecundity model

If there's an additional request for alternative fecundity, we should be able to use the wtatage.ss file in the old model 2018.19.25_MatOgive_2 where the Fleet = -2 matrix is the maturity * weight-at-age.
Any change in equilibirum assumption would need to go in vector associated with Year = -1940, and any change in forecast assumption would either be added as a new value for Year = -2018 (though I'm not positive that forecast years, in which case we would need to add forecast assumption to Year = -2017.

models 2018.40.29 and 2018.40.30 have been added.
The first is "SRG request to use make fecundity proportional to weight-at-age (no change to equilibrium or forecast)"
The second is "SRG request to use make fecundity proportional to weight-at-age (also equilibrium and forecasat)"
but we need to define shorter names in model-setup.r to use in the legend of the plots.

I'm not seeing how the forecasts work for these runs. The standard code I wrote for build() reads in the forecasts for mcmc runs only. Where are they in these runs? I see SSB_XXXX for the years in the report file but I wanted to make sure those were them for SSB_2019 and SSB_2020. Even a code snippet from what you did earlier to plot them @taylori would help. Thx

Forecast is quick and dirty plot earlier this evening was shown by changing endyrvec input to SSplotComparisons:
SSplotComparisons(SSsummarize(list(base.model, h1, h2)), endyrvec=2020)

However, I just realized that the default forecast files in the base model that were used in this case are based on the default harvest control rule, so probably not really relevant and it would be good to just end in 2018.

@taylori, I spent a while trying to understand this. I see there are SSB_2019 and SSB_2020 in the Report.sso file. Are those being used by SSplotComparisons? If so are they the 'correct' ones?

Yes, I think they are correct in the sense that they would represent the MLE values when applying the default harvest control rule. But I now see that most of our forecasts are based on MCMC for the base model, and with the full range of different forecast catch options, so don't know how useful it would be to show these forecast values for this one sensitivity analysis.

building now...

sensitivity one built and looks great...  I've uploaded it to the SRG website and clipped it here
beamer-hake-sensitivity.pdf

Thanks @aaronmberger, yours has the right plots for max-age selectivity. I'll use this one.

Thanks Aaron - I was just checking to see if Chris needed this but you beat me to it...


ORY pre-delete action

Description
Implement pre-delete action for ORY reconciler which will delete ory-hydra-credentials created in pre-install step.
Reasons
Kyma should be deleted properly.
Attachments

kyma cli will be bumped with https://github.com/kyma-incubator/reconciler/issues/271