Bound in-memory

Here's a first whack at fixing #1528 .
A few comments:

Here's a before and after of memory usage:

If I recall correctly, this is a run with 200,000 spans stored.  You can see in the non-bounded case, that the JVM hits the heap limit, then thrashes desperately (the flatline) before dying.  In the second picture, you can see the heap usage increase until it hits the max-span limit and old spans start getting purged.

I set the default number of spans to be 500,000.  This requires about 600MB.  I don't know if this is the right default or not.

I'm open to refactoring the code to create better interfaces, but here's what I did for now.  I did three commits for ease of understanding.  The first adds a StorageMetrics interface so that the number of actual spans retained can be shown (as opposed to the CollectorMetrics, which shows the number of spans received).  The second adds the InMemorySpanConsumer.purge() method, along with tests and metrics for it, but doesn't actually enforce a max span size.  The third and final commit wires all that up.

I added a max(long, long) method temporarily until I can figure out how to make Long.max(long, long) acceptable to animal-sniffer.

I had to add two purgeTraceIdTimeStamps() methods since I haven't figured out how to get access to the values of serviceToTraceIdTimeStamp as an ordered set, like I was able to for traceIdTimeStamps.  Because I can't access the values in order, I can't break out early when looping like for data to purge.  This causes the performance show in the next point:

I've tested up to 1 million spans.  When adding spans, the response time is 2-3 ms until we hit the limit and need to start purging.  At this point, the response time becomes ~150 ms.  This is not unbearably slow but I think will improve once 5) gets fixed.

Just made a change to speed up the purge.  With commit e0b6af5, a purge of old spans with 1 million spans in-memory goes from ~150 ms to 5 ms.

I fixed the issue with Long.max() not being available in Java 1.7, and fixed a warning about a missing "@Override".

playing a little here, I think a couple things might help simplify or at least strangle the nasty parts to one place.
Consider doing the eviction up-front. This is a little nicer I think that afterwards, especially if the input is impossible.
  final StorageAdapters.SpanConsumer spanConsumer = new StorageAdapters.SpanConsumer() {
     @Override public void accept(List<Span> spans) {
+      int delta = spans.size();
+      int spansToRecover = (traceIdToSpans.size() + delta) - maxSpanCount;
+      evictToRecoverSpans(spansToRecover);
+
       for (Span span : spans) {
         Long timestamp = guessTimestamp(span);
         Pair<Long> traceIdTimeStamp =
@@ -83,6 +88,17 @@ public final class InMemorySpanStore implements SpanStore {
     }
   };

Adding size to multimap looks something like this... (one distracting bugfix in there..)
+    int size() {
+      return size;
+    }
+
     void put(K key, V value) {
       Collection<V> valueContainer = delegate.get(key);
       if (valueContainer == null) {
         synchronized (delegate) {
-          if (!delegate.containsKey(key)) {
-            valueContainer = valueContainer();
-            delegate.put(key, valueContainer);
+          Collection<V> old = delegate.put(key, valueContainer = valueContainer());
+          if (old != null) { // lost race
+            valueContainer = old;
           }
         }
       }
-      valueContainer.add(value);
+      synchronized (delegate) {
+        if (valueContainer.add(value)) size++;
+      }
     }

Implement the eviction method, quite similar in nature to yours, except as enclosed directly by InMemorySpanStore for easier testing.
+  /** Returns the count of spans evicted. */
+  int evictToRecoverSpans(int spansToRecover) {
+    int spansEvicted = 0;
+    while (spansToRecover > 0) {
+      int spansInOldestTrace = deleteOldestTrace();
+      spansToRecover -= spansInOldestTrace;
+      spansEvicted += spansInOldestTrace;
+    }
+    return spansEvicted;
+  }

Deleting the oldest trace has one major edge case, which is where a span came with no guessable timestamp. I think that's ok, just skip those if you can, and choose the first valid timestamped trace and go from there. This has a bunch of scanning involved at the moment, but shouldn't require you to peer at any span data. For example, traceIdTimeStamps is already ordered, scan until you find anything with a valid timestamp and delete all you can associated with it. that would be spansInOldestTrace above. Let the loop continue even if expensive (for now).
This advice isn't looking as deeply as you have, just I'd like to find a way to avoid re-calculating things added on input.

@joel-airspring not sure this makes things very clear or not, but it is an attempt to rejig so that implementing this could be more straightforward. lemme know if you think it doesn't help :) https://github.com/openzipkin/zipkin/pull/1636

Adrian, thanks for all the detailed feedback!  I'll go through it today and check out #1636 too.
Joel

@adriancole Here's a second pass.  I think I've incorporated all the feedback.

It's based on your latest refactor.
All metrics/bookkeeping stuff is gone.
I used your evictToRecoverSpans() and generally changed all terminology from 'purge' to 'evict'.  Much better nomenclature!
It does have the same performance profile as my original checkin.  Before it starts evicting, adding new spans takes 2-5 ms, but after it starts evicting, it takes 200 - 400 ms (@ 1M spans).  I'd like to improve that.
I added a size() method to SortedMultimap, but it doesn't handle properly the case of using an iterator to remove items.  The current code doesn't depend on size() in these cases, but it's kind of ugly, and I'd like to fix that.

thx. mind rebasing over master (having merged). It will make it easier to
see what's new.

Rebased.

One other comment:  I made the documentation describing the in-memory data layout a separate commit so it can be axed if you want.  It's helpful to to me to see things visually like that, but you may not love it since it's not super-precise.

one note on the internals of sortedmultimap:
it might be easiest to reason with synchronization as coarse grained. ex
synchronize every method, then as performance requires, tidy the locks. I
know I started the suggestion towards finer policy, but realized I missed a
few spots :)
For ex copy-out in the methods which returns collections, which ensures
read ops don't get hit when eviction is in progress. Then, just need to
more carefully check null on gets resulting from an iteration of those
collections (ex maybe there's a race condition when eviction is in
progress, where you iterate a key that was there when you read the list,
but not when you went to get the spans associated with it).
once this naive stuff is in place, then we can go back and tune for
concurrency as needed and as doesn't complicate things too much.
sound like a plan?

it might be easiest to reason with synchronization as coarse grained. ex
synchronize every method, then as performance requires, tidy the locks. I
know I started the suggestion towards finer policy, but realized I missed a
few spots :)

Does that mean to add 'synchronized' to every mutating method?  Those would be put() and remove().  (And, of course, take out any fine-grained synchronize blocks within the methods.)

For ex copy-out in the methods which returns collections, which ensures
read ops don't get hit when eviction is in progress. Then, just need to
more carefully check null on gets resulting from an iteration of those
collections (ex maybe there's a race condition when eviction is in
progress, where you iterate a key that was there when you read the list,
but not when you went to get the spans associated with it).

I'm not quite sure what you mean by 'copy-out'.  Do you mean that every time we do a get(), we should make a copy of the data and return that?  I guess that means we either couldn't mutate that copy or if we did, it would have to be merged back into the real data, which sounds painful.
Perhaps it would simplify things if we only made changes directly via the API of SortedMultimap (and not by getting a linked list, for example, and deleting its contents directly.  Maybe add a synchronized removeIf(key, ) method to SortedMultimap?  And use it like:
serviceToTraceIdTimeStamp.removeIf("foo", "id:aaaaa");  --> Go through the list for service name "foo" and remove any entries that have an traceId of aaaaa.
Am I headed in the right direction here?

Does that mean to add 'synchronized' to every mutating method? Those would
be put() and remove(). (And, of course, take out any fine-grained
synchronize blocks within the methods.)
if we don't synchronize the reads, then they wouldn't see writes made by
other threads, right? Def yeah take out synchronized inside them. Think of
it the same as Collections.synchronizedX for our multimap

I'm not quite sure what you mean by 'copy-out'. Do you mean that every
time we do a get(), we should make a copy of the data and return that? I
guess that means we either couldn't mutate that copy or if we did, it would
have to be merged back into the real data, which sounds painful.
I was thinking of a copy-out on read because I didn't expect any mutation
except add (covered by the synchronized op on multimap) and delete by key
(because we are pruning traces, all spans with a trace id, that match an
expression) ex spansByTraceIdTimeStamp and traceIdToTraceIdTimeStamps can
delete everything with a specific key on eviction.

eviction on traceId won't clean up serviceToTraceIdTimestamp (as trace ids
are in the values, not the keys). This might be something solvable with a
special-case method on multimap, or you can punt to GC by changing the
values to weak references.

Perhaps it would simplify things if we only made changes directly via the
API of SortedMultimap (and not by getting a linked list, for example, and
deleting its contents directly. Maybe add a synchronized removeIf(key, )
method to SortedMultimap? And use it like:
serviceToTraceIdTimeStamp.removeIf("foo", "id:aaaaa"); --> Go through the
list for service name "foo" and remove any entries that have an traceId of
aaaaa.

yep, we'd only need something like removeIf on serviceToTraceIdTimestamp,
and this could be a very special cased method (ex a subtype of
SortedMultimap for serviceToTraceIdTimestamp with a typesafe
removeServiceIfTraceId(...)
Definitely on the right track. On later work for perf, we should put in
JMH. You can look at zipkin-reporter-java for some examples of things if
you need more, but yeah you are on the right track, so keep up the good
work!

Third pass:

All methods on InMemorySpanStore synchronized.  This is the simplest possible way to ensure that every read sees every write.
With 4 clients writing simultaneously, it's 2-10ms for each span submission (~30 at a time).  Once the evicting starts @1M spans, it drops to 250-2000 ms.
I added a subclass of SortedMultimap for the serviceToTraceIdTimeStamp type with a removeServiceIfTraceId() method.
With 4 clients writing simultaneously, it's 2-10ms for each span submission (~30 at a time).  Once the evicting starts @1M spans, it drops to 400-4000 ms.  (I don't know why this is slower than case 1, above)
In another commit, I enhanced removeServiceIfTraceId() to terminate early based on latest time stamp.  This cut the time when evicting to double-digit ms when evicting starts @1M spans.

Is there anything else you'd like for this PR?  It seems to be fast enough with the coarse locking with 4 clients sending data simultaneously while evicting @ 1 million spans.


Element-UI select component validation inside for loop

Versions:

VueJs: 2.4.4
Vee-Validate: 2.0.0-rc.18
Element: 1.4.6

Description:
I used vee-validate with element-ui and it worked fine but i encountered a problem when i used a select component inside a for loop. (outside loops works) The problem lies in the fact that when i select a value from the dropdown, the model updates but the required validation error occurs till i select another value again. I observed that by adding data-vv-delay="100" on the select element from the loop solves the problem, but this shouldn't be necessary.
Steps To Reproduce:
https://jsfiddle.net/7m21d9p4/15/

This issue was resolved in rc.18 in your example you are using rc.17
https://jsfiddle.net/logaretm/7m21d9p4/16/

Thanks a lot, my IDE was showing rc.18 but it wasn't referring to my current version, checked better and you were right. Keep up the good work and thanks again!


Error with FirebaseApp.appNamed after update to newest firebase_auth

I have error after update to newest firebase_auth version.
Here is minimal code to reproduce:
main.dart:
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';

void main() async {
  final FirebaseApp existingApp = await FirebaseApp.appNamed('test');
  print(existingApp);
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Text('test'),
      ),
    );
  }
}

