Move Listenable, ValueListenable, ChangeNotifier and ValueNotifier to the Dart sdk and add listening methods

There have been several cases where developers had to reimplement these classes because they didn't want a reference to flutter in their package. As none of these classes needs anything from the Flutter SDK but they are all pretty handy it would make sense to move them from the Flutter to the Dart SDK.
At the same time, their API could be greatly improved by giving them a Stream-like listen method:
ListeningSubcription listen(void Function(ListeningSubcription) handler );

and for ValueListenable
ListeningSubscription listen(void Function(T, ListenableSubscription) handler);

to no longer having to use addListener and removeListener where you have to make sure, to store a reference of your handler.
Instead of calling removeListener you call cancel() on the returned subscription object.
The reason why the subscription is passed to the handler function too is that the handler will be able to cancel() the subscription itself if needed.
my package functional_listeners implements this listen function as an extension method and it has proven how much nicer it makes the usage of Listenables

Could it be a stream, or is the API defined to work synchronously? (Or is it just that it has no errors and no done events?)
I can see the advantage of getting the subscription passed to every callback, it's something stream listeners have work to get access to. (I could see myself add an extension listenWithSubscription helper on streams.)
That said, this is an API that can easily be implemented by a package, and something I'm not personally particularly invested in, so I don't see it becoming a high prioirty. Especially if it's hard to migrate existing Flutter code to the new implementation.

@lrhn to give some context.

interface
implementation

Listenable
ChangeNotifier

ValueListenable<T>
ValueNotifier<T>

They implement the Observer pattern and work synchronously. They are used everywhere in the Flutter Framework and are very popular for state management solutions.   My package functional_listener offers rx like extensions for them.
Especially with the advent of Dart on the server people want to use them outside of a Flutter context but can't because they are part of the Flutter SDK.  So you have to write your own which isn't compatible to the Flutter one because not even the interfaces are of the Dart SDK. Currently, you are not able to publish any package that uses Listenables that would be usable in a pure Dart program and inside a Flutter app.
Some friends and I spent considerable time optimizing the ChangeNotifier implementation in the past which was merged into Flutter.
I would keep the existing API, maybe make addListener() return a ListeningSubscription to make canceling easier even if people don't want to use the listen() function. But adding the listen()` function would not break any existing apps' code when these types were moved to the Dart SDK especially if they were added to a Dart library that is included by Flutter automatically.
I propose to add some more non-breaking features that I implemented in functional_listener's CustomValueNotifier that might probably others might find useful too.
For ChangeNotifiers

expose the number of current listeners

For ValueNotifiers:
From my CustomValueNotifier:
/// Sometimes you want a ValueNotifier where you can control when its
/// listeners are notified. With the `CustomValueNotifier` you can do this:
/// If you pass [CustomNotifierMode.always] for the [mode] parameter,
/// `notifierListeners` will be called every time you assign a value to the
/// [value] property independent of if the value is different from the
/// previous one. This can be useful when you want to trigger a rebuild everytime you
/// received ne data for instance even if the data hasn't changed.
/// If you pass [CustomNotifierMode.manual] for the [mode] parameter,
/// `notifierListeners` will not be called when you assign a value to the
/// [value] property. You have to call it manually to notify the Listeners.
/// Additionally it has a [listenerCount] property that tells you how many
/// Listeners are currently listening to the notifier.

further additions could be

optional equality function
an enable property that allows to temporarily disable notifications.

@kevmoo might be interested in this too as he recently asked about sharing business logic between Flutter and non Flutter web frameworks

Another option @escamoteur would be to publish this as a package. I don't there is a reason to have them in Dart itself...other than to avoid a package version dance.

The problem is that you cannot write a pure Dart package using this types. If you implement them yourself they are not compatible to Flutter. At least the interfaces should be inside the Dart sdk.
Am 23. Mai 2024, 19:45 +0200 schrieb Kevin Moore @.***>:

Another option @escamoteur would be to publish this as a package. I don't there is a reason to have them in Dart itself...other than to avoid a package version dance.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

So the problem is that not only are the interfaces declared by the Flutter SDK, it's also used by it, which is why it can't come from a package.

Could we create a package for these interfaces that uses conditional imports to import the flutter versions in flutter dart.library.ui and package-hosted versions in other contexts.
That'd work, right?

...turns out, it won't work because you'd still need a flutter dependency in the pubspec which won't work on the stand-along Dart SDK. 🤔

@kevmoo I mentioned on X that I had filed or joined Flutter tickets related to moving Rect, Offset, etc. into packages. I guess I only joined issues because I couldn't find any existing issues filed by me. So I don't have any links for you.
I will offer a couple examples where geometry was relevant.
First, years ago I created a geometry Dart package: https://pub.dev/packages/superdeclarative_geometry - that package couldn't operate in terms of Flutter geometry concepts because there weren't any Dart-level APIs for that.
Second, a year go I was working on direct PDF rendering with Flutter. But we wanted to create a pure Dart PDF parser. Due to the vector-graphics-style encoding of PDFs, the concept of offsets, rectangles, lines, and shapes are baked into the format. The desire to create a pure Dart parser, combined with a Flutter renderer, resulted in other unnecessary translations from a Dart rectangle to a Flutter rectangle, and a Dart offset to a Flutter offset.
These are just two that I remember now in the moment. I think I've run into similar frustrations more times than that.
BTW, a thought on packaging. I think you mentioned something like dart:shared. Maybe that was just an arbitrary name that didn't mean anything. But I would strongly suggest packaging by behavior, not packaging by some arbitrary notion that things are in both Flutter and Dart.
For example, we already have at least two completely unrelated groups of things in Flutter that we'd like in Dart: observables and geometry. I think it would be a mistake to throw both of those in the same package just because they originally came from Flutter. I think it would make a lot more sense to have dart:observerables and dart:geometry, each of which could be versions independently, used independently, and documented independently.

@matthew-carroll – thanks for the context.
Yeah, dart:shared is throw-away. Sadly "versioned independently" doesn't really fly with SDK libraries. But I agree to having clear "homes".

Is the SDK definitely the right place? Perhaps this is another wrinkle to at least keep mind. It seems like the primary goal is to be able to use the same APIs in pure Dart and Flutter for various things. This goal doesn't technically require that those things live in the Dart SDK. They could also be Dart team packages on Pub and still meet that goal equally well.
I'm sure there are other implications there, but I just wanted to make it clear that at least for any cases I've been concerned with, I had no need for those things to actually come baked into the language SDK.

@matthew-carroll – right again. Generally, we've REALLY avoided pkg:flutter depending on any other packages.
  characters: 1.3.0
  collection: 1.18.0
  material_color_utilities: 0.11.1
  meta: 1.14.0
  vector_math: 2.1.4

But I guess adding one more that (effectively) NEVER changes would be easier.

Are there any objective metrics or direct cost analysis to depending on packages?
I think we can all understand and appreciate that the extreme of Flutter depending on LOTs of packages is bad. We can all imagine a constant churn as dozens of upstream packages change and cause Flutter version rev'ing constantly. We certainly don't want that.
But, similarly, taking a stance of "adding any more packages is necessarily bad/harmful/costly" probably isn't ideal for engineering, either.
For example, Dart-team controlled packages are a completely different beast than community packages. The Dart team, which in many regards is interchangeable with the Flutter team, can make decisions about when those packages are versioned, and can also enforce very strong backwards compatibility and semantic versioning practices. So even if you added 10 more packages from the Dart team, it's not clear at all that the state of affairs would be any worse than they are currently.
This is doubly true if we're talking about adding packages to Flutter which are defined as existing Flutter APIs that are extracted to packages. That code already lives in Flutter, and Flutter already owned the consequences of that code changing. In other words, if you extract something like ChangeNotifier, any possible cause for a change to the ChangeNotifier API would already be considered a breaking change in Flutter, and require versioning Flutter. That cost is exactly the same whether ChangeNotifier sits in Flutter or in a Pub package called dart:observable.

One reason why moving these packages into the Dart sdk in my opinion is, that it would keep existing Flutter apps compile as they do know without needing anyone to change anything because Observables as Geometry aren't imported as dedicated packages in Flutter apps.
Both, Observables and geometry are so generally usable that they would make a great addition for any Dart developer outside of Flutter.
Am 29. Mai 2024, 02:17 +0200 schrieb Kevin Moore @.***>:

@matthew-carroll – right again. Generally, we've REALLY avoided pkg:flutter depending on any other packages.
characters: 1.3.0
collection: 1.18.0
material_color_utilities: 0.11.1
meta: 1.14.0
vector_math: 2.1.4
But I guess adding one more that (effectively) NEVER changes would be easier.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

@escamoteur reminds me of a related detail. @kevmoo what are your thoughts about the ability to re-export a package that you import?
There are certain vocal developers who think Flutter should solve all sorts of app problems. When pushed for specific reasons why, one reason that came up was that they were frustrated that there's no canonical package for each app requirement, e.g., payments, push notifications, database, etc.
I said that the community should solve this by creating a meta package which makes an opinionated selection of the best mobile app-centric packages in one. But then I realized that technically that can't happen because I don't think we can re-export packages that we imported, right?
If Dart made it possible to re-export the dependency packages then we could provide that meta package aimed at quickly shipping mobile apps. But also, the problem that @escamoteur wouldn't be a problem because Flutter could re-export the observable and geometry packages.

But then I realized that technically that can't happen because I don't think we can re-export packages that we imported, right?

You mean something like:
library foo;

// Library foo exports all of library `geometry`.
export 'package:geometry/geometry.dart';

@felangel I thought I tried that and it didn't work, but maybe it does. Maybe I got something wrong in the syntax.
Doing this with many packages might benefit from a pubspec level re-export. But if that export works as described, then I assume that would at least be enough to get around the concerns from @escamoteur right?

@felangel I thought I tried that and it didn't work, but maybe it does. Maybe I got something wrong in the syntax.
Doing this with many packages might benefit from a pubspec level re-export. But if that export works as described, then I assume that would at least be enough to get around the concerns from @escamoteur right?

