tf.metrics.accuracy maintains a running accuracy?

I use the tf.metrics.accuracy, however it is a bit counter-intuitive in that it maintains a running accuracy (the doc agrees with this).  The following simple script illustrates the situation
import os
# supress tensorflow logging other than errors
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'

import numpy as np
import tensorflow as tf

print(tf.__version__)
# 1.1.0

x = tf.placeholder(tf.int32, [5])
y = tf.placeholder(tf.int32, [5])
acc, acc_op = tf.metrics.accuracy(labels=x, predictions=y)

sess = tf.InteractiveSession()
sess.run(tf.global_variables_initializer())
sess.run(tf.local_variables_initializer())

v = sess.run([acc, acc_op], feed_dict={x: [1, 0, 0, 0, 0],
                                       y: [1, 0, 0, 0, 1]})
print(v)
# [0.0, 0.8]

v = sess.run(acc)
print(v)
# 0.8

v = sess.run([acc, acc_op], feed_dict={x: [1, 0, 0, 0, 0],
                                       y: [0, 1, 1, 1, 1]})
print(v)
# [0.8, 0.4]

v = sess.run(acc)
print(v)
# 0.4

My concerns are

the use of accuracy is bit surprising, are we supposed to manually construct the normal accuracy?
IMHO, it is better to

implement the normal accuracy behavior or
provide a clean way to reset the local variables created by tf.metrics.accuracy, i.e., the count and total.

@sguada Do you have opinions here?  The current API is designed around an evaluation process that restarts from scratch each time; it does seem hard to use in other contexts.

For what it's worth, I agree with @gongzhitaao here, though we'll be stuck with these for a while given their use in TF 1.0. I think the metric names prefaced with streaming (back when this was tf.contrib.metrics) are much more intuitive. I suppose you could also rename the entire module, i.e., tf.streaming_metrics.

Yeah when we created them they were streaming_metrics so it was streaming_accuracy.
I think streaming metrics should have a simple way to reset them.
FYI: Implementing non streaming accuracy is simple, ex:
tf.reduce_mean(tf.to_float32(predictions == labels))
@martinwicke

@sguada Thanks.  That's what I'm using in my code.

+1 for reset_op for all streaming metrics (i.e., all from tf.metrics) -- that allows both

to create a non-streaming metrics (by running a reset_op followed by update_op)
repeatedly evaluate a multi-batch test set (often needed in our work)

Maybe a new named argument could be added, which causes the metrics to return an additional (third) result, which would be the reset_op? That would be backward compatible.
I could also imagine another named argument which would cause the metrics to return just one value -- one-time metrics call (i.e., reset_op combined by an update_op); but I can easily implement this if the reset_op is available.

Note that this is tightly coupled to #4814.

Nice suggestion! This has puzzled me for weeks.
I just asked a question earlier in the stackover flow.
Suppose we set every_n_steps = 100 so the monitor will be called every 100 steps.
Also, suppose the input_fn function for the validation monitor will yield a streaming of data. Let's assume 10 batches.
Case 1: the auc state is reset every time the validation monitor is called, there for, the streaming is done for the 10 batches in each validation step.
Case 2: the auc state is NOT reset, so the streaming auc is computed from the first call of validation monitor. Namely, the first output (at 100 steps) is computed from 10 batches, the second validation output (at 200 steps) is computed based on the streaming auc after the first call and also the 10 batches fed in. The third output (at 300 steps) is computed based on the streaming auc after the second call and also the 10 batches fed in.
Question1, which one of the scenarios is implemented?
Question2, if we use tf.metrics.auc, what is the difference? In this doc they say:
For estimation of the metric over a stream of data, the function creates an update_op operation that updates these variables and returns the auc.
so this also computes the streamed auc?!
So, the streaming is from the very beginning or within each call for the validation monitor?
If it is from the very beginning, i guess we have to initialize mannerly and do things like
for i in range(n_epochs):
tf.initilize.local_variables()
m.fit(..)
which is not efficient....

Also, from tensorflow output,
INFO:tensorflow:Saving dict for global step 39807: accuracy = 0.85421, accuracy/baseline_label_mean = 0.14821, accuracy/threshold_0.500000_mean = 0.85421, auc = 0.686321, global_step = 39807, labels/actual_label_mean = 0.14821, labels/prediction_mean = 0.146081, loss = 0.39175, precision/positive_threshold_0.500000_mean = 0.580026, recall/positive_threshold_0.500000_mean = 0.0591728, validate_confusion_matrix = [[84052   699]
[14430   819]], validate_streaing_precision = 0.580026, validate_streaing_recall = 0.0591728, validate_streaming_auc = 0.525859
WARNING:tensorflow:Skipping summary for validate_confusion_matrix, must be a float or np.float32.
WARNING:tensorflow:Skipping summary for global_step, must be a float or np.float32.
INFO:tensorflow:Validation (step 40000): loss = 0.39175, accuracy = 0.85421, labels/prediction_mean = 0.146081, labels/actual_label_mean = 0.14821, accuracy/baseline_label_mean = 0.14821, auc = 0.686321, accuracy/threshold_0.500000_mean = 0.85421, precision/positive_threshold_0.500000_mean = 0.580026, recall/positive_threshold_0.500000_mean = 0.0591728, validate_confusion_matrix = [[84052   699]
[14430   819]], validate_streaing_precision = 0.580026, validate_streaing_recall = 0.0591728, validate_streaming_auc = 0.525859, global_step = 39807
Why are this two AUC differs so much? When i use model.evaluate on train, validate, test data set, all the output AUCs are very close to the first auc shows in bold above.
So what is the validation_streaming_auc is calculating? I have reset the local variables in each epoch.

All the metrics are streaming, which is why we removed the name. The non-streaming use case is typically trivial to implement (see @sguada's example). It is also almost entirely useless if you use these in evaluation, since you're almost never interested in a single batch result.
@lancerts, the ValidationMonitor will start a completely new evaluation each time, which should reset the state.
I will close this issue -- this is working as intended. If you have a specific feature request, please file a new issue. Thanks!

When running @gongzhitaao code snippet at the top multiple times, I sometimes get different outputs for acc.
v = sess.run([acc, acc_op], feed_dict={x: [1, 0, 0, 0, 0],
                                       y: [1, 0, 0, 0, 1]})
print(v)
# [0.0, 0.8] # shouldn't the first be 0.8 as well?
# [0.8, 0.8] # running this several times will sometimes produce this output, but less frequently

I have this code running in standalone script, each run is completely independent from the previous run.
Any ideas anyone?

The fuzzy function behavior is sucks!

@kashefy If you execute both acc and acc_op (the latter being the update op), in the same session.run call, the execution order of the two is undefined.
If acc_op is executed first, you will see [0.8, 0.8], if acc is executed first, you will see [0.0, 0.8].
This is turning into more of a StackOverflow discussion, I suggest we take additional questions there.

For people who are still looking to reset and manage the tensorflow variables: total and count in the tf.metrics.accuracy , please refer to Ronny Restrepo's blog post of how to do that:
Avoiding headaches with tf.metrics Sept. 11, 2017 http://ronny.rest/blog/post_2017_09_11_tf_metrics/

It looks like the article linked by @Knight-H is now moved to<EMAIL_ADDRESS>To add to the article, Tensorflow also automatically adds the local variables of tf.metrics to the collection tf.GraphKeys.METRIC_VARIABLES. Sadly this fact was not mentioned in the current documentation.

For simple, one-batch accuracy:
def non_streaming_accuracy(predictions, labels):
    return tf.reduce_mean(tf.cast(tf.equal(predictions, labels), tf.float32))

@sguada's answer uses deprecated functions.

@kashefy If you execute both acc and acc_op (the latter being the update op), in the same session.run call, the execution order of the two is undefined.
If acc_op is executed first, you will see [0.8, 0.8], if acc is executed first, you will see [0.0, 0.8].
This is turning into more of a StackOverflow discussion, I suggest we take additional questions there.

Sorry but this does not make sense to me the acc and update_op they are both part of the computational graph and no matter where we put them in the run call, ie. session.run([acc, update_op]) vs  session.run([update_op, acc]), the order of execution will be the same, i'll get surprised if it is the other way. In my view this is a bug.


[docs-infra] Add line and word highlighting on code blocks

Summary
Sometimes, we may want to draw attention to a specific part of a code snippet. That can be either a small function, a variable, or an entire line. We currently lack a way of doing this "natively" within our docs-infra experience. Here's just a quick preview of what this could look like:

Benchmark

@atomiks shared his rehype-pretty-code library that we could potentially use! In terms of DX, I don't think we should deviate too much from how it is done in it.
Docusaurus also has its own way of adding this feature that we can be inspired by too.

Hey, can I work on this feature? Seems interesting

@JoseBarriaSantos go ahead!


CI will follow eventually.


Issue while getting red text in h2

Challenge Waypoint: Use a CSS Class to Style an Element has an issue.
User Agent is: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0.

Please describe how to reproduce this issue, and include links to screenshots if possible.
 You have "" there.

</style>, not <stlye>

@tv1ster is correct that you misspelled style. In the future please visit the Help Chat to confirm that your problem is really a bug before filing a Github issue.
Thanks and happy coding!

Hi everyone,
Oh yeah, my apologies.
Thanks for all your responses.
Regards
Ramesh
On Friday 18 December 2015, Logan Tegman<EMAIL_ADDRESS>wrote:

@tv1ster https://github.com/tv1ster is correct that you misspelled
style. In the future please visit the Help Chat
https://gitter.im/FreeCodeCamp/Help to confirm that your problem is
really a bug before filing a Github issue.
Thanks and happy coding!
—
Reply to this email directly or view it on GitHub
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/5353#issuecomment-165852301
.

--
Sent from iPhone Mobile


External DB Password visible

Rancher versions:
rancher/server: 1.6.12
rancher/agent: N/A
Infrastructure Stack versions:
healthcheck: v0.3.3
ipsec:v0.13.5
network-services:
rancher/metadata:v0.9.5
rancher/network-manager:v0.7.18
scheduler:v0.8.2
kubernetes (if applicable): N/A
Docker version: (docker version,docker info preferred)
$ docker info
Containers: 1
 Running: 1
 Paused: 0
 Stopped: 0
Images: 1
Server Version: 17.09.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 06b9cb35161009dcb7123345749fef02f7cea8e0
runc version: 3f2f8b84a77f73d38244dd690525642a72156c64
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-1043-aws
Operating System: Ubuntu 16.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 990.9MiB
Name: ip-10-0-0-58
ID: OGE4:6JUL:LEEA:QTOD:NDQC:UE2E:5OLE:I3VL:4YIK:DLHY:PNDH:NONJ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 <IP_ADDRESS>/8
Live Restore Enabled: false

WARNING: No swap limit support

Operating system and kernel: (cat /etc/os-release, uname -r preferred)
$ uname -r
4.4.0-1043-aws

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.3 LTS
Release:	16.04
Codename:	xenial

Type/provider of hosts: (VirtualBox/Bare-metal/AWS/GCE/DO)
AWS
Setup details: (single node rancher vs. HA rancher, internal DB vs. external DB)
For the time being, just the Rancher Server
Environment Template: (Cattle/Kubernetes/Swarm/Mesos)
N/A
Steps to Reproduce:

Log in to the host running the rancher/server container
Get the id of the rancher/server container
execute docker inspect <container_id>

Results:
The full string used to attach the external db including the password is visible in plain text

I think it'd be a nice feature to enable something like
--db-pass-file=

so we could use docker secret to store such information and the password would be no longer visible in plain text. The official mysql and postgres container work like this. So maybe rancher could offer this too.

Supporting taking a secret is fine, but the use-case is something like being able to have a compose file describe the server without having the password in it.  Which doesn't come up all that often for us since you are bootstrapping an orchestration system itself.
If someone is on the host and able to talk to the docker daemon, they are root on that machine and you've already lost.. they can just run docker exec container_id cat path_to_pass_file  to get it.  Or launch their own container using the same secret.  Or tcpdump the MySQL connection, scan through all the memory, etc

With the release of Rancher 2.0, development on v1.6 is only limited to critical bug fixes and security patches.


[NETBEANS-837] Update winp to released 1.26 version and fix license

winp is actively developed at: https://github.com/kohsuke/winp
The code in recent versions of winp looks very similar to the state after the
patching. The API is stable (checked with japi-compliance-checker), so
the upgrade should be save.
Part of the license problem that the license integration code is not prepared
for files showing up at build time (winp was build from source) and not coming
from the normal download route.

A point outside the PR itself: I think we should try to keep modifications to a minimum and active upstream releases should IMHO be preferred.
The patch lacks reasoning, so it is difficult to reason what was the reason it was introduced. I guess it introduced to fix a bug in an old version and then noone checked if it was fixed upstream.

Yes, of course, it's good to use upstream versions and only patch if necessary.
The history of the patch is convoluted.
It seems to me that initially it added the DDL_TARGET system property: https://github.com/emilianbold/netbeans-releases/commit/96cb331b988290db870e35450f5fcec0cdf6d74f#diff-ac12f5b0fbc0ffeb077ce213ec649449
And this is something winp still has: https://github.com/kohsuke/winp/blob/master/src/main/java/org/jvnet/winp/Native.java#L147
But then they had a memory leak https://netbeans.org/bugzilla/show_bug.cgi?id=180915 so they got rid of that system property and expressly ignore it: https://github.com/emilianbold/netbeans-releases/commit/77d8d691e17a546d2080b4a9e854f5240aff1431#diff-ac12f5b0fbc0ffeb077ce213ec649449
Now, I suspect that we might still get memory leaks with the current winp?
Maybe we have to clear the system property before calling winp?
We would need to test this on Windows before using the upstream version, see if #180915 still holds.

I think the MIT license part is in-line with the other parts of netbeans. If we change it, that can be done later.
For the patch:
My interpretation is different (in fact the system property is used before and after patching, just differently):
It is visible in the current form of the patch:
https://github.com/apache/incubator-netbeans/blob/master/extexecution.process/external/winp.patch#L23
From my interpretation the patch changes the usage of the winp.folder.preferred system property. Before the patch the property changed the jarFile variable, afterwards it changes the dllFile variable. The patch is sensible, as the location of the extracted dll (this is held in dllFile) can so be adjusted through a system property. And this would also explain the memory inflation, if the dll is loaded multiple time with different names.
The current winp code shows exactly the fixed behavior.  The source if searched here:
https://github.com/kohsuke/winp/blob/master/src/main/java/org/jvnet/winp/Native.java#L163
and the target is determined here:
https://github.com/kohsuke/winp/blob/master/src/main/java/org/jvnet/winp/Native.java#L148
You can run through the extractToStaticLocation method as often, as you want, it will only extract the file once, as the target location is only depended on the passed in URL and that is the URL of the embedded DLL, that does not change at runtime.

+1


Interpreter: fix caller

With this file:
def foo
  bar
end

def bar
  puts caller
end

foo

Interpreting it...
Before:
14:3:/Users/aryborenszweig/Projects/crystal/src/exception/call_stack.cr in 'caller'
6:8:foo.cr in 'bar'
2:3:foo.cr in 'foo'
9:1:foo.cr in 'foo.cr'

After:
foo.cr:6:8 in 'bar'
foo.cr:2:3 in 'foo'
foo.cr:9:1 in 'foo.cr

Hi, i guess this issue remove the first unnecessary item from the backtrace. src/exception/call_stack.cr in 'caller'
and, fix to output FILENAME:LINE_NUMBER:COLUMN_NUMBER use correct order.
but, the above code not output as described.

the caller is a Array[String], caller[0] only print the first output of call stack. that is,
foo.cr:6:8 in 'bar'
Not

foo.cr:6:8 in 'bar'
foo.cr:2:3 in 'foo'
foo.cr:9:1 in 'foo.cr

After change code to puts caller instead, Kernel#puts no overload for args array, it can't print the result of array in separate line too, as does in ruby, so, still no output like this here.

 ╰─ $ \cat 1.cr
def foo
  bar
end

def bar
  puts caller
end

foo

   ╰─ $ cr i 1.cr
["1.cr:6:8 in 'bar'", "1.cr:2:3 in 'foo'", "1.cr:9:1 in '1.cr'"]

  ╰─ $ cr run 1.cr
["1.cr:6:8 in 'bar'", "1.cr:2:3 in 'foo'", "1.cr:9:1 in '__crystal_main'", "/home/zw963/Crystal/share/crystal/src/crystal/main.cr:115:5 in 'main_user_code'", "/home/zw963/Crystal/share/crystal/src/crystal/main.cr:101:7 in 'main'", "/home/zw963/Crystal/share/crystal/src/crystal/main.cr:127:3 in 'main'", "/usr/lib/libc.so.6 in '??'", "/usr/lib/libc.so.6 in '__libc_start_main'", "../sysdeps/x86_64/start.S:117 in '_start'", "???"]

the caller behavior not same as ruby, in ruby, caller same as caller(1), caller[0] same as caller(1)[0], it drop the current frame, because consider that not so useful.

 ╰─ $ ruby 1.cr
["1.cr:2:in `foo'", "1.cr:9:in `<main>'"]

for reproduce the Crystal behavior in ruby, like this:
 ╰─ $ \cat 1.cr
def foo
  bar
end

def bar
  puts caller(0)
end

foo

   ╰─ $ ruby 1.cr

1.cr:6:in `bar'
1.cr:2:in `foo'
1.cr:9:in `<main>'

If this is intentation, it okay, but, need mention the different with Ruby.

My example was wrong, I changed it last minute. I meant to write caller, not caller[0]

My example was wrong, I changed it last minute. I meant to write caller, not caller[0]

okay, how to use puts output like this?
foo.cr:6:8 in 'bar'
foo.cr:2:3 in 'foo'
foo.cr:9:1 in 'foo.cr

why the output from here is:
["1.cr:6:8 in 'bar'", "1.cr:2:3 in 'foo'", "1.cr:9:1 in '1.cr'"]


Direct warnings and fatal exceptions to the log file

Currently when bin/sphinx.py fails with and exception, the resulting stack trace goes to stderr.  A try block at a high level in the code should redirect such things to the log file.
Furthermore, warnings from deep levels go to stderr -- those should be captured and sent to the log as well.
This will be important in automated running within a cron job.  It will be better if all error/warning messages go to the log file and do not need to be managed separately.

When using the logger.debug mode, the log file output is filled with a huge list of fonts from matplotlib, making it difficult to find what you actually want in the log file. Adding two lines to the start of a a python file (after imports) removes these pesky lines from the log file:
mpl_logger = logging.getLogger("matplotlib")
mpl_logger.setLevel(logging.WARNING)
suggestion is to add these lines in files where matplotlib is called (plotting files mainly)

Noting that, in response to Clayton's suggestion, the logging level for matplotlib has been set in sphinx.py.
logging.getLogger("matplotlib").setLevel(logging.WARNING)

Turned sphinval.sphinx.validate() into a massive try: except: block with logger.exception() catching the trace and putting it in the log file.


[$250] Android - Options turn greyish after holding on them but not clicking on them

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.57-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: Y
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause Internal Team
Action Performed:

Navigate to staging.new.expensify.com
Create a workspace
Enable expensify card
Assign a few cards
Go to workspace > Members
Open the member with the assigned card
Hold on one of the cards assigned and move your finger away from it not to open the card page

Expected Result:
The card option where the action on step 7 is performed on does not change text color (Same behavior as on mWeb)
Actual Result:
The card option where step 7 is performed on changes text color to be greyish which is different from the behavior on mWeb
Workaround:
Unknown
Platforms:

[x] Android: Standalone
[x] Android: HybridApp
[ ] Android: mWeb Chrome
[ ] iOS: Standalone
[ ] iOS: HybridApp
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/5a17d282-bf33-4684-9cc7-7906b98545fd

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~021856354701138472291
Upwork Job ID:<PHONE_NUMBER>138472291
Last Price Increase: 2024-11-12

Issue OwnerCurrent Issue Owner: @thesahindia

Gonna close, seems low value


New version: LesFerch.WinSetView version 2.80

Pull request has been created with Komac v1.11.0 :rocket:
Microsoft Reviewers: Open in CodeFlow

[Policy] Needs Attention

Great catch @Trenly.
@soredake, we don't allow scripts as entry points for portable packages by policy.

@soredake, we don't allow scripts as entry points for portable packages by policy.

Okay, i removed it, what's the reason for not allowing to alias a script?

It's primarily around testing and validation in terms of expected behaviors. Scripts are harder to analyze at runtime, and they might make changes to a user's system that aren't cleaned up during the uninstall process. There are plenty of opinions about what an installer could do as well, but installers are "easier" to test/scan/validate currently.  One of our WinGet tenets is to avoid scripting.
There are a number of qualities in AppGet that really helped us get to a better product direction for WinGet:

No scripts during install – something that we completely agreed with and don’t allow with MSIX
Rich manifest definition within GitHub – the power of being open combined with rich declarative meta data about the app is so important to meet goal #1
Support all types of Windows applications installers
Seamless updates for applications in the repository

and they might make changes to a user's system that aren't cleaned up during the uninstall process

.exe software can do this too.

Scripts are harder to analyze at runtime

I don't know, .exe are more dangerous than this .ps1 script (that will do nothing unless you supply .reg or .ini file that you need to create by using main program's .exe)

I totally get it. It's just a policy we currently have. I'm fully aware any executable code can perform essentially any arbitrary action.


Doc: Twister: Document Twister platform_allow behavior

This is related to: https://github.com/zephyrproject-rtos/zephyr/issues/57595
It doesn't fix the actual issue but document the behavior until the behavior is updated.

Knowing how the logic works I find this description confusing and possibly wrong.  I think it won't help in understanding the logic and can lead to faulty assumptions. IMO, without proper explanation the scope selection rules in one place the user will continue to ask the same questions.
Reading the description I am getting an understanding that platform_allow is directly related with determining the platform scope, but it is not. The point of platform_allow should by no means be used to tell twister where to run and using it in that way is wrong and dangerous. That's why I am against putting this description in platform_allow section.
Platform_allow is a filter. Platforms out of it will be skipped (filtered from the scope) when running twister. A user is suppose to tell twister which tests to run on which platforms. If platforms are not given, twister will try to guess the scope starting by picking a list of "default" platforms. Again, platform_allow will filter this list. If something's left, twister will run on not-filtered platforms. If there is nothing left, twister will pick all platforms from platform_allow as the scope.

@PerMac Could you suggest a better phrasing then?
The logic you described is very complicated. In practice, it behaved like what we saw with @theob-pro .
It seems you know more about this than us, so please make a suggestion for what to write in the documentation. Maybe with some examples?


SvelteKit SSR support for Navigation, Pagination and Autoplay

Swiper 6.7.1
Using Chrome on macOS Big Sur

Although Swiper has SvelteKit SSR instructions, it only works for basic usage – without Navigation, Pagination or Autoplay.
There are several issues about this since Dec'20 [#3961/#4404/#4574/#4590], but all of them failed to bring a minimal reproduction sandbox – so I am creating this issue in order to provide a bootstrap environment.

🛠 codesandbox.io/s/sveltekit-swiper-3dxrg

Expected Behavior
Navigation, Pagination and Autoplay working with SvelteKit SSR.
Actual Behavior
Swiper ignored Navigation, Pagination and Autoplay.
Have you tried...?
1. I tried to run SwiperCore.use() on client side, but nothing changes.
import { onMount } from 'svelte';
import { browser } from '$app/env';
import SwiperCore, { Autoplay, Pagination, Navigation } from 'swiper/core';

if (browser) {
   onMount(() => {
      SwiperCore.use([Autoplay, Pagination, Navigation]);

2. I installed swiper as dev dependency [as mentioned here] and tried to lazy load each component individually, but to be honest I have no clue if that's right.
let SwiperCore;
onMount(async () => {
   const module = await import('swiper/core');
   SwiperCore = module.default;

   const Autoplay = await import('swiper/components/autoplay');
   const Pagination = await import('swiper/components/pagination');
   const Navigation = await import('swiper/components/navigation');

   SwiperCore.use([Autoplay, Pagination, Navigation]);
});

Above approach works for svelte-carousel, as mentioned here.

I tried for days to get this running and finally have a work around that passes dev and build, but unfortunately without the Swiper Svelte components...

    {#each slides as slide}

    {/each}

@moritzebeling That's for your contribution 🙏
That's indeed a working solution that can be used right away.
Codesandbox: https://codesandbox.io/s/sveltekit-swiper-manual-container-hq46h


Going to create proper navbar

I am going to work on creating proper navbar along with responsiveness.

I'm not sure what you mean. Someone has already implemented a navbar, there was a fix pushed recently. Try updating your local copy.

@brittneypostma  When i cloned the latest code, the navbar logo was not proper, and navbar links doesn't have proper naming such as Teams, testimonial along with contact button doesn't have proper style as per design pattern, i just implemented it accordingly, I am attaching the changes screenshot for your reference.

Oh, I see what you mean. I will look at the pr.

@shubhdwiv12 plz link your PR. so that it can be merged else I will handle this issue.

@armedev  i am doing it in a few moment as I was in talk with @brittneypostma , request you to take another issue.


Passworded protected notes

Hi there,
Final feature idea from me: allowing for single use passwords on a note. Or even just a basic password protection function to protect your digital garden!
Cheers,
Jamie

I've been thinking about deploying my own version of the Quick Share Obsidian Plug in on my site so I can accomplish something like this. I can't say I would use it frequently enough right now, but I definitely like the idea.

Can you add the password protect feature?

This would be useful for sensitive information

I agree, this would be really helpful!

100% this would be amazing

Seems like this is possible on the hosting side? E.g. on Vercel https://vercel.com/docs/security/deployment-protection/methods-to-protect-deployments/password-protection

Seems like this is possible on the hosting side? E.g. on Vercel https://vercel.com/docs/security/deployment-protection/methods-to-protect-deployments/password-protection

In case it's handy to anyone, I've tested this in Netlify and it works well, no change of this repo needed. They require a basic paid tier (~$19/month). https://docs.netlify.com/security/secure-access-to-sites/site-protection/
[Vercel also supports it but asks for substantially more ($150/month)]

I would love that feature. I suggest to do it like publishkit (https://publishkit.dev/doc/plugins/core/password.html):

global password
directory password
file password

That would make the digital garden plugin perfect for my needs.


[New Post] Public speaking - is it for me

First in a 3 part series (I think).
Issue around this post here: https://github.com/artsy/mobile/issues/76
Would like to 🚢 so let me know what y'all think!

Great post :100: :+1:

Thank you! ^__^

Wonderful! I think it's 💯


Bug in Style/FrozenStringLiteralComment where comment can exist anywhere in file

Looking at this history of the Style/FrozenStringLiteralComment cop it looks like it:

originally only checked the first three lines of source: https://github.com/rubocop-hq/rubocop/blob/58f2f8d37b733436bbc6cfa49594828699825de2/lib/rubocop/cop/mixin/frozen_string_literal.rb#L37
was updated to check the first three comments but still looked at the LOC to see it was within the first three: https://github.com/rubocop-hq/rubocop/blob/75eb10738e356121bcf5dc6ce54d0ba45cd1e595/lib/rubocop/cop/mixin/frozen_string_literal.rb#L42-L50
then was updated to simply check the first three comments (to handle cases where comments were separated by newlines): https://github.com/rubocop-hq/rubocop/commit/8c792d1349e7cdf383ebde08b00c83363d52db05

frozen_string_literal actually must appear before any code. Here's an example that should raise an exception at runtime but doesn't:
1 + 2
# frozen_string_literal: true

K = "foo"
K.slice!(4)

However, since the cop is checking the first three comments they can appear anywhere in the source. For example, according to the cop these are OK:
class Something
end

# frozen_string_literal: true

# One

class Something
  # Two
end

# frozen_string_literal: true

This is actually invalid but "accidentally" because the cop has logic about this needing to be one of the first three comments:
# One

class Something
  # Two
end

# Three
# frozen_string_literal: true

There's actually nothing special about the first three lines/comments either. This should be valid as well:
# something else that's important
# I love comments
# comments commenty comments
# Oh boy, more comments

# frozen_string_literal: true
q = 1 + 2
K = "foo"
K.slice!(4)

The reason this cop cares about "first three" is because it has special logic dealing with the shebang and encoding comments.

Expected behavior
This cop would enforce the string literal comment is somewhere in the leading comments (i.e. comments appearing before any ruby code), not necessarily just the first three.
Actual behavior
The cop checks the first three comments in source, regardless of their location in the file
Steps to reproduce the problem
See test cases above.
RuboCop version
$ [bundle exec] rubocop -V
0.82.0 (using Parser <IP_ADDRESS>, running on ruby 2.5.1 x86_64-linux)

Consider a executable ruby file with Unix shebang
would it be
#!/usr/bin/env ruby
# frozen_string_literal: true

or
# frozen_string_literal: true
#!/usr/bin/env ruby

Shebang would always have to be on the first line.
% cat example1.rb
#!/usr/bin/env ruby
# frozen_string_literal: true
p 'str'.frozen?

% example1.rb
true

% cat example2.rb
# frozen_string_literal: true
#!/usr/bin/env ruby
p 'str'.frozen?

% example2.rb
example2.rb: line 3: p: command not found

See also: https://docs.rubocop.org/en/stable/cops_lint/#lintorderedmagiccomments

Fixed in #7939 🙂


make tf14-upgrade

what
tf14 upgrade
why
old version of context label provider

/test all

/terraform-fmt

/terraform-fmt

/test all

/test all


Add proxy

just describe in this https://github.com/bgilmore/mustaine/issues/6
@bgilmore

Closing defunct PRs on unmaintained project. Sorry for the noise!


Include all cursor methods in cursor interface

This extends the common cursor interface introduced in #209 to include all methods currently available in the cursor. This makes the Cursor and EagerCursor more interchangeable in ODM, allowing us to plug both classes into ODM\Cursor once that has been adapted.
The hasNext and getNext methods have to be simulated by advancing and rewinding the array pointer as well as checking if the cursor has started iterating.

:+1:

LGTM.


envFrom not working in Lifecycle hooks

Describe the bug
When creating a lifecycle hook using the Recreate deploy strategy and a envFrom is used in the execNewPod hook type, the values are not picked up when the hook pod is deployed.
Version
oc v3.10.127
kubernetes v1.10.0+b81c8f8
features: Basic-Auth
Server https://openshift
openshift v3.11.188
kubernetes v1.11.0+d4cacc0
How reproducible
100% - the envFrom is not picked up at all.
Log bundle
N/A
    strategy:
      type: Recreate
      recreateParams:
        mid:
          failurePolicy: Abort
          execNewPod:
            command:
            - /bin/sh
            - '-c'
            - >-
              cd /app &&
              /usr/bin/dotnet Test.dll arg1
            containerName: Test
            env:
            - name: ASPNETCORE_ENVIRONMENT
              value: Production
            envFrom:
              - secretRef:
                name: TestSecret
            volumes:
              - data

Thank you for the reported problem.
This repo is tracking issues for OKD4. Please file a new issue at https://github.com/openshift/origin instead

Woops! Sorry. I moved it. Thanks!


LRN only supports 4D tensors, remove it from alter_op_layout

LRN only supports 4D tensors, so we shouldn't propogate novel layouts through it. This change fixes crashes with a number of models in the ONNX Model Zoo that use LRN.
@merrymercy Git blame says you wrote this line 17 months ago, mind reviewing? Thanks!

@merrymercy if you can review this change by the end of the day thanks!


add move to cell above/below option in the cell menu

Description

Suggested solution
In the cell menu, add 2 options, move to cell above and move to cell below,
enter the other cell's name and move the current cell to corresponding position.
Alternative
No response
Additional context
No response

This is an interesting idea. most cells don't have names and i am not sure how often people name them today.
Alternative:
We could also allow this for headers maybe: Move to section and we list h1s and/or h2s. And rather than typing the name, we just put all H1/H2s in a submenu. We would need to figure out a mapping of section back to the cell (which we probably have in some way)


Published Projects using this are failing after updating to this version.

Pretty sure the problem is the build configuration
TensorFlow.NET.sln
Release|x86.ActiveCfg = Release|Any CPU
^                                           ^
The x86 files are not included in any published version of the project. The builds are also targeting the wrong platforms in the source code when I downloaded it to figure out why 1 out of 6 bin versions of my project worked but no other would. I'm no expert by any means but I think It just needs the x86 platforms added to the x86 build instead of the anycpu so it will include the files.
Also I downloaded the source code to see if I could figure out what was going on and noticed on some build versions the  setting is targeting the wrong variation in the project package. Currently I've discovered specifically targeting x64 project builds work fine when published as long as the prefer 32(x86) is not set. However I don't think any x86 projects are working for anyone who selected check here for dependencies in Visual Studio Click Once Publishing.

I'm late for this issue. Does the problem still exist now?


Add '/conditions-not-met' endpoint

Context
This allows the provider to update the application if a candidate has not met their conditions.
Changes proposed in this pull request
I've added an endpoint, and updated the docs.
Guidance to review
Try it out!
Link to Trello card
https://trello.com/c/tWbLQVZp

@mnacos good catch - updated!


Add LTS release status to What's New doc

Add v2.2 LTS release status to What's New doc.
Signed-off-by: David Enyeart<EMAIL_ADDRESS>

lgtm

@Mergifyio backport release-2.2


Messages might be delivered to wrong destinations

I found a nasty bug which shows up on a system under heavy load. The shortest program I could come up with to reproduce it is the following. It sets up a request/response scenario, sending constantly requests from 75 threads, and checking whether the responses correspond to the requests:
namespace MassTransit.Stresstest
{
	using System;
	using System.Collections.Generic;
	using System.Threading;
	using System.Threading.Tasks;
	using BusConfigurators;

	class Program
	{
		private const int Threads = 75;
		private static readonly TimeSpan Duration = TimeSpan.FromSeconds(600);
		internal static DateTime mStartTime;

		static void Main(string[] args)
		{
			int workerThreads, complete;
			ThreadPool.GetMinThreads(out workerThreads, out complete);
			ThreadPool.SetMinThreads(Threads + 20, complete);

			var responderBus = ServiceBusFactory.New(sbc =>
			{
				BasicBusConfiguration(sbc, "res");
				sbc.Subscribe(subs => subs.Handler<Request>((cxt, msg) => cxt.Respond(new Response { CorrelationId = msg.CorrelationId })));
			});

			var requestorBus =
				ServiceBusFactory.New(sbc => BasicBusConfiguration(sbc, "req"));

			var senders = new List<Task>();

			mStartTime = DateTime.Now;
			var endTime = mStartTime.Add(Duration);
			for (var i = 0; i < Threads; i++)
			{
				senders.Add(Task.Factory.StartNew(() => StartSender(endTime, requestorBus)));
				Console.WriteLine("Started: " + i);
			}

			Task.WaitAll(senders.ToArray());
			responderBus.Dispose();
			requestorBus.Dispose();
		}

		static void BasicBusConfiguration(ServiceBusConfigurator sbc, string queue)
		{
			var uriString = "rabbitmq://localhost:5672/" + queue + "?temporary=true";
			sbc.UseRabbitMq(r => r.ConfigureHost(new Uri(uriString), h =>
			{
				h.SetUsername("guest");
				h.SetPassword("guest");
			}));
			sbc.ReceiveFrom(uriString);
		}

		static void StartSender(DateTime endTime, IServiceBus requestorBus)
		{
			while (DateTime.Now.CompareTo(endTime) < 0)
			{
				var nextMessage = Request.Next();
				requestorBus.PublishRequest(nextMessage, x =>
				{
					x.Handle<Response>(msg =>
					{
						if (nextMessage.CorrelationId != msg.CorrelationId)
						{
							var errorMesssage = String.Format("\nMessage have different value. Expected: {0}, Actual: {1}\t{2}", nextMessage.CorrelationId,
								msg.CorrelationId, TimeSinceStart());
							Console.WriteLine(errorMesssage);
						}
					});
				});
			}
		}

		internal static TimeSpan TimeSinceStart()
		{
			return DateTime.Now.Subtract(mStartTime);
		}
	}

	[Serializable]
	public class Request : CorrelatedBy<int>
	{
		private const int DotFrequency = 2000;
		static int _current;
		public int CorrelationId { get; set; }

		public static Request Next()
		{
			var next = Interlocked.Increment(ref _current);
			if (next%DotFrequency == 0)
			{
				Console.Write(".");
				if (next%(50*DotFrequency) == 0)
				{
					Console.WriteLine(Program.TimeSinceStart());
				}
			}
			return new Request {CorrelationId = next};
		}
	}

	[Serializable]
	public class Response : CorrelatedBy<int>
	{
		public int CorrelationId { get; set; }
	}
}

When running this program, I expect to see rows of dots, with time stamps at the end. And nothing else. But a typical output of a run looks like this (on my computer):
[...]
Started: 71
Started: 72
Started: 73
Started: 74
....................................
Message have different value. Expected: 72585, Actual: 72584    00:00:21.8861192
..............00:00:29.9238754
...........
Message have different value. Expected: 122226, Actual: 122227  00:00:36.5152358
.......................................00:00:59.4654291
..................
Message have different value. Expected: 236076, Actual: 236079  00:01:10.0937530
................................00:01:28.8709918
..................................................00:01:58.4347071
..................................................00:02:27.9363625
...........................................
Message have different value. Expected: 585939, Actual: 585938  00:02:53.4531479
.......00:02:57.5751515
..................................................00:03:27.2830068
..................................................00:03:57.1410084
..................................................00:04:27.0630722
..................................................00:04:56.8560105
..................................................00:05:26.6349350
..................................................00:05:56.8032379
...................
Message have different value. Expected: 1238632, Actual: 1238633        00:06:08.2903955
...............................00:06:26.4170022
..................................................00:06:56.1058394
..................................................00:07:26.4282921
..................................................00:07:56.1411523
..........................
Message have different value. Expected: 1652766, Actual: 1652765        00:08:11.7282926
........................00:08:25.6758399
..................................................00:08:55.3366501
.................................................
Message have different value. Expected: 1898927, Actual: 1898926        00:09:24.5310069

Message have different value. Expected: 1898926, Actual: 1898927        00:09:24.5310069
.00:09:24.8272944
..................................................00:09:55.3660423
.......

It works also with fewer threads, but the issues come more and more infrequent. Adding threads seems not to help, though.
For convenience, I pushed this program to my fork of Masstransit (https://github.com/sitago/MassTransit/tree/requestResponseSync). It is probably best to use this fork, because it also contains two bug fixes (https://github.com/MassTransit/MassTransit/pull/263). At least the first of these bugs will probably otherwise show up when running the program above.
I tried a bit to track this problem down, but with no success up to now. Maybe a more experienced MassTransit developer is needed.

So I ran your code and saw one request/response that were swapped. I can't for the life of me see why this happens based on reading the code.

Debugging with Intellitrace and it doesn't fail. Probably not going fast enough. Ugh.

I've also debugged this one for about two days to no avail. Our new product using the bus won't come out before summer, but we are unsure whether we can go live knowing this bug. Of course it is way more unlikely to see this happen on a bus with real traffic, than in this example. But the documents sent over our bus are quite sensible - delivering one to the wrong destination could easily result in a damage in the millions. Though, the documenats are of course all encrypted, so that the wrong addresee might not be able to use it. Still, it would not be nice. All in all, I would be very greatful if this could be fixed.
Regarding Intellitrace: It might help to have a real powerful machine. Maybe with 64 cores and more than 75 threads the bug will reproduce some orders of magnitude faster. So, if you can get access to such a machine for some hours, it might help.

I can get a dual CPU hexacore box (24 hyperthreaded CPUs) and try it with Intellitrace to see what's going on.

I'd be curious if MT3 shows the same behavior, it's different in how it manages request correlation.

So it's the NewId generator under heavy thread load that's creating duplicate requestids. Which should not happen. Investigating.

Stupid. Bug. Fixing, will be in 2.9.10.

That's great, thanks a lot!!


Missing aspects the policy will honor

Under remarks there is a line saying
The retry policy will honor the following aspect:
*
*
*
The bullet list with the aspects it will honor is blank
Thanks
diego

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

ID: 75652f4c-d360-24f6-c3a9-bab9030c6d3e
Version Independent ID: e9b0ab11-34f7-c2f2-aea0-2a3f33a6743b
Content: RetryExponential Class (Microsoft.ServiceBus) - Azure for .NET Developers
Content Source: xml/Microsoft.ServiceBus/RetryExponential.xml
Service: service-bus-messaging
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

@zitzerd Apologies for the late reply. Since that is an older version of the SDK, we are checking on the feasibility of the docs fix. I would recommend to use Azure.Messaging.ServiceBus SDK.
In the meantime, I am sending you the missing retry details this github thread. Hope this helps.
The retry policy will honor the following aspect:

The policy always honor the Microsoft.ServiceBus.Messaging.ClientEntity.OperationTimeout property so that retry will terminate if the next retry interval will exceed the operation time.

The policy only retry when Microsoft.ServiceBus.Messaging.MessagingException.IsTransient is true.

The policy should delay further by an additional 10 seconds if exception is a Microsoft.ServiceBus.Messaging.ServerBusyException.

Please let me know if you have any follow-up questions.

Hi! Thank you!
Diego
Get Outlook for iOShttps://aka.ms/o0ukef

From: navba-MSFT @.>
Sent: Monday, March 21, 2022 3:59:39 AM
To: Azure/azure-sdk-for-net @.>
Cc: Diego ZItzer @.>; Mention @.>
Subject: Re: [Azure/azure-sdk-for-net] Missing aspects the policy will honor (Issue #27615)
@zitzerdhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fzitzerd&data=04|01||be9bbcc2e4604ce0312808da0b085e48|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637834427850376997|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=emvBCwyYsvtAkBGZnEFMwVy1olIIDnO5A7q5nsIOJ3E%3D&reserved=0 Apologies for the late reply. Since that is an older version of the SDK, we are checking on the feasibility of the docs fix. I would recommend to use Azure.Messaging.ServiceBushttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fdotnet%2Fapi%2Fazure.messaging.servicebus%3Fview%3Dazure-dotnet&data=04|01||be9bbcc2e4604ce0312808da0b085e48|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637834427850376997|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=02Zjdk8iReYGSChve02LO09G7YpZBOL3zSsacyWP9uw%3D&reserved=0 SDK.
In the meantime, I am sending you the missing retry details this github thread. Hope this helps.
The retry policy will honor the following aspect:

The policy always honor the Microsoft.ServiceBus.Messaging.ClientEntity.OperationTimeouthttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fdotnet%2Fapi%2Fmicrosoft.azure.servicebus.cliententity.operationtimeout%3Fview%3Dazure-dotnet%23microsoft-azure-servicebus-cliententity-operationtimeout&data=04|01||be9bbcc2e4604ce0312808da0b085e48|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637834427850376997|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=xMLMlD8x65WK0EZxmaB47zW2zlCPPDwfLnF7%2BfKMxHg%3D&reserved=0 property so that retry will terminate if the next retry interval will exceed the operation time.

The policy only retry when Microsoft.ServiceBus.Messaging.MessagingException.IsTransienthttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fdotnet%2Fapi%2Fmicrosoft.servicebus.messaging.messagingexception.istransient%3Fview%3Dazure-dotnet&data=04|01||be9bbcc2e4604ce0312808da0b085e48|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637834427850376997|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=3KzoZQS9tUD6D63j%2FmJOTWiwOoZ%2BDaLI15pGTkJAvMU%3D&reserved=0 is true.

The policy should delay further by an additional 10 seconds if exception is a Microsoft.ServiceBus.Messaging.ServerBusyExceptionhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fdotnet%2Fapi%2Fmicrosoft.servicebus.messaging.serverbusyexception%3Fview%3Dazure-dotnet&data=04|01||be9bbcc2e4604ce0312808da0b085e48|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637834427850376997|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=TzNBgqBs%2B9YVMMHCCdKHKhNnE%2BcG9yQm7WK9F5SHJBk%3D&reserved=0.

Please let me know if you have any follow-up questions.
—
Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAzure%2Fazure-sdk-for-net%2Fissues%2F27615%23issuecomment-1073535037&data=04|01||be9bbcc2e4604ce0312808da0b085e48|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637834427850376997|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=uokdzDaBo0SBEJJ8HaxE%2BJ2WX0RwSriJptAmgSvQhOA%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FACBL2IM3JLI3QDNCLHMDG3LVBAM5XANCNFSM5Q77AYMQ&data=04|01||be9bbcc2e4604ce0312808da0b085e48|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637834427850376997|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=Z5dZ7rpvMT3p8mBO3VkvOSymKhMfxKME6mh5adF%2FIDM%3D&reserved=0.
Triage notifications on the go with GitHub Mobile for iOShttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04|01||be9bbcc2e4604ce0312808da0b085e48|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637834427850376997|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=bSuBmYVeWL46wgxTy%2BXv7bDO0SxCTx4z2z8USP5Ugao%3D&reserved=0 or Androidhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04|01||be9bbcc2e4604ce0312808da0b085e48|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637834427850376997|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=gG3Vpfu1P28ymSgt3j7yuXP2IBJNL%2FYgpmWTlsI8A30%3D&reserved=0.
You are receiving this because you were mentioned.Message ID: @.***>

@zitzerd Thanks for your reply. Please let me know if you need any further assistance on this or we can proceed with the archival.

@zitzerd I have got a confirmation from the Product Owners that since “WindowsAzure.ServiceBus” is our old SDK, they have no plans to enhance it any further (critical bug fixes only). So the docs are unlikely to be updated. To answer your question related to the retry policy aspects I have shared it in my above comments. Our recommendation is to use Azure.Messaging.ServiceBus SDK. The same has been suggested here too.
With that, I am proceeding with the closure of this issue. If you need any further assistance in future, please feel free to reopen this github thread.


[SMALLFIX] Making use of MasterContext.getConf() in the master code

This PR replaces the use of private members that store the Tachyon configuration in the master code with the use of MasterContext.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/Tachyon-Pull-Request-Builder/5079/
Test PASSed.

LGTM


Camera Streams Failing

I’ve been setting this up to work with a Samsung Galaxy Tab A7. Looks great on the tablet.
I have 6 cameras, 1 is 1080p and 5 are 4MP. All the cameras are connected to HA via Frigate and work fine in lovelace.
The screenshots load in just fine and refresh as expected but on the tablet using Chrome or Fully Kiosk I can’t see the stream, i just get a black box. The 1080p camera with identical settings works perfectly. When I load it in Firefox it works fine. Also if I use Chrome on my PC they all load fine.
Any idea where to head with that?
Config is pretty simple:
position: [0, 0],
id: 'camera.frontyard',
type: TYPES.CAMERA,
bgSize: 'cover',
width: 4,
height: 2,
state: false, // disable state element
fullscreen: {
type: TYPES.CAMERA_STREAM,
id: 'camera.frontyard',
objFit: 'contain',
bufferLength: 5
},
refresh: 1500

Worked out its a samsung chipset issue.


Add option to remove client

Hi,
We have an idea to add feature for removing clients, as we do it quite often manually.
So, we will be happy if it become possible with that cli.

I will try to create pull request for that issue

If you are going for a PR, please implement as "Full Managed".
See: https://github.com/adorsys/keycloak-config-cli/blob/master/docs/MANAGED.md

Hi @jkroepke,
Can I ask you why there are many attributes which has 256 chars, when in schema they should be 255 ?
And if you have any suggestion, why this error appears me (also in clean master) ?
Thanks a lot,
Artem

Could u please explain which error do you mean?


conformance: Kong Kubernetes Ingress Controller report for v1.0.0

What type of PR is this?
/kind documentation
/area conformance

What this PR does / why we need it:
Adds Kong Kubernetes Ingress Controller conformance report for v1.0.0.
Does this PR introduce a user-facing change?:

NONE

Thanks @programmer04!
/approve
/lgtm


[SPARK-27194][SPARK-29302][SQL] Fix commit collision in dynamic partition overwrite mode

What changes were proposed in this pull request?

When using dynamic partition overwrite, each task has its working dir under staging dir like stagingDir/.spark-staging-{jobId}, each task commits to stagingDir/.spark-staging-{jobId}/{partitionId}/part-{taskId}-{jobId}{ext}.
When speculation enable, multiple task attempts would be setup for one task, they have same task id and they would commit to same file concurrently. Due to host done or node preemption, the partly-committed files aren't cleaned up, a FileAlreadyExistsException would be raised in this situation, resulting in job failure.
I don't try to change task commit process for dynamic partition overwrite, like adding attempt id to task working dir for each attempts and committing to final output dir via a new outputCommitCoordinator, here is reason:

FileOutputCommitter already has commit coordinator for each task attempts, we can leverage it rather than build a new one.
To say the least, we implement a coordinator solving task attempts commit conflict, suppose a severe case, application master failover, tasks with same attempt id and same task id would commit to same files, the FileAlreadyExistsException risk still exists

In this pr, I leverage FileOutputCommitter to solve the problem:

when initing a write job description, set stagingDir/.spark-staging-{jobId} as the output dir
each task attempt writes output to stagingDir/.spark-staging-{jobId}/_temporary/${appAttemptId}/_temporary/${taskAttemptId}/{partitionId}/part-{taskId}-{jobId}{ext}
leverage FileOutputCommitter coordinator, write job firstly commits output to stagingDir/.spark-staging-{jobId}/{partitionId}
for dynamic partition overwrite, write job finally move stagingDir/.spark-staging-{jobId}/{partitionId} to finalPath/{partitionId}

Why are the changes needed?

Without this pr, dynamic partition overwrite would fail
Does this PR introduce any user-facing change?

No.
How was this patch tested?

added UT.

Can one of the admins verify this patch?

gentle ping @cloud-fan @dongjoon-hyun @xuanyuanking @turboFei @LuciferYang @advancedxy
plz have a review, thx

Can one of the admins verify this patch?

ok to test

Test build #124977 has started for PR 29000 at commit a4d99d0.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/29583/
Test PASSed.

Test build #124977 has finished for PR 29000 at commit a4d99d0.

This patch fails build dependency tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/124977/
Test FAILed.

Test build #124990 has started for PR 29000 at commit 6921f22.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/29597/
Test PASSed.

Test build #124990 has finished for PR 29000 at commit 6921f22.

This patch fails build dependency tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/124990/
Test FAILed.

Test build #125006 has started for PR 29000 at commit 9b4f8f3.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/29613/
Test PASSed.

Test build #125006 has finished for PR 29000 at commit 9b4f8f3.

This patch fails build dependency tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/125006/
Test FAILed.

···
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install (default-cli) on project spark-parent_2.12: ArtifactInstallerException: Failed to install metadata org.apache.spark:spark-parent_2.12/maven-metadata.xml: Could not parse metadata /home/jenkins/.m2/repository/org/apache/spark/spark-parent_2.12/maven-metadata-local.xml: in epilog non whitespace content is not allowed but got t (position: END_TAG seen ...\nt... @26:2) -> [Help 1]
···
Is there any problem of CI environment @dongjoon-hyun

Just left some comments.
This PR did resolve the issue, it also involve some costs.
In this pr, for dynamic partition overwrite mode.
Each task might create multi partition path under a unique task attempt output path.
In fact, Dynamic partition overwrite always cause too many small files if user does not repartition by dynamic partition columns.
So, I am afraid that this pr might cause lots of directories during runtime.
I prefer #28989, in this PR, I define a Spark staging output committer based on the current implementation of HadoopMapReduceCommitProtocol.

@turboFei  Thanks for your comments. Actually I think there is no partition-explosion cost. Commit task output dir is generated by FileFormatDataWriter.newOutputWriter, no matter the task is static-partitioned or dynamic-partitioned, one commit task only deal with one partition dir.

Thanks for your reply @WinkerDu
I am wrong about that, In #28989 I thought the taskAttemptContext.getTaskAttemptId.getId is same with the taskAttemptId of spark and it would at most create several(the largest task attempt number) staging partition dir.
But the  taskAttemptContext.getTaskAttemptId.getId is also a uniq id, so #28989 would also create multi staging partition dir for each task. I will close that PR.

Thanks for your reply @turboFei
Gentle ping @dongjoon-hyun @cloud-fan @xuanyuanking to review this pr, thank you

ok to test

Test build #125501 has started for PR 29000 at commit 9b4f8f3.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/30117/
Test PASSed.

Test build #125501 has finished for PR 29000 at commit 9b4f8f3.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/125501/
Test FAILed.

retest this please @cloud-fan @dongjoon-hyun

gentle ping @cloud-fan @dongjoon-hyun @SparkQA  to retest this pr

gentle ping @cloud-fan @dongjoon-hyun @SparkQA to retest this pr

You can push a new commit(like two commits, the second one revert the first one)  to trigger jenkins job.

You can push a new commit(like two commits, the second one revert the first one) to trigger jenkins job.

thanks for your advice, will try it :)

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/30649/
Test PASSed.

Test build #126035 has started for PR 29000 at commit 4766830.

Test build #126035 has finished for PR 29000 at commit 4766830.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/126035/
Test PASSed.

gentle ping @dongjoon-hyun @cloud-fan @xuanyuanking to review this pr :)

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/31239/
Test PASSed.

Test build #126618 has started for PR 29000 at commit 2e3d03c.

Test build #126618 has finished for PR 29000 at commit 2e3d03c.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/126618/
Test FAILed.

Test build #126621 has started for PR 29000 at commit 84b7093.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/31242/
Test PASSed.

Test build #126621 has finished for PR 29000 at commit 84b7093.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/126621/
Test FAILed.

Test build #126629 has started for PR 29000 at commit 5865f51.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/31250/
Test PASSed.

Test build #126629 has finished for PR 29000 at commit 5865f51.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/126629/
Test FAILed.

Merged build finished. Test FAILed.

Test build #126639 has started for PR 29000 at commit e3dc26b.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/31260/
Test PASSed.

Sorry for mistake of pushing unexpected branch to repo.
At present, I close this pr, newest update and pr please check this out #29260

Test build #126639 has finished for PR 29000 at commit e3dc26b.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/126639/
Test PASSed.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

cc @Ngone51 for taking a look.

Gentle ping @Ngone51 for further review, thanks :)

Gentle ping @Ngone51 for further review, thanks

@Ngone51  Sorry for late update, please have a further review, thanks :)

@Ngone51  Could you please review it again ？

ping @cloud-fan @xuanyuanking for further review, thanks ~

gentle ping @Ngone51 for further review, or involving other committer to review this patch, thanks :)

LGTM, cc @cloud-fan @xuanyuanking @turboFei

Thanks @Ngone51 , gentle ping @cloud-fan @xuanyuanking for further review

Gentle ping @cloud-fan  for further review

gentle ping @xuanyuanking @tgravescs for further review, thx

@dongjoon-hyun Can you help to find a member for further review?  it seems that this pr is a bug fix, although it is for DataSourceV1. Thx ~

@HyukjinKwon Can you give further review or help to find a member for further review, thx : )

Some high-level questions:

Is it only to fix FileAlreadyExistsException? AFAIK the builtin Spark file source doesn't support concurrent writes, not even for non-partitioned tables. If there are two jobs writing to the same table, the result is non-deterministic.
Can you elaborate on your fix? Where does each task commit to? You only mentioned they write to outputPath/.spark-staging-{jobId}/_temporary/${appAttemptId}/_temporary/${taskAttemptId}/{partitionId}/part-{taskId}-{jobId}{ext}
Seems this fix relies on FileOutputCommitter to write data to outputPath/.spark-staging-{jobId}, and Spark does the final move action. Can you explain more on how FileOutputCommitter works internally? To convince people that this fixes the problem.

Thank you for the reply @cloud-fan

Is it only to fix FileAlreadyExistsException? AFAIK the builtin Spark file source doesn't support concurrent writes, not even for non-partitioned tables. If there are two jobs writing to the same table, the result is non-deterministic.

Yes, this pr is to fix FileAlreadyExistsException for dynamicPartitionOverwrite mode. Although the result of two jobs writing to the same table is non-deterministic, I think the result of one task writing should be deterministic, even the task has multiple attempts.
With this pr, multiple attempts belonging to one task share same output path, like jobOutputPath/.spark-staging-{jobId}/a/b/. Suppose Attempt 1 and Attempt 2 both want to write jobOutputPath/.spark-staging-{jobId}/a/b/part-00000, in condition of radical speculative policy or host done, attempt 1 has partly committed the part file, FileAlreadyExistsException would be raised when attempt 2 runs at that time. So we can only disable speculative execution in production environment when using dynamicPartitionOverwrite mode.

Can you elaborate on your fix? Where does each task commit to? You only mentioned they write to outputPath/.spark-staging-{jobId}/_temporary/${appAttemptId}/_temporary/${taskAttemptId}/{partitionId}/part-{taskId}-{jobId}{ext}

I have elaborated how commit conducts with the pr: https://github.com/WinkerDu/spark/blob/master-fix-dynamic-partition-multi-commit/core/src/main/scala/org/apache/spark/internal/io/HadoopMapReduceCommitProtocol.scala#L43
 * @param dynamicPartitionOverwrite If true, Spark will overwrite partition directories at runtime
 *                                  dynamically, i.e., we first write files to task attempt paths
 *                                  under a staging directory, e.g.
 *                                  /path/to/outputPath/.spark-staging-{jobId}/_temporary/
 *                                  {appAttemptId}/_temporary/{taskAttemptId}/a=1/b=1/xxx.parquet.
 *                                  1. When [[FileOutputCommitter]] algorithm version set to 1,
 *                                  we firstly move files from task attempt paths to
 *                                  /path/to/outputPath/.spark-staging-{jobId}/a=1/b=1,
 *                                  then move them to /path/to/outputPath/a=1/b=1
 *                                  2. When [[FileOutputCommitter]] algorithm version set to 2,
 *                                  committing tasks directly move files to
 *                                  /path/to/outputPath/.spark-staging-{jobId}/a=1/b=1,
 *                                  then move them to /path/to/outputPath/a=1/b=1 at the end of job
 *                                  committing.

/path/to/outputPath/.spark-staging-{jobId} is output path of FileOutputCommitter, which is a intermediatePath.  /path/to/outputPath/a=1/b=1 is the output path of SQLHadoopMapReduceCommitProtocol, that is the finalPath

Seems this fix relies on FileOutputCommitter to write data to outputPath/.spark-staging-{jobId}, and Spark does the final move action. Can you explain more on how FileOutputCommitter works internally? To convince people that this fixes the problem.

I think the comment already explain this question:  https://github.com/WinkerDu/spark/blob/master-fix-dynamic-partition-multi-commit/core/src/main/scala/org/apache/spark/internal/io/HadoopMapReduceCommitProtocol.scala#L43

ok to test

Test build #131350 has started for PR 29000 at commit 85aa12a.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/35954/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/35954/

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/35954/
Test FAILed.

Test build #131350 has finished for PR 29000 at commit 85aa12a.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/131350/
Test FAILed.

Test build #131363 has started for PR 29000 at commit 6efba79.

Test build #131368 has started for PR 29000 at commit b50ca37.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/35967/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/35967/

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/35967/
Test FAILed.

Test build #131363 has finished for PR 29000 at commit 6efba79.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/35972/

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/131363/
Test FAILed.

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/35972/

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/35972/
Test FAILed.

Test build #131368 has finished for PR 29000 at commit b50ca37.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/131368/
Test FAILed.

Test build #131552 has started for PR 29000 at commit b50ca37.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36155/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36155/

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/36155/
Test FAILed.

Test build #131560 has started for PR 29000 at commit 0d57d92.

Test build #131552 has finished for PR 29000 at commit b50ca37.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/131552/
Test PASSed.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36162/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/36162/

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/36162/
Test PASSed.

Test build #131560 has finished for PR 29000 at commit 0d57d92.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/131560/
Test FAILed.

Test build #131607 has started for PR 29000 at commit 0d57d92.

Test build #131607 has finished for PR 29000 at commit 0d57d92.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/131607/

Test build #131634 has started for PR 29000 at commit 45f8ea5.

Build finished.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/36208/

Test build #131634 has finished for PR 29000 at commit 45f8ea5.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Build finished.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/131634/

Build finished.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/36235/

Test build #131682 has started for PR 29000 at commit 85aa12a.

Test build #131682 has finished for PR 29000 at commit 85aa12a.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Build finished.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/131682/

Build finished.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/36282/

GA passed, merging to master!

@WinkerDu do you have a JIRA account?

@cloud-fan yes, I have a JIRA account named 'duripeng'

thank all for patch review!

Congrats on your first contribution, Ripeng! :)

Congrats on your first contribution, Ripeng! :) +1


Is tawernAI still maintained

Is tawern ai still maintained? Last update to release has been in november, also i saw another issue suggesting that it is not compatible with new oobabooga. Also in tawern ai there seams to be no option to start a new chat which in my opinion is really important for an ai chat app like that. I like working with tawern ai much more then with silly tawern since i am screenreader user and compared to tawern ai silly tawerns interface is a clusterfuck.

Version numbers only change when major things are added changesd... but the repo is constantly being updated/tweaked...  Install git or GHD and keep your local clone synced with the repo o always stay fresh...

Another thing. As i mentioned before there does not seam to be an option to start a new chat. Is this really the case or am i overseeing something?

Another thing. As i mentioned before there does not seam to be an option to start a new chat. Is this really the case or am i overseeing something?

2:

1: Yep!

https://discord.gg/zmK2gmr45t  Hop on discord if you need more help with setting up your local install to clone the repo

Can't deal with images since as i said, i am a screenreader user. But thanks for the discord link.