Have you considered joining the forces with similar GTK kotlin projects

Hi, I'm an Android developer and I would love to be able to write my GTK apps in Kotlin instead of Python. Looking around I saw there there are a couple of projects that are trying to make this happen but they are both a single developer projects in a very alpha stage.
Have you considered joining the forces with https://gitlab.com/gtk-kt/gtk-kt? I think that could make a huge difference to work on a singel project instead of implementing in parallel the same thing individually.

Hi @leinardi, thanks for suggesting this.
I am aware of the gtk-kt project and that project is mentioned in the readme. My original version was based on that repository but I decided to start from scratch for a few reasons:

As a learning opportunity about GTK. I had not done anything with GTK before this so trying to bridge GTK to KN forces me to learn the GTK API in depth.

I wanted the freedom to experiment and refactor as I go. This project fits into a larger plan I have around Kotlin Multi Platform.
Context: It is not open source yet but I'm working on a toolkit for cross-platform app development that targets web/desktop/mobile using Kotlin Multi Platform where KMP is used for all shared logic, I/O and platform-independent base components (forms, data store, list adapters, caching etc) combined with platform-specific implementations (GTK for desktop, Android Views for Android, UIKit for iOS, React/Vue/something for web).

I am definitely open to collaboration with anyone interested but I'm going to keep the above points in mind before I decide to redirect my efforts to another project.

Hi @vbsteven, thanks for the answer. I just wrote because writing all the bindings manually it's a huge work, and every time there is a new release of GTK it will require again a huge effort. I think it would be way better to have a GIR parser that autogenerate the bindings. Such GIR Kotlin generator is something that your project could also take advantage, and making fully supporting new versions of GTK easier. What about cooperating with with the gtk-kt developer for his gir-kt project? That could bring you a big return of investment in effort you won't need to put in manually writing and, even more, maintaining for the GTK bindings...

Mmm I see your points, but I still think it would be good for you guys could have a chat about this topic. The current version of gtk-kt was all written manually by the developer. I think he also use that as a learning experience. But now he's working on the gir-kt project aiming to improve his previous work. So, don't judge the gtk-kt project form the actual published code because, once the gir-kt will be up and running, it will be very different.
Btw, I'm in touch with the dev because I'm helping with some small changes to the gir-kt (unfortunately I lack the C interop knowledge needed for a more meaningful contribution).
If you change your mind and want to get in touch, even just for a chat on the topic, let me know :slightly_smiling_face:.

Sure, I'm always up for a chat. You can reach me on the Kotlin Slack under my full name and my contact email is on my website which is linked in my Github bio.

more type information in interfaces
For example the GTK list store and model interface methods return object instances. I want to add generics to those.

Can you elaborate on what you are thinking? Currently in gtk-kt lists are handled with respective wrapper classes that serve as extensions.

use Flow for input events

As long as it is for input, using it for the activate function was a mistake I made long ago. In gtk-kt this can be done via a callbackFlow using the SignalManager return to close the signal.

a good solution for property binding

Is what I have setup not good?

coroutine and lifecycle support

I have started delving deeper into coroutines recently. Having successfully built a Dispatcher that will run coroutines on the main thread. To create a life cycle, would not be too hard.

good support for subclassing widget and gobject

What is good support?

maybe even TornadoFX-inspired typesafe CSS

I agree that type safe CSS will be great in the future.

Hi @vbsteven, I know that you prefer to wait a little before starting to mess with GIR, I just wanted to let you know that I started porting the very good GIR generator for java from this project, to kotlin.
I made already some small progress: I managed to integrate KotlinPoet and started to write a CodeWriter for it.
I think it's coming along pretty decently, it can already generate all the files needed with proper package, KDoc and basic class declaration:

But I lack the knowledge on how to deal with the C interop part required by the actual method implementation.
The StructureModel class provided by the GIR parser has already all the information required, I just need to figure out how to convert the JNA calls to Kotlin native one:

I was wondering if you could assist me with this task. Again, I think that using a GIR approach to generate the bindings could be a huge advantage for this project. I understand that you want to do with a more "custom tailored" approach for the bindings but those customizations could come as extension functions or, maybe, we can work together to merge them inside the code generation logic.
What do you think?