Yeah afaik that should already work and yeah flutter could just re-export Listenable, ChangeNotifier, etc from the underlying dart package. Flutter already does this with package:meta.
library foundation;

export 'package:observable/observable.dart' show
  Listenable,
  ChangeNotifier,
  ValueListenable,
  ValueNotifier;

I can see a problem here. If I were to make a new package:observable, I likely wouldn't use the current Flutter API, which means it would be breaking for flutter to switch to using it anyway. (For example, I'd definitely use a subscription object with a cancel, instead of having a removeListener. And then Listeneable is a one-method interface, and I'd probably not even have it.
Moving the code into a dart: platform library seems unnecessary. It's in a package today, just a package that's tied to the Flutter SDK.
So we can do something, but I'm not sure it's what you'd want. It'd be better to make Flutter extract their implementation into a more reusable package. It'll probably be version-locked in the Flutter SDK, but for everybody else, it's just a package.

Upvote on extracting observable / geometry packages, and keep it in the hands of dart team or flutter team.

A few thoughts:
A. It looks like bundling into one issue both the listening method changes and pulling the API out of Flutter so it can be used in Dart contexts has confused the conversion. Maybe we should have a separate issue for the listening method changes and edit the title and original issue explaining that that part of the conversation has been moved elsewhere?
B. Being able to use The Listenable/Notifier API in pure Dart would be super helpful. For me, I like using the API for my core state management primitives. Many state management packages like Riverpod have their own equivalents to ValueNotifier (eg NotifierBase in Riverpod).
Two problems with using the Listenable/Notifier API directly for SM in your app, or for implementing/extending them in your public SM package:

Developers often want to run pure dart unit tests on business logic in their SM system. You can't do this if you're depending on Listenable-you have to spin up a widget test that runs the Flutter engine even if you're not testing anything that actually uses the Flutter engine.
Developers might want to depend on parts of their business logic from the server or from a non-flutter frontend environment (<-- this one I'm not personally familiar with but have heard of, maybe someone else can add specific examples?)
I think it'd be especially helpful if SM packages could implement Listenable instead of creating their own bespoke system. One big advantage is it'd allow for more separation of concerns and interoperability between SM packages because they could all expose public APIs that work with a common interface rather than each implementing their own bespoke listenable API.

Agree @caseycrogers – this issue is PURELY about moving EXISTING Flutter types somewhere they can be shared.
We DO NOT want to confuse that with (very valid) discussions about using Stream, etc.

Sorry for the churn here. Closing this request out in favor of https://github.com/flutter/flutter/issues/149466
The mentioned types in this issue in particular would likely be moved to a (new) package, not the Dart SDK. Instead of renaming everything, we'll start with the design issue and open up implementation issues if/when we decide to move forward.
Thanks for the inspiration @escamoteur


Fix post install & Pre-Alpha

Major changes:

remove support for other GUIs besides Tk
replace as many subprocesses as possible with pure python functions (including using non-standard-library modules)
create binary using pyinstaller via ./scripts/build-binary.sh

the installer binary also serves as the launcher binary

create desktop launcher in postInstall
read config file at start; update config file at end (only default location has been tested)

Minor changes:

determine user Downloads folder from ~/.config/user-dirs.dirs; fallback to ~/Downloads
add more logging output
replace some terminal output functions with logging functions
add some error handling for network timeouts (more to do still, though)

I don't know what your vision is for the post-install process, but I am proposing that the installer binary/script also be the command that launches the Logos app itself. So in this PR, if the binary/script is run (via the terminal or via the .desktop file), and if the LOGOS_EXE file exists and is executable, then it just attempts to start the app. If those conditions aren't met, then it transitions into the installation process. I'm open to other ideas, though--this is just what seemed logical to me.

If I am understanding correctly, will GUI users still be able to run the menu commands after an install, or does the change to launch an EXE if found negate that ability? This could just be misunderstanding on my part.

I'm not sure if the addition of the Control Panel app answers this question for you or not. As it stands, a GUI-only user has two choices after a successful install: 1) Run the installed app directly, which happens via the "LogosBible.desktop" file; or 2) Run the Control Panel app via the "LogosBible-ControlPanel.desktop" file.
There's not currently a "Delete installation" or "Reinstall" option in the Control Panel app, but if either of those options were provided, then the GUI-only user could go back through the original installation options by essentially starting over. But if they wanted to install a 2nd wine prefix for a test installation, that would currently have to be done via the CLI app.

If I am understanding correctly, will GUI users still be able to run the menu commands after an install, or does the change to launch an EXE if found negate that ability? This could just be misunderstanding on my part.

I'm not sure if the addition of the Control Panel app answers this question for you or not. As it stands, a GUI-only user has two choices after a successful install: 1) Run the installed app directly, which happens via the "LogosBible.desktop" file; or 2) Run the Control Panel app via the "LogosBible-ControlPanel.desktop" file.
There's not currently a "Delete installation" or "Reinstall" option in the Control Panel app, but if either of those options were provided, then the GUI-only user could go back through the original installation options by essentially starting over. But if they wanted to install a 2nd wine prefix for a test installation, that would currently have to be done via the CLI app.

The control panel app resolves my concern.


Update Fedora build to use latest

dnf replaces yum as of Fedora 22
only the docker package needs to be installed
'dnf clean all' after package installation minimizes the size of
intermediate layers

Sweet, thanks!

Thanks @marun!


Update workflow actions to latest

Fix various deprecation warnings.  The actions-rs and actions/*release* workflows are unmaintained; replace the former with manual Rust commands and the latter with a substitute.
Use generic content type for uploaded artifacts.  This avoids the need to run the release step once per artifact, and the content types don't seem to be attached to the final download anyway.
Also drop monthly run of Rust workflow.  We already have the cargo update PR to ensure there's a monthly CI run.  Removing the timer from the Rust job allows it to be enabled in forks for pre-PR testing without also running it periodically there.

Okay, updated!


Strange behaviour caused by adding Util.objectsAreEqual

I have a table whose selector is retrieved from template helper:
{{> tabular table=TabularTables.MyTable selector=selector id="myTable"}}

Template.myTemplate.onCreated(function(){
  this.taskSelector = new TaskSelector();
});

Template.myTemplate.helpers({
  selector: function() {
    return Template.instance().taskSelector.getQuery();
  }
});

The TaskSelector function above is a helper I use to quickly create a taskSelector - an object with methods to manipulate selector for the tabular table:
TaskSelector = function(query) {
  this.selector = new ReactiveVar(query || {});

  this.getQuery = function() {
    return this.selector.get();
  };

  /* And other methods to manipulate this.selector */
};

So what we're doing here is very usual: Inside the selector template helper of myTemplate, we return the query value retrieved from the taskSelector object.
This works as expected for version 1.2.0 of the package, but doesn't work with 1.3.0+. When upgraded to 1.3.0+ the table no longer updates when my selector changes.
I was able to locate the part of the code causing this: It's the addition of Util.objectsAreEqual here. If we remove Util.objectsAreEqual, the table is updating normally again.
The problem seems to be, when my selector is updated, the oldVal and newVal inside Util.objectsAreEqual are always the same, preventing an actual ReactiveVar set. However, I'm not sure what is causing this.

I will take a look at that area of the code, but this will be easier to debug if you can create a simple reproduction app and link to the code.

Still have the same problem.
What i see while debug this part is that template.tabular.pubSelector is having the same value of pubSelector before the call to template.tabular.pubSelector.set(pubSelector) and i can't find the code other place where template.tabular.pubSelector is setted.
var pubSelector = Util.getPubSelector(
        template.tabular.selector,
        (data.search && data.search.value) || null,
        template.tabular.searchFields,
        template.tabular.searchCaseInsensitive,
        template.tabular.splitSearchByWhitespace,
        data.columns || null
      );
      template.tabular.pubSelector.set(pubSelector);


proper global navigation

Closes #122.
Description
Adds a header as well as global navigation for the entire website, as well as fixing the HTML hierarchy for all pages.

Current Tasks

[x] Global header
[ ] Global bottom navigation
[x] HTML hierarchy fixes

I'm trying to add the bottom navigation using list elements (ul, li), but it seems like the Google Docs styles override the navigation styles as well... What should we do with this, should we add the bottom navigation on a separate PR? @zainfathoni

Yes, please.
It's not urgent at the moment.
Moreover, we will be decommissioning this page soon once #31 kicks in.

@zainfathoni Okay, this PR is ready then.


24 h Version

hello, can you please provide the code for the 24 hour variant or show what needs to be changed? I tried to change the code. the hours are also really timed. unfortunately the last number (minutes) is always zero. me and all europeans would be very grateful to you. best greetings

Yeah no problem. Currently working on it, expect an update in the next 48 hours

The "develop" branch features the updates. Check it out if it works, you may need to reconfigure the led count. As i am still at work, i haven't tested anything yet. Will update here in about 4 hours.

hello, first of all thank you very much. I've tested the changes. but without success. all variants with 24 h and or seconds have some errors. a segment is shown before the first number of minutes. this shows the last effect. the seconds are between hours and minutes and work as desired. The numbers displayed do not make any sense. in addition, the 1 of the 12 h variant would be added at the end. (1xx: yyz) is output where x and y are not correct.

 As i dont have a proper 7 segment clock around, i can't properly test it. I just use a regular straight led strip to test. I guess i need to rebuild my clock to allow proper testing soon. What would really help is a video showing the misbehaviour and a correct time next to it, so i can see what it should display. If you have Discord, please join the WLED server which is linked at the bottom of the readme.

And i don't know if you have tested the current master branch or the old develop branch. Please confirm

hello, i didn't build the layout either, just put the led strip on the floor. the original verse can also be recognized if you know how to read it. I will try to build a dummy for testing at the weekend. I think you can also test that with your watch. the seconds seem to work inf are also not that important. if the code is correct for 24 hours in your variant, the last segment should show a 1 at 10:00 p.m. and the next 5 downlights from the following 5 then show again. so you could see if it worked
Ps: i tested the develop branch

Sorry, at 22:00 the Last Segment Must Show 10 LEDs than 5 Downlights off and than 5 downlights on to Show the beginnging of the 2