pubspec.yaml
name: auth_test
description: A new Flutter project.

dependencies:
  flutter:
    sdk: flutter
  firebase_auth: ^0.8.1+1

flutter:
  uses-material-design: true

I get GoogleService-Info.plist from example add it using Xcode and update Info.plist with:
<key>CFBundleURLTypes</key>
  <array>
  	<dict>
  		<key>CFBundleTypeRole</key>
  		<string>Editor</string>
  		<key>CFBundleURLSchemes</key>
  		<array>
  			<string>com.googleusercontent.apps.466218294969-5mdmh6opkqd87a5m81nm83u4eqd3bvgk</string>
  		</array>
  	</dict>
  </array>

The problem is: if I add firebase_auth version 0.6.6 to this app everything works. But after update to 0.8.1+1 it stop work with error:
Launching lib/main.dart on iPhone XR in debug mode...
Starting Xcode build...
Xcode build done.                                           11,2s
5.10.0 - [Firebase/Core][I-COR000003] The default Firebase app has not yet been configured. Add `[FIRApp configure];` (`FirebaseApp.configure()` in Swift) to your application initialization. Read more: https://goo.gl/ctyzm8.
5.10.0 - [Firebase/Analytics][I-ACS023007] Analytics v.50200000 started
5.10.0 - [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see http://goo.gl/RfcP7r)
5.10.0 - [Firebase/Core][I-COR000004] App with name test does not exist.
*** First throw call stack:
(
	0   CoreFoundation                      0x0000000108a1e1bb __exceptionPreprocess + 331
	1   libobjc.A.dylib                     0x0000000107fbc735 objc_exception_throw + 48
	2   CoreFoundation                      0x000000010896a4ec _CFThrowFormattedException + 194
	3   CoreFoundation                      0x0000000108a8d541 -[__NSPlaceholderDictionary initWithObjects:forKeys:count:] + 321
	4   CoreFoundation                      0x0000000108a19c9b +[NSDictionary dictionaryWithObjects:forKeys:count:] + 59
	5   Runner                              0x000000010595c389 getDictionaryFromFIRApp + 217
	6   Runner                              0x000000010595c1d1 -[FLTFirebaseCorePlugin handleMethodCall:result:] + 4225
	7   Flutter                             0x0000000105ec59a2 __45-[Flutt<…>
Application finished.

with this error impossible to understand what goes wrong, so even if problem with my setup, I think, error handling and message need to be updated. Even if I change version back to 0.6.6 it fires same error.
flutter doctor:
[✓] Flutter (Channel stable, v1.0.0, on Mac OS X 10.13.6 17G65, locale uk-UA)
    • Flutter version 1.0.0 at /Users/sashaz/development/flutter
    • Framework revision 5391447fae (3 months ago), 2018-11-29 19:41:26 -0800
    • Engine revision 7375a0f414
    • Dart version 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)

[!] Android toolchain - develop for Android devices (Android SDK 28.0.3)
    • Android SDK at /Users/sashaz/Library/Android/sdk
    • Android NDK at /Users/sashaz/Library/Android/sdk/ndk-bundle
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[!] iOS toolchain - develop for iOS devices (Xcode 10.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.1, Build version 10B61
    ✗ ios-deploy not installed. To install with Brew:
        brew install ios-deploy
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 31.3.1
    • Dart plugin version 181.5656
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)

[✓] IntelliJ IDEA Community Edition (version 2018.2.4)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 31.3.3
    • Dart plugin version 182.5124

[✓] Connected device (2 available)
    • Android SDK built for x86 • emulator-5554                        • android-x86 • Android 9 (API 28) (emulator)
    • iPhone XR                 • 711C6B31-EF3A-455C-B25B-211CAD2905F7 • ios         • iOS 12.1 (simulator)

! Doctor found issues in 2 categories.

Can you please try executing pod update in ios/?

#17678 looks similar but not clear what the solution was exactly.

#28199

similar to this #28199

similar to this #28199

Yes, this is same issue, but app crash exactly on "FirebaseApp.appNamed" just "FirebaseApp.configure" call it.

pod update

'pod update' did not help.

I think I found the problem. plugin firebase_core file FirebaseCorePlugin.m
on block
  } else if ([@"FirebaseApp#appNamed" isEqualToString:call.method]) {
    NSString *name = call.arguments;
    FIRApp *app = [FIRApp appNamed:name];
    result(getDictionaryFromFIRApp(app));
  }

"FIRApp appNamed" can return nil, but getDictionaryFromFIRApp do not handle it.
so
result(getDictionaryFromFIRApp(app));
must be change to
result(app == nil ? nil : getDictionaryFromFIRApp(app));
in dart code comments over appNamed says  "Returns a previously created FirebaseApp instance with the given name, or null if no such app exists." so I think it's a good solution.
I am do not know objective-c, so may be there is better way to handle nil.

getDictionaryFromFIRApp looks like it should always return an empty configuration even if the appName is not found, so getDictionaryFromFIRApp should probably be modified to handle a nil "app" object. The actual call to create the configuration dictionary handles a null app (If you look in FirebasePluginCore.m), it's just trying to create a dictionary with a nil key that fails. But I could be totally off.

getDictionaryFromFIRApp looks like it should always return an empty configuration even if the appName is not found, so getDictionaryFromFIRApp should probably be modified to handle a nil "app" object. The actual call to create the configuration dictionary handles a null app (If you look in FirebasePluginCore.m), it's just trying to create a dictionary with a nil key that fails. But I could be totally off.

may be getDictionaryFromFIRApp should be modified, but FirebaseApp#appNamed should  return nil if app did not found, as some code depends on that.

Ah, excellent, that's what I needed to know. The way the code is written it looks like it's supposed to return a configuration of nulls no matter what, and I wasn't sure if the default app name (__FIRAPP_DEFAULT) should be returned. Of course, I know nothing about what the other frameworks expect so I defer to your assertions.

This issue is solved by this PR and firebase_core version 0.3.1+1. It may be closed now.

@zhesha the issue should be fixed. Please let us know if you are still seeing this.

It may be fixed in firebase_core version 0.3.1+1, but that is not compatible with AndroidX (https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility), leaving with the choice to either support iOS or Android?

Looks like the last comment was deleted, but I use both firebase core and Auth in my app with their latest versions and AndroidX - it works!

Yes, I deleted it. How did you get rid of the AndroidX errors?
Arno
<EMAIL_ADDRESS>+31648780789
On Mon, Mar 11, 2019, 15:58 Feu<EMAIL_ADDRESS>wrote:

Looks like the last comment was deleted, but I use both firebase core and
Auth in my app with their latest versions and AndroidX - it works!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/28248#issuecomment-471573796,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQY8yqbK-M31fF54Y9DspQKs65U8uoeOks5vVm8rgaJpZM4bGypZ
.

(if I could, I would reply privately)
https://stackoverflow.com/a/54857699/796963

@zhesha
This issue has been moved to https://github.com/FirebaseExtended/flutterfire/issues/424. Any further collaboration will be done there.


MP mRNA 3'-UTR AU-rich region binding

add parent
sequence-specific mRNA binding?

Is it really sequence-specific just because it it AU-rich?

Ah I was thinking that this referred to the "AAUAAA" consensus element in the 3'UTR polyadenylation site...
I think this is a larger less conserved AU rich region, but it has a definite consensus.
I think that might be what it means but it isn't clear....

Hmmm. I think the consensus element is part of the AU rich region, but I think it encompasses more. See PMID:3488815. It is your term, so if you still think this region means sequence-specific, I will add it.

I'll check back and get back to you soon....might not be today ;)

To me "AU-rich" doesn't indicate sequence specificity; it's just composition.

will close...


Custom size and breakpoints

Hello,
First of all, thanks a lot.
It would be great if it was possible to customize the service a little bit by changing the breakpoints size, and even better (but more complexe) by adding new breakpoints.
Thanks a lot.

Hi again,
I'm not sure you've closed the right issue. Or maybe I didn't explain correctly so you rejected this one.
What I meant by custom size is the ability to change existing breakpoing value when injecting the service a the application bootstrap.
For example if I want to change xs from 767  to 640 (just an example).
An other great use case would be to be able to change from px to rem or em. But this would have other effect and might be more complicated to implement.
Thanks.

Hi,
Ok, I had not understood. He planned to make that change to allow users to change xs, sm ,md, lg pixels measures from the component. But using rem, em,%.... instead of pixels is a great idea. I will try to fulfill it in the next update.
Thanks.

Thanks,
also changing values in the service on initialization would be great(I'm not sure how to do this be I know several other services allow to do this using the provide function).
In my case I'm injecting the service globally when my application bootstraps, if I could change the values then, it would affect all the directives with the default breakpoints names.
I'm not sure if my explanation is very clear.
Thanks.

I'm currently working on something in order to allow to change default breakpoints, would you like me to send you my code. I'm not sure how to process, it's my first code proposal. Should I create a fork and send you the link ?

I created a new branch for your code "no-more-code" and I have invited as a collaborator. ; )
If you want to create a new branch, create it without problems. When everything is correct in your code. We join to the main branch and publish.

Thanks!
I'll try to send something soon.

If it's any help, I upload the current code with a global settings bootstrap sizes. I only need check if the user configured for freeform measures or use the default bootstrap sizes.
 I'm quite new to git and it's my first commit to git hub. I might be doing something wrong I have a 403 error when I try to push my code.

I'm not sure but it seems I don't have write access to the branch.

Never mind, I hadn't accepted your invitation.

I have uploaded a first version of my code. I'll update the doc in order to allow to bootstrap the service globally.

Excelent Work!!  ; )
Modifies the readme file with a config sample of your code.
When you're done, tell me and I merge your code in the main branch.
You have NPM user account? To add you as a contributor to the package. : )

Thanks,
I have updated the doc.
But no, I don't have an npm account yet.

If you decide to create an account npm I would add as a contributor. ; )
And this updated package. If you see any error you tell me.
Next => Detect devices. : )

Thanks,
I forgot to tell you that my change will break already implemented version as it requires to inject the service at the application bootstrap (as in the new documentation). On the other hand I think it's better to do so in order to avoid injecting the service on each directives usages.

Hi,
I was implementing the code in my project and I saw that I needed some changes. ; )
If you see some improvement, add it. When you confirm that everything is correct, I upload the new versión in npm.