@leinardi do you have a specific repository/sample case/problem that I can look at or help with?
You can probably get something up and running by combining the Kotlin/Native cinterop approach from this project (or gtk-kt) together with a GIR generator.
This project uses the cinterop tool to generate KN versions of the GTK C methods under a specific package. For example the adw_application_window_new(...) C function from libadwaita gets a KN version called adw_application_window_new(...) in the native.adwaita package. (the generated package name is my own convention described in the readme and configured in the adwaita.def file.
So the generated ApplicationWindow constructor implementation from your last screenshot can acquire a CPointer to a new application window by calling native.adwaita.adw_application_window_new(...).
I still need to take some time to organize my thoughts on all this. Simply generating the wrapper classes using GIR is only step 1.
Don't get me wrong, I really do want to have GIR for this project but I have not had the time to dive into it yet. Ideally someone comes up with a good GIR parser + basic Kotlin Poet setup so it can ingest a GIR library and output generated Kotlin files. Then I can take that and adapt the output Kotlin to the conventions in this project. (package names, method names, type conversions, object/widget subclassing, runtime type info for downcasting etc).
If you manage to get something like the above paragraph, I am very interested and we could probably collaborate/move pretty fast on it.
Extensions for additional functionality is what I was also thinking about. And some specialized classes like generic  versions for ListModel interfaces will need to be written by hand on top of the generated "untyped" interfaces. But all those can likely be added "on top" in an additional library that depends on the generated library.
Essentially it is a very layered approach:

generate KN functions from a C library using cinterop (already done in this project for gtk/adwaita and some gobject/glib stuff)
run GIR generator that outputs wrapper classes using KN functions (still TODO)
compile GIR output + KN functions + extensions and utility classes into a final library. (this project already has all this aside from the GIR output from step 2.

So I think this project can get there soon with some help on the basic GIR setup. Let's say you manage to get a working bit of Kotlin code that parses a GIR library and passes it through a stubbed transform method, then I can probably take it from there to provide the actual generated implementation that conforms to the conventions of this project. After that I would be able to replace most of the manual wrapper classes with autogenerated ones and add the additional extensions+utillity classes on top.
That is the direction I would like to move in. What do you think?

@leinardi do you have a specific repository/sample case/problem that I can look at or help with?

Not yet but I should have one soon.

You can probably get something up and running by combining the Kotlin/Native cinterop approach from this project (or gtk-kt) together with a GIR generator.

Yep, this is exactly what I'm doing :+1:.

This project uses the cinterop tool to generate KN versions of the GTK C methods under a specific package. For example the adw_application_window_new(...) C function from libadwaita gets a KN version called adw_application_window_new(...) in the native.adwaita package. (the generated package name is my own convention described in the readme and configured in the adwaita.def file.
So the generated ApplicationWindow constructor implementation from your last screenshot can acquire a CPointer to a new application window by calling native.adwaita.adw_application_window_new(...).

Yesterday, after some trial and error, I managed to successfully generate the KN versions of the C methods

I still need to take some time to organize my thoughts on all this. Simply generating the wrapper classes using GIR is only step 1.
Don't get me wrong, I really do want to have GIR for this project but I have not had the time to dive into it yet. Ideally someone comes up with a good GIR parser + basic Kotlin Poet setup so it can ingest a GIR library and output generated Kotlin files. Then I can take that and adapt the output Kotlin to the conventions in this project. (package names, method names, type conversions, object/widget subclassing, runtime type info for downcasting etc).

I'm currently working to get that done :slightly_smiling_face:
My next milestone is to be able to get a simple HelloWord GTK4 screen to work with nothing on it (just a GTK Application and Window) from the generated code of the GIR parser. After that is done, it will be just a matter of expanding the code generation to add "the rest of the owl"

If you manage to get something like the above paragraph, I am very interested and we could probably collaborate/move pretty fast on it.
Extensions for additional functionality is what I was also thinking about. And some specialized classes like generic versions for ListModel interfaces will need to be written by hand on top of the generated "untyped" interfaces. But all those can likely be added "on top" in an additional library that depends on the generated library.
Essentially it is a very layered approach:
generate KN functions from a C library using cinterop (already done in this project for gtk/adwaita and some gobject/glib stuff)
run GIR generator that outputs wrapper classes using KN functions (still TODO)
compile GIR output + KN functions + extensions and utility classes into a final library. (this project already has all this aside from the GIR output from step 2.
So I think this project can get there soon with some help on the basic GIR setup. Let's say you manage to get a working bit of Kotlin code that parses a GIR library and passes it through a stubbed transform method, then I can probably take it from there to provide the actual generated implementation that conforms to the conventions of this project. After that I would be able to replace most of the manual wrapper classes with autogenerated ones and add the additional extensions+utillity classes on top.
That is the direction I would like to move in. What do you think?

Sounds like a good plan! Do you have a preferred channel in case I get stuck and/or have some questions about C interop and Kotlin native? Last time we talked in Matrix but I'm not sure if you prefer to use something else (discord, email, this issue tracker, etc).

Alright! Let's draw this owl.
My matrix is a bit funky and I often miss messages. It is easier to reach me via email (address on my website in github bio) or on the Kotlin Slack.

OK, I started drawing the first circles for our owl :)
When you have time check out this project: https://gitlab.com/leinardi/ktgobject
I have committed some generated bindings. They are obviously broken but you can see that there has been some progress.
Right now the files are generated in the right directory, with the right name, package and, most of the times, constructor parameters. I still have to figure out how to handle some complex types like the one listed here.
Now I have to go but, if you have time, in the next days we can have a call and I can show you around. And maybe I can ask you a couple of questions about C interop topics.

Alright, I'll have a look later tonight.
Yesterday evening I hacked a little bit on it from scratch to understand the process a bit better.
Just plain read the GIR file as XML, parse it and generate files using Kotlinpoet. It does not seem that hard to do.
package io.quantus.gtk

import TODO.Window
import kotlinx.cinterop.CPointer

public class ApplicationWindow : Window {
  public val gtkApplicationWindowPointer: CPointer<*>
    get() = gPointer.asTypedPointer<GtkApplicationWindow>()

  public constructor(pointer: CPointer<*>) : super(pointer)
}

the hardest part for me is to map all the C interop part, there are a bunch of types that I have no clue how should be mapped (see last link from my previous comment).

Yes, gobject/glib is the hard part. Gtk/Adwaita are "simple" since they are mostly GtkWidget subclasses with simple methods and properties/signals. These can be easily mapped onto Kotlin classes.
GObject is a full type system with all the necessary nuts and bolts to define new types (in C typically requiring lots of macros) and I don't think they need 100% mapping coverage for a usable Kotlin Native GTK library. A lot of these functions and types are never used by application developer code. This is also the part where some manual customization and utils could be useful.
I'm thinking maybe an iterative approach is in order here. Instead of trying to write a GIR generator with 100% coverage from the start, it might be better to focus on just the GTK and Adwaita GIR files (mostly widgets and some support types) and generate them from the (for now) manual Object base class and type registration that I've already built. Omitting methods with parameters/returntypes that the generator does not know about yet.
In essence trying to get the basic flow GIR -> generated kotlin -> bindings library compiling and working for minimal examples projects ASAP. And then iterate on the generator to add the missing types.

Omitting methods with parameters/returntypes that the generator does not know about yet.

The GIR generator is already doing that, and is writing comments on the top of the file with the types that are not handled:

https://gitlab.com/leinardi/ktgobject/-/blob/master/bindings/glib/src/nativeMain/kotlin/binding/glib/ByteArray.kt#L2

Hey, I made more progress with the generator. Now the constructors look way better and I fixed many parameters type.
I have a question for you: are you familiar with the concept of callback in this GTK / Kotlin native C interop?
Because I'm not, and I have no clue how they should be handler.
From what I saw, there are more or less 4 kind of classes that we should map from the GIR:

Record
Package
Callback
Pointer

Right now for Record and Pointer, I'm just holding an instance of a CPointer inside the class.
But for Callback I'm not sure what should be done. java-gtk has some complex logic to create callbacks that works with JNA. For now I dropped it and I'm just using the C interop types directly (e.g. glib.GDestroyNotify, needed by gtk_tree_list_model_new()) but I'm not sure if this is a good idea.
Do you have any experience with this kind of callbacks?

sidenote: I have some urgent client work I need to finish by next week so the next few days I don't have much time to hack on it myself. I hope to have another look at the GIR generator next week.
Yes, I am familiar with the GTK callback mechanism and C interop. In this repo you can find examples on how to use them from KN.
Have a look at the GTK Button implementation which uses a GCallback to connect a Kotlin lambda to to the button clicked signal. Mainly the onClicked method and the associated staticButtonClickedFunc in the same file and staticStableRefDestroy in Signals.kt.
    /**
     * Connect [func] as a handler for the "clicked" signal.
     */
    fun onClicked(func: (Button) -> Unit) {
        g_signal_connect_data(
            gPointer,
            "clicked",
           staticButtonClickedFunc,
            StableRef.create(func).asCPointer(),
            staticStableRefDestroy,
            0
        )
    }

In essence, the g_signal_connect_data C function takes:

a pointer to the object you want to attach a signal to (in this case the pointer for the Button instance)
the name of the signal,
a pointer to a C function that conforms to the GCallback C type (the C function that will be called by GTK when the signal is emitted)
a pointer to userdata that GTK will pass as an argument when invoking the callback function from 3
a pointer to a C function to clean up any memory when the callback isn't needed anymore (conforming to GClosureNotify)
flags for the signal connect

StableRef is important here. StableRef is a Kotlin C interop mechanism to create a Stable reference to a Kotlin object so you can safely pass a C pointer pointing to that object to a C function without it being garbage collected. (Don't forget to dispose() the StableRef afterwards or you'll leak memory, this is what I do inside staticStableRefDestroy).
staticCFunction is another important Kotlin C interop feature that creates C functions that you can pass to other C functions as a function pointer.
private val staticButtonClickedFunc: GCallback =
    staticCFunction { buttonPointer: CPointer<GtkButton>?,
                      data: gpointer? ->
        val button = buttonPointer!!.asButton()
        val func = data!!.asStableRef<(Button) -> Unit>().get()
        func.invoke(button)
    }.reinterpret()

This bit of code creates a C function conforming to GCallback that can be passed to other C functions as a function pointer. When the lambda is invoked, it extracts the original user-provided Kotlin callback, and tries to invoke it.

To clarify: I don't think a GIR generator has to create wrapper classes for GCallback and and other callback types. Instead the necessary glue code needs to be generated for object methods that take a callback as an argument to wrap the userprovided Kotlin lambda into a C function + userdata pointer combo and handle the required data marshaling and reference cleanup.
This part is one of the reasons that I mentioned earlier why I'm currently still experimenting with manual bindings to figure out the best mappings from C to Kotlin before I fully commit to GIR.
For example:
Should every signal be mapped to a method on the wrapper class like I did with Button.onClicked?
Should it be called onClicked or something else?
For a click handler like this example, does it have to be a no arguments lambda or do we pass in the Button instance as first argument? (maybe both?)
How should it behave when the user provide lambda throws an Exception and the C callback requires a Boolean (or other type) return value.
These types of questions are still unclear to me.
Button clicked is the easiest version btw, the C version is a simple callback with only the Button pointer as first argument. But other signals can be more complex with additional arguments and return types.

Hey thanks a lot! This info is very useful! And don't worry about the urgent work, I'll be also pretty busy for the rest of the week. We will draw this own :smile:.

BTW one more question: do you know how to deal with Classes that don't have a native construction? There are few of them but I have currently no clue on how to deal with them:

java-gtk is doing some black magic (creating some JNA allocators):

But maybe there is an easier way with Kotlin native...

Depends on the use case.
NativeDialog is an abstract class which cannot be instantiated by itself. Its wrapper class only needs a constructor taking a CPointer<GtkNativeDialog> so it can be called as super(pointer) from the constructors of its descendant classes and so you can convert a pointer to an instance of the Wrapper class.
TextIter is a C struct. Again one of these things I'm not 100% sure about how to properly do that yet to cover most cases. Should these structs be mapped to wrapper Kotlin classes or not. (same for enums en flags)
Working with C structs in Kotlin Native requires some cinterop code.
    fun getIntProperty(name: String): Int = memScoped {
        val gValue = alloc<GValue>()
        g_value_init(gValue.ptr, G_TYPE_INT)
        g_object_get_property(gPointer.asTypedPointer(), name, gValue.ptr)
        return g_value_get_int(gValue.ptr)
    }

This is an example from Object.kt in this repo that works with a GValue struct.
It uses memScoped {} to create a scope in which you can allocate memory on the C side and work with the struct.
It first allocates memory for the struct, and then calls g_value_init to initialize it (GTK specific thing), and then it uses gValue.ptr to get a CPointer to that struct that can be passed to other C functions.
Another example that I have not committed to master yet is adw_swipeable_get_swipe_area from the Adwaita Swipeable interface. It is a method that requires an out pointer to a GdkRectangle struct that the function will populate with its result. I handled this case by creating a Kotlin data class representing a Rectangle and abstracted the struct allocation, pointer passing and extraction to data class in the method implementation so the user does not need to care about this struct stuff and can just call a method and get the Rectangle back.
/**
 * Data class equivalent to GdkRectangle struct
 */
data class Rectangle(
    val x: Int,
    val y: Int,
    val width: Int,
    val height: Int,
)

// in the Swipeable interface

fun getSwipeArea(direction: AdwNavigationDirection, isDrag: Boolean): Rectangle = memScoped {
    val outRect = alloc<GdkRectangle>()
    adw_swipeable_get_swipe_area(adwSwipeablePointer, direction, isDrag.gboolean, outRect.ptr.reinterpret())
    return Rectangle(outRect.x, outRect.y, outRect.width, outRect.height)
}

Thanks! Again, this is incredibly useful to me since I lack a lot of knowledge of C interop!
I'm now taking care of the methods and functions generations but I'll come back to this soon!

Just a tip. The D language has girtod that generates bindings for gtk4, i would suggest looking at its code, its readable code even if your not into D language and the code is not to complex.

Thanks for the tip @EsoCoding, I will definitely have a look at how the D language did it for inspiration.
I don't have an abundance of free time lately but managed to get a good hacking session in this morning and it is progressing well. I think I can have a minimal working generator up and running soon that should be able to replace the manual bindings I already have in this repository.

Hey @vbsteven, I'm getting closer to have some buildable code for the GLib generated classes but I'm now facing an issue with native calls to functions that have a vararg as parameter.
For example gtk_dialog_add_buttons, which is mapped with this:
@kotlinx.cinterop.internal.CCall public external fun gtk_dialog_add_buttons(dialog: kotlinx.cinterop.CValuesRef<native.gtk.GtkDialog /* = native.gtk._GtkDialog */>?, @kotlinx.cinterop.internal.CCall.CString first_button_text: kotlin.String?, vararg variadicArguments: kotlin.Any?): kotlin.Unit { /* compiled code */ }

It seems to expect a vararg variadicArguments: kotlin.Any?, but if I send that to it like this:
    public fun addButtons(firstButtonText: String, vararg variadicArguments: Any): Unit {
        gtk_dialog_add_buttons(cPointer.reinterpret(), firstButtonText, variadicArguments)
    }

I get this error:
type kotlin.Array<out kotlin.Any>  is not supported here: doesn't correspond to any C type

The GIR parameter only gives a name (...) and has a tag varargs:
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../gtk/gtkdialog.c"
                 line="950">response ID for first button, then more text-response_id pairs</doc>
            <varargs/>
          </parameter>

Do you have any clue of what should be sent there?

I think the vararg parameter is always the last one and should be applied to the parameter before it.
Sent from Outlook for Androidhttps://aka.ms/AAb9ysg

From: Roberto Leinardi @.>
Sent: Monday, February 27, 2023 9:44:02 AM
To: vbsteven/gtk-kotlin-native @.>
Cc: Steven Van Bael @.>; Mention @.>
Subject: Re: [vbsteven/gtk-kotlin-native] Have you considered joining the forces with similar GTK kotlin projects (Issue #1)
Hey @vbstevenhttps://github.com/vbsteven, I'm getting closer to have some buildable code for the GLib generated classes but I'm now facing an issue with native calls to functions that have a vararg as parameter.
For example gtk_dialog_add_buttons, which is mapped with this:
@kotlinx.cinterop.internal.CCall public external fun gtk_dialog_add_buttons(dialog: kotlinx.cinterop.CValuesRef<native.gtk.GtkDialog /* = native.gtk._GtkDialog />?, @kotlinx.cinterop.internal.CCall.CString first_button_text: kotlin.String?, vararg variadicArguments: kotlin.Any?): kotlin.Unit { / compiled code */ }
It seems to expect a vararg variadicArguments: kotlin.Any?, but if I send that to it like this:
public fun addButtons(firstButtonText: String, vararg variadicArguments: Any): Unit {
    gtk_dialog_add_buttons(cPointer.reinterpret(), firstButtonText, variadicArguments)
}

I get this error:
type kotlin.Array  is not supported here: doesn't correspond to any C type
The GIR parameter only gives a name (...) and has a tag varargs:
      <parameter name="..." transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../gtk/gtkdialog.c"
             line="950">response ID for first button, then more text-response_id pairs</doc>
        <varargs/>
      </parameter>

Do you have any clue of what should be sent there?
—
Reply to this email directly, view it on GitHubhttps://github.com/vbsteven/gtk-kotlin-native/issues/1#issuecomment-1445921855, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AABZXGGIZMWB7ZIJWW766H3WZRSNFANCNFSM6AAAAAAUS4QE4A.
You are receiving this because you were mentioned.Message ID: @.***>

I'm closing this now that we have opened up the gtk-kn repository.
https://gitlab.com/gtk-kn/gtk-kn


[nrf noup] subsys/fs: move FS partition to the end back

In case of the DFU capability enabled:
Up to NCS v1.1.0 any storage partition lands at the end of the flash memory.
Since v1.2.0 any storage partition lands right after
the executable application.
So it is impossible to build proper update application out-of-the box.
This patch moves storage partitions at the flash end back.
User needs only to correct the partition size (via Kconfig) to
the same as in previous release for ensure proper upgrade build.
Signed-off-by: Andrzej Puzdrowski<EMAIL_ADDRESS>

btw, mcuboot_storage pm partition doesn't exist anymore

Some checks failed. Please fix and resubmit.
Gitlint issues
4: UC4 Line exceeds max length (76>72): "Up to NCS v1.1.0 any storage partition lands at the end of the flash memory."
Tip: The bot edits this comment instead of posting a new one, so you can check the comment's history to see earlier messages.

How can we avoid similar problems affecting users during the 1.2 -> 1.3 transition?

This stuff should have been picked up by our DFU tests, not sure why they were not.
@mbolivar I will make sure that we add backwards compatible tests to ensure that this does not happen again. As for products in field, they will use static configuration, so there is no risk of bricking a configuration so that you are not able to produce valid updates once a device is out.

ping @mbolivar @sigvartmh
cc @carlescufi

DNM until Upmerge #296 will be merged

moved to https://github.com/nrfconnect/sdk-nrf/pull/2382


Opening Dialer GUI crashes server

When we right click to open the GUI for the dialers that the matter transmitters use, it immediately crashes the server.

Please: This is SOOO little information. What version of RFTools? Also I need a crashlog.

It's not my server, let me see if I can get it from the owner.. we may be able to whitelist you so you can get on as well.

http://manage.thatmumbojumbo.com/fml-server-latest.log and http://manage.thatmumbojumbo.com/fml-server-3.log
Were the latest logs before we stopped using the dialers.   We're running the Hermit Pack (latest stable) with RFTools 1.10-5.52 and RFTools Dimensions 1.10-4.42

Update RFTools Dimensions to 4.44. There was a critical bug in that version


[Bug]: Add overlay on on going stream e.g water mark or real time data like scoreboard of sport

Version
v1.2.3
Which operating systems have you used?

[X] Android
[X] iOS

Environment that reproduces the issue
iOS and Android
Is it reproducible in the example application?
Yes
RTMP Server
Youtube Streaming server
Reproduction steps
we can not add any view middle of  component
Expected result
it should be visible
Actual result
not visible other overlay view
Additional context
No response
Relevant logs output
No response

Hi,
Do you mean an overlay of the preview? or in the stream?

or in the stream-> i want to add scoreboard for live sports stream

Ok, I see. It is a feature OBS have.
Implementation of something like this is really complex and we don't have the bandwidth to tackle this.
We won't work on it any day soon but we will gladly review a PR if needed.


ci: Add pre-release to release workflow

Proposed Changes

Release when we publish latest
Pre-release when we publish next (or not latest)
Document the release process

Notes

I didn't quote the workflow inputs so we can still add --dry-run.

This looks good to me, I just had a query about the syntax for the release-it commands not matching what was previously there.  Any reason for closing -- are you recreating it?

Any reason for closing -- are you recreating it?

:facepalm:
--

I just had a query about the syntax for the release-it commands not matching what was previously there

Yea, here's where a quick call would help. Let's walk through it. We used to have:
run: pnpm run release:ci --npm.tag=${{github.event.inputs.distTag}} -- ${{github.event.inputs.releaseType}}

Based on the docs, I simplified github.event.inputs. as inputs.:

The workflow will also receive the inputs in the github.event.inputs context. The information in the inputs context and github.event.inputs context is identical except that the inputs context preserves Boolean values as Booleans instead of converting them to strings. The choice type resolves to a string and is a single selectable option.

We're not using Boolean's so that leads to a bit less noise.
--
I changed the argument order to look a bit more like the release-it docs:
release-it major --preRelease=beta

so
run: pnpm run release:ci --npm.tag=${{github.event.inputs.distTag}} -- ${{github.event.inputs.releaseType}}
run: pnpm run release:ci ${{inputs.releaseType}} --npm.tag=${{inputs.distTag}}

--
Then I split the release and pre-release. The release should look like line above with "no changes":
run: pnpm run release:ci ${{inputs.releaseType}} --npm.tag=${{inputs.distTag}}

And the pre-release should use --preRelease instead of --npm.tag because --preRelease is shorthand for:
--preReleaseId=${{inputs.distTag}} --npm.tag=${{inputs.distTag}} --github.preRelease

That looks like
run: pnpm run release:ci ${{inputs.releaseType}} --preRelease=${{inputs.distTag}}

Nice, I'll merge this then as soon as the tests pass


Rendering issues with http://s8.s-sfr.fr/mobile/uc/00/51/63/13/61537_BT_OffresMobilesSFR_bd_complete-1.pdf

The document
http://s8.s-sfr.fr/mobile/uc/00/51/63/13/61537_BT_OffresMobilesSFR_bd_complete-1.pdf
(pricing for French mobile phones) exhibits a few rendering issues with pdf.js.

Page 1, top left: SFR logo should be red with a little bit of a shadow. Instead, in pdf.js it is pink.
Page 4, top left: there are supposed to be 4 pictures of "recharge cards". In pdf.js, they are black boxes with something scrambly on it instead.

Thats either a JBIG2 or JPX issue I guess. Have a look there are allready several tickets for these -- I am just a user.

Duplicate of #268


feat: add TypeScript type definitions

This commit adds type definitions for the following:

Invokable: The user provided function
Context: The invocation context
CloudEventResponse: Convenience class for constructing events
Logger: The logging interface
LogLevel: Logging enumeration
start: A function to start the invoker
InvokerOptions: Options for start

The definitions are statically tested with tsd.
These type definitions are not actually used by the JS files. This does not
convert the module to TypeScript; it just adds these type definitions to our
exports. This will allow us to create TypeScript function templates without
a full conversion of this code base to TypeScript. Ultimately, I think it's
probably best to make the change.
This change also bumps to<EMAIL_ADDRESS>which does have a breaking
change. See: https://github.com/cloudevents/sdk-javascript/issues/332
As a result, we accept all versions of CloudEvents. Actually, I think this
is probably a fine change in the long run. Loose validation upon receipt
of an event allows functions to handle event sources that may be producing
malformed events. I've commented out the test for now. If we decide it makes
sense to leave this as-is instead of waiting for a fix from upstream, then
we should remove the test and the existing logic for dealing with this,
since it's no longer necessary.
Finally, I've really simplified the start funtion interface. It now just
takes a function and a bag of options. It doesn't deal with callbacks anymore.
Promises are used to deal with async server startup.
Signed-off-by: Lance Ball<EMAIL_ADDRESS>

Nit: missing EOLs at the end for some files.

Nit: missing EOLs at the end for some files.

Resolved.


Extract styles

#20

Coverage increased (+0.03%) to 87.277% when pulling da5d8cc1ccfa9a3202921bff64b4221bee1decb9 on extract-styles into 66d201d672f69dfa216f43418aef3f121ee960e0 on master.


Corrected chapter numbering in 1.6 manual

Good time to fix chapter numbering

:+1: looks fine to me. It appears that the only docs updates we have for 1.6 presently are a slight re-wording (dbb2840d836366193f1b604cd4d278045290f6ed via ACCUMULO-4310). Let me also include that so we just have the user manual in a good place for the up-coming 1.6.6.

Thanks @milleruntime. Much appreciated.


Error with nvm trying to update npm to the laers version

Is there an existing issue for this?

[X] I have searched the existing issues

Output of ddev debug test
Expand `ddev debug test` diagnostic information
ddev debug test
Running bash [-c /var/folders/f2/n72h9rnn0yx1mjkhtczgcz8m0000gn/T/test_ddev.sh]
======= Existing project config =========
These config files were loaded for project joinup: [/Users/clau/development/joinup-ddev/.ddev/config.yaml /Users/clau/development/joinup-ddev/.ddev/config.selenium-standalone-chrome.yaml]
name: joinup
type: drupal10
docroot: web
php_version: 8.2
webserver_type: apache-fpm
webimage: ddev/ddev-webserver:v1.22.5
database: {mysql 8.0}
hooks: map[post-start:[map[exec:<nil>]] pre-start:[map[exec-host:rm -f .ddev/solr-standalone/conf] map[exec-host:ln -s ../../resources/solr/conf .ddev/solr-standalone/]]]
project_tld: ddev.site
use_dns_when_possible: true
timezone: Europe/Brussels
composer_version: 2
disable_settings_management: true
nodejs_version: 20
default_container_timeout: 120
======= Creating dummy project named  tryddevproject-21117 in ../tryddevproject-21117 =========
OS Information: Darwin mio.local 23.0.0 Darwin Kernel Version 23.0.0: Fri Sep 15 14:42:42 PDT 2023; root:xnu-10002.1.13~1/RELEASE_X86_64 x86_64
ProductName:		macOS
ProductVersion:		14.0
BuildVersion:		23A344
User information: uid=501(clau) gid=20(staff) groups=20(staff),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),250(_analyticsusers),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh),400(com.apple.access_remote_ae),701(com.apple.sharepoint.group.1)
DDEV version:  ITEM             VALUE
 DDEV version     v1.22.5
 architecture     amd64
 db               ddev/ddev-dbserver-mariadb-10.4:v1.22.5
 ddev-ssh-agent   ddev/ddev-ssh-agent:v1.22.5
 docker           24.0.7
 docker-compose   v2.23.3
 docker-platform  orbstack
 mutagen          0.17.2
 os               darwin
 router           ddev/ddev-traefik-router:v1.22.5
 web              ddev/ddev-webserver:v1.22.5
PROXY settings: HTTP_PROXY='' HTTPS_PROXY='' http_proxy='' NO_PROXY=''
======= DDEV global info =========
Global configuration:
instrumentation-opt-in=true
omit-containers=[]
performance-mode=mutagen
router-bind-all-interfaces=false
internet-detection-timeout-ms=3000
disable-http2=false
use-letsencrypt=false
letsencrypt-email=
table-style=default
simple-formatting=false
use-hardened-images=false
fail-on-hook-fail=false
required-docker-compose-version=v2.23.3
use-docker-compose-from-path=false
project-tld=
xdebug-ide-location=
no-bind-mounts=false
router=traefik
wsl2-no-windows-hosts-mgt=false
router-http-port=80
router-https-port=443
mailpit-http-port=8025
mailpit-https-port=8026
traefik-monitor-port=10999

======= DOCKER info =========
docker location: lrwxr-xr-x  1 clau  staff  53 Nov 21 10:20 /Users/clau/bin/docker -> /Applications/OrbStack.app/Contents/MacOS/xbin/docker
Docker Desktop Version: Docker Desktop for Mac 4.25.1 build 128006
docker version:
Client:
 Version:           24.0.7
 API version:       1.43
 Go version:        go1.20.10
 Git commit:        afdd53b
 Built:             Thu Oct 26 09:04:20 2023
 OS/Arch:           darwin/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.7
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.10
  Git commit:       311b9ff
  Built:            Thu Oct 26 09:05:28 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.7.8
  GitCommit:        8e4b0bde866788eec76735cc77c4720144248fb7
 runc:
  Version:          1.1.9
  GitCommit:        82f18fe0e44a59034f3e1f45e475fa5636e539aa
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
DOCKER_DEFAULT_PLATFORM=notset
======= Mutagen Info =========
Mutagen is installed in ddev, version=0.17.2
--------------------------------------------------------------------------------
Name: ascent
Identifier: sync_BY4pSK74llpHwxjflucWq94mpBvtYw8iSJHHu3FSHnj
Labels:
	com.ddev.config-hash: c212281329fb24762a96e1b7a37a19ed84868866
	com.ddev.volume-signature: Users-clau-orbstack-run-1702162169
Configuration:
	Synchronization mode: Two Way Resolved
	Hashing algorithm: Default (SHA-1)
	Maximum allowed entry count: Default (2⁶⁴−1)
	Maximum staging file size: Default (18 EB)
	Symbolic link mode: POSIX Raw
	Ignore VCS mode: Default (Propagate)
	Ignores:
		/.git
		/.tarballs
		/.ddev/db_snapshots
		/.ddev/.importdb*
		.DS_Store
		.idea
		/web/sites/default/files
	Permissions mode: Default (Portable)
Alpha:
	URL: /Users/clau/development/ascent
	Configuration:
		Watch mode: Default (Portable)
		Watch polling interval: Default (10 seconds)
		Probe mode: Default (Probe)
		Scan mode: Default (Accelerated)
		Stage mode: Neighboring
		File mode: Default (0600)
		Directory mode: Default (0700)
		Default file/directory owner: Default
		Default file/directory group: Default
	Connected: No
Beta:
	URL: docker://ddev-ascent-web/var/www/html
		DOCKER_HOST=unix:///Users/clau/.orbstack/run/docker.sock
	Configuration:
		Watch mode: Default (Portable)
		Watch polling interval: Default (10 seconds)
		Probe mode: Default (Probe)
		Scan mode: Default (Accelerated)
		Stage mode: Neighboring
		File mode: Default (0600)
		Directory mode: Default (0700)
		Default file/directory owner: Default
		Default file/directory group: Default
		Compression: Default (DEFLATE)
	Connected: No
Status: [Paused]
--------------------------------------------------------------------------------
Name: joinup
Identifier: sync_Tof3PO60ywshIaj1W2BN64kjPu2NYCUv6y7qcd9RHPE
Labels:
	com.ddev.config-hash: c212281329fb24762a96e1b7a37a19ed84868866
	com.ddev.volume-signature: Users-clau-orbstack-run-1702306116
Configuration:
	Synchronization mode: Two Way Resolved
	Hashing algorithm: Default (SHA-1)
	Maximum allowed entry count: Default (2⁶⁴−1)
	Maximum staging file size: Default (18 EB)
	Symbolic link mode: POSIX Raw
	Ignore VCS mode: Default (Propagate)
	Ignores:
		/.git
		/.tarballs
		/.ddev/db_snapshots
		/.ddev/.importdb*
		.DS_Store
		.idea
		/web/sites/default/files
	Permissions mode: Default (Portable)
Alpha:
	URL: /Users/clau/development/joinup-ddev
	Configuration:
		Watch mode: Default (Portable)
		Watch polling interval: Default (10 seconds)
		Probe mode: Default (Probe)
		Scan mode: Default (Accelerated)
		Stage mode: Neighboring
		File mode: Default (0600)
		Directory mode: Default (0700)
		Default file/directory owner: Default
		Default file/directory group: Default
	Connected: Yes
	Synchronizable contents:
		19106 directories
		87784 files (3.2 GB)
		75 symbolic links
Beta:
	URL: docker://ddev-joinup-web/var/www/html
		DOCKER_HOST=unix:///Users/clau/.orbstack/run/docker.sock
	Configuration:
		Watch mode: Default (Portable)
		Watch polling interval: Default (10 seconds)
		Probe mode: Default (Probe)
		Scan mode: Default (Accelerated)
		Stage mode: Neighboring
		File mode: Default (0600)
		Directory mode: Default (0700)
		Default file/directory owner: Default
		Default file/directory group: Default
		Compression: Default (DEFLATE)
	Connected: Yes
	Synchronizable contents:
		19106 directories
		87784 files (3.2 GB)
		75 symbolic links
Status: Watching for changes
--------------------------------------------------------------------------------
======= Docker Info =========
Docker platform: orbstack
Using Docker context: default (unix:///Users/clau/.orbstack/run/docker.sock)
docker-compose: v2.23.3
Using DOCKER_HOST=unix:///Users/clau/.orbstack/run/docker.sock
Docker version: 24.0.7
Able to run simple container that mounts a volume.
Able to use internet inside container.

Stopped Mutagen daemon
The ddev-ssh-agent container has been removed. When you start it again you will have to use 'ddev auth ssh' to provide key authentication again.
Network ddev_default removed
Existing docker containers:
CONTAINER ID   IMAGE                                                         COMMAND                  CREATED       STATUS                     PORTS     NAMES
1ffa87c4b777   phpstorm_helpers:PS-233.11799.232                             "/bin/sh"                2 hours ago   Created                              phpstorm_helpers_PS-233.11799.232
e6849fa3b8e5   registry.fpfis.eu/ec-europa/digit-joinup-reference:05be4803   "/scripts/run.sh php…"   4 days ago    Exited (0) 4 days ago                strange_mahavira
8a44bcd01adb   pkleef/virtuoso-opensource-7                                  "/virtuoso-entrypoin…"   4 days ago    Exited (1) 4 days ago                charming_goodall
5214f543cdd6   c7f92c50438a                                                  "/bin/sh"                6 days ago    Created                              phpstorm_helpers_PS-232.10227.13
7debb7b9e833   selenium/standalone-chrome:4.5.0                              "/opt/bin/entry_poin…"   2 weeks ago   Exited (137) 10 days ago             selenium
06bf36b82408   b4d9224a4ca8                                                  "/bin/sh"                2 weeks ago   Exited (137) 11 days ago             phpstorm_helpers_PS-232.10072.32
Network ddev_default created
Starting tryddevproject-21117...

Project images built in 0s.
 Container ddev-tryddevproject-21117-web  Created
 Container ddev-tryddevproject-21117-db  Created
 Container ddev-tryddevproject-21117-web  Started
 Container ddev-tryddevproject-21117-db  Started
You have Mutagen enabled and your 'php' project type doesn't have `upload_dirs` set.
For faster startup and less disk usage, set upload_dirs to where your user-generated files are stored.
If this is intended you can disable this warning with `ddev config --disable-upload-dirs-warning`.
Starting Mutagen sync process...
Mutagen sync flush completed in 1s.
For details on sync status 'ddev mutagen st tryddevproject-21117 -l'
Waiting for web/db containers to become ready: [web db]
Starting ddev-router if necessary...
 Container ddev-router  Created
 Container ddev-router  Started
Waiting for additional project containers to become ready...
All project containers are now ready.
Successfully started tryddevproject-21117
Project can be reached at https://tryddevproject-21117.ddev.site https://<IP_ADDRESS>:32870
======== Curl of site from inside container:
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 11 Dec 2023 14:59:49 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding

======== curl -I of http://tryddevproject-21117.ddev.site from outside:
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Date: Mon, 11 Dec 2023 14:59:49 GMT
Server: nginx
Vary: Accept-Encoding

======== full curl of http://tryddevproject-21117.ddev.site from outside:
Success accessing database... db via TCP/IP
ddev is working. You will want to delete this project with 'ddev delete -Oy tryddevproject-21117'
======== Project ownership on host:
drwxr-xr-x  4 clau  staff  128 Dec 11 16:59 ../tryddevproject-21117
======== Project ownership in container:
drwxr-xr-x 1 clau dialout 16 Dec 11 14:59 /var/www/html
======== In-container filesystem:
Filesystem     Type  1K-blocks     Used Available Use% Mounted on
/dev/vdb1      btrfs  92616812 19686860  72953136  22% /var/www
======== curl again of tryddevproject-21117 from host:
Success accessing database... db via TCP/IP
ddev is working. You will want to delete this project with 'ddev delete -Oy tryddevproject-21117'
Thanks for running the diagnostic. It was successful.
Please provide the output of this script in a new gist at gist.github.com
Running ddev launch in 5 seconds

Please run cleanup after debugging with 'ddev debug testcleanup'

Expected Behavior
Given I run:
ddev exec npm -v
10.2.3

I'm trying to update to the latest npm, so I'm running:
ddev exec nvm install-latest-npm

I'm expecting that npm is updated to the latest version, which at the time I wrote this ticket was v10.2.5.
Actual Behavior
The command ends with this error:
Attempting to upgrade to the latest working version of npm...
* Installing latest `npm`; if this does not work on your node version, please report a bug!
npm ERR! code EACCES
npm ERR! syscall rename
npm ERR! path /usr/local/lib/node_modules/npm
npm ERR! dest /usr/local/lib/node_modules/.npm-i9nnxROI
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, rename '/usr/local/lib/node_modules/npm' -> '/usr/local/lib/node_modules/.npm-i9nnxROI'
npm ERR!  [Error: EACCES: permission denied, rename '/usr/local/lib/node_modules/npm' -> '/usr/local/lib/node_modules/.npm-i9nnxROI'] {
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'rename',
npm ERR!   path: '/usr/local/lib/node_modules/npm',
npm ERR!   dest: '/usr/local/lib/node_modules/.npm-i9nnxROI'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.

npm ERR! A complete log of this run can be found in: /mnt/ddev-global-cache/npm/_logs/2023-12-11T15_10_09_626Z-debug-0.log
* npm upgraded to: v10.2.3

As a side note, I think we should follow the Docker philosophy when it comes to Node: avoid mixing different services in the same container. Node is a different technology than PHP and it could run in it's own container. Who needs to install/update Node dependencies should the commands in that container.
Steps To Reproduce
No response
Anything else?
From config.yaml
nodejs_version: "20"

Hi @claudiu-cristea,
nodejs_version: "20" - is the system node version managed with n, and on the other hand nvm is for installing the user managed node.
If you want to install the latest version npm using nvm, you first need to switch to nvm managed node:
ddev exec nvm install 20
ddev exec nvm install-latest-npm

Another technique without using nvm would be a Dockerfile:
$ cat .ddev/web-build/Dockerfile
RUN npm install --global npm@latest

Remember, in this case you need to remove npm managed with nvm:
nvm use system

Thank you. It makes sense (forgot nvm is user-based)


List the PackageIdentifier of the package to be added to automation
Alibaba.Yuque
Details about the application
https://app.nlark.com/yuque-desktop/v2/latest-lark.json
$result = (iwr 'https://app.nlark.com/yuque-desktop/v2/latest-lark.json' | ConvertFrom-Json).stable | Where-Object { $_.platform -eq 'win32' }

PackageVersion: $result.version
InstallerUrl: $result.exe_url

Does it have any other source? It doesn't seem to be updated. We already have 0.9.31 in the repo, and the JSON still shows 0.9.30.

You can leave this issue open and wait for the source get updated, or, turn to parse the download webpage.
https://github.com/TianXiaTech/scoop-txt/blob/master/bucket/yuque.json
https://github.com/chawyehsu/dorado/blob/master/bucket/yuque.json
Here are some examples. You can use the regex to match the version.


The timetable cannot be scrolled for a while after returning from the session details.

#543
When I was dealing with the PR above, I could scroll instantly when I came back from details.
However, the current code somehow prevents scrolling until the animation is over.
I think it would be better to revert to the previous code. 🤔
(It is not good to be inconvenienced by the demand to display animations.)

Certainly, it might be more important for users to be able to interact with the application than to worry about minor display issues.


[joy-ui][typography] Update docs after lineHeight changes

[x] I have followed (at least) the PR section of the contributing guide.

Updated the demo for 'Title and body' demo on the Typography docs page. After changes made on #38462 the lineHeight from Typography no longer fits with SVG icons, so I tweaked the demo to make sense with the current version.

Before
After

Those icons are gone, is it expected? The image in the description still contain icons.

Those icons are gone, is it expected? The image in the description still contain icons.

As @danilo-leal suggested here, since we won't have line-heights matching icons, I chose to have them removed to simplify the demo. The PR description is now updated 😉


/loop and /noloop crash with wildcards

The last line crashes the app.
/load brush*
/for i 100 /create b$1 brush-ln-tk
/noloop b*

this is a duplicate of #34


Julia 1.0

Can a stub version of this package be released for Julia 1.0 that just calls Base.download? Currently, for package tests it's not possible to make Downloads an [extra] dependency without errorring on Julia 1.0, so currently I just choose to live with the depwarn.

@StefanKarpinski What do you think the best approach is here?

I don't really know. Making a phony version of Downloads for this feels a little hacky, but if it works, 🤷🏻♂. Someone want to make the phony version?


Instructions on "Use Jupyter Notebook" is incorrect

I found the instructions given on this page is incorrect on the Jupyter Notebook section.  Basically, just nothing happens after clicking on the Jupyter icon on desktop or the icon on the task bar in my DSVM.  I am not sure whether this guide is not updated or the DSVM environment was not set up correctly.
The DSVM I used was set up 2 days ago, which I think is based on Windows 2019.

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

ID: 3719902f-d76a-6c2a-5579-0c049b202e1a
Version Independent ID: b0a18748-0d58-0dc4-db77-4a05c56da69b
Content: Explore data and model on Windows - Azure Data Science Virtual Machine
Content Source: articles/machine-learning/data-science-virtual-machine/vm-do-ten-things.md
Service: machine-learning
Sub-service: data-science-vm
GitHub Login: @vijetajo
Microsoft Alias: vijetaj

@ngyongkad
Thanks for your Question! We are currently investigating and will get back on this.

Hi @ngyongkad, I created a new 2019 Windows DSVM and was able to open the jupyter notebook using the desktop shortcut.
Can you try opening jupyter notebook via the command line? Open the DSVM, open a command line prompt, type "jupyter notebook". You should see the notebook server start and a browser window should automatically navigate to the localhost:8888 address

Hi @PeterCLu, I am able to open with command prompt.  However, according to the documentation, I should see "a directory that contains a few example notebooks that are pre-packaged into the DSVM". But I don't.  I am more interested in checking out those examples to examine how things work.  May be you could suggest how I can obtain those examples.
Since the desktop shortcut works for you, my problem probably was due to the environment's set up.  I don't have issues with other applications though.

@ngyongkad, you should see the a directory called "notebooks". There, you can find sample notebooks for Azure Machine Learning. This is not clearly communicated in the instructions, and I will update them so that this is more clear. I hope this helps!

@PeterCLu, thanks for the help. I will proceed to close this ticket.


The resources are sufficient, but the following errors are still reported

WARN [Coordinator-Exec--0] org.apache.druid.server.coordinator.rules.LoadRule - No available [cold] servers or node capacity to assign primary segment [serverlog_event_em_2023-03-04T00:00:00.000Z_2023-03-05T00:00:00.000Z_2023-03-05T^C

can you share more details? is it complaining about a particular tier? are the segments not available?

These segments are available and what are th

e reasons for this problem


Implement the API resources

Overview
As a software engineer,
I want to implement the API CRUD functionalities for the following models, separating the implementation into 3 distinct sections/layers (controller, service, and repository):

Category
City
Restaurant
State

Acceptance Criteria

[x] Implement all CRUD operations for the API models listed above.
[x] Implement the controller layer to expose the API endpoints.
[x] Implement the service layer for the API business rules.
[x] Implement the repository layer for the data persistency.

Changes implemented successfully!


Analytics overview in dashboard

Show Matomo statistics for a region in dashboard for back end users.
The Dashboard should display a chart of API calls per language and day during the last 30 days. The data can be fetched from the Matomo API. Each region has its own access token, that needs to be configured in the settings for the region. The setting is managed by the superadmins.

Thats my UI so far:

Comments?

I think its good. Simple and beautiful. The available formats are jpeg and csv, right?

Note that this issue is about the dashboard integration, the general statistics issue is #8

Actually, this issue is not solved yet, right? Our dashboard is still empty... I think it's not much work to port the stuff from the statistics page to a card on the dashboard, but this issue should remain open until this is solved, right?


Do not run scheduled github actions on forks

resolves #7183

Description
Run scheduled actions only in the dbt-labs/dbt-core repo by using if conditions for the affected jobs (see https://docs.github.com/en/actions/using-jobs/using-conditions-to-control-job-execution).
I verified in testing that the affected jobs will not be run any more in the forked repository:

Checklist

[x] I have read the contributing guide and understand what's expected of me
[x] I have signed the CLA
[x] I have run this code in development and it appears to resolve the stated issue
[x] This PR includes tests, or tests are not required/relevant for this PR
[x] I have opened an issue to add/update docs, or docs changes are not required/relevant for this PR
[ ] I have run changie new to create a changelog entry

@flexponsive Thanks for the PR! This doesn't require a changelog entry, since it's not a change to distributed code, but you're still welcome to make one so we can give you credit as an external contributor, if you want.


Backward compatibility of OptHistory

Changelist:

Individual serialization - float fitness is converted to SingleObjFitness.
ParentOperator class is temporary imported at opt_history until the issue is closed.

Hello @MorrisNein! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file fedot/core/optimisers/opt_history.py:

Line 14:80: E261 at least two spaces before inline comment

В рамках этого PR также пройдусь по проекту, где уже натыкал isinstance(fitness, float) и уберу вилку.


private methods/variables on Player

Coverage decreased (-0.09%) to 69.909% when pulling 2b10fded178b09f0c199138418440509acf9613f on feature/private-vars-player into 8e9875fdd33578e8fccd70cad28d1ee301d45f77 on master.

LGTM


Cherry pick of #11689

Summary

Cherry pick of #11689 on cloud.
Ticket Link

https://mattermost.atlassian.net/browse/MM-48747

Release Note

NONE

@amyblais Cherry-pick to cloud


micropad: use fetchYarnDeps

Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Oh actually, the update.sh will need to be updated to update the new checksum instead of the files

Oh actually, the update.sh will need to be updated to update the new checksum instead of the files

Feel free to reuse my code and make this change in your PR.

Have just started doing that :)On 7/09/2023, at 1:34 PM, Robert Schütz @.***> wrote:
Oh actually, the update.sh will need to be updated to update the new checksum instead of the files
Feel free to reuse my code and make this change in your PR.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because your review was requested.Message ID: @.***>

Done in #253771


Handle connection error when fetching kfp session cookie

What changes were proposed in this pull request?
Adds an explicit catch for requests.exceptions.ConnectionError when processing kfp pipelines.  A longer-term, more robust addition will be to add exception handling to the pipeline handlers.
How was this pull request tested?
IDE is currently not working with KFP, so tested manually and produced this screenshot:

Fixes #1929
Developer's Certificate of Origin 1.1
   By making a contribution to this project, I certify that:

   (a) The contribution was created in whole or in part by me and I
       have the right to submit it under the Apache License 2.0; or

   (b) The contribution is based upon previous work that, to the best
       of my knowledge, is covered under an appropriate open source
       license and I have the right under that license to submit that
       work with modifications, whether created in whole or in part
       by me, under the same open source license (unless I am
       permitted to submit under a different license), as indicated
       in the file; or

   (c) The contribution was provided directly to me by some other
       person who certified (a), (b) or (c) and I have not modified
       it.

   (d) I understand and agree that this project and the contribution
       are public and that a record of the contribution (including all
       personal information I submit with it, including my sign-off) is
       maintained indefinitely and may be redistributed consistent with
       this project or the open source license(s) involved.

@kevin-bates do you mind rebasing to the latest master and push --force as it seems you have an extra commit from kiersten.


[KFNBC] Using File -> Shut Down does not look like it really shut down the pod

It bring me back to the main screen in which the button "stop notebook server" is still visible.

@samuelvl It looks like the shutdown in JupyterLab only shuts the pod down, but the pod will be back soon because the notebook controller and the Notebook are still there. This is why we need the embedded custom control panel to navigate the user back to the dashboard control panel, which could shut the notebook down.


Siderbar - Close automaticly child when another open

Hi,
I wanted to know if there is a setting or any tool i can use for my problem. Even on your website if we open many child menu on sidebar it's all the same color. I wanted to do something that when the user open a child menu it close the others.
Exemple of the problem :

Do you know something like that ? Can you help ?
Thanks.

My code is like this :

Please help !

Try this :
https://github.com/coreui/coreui-angular/issues/67#issuecomment-565438464


Clicking on "examples gallery" results in dead link

See the bottom of README.md

This should be fixed in #17. For the time being, here's the link: http://contrib.scikit-learn.org/forest-confidence-interval/auto_examples/index.html

I believe this is now fixed.


DPI-aware Mouse Move Across Screens

Description of the new feature / enhancement
A common issue with using two monitors in Windows is that they both have to be the same size and resolution, otherwise there are frustrations when moving cursor between screens.
I recently learned of another open-source project called Little Big Mouse that fixes this very well.
Something like this utility built-in in PowerToys would make a superior multi-monitor experience available to many more power users.
Scenario when this would be used?
Power users with multiple displays often have to contend with the limited built-in multi-monitor settings in Windows.
This scenario especially affects users who have a 4k monitor as their primary next to something with a lower DPI.
Supporting information
https://github.com/mgth/LittleBigMouse/wiki
Little Big Mouse is an open source project and is protected by the GNU General Public License as published by the Free Software Foundation.

Windows 11 22h2's "Ease cursor movement between displays" is not a resolution FYI https://github.com/microsoft/PowerToys/issues/1226#issuecomment-1636700423
I had created a ticket in Windows Feedback Hub https://aka.ms/AAlk7nr for upvoting, @crutkas please help send it to someone that can in charge of it.


[fix](inverted index) base compaction failed after restore indexes

What problem does this PR solve?
Problem:
after restore from other cluster, then rowsets got different index_id, and make index compaction in base compaction always failed.
Fix:
On master branch, this pr: https://github.com/apache/doris/pull/41625 already fix it.
Here pick it to branch-2.1
Release note
None
Check List (For Author)

Test

[ ] Regression test
[ ] Unit Test
[ ] Manual test (add detailed scripts or steps below)
[ ] No need to test or manual test. Explain why:

[ ] This is a refactor/code format and no logic has been changed.
[ ] Previous test can cover this change.
[ ] No code files have been changed.
[ ] Other reason

Behavior changed:

[ ] No.
[ ] Yes.

Does this need documentation?

[ ] No.
[ ] Yes.

Check List (For Reviewer who merge this PR)

[ ] Confirm the release note
[ ] Confirm test cases
[ ] Confirm document
[ ] Add branch pick label

run buildall

run buildall

run buildall


Removed line numbers from tutorial-six-python.md

It would be better to just have a general explanation like other guides without these line numbers. it seems website code highlighter doesn't support line numbers.

@Clivern Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

@Clivern Thank you for signing the Contributor License Agreement!

Thank you!


The Table-Data editor ignores auto-commit setting in Db2 for IBM i connections.

Description
Since the update to version 24.01 the behavior of my database connections for "DB2 for IBM i" (jt400) changed.
The connection initialization preferences for the connection seem to be ignored.
If you expected to work in manual mode, this is a dangerous change.
On my non-JT400 connection, the behavior is still the same. The Table data editor opens in the same mode as the SQL editor.
DBeaver Version
Community Edtion 24.01.202403241413
Operating System
Windows 10
Database and driver
No response
Steps to reproduce

Update to DBeaver 24.01.
Check the connection settings of a Db2 for I Database and ensure that the connection is initialized without auto-commit.
Connect to a Db2 for i Database
double click any database-table to open the table data editor.
Check the commit mode.

Additional context
No response

Hello @marcmuel
Could you please provide screens with your connection settings?

Here are my settings:

@marcmuel Thank you for the report. It seem like a duplicate of https://github.com/dbeaver/dbeaver/issues/23240
So i'll close this one


Windmill A/C auth token not listed in online dashboard

Describe Your Problem:

We have the last-gen Windmill A/C (now called the "Classic" I believe, not the Whispertech) and the dashboard.windmillair.com site no longer has the auth token shown for A/C units. Are there any other ways to find this token?
Screenshots:

I had the same issue. The token is there in the source code for the webpage. Navigate to the specific AC unit you want, then open the info ℹ panel, then view source.
The key is a 32 character mixed upper/lowercase alphanumeric string with no special characters.

NAME OF YOUR AC

KEYISHERE

selector path: #search-table > div > div.ant-table-body > div > table > tbody > tr:nth-child(3) > td:nth-child(3)

@beret are you still able to find your token in the page source? It's looking to me like they might have removed that as well 😢

You can also find your token by using the app (in my case, iOS) to send logs to yourself.

👤(user menu, top left) > About > Send Logs
A new email modal will pop up which contains your log files.
Change To: to your email address,
delete the Cc: address, and
send it to yourself.
Search any of these log files for "token".

Hope this helps ✊

note: the token will change any time you have to reconfigure your network connection. A pain in my case because I'm having the issue where the unit's settings change randomly and disconnects from wifi.

Hi There....For some reason when I try to enable logging by following the instructions above I get the following error:  Logging Turned Off.  You can turn on logging in Windmill Air Settings section in Settings App.  For some reason I can't find where to enable logging

You can also find your token by using the app (in my case, iOS) to send logs to yourself.
👤(user menu, top left) > About > Send Logs
A new email modal will pop up which contains your log files.
Change To: to your email address, delete the Cc: address, and send it to yourself.
Search any of these log files for "token".
Hope this helps ✊
note: the token will change any time you have to reconfigure your network connection. A pain in my case because I'm having the issue where the unit's settings change randomly and disconnects from wifi.

Thank you! Finally got a chance to try this out today and it worked like a charm.

I'm going to close the issue since there's a workaround and to keep the issues list clean


Locust Web Ui not Accessible When Running on Mac OS Docker Desktop

Describe the bug

When starting locust using docker in Mac OS, I am unable to access web UI
However it's works on Ubuntu

Steps to reproduce
git clone https://github.com/locustio/locust.git
cd locust/examples/docker-compose
docker-compose up -d

Expected behavior

http://localhost:8089/ should be successfully loaded from chrome

Actual behavior

Unable to access http://localhost:8089/ from chrome
However if running on Ubuntu, I am able to access

Environment settings

OS: Macos Catalina with Docker Desktop (version <IP_ADDRESS>)
Python version: From latest locustio/locust docker image
Locust version: Latest locustio/locust docker image

Get the same bug on Catalina.
When running locust inside a docker container, trying to accesshttp://localhost:8089 or http://<IP_ADDRESS>:8089 results in 'Unable to access'. Works if I go outside of the docker image.


correct HRworks support email address

Changed the HRworks support mail address to the correct one<EMAIL_ADDRESS>

@sommerfn : Thanks for your contribution! The author, @jeevansd, has been notified to review your proposed change.

This article does not require any next steps, so I have not added it. SaaS app tutorials are not TOC integrated.
Our toc is here: https://docs.microsoft.com/en-us/azure/active-directory/active-directory-saas-tutorial-list
#sign-off

@jeevansd Sorry, I don't quite understand.
The change has not been merged, but we need the contact info changed.
What's the proper way to get the docs changed accordingly?


⚠ Bofrost.at has degraded performance

In a367630, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1264 ms

Resolved: Bofrost.at performance has improved in 9c7a749 after 10 minutes.


Migrate pdal282 gdal310 together

GDAL and PDAL packages have a cycle in them that prevent migrations from working cleanly. This is a manual merge of both to get ✅
#482, #481 – PDAL
#480, #479 – GDAL
@ocefpaf If you have ideas on how we can structure libpdal-core and libgdal-core so they don't have this cycle it would be very helpful.

If you have ideas on how we can structure libpdal-core and libgdal-core so they don't have this cycle it would be very helpful.

We have some special cases in the bot that could handle this. I recall some exceptions for the kde stack. @beckermr probably knows better.


Make configCallback optional

We should be able to just do .plugin('view-manager')
At the moment we have to provide a callback: .plugin('view-manager', function() {})

https://github.com/SpoonX/aurelia-view-manager/pull/5


Vim9: Terminates with "SIGSEGV (Address boundary error)" when trying to call Lua function

Steps to reproduce

Create vimrc file (for example, bug-SIGSEGV.vim)

vim9script

def Test(Callback: func())
  Callback()
enddef

lua << EOF
vim.fn.Test(function () print('Hello') end)
EOF

Open Vim using custom vimrc

 ❯ vim -u bug-SIGSEGV.vim

App immediately crashes with this output

Vim: Caught deadly signal SEGV
Vim: Finished.
fish: Job 1, 'vim -u bug-SIGSEGV.vim' terminated by signal SIGSEGV (Address boundary error)

Expected behaviour
Vim9 correctly calls Lua functions like Vim8:
function Test(Callback)
  return a:Callback()
endfunction

lua << EOF
vim.fn.Test(function () print('Hello') end)
EOF

And prints Hello.
Version of Vim
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled May 13 2022 20:56:28)
macOS version - x86_64
Included patches: 1-4950
Compiled by Homebrew
Environment
OS: MacOS Big Sure 11.6 (20G165)
Terminal: Kitty
Shell: Fish

backtrace
valgrind log

@brammool that was fast 🏄♂ thanks a lot!


getNativeNamespaces needs to filter by namespaces with infinite duration

https://github.com/nemgrouplimited/symbol-explorer/blob/main/src/infrastructure/NamespaceService.js#L329
The real nemesis block will have a few "native" namespaces (symbol, xym) with an infinite duration.
But, it will have many more user namespaces (registered via optin) that will have a one year duration. These shouldn't be preloaded (and will have very negative performance implications if they are). Currently, a side effect is that all of these namespaces are displayed as INFINTE.

Agree, I was thinking all native namespace is created in the Nemesis block, but never think of registered via optin.
I will change it to read the "native" namespace from the config file, as it already predefined in the nemesis block. :)
thanks for the feedback.

Agree, I was thinking all native namespace is created in the Nemesis block, but never think of registered via optin.
I will change it to read the "native" namespace from the config file, as it already predefined in the nemesis block. :)
thanks for the feedback.


Show Options When Running "cci flow info"

Currently, when you run cci flow info referencing a flow that has a task with options you only receive feedback about the task name and not any of its options. This can create confusion when debugging a flow since you may attempt to run a task without those options and receive a different result not knowing that cci flow info isn't providing this feedbac.
Example Flow:
    foo_bar:
        steps:
            1:
                task: bar_foo
                options:
                    foo: bar

After running cci flow info foo_bar result is:
Flow Steps
1) task: bar_foo [from current folder]

I would expect something closer to:
Flow Steps
1) task: bar_foo [from current folder]
        options:
            foo: bar