I don't know if i made relevant changes in the master branch, but it worth checking out. I will rewire my current clock so i can properly test my code. It should be done by this weekend.

one more quick question. is it correct that in the code everywhere USE_24H_FORMAT. Is used. Doesn't this mean that the mapping of the 12 hours is also used for the 24 hours?

I don't quite get your question, but yes that define USE_24H_FORMAT is used to differentiate between the 12h and 24h-format to save some duplicated code.

Hello, I have now set up a test and found the following. There are currently 4 segments and the downlights. All sizes and order are correct. When AB:CD is displayed, D is always zero A, B, C are offset by one segment, e.g. 21:34 then the output is 13:40. with a time of 23:42 the output is 34:20. I have not checked the seconds. I hope you can find the error with this description.
Many thanks

I'm very proud its just this error. I already know what the mistake is as i already found it earlier, but wanted to wait for any other issues. I will fix this tomorrow.

hello, now there is a new problem, when selecting the clock dancing shadows are always displayed. I made the changes you made yesterday myself, but then there were other problems.

the error is in FX.h line106. the effect can now be started. unfortunately the segments are still offset by 1. e.g. 21:32 is displayed as 13:20.

Yeah i found that error very quickly. I just now had my clock nearby to actually test my code. Everything should work now as expected. I removed the define 24h format thing, because there is a setting in the time and macros page called "use 24h format". I used that to change the effect behaviour.

everything works as it should. Thank you for making WLED even more useful.

I finished all the printing and will attempt the 24H setup. Crossing fingers!
Thank you in advance @NeariX67 for this WLED version!

The only thing that could make a lot of mess is wiring the leds in the wrong order. It gets rather complicated to correct it in software if you don't use the same order for your digits, so just make the hardware the right way. If you consider a different order as a better layout for your clock, use that, but use the same order for all digits... The order is easily editable

I have a question, I tried to find out from the code, but couldn't find the mention of the pins.
Im using the D1mini, which pins do I need to use for the clock LEDs and which for the downlights?
Or does it stay the same as with the Standard WLED connections?

I just realized something .. I would not even require the clock module anymore, am I correct?
I build/connect this up as any other WLED connection I have made before, then in WLED settings, select the clock?

Pins are configured in npbwrapper.h, everything you need to know is in the normal WLED repository and in the readme of this fork. There is an effect called "Clock" so need to set something in the settings except enable ntp and the 24h format.
No need to configure the code.

ok, this might be a stupid question, but I am stuck ..
when I download the zip file with the code and I open it in Arduino, none of your changes are there regarding the 24H clock.
do I manually have to copy and paste your changes or am I just doing things wrong?

Hey @NeariX67 , I have another question.
So with the 24h version, I have 252 LEDs, 9 per strip, and should have 14 down lights. Where/how do I tell WLED that I have 14 down lights?

Hey @NeilvdM, as ledsPerSegment is already 9 in this repository, you don't need to change anything in the code. Just enable the 24h format in the NTP settings and you are good to go. 252 LEDs for the clock and 14 LEDs as down lights will equal 266 LEDs, so just set this as your pixel count in the wled settings and you are good to go. My effect calculates how many leds are needed (in your case 479 = 252) and uses every pixel that will come after that as a downlight. So 253-262 will be downlights.


cannot create install_dir

when user set custom install_dir, it cannot be created.

Coverage remained the same at 100.0% when pulling cc0cc85131acc915eeac5870fc2036791b77190d on sstrato:create_dri into 76f78310ce0cb9c5cca983575113762122130c81 on johnbellone:master.

@sstrato What are you setting to see this behavior? /cc @reset

i'm using chefdk(0.4.0-1), and my environment in chef  is like below
:consul => {
:version => '0.5.0',
:install_method => 'binary',
:install_dir => '/opt/consul/bin',
:datacenter => 'kfield',
:servers => ['consul0.stack'],
},

I am closing this out because of impeding #126 landing on master.


Question about accessing to the confidence threshold Values

Thank you so much for your great works!
I wanted to get the confidence threshold values when running the inference on my dataset, however, I could not find it.
Would you help me and tell me how can I access the confidence threshold values in the code?
Thanks,
Soheil.

Hi! Confidence value is stored in the confidence field of the Pose class.


Consider renaming this repository

I'd like to add this to awesome-zsh-plugins, but the name is awfully generic. Please consider renaming it to something descriptive, or even just name it after your github username.
Thanks!

@unixorn I'd be happy to have this added to the collection. I'll see what I can do to update the repo name to "TrooperT-theme"


Bug: Application error: Cannot read properties of undefined (reading 'windowIds')