I'm working on a new version on the branch, but I made a wrong commit on master. I reverted so I hope everything is OK on master.

Don't worry, everything is correct. : )
I check your branch. And if all this right join to the master. And publish in npm your new versión.
Work on making a demo application using the package this weekend. I will work on this in a new branch, I will ask for feedback if you have any idea for this. ; )
Great work Christophe! Thanks!

Package update with the new version 0.1.6. ;  )


Sarif report has artifact issues in it, but right panel only shows a "OpenSARIF log" button (intermittently)

A generated SARIF report has artifact issues in it, but when the sarif file is selected, the right panel only shows a "OpenSARIF log" button (intermittently) where the issues should be shown.  Using version v3.0.2 in VSC v1.59.1.

#412 (v3.1.1) is likely to have fixed this. Optimistically closing. If it is still an issue please reopen and we'll take a closer look. Thanks!


onBlur, onFocus, onChangeText, etc, should be maintained

i first wanna say I love gifted form. I'm half way through a project where I've used it for everything. I have lots of custom widgets, etc. BUT, losing the original APIs was a mistake. period. we need to fix it; we need to rewrite it so all these methods still work, i.e. the same names from the original APIs. there's no reason that shouldn't be the case. That's how you allow for all the automated goodness that gifted form brings, while also allowing you complete customization if you're willing to drop down to the lowest JS API react native provides.
i'd just do it, but I figured there is probably some opinion about this and it's best I hear it first. ???

@faceyspacey I completely agree.
I have a specific use case where I need to pop a picker onFocus of a <GiftedForm.TextInputWidget />.  Without access to the onFocus api, I am not sure that this is possible.


[SPARK-14904][SQL] Put removed HiveContext in compatibility module

What changes were proposed in this pull request?
This is for users who can't upgrade and need to continue to use HiveContext.
How was this patch tested?
Added some basic tests for sanity check.
This is based on #12672 and closes #12672.

Merging - I fixed the test and verified locally.


Bug: wrong types

Describe the bug
Navigation props and Supabase types are set to any and defined in some cases as types instead of property interfaces or defined as interfaces and not exported properly
Steps to reproduce

Clone the project
Search the code for eslint-disable or : any

Affected services
hot.opensauced.pizza
Platforms
No response
Browsers
No response
Environment
Development
Additional context
introduced in https://github.com/open-sauced/hot/pull/210
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Contributing Docs

[X] I agree to follow this project's Contribution Docs

.take


compose on swarm: update parallelism needs better default

If I don't specify an update_config in my compose file, I get the defaults, which is great.
If I specify something like this:
     deploy:
       update_config:
         failure_action: pause

...then I get an UpdateConfig in the service, but the other fields are initialized to 0. For Parallelism, this is inconsistent with the CLI, where it defaults to 1.
I believe the other fields in UpdateConfig are handled correctly. RestartConfig and other structs also look okay.
cc @dnephin @vdemeester @aluzzardi

I guess we need to use a pointer for parallelism to determine if it's set to 0 or not set.


idx and pack

i got this error when i tried to extract .git folder
fatal: Not a valid object name packpack-5c594159d6fa80636dcc4d7a1e8c3cadab9229e1.idx
fatal: Not a valid object name packpack-5c594159d6fa80636dcc4d7a1e8c3cadab9229e1.pack
how to resolve this

hmm, I think the issue is packpack which should be pack?

Can you share the repo? It seems like there are files starting with packpack which is obviously not correct, but on the other hand, I cannot find a reason why the dumper would save a file like this.

i see maybe it is filename error,
thanks btw
i extract it manually when i got this error anyway


⚠ Apple has degraded performance

In fd3557e, Apple (https://apple.com) experienced degraded performance:

HTTP code: 200
Response time: 1337 ms

Resolved: Apple performance has improved in 5001a21.


Unable to get profile

TypeError: Cannot read property 'Requests' of undefined
at Pokeio.self.GetApiEndpoint (/Users/senthilsivanath/Downloads/protoc-3.0.0-beta-3.1-osx-x86_64/node_modules/pokemon-go-node-api/poke.io.js:192:38)
at /Users/senthilsivanath/Downloads/protoc-3.0.0-beta-3.1-osx-x86_64/node_modules/pokemon-go-node-api/poke.io.js:156:22
at /Users/senthilsivanath/Downloads/protoc-3.0.0-beta-3.1-osx-x86_64/node_modules/pokemon-go-node-api/poke.io.js:186:17
at /Users/senthilsivanath/Downloads/protoc-3.0.0-beta-3.1-osx-x86_64/node_modules/pokemon-go-node-api/logins.js:101:21
at /Users/senthilsivanath/Downloads/protoc-3.0.0-beta-3.1-osx-x86_64/node_modules/gpsoauthnode/oauth.js:115:9
at IncomingMessage. (/Users/senthilsivanath/Downloads/protoc-3.0.0-beta-3.1-osx-x86_64/node_modules/gpsoauthnode/oauth.js:75:49)
at emitNone (events.js:72:20)
at IncomingMessage.emit (events.js:166:7)
at endReadableNT (_stream_readable.js:905:12)
at doNTCallback2 (node.js:452:9)

Had a diff Pokemon.proto in my directory. Deleted my file and the issue got resolved.


Clarify tx status group priorities

In the end, this information is not really required for the user.


Complete port to 1.7.10

Needs to be done sometime or another, but maybe later.

I forgor skulled this.


[BUG] Planets aren't visible in the Warp Controller on servers, but they are on sp

FTBTeam/FTB-University/issues/202
Version of Advanced Rocketry
AdvancedRocketry-1.12.2-1.7.0-235-universal
Have you verified this is an issue in the latest unstable build

[ ] Y
[x] N
[ ] N/A

Version of LibVulpes
LibVulpes-1.12.2-0.4.2-75-universal
Version of Minecraft
1.12
Does this occur without other mods installed

[ ] Y
[ ] N
[x] N/A

Description of the problem
FTBTeam/FTB-University/issues/202

Planets aren't visible in the Warp Controller, despite isKnown being set to true. This only happens in servers.
Current workaround people are having to use is using the Holographic thing

I am running a server of FTB University also and no matter how many times I load the 3 types of data into the warp controller it would not discover a planet.. Tried about 40 times then I went into the server advanced rocketry confic and set it so no need to discover and restarted server then I was able to see all the planets.  Getting there was another big problem but I understand this is the beta version so I won't list the many problems and crashes and wait for an update

Yes
On Fri, Jan 29, 2021, 6:23 PM github-actions[bot]<EMAIL_ADDRESS>wrote:

This issue is stale because it has been open 60 days with no activity. Is
this still an issue? If yes please comment that it still is.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/zmaster587/AdvancedRocketry/issues/1955#issuecomment-770117879,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADXYWIVYGL6Z6MBARIMIYC3S4NGQNANCNFSM4T3222EQ
.

Yes
On Fri, Jan 29, 2021, 6:23 PM github-actions[bot]<EMAIL_ADDRESS>wrote:

This issue is stale because it has been open 60 days with no activity. Is
this still an issue? If yes please comment that it still is.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/zmaster587/AdvancedRocketry/issues/1955#issuecomment-770117879,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADXYWIVYGL6Z6MBARIMIYC3S4NGQNANCNFSM4T3222EQ
.

yes

Oi @aaronhowser1 I fixed a different bug with artifacts and server loading, do you mind seeing if it fixes this? I don't totally expect it to, but who knows, it might.
output.zip

Hm, I don't have a server running the pack atm. I suppose I could make one real quick and just try this, though.

If you could, thank you!

Got a crash, but from WrapUp, the lib for JAOPCA: https://pastebin.com/PCv7zrDW
I guess I'll try removing those, should I forward this to the WrapUp issue tracker?

Update JAOPCA, we changed some stuff

Changed some stuff indeed :eyes: I'm gonna have to play around with this when it's fully out and update the quests in my pack

seems to work fine for me

proof its on server

Holy hell it actually worked?!?!?!

:tada:

What was the fix, if you didn't expect it to actually work?

Artifacts didn't sync to NBT correctly.....

So what I guess happened is they didn't sync to NBT so weren't sent to clients so no planets could show because they all had no artifacts.

Fixed with 2.1.0


Question - run without gulp src

First thanks for making it a lot easier to stop and start webdriver.
I would like to use suites instead of piping src file and take full advantages of the protractor config file where I define the suites to run.
`gulp.task('e2e:local', runProtractor);
function runProtractor(done) {
var params = process.argv;
var args = params.length > 3 ? [params[3], params[4]] : [];
  gutil.log('arguments: ' + args);

gulp.src(paths.e2eSuites.itProject)
  .pipe(protractor({
      configFile: 'protractor.local.conf.js',
      args: args,
      'autoStartStopServer': true,
      'debug': false
  }))
  .on('error', function (err) {
      gutil.log(gutil.colors.red('error: ' + err));
      // Make sure failed tests cause gulp to exit non-zero
      throw err;
  })
  .on('end', function () {
      // Close browser sync server
      browserSync.exit();
      done();
  });

}`
I have removed suites from the protractor.config file and using them as input to gulp src. This make the tests work.
Is this the road to take or is there a better way?

This is the right way yes
Cheers


Autocomplete: add progress indicator and cancellation token

Description

When fetching data from a remote datasource the autocomplete component should visually indicate that it is awaiting results. Likewise the component should be able to cancel expensive asynchronous work before the result is returned, when OnSearchAsync and SelectOption are called.
The developer can choose between a circular progress indicator displayed inside the input field or a linear progress indicator displayed under the input field. If the input field has an icon on the right, the loading indicator will be shifted  to the left in order not to cover the icon.  The input field shrinks accordingly. If a clear icon is present, it will be hidden while progress indicator is displayed. Progress indicator color can be customized. The circular indicator is suitable for outlined autocomplete and the linear one for the default variant.

Closes https://github.com/MudBlazor/MudBlazor/issues/4061 and https://github.com/MudBlazor/MudBlazor/pull/3096
How Has This Been Tested?

Added unit test cases to existing AutocompleteTests.cs
Tested visually

Types of changes

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

Checklist:

[x] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.
[x] I've added relevant tests.

Does it have only circular progress?

Does it have only circular progress?

In the third gif you can see linear progress.

We could have all three options: linear, circular and inside popover and let the developer choose.

Yeah that would be awesome. In many cases I find a linear progress bar too "heavy" and
only use it when I know it's a long running task.

Hi @artworkad, and thanks for putting in the effort.
Your work is going in a good direction. Based on what we have learned, I'd like to make some suggestions.
Remove ProgressIndicatorType and the corresponding enum. Use a RenderFragment instead and default it to a circular progress bar. This way, everyone who is unhappy with the circular, or wants some color, etc., can do it by putting in their own template. Because otherwise, the next PR is something like: "Adding Color to ProgressIndication in MudAutoComplete`` and we have another parameter.
The same applies to ProgressInPopverMessage. While the message is acceptable, offer a RenderFragment to make it customizable.
Besides, your PR currently needs examples in the docs.
Regarding the CancellationToken, I'd suggest you put an example together to check if this is the intended way it should work.  If I'm wrong, feel free to correct me.  For instance, you cancel the token when an item is selected. However, if the search has been completed and a user selects an item, there is nothing to cancel anymore? Isn't the use case more that there is currently an active async search, and you want to cancel it in favor of a "newer" one?
On a side note, if you want to make videos of the screen, I can recommend https://www.screentogif.com/

@artworkad Can you take a look at benno's comments above and make changes as needed?

@artworkad Can you take a look at benno's comments above and make changes as needed?

@Mr-Technician will do as soon as I return from vacation🌴on 8. August.

@just-the-benno @Mr-Technician I made changes according to benno's comment.

Hi @artworkad. I'm sorry for the delay. I'll review the PR soon.
What I still don't understand is the usage of the cancellation token. Shouldn't the token be referenced within an instance of MudAutocomplete and called from there when a new search is requested, and the old is not yet finished?

The CancellationTokenSrc never gets disposed.

@Yomodo thx! I made changes to dispose the CancellationTokenSrc.
@just-the-benno exactly, that's the idea behind it.

@JonBunator, can you have a look at the changes regarding CSS? Anything from your side?

@just-the-benno thank you for the valuable feedback. I think I covered everything in the last commits. Let me know if there are more changes to be made.

Hi @artworkad
I've added the example. Feel free to improve it so that your work is presented in the best possible light :)
If you have a look at the example, you see that the progress indicator disappears after the first cancellation. Does that seem like a minor bug that you could fix?

@just-the-benno your example is great. I would not change anything. Regarding the bug: when a search gets cancelled due to another search the SearchFuncWithCancel method will exit and the finally block will be called. This sets _isLoading to false, while the other search is still awaiting results. Here:
CancelToken();

try
{
	_isLoading = true;

	if (ProgressIndicatorInPopoverTemplate != null)
	{
		IsOpen = true;
	}

	if (ShowProgressIndicator || ProgressIndicatorInPopoverTemplate != null)
	{
		StateHasChanged();
	}

	if (SearchFuncWithCancel != null)
	{
		searched_items = (await SearchFuncWithCancel(Text, _cancellationTokenSrc.Token)) ?? Array.Empty<T>();
	}
	else
	{
		searched_items = (await SearchFunc(Text)) ?? Array.Empty<T>();
	}
}
catch (Exception e)
{
	Console.WriteLine("The search function failed to return results: " + e.Message);
}
finally
{
	_isLoading = false;
}

Do you have an idea, how to fix that? My first idea was to use a _isLoading stack instead of a flag. When starting a search we put true onto the stack, when finishing or cancelling a search we pop from the stack. We have a progress going on when there are items in the stack. What do you think?

We use this pattern a lot throughout our application:
public async ValueTask CompareDscAadGroupsAsync()
   {
      try
      {
         var cancellationToken = await InitializeCompareAadGroupsAsync();

         ...
      }
      catch (Exception ex)
      {
         ...
      }
      finally
      {
         await FinalizeCompareAadGroupsAsync();
      }
   }

public async ValueTask CancelCompareAadGroupsAsync()
   {
      await FinalizeCompareAadGroupsAsync(stateHasChanged: false);
      SetCompareAadGroupsCanceledState();
      StateHasChanged();
   }

   async ValueTask<CancellationToken> InitializeCompareAadGroupsAsync()
   {
      await FinalizeCompareAadGroupsAsync(stateHasChanged: false);
      SetCompareAadGroupsCanceledState(isCanceled: false);
      SetCompareAadGroupsBusyState();
      SetDscAadGroupsCompareResults();

      _aadGroupCompareCts = new();
      return _aadGroupCompareCts.Token;
   }

   void SetCompareAadGroupsCanceledState(bool isCanceled = true)
   {
      ViewModel.GroupCompareCanceled = isCanceled;
   }

   void SetCompareAadGroupsBusyState(bool isBusy = true)
   {
      ViewModel.GroupCompareBusy = isBusy;
   }

   async ValueTask FinalizeCompareAadGroupsAsync(bool stateHasChanged = true)
   {
      await ValueTask.CompletedTask;
      try
      {
         if (_aadGroupCompareCts is not null)
         {
            using (_aadGroupCompareCts)
               _aadGroupCompareCts.Cancel();

            _aadGroupCompareCts = null;
         }
      }
      catch (Exception ex)
      {
         _aadGroupCompareCts = null;
         _logger.LogError($"{nameof(FinalizeCompareAadGroupsAsync)}: {ex.Message}");
      }

      SetCompareAadGroupsBusyState(isBusy: false);

      if (stateHasChanged)
         StateHasChanged();
   }

Do you have an idea, how to fix that? My first idea was to use a _isLoading stack instead of a flag. When starting a search we put true onto the stack, when finishing or cancelling a search we pop from the stack. We have a progress going on when there are items in the stack. What do you think?

Hi @artworkad. I'm sorry for the delay. It has been quite a busy week for me.
I like your approach. It is simple yet effective. Looking forward to seeing it implemented ;)