Since this may result in very long results when using cci flow info, it may make more sense to simply use an identifier like an * to signify that tasks or flows have options so that the user knows they need to reference the cci yml before attempting to run that task/flow on it's own.

We've talked about adding a --verbose flag to show the options. But it makes sense that it would be helpful to at least have an indicator for which tasks have options, even in the non-verbose mode.

Closed by #2845


Remove unused data source code

Remove code which is no longer used post-lazy rewrite.

DataSource and related classes. *BarReader and *BarWriter pairs should be used instead.
factory.create_minutely_trade_source and factory.create_commission are also no longer used.

Branch build found one usage of DataPanelSource, https://ci.appveyor.com/project/Quantopian/zipline/build/1.0.1275/job/30tdgw10eff580h3
======================================================================
ERROR: Failure: ImportError (cannot import name DataPanelSource)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "c:\python27_64\envs\testenv\lib\site-packages\nose\loader.py", line 418, in loadTestsFromName
    addr.filename, addr.module)
  File "c:\python27_64\envs\testenv\lib\site-packages\nose\importer.py", line 47, in importFromPath
    return self.importFromDir(dir_path, fqname)
  File "c:\python27_64\envs\testenv\lib\site-packages\nose\importer.py", line 94, in importFromDir
    mod = load_module(part_fqname, fh, filename, desc)
  File "C:\projects\zipline\tests\test_algorithm.py", line 78, in <module>
    from zipline.sources import DataPanelSource