Error message: Cannot read properties of undefined (reading 'windowIds')
Error stack:
TypeError: Cannot read properties of undefined (reading 'windowIds')
    at https://cdn.jsdelivr.net/npm/altair-static/build/dist/main.js:1:2094411
    at Generator.next (<anonymous>)
    at M (https://cdn.jsdelivr.net/npm/altair-static/build/dist/main.js:1:2327984)
    at A (https://cdn.jsdelivr.net/npm/altair-static/build/dist/main.js:1:2328186)
    at https://cdn.jsdelivr.net/npm/altair-static/build/dist/main.js:1:2328245
    at new O (https://cdn.jsdelivr.net/npm/altair-static/build/dist/polyfills.js:1:37004)
    at https://cdn.jsdelivr.net/npm/altair-static/build/dist/main.js:1:2328127
    at n.cleanSelectedFilesStorage (https://cdn.jsdelivr.net/npm/altair-static/build/dist/main.js:1:2094433)
    at https://cdn.jsdelivr.net/npm/altair-static/build/dist/main.js:1:2094206
    at Generator.next (<anonymous>)

When did this error occur? And does it re occur, or it happened only once?
reoccur
Please provide some helpful screenshots of the bug

When does this error occur? And does it re occur, or it happened only once? What version of Altair where you using before your last update?

Going to close this issue as stale. Feel free to comment here if that is not the case.


Pass ObsTopLevelParameters instead of a Configuration to the constructor of ioda::ObsSpace

Description
The aim of this PR is to fix the build error reported in #625.
Issue(s) addressed

fixes #625

Testing
I tried to test them using Travis CI. However, CMake fails with the following error:
CMake Error at src/CMakeLists.txt:561 (set_property):

  set_property given TEST names that do not exist:

    test_util_signal_trap

I don't think it's related to this PR, though.
Dependencies
None

Thanks for doing that @wsmigaj , we'll look into the build issue today.

Travis CI for soca fails on making oops with log:

-- [oops] (1.1.0) [abffb7c]
-- Tests have been disabled
...
CMake Error at src/CMakeLists.txt:561 (set_property):
set_property given TEST names that do not exist:
test_util_signal_trap

I'm guessing the problem is that tests are disabled. Is there a way to check if tests were disabled and not set_property in that case? @rhoneyager @travissluka.

Some issues with the test output, presumably unrelated to that pr. Looking into it right now.

Code cov is failing when the tests are OK now ...


Why is X_API_KEY now mandatory

Hey, love the bot - has been running really well.
Recently stopped working and I noticed the code changes that now require an OS API key?
I have fetched the new updates and applied for an API key, however, the doco says that the key is not mandatory?
Not sure if the OpenSea doco has not been updated or if it’s just the way the bot uses the API?

they haven't updated the docs yet - API key is now mandatory.
once you've added that new Heroku variable containing your key your bot will work as before


Add ChArUco filter

Guofang has noticed erroneous points being detected.
Python filter here is too slow.
Try C++

Not sure how to pass ChArUco boards from Python to C++. Might need to generate individual python arrays (for 2D points, 3D points etc) on the python side, and pass as numpy arrays, through Boost::python layer, into C++?

Not needed now.


Remove bbox requirement from MITAardvark and add WKT validator

Purpose and background context
This PR removes bounding box information as a requirement for MITAardvark records and adds a validator for well-known text (WKT) values for the dcat_bbox (and consequently, locn_geometry) geoshape fields. For review purposes, it might be good to view the work as two parts.
Part 1: Removing bounding box information as a requirement for MITAardvark records
The bulk of this work is done in the first commit. Some minor updates to support this were also made in the third commit.
Part 2: Adding WKT validator
The ValidateGeoshapeWKT class is an example of how we can implement universal validation methods (i.e., usable for any field methods independent of SourceRecord type) moving forward. The proposed framework is to create decorator classes representing validation methods and decorating SourceRecord field methods as-needed.

We were interested if we could add any validation earlier on in the pipeline to address the most common errors we get from indexing TIMDEX records into OpenSearch.

(a): "at least three non-collinear points required"
(b): "invalid [latitude/longitude] ; must be between [-90.0 and 90.0/-180.0 and 180.0]"

ValidateGeoshapeWKT: After initial testing and discussion (with @ghukill ), it was decided that we would limit the validation to "Is this value a valid WKT string?" There was some code earlier on that took another step forward to check if the "geometry" object (as shapely refers to it) is valid--using the shapely.is_valid and shapely.is_valid_reason methods.
Of the two most common errors described above, it would've only addressed (a). That said, we felt we would need to have a deeper understanding of shapely before using it. That is when we decided to take a step back and keep the validation simple.

How can a reviewer manually see the effects of these changes?

Review tests in geo-harvester/tests/test_records/test_validator.py.
Run make test and confirm all tests are passing

Includes new or updated dependencies?
YES
Changes expectations for external applications?
NO
What are the relevant tickets?
https://mitlibraries.atlassian.net/browse/GDT-159
Developer

[X] All new ENV is documented in README
[X] All new ENV has been added to staging and production environments
[X] All related Jira tickets are linked in commit message(s)
[X] Stakeholder approval has been confirmed (or is not needed)

Code Reviewer(s)

[x] The commit message is clear and follows our guidelines (not just this PR message)
[x] There are appropriate tests covering any new functionality
[x] The provided documentation is sufficient for understanding any new functionality introduced
[x] Any manual tests have been performed and verified
[x] New dependencies are appropriate or there were no changes

@ehanson8 and @ghukill --Please see the latest commits!
Note(s):

On the subject of creating an abstract FieldMethodValidator class -- I am definitely on board for it but would like it to be a separate effort from this PR. I need to do some reading on how to properly create an abstract decorator class. 🤔
I am interested in knowing if the proposed changes to ValidateGeoshapeWKT resolve some of the concerns with field methods returning non-string values and producing warning messages that differentiate each case.


WalletChat integration

Description
This PR contains the integration of WalletChat into the GoodDollar DAPP,
enabling users to communicate with any wallet address via the WalletChat widget.
About # (link your issue here)
How Has This Been Tested?

To test out this changes, once the DAPP is ready user should see a WalletChat widget at the top left corner next to the user's profile avatar. Clicking on the widget should then open the WallChat interface and the user would be asked to sign in (one click), once user is signed in, user can then begin to chat with any wallet address or in a community the user belongs to.
User should also see a chat icon on the transaction list, once this icon is clicked, it opens the WalletChat interface (Chat With Owner feature) and the user can chat with the sender or reciever of a transaction depending on if the user is the sender or reciever of a transaction.

Checklist:

[x] PR title matches follow: (Feature|Bug|Chore) Task Name
[x] My code follows the style guidelines of this project
[x] I have followed all the instructions described in the initial task (check Definitions of Done)
[x] I have performed a self-review of my own code
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] I have added reference to a related issue in the repository
[x] I have added a detailed description of the changes proposed in the pull request. I am as descriptive as possible, assisting reviewers as much as possible.
[x] I have added screenshots related to my pull request (for frontend tasks)
[ ] I have pasted a gif showing the feature.
[x] @mentions of the person or team responsible for reviewing proposed changes

@L03TJ3 @sirpy

Thanks for the comments all,
I will make the necessary changes

Thanks for the feedback @sirpy, i have updated the PR with the requested changes


Discussion: How to implement another cloud provider

Is an existing page relevant?
No pages for anything
What karpenter features are relevant?

How should the docs be improved?
Generic documentation about interfaces and what should be implemented in a generic way would help, instead of just giving an implementation for AWS with a lot of specific cases. Done in this way it is impossible to collaborate crafting the providers for other clouds. With this, I mean, with no documentation pages and no documentation comments in the code, how is it supposed to guess what is for Karpenter and what is just for AWS?

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

@tallaxes, would you be interested in helping out on this one?

I love to review an azure provider design so we can make sure everything is lining up nicely.

/reopen

/remove-lifecycle rotten

/triage accepted


Installation failed with kairos 3.0.10

It seems like an regression with 3.0.10. Before that, same thing was working
Its reproducible only if we choose this in vcenter

Environment: Not UKI - standard EFI installation

seems like an error from https://github.com/Foxboron/go-uefi/blob/48be911532c2b39532bd26b01f425530b8e33244/efi/signature/signature_list.go#L306

kairos is trying to call this function at here while getting pk/kek/db keys

We disabled the functionality for now as the go-uefi lib directly calls fatal and we cannot recover from that. Created a PR upstream to fix it or discuss it meanwhile and the functionality will be restored when we are sure it cannot break the installer

Fixed on sdk in https://github.com/kairos-io/kairos-sdk/releases/tag/v0.1.6
Backported to https://github.com/kairos-io/kairos-agent/releases/tag/v2.8.15
Upstream change on https://github.com/Foxboron/go-uefi/pull/21
Will be released as part of v3.0.11

v3.0.11 is out, closing but feel free to reopen if the issue persist


Fixed bash syntax error in influxdb.service

Updated: Removed erroneous spaces for stdout and stderr redirect which resulted in a broken forward.
As discussed in https://github.com/influxdb/influxdb/pull/5111

Signed the CLA

+1
@rossmcdonald ?

+1
Thanks @miili


[Question] How to start flet app async?

GUI
import flet as ft

def main(page: ft.Page):
    page.add(ft.Text("Hello, world!"))

ft.app(main)

DATA
import asyncio
import websockets
from jsonrpcclient import Ok, parse_json, request_json, request

async def work():
    uri = "ws://<IP_ADDRESS>:5000"
    async with websockets.connect(uri, ping_timeout=None) as websocket:
        sub = '{"jsonrpc": "2.0", "id": 1, "method": "subscribe", "params": [....]}'
        await websocket.send(sub)
        print(f">>> {sub}")

        async def ping():
            req = "PING"
            while True:
                await websocket.send(req)
                print(f">>> {req}")
                await asyncio.sleep(5)

        async def recv():
            while True:
                resp = await websocket.recv()
                print(f"<<< {resp}")

        await asyncio.gather(ping(), recv())

if __name__ == "__main__":
    asyncio.run(work())

how to combine this 2 files?
i need to get the data from websocket resp = await websocket.recv() and send it to GUI.
how to start flet app async and get data from resp?
Please help

I read Async apps 20 times but cant figure out how to do it (


fix: remove dependency editor

Remove dependency editor component and services from UI.
Backend changes - https://github.com/fabric8-launcher/launcher-backend/pull/564
cc: @edewit @gastaldi @bartoszmajsak @joshuawilson @invincibleJai

:+1:

:tada: This PR is included in version 3.0.12 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add conventional commits snippets

The snippets are from this repo https://github.com/honza/vim-snippets/blob/master/UltiSnips/gitcommit.snippets.
For reference, https://www.conventionalcommits.org/en/v1.0.0/.

Awesome!


Add some auto-starting runners to the typescript SDK.

Adds out-of-the-box support for FlinkRunner, DataflowRunner, and the Python Universal Local runner. Also adds a DefaultRunner which chooses between the DirectRunner and the ULR depending on the properties of the pipeline.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @pskevin


dns failed for live demo at http://landy.paolotripodi.com/

dns failed for live demo at http://landy.paolotripodi.com/

If the owner checks github pages under settings, they can have the static website under https://paolotripodi.github.io/Landy-v1.0
I have done that on my fork.


Cannot build backend docker image

The CHANGELOG file has been  removed on backend, but its still referenced on the cabal project. This is causing the build to fail.
https://github.com/IntersectMBO/govtool/blob/8522c3d62cbe354956c6458c3a46ef8a7abe9428/govtool/backend/vva-be.cabal#L22-L23
Shouldn't we retain the changelog file?

Awesome catch!


Optimize dockerfile and use google distroless as runtime image

What does this PR do

Download latest release from v2ray-core github release directly without install various helper packages. We use alpine as a builder image to speedup build process. And the OS and architecture type can be configured at built time via --build-arg

Use  gcr.io/distroless/static as runtime base image. This is a perfect base image for static built executable binaries. For more details and its advantages, please see GoogleContainerTools/distroless

The default config.json logs to stdout and stderr by default. Because this is a container, it should output to stdout instead of a file inside the container.

The final image size (Compacted size, shown on docker hub) is 12MB, which is 50% smaller than the current v2ray/official image (24MB).

OK, I have added instructions to the README, waiting for updates


🐛 Sophie not responding properly to availability question.

CC: @jimmidier @adamcogan
Please see below image of Sophie response to query about availability of employees with skills on a particular day.

Duplicated. Refer to https://github.com/SSWConsulting/SSW.SophieBot/issues/20#issuecomment-973854791


Change highlighted right-left padding to 1px

This was previously set to 6px, making it look like there were spaces between
the highlighted text and non-highlighted text. In my opinion, it looks better and
the highlight is less obtrusive when this is set to 1px.

Sorry for the delay in getting back. Do you have a screenshot comparison that shows the difference here?

I forgot to chime in on this. I tested this and I don't think reducing the padding looks good. Maybe there's something better to be done here.

Closing this due to inactivity.


How can I map each word in the display field to its timestamp in Azure speech-to-text output?

The Azure speech-to-text outputs have a display field in combinedRecognizedPhrases.  How can I map each word in the display field to its timestamp in Azure speech-to-text output?
The Azure speech-to-text output contains word-level timestamps but only for the lexical field in combinedRecognizedPhrases.
Example of Azure speech-to-text output (partial):
		{
			"recognitionStatus": "Success",
			"channel": 0,
			"offset": "PT1M41.29S",
			"duration": "PT31.27S",
			"offsetInTicks":<PHONE_NUMBER>,
			"durationInTicks": 312700000,
			"nBest": [
				{
					"confidence": 0.9715241,
					"lexical": "youtube dot com slash derek mitchell and then also live streaming behalf dot net slash mitchell 's garage so you can check me out there and then did i say histogram always say that you're gonna meet or not instagram dot com slash D mitchell design so hopefully there's links and buttons and stuff here right there anyway alright guys we're about to dive into some really cool stuff feel free to comment in the thread and i'd love to again see what you're up to and i'll try and answer your questions as we get going but let's go ahead and dive in",
					"itn": "youtube.com/derek mitchell and then also livestreamingbehalf.net/mitchell's garage so you can check me out there and then did i say histogram always say that you're gonna meet or not instagram.com/D mitchell design so hopefully there's links and buttons and stuff here right there anyway alright guys we're about to dive into some really cool stuff feel free to comment in the thread and i'd love to again see what you're up to and i'll try and answer your questions as we get going but let's go ahead and dive in",
					"maskedITN": "",
					"display": "Youtube.com/derek Mitchell and then also livestreamingbehalf.net/mitchell's garage so you can check me out there and then did I say histogram. Always say that you're gonna meet or not instagram.com/D Mitchell design, so hopefully there's links and buttons and stuff here right there anyway? Alright guys, we're about to dive into some really cool stuff. Feel free to comment in the thread and I'd love to again see what you're up to and I'll try and answer your questions as we get going. But let's go ahead and dive in.",
					"words": [
						{
							"word": "youtube",
							"offset": "PT1M41.29S",
							"duration": "PT0.41S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 4100000,
							"confidence": 0.9879842
						},
						{
							"word": "dot",
							"offset": "PT1M41.71S",
							"duration": "PT0.15S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 1500000,
							"confidence": 0.971495
						},
						{
							"word": "com",
							"offset": "PT1M41.87S",
							"duration": "PT0.51S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 5100000,
							"confidence": 0.92946804
						},
						{
							"word": "slash",
							"offset": "PT1M42.41S",
							"duration": "PT0.73S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 7300000,
							"confidence": 0.930045
						},
						{
							"word": "derek",
							"offset": "PT1M43.17S",
							"duration": "PT0.45S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 4500000,
							"confidence": 0.9679087
						},
						{
							"word": "mitchell",
							"offset": "PT1M43.63S",
							"duration": "PT0.38S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 3800000,
							"confidence": 0.9761796
						},
						{
							"word": "and",
							"offset": "PT1M44.11S",
							"duration": "PT0.43S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 4300000,
							"confidence": 0.9912365
						},
						{
							"word": "then",
							"offset": "PT1M44.55S",
							"duration": "PT0.13S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 1300000,
							"confidence": 0.99012697
						},
						{
							"word": "also",
							"offset": "PT1M44.69S",
							"duration": "PT0.29S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 2900000,
							"confidence": 0.98977005
						},
						{
							"word": "live",
							"offset": "PT1M44.99S",
							"duration": "PT0.25S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 2500000,
							"confidence": 0.98370486
						},
						{
							"word": "streaming",
							"offset": "PT1M45.25S",
							"duration": "PT0.55S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 5500000,
							"confidence": 0.9920498
						},
						{
							"word": "behalf",
							"offset": "PT1M45.83S",
							"duration": "PT0.53S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 5300000,
							"confidence": 0.8917482
						},
						{
							"word": "dot",
							"offset": "PT1M46.37S",
							"duration": "PT0.19S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 1900000,
							"confidence": 0.9815966
						},
						{
							"word": "net",
							"offset": "PT1M46.57S",
							"duration": "PT0.28S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 2800000,
							"confidence": 0.9887448
						},
						{
							"word": "slash",
							"offset": "PT1M46.88S",
							"duration": "PT0.7S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 7000000,
							"confidence": 0.98829234
						},
						{
							"word": "mitchell",
							"offset": "PT1M47.85S",
							"duration": "PT0.41S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 4100000,
							"confidence": 0.98511887
						},
						{
							"word": "'s",
							"offset": "PT1M48.27S",
							"duration": "PT0.05S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 500000,
							"confidence": 0.95022047
						},
						{
							"word": "garage",
							"offset": "PT1M48.33S",
							"duration": "PT0.55S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 5500000,
							"confidence": 0.9919236
						},
						{
							"word": "so",
							"offset": "PT1M48.91S",
							"duration": "PT0.13S",
							"offsetInTicks":<PHONE_NUMBER>,
							"durationInTicks": 1300000,
							"confidence": 0.9841132
						},

The words list has word-level timestamps but only for the words in the lexical field in combinedRecognizedPhrases, but not for the words in the display field. E.g., the word Youtube.com/derek Mitchell has no timestamp (since it's only in the display field and not in the lexical field).

I believe the word level timings are always based on the lexical result. @HenryvanderVegte is that changeable?

With the 3.1 version of the API (currently in preview) you can request word-level timestamps on the display form with the displayFormWordLevelTimestampsEnabled property.

Awesome, thanks!


Add FAQ

close #42

Adding the example changes and you will get:

Good point, thanks @maxxst

:yellow_heart: :+1:


Retry button on failed completion

If there was an error user should be able to click the button to re-generate answer. It will remove previous error and output and answer in its place.

Hi sir @dartpain , I'm interested in work on this issue. Could you please provide me the location of the code ???


[Issue] Under tasks page, UI is breaking under all tabs(all tasks filter) on smaller devices

Description:
On Tasks Page, under small screens when all tasks are filtered the UI is breaking.
Note: This is not happening for other task statuses like assigned, needs review etc.
Step to Reproduce:

Go to RDS Tasks page.
Shrink the screen/ Move to responsive view and select the devices below 600px, and selects all tasks from filter, UI starts breaking from this point
UI remain as expected on all other tabs other than all tasks tab

Video Reference:
https://github.com/Real-Dev-Squad/website-status/assets/75213145/7592694b-2251-45af-878b-685bf308cdd8
ETA - 14th Oct
Breakdown:
Start Date: 7th Oct
Design Doc - 1 day
Dev - 2-3 days
Review - 3-4 days

Closing this as this is resolved under the Issue-928


Change DEFAULT_PER_PAGE to 999

Allow Ctrl-F searches in lieu of search functionality...

oops...
Ok looks like my first shot was pertaining to the database which isn't what we want ... am I right in thinking that editing config/application.yml is what we want?


Added millisecond support for NSDate objects

JSONModel was failing to parse NSDate values with milliseconds, for example "2013-11-27T05:00:00.000Z". I created a fork of JSONModel and made a fix, including an additional unit test case. Could you please review it and pull it into the main project if it looks good?
 The api tha i'm calling has the date formatter:
"start_date":"2016-02-02T06:59:17.000+01:00"
how can put the value in an NSDate *start_date of JSONModel ?

Er, that format should work - it is valid in the ISO8601 spec. Is it currently rejected?

To be honest, I think we should bite the bullet and include a dependency. That's @icanzilb's call though.

Or alternatively include the files in JSONModel with some kind of prefix to prevent collision.

See #437.

Suppose for a moment that the format of my day is not iso8601 .. I saw the documentation you can use these methods. Where they should be placed?
`@implementation JSONValueTransformer (CustomTransformer)

(NSDate )NSDateFromNSString:(NSString)string {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:APIDateFormat];
return [formatter dateFromString:string];
}

(NSString *)JSONObjectFromNSDate:(NSDate *)date {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:APIDateFormat];
return [formatter stringFromDate:date];
}

@end`

You could do that. The code for that can be anywhere in your project.
It might be better to use a custom setter in that case though - otherwise you're overriding NSDate serialization for every use of JSONModel in your entire project (including dependencies).

@billinghamj Can you give an example of the custom setter you a referring to? Are you suggesting adding a custom setter on the NSDate property on the JSONModel subclass?

@fergalrooney e.g.:
- (void)setSomeDateWithNSString:(NSString *)string
{
  self.someDate = [ISO8601 parse:string];
}

@billinghamj Ahhh, gotcha. So make the JSONModel property a string and add a new property for your date representation...

@fergalrooney Nope - the property doesn't need to change at all. It would still be an NSDate. JSONModel just checks whether you have some custom logic for setting the date before doing it automatically.
For completeness:
@interface MyClass

@property (nonatomic, strong) NSDate *someDate;

@end

@implementation MyClass

- (void)setSomeDateWithNSString:(NSString *)string
{
  self.someDate = [ISO8601 parse:string];
}

@end

Then to use it:
NSString *json = @"{\"someDate\": \"2016-01-01T00:00:00Z\"}";
MyClass *obj = [[MyClass alloc] initWithString:json];

// obj.someDate is now an NSDate representing 1st Jan 2016

@billinghamj Fantastic. Appreciate the help!


java.sql.SQLException: Connection is closed

Environment
HikariCP version: 2.5.1
JDK version     : 1.8.0_111
Database        : PostgreSQL

I am frequently getting this exception :

javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not prepare statement
    at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:147)
    at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:155)
    at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1423)
    at org.hibernate.query.Query.getResultList(Query.java:146)
    at org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getResultList(CriteriaQueryTypeQueryAdapter.java:72)
    at com.inmobi.programmatics.myservice.dao.impl.AbstractDAOImpl.getByIds(AbstractDAOImpl.java:117)
Caused by: org.hibernate.exception.GenericJDBCException: could not prepare statement
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)
    at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:182)
    at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:148)
    at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1940)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1909)
Caused by: java.sql.SQLException: Connection is closed
    at com.zaxxer.hikari.pool.ProxyConnection$ClosedConnection$1.invoke(ProxyConnection.java:469)
    at com.sun.proxy.$Proxy66.prepareStatement(Unknown Source)
    at com.zaxxer.hikari.pool.ProxyConnection.prepareStatement(ProxyConnection.java:310)
    at com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement(HikariProxyConnection.java)
    at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:146)
    at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:172)