@just-the-benno @Yomodo the bug is fixed. Instead of setting the loading flag manually, we now check the status of the search task:
private Task _currentSearchTask;
private bool IsLoading => _currentSearchTask != null && !_currentSearchTask.IsCompleted;

Search method:
try
{
    if (ProgressIndicatorInPopoverTemplate != null)
    {
        IsOpen = true;
    }

    var searchTask = SearchFuncWithCancel != null ?
        SearchFuncWithCancel(Text, _cancellationTokenSrc.Token) :
        SearchFunc(Text);

    _currentSearchTask = searchTask;

    StateHasChanged();

    searched_items = await searchTask ?? Array.Empty<T>();
}
catch (Exception e)
{
    Console.WriteLine("The search function failed to return results: " + e.Message);
}

@henon, ready for your review

@artworkad: Thanks for the contribution. Check out https://www.screentogif.com/ for recording short clips.


Autocomplete lt

Description
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Change Status

[ ] Complete, tested, ready to review and merge
[ ] Complete, but not tested (may need new tests)
[x] Incomplete/work-in-progress, PR is for discussion/feedback

How Has This Been Tested?

[ ] Test A
[ ] Test B

Checklist

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] My code has been reviewed by at least one peer
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] There are no merge conflicts

I'm still working on this feature, the MAIN feature. I have everything wrote out. Understand it, but have errors in the terminal. My type bars aren't showing up either! Once mock data is showing I'll set it up for review. Thanks everyone!

Seeing a few things. lets hop on a zoom call tomorrow and we can go over them. I downloaded this branch to see if i can workout some of the kinks and we can pair program on it tomorrow if you would like.

I fixed the merge conflicts. Some of them were in the yarn.lock file, I updated my yarn to see if it was one of the issues with my many tries to set up autocomplete.  App.js is a mess, but if hopefully in the next day or two someone can figure out the cors issues to the API call. Thereafter I will clean up code that is going to work or I can save locally....


question about configuring the grid extra to kill browser instances on test completion...

Hi I want to kill the browser instances once my test completes. Grid xtra has tasks to do it as i see in example JSON. But I am not sure how to configure it so that it runs each time when a session ends and kill the opened browsers. I did try adding this section in
selenium_grid_exra.json
    "tear_down": [
      "com.groupon.seleniumgridextras.tasks.KillAllFirefox",
      "com.groupon.seleniumgridextras.tasks.KillAllChrome"
    ],

But i didnt see any logs that informs killing opened browsers. Am i missing sth here?
Here is my Json File
{
  "theConfigMap": {
    "auto_start_hub": "0",
    "auto_start_node": "1",
    "default_role": "node",
    "disabled_modules": [
      "com.groupon.seleniumgridextras.tasks.SessionHistory",
      "com.groupon.seleniumgridextras.tasks.RebootNode"
    ],
    "tear_down": [
      "com.groupon.seleniumgridextras.tasks.KillAllFirefox",
      "com.groupon.seleniumgridextras.tasks.KillAllChrome"
    ],
    "node_config_files": [
      "node_5555.json"
    ],
    "hub_config_files": [],
    "hub_config": {},
    "video_recording_options": {
      "videos_to_keep": "40"
    },
    "iedriver": {
      "version": "2.53.1"
    },
    "auto_update_drivers": "1",
    "chromedriver": {
      "version": "2.24"
    },
    "webdriver": {
      "version": "2.53.1"
    }
  }
}

Your help is appreciated.
Thanks
ShankarKC

@shankarkc I am sorry, but I never used those "tear_down" items. I would have to look into the code to see when those get looked at/called. I won't have time for at least a few days. Maybe you can look sooner ?

@shankarkc i'm using similar configuration and it's works for me:
"tear_down": [
"com.groupon.seleniumgridextras.tasks.KillAllChrome"
]
I'm not sure about logs that informs killing chrome but it kills every instance of chrome after test completes.