ImportError: cannot import name DataPanelSource

Will investigate why that is still being used.

Coverage increased (+0.6%) to 82.932% when pulling a721380664c522591b8b96e77fad48e0e6661d77 on remove-unused-data-source-code into 28055ed36dd96a6e63d373b84a95dbc577b2e419 on master.


GH-38884: [C++] DatasetWriter release rows_in_flight_throttle when allocate writing failed

Rationale for this change

When file-queue is fall or write failed, the DatasetWriterImpl::DoWriteRecordBatch might failed, however, the resources are not released.
What changes are included in this PR?

When file-queue is full or cannot open file, release the row resources.
Are these changes tested?

no
Are there any user-facing changes?
no

Closes: #38884

cc @kou @bkietz

Updated the issue

Can we add a test for this case?

Can we add a test for this case?

Sure I'll finish this after work tonight

Sorry for late replying because so busy this week, during writing test, I found that dataset_writer might write chunk with size == 0, is this expected?

@kou I've try to fix some comments, would you mind take a look?

@mapleFU This may be unstable...
It failed in "Java JNI" CI of #39176: https://github.com/apache/arrow/actions/runs/7170522378/job/19523443755?pr=39176#step:7:3284
[ RUN      ] DatasetWriterTestFixture.MaxRowsOneWriteBackpresure
/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:115: Failure
Value of: _fut.Wait(::arrow::kDefaultAssertFinishesWaitSeconds)
  Actual: false