Here is my configuration for using HikariCP with JPA Hibernate :

    JpaPersistModule jpaPersistModule = new JpaPersistModule("persistenceConfig");
    final Map<String, Object> properties = new HashMap<>();

    properties.put("hibernate.hikari.dataSource.url",
            "jdbc:postgresql://" + configurationData.getDBHost() + ":" + configurationData.getDBPort()
                    + "/" + configurationData.getDBName() + "?stringtype=unspecified");
    properties.put("hibernate.hikari.dataSource.user", configurationData.getDBUser());
    properties.put("hibernate.hikari.dataSource.password", configurationData.getDBPassword());
    properties.put("hibernate.hikari.minimumIdle", "2");
    properties.put("hibernate.hikari.maximumPoolSize", "8");
    properties.put("hibernate.hikari.connectionTimeout", "30000");
    properties.put("hibernate.hikari.idleTimeout", "60000");
    properties.put("hibernate.hikari.poolName", "master_pool");
    properties.put("hibernate.hikari.leakDetectionThreshold", "60000");
    properties.put("hibernate.hikari.maxLifetime", "600000");
    properties.put("hibernate.hikari.connectionTestQuery", "select 1");
    properties.put("hibernate.hikari.connectionInitSql", "select 1");

Here is my peristence.xml for JPA:

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
             http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
             version="2.1">

    <persistence-unit name="persistenceConfig" transaction-type="RESOURCE_LOCAL">

        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL94Dialect"/>
            <property name="hibernate.hbm2ddl.auto" value="validate"/>
            <property name="hibernate.jdbc.time_zone" value="UTC"/>
            <property name="hibernate.jdbc.batch_size" value="25"/>

            <property name="hibernate.connection.provider_class" value="org.hibernate.hikaricp.internal.HikariCPConnectionProvider"/>
            <property name="hibernate.hikari.dataSourceClassName" value="org.postgresql.ds.PGSimpleDataSource"/>

        </properties>

    </persistence-unit>

</persistence>