@shankarkc Can you try this again ? Also, what version are you on? I released 1.12.9 yesterday (though it shouldn't affect this issue at all).

Thanks. I noticed that it works though i didn't see logs.  Browsers getting closed with  teardown.

Awesome thanks.

I'll open an improvement to show it in the logs

Is there a time limit with which it calls the teardown? For e.g., if I am waiting for an element to appear in the page for more than 2 min the browser instance gets killed. Can I increase this timeout somewhere?

@ambikashri
You can change this value in hub_4444.json.
Parameters you are looking for are:
"browserTimeout": 300,
"timeout": 420,


Problem with filtering out multiple void instances

I run some tests with your implementation for the panoptic metric and got a curious result.
I made a simple test case with two instance who overlap the void class  -> they should get filtered out.
if I have only one of those instances it works properly and I don’t get FP.
If I now have both instances they don’t get filtered out and I get two FP
It might have to do with https://github.com/VSainteuf/utae-paps/blob/9e54d3c330b6d207f951796ea1656be8ebfad562/src/panoptic/metrics.py#L55
since you here do the unique over basicly a binary mask if I understand correctly. I supect you wanted to do here instead of void_mask -> instance_ture[batch_idx]

Hi @marckatzenmaier,
Thanks very much for pointing this out.
This is indeed a bug. Instead of iterating over all the individual binary instance masks of void segments, this loop only runs once on the total binary mask of all void objects. So instead of matching predicted segments with void segments, this part of the code tries to match predicted segments with the union of all void segments, which probably never happens.
So at the end of the day, segments predicted for void objects are not ignored (though they should be), resulting in "false FP" (false positives that shouldn't be false positives).
This artificially reduces the RQ value and thus the PQ score.
I think this line should be
*torch.unique(instance_true[batch_idx]*void_mask, return_counts=True).

This is fixed now.
I re-evaluated the models on PASTIS with the new code and the bug fix results in a ~2-3pt PQ increase thanks to the reduced number of False Positives.

Facing issue with :
from utils.dataset import ijgiDataset as Dataset
no module error in Main_SITSMamba.py
Possible fix please @VSainteuf @marckatzenmaier

Hi @clotilda-0 I don't think your issue refers to the utae-paps repository as it does not contain an ijgiDataset nor a Main_SITSMamba.py script.


Add a note for ILP32E

I guess we should revise ilp32e part after release to fix those corner issue and F/D support issue on ilp32e.
EABI might going with divination-based, which means EABI will based on the base ABI with some variant instead of a brand new ABI for that.
So I think we should fix ilp32e issue, and that might break the compatibility of old ilp32e stuffs, that means we also need to figure out how to detect and report error for linking incompatible  ilp32e version.

Based on my experience with LLVM implementation, there is only one issue: the alignment of types (C/C++ types or aggregates ) with size in (XLEN, 2*XLEN]. That results in issues on stack alignment and handling of variadic arguments. For your reference, I think there are two solutions:

Force them to align to 4 bytes, which is counterintuitive. This may increase the usage of registers and save some stack spaces. This is what GCC is doing.
Force them to align to 8 bytes, which is intuitive but against common stack alignment of 4 bytes. some registers may not be used during passing variadic arguments and stack will be larger. This is LLVM‘s default behavior if we don't change any things.

I don't know if there is any asm directive or attribute that shows the ABI we used, so it may be difficult to detect ilp32e version.


Projection adjustments

This PR changes the projection used in the to-do list.
Before, the projections used to contain information about all of the tasks in the to-do list, but did so in ways that allowed for detailed querying, e.g. DraftTasksView exposed tasks in the Draft state, LabelledTasksView exposed tasks together with their labels, and MyListView exposed general task information.
Now, TaskView exposes all information about a single task.
Please note that this PR includes changes from the https://github.com/spine-examples/todo-list/pull/91,

Codecov Report

Merging #89 into master will decrease coverage by 0.91%.
The diff coverage is 97.32%.

@@             Coverage Diff              @@
##             master      #89      +/-   ##
============================================
- Coverage     92.44%   91.53%   -0.92%
+ Complexity      576      462     -114
============================================
  Files           133      115      -18
  Lines          3084     2444     -640
  Branches         93       79      -14
============================================
- Hits           2851     2237     -614
+ Misses          204      186      -18
+ Partials         29       21       -8

@dmdashenkov, PTAL.

@dmdashenkov, PTAL again.


Matching of UL model numbers

Hi there, I just bought a Shelly Pro 2 v.1 and (despite purchasing it in EU) it's a UL model with the model number:
SPSW-202XE12UL rather than
SPSW-202XE16EU
I notice that this library doesn't appear to handle the UL model numbers which I assume is why in Home Assistant the model name is missing / Unknown.

Is this a known limitation of the library?

Aside from the cosmetic missing model name, would the lack of matching UL models have any other negative affect on the operation of the UL models in Home Assistant? (I haven't noticed any yet).

Would you be open to a PR to add a feature to match UL models?

Thanks

Hi @tomcastleman ,
as you already supposed, is only esthetical.
No functionalities are impacted by the missing model name.
You are more than welcome in creating a PR to add those models.

Fixed by #701


Ability to read session secret from a file instead of specifying in the config file

During the launch of Authelia in Kubernetes, the config is stored in a config map and injected into the container. The session secret is currently stored as part of the config map in clear. Having an ability to add a secret location instead, would allow us to store the session secret in a k8s secret and inject the path in the config file.
Context: https://github.com/rancher/charts/pull/93

Hello @leodotcloud , thank you for reporting. Unfortunately I did not invest a lot of time to tune Authelia for Kube yet but I appreciate very much your feedback. I will have a look to see if I can do something about it quickly.
Thanks.

There are a few other credentials currently sitting in the single config file that would benefit from this (e.g. for ldap, smtp...). So an alternative could be to allow specifying multiple config files as arguments (e.g. node server/src/index.js config1.yaml config2.yaml secret1.yaml secret2.yaml ...). People could then separate the configuration in whatever way fits their needs. If the same piece of configuration was specified in a few places, the last specified one would win. Now I'm not a JS expert, but perhaps something like https://github.com/TehShrike/deepmerge could be used.

I guess the downside would be that secrets would have to be wrapped with labels, which makes it a bit awkward, e.g.
session:
secret: my-secret

This may have been fixed by 80b1428849d522f6aba2dbd0b92735b5016c8e0a, depending on your specific needs

Indeed, @aroberts is right, that commit should do the trick.


Wrong location co-ordinates

Guys, noticed that many of the request raised are by friends or family of the affected and not by themselves, and hence the co-ordinates might not help. If passing the coordinates to the rescue team, please verify the co-ordinates and mentioned location.
In this case, features like #96 could slow the rescue process down. Please double check.

Add a dialog asking whether user is requesting for self or another person before loading GPS?
This can be done in JS, but a BooleanField will be more effective in this case.

That would be better. I'll open a child issue.

Done in #122


Add Python 3.12 and Python 3.13 to build

See discussions:
https://github.com/s-weigand/setup-conda/issues/432
https://github.com/actions/runner-images/issues/9262#issuecomment-1918858684

@RLumSK pipelines are now green, we can deploy


[qtbase] Should have msg to install the correct dependencies for ubuntu

I install qtbase port from part to install gazebo port.
And I encounter the error:
ERROR: Feature "xcb": Forcing to "ON" breaks its condition:
    QT_FEATURE_thread AND TARGET XCB::XCB AND TEST_xcb_syslibs AND QT_FEATURE_xkbcommon_x11
Condition values dump:
    QT_FEATURE_thread = "ON"
    TARGET XCB::XCB found
    TEST_xcb_syslibs = "FALSE"
    QT_FEATURE_xkbcommon_x11 not evaluated

I found the solution in old issue:
https://github.com/microsoft/vcpkg/issues/16486
We should tell the user to install this like we do in many ports:
We should put msg inside qtbase and qt5-base in portfile.cmake and let the user to install the correct dependencies in ubuntu:
sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev

@talregev Do below tips in qt5-base/portfile.cmake meet your expectations?
CMake Warning at ports/qt5-base/portfile.cmake:4 (message):
  qt5-base currently requires some packages from the system package manager,
  see https://doc.qt.io/qt-5/linux-requirements.html

CMake Warning at ports/qt5-base/portfile.cmake:5 (message):
  qt5-base for qt5-x11extras requires several libraries from the system
  package manager.  Please refer to
    https://github.com/microsoft/vcpkg/blob/master/scripts/azure-pipelines/linux/provision-image.sh
    for a complete list of them.

@talregev Do below tips in qt5-base/portfile.cmake meet your expectations?
CMake Warning at ports/qt5-base/portfile.cmake:4 (message):
  qt5-base currently requires some packages from the system package manager,
  see https://doc.qt.io/qt-5/linux-requirements.html

CMake Warning at ports/qt5-base/portfile.cmake:5 (message):
  qt5-base for qt5-x11extras requires several libraries from the system
  package manager.  Please refer to
    https://github.com/microsoft/vcpkg/blob/master/scripts/azure-pipelines/linux/provision-image.sh
    for a complete list of them.

@Cheney-W Thank you for the replay! I prefer that it tell me which packages I need to install other just send me to run the script. Because in this script there many stuff that not connected to the qt5-base nor qtbase.
Can you change it to the line I wrote?

'^libxcb.*-dev' include 34 packages, are they all necessary?

'^libxcb.*-dev' include 34 packages, are they all necessary?

I try some of them and it didn't work. I am not sure if needed all, but all is working.


Can this install the right version of python?

Or do i have to go out and download the right version of python for the project I'm trying to run?

× Could not find `python.exe` through `py --list-paths` or in 'PATH'. Is Python installed?

Thats a bummer, especially considering you can only install one version of python at a time on windows without using third party tools such as conda...

It should be included in the venv!

We don't currently bootstrap uninstalled Python versions but we plan to in the future. (This will be the first piece: https://github.com/astral-sh/uv/issues/2617)

Thats a bummer, especially considering you can only install one version of python at a time on windows without using third party tools such as conda...

I'm not sure if you consider these third-party, but you can install as many Python versions as you like from both python.org directly and the Windows Store via the Pythons that are distributed by the PSF.

Oh, thank you!


Fix Inject Style

When trying to import normalize.css (https://github.com/necolas/normalize.css), I come across a small bug caused by a typo.

bah, I can't believe that made it in. Thanks for catching!


[DEMO WIP: DO NOT MERGE] Use ble utility service to read data log

Closing PR as changes are merged to another branch, but still keeping branch


Remove check for getters in promisifyAll

node-mysql sets getters on the exports object to lazy-load their internal modules to reduce memory usage. In bluebird util.js in inheritedDataKeys() (line 133) the enumerable properties of the target object are checked for being a getter or setter and if yes excluded from promisification.
I wanted to submit a PR to them to export Pool and Connection so bluebird can pick them up for promisification, but it doesn't work because bluebird excludes getters. Is there a reason for that?

Calling getters breaks promisification of mongoose.

Also you can just load all the classes to promisify yourself: Promise.promisifyAll([Connection, Pool])

I didn't know you could pass an array to promisifyAll. That would save a few lines.


run setup_frontend during pc export

All Submissions:

[x] Have you followed the guidelines stated in CONTRIBUTING.md file?
[x] Have you checked to ensure there aren't any other open Pull Requests for the desired changed?

Type of change

[x] Bug fix (non-breaking change which fixes an issue)

This improve pc export in CI setup.

Not sure what this fixes but what issue does this fix ?

The issue being fixed is similar to https://github.com/pynecone-io/pynecone/issues/814. Although that one was fixed for pc run, I think the same issue existed for pc export, which is being fixed here.

Before this fix, the execution flow is pc init -> pc run -> pc export, and pc run will start the hosting, which is not CI friendly.
This fix run the frontend compile during pc export, and I have tested to work with Netlify CI using build command pc init && pc export --no-zip --frontend-only


[FLINK-10292] Generate JobGraph in StandaloneJobClusterEntrypoint only once

What is the purpose of the change
This pull request makes JobGraph in StandaloneJobClusterEntrypoint just been generated only once
Brief change log

Generate JobGraph in StandaloneJobClusterEntrypoint only once

Verifying this change
This change is already covered by existing tests, such as ClassPathJobGraphRetrieverTest#testJobGraphRetrieval.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

@tillrohrmann This is very strange, why this PR change causes the yarn test to time out, and some applications cannot reach the RUNNING state.

It seems that it is blocked by PR #6816 .

@tillrohrmann can roughly review the PR changes before Travis turns green. Considering that it is inseparable from FLINK-10291, I expect it to catch up with the release point of flink 1.7.

Hi @yanghua, at the moment I'm busy with other things. Thus, I'm not sure whether I find the time to review this for the 1.7 release. I'll try to get back asap.

hi @tillrohrmann You know, we didn't remove the assertion when dealing with FLINK-10527. It caused the PR test to fail, so please ignore the test failure here. If you have time, you can look at this PR.

leaving...


[XAML Compiler] XAML definition without public constructor

It used to be possible to have XAML objects without a public default constructor, but now it's not. I believe that constructor is only needed when instantiating an object (e.g. <MyObject />). I'd like to know if this is supposed to work.
Example
using Avalonia.Controls;
using Avalonia.Markup.Xaml;

namespace My.Namespace
{
    public class MyWindow : Window
    {
        private readonly int _x;

        public MyWindow(int x)
        {
            InitializeComponent();

            _x = x;
        }

        private void InitializeComponent() => AvaloniaXamlLoader.Load(this);
    }
}

<Window x:Class="My.Namespace.MyWindow">
    <TextBlock>Test</TextBlock>
</Window>

Error:
Avalonia error XAMLIL: Unable to find public constructor for type ...

Duplicate of https://github.com/AvaloniaUI/Avalonia/issues/2593


Merged master dev 1.21

Merge master into dev-1.21 to keep in sync - SIG-Release 1.21 Docs team 4/4/21
/cc @reylejano @mvortizr @ChandaniM123 @tengqm

Hi @PI-Victor
Would you like some help resolving the conflicts between these two branches?

based on the discussion on slack, i will be closing this PR
/close


add-reviewers hard limit?

Howdy,
We have a simple task that can add up to 3 reviewers from a static list, however we're noticing it's only ever assigning 2. Is there a way to up this limit?
This is our .cm/gitstream.cm
manifest:
  version: 1.0

automations:
  assign_reviewers:
    if:
      - true
    run:
      - action: add-reviewers@v1
        args:
          reviewers: {{ maintainers | reject(term=pr.author) }}

maintainers:
  - PersonA
  - PersonB
  - PersonC
  - PersonD

@struct78 we tried to reproduce this issue, but we don't see any limit to the number of reviewers assigned. The only thing comes to mind is that each assigned reviewers has to have write permissions in the repo, can you verify that? If that's not the case please share the GitHub action logs

@vim-zz I should've mentioned, we're using Gitlab. In our scenario Person A, C, and D were original maintainers. Person B came joined later, now person C (for some reason) doesn't get added to PRs raised by person A, B or D. Person C has the same role permissions as everyone else.

@struct78 thanks for clarifying, what tier are you in GitLab? as far as I know you can assign only a single reviewer in GitLab: https://gitlab.com/gitlab-org/gitlab-foss/-/issues/32943#

@vim-zz Annoying, we're on the premium (silver) plan but seeing as I had to create a new group to make a public repo, that falls back to the free plan - which has 1

@struct78 can you share the pipeline logs? and person C username? You can use Slack to do that directly with me

This has been resolved after working with the wonderful team at gitStream!


Helper commands

Description
Helper commands:
pdm run
pdm test-unit
etc.
Type of change

[ ] Refactor
[ ] New feature
[ ] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[x] Configuration Update
[ ] Bump-up dependent library

Cool!
Maybe mention the usage in contributing docs?

Cool! The pdm run overides the pdm run. Is that good?

updated, just to be sure

/approve
/assign @onmete

/test all

/test remaining-required

Maybe also pdm test to have the "complete set"?

Maybe also pdm test to have the "complete set"?

good idea! lemme add it

/lgtm

bot seems unreliable lately
/lgtm


use kubectl cp --retries

Codecov Report

Merging #2781 (3571923) into main (3606b85) will increase coverage by 26.04%.
The diff coverage is n/a.

Additional details and impacted files

@@             Coverage Diff             @@
##             main    #2781       +/-   ##
===========================================
+ Coverage   41.39%   67.44%   +26.04%
===========================================
  Files          99       99
  Lines       10381    10381
===========================================
+ Hits         4297     7001     +2704
+ Misses       6084     3380     -2704

see 60 files with indirect coverage changes

Continue to review full report in Codecov by Sentry.

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


throw or throw new?

I noticed whilst debugging  #3035 that we were incorrectly using throw InvalidResponse. This results in the following error:
Uncaught TypeError: Class constructor InvalidResponse cannot be invoked without 'new'
I didn't fix it as part of that PR as I thought there may be other similar occurrences and was planning on fixing them all in one pass, but it turns out that this is the only problematic call.
However, we are quite inconsistent in the way we throw exceptions, as the standard ones accept both syntaxes (i.e. both throw Error and throw new Error are valid and should be equivalent according to the specification). We have 45 occurrences of throw X and 93 occurrences of throw new X in our current codebase.
Should we:

enforce the use of throw new X using this ESLint plugin or similar? We can specify custom exception names which would prevent that one bug from being introduced again.
modify our custom exceptions to add a factory method so that they can be called without new and consequently drop the new keyword everywhere?
not worry too much and just fix that one bug we currently have?
do something else? After all, as we improve our code coverage we will reduce the risk of these mistakes slipping through.

I'm happy to tackle this once we've reached an agreement. 👍

I tend to use throw Error because as you point out they are equivalent according to the spec. I'd be all for linting throw new X for the others!
Do you know if ESLint's new-cap rule can be used for this?

new-cap seems to be for something else, i.e. casing of the first letter of the constructor. I didn't find any standard ESLint rules that seemed relevant, I think we would have to use an additional plugin like the one I suggested.

InvalidResponse() needs to be invoked with new, which I think is an equivalent way of stating the problem. It looks like "capIsNew": true might do what we want. and capIsNewExceptions could support overriding.

Yeah this is one of those mental javascript foot-guns. Lets get a linter rule in for it. I'm in favour of using eslint-plugin-new-with-error to enforce throw new in all cases.

InvalidResponse() needs to be invoked with new, which I think is an equivalent way of stating the problem. It looks like "capIsNew": true might do what we want. and capIsNewExceptions could support overriding.

I had not spotted those sub-options, let me take a look.

So it does seem to work as expected, with one small subtlety: Error is part of a CAPS_ALLOWED list, so is not covered by this rule.
This means that @paulmelnikow won't be happy, because we can't enforce only having throw Error and @chris48s won't be happy because we can't enforce only having throw new Error. 😄
We will have to keep a mixture of both just for Error (and the other items in CAPS_ALLOWED), however, this will successfully catch bugs such as throw InvalidResponse. We will only be left with a minor style inconsistency, but in my opinion it's an acceptable trade-off and does not justify pulling in a new plugin.
Will shortly submit a pull request with my progress so far, but of course we can continue the discussion if need-be!

I've completed this quite fast, but if other maintainers think the linting should be stricter or looser or any different, please feel free to voice your concerns!


Added Goreport action and badge

added action that generates our code report on https://goreportcard.com/ and a corresponding badge to it .

Codecov Report

Merging #16 (548039f) into main (c6aad39) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #16   +/-   ##
=======================================
  Coverage   36.36%   36.36%
=======================================
  Files           7        7
  Lines         154      154
=======================================
  Hits           56       56
  Misses         92       92
  Partials        6        6

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 c6aad39...548039f. Read the comment docs.

Codecov Report

Merging #16 (548039f) into main (c6aad39) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #16   +/-   ##
=======================================
  Coverage   36.36%   36.36%
=======================================
  Files           7        7
  Lines         154      154
=======================================
  Hits           56       56
  Misses         92       92
  Partials        6        6

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 c6aad39...548039f. Read the comment docs.


Min website does not display correctly in Min browser

Hi,

That's unfortunate :).
I'm using Ubuntu 15.10 x86_64.
\fab

It looks like the page is broken at large screen resolutions. Probably, the tour page images need to use the same CSS as the landing page.

Indeed it's only visible on a large (wide) viewport, but it's also only visible in the Min browser. Safari and Google Chrome seems to render it correctly

Interesting, if I zoom out enough in chrome/safari/firefox, it breaks there too. Does this also happen on the home page? If not, I'll probably just copy that CSS for the tour.

That's really weird... When I zoom out in Chrome and Safari this is what I get. Safari's zoom is maxed out, but Chrome can go even smaller without it breaking.

@alextegelid That's the landing page, not the tour page. The landing page uses different CSS that doesn't have this problem.

This should be fixed now in 3b793492bb6eb23e91700e90320abda132e4963b.


feat: DATABASE_XXX variables and nextauth/postgresql secret can be disabled via values.yaml / helm

hi guys,
we like your helm chart and it works for version 0.5.0 very well. We are using argocd (and secret manager of gcp) and would like to store and pass our own Secrets and/or ENV variables which is currently not possible with chart version 0.5.0. Some variables are always set by default. Currently, also the postgresql and nextauth secret can not be disabled.
I would like to provide a backwards compatible PR to make this configurable through the values.yaml
With the given configuration and existing defaults, the following variables will no longer be always present:

postgresql:
  deploy: false
  auth:
    password: null
    username: null
langfuse:
  salt: null
  nextauth:
    secret: null

- DATABASE_HOST
- DATABASE_NAME
- DATABASE_PASSWORD
- DATABASE_USERNAME

as well as the secrets and their references in the pod:

nextauth
postgresql

I will shortly send a PR referencing this Issue. We are already deploying successfully with a local/customized Chart of langfuse to our cluster with argocd.

@Steffen911 happy to resolve or discuss any alternative solution to tackle the required configuration.


Beamer.of(context).navigator is null

Describe the bug
I was investigating an issue where buildPages is getting called twice for initial navigation (entering url in browser).
While debugging I did the following print and the app did crash with the error Unexpected null value..
print(Beamer.of(context).navigator);
Beamer version: 1.2.0
To Reproduce
Steps to reproduce the behavior:

In the example https://github.com/slovnicki/beamer/blob/29b928866692ddc8d5a19feefe313fefa9b48c72/examples/nested_navigation/lib/locations.dart#L13 Add the above print statement.

Expected behavior
The value Beamer.of(context).navigator should not be null.
Desktop (please complete the following information):

OS: macOS 11.4
Browser Chrome
Version 97.0.4692.99

Hi @agent3bood :wave:
Thanks for creating an issue.
It is expected that Navigator doesn't exist during the first build, as it is created in the build.
buildPages is called before Navigator is (re)build, because buildPages provides the pages to be put into Navigator.pages.


1 cm of black border on rPi4 with 7" touch screen

On my Pi4 with 7" touch screen i have a 1cm wide black border around MM. Is there a way to get rid of this? My LXDE desktop does fill the complete screen.
node v10.19.0
MM 2.10.1 (according to CHANGELOG.md) In any case the latest. I did a git pull yesterday.
All default settings in config.js
Any ideas?

@Toontje Check your overscan setting in rasperry settings/preferences. I found this helped me on a 23" touch screen

Maybe you can try this on your custom.css
body {
    margin: 10px 10px;
    height: 100%;
}

Please refer to http://forum.magicmirror.builders for support and troubleshooting.
I'm closing this issue for now. If you feel this issue should remain open, please let me know.


Click event is getting triggered unwantedly while dragging the nodes in Sigma.js

In my sigma.js webapp, I have mainly 2 types of events: one is to handle click event (to open the node's URL) and the other is to handle drag events (to be able to drag the nodes here and there in the space)
This code is responsible for handling the click event. If we click on nodes, then this opens the node's page URL:
  const renderer = new Sigma(graph, container);

  renderer.on("clickNode", ({ node }) => {
    if (!graph.getNodeAttribute(node, "hidden")) {
      window.open(graph.getNodeAttribute(node, "pageURL"), "_blank");
    }
  });

And this code is responsible for handling drag event. We can drag nodes anywhere using the mouse:
  let draggedNode: string | null = null;
  let isDragging = false;

  /* On mouse down on a node
    - we enable the drag mode
    - save in the dragged node in the state
    - highlight the node
    - disable the camera so its state is not updated */

  renderer.on("downNode", (e) => {
    isDragging = true;
    draggedNode = e.node;
    graph.setNodeAttribute(draggedNode, "highlighted", true);
  });

  // On mouse move, if the drag mode is enabled, we change the position of the draggedNode
  renderer.getMouseCaptor().on("mousemovebody", (e) => {
    if (!isDragging || !draggedNode) return;

    // Get new position of node
    const pos = renderer.viewportToGraph(e);

    graph.setNodeAttribute(draggedNode, "x", pos.x);
    graph.setNodeAttribute(draggedNode, "y", pos.y);

    // Prevent sigma to move camera:
    e.preventSigmaDefault();
    e.original.preventDefault();
    e.original.stopPropagation();
  });

  // Disable the autoscale at the first down interaction
  renderer.getMouseCaptor().on("mousedown", () => {
    if (!renderer.getCustomBBox()) renderer.setCustomBBox(renderer.getBBox());
  });

  // On mouse up, we reset the autoscaling and the dragging mode
  renderer.getMouseCaptor().on("mouseup", () => {
    if (draggedNode) {
      graph.removeNodeAttribute(draggedNode, "highlighted");
    }
    isDragging = false;
    draggedNode = null;
  });
}

The problem I am getting is that whenever I am dragging the nodes & releasing the mouse button; the click event is automatically triggered and hence the pageURL is being opened (which was supposed to open only if I click the node; and not drag the node).
Is there any way to not trigger the click event when dragging?
I have also followed some stack-overflow answers to distinguish between clicks and drags but none of them worked. Here is the CodeSandbox link for trying it hands on

Hello @sim51. Do you know if react-sigma handles this better? If yes, I can migrate to it.
Sorry for pinging


Websocket error on latest  JS webcam controller

The latest JS webcam controller push dated Nov 22nd 2023 is causing ws errors as shown below.

This is not an error, it just let you know whenever the client is disconnected or closed


[DBZ-6476] Change encoding of JDBC offset data from UTF-16 to UTF-8

Change encoding of JDBC offset data from UTF-16 to UTF-8

@subkanthi Could you please squash all the commits (and especially remove the merge one) into a single one with message
DBZ-6476 Change encoding of JDBC offset data from UTF-16 to UTF-8?
Thanks

@subkanthi Applied, thanks!


fix test

https://github.com/D-Programming-Language/phobos/pull/3014 depends on
this PR.

Auto-merge toggled on

I'm not sure if #3014 is the right idea, but fixing this test is a good idea. Thanks!


Refactor code of main.go

Refactor code of attaching kprobe and attaching skb-tracking kprobe.
Signed-off-by: Leon Hwang<EMAIL_ADDRESS>

Hey @Asphaltt , is it ready for the review?

Yes, it is ready.


Adds trigger when plugins are loaded

This PR adds an even trigger when all plugins were activated. This can be listened for in plugins.

Looks like this might cause some issues during database loading, maybe a race condition? CI is failing, in any case

Yeah there seems to be a fundamental problem - will look into it

Works now @SchrodingersGat !


[v1.1 RNN-T] rnnt full dataset optimization

add gradient clipping to fix loss NAN issue
move layer normalization to config option

@Peach-He , this is fixing for RNNT-sda optimized version? What is result WER?

@Peach-He , this is fixing for RNNT-sda optimized version? What is result WER?

this PR is optimizations for full dataset to converge to 5.8% WER

@Peach-He , this is fixing for RNNT-sda optimized version? What is result WER?

this PR is optimizations for full dataset to converge to 5.8% WER

Can you make it clear, so now democratized RNNT reached 5.8% or just stock + optimization RNNT?

@Peach-He , this is fixing for RNNT-sda optimized version? What is result WER?

this PR is optimizations for full dataset to converge to 5.8% WER

Can you make it clear, so now democratized RNNT reached 5.8% or just stock + optimization RNNT?

latest RNN-T performance data on full dataset: stock model (5.79%), optimized model (6.97%)


[Skype] Getting error: "One or more of the user ids provided is not valid."

Bot Info

SDK Platform: .NET
SDK Version: <IP_ADDRESS>
Active Channels: Skype, SfB, Web chat
Deployment Environment: Azure Bot Service

Issue Description
My bot is not responding on Skype channel. It gives following error.
400 bad request
"one or more of the user ids provided is not valid".
The bot works just fine on web chat.
You can check the demo of web chat here: https://goo.gl/kk9BMJ
Code Example
Request URL:
https://client-s.gateway.messenger.live.com/v1/users/ME/conversations/28:ac5fbb9b-975b-488c-a236-e7a157ae16b8/messages
App id: ac5fbb9b-975b-488c-a236-e7a157ae16b8
Reproduction Steps

Open the bot in Skype
Type "hi"

Expected Behavior
The bot should respond with "hello, how can I help you?"
Actual Results
400 bad request error

Glad, it started working now. Probably it takes some time to work


[BUG} Auto_id feature does not work correctly when loading deserialized object

Describe the bug
Auto_id feature does not work correctly when loading deserialized object, it will generate duplicate ids
To Reproduce
Steps to reproduce the behavior:

serialize a tree made with auto_id nodes
save to a file
In a different process, open the tree and add a node
node will have duplicated id

Expected behavior
node should be added correctly
Edit: added missing step

Noted. This will be fixed in the next release.

This must be some edge case because writing a test to simulate the reproduction of the stated bug shows that the id is unique for some reason.
The test:
    #[cfg(feature = "serde")]
    #[test]
    fn test_deserialize_tree_with_auto_id() {
        let mut tree = Tree::<i32, i32>::new(Some("Sample Tree"));
        let root = tree
            .add_node(Node::new_with_auto_id(Some(2)), None)
            .unwrap();
        let child_1 = tree
            .add_node(Node::new_with_auto_id(Some(3)), Some(&root))
            .unwrap();
        let child_2 = tree
            .add_node(Node::new_with_auto_id(Some(4)), Some(&child_1))
            .unwrap();
        let child_3 = tree
            .add_node(Node::new_with_auto_id(Some(5)), Some(&child_2))
            .unwrap();
        let serialized_tree = serde_json::to_string(&tree).unwrap();
        println!("*****************************************");
        println!("SERIALIZED TREE");
        println!("-----------------------------------------");
        println!("{}", tree);
        let mut deserialized_tree: Tree<i32, i32> = serde_json::from_str(&serialized_tree).unwrap();
        println!("*****************************************");
        println!("DESERIALIZED TREE");
        println!("-----------------------------------------");
        println!("{}", deserialized_tree.to_string());
        deserialized_tree
            .add_node(Node::new_with_auto_id(Some(6)), Some(&child_3))
            .unwrap();
        println!("*****************************************");
        println!("DESERIALIZED TREE AFTER ADDING NEW NODE");
        println!("-----------------------------------------");
        println!("{}", deserialized_tree);
    }

The result:
*****************************************
SERIALIZED TREE
-----------------------------------------
Sample Tree
***********
1: 2
└── 2: 3
    └── 3: 4
        └── 4: 5

*****************************************
DESERIALIZED TREE
-----------------------------------------
Sample Tree
***********
1: 2
└── 2: 3
    └── 3: 4
        └── 4: 5

*****************************************
DESERIALIZED TREE AFTER ADDING NEW NODE
-----------------------------------------
Sample Tree
***********
1: 2
└── 2: 3
    └── 3: 4
        └── 4: 5
            └── 5: 6

Additional information may be useful to reproduce the bug. For instance:

Do you store the serialized tree to disk or db and then read it back?

yes it must be serialized to disc then read (so new is not called) then it will reproduce

This will be fixed in the next released.

This bug has been fixed in v0.1.5. The auto_id feature now guarantees uniqueness in id generation.
The usage has also changed a bit. Now trees with automated node ids are of type Tree::<AutomatedId, T> where T is the type of the node value.
You can alias the tree type in your code to write cleaner code:
use tree_ds::prelude::*;

type AutoTree<T> = Tree<AutomatedId, T>;

let mut tree = AutoTree::<&str>::new(Some("Sample Tree"));
tree.add_node(Node::new_with_auto_id(Some("Node Value")))?;


[WIP] Add Mega-Linter

Activate Mega-Linter as a Github action workflow
Add info in README

Codecov Report

Merging #16 (95b9749) into main (566da4b) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #16   +/-   ##
=======================================
  Coverage   73.61%   73.61%
=======================================
  Files           2        2
  Lines          72       72
=======================================
  Hits           53       53
  Misses         19       19

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 566da4b...95b9749. Read the comment docs.

I have evaluated MegaLinter on its merits, but I don't think it is the solution I want to use for linting on this project.
In general, I think it is mostly beneficial to manage any linters, plugins and what versions of those are being used in the repo itself rather than outsourcing it to another project (certainly for those dependencies that exist within the same language ecosystem). For example, if I specify the version of eslint I am runing in my package.json then I know the version I run locally is the same as the one that runs in CI. If I farm it out to an external service there is potential for the versions to run with one version locally and then get a different one in CI. If I need to account for a major version change, that all happens in the PR that bumps the dependency, etc.
Obviously it is a matter of taste and some people will find this useful. I wish you luck promoting it, but I don't think it is the approach I want to follow.

I understand your point... about eslint
But if I deactivate Javascript linting, all the other ones would remain (markdown, dead links, spelling mistakes, own V8r ...)
don't you think it could be of interest ?

At the moment, I don't want to take on all that overhead. If I do want to adopt some/all of that tooling, I'd rather manage the dependencies in my own manifest as far as possible for the same reasons I prefer to do that with eslint. As I say, its a matter of taste.
If I change my mind, I'm aware your project exists :)

Your repo = your choice, no problem ;)

@chris48s would you agree if I let just the README part ?
Just to have a hearth here :p https://nvuillam.github.io/mega-linter/all_linters/

star the repo, and you're an angel :)

I have noted that you are on a mission to try and promote MegaLinter via other people's READMEs with PRs like these:

https://github.com/adrienverge/yamllint/pull/349
https://github.com/cjoudrey/graphql-schema-linter/pull/272
https://github.com/dzhu/rstfmt/pull/1
https://github.com/forcedotcom/sfdx-scanner/pull/307
https://github.com/luarocks/luacheck/pull/13
https://github.com/myint/rstcheck/pull/73
https://github.com/pinterest/ktlint/pull/1028
etc

While I wish you luck with your project and some project authors may accept your PRs, I don't plan to recommend any projects I don't use myself here.

A guy has to try ;)
And for the repos still maintained usually it works ;)
But no problem, my efforts are starting to pay, it's slowly taking off, usually with people deceived by super-linter ^^
Have a nice evening 🥳


TST: signal: convert to xp_assert_* infrastructure (pt. 1)

Manually convert tests in preparation for the array api convertion. Am working test file by test file, aming to limit the diff size to < 1kLOC per PR to keep it manageable.

[x] test_array_tools.py
[x] test_bsplines.py
[x] test_splines.py
[x]  test_czt.py
[x] test_result_type.py
[x]  test_dltisys.py
[x] test_ltisys.py
[x] test_max_len_seq.py
[x] test_fir_filter_design.py
[ ] test_filter_design.py

This is still under 1kLOC, and I think is ready from my side.

test_filter_design needs more work. Converting to draft for the time being.

I think I addressed all review comments now.

Wow, thank was quick. Thanks for the review Lucas!


Post-start hook DNS issue

Is this the right place to submit this?

[X] This is not a security vulnerability or a crashing bug
[X] This is not a question about how to use Istio

Bug Description
Hi there,
I'm running Istio in Ambient mode and I got an issue with a DB cluster (MarkLogic) namespace labeled with istio.io/dataplane-mode=ambient
There is a post-start hook responsible to create the cluster but only the boostrap host is running fine.
The joining nodes cannot talk to the boostrap host because of DNS resolution issue.
I do not use DNS proxying.
If I remove the label istio.io/dataplane-mode=ambient everything is working fine.
I assume that's because as the the Post-start hook is running the PODs are in ContainerCreating state and so no IP is assigned to them.
Is there a way to bypass this behaviour?
Thanks in advance.
Version
% istioctl version
client version: 1.23.1
control plane version: 1.23.1
data plane version: 1.23.0 (1 proxies), 1.23.1 (4 proxies)
% kubectl version
Client Version: v1.29.7
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.30.4-eks-a737599

Additional Information
No response

DNS proxying is not configured.
I've explicitly set
proxyMetadata:
# Enable basic DNS proxying

ISTIO_META_DNS_CAPTURE: "false"

# Enable automatic address allocation, optional

ISTIO_META_DNS_AUTO_ALLOCATE: "false"

I assume that's because as the the Post-start hook is running the PODs are in ContainerCreating state and so no IP is assigned to them.

This is not true. What's your error? And how about running sidecar

This is not true. What's your error? And how about running sidecar

The PODs are assigned to a node so indeed I would have expect them to have IPs assigned.
The error is that the PODs cannot resolve each others : POD-0 cannot resolve DNS of POD-1 and POD-2 and so on ....
We had used sidecar approach but it is too intrusive for us even though it is really powerful.
The ambient approach perfectly fits with our needs.

I am asking to test with sidecar mode, just want to know whether this is the ambient bug. PostStart hook is run in the container, so definitely the network setup has been done.

I am asking to test with sidecar mode, just want to know whether this is the ambient bug. PostStart hook is run in the container, so definitely the network setup has been done.

When using sidecar the behaviour is different.
The POD-1 and POD-2 are stuck in PodInitialising state
% kubectl get po -n ml -o wide
NAME                                 READY   STATUS            RESTARTS   AGE   IP               NODE                                           NOMINATED NODE   READINESS GATES
ml-cluster-0                         2/2     Running           0          25m   <IP_ADDRESS>   ip-192-168-27-196.us-west-2.compute.internal   <none>           <none>
ml-cluster-1                         0/2     PodInitializing   0          25m   <IP_ADDRESS>    ip-192-168-78-213.us-west-2.compute.internal   <none>           <none>
ml-cluster-2                         0/2     PodInitializing   0          25m   <IP_ADDRESS>   ip-192-168-50-75.us-west-2.compute.internal    <none>           <none>

Istio-init container = OK
To reproduce the issue :
I've deployed istio as follow:
istioctl install --set profile=ambient --skip-confirmation
You can use deploy MarkLogic using the Helm chart : https://github.com/marklogic/marklogic-kubernetes/releases/tag/marklogic-2.0.0
For the values.yaml file just increase the number of replicaCount :
replicaCount: 3
If using sidecar 2 ports have to be excluded by adding the following annotations:
# -- Annotations for the all deployed pods
podAnnotations:
  traffic.sidecar.istio.io/excludeOutboundPorts: "7999,7998"
  traffic.sidecar.istio.io/excludeInboundPorts : "7998,7999"
  traffic.sidecar.istio.io/includeInboundPorts : '*'


Support cancellation tokens in FastReport.Prepare

Is your feature request related to a problem? Please describe.
Sometimes background report generation needs to be cancelled, for example, when SQL is slow.
Describe the solution you'd like
I would like to pass CancellationToken to FastReport.Prepare. It would be a non-breaking change if you default the parameter to CancellationToken.None.
Describe alternatives you've considered
I see that there's an Abort method but the docs don't have any examples on how to properly use it or if it's thread safe.
I suspect that Abort only cancels the report generation but not the DB query.

Hello, what about PrepareAsync? It has a CancellationToken in params

This method is in the sources but not in the nuget package.

@Alekarfes cpuld you please add a link to the commit which resolves this?


Make apt-get.update add an extra slash so the recipe doesn't have to

Currently there's kind of an inconsistency on how pkg2appimage's apt replacement handles slashes. It adds a slash when downloading the Packages.gz file, but not when downloading DEBs themselves (which requires the recipe to have a URL ending in a slash).
This means, if the source URL is archive.ubuntu.com/ubuntu, it will download archive.ubuntu.com/ubuntu/dists/xenial/main/Packages.gz (OK), but then downloads archive.ubuntu.com/ubuntupool/[...]/pkg.deb (gets 404).
If the source URL is archive.ubuntu.com/ubuntu/, it will download archive.ubuntu.com/ubuntu//dists/xenial/main/Packages.gz, and downloads archive.ubuntu.com/ubuntu/pool/[...]/pkg.deb (OK).
This is not an issue with first-party Ubuntu and Debian repos/PPAs, which ignore double slashes, but causes issues for third-party software hosted on certain cloud providers:
Compare these two links:
https://brave-browser-apt-release.s3.brave.com/dists/stable/main/binary-amd64/Packages.gz (works)
https://brave-browser-apt-release.s3.brave.com//dists/stable/main/binary-amd64/Packages.gz (404s)
Currently, trying to make a Brave or Signal recipe will make either getting the Packages.gz file fail, or getting the DEBs themselves fail. This aims to fix this.

Thank you very much.


Attempted import error: 'File' is not exported from './typesEntity'.

/common/temp/node_modules/.pnpm/@contentful+field-editor-shared<EMAIL_ADDRESS>Attempted import error: 'File' is not exported from './typesEntity'.

We're having an issue with this error in a Rush project.
I'm not sure what context to provide but we didn't have the issue with @contentful/field-editor-shared/1.1.8.
Any advice is appreciated.

shouldn't be an issue on the latest version


404 for extract.sh [phab:T117]

Created by hanwen at 2016-04-01 12:53:14:
http://www.kythe.io/examples/#extracting-compilations-using-bazel has a link to extract.sh , which gave me a 404 from Phabricator. When I filed a bug here (and logged into Phabricator), the 404 went away.
Perhaps link to the script using a github URL which doesn't require auth?

commit a0691a0a97bb3a7b2eb34cd42283b1ac2d6f02c0

revision #1103


server: remove constraints

The constraint feature is not useful for now, and it is conflict with the
location feature we are going to implement, so we remove it here.

LGTM


Kate/start screen

Add clapperboard with hover effect to the start-screen.

Checked - no errors. Merge accepted.


Editor load times increased a lot with beta 15

Godot version
Godot 4 beta 15 (UPD: the issue persists on beta 16 too)
System information
Linux 5.15.89-1 x86_64 (Manjaro XFCE)
Issue description
When opening a godot project, the window name is changed every frame-two and shows a scene name in it, which indicates that godot for some reason reopens every scene present in the current tabs, then every instanced scene (if any). First time i tried opening project (just after the system booted) it freezed and didn't load (i Ctrl-C'ed it after a minute of nothing), second time thing described above happened. Before beta 15 everything worked fine and godot loaded just the current scene in ~15 seconds, but now it takes a lot more, even though my project is not even small, it's tiny (less than 400 lines of code including website template). My best guess for this issue is #57606
https://user-images.githubusercontent.com/77104725/215151296-5cf11a7e-9791-4731-9d58-6915949a1dfd.mp4

Steps to reproduce
Create a new project, add a few basic scenes like Player, Level etc., keep the scene tabs open, and reopen the project.
Minimal reproduction project
Beta15Lags.zip

I noticed performance issues with beta 14 as well.

I noticed performance issues with beta 14, 15 and 16 as well on Windows 10 22H2

This is an unrelated issue, as you can also reproduce it in betas prior to https://github.com/godotengine/godot/pull/57606's merge.

@elenakrittik Can you still reproduce this issue in 4.0.3-stable and 4.1-beta3?
I tested on Mageia 9 (Linux) on KDE / X11 and I can't reproduce the issue with the MRP, 4.0-beta14, beta15 and beta16 all open the project in ~6 s for me.

No

@elenakrittik Can you still reproduce this issue in 4.0.3-stable and 4.1-beta3?
I tested on Mageia 9 (Linux) on KDE / X11 and I can't reproduce the issue with the MRP, 4.0-beta14, beta15 and beta16 all open the project in ~6 s for me.

No, not anymore, 4.0.3 behaves as expected. Also i no longer use Manjaro, but EndeavourOS instead (linux 6.3.7-arch1-1 x86_64, Gnome/X11), maybe it affected the result.