Expected: true
/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:154: Failure
Expected: (found) != (actual_paths.end()), actual: 8-byte object <88-4C 00-00 E9-7F 00-00> vs 8-byte object <88-4C 00-00 E9-7F 00-00>
The file testdir/chunk-89.arrow was not in the list of files visited
Google Test trace:
/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:183: pre_finish
/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:154: Failure
Expected: (found) != (actual_paths.end()), actual: 8-byte object <F8-34 00-F4 E8-7F 00-00> vs 8-byte object <F8-34 00-F4 E8-7F 00-00>
The file testdir/chunk-89.arrow was not in the list of files visited
Google Test trace:
/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:187: post_finish
/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:161: Failure
Value of: _st.ok()
  Actual: false
Expected: true
'_error_or_value27.status()' failed with Invalid: File is too small: 0
/arrow/cpp/src/arrow/result.cc:28: ValueOrDie called on an error: Invalid: File is too small: 0
/build/cpp/release/arrow-dataset-dataset-writer-test[0xd7d0e8]
/build/cpp/release/arrow-dataset-dataset-writer-test[0xd7d43d]
/build/cpp/release/arrow-dataset-dataset-writer-test[0xe5f462]
/build/cpp/release/arrow-dataset-dataset-writer-test[0xe6b6e7]
/build/cpp/release/arrow-dataset-dataset-writer-test[0x5fb7fa]
/build/cpp/release/arrow-dataset-dataset-writer-test[0x5eeec9]
/build/cpp/release/libarrow_gtest.so.1.11.0(void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*)+0x5f)[0x7fe90eabfb6f]
/build/cpp/release/libarrow_gtest.so.1.11.0(testing::Test::Run()+0xce)[0x7fe90eab489e]
/build/cpp/release/libarrow_gtest.so.1.11.0(testing::TestInfo::Run()+0x155)[0x7fe90eab4a15]
/build/cpp/release/libarrow_gtest.so.1.11.0(testing::TestSuite::Run()+0xd9)[0x7fe90eab4fd9]
/build/cpp/release/libarrow_gtest.so.1.11.0(testing::internal::UnitTestImpl::RunAllTests()+0x51a)[0x7fe90eab56ba]
/build/cpp/release/libarrow_gtest.so.1.11.0(bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*)+0x5f)[0x7fe90eabffef]
/build/cpp/release/libarrow_gtest.so.1.11.0(testing::UnitTest::Run()+0x7c)[0x7fe90eab4abc]
/build/cpp/release/libarrow_gtest_main.so.1.11.0(main+0x3b)[0x7fe90eae70eb]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7fe90d6fe555]
/build/cpp/release/arrow-dataset-dataset-writer-test[0x5d39c7]
/build/cpp/src/arrow/dataset