I have checked idle_in_transaction_session_timeout in postgres db is 1 hour. It means there is no issue from db side.
I have tried to adjust hikaricp configuration. But it is not helping.
Initially I thought it maybe because of leak connection for which I added leakDetectionThreshold to 60 sec.
Then again I thought it maybe because of getting invalid connection from pool for which I have set connectionTestQuery. But it's also not helping.
I have checked there is maximum 1 or 2 connection are active at any time. So it can't be maxpool size issue.
I have looked into this stackoverflow question. It is not making any sense for my problem statement as I am using entitymanager with Guice Transactional.So I don't need to care about connection closing which will take care by Guice Transactional.
Can anyone help with it ?

 Try to change the Driver version and see how it works.

So for postgresql driver I am using 42.1.4 version.
<dependency>                 <groupId>org.postgresql</groupId>                 <artifactId>postgresql</artifactId>                 <version>42.1.4</version>             </dependency>
Should I update to latest one ? My psql server is running on version 10.6 .

@ramukg I always recommend being on the latest driver available from the DB vendor.  Reading the driver change log might also reveal whether the issue was obviously fixed or not (though it depends on how well the change log is maintained).

@brettwooldridge What's your thought ? Should I update HikariCP version to latest one and also postgresql version ? Will it help ?

If using the latest driver, I recommend not setting a test query.  You can, but performance may be slightly worse as a result, and timeouts not as precise.

@brettwooldridge  I have removed connectionTestQuery & update org.postgresql version to 42.2.5 (latest one) & reduced the minimumIdle connection from 2 to 1. Now string I am getting exception : java.sql.SQLException: Connection is closed  but it is less frequent but it is still occur what else can I do. But connection is closed exception is unacceptable for me.

I am facing the same issue with Oracle and the below versions
HikariCP : 2.7.8
JDK: 1.8.0_192
Springboot: 2.0.1.RELEASE
Oracle JDBC driver: <IP_ADDRESS>.0

@paulharte I definitely recommend upgrading to v3.3.1 to see if the error still occurs.  Also, consider shortening the maxLifeTime -- or at least determining who/why the connection is being severed.

Same issue here, sometimes, while reading a BLOB from Oracle, for different blobs. A previous version of the software used the Tomcat pool and did not give the exception Caused by: java.sql.SQLRecoverableException: Closed Connection at oracle.sql.BLOB.getDBAccess(BLOB.java:1289).
Versions:

Spring boot 2.1.1.RELEASE
(and so)  com.zaxxer:HikariCP:jar: 3.2.0 (from the maven build)
Oracle: ojdbc6/<IP_ADDRESS>.0
JDK: Openjdk version "1.8.0_191" OpenJDK Runtime Environment (build 1.8.0_191-b12) OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

Hey Brett,
I updated, as you suggested, unfortunately the issue still persists. The disconnect is caused by DB maintenance/outage, but we were hopeful that hikari would reconnect when a user tries to access after the DB comes back. Currently, we have to bounce. Is our maxLifetime too long?
Here are our versions now:
HikariCP: 3.2.0
JDK: 1.8.0_192
Springboot: 2.1.3.RELEASE
Oracle JDBC driver: <IP_ADDRESS>.0
hikari config:
datasource:
hikari:
connectionTimeout: 6000
maxLifetime: 900000

I am facing this same issue. I followed the logs and found the trend -

java.lang.Exception: Apparent connection leak detected - Usually this happens in some of the queries, once in few hours, but soon 'was returned to the pool' gets printed and connection is returned to the pool. This thing doesn't bother my prod app much.
But In between, 'Apparent connection leak detected' gets printed but that connection is never returned to the pool eventually.

After few days (approx a week) of the service being UP, when maxPoolSize no. of connections got exhausted(not returned to the pool), org.hibernate.exception.GenericJDBCException: could not prepare statement || Caused by: java.sql.SQLException: Connection is closed starts getting printed and application is apparently dead as no DB call can be made after that.

I tried to tweak the hikari configurations but no help.
At last, I am thinking of hack i.e. to kill the connection after some time (lets say 2 min) if its is out of the pool whether it is an in-use connection or whatever its condition is. Automatically, new connection will be added to pool and my service will keeps on running. Is this thinking right? (I can afford this considering I can kill if my query taking more than 2 min).
FYI - EntityManager should be returning connection back to CP, as I am using Guice Transactional.
Is there any HIKARI config setting to achieve above use case.
Current Config -
Database        : PostgreSQL/

org.hibernate
hibernate-hikaricp
5.2.10.Final

com.zaxxer:HikariCP:jar: 2.5.1.jar (from the maven build)
hikari.minimumIdle=1
hikari.maximumPoolSize=8
hikari.maxLifetime=600000
hikari.connectionTimeout=30000
hikari.leakDetectionThreshold=60000
hikari.idleTimeout=60000
hikari.connectionInitSql=select 1
@brettwooldridge sir, can you please help me with this. If we can get around this error without killing connection (the way I am suggesting), that will be a better way.
Thanks.

@varunvohra : could we hack this by setting the hikari.maximumPoolSize to something much larger? Does that make sense with what you have observed?

@brettwooldridge I think, this isn't driver problem, but the reason is that the framwork higher level than HikariCP reuse the broken HikariProxyConnection.  Because please see the thread dump, the exception Connection is closed isn't Driver connection class, but ocuurs at ProxyConnection$ClosedConnection$1 :
Caused by: java.sql.SQLException: Connection is closed
    at com.zaxxer.hikari.pool.ProxyConnection$ClosedConnection$1.invoke(ProxyConnection.java:469)
    at com.sun.proxy.$Proxy66.prepareStatement(Unknown Source)
    at com.zaxxer.hikari.pool.ProxyConnection.prepareStatement(ProxyConnection.java:310)
    at com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement(HikariProxyConnection.java)
    at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:146)
    at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:172)

I am using latest DB driver MYsql 8 and getting same exception , did anyone get root cause and fix ?
                   <dependency>
	         	<groupId>mysql</groupId>
		        <artifactId>mysql-connector-java</artifactId>
		        <version>8.0.11</version>
	        </dependency>

Did anyone found a solution?


'transform' command modifies module dependency reference set files

Running a transformation on an existing release .zip with eg. the example script on the documentation page also modifies module dependency reference set files if any of the last two columns, sourceEffectiveTime and targetEffectiveTime contain blanks:
$ rf2 transform SnomedCT_RF2_PRODUCTION_20190131T120000Z.zip \
"effectiveTime = 'Concept'.equals(_file.getType()) ? '20190201' : effectiveTime"

Resulting output:
[...]
Started Transforming '/path/to/Full/Refset/Metadata/der2_ssRefset_ModuleDependencyFull_<ns>_<effectiveTime>.txt'
Total lines: '472'
Modified lines: '8'
Finished Transforming '/path/to/Full/Refset/Metadata/der2_ssRefset_ModuleDependencyFull_<ns>_<effectiveTime>.txt' [2.582 ms]
[...]

Thank you for reporting the issue @apeteri! Fixed in 7d3df29. Will be available in the next 0.4.0 release.


fixing NaT handling

This is a small change but please check it works on your end (I'm pretty sure our DBs are all same types, etc. but it's time columns, probably best to check).
When I was looking into the branch, I had nothing in the sensor table, which mean the _SpikeAlerts suffixes were all NAs, including NaT for last_seen_SpikeAlerts. This NaT was having issues with the not_seen_recently comparison -- weirdly it looks as if NaT cast to Date wasn't comparing correctly.
I this would be encountered when a sensor was added as well, so made sense to try and get a solution instead of just doing some mockup initialization stuff.
When I left it as a timestamp it also wasn't comparing correctly (np.datetime64 vs datetime). assumed that the date cast was to make it compare right, and not because we are especially concerned with removing the timestamp. I did some reading and decided it was probably best to cast the today-30 calculation to numpy/datetime64 -- now it worked well for me on the first initialization and future runs. I didn't mock up an expired sensor, but it's the same comparison so I don't think it'd be an issue.

This is great and makes total sense!
I thought it worked with new sensors, but that comparison definitely felt a little "ducktaped"
Great improvement! I'm going to test on my machine to verify and then merge!


Handling of non-alphanumeric characters in link content

Example: an ampersand in a page title ending up in the content parameter and potentially borking the whole thing. Any non-alphanumeric character should be accounted for and removed from all parameters.

Mostly fixed in this merge, but a future update will be required to allow this to work on HTML char codes such as —.


Update googlePlus.js

removed ioskey and iosapikey fields because its not necessary anymore since 4.0 version of the googleplus plugin

it came to my mind that for backwards compatibility it might actually be better to keep the option to supply an ios api key... sorry my bad.


[Type hints] Pylance is confused by type(parameter_name) instructions

 Environment data

Language Server version: 2023.10.11

OS and version: linux x64 (arch linux ; Linux arch-linux 6.1.56-1-lts  SMP PREEMPT_DYNAMIC Fri, 06 Oct 2023 14:13:03 +0000 x86_64 GNU/Linux)

Python version (and distribution if applicable, e.g. Anaconda): python 3.11.5

python.analysis.indexing: true

python.analysis.typeCheckingMode: off

Visual Studio Code Insiders About data panel :

Property
Value

Version
1.84.0-insider

Commit
55d1cfea45b665bb54e46d11bd3ccddf9e66108b

Date
2023-10-09T06:11:32.070Z

Electron
25.8.4

ElectronBuildId
24154031

Chromium:
114.0.5735.289

Node.js
18.15.0

V8
<IP_ADDRESS>-electron.0

OS
Linux x64 6.1.56-1-lts

Note : this issue was also reproduced in Pylance v2023.10.10 with regular releases of Visual Studio Code (not insiders)
And also with VSCodium project, but this is orthogonal to this problem as support is not official I believe.

 Code Snippet

from dataclasses import dataclass
from typing import cast

@dataclass
class Other:
    name : str

class HintBug :
    name : str
    others : list[Other]

    def __eq__(self, other: object) -> bool:
        if type(self) != type(other) :  # <-- That's where the issue shows up : the type(xxx) instruction breaks completion
            return False
        other = cast(Other, other)  # This is optional but helps to write the custom comparison code, it does not seem to impact autocompletion at this point
        self.name # <-- self. does not raise autocompletion, self.name type hint (mouse hover) is : "(function) name: never"

Note about variable names  :
The __eq__ method takes a __value parameter, but as names are optional one can change the signature to other, as it is done in other programming languages, so I did it for code clarity but the issue still shows up here  :
    def __eq__(self, __value: object) -> bool:
        if type(self) != type(__value) :
            return False
        self.name # <-- Still not recognized as a member variable !

Observations
Conditions to make the autocompletion work :

:warning: This code is not complete on purpose and shows the state right before the breaking change (I discovered that while renaming the  __value variable into other)
:warning: Second observation : I would have expected Pylance to show me that the other variable at this point of code is unbound and is invalid. This was working on previous version, why nothing shows up here ?

How to break it
Type information doesn't change, but if you try to use the type(...) instruction on __value, then it breaks.
Surprisingly, it does not break when executed on self variable, it's really an issue with the __value variable (and probably with regular parameters variables, it does not have to be named __value for this error to occur) !

-> Nothing seems to be caught by the server in the logs, but they are attached anyway.
Here you can find the code sample archive with the logs bundled in logs.txt :
pylance_bug.zip
 Repro Steps

Comment out the code below :
  #      if type(self) != type(__value) :
  #       return False

Try to write self.name and trigger autocompletion while writing : -> works as it should, completion should suggest "self.name"

Uncomment the above block of code and try to type in self.name again, same procedure -> autocompletion is not triggered and the pop up shows the No suggestions. message.

  I appreciate the detail you provided.
This is a bug in the type narrowing behavior for the type(x) is T and type(x) == T type guards in pyright. (Pyright is the static type checker upon which pylance is built.) If you're interested learning more about type narrowing and type guards, refer to this documentation.
This bug will be fixed in the next release of pyright and included in a future release of pylance.
Here's what autocomplete looks like with the bug fix in place:

@erictraut, wow I'm so impressed ! I wrote that like 25 minutes ago and you already took care of it, that's very nice !
I saw your PR and I'm glad the fix is actually so contained, and the tests that goes with it will serve as a non-regression test.
Thank you very much for the extremely fast turnaround !
As a developer coming from the C/C++/C# world, using type hints in Python is really important as part of the whole workflow, and that really makes or breaks the experience for me.
To be honest I'm quite out of words here :smile:

This issue has been fixed in prerelease version 2023.10.21, which we've just released. You can find the changelog here: CHANGELOG.md


Added support for custom private routes

Tested, described reasoning in the following issue:
https://github.com/terraform-aws-modules/terraform-aws-vpc/issues/740

Hello, what is the status here? That would be good to have such feature in this module.

@khdevel We will resume reviewing and accepting PRs like this one a bit later. We are busy with other priorities (e.g. updating code for AWS provider v4) at the moment.


Oauth workflow is not presented in a new thread until there is a chat conversation involving no oauth is made.

version-
{
"github.com/otto8-ai/tools": "db892b7eda6056f2c2ed691b82ff8fea180f1b21",
"otto": "v0.0.0-dev+043d1c8c"
}
Steps to reproduce the problem:

Create an agent with any tool that requires oauth flow (gmail tool in my case)
Start a new thread and make a conversation about email.
Notice that user is not presented with oauth workflow.
Make any other conversation that does not involve gmail tool call.
Make a conversation about email . Now user will be presented with oauth workflow.

Expected Behavior:
User should be presented with oauth workflow when the first conversation in the thread requires oauth workflow to be presented.
https://github.com/user-attachments/assets/bd330be5-d6b6-4dfb-a859-5fb902bb3da2
Note - This issue is also seen when testing with user ui.

This issue is not seen anymore when testing with latest builds.


Is this project dead?

It doesn't seem to be on the deckbrew plugin store anymore, and the actual plugin itself doesn't seem to work correctly on the deck.

Working fulltime has honestly been killing my ability to work much on personal projects.
I'll see if I can get something going between christmas and new years, but no promises.

Thanks, I hope so, this project seems like a way better alternative than running a spotify client as a game in the background, its causing some issues for me right now with EmulationStation and other emulators/games. So hopefully this comes back, I'd love to see it working.

This project isn't meant to replace Spotify's client entirely. I unfortunately cannot play spotify titles from the extension alone.
SPDCK only allows control of a currently running spotify player, be that as a program on your deck, your phone or a spotify compatible speaker


Gradle plugin incorrectly caching SNAPSHOT versions of contracts

In GradleContractsDownloader, we cache downloaded contracts based off the GAV coordinates (groupId:artifactId:version:classifier) of the artifact, but this doesn't account for the changing nature of SNAPSHOT versions.
I think we could have an option to skip caching altogether as a field in one of the extension blocks, or perhaps just explicitly handle SNAPSHOT versions.

Hmm and what if you apply the --refresh-dependencies - doesn't it help? Or do you mean that the problem is in how we use Aether as such?

Just tested --refresh-dependencies-- no dice. I think that flag affects only gradle's out-of-the-box dependency management, but we're caching directly from the plugin in GradleContractsDownloader (I don't think we even go through Aether if there's a cache hit).
If you stop the gradle daemon with --stop then the cache will be cleared and we'll redownload the contracts through Aether, but that's kind of a destructive workaround.


Add white color behind the carousel image listing row.

Also in links listing

Done. Please review.


[src] - adding scale down docs and testing

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@e958b7d). Click here to learn what that means.
The diff coverage is 58.92%.

@@           Coverage Diff            @@
##             master      #2   +/-   ##
========================================
  Coverage          ?   3.77%
  Complexity        ?      37
========================================
  Files             ?     130
  Lines             ?    3734
  Branches          ?     353
========================================
  Hits              ?     141
  Misses            ?    3582
  Partials          ?      11


Tensorflow-rocm for ROCm v3.10.0

After installing ROCm v.3.10.0 and TF-ROCm 2.3.2, I got the following error:
2020-12-05 17:07:04.336041: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libamdhip64.so *** stack smashing detected ***: <unknown> terminated Aborted (core dumped)
I found this error at this issue #652. Probably, due to the incompatibility between ROCm v3.10.0 and TF-Rocm. The TF-Rocm release compatible with ROCm v3.10.0 would be helpful.

2020-12-05 23:24:55.988244: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libamdhip64.so
*** stack smashing detected ***: <unknown> terminated

same with rocm-3.10 on centos8...

@Djip007 below ares the steps I downgraded to ROCm 3.9 and installed the compatible TF-ROCm. I tested it on Ubuntu, not sure CentosOS. Hope this helps.
I strictly followed the ROCm installation instructions in the Install Rocm with minor modifications. Check the TF-Rocm for the supported Rocm versions.
Notes & Modifications:

Fresh installation is recommended.
In step 2, change to:
wget -q -O - https://repo.radeon.com/rocm/apt/x.x.x/rocm.gpg.key | sudo apt-key add - echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/x.x.x/ xenial main' | sudo tee /etc/apt/sources.list.d/rocm.list

that x.x.x is the version. E.g. for ROCm v3.9, x.x.x = 3.9

After installing ROCm, install TF-ROCm by typing pip3 install tensorflow-rocm.
-- If errors "libhipsparse or librccl" raise, install them by typing sudo apt install <package> && sudo ldconfig. If more errors of missing package, repeat the above step to install them and refresh cache.

@quocdat32461997 :
Thanks... well if someone need it for centOS8 you "simply" have to change the repos config from:
[ROCm]
name=ROCm
baseurl=https://repo.radeon.com/rocm/centos8/rpm
enabled=1
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key

to
[ROCm]
name=ROCm
baseurl=https://repo.radeon.com/rocm/centos8/3.9.1
enabled=1
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key

(all release have his directory : https://repo.radeon.com/rocm/centos8/  (3.5.1 / 3.7 / 3.8 / ...))
but well in my case a have au RX480 GPU that have other bug ;)

It is weired that tensorflow_rocm-2.3.3 didnt release, yet.
I cannot wait for offcial, have to compile by myself. Again extremely slow.
Anyone who interested it, could clone https://gitub.com/ROCmSoftwarePlatform/tensorflow-upstream and checkout r2.3-rocm-enhanced branch.

The r1.15-rocm-enhanced branch still seems to fail to compile however :/

2.3.3 had been released.
https://pypi.org/project/tensorflow-rocm
:smile:

Great. Close this.

thansk for your articles in Medium....:D
But i do all f thing you say...
and when i 'rocm-smi' in terminal
======================= ROCm System Management Interface =======================
WARNING: No AMD GPUs specified
================================= Concise Info =================================
GPU  Temp  AvgPwr  SCLK  MCLK  Fan  Perf  PwrCap  VRAM%  GPU%
============================= End of ROCm SMI Log ==============================
so what can i do ???
my GPU == AMD Radeon R7 M265

@BahramianArmin
just checked. Your GPU is not supported by either ROCm or TF-ROCm. Based on this, your GPU is not supported. I guess that's why it said No AMD GPUs specified.


[REF-3098] DeprecationWarning with blank template

Describe the bug
Minimal reflex app emits warning about missing _var_is_string.
DeprecationWarning: Creating a Var from a string without specifying _var_is_string has been deprecated in version 0.5.4 Specify _var_is_string=False to create a Var that is
not a string literal. In the future, creating a Var from a string will be treated as a string literal by default. It will be completely removed in 0.6.0

Maybe we can add a test for the starter templates which checks for unwanted errors/warnings like these? Blank template should only emit something like this:
Compiling: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 13/13 0:00:00
App running at: http://localhost:3000

To Reproduce
Steps to reproduce the behavior:

Create a reflex project with blank template (reflex init)
reflex run

Expected behavior
No warnings
Specifics (please complete the following information):

Python Version: 3.12.4
Reflex Version: main branch
OS: arch

REF-3098

Not reproducing the issue on 0.5.4a3
I think #3470 and #3473 were intended to fix this deprecation warning coming from the framework.
Can you retest on the latest main and reopen if the issue persists?


In item status panels, item names should be displayed with an uppercase letter

Description

Improves text perception
Screenshots

nuh

don't agree and don't see what it would change


Signed-off-by: Sebastian Andrzej Siewior<EMAIL_ADDRESS>

(Side note: It's annoying that links with line numbers don't work for markdown files, because GitHub always attempts to display them rendered.)

Good for 1.1.1 too.

Merged to master.  1.1.1 did some funky stuff and ended up with way too large a commit.
I think 1.1.1 should be a separate PR.

On 2020-04-27 16:12:47 [-0700], Pauli wrote:

Merged to master.  1.1.1 did some funky stuff and ended up with way too large a commit.
I think 1.1.1 should be a separate PR.
Should I prepare a PR for 1.1.1?

Sebastian

Should I prepare a PR for 1.1.1?

Yes, that would be appreciated.


libheif: add patch for CVE-2019-11471

Motivation for this change
Should resolve https://github.com/NixOS/nixpkgs/issues/60839
Needed a bit of modification from upstream changeset.
Unfortunately this project doesn't have any fixed tests as such.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[x] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Pushed to master directly 9c4d318f, as the amount of rebuild is quite low (a couple hundred altogether).


Create a standalone HBase Thrift server example

Deprioritized, closing. If anyone feels strongly about this, please reply/reopen! :)


Y24-007 Updates to PBMC donor pooling - create plate

User story
As a user of the scRNA Core pipeline, I would like updates to the PBMC Donor pooling to support GEM-X chip.
Who are the primary contacts for this story
Katy, Lesley, Abby
Who is the nominated tester for UAT
Lesley, Abby
Acceptance criteria
To be considered successful the solution must allow:

[ ] Replace the lookup table for the number of source samples according to the chip type decided. Currently, this table (copy of Cardinal's) is used for 1-96 samples and a default number (16) for the number of pools is assumed for more samples.
[ ] Add the constraint around the collection sites, as with Cardinal (if any) to donor pooling. At the time of writing this story, the requirement is not specified.
[ ] Update pooling algorithm for an even distribution of samples across pools. For example, for 32 samples with same study and project, and unique donors, it generates 3 pools as expected but the sizes are 8, 8, and 16. It is because of the halving of the biggest pools for distribution done by the algorithm. They should be 11, 11, and 10 instead. Only the distribute_groups_across_pools method needs changing.
[ ] Consider removing the pooling config file (look up table; Interim scRNA Core pooling config). A pooling strategy based on a suggested number of cells in a pool and a maximum may be better. For example, suggested size could be 10 and maximum could be 20.

Dependencies
This story is blocked by the following dependencies:

https://github.com/sanger/limber/issues/1390

Additional context
Only one chip type is supported in this step. The lookup table to configure the number of pools based on the number of samples is affected by the decision of which chip to use and additional chip-specific considerations. We need to change code and configuration to use 10X Chromium 8-well GEM-X chip instead of 10X Chromium 16-well chip.

Still on hold, awaiting discussion around pooling strategy in Thursday's working group.

@KatyTaylor @yoldas is this story still on hold?

Yes, I believe so. We're still waiting to hear from R&D about it.

Update from Abby last Friday (26th July) was that they have made some progress on this but still haven't finalised the strategy.

This is covered by all the pooling stories we've created.
The potential 'collection site' requirement might come back when Cardinal comes on board.


[CI] Mandrel integration tests fail with Java 23 mandrel build of graal/master on Windows

This is an issue to automatically track failures in Mandrel's CI runs.

Issue tracked in https://github.com/graalvm/mandrel/issues/663

Still #245

Caused by https://github.com/graalvm/mandrel/issues/676

This is due to a mandrel build failure.
Tracked in https://github.com/graalvm/mandrel/issues/681

Caused by https://github.com/Karm/mandrel-integration-tests/issues/252

Caused by a build failure of Mandrel (native image generation) which is tracked here: https://github.com/graalvm/mandrel/issues/717

Caused by a build failure of Mandrel (native image agent generation) which is tracked here: https://github.com/graalvm/mandrel/issues/717

See this https://github.com/Karm/mandrel-integration-tests/issues/244#issuecomment-2126652972 for an analysis.

See this https://github.com/Karm/mandrel-integration-tests/issues/244#issuecomment-2126652972 for an analysis.

See this https://github.com/Karm/mandrel-integration-tests/issues/244#issuecomment-2126652972 for an analysis.

See this https://github.com/Karm/mandrel-integration-tests/issues/244#issuecomment-2126652972 for an analysis.

See this https://github.com/Karm/mandrel-integration-tests/issues/244#issuecomment-2126652972 for an analysis.

See this https://github.com/Karm/mandrel-integration-tests/issues/244#issuecomment-2126652972 for an analysis.

See this https://github.com/Karm/mandrel-integration-tests/issues/244#issuecomment-2126652972 for an analysis.

The above are these warning messages:
Warning: Option 'DynamicProxyConfigurationResources' is deprecated and might be removed in a future release. Please refer to the GraalVM release notes.

... and those are caused by:
https://github.com/oracle/graal/issues/9057

Version parsing is causing problems. Caused by: https://github.com/graalvm/mandrel-packaging/issues/429

See: https://github.com/Karm/mandrel-integration-tests/issues/299


[Question]: How to directly call the local base for rag?

Describe your problem
I did not find any parts in the project front-end and code that can call the local base. May I ask if this project can call the local base?

What about using Ollama?


The check for wine is missing on construction list

Palace upgrades doesn't detect the amount of wine needed
https://github.com/physics-sec/ikabot/blob/438de552035883fbe7978cedc2865ffde8094847/ikabot/function/constructionList.py#L248

Fixed by #98


Blank value treated as null instead of undefined

Hey there,
I understand that this issue is not fully tied with your plugin, but please consider it as a question, or maybe improvement if you'll find it as benefical.
I'm using select-field directive with allow-blank option - this works fine. But you use undefined value for blank option and this is causing issues.
Example:
I have object person.age, once this attributes is changed to blank option, attribute is set to undefined and is not sent to my backend API. This will cause that this attribute is not changed in backend because is not present. What I need to set this attribute to null instead of undefined.
Is it possible to use null instead of undefined for blank options?

Could you not use an empty string instead?
On May 15, 2015 4:49 AM, "Palo Delinčák"<EMAIL_ADDRESS>wrote:

Hey there,
I understand that this issue is not fully tied with your plugin, but
please consider it as a question, or maybe improvement if you'll find it as
benefical.
I'm using select-field directive with allow-blank option - this works
fine. But you use undefined value for blank option and this is causing
issues.
Example:
I have object person.age, once this attributes is changed to blank
option, attribute is set to undefined and is not sent to my backend API.
This will cause that this attribute is not changed in backend because is
not present. What I need to set this attribute to null instead of
undefined.
Is it possible to use null instead of undefined for blank options?
—
Reply to this email directly or view it on GitHub
https://github.com/bvaughn/angular-form-for/issues/110.

Yes, empty string will do the trick. This is in my directive:
$scope.emptyOption = {};
$scope.emptyOption[$scope.labelAttribute] = '';
$scope.emptyOption[$scope.valueAttribute] = '';
$scope.placeholderOption = {};
$scope.placeholderOption[$scope.labelAttribute] = $scope.placeholder;
$scope.placeholderOption[$scope.valueAttribute] = '';

But, I found some other issues related with combination of allow-blank and placeholder for selects... Take a look at this Plunker - http://plnkr.co/edit/kTC6g03jPZxM3AD3Ctyx?p=preview. I think number 5) should be treated exactly the same as number 2). But as you can see there is a difference between undefined and null.
So as I said I can use empty string and my backend will treat it as null - this is fine and works. But my backend will return null instead of empty string and as you can see number 5) is the problem. Do you consider this as a bug/enhancement or is this your desired behaviour?

Also, I've updated Plunker because I found another issue. As you can see number 6 - it has preselected value 4, but options are not present in moment of render - they are loaded after directive is rendered. Once options are present, value is preselected correctly, but placeholder is present instead of blank option. Number 6 should work exactly like number 4.

Hm. I'll need to give that some thought, something I can't do at the moment because I'm at work.
Thanks for your patience! I'll try to give it some thought as soon as I can. :)

Just a heads-up. My laptop battery died and I had to take it in for a repair. It will likely be about a week before I get it back and so I'm not going to be able to address this issue as quickly as I'd normally like to. I hope this isn't too much of an inconvenience. I'll get to it as soon as I'm able! Thanks for understanding. :)

No problem and thanks for getting back to me! Take care of your things... :-)

Got my laptop back this evening. Spent a bit of time looking at this and I'm still not sure of an elegant solution. I'll try to spend some more time on it tomorrow or Friday. Sorry for the delay!
PS Your plunk is great. Thanks for that.

I believe I've found a working solution for this.
The issue here is that Angular's select directive is auto-generating an empty <option> tag when the ng-model value doesn't exist within ng-options. This is the correct behavior for because it avoids forcing an arbitrary selection that the user didn't intend.
Form for is doing a lot of meta stuff on top of select but in the end I'm still handing it a set of options and a default selection, and the "empty" options need to match. So what I've done is compare the model's selected value to null, undefined, or empty string and if either of those match, set the value of the placeholder field to be the same.

Thank you for your patience. Release 3.0.7 should have this fix for you. :)

Thank you very much! I'll test it as soon as possible :-)

Thanks for you fixes again. I just tested it and found another issue.
Take a look at this Plunk:
http://plnkr.co/edit/pTZU4JY8YUbqPbTQFa4s?p=preview
When there is select with options which are loaded after directive is rendered, allow-blank is enabled and value is preselected then placeholder value is present instead of blank option.

When I select some other value, placeholder is replaced with blank option.
When I select placeholder option, blank option is added to list of options - so it looks like [blank], [placeholder], value, value...

As you can see this is an issue only for remote (delayed) options load. When options are present in moment of render it works as expected.

Hello Brian, I know you're probably busy, but can you reopen this bug so we don't loose track of this? Thanks!

Hi Palo. I thought you had filed the newly discovered issue as #115. My apologies.
Please file the placeholder as a separate issue if you would. :)