I re-run the job for now.

FYI: It passed in the second run: https://github.com/apache/arrow/actions/runs/7170522378?pr=39176

@mapleFU This may be unstable... It failed in "Java JNI" CI of #39176: https://github.com/apache/arrow/actions/runs/7170522378/job/19523443755?pr=39176#step:7:3284
[ RUN      ] DatasetWriterTestFixture.MaxRowsOneWriteBackpresure
/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:115: Failure
Value of: _fut.Wait(::arrow::kDefaultAssertFinishesWaitSeconds)
  Actual: false
Expected: true
/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:154: Failure
Expected: (found) != (actual_paths.end()), actual: 8-byte object <88-4C 00-00 E9-7F 00-00> vs 8-byte object <88-4C 00-00 E9-7F 00-00>
The file testdir/chunk-89.arrow was not in the list of files visited
Google Test trace:
/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:183: pre_finish
/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:154: Failure
Expected: (found) != (actual_paths.end()), actual: 8-byte object <F8-34 00-F4 E8-7F 00-00> vs 8-byte object <F8-34 00-F4 E8-7F 00-00>
The file testdir/chunk-89.arrow was not in the list of files visited
Google Test trace:
/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:187: post_finish
/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:161: Failure
Value of: _st.ok()
  Actual: false
Expected: true
'_error_or_value27.status()' failed with Invalid: File is too small: 0
/arrow/cpp/src/arrow/result.cc:28: ValueOrDie called on an error: Invalid: File is too small: 0
/build/cpp/release/arrow-dataset-dataset-writer-test[0xd7d0e8]
/build/cpp/release/arrow-dataset-dataset-writer-test[0xd7d43d]
/build/cpp/release/arrow-dataset-dataset-writer-test[0xe5f462]
/build/cpp/release/arrow-dataset-dataset-writer-test[0xe6b6e7]
/build/cpp/release/arrow-dataset-dataset-writer-test[0x5fb7fa]
/build/cpp/release/arrow-dataset-dataset-writer-test[0x5eeec9]
/build/cpp/release/libarrow_gtest.so.1.11.0(void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*)+0x5f)[0x7fe90eabfb6f]
/build/cpp/release/libarrow_gtest.so.1.11.0(testing::Test::Run()+0xce)[0x7fe90eab489e]
/build/cpp/release/libarrow_gtest.so.1.11.0(testing::TestInfo::Run()+0x155)[0x7fe90eab4a15]
/build/cpp/release/libarrow_gtest.so.1.11.0(testing::TestSuite::Run()+0xd9)[0x7fe90eab4fd9]
/build/cpp/release/libarrow_gtest.so.1.11.0(testing::internal::UnitTestImpl::RunAllTests()+0x51a)[0x7fe90eab56ba]
/build/cpp/release/libarrow_gtest.so.1.11.0(bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*)+0x5f)[0x7fe90eabffef]
/build/cpp/release/libarrow_gtest.so.1.11.0(testing::UnitTest::Run()+0x7c)[0x7fe90eab4abc]
/build/cpp/release/libarrow_gtest_main.so.1.11.0(main+0x3b)[0x7fe90eae70eb]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7fe90d6fe555]
/build/cpp/release/arrow-dataset-dataset-writer-test[0x5d39c7]
/build/cpp/src/arrow/dataset

I re-run the job for now.

I'll run in my local machine and find out why

***Failed   64.16 sec
[ RUN      ] DatasetWriterTestFixture.MaxRowsOneWriteBackpresure
/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:115: Failure
Value of: _fut.Wait(::arrow::kDefaultAssertFinishesWaitSeconds)
  Actual: false
Expected: true

Seems the writer hang when writing the 89th file, and causing the test failed. I need sometime to gothrough the whole codebase of the writer, it's a bit complex because so many async tool is introduced...

I guess DatasetWriterFileQueue::WriteNext form a kind of deadlock or other in current impl, but I need time to checking it

  Future<> WriteNext(std::shared_ptr<RecordBatch> next) {
    // May want to prototype / measure someday pushing the async write down further
    return DeferNotOk(options_.filesystem->io_context().executor()->Submit(
        [self = this, batch = std::move(next)]() {
          int64_t rows_to_release = batch->num_rows();
          Status status = self->writer_->Write(batch);
          self->writer_state_->rows_in_flight_throttle.Release(rows_to_release);
          return status;
        }));
  }

self->writer_state_->rows_in_flight_throttle.Release might trigger the callback, I guess this might trigger the problem. But I need some time to convince @kou

/Users/fuxuwei/workspace/CMakeLibs/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:115: Failure
Value of: _fut.Wait(::arrow::kDefaultAssertFinishesWaitSeconds)
  Actual: false
Expected: true
/Users/fuxuwei/workspace/CMakeLibs/arrow/cpp/src/arrow/result.cc:28: ValueOrDie called on an error: Invalid: File is too small: 0
/Users/fuxuwei/workspace/CMakeLibs/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:154: Failure
Expected: (found) != (actual_paths.end()), actual: 8-byte object <E8-9B 00-53 01-00 00-00> vs 8-byte object <E8-9B 00-53 01-00 00-00>
The file testdir/chunk-63.arrow was not in the list of files visited
Google Test trace:
/Users/fuxuwei/workspace/CMakeLibs/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:183: pre_finish
/Users/fuxuwei/workspace/CMakeLibs/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:154: Failure
Expected: (found) != (actual_paths.end()), actual: 8-byte object <E8-8B 00-54 01-00 00-00> vs 8-byte object <E8-8B 00-54 01-00 00-00>
The file testdir/chunk-63.arrow was not in the list of files visited
Google Test trace:
/Users/fuxuwei/workspace/CMakeLibs/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:187: post_finish
/Users/fuxuwei/workspace/CMakeLibs/arrow/cpp/src/arrow/dataset/dataset_writer_test.cc:162: Failure
Value of: _st.ok()
  Actual: false
Expected: true
'_error_or_value27.status()' failed with Invalid: File is too small: 0
0   libarrow.1500.0.0.dylib             0x00000001082d1ecc _ZN5arrow4util7CerrLog14PrintBackTraceEv + 44
1   libarrow.1500.0.0.dylib             0x00000001082d1e80 _ZN5arrow4util7CerrLogD2Ev + 184
2   libarrow.1500.0.0.dylib             0x00000001082d1dc0 _ZN5arrow4util7CerrLogD0Ev + 12
3   libarrow.1500.0.0.dylib             0x00000001082d1d5c _ZN5arrow4util8ArrowLogD1Ev + 48
4   libarrow.1500.0.0.dylib             0x00000001081a7a30 _ZN5arrow8internal17InvalidValueOrDieERKNS_6StatusE + 240
5   arrow-dataset-dataset-writer-test   0x0000000104560ca0 _ZN5arrow7dataset8internal24DatasetWriterTestFixture11ReadAsBatchENSt3__117basic_string_viewIcNS3_11char_traitsIcEEEEPi + 4952
6   arrow-dataset-dataset-writer-test   0x0000000104550390 _ZN5arrow7dataset8internal24DatasetWriterTestFixture17AssertCreatedDataERKNSt3__16vectorINS2_12ExpectedFileENS3_9allocatorIS5_EEEEb + 192
7   arrow-dataset-dataset-writer-test   0x0000000104551d14 _ZN5arrow7dataset8internal56DatasetWriterTestFixture_MaxRowsOneWriteBackpresure_Test8TestBodyEv + 652
8   libarrow_gtest.1.11.0.dylib         0x00000001049d1bdc _ZN7testing8internal35HandleExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc + 92
9   libarrow_gtest.1.11.0.dylib         0x00000001049d1b30 _ZN7testing4Test3RunEv + 444
10  libarrow_gtest.1.11.0.dylib         0x00000001049d329c _ZN7testing8TestInfo3RunEv + 492
11  libarrow_gtest.1.11.0.dylib         0x00000001049d3e58 _ZN7testing9TestSuite3RunEv + 352
12  libarrow_gtest.1.11.0.dylib         0x00000001049e3c3c _ZN7testing8internal12UnitTestImpl11RunAllTestsEv + 2120
13  libarrow_gtest.1.11.0.dylib         0x00000001049e32d0 _ZN7testing8internal35HandleExceptionsInMethodIfSupportedINS0_12UnitTestImplEbEET0_PT_MS4_FS3_vEPKc + 92
14  libarrow_gtest.1.11.0.dylib         0x00000001049e3240 _ZN7testing8UnitTest3RunEv + 124
15  libarrow_gtest_main.1.11.0.dylib    0x0000000104627e9c main + 68
16  dyld                                0x00000001046f50f4 start + 520
Process finished with exit code 134 (interrupted by signal 6: SIGABRT)

Using diff:
     // May want to prototype / measure someday pushing the async write down further
     return DeferNotOk(options_.filesystem->io_context().executor()->Submit(
         [self = this, batch = std::move(next)]() {
+          // Sleep 1 s
+          std::this_thread::sleep_for(std::chrono::seconds(1));
           int64_t rows_to_release = batch->num_rows();
           Status status = self->writer_->Write(batch);
           self->writer_state_->rows_in_flight_throttle.Release(rows_to_release);

This can produce similiar, but when enlarge test time-out, the problem disappear. I think that maybe just I'm writing too many files, making schedule writing so slow?


get last user message

Hi .I have question
i make bot in c# with telegram.bot,but i can't get text from user and process it,
because i can't get the last message of user's message.
please help me

@mattiusad  please follow issue template
If you need to chat, join our group chat.


Adds a beforeCreate pool hook to allow connectionSettings to be updated

New functionality needs tests and documentation in https://github.com/knex/documentation :)

Apologies. This PR was opened  unintentionally and was my attempt at a spike to solve a problem. I will close this.
For anyone that may find this in the future, the was intended to solve the problem of being able to change the connection configuration before a new connection was acquired.
This is because my project uses IAM authentication for AWS RDS. This means my database user does not have a fixed password and uses temporary access tokens created by RDS.Signer. Another challenge is that the access tokens expire after 15 minutes, and you need to get a new token for each RDS cluster endpoint (cluster/read-only).
The eventual solution was to manage multiple knex instances with a pool of connections for each RDS endpoint. Then recycle the knex instances with new tokens every 10 minutes. Not ideal, but seems to do the job.
Being able to modify the connection configuration with a beforeCreate hook didn't really make since since the tokens expire in 15 minutes and managing individual connections in the pools seemed like a fair amount of effort.

New functionality needs tests and documentation in https://github.com/knex/documentation :)

Also it should be discussed in feature request before implementing solution. But sounds like this was for personal use :)

For anyone that may find this in the future, the was intended to solve the problem of being able to change the connection configuration before a new connection was acquired.

There was a suggestion for this kind of feature while ago, but its API was also not good for taking in https://github.com/tgriesser/knex/pull/3052

Throwing in a similar thought here - also would love to be able to inject parameters dynamically. I'm on AWS, and for similar reasons, want to be able to refresh the credentials periodically. This feature would be great for environments where credentials can't be hardcoded or injected via the environment, as well as apps that use service discovery.


is this still on?

I haven't been actively maintaining this, but all the existing environments likely still work.


How implement decaying epsilon greedy policy

Hi,
is there a simple solution to implement a decaying-epsilon-greedy exploration policy with ACME?
I'm trying the DQN agent and it incorporates an epsilon-greedy policy but without any decay.
Any tip?
Thanks,
Nicola

Found a simple solution: using the following lambda function:
lambda q: trfl.epsilon_greedy(q, epsilon=epsilon[0]).sample()
Where epsilon = [0.5] , then you can change epsilon[0] and you're done.
The lambda function must be used in the policy network  (see the DQN agent code here).


item that starts "how to" wizzard for collaborative server, and for BDS server

either it just points on the github's readmes, or it asks the necessary inputs with the scijava forms and formulates a string that one needs to paste into terminal

partially addressed in commit 82da62abbed3fe2cdc9c1b3a929314c33adc8a5d


Can't find variable: performance on React Native (Expo)

🐛 Bug Report
When using v9 rc on react native with @react-spring/native, an error is being thrown in the following simple piece of code. the exception mentions Unhandled promise rejection: Can't find variable: performance
function SearchButton() {
  const navigation = useDrawer();
  const [state, setState] = React.useState("left");

  const styles = useSpring({
    paddingRight: state === "left" ? 20 : 100,
  });

  return (
    <AnimatedView
      // initial={"left"}
      // animate={state}
      style={styles}
    >
      <TouchableWithoutFeedback
        style={{ padding: 16 }}
        onPress={() => setState((s) => (s === "left" ? "right" : "left"))}
      >
        <MaterialIcons name="search" size={28} color={colors.blueGrey[800]} />
      </TouchableWithoutFeedback>
    </AnimatedView>
  );
}

This works with react-spring v8, but throws exception on the latest version on 9 rc.

Expected behavior
The padding value should animate when the search button is clicked
Link to repro (highly encouraged)
(Please provide either a CodeSandbox demo or an example GitHub repo.)
Environment

react-spring v9.0.0-rc.3
react-native v0.62 with expo SDK 38

Have you tried using an older version of react-native?
https://github.com/facebook/react-native/pull/27885 seems to fix the issue. You could fork react-native and pull those changes in, or wait until they're released.

I was using the version that comes with expo SDK 38. I think they have their own patched changes on the react-native version, so I will have to work on their patched version. Not very comfortable working around those things yet. We reverted to using react-spring v8 for now.


Fix logic for #checkIfAwayFromBottom and handle window resize

This PR fixes the logic for when to display the Go to Bottom button and handles the window resize event.

Looks great!

fab! ✨


Remove Fastest Free YouTube Downloader.app (not available anymore)

The homepage and download URL don't work. It seems that officially not available anymore.

Merged as bcf5861f0563836636bf9baaa0b2eb9a3f2f776c.


Improve theme toggle a11y

Improve the a11y of the theme toggle:

Make it tabbable
Make it appear more clickable

The hard-coded CSS is a bit rough, but better than the previous implementation.


Custom audio doesn't work in Toast Notification for Desktop Application

Hi,
I use custom audio in Toast Notification in Desktop Application. But I found some problems with play this audio. I have two versions of Windows:

1607
1809

In version 1607 custom audio plays perfectly. But in version 1809 custom audio file doesn't play, there is just standard sound instead my audio.
I added audio by follow code:
Audio = new ToastAudio()
{
    Src = new Uri("file:///...")
}

Am I missing something? Could someone please help me with the issue?

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

ID: cfdc821a-c9bb-b8fb-3819-8d99c6ee7b03
Version Independent ID: c32c183c-8a50-1444-fb68-c0b46d6805f2
Content: Custom audio on toasts - Windows UWP applications
Content Source: windows-apps-src/design/shell/tiles-and-notifications/custom-audio-on-toasts.md
Product: uwp
Technology: design
GitHub Login: @mijacobs
Microsoft Alias: mijacobs

Thanks for reporting this! Looking into the issue with the dev team.

@Ace-Lightning your app is a classic Win32 app, correct? It is NOT using the Desktop Bridge?

@andrewleader, yes, it’s classic .NET application, not Desktop Bridge

Thanks @Ace-Lightning. I've confirmed with the dev team that this is a known issue. We don't have any current plans to address it, as the fix is relatively big compared to the number of people who have asked for this functionality.
If you use the Desktop Bridge to package your application, you'll be able to use resources via the ms-appx:/// file path and audio will work! Otherwise, if Desktop Bridge isn't an option for you, we'll continue to evaluate feedback around this area and see what happens! Thanks!
Andrew

I'm not familiar with Desktop Bridge. I will investigate this way.
But I look forward the issue will be handled for Win32 applications near future.
Thanks for looking at it!


Install docker on Amplify build agent

Please describe which feature you have a question about?
Amplify CI
Provide additional details
Hello, I have a question. Does your team have a script on how to install the properly docker on Amplify build agent?
Thanks!
Regards,
Anastasiya

Hi @anastasiyamazheika 👋🏽 here are the instructions to setup a custom build image with your preferred dockerfile: https://docs.aws.amazon.com/amplify/latest/userguide/custom-build-image.html

If you need further assistance, feel free to re-open this issue. Thanks!


Resuse cluster name for reconciler calls

Description
Changes proposed in this pull request:

Once the cluster name is created, it is stored as a clusterName in the instance details and can be reused by next operations

Related issue(s)

/hold

/retest

/retest

/retest

/retest

/unhold


[File Manager] ... Copy and Move Files

Extension – File Manager
Author:

Describe the feature and the current behavior/state.
Who will benefit with this feature?
Any Other info.

Hi @spsisys. Given that the developers have said he will not update this extension (because he thinks the built-in File Search can already replace this extension), you can try the Common Directory extension, one of the commands is Send File to Directory.
Also unfortunately, due to API limitations, any extensions for moving and copying files now cannot pass the official review, so the full version of Common Directory can only be installed locally.


Bug that causes site to crash

https://github.com/WhistleDevelopments/Undercord/blob/dcc1bf59fb3c0de2ce5d27082eb004a94028c92b/index.php#L46
Using \ in the input boxes causes the site to completely crash.

Exploit patched.


define CombinedReducer type for redux_v3.x.x

Updates to redux flow based on conversation here

I just spend two hours trying https://flow.org/en/docs/frameworks/redux/#toc-typing-redux-state-immutability but "Covariant property xyz incompatible with invariant use in object type" ruined my day.
This PR fixes it. I hope it will be merged soon.


minor minor minor typo

spotted while reading, sorry for the noise

Thanks a lot for the PR. As a reminder, please submit PRs against develop instead of master.