[Feature]: Remove the Independent DeleteFiles for the Iceberg Format Table

Description
For the Iceberg Format table, there are some scenarios that produce some DeleteFiles that are not related to any DataFile , which are called Independent DeleteFiles. These scenarios include:

when upsert mode is enabled, a record which not exist will be deleted before inserting it
delete files that are not automatically cleaned up after rewriting files
...

Although these Independent DeleteFiles cannot be found when scanning files and do not affect read performance, they can cause file accumulation and put pressure on the file system.
We should remove these Independent DeleteFiles periodically.
Use case/motivation
In our scenario, after several days of testing, we were able to find thousands of Independent DeleteFiles, including both equ-delete Files and pos-delete Files, even far more than the number of Data Files. Removing these files can greatly reduce the total number of files on the disk.
Describe the solution
I suggest removing Independent DeleteFiles during Orphan files cleanup because Independent DeleteFiles can be considered a special type of Orphan Files.
Of course, a table property, like clean-independent-delete-files.enabled (default true), should be introduced to control whether to clean Independent DeleteFiles for the table.
We can further discuss whether this implementation is appropriate.
Subtasks
No response
Related issues
No response
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

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

This tool can help you scan for the independent delete files, TestScanTable.

Rename the Independent delete files to Dangling delete files, in order to be consistent with the concept of the Iceberg community.  https://github.com/apache/iceberg/pull/6581


HA does not reconnect to influxdb when server goes down

Home Assistant release with the issue:
0.95.4
Operating environment (Hass.io/Docker/Windows/etc.):
Docker
Component/platform:
influxdb
Description of problem:
If influxdb server goes down, HA will trigger a notification that lost connection to influxdb, but it will not try to reconnect if influxdb comes back up.

What does that notification look like?

The error I'm getting when influxdb shuts down:
Exception in thread InfluxDB:
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/threading.py", line 926, in _bootstrap_inner
    self.run()
  File "/usr/src/homeassistant/homeassistant/components/influxdb/__init__.py", line 369, in run
    self.write_to_influxdb(json)
  File "/usr/src/homeassistant/homeassistant/components/influxdb/__init__.py", line 348, in write_to_influxdb
    self.influx.write_points(json)
  File "/usr/local/lib/python3.7/site-packages/influxdb/client.py", line 490, in write_points
    tags=tags, protocol=protocol)
  File "/usr/local/lib/python3.7/site-packages/influxdb/client.py", line 551, in _write_points
    protocol=protocol
  File "/usr/local/lib/python3.7/site-packages/influxdb/client.py", line 327, in write
    headers=headers
  File "/usr/local/lib/python3.7/site-packages/influxdb/client.py", line 282, in request
    raise InfluxDBServerError(response.content)
influxdb.exceptions.InfluxDBServerError: b'{"error":"write failed"}\n'

There are no further messages regarding influxdb and it only recovers when HA is restarted.


Honor discover uri configured in .cscfg file.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Skype/Trusted-Application-API/samples/AnonMeetingJoinSamples/ApplicationCore/AzureBaseApplication/AzureBaseApplication.cs
:white_check_mark:Succeeded

Skype/Trusted-Application-API/samples/AnonMeetingJoinSamples/WebRole1/Global.asax.cs
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Merge database config from yml and url

Merge database config from yml and url,  and url take precedence
#56

@janko Sorry to bother you on this, I am not very experienced on the internal workings of Active Record, mind to take a look on this?


First system test for the idempotent producer

Going to merge it directly, this can be reviewed as part of the AK PR.


Update to thorntail.io (#49)

Migrated to thorntail.io and updated other dependencies like hammock and arquillian-universe.
When merged, then profile wildfly-swarm should be named thorntail-io, as well as travis builds need to be modified to use the new profile name.
Excluded *.iml file from maven-rat-plugin, because caused build to fail locally, because there was no license header present.
Modified test classes of the swagger sample, where deltaspike is now used to exclude classes, which shouldn't be present when thorntail.io is used, because thorntail.io already provides a swagger integration.
Signed-off-by: Thomas Herzog<EMAIL_ADDRESS>

The test of job #55.2 passed, but throw the following error, which also occurred locally. Any ideas why ?

java.io.StreamCorruptedException: invalid stream header: 48545450

Any feedback ?

I've taken a brief look through and I think a problem I've seen is that there are lots of changes completely unrelated to switching to use Thorntail from WildFly Swarm.
It might be a pain, but it's easier to know what's exactly needed if we split this into several separate PRs

Ok, no problem. I split the changes up


support older versions of GLSL

Tested:
Linux Mint 18.3; OpenGL 3.0 Mesa 17.2.8, GLSL 1.30

Hold on.  This breaks Mac OSX.

Ok, Mac OSX is fixed.  Switched back to OpenGL 2.1.

Why do you want this change?

I use this branch on an old Sony laptop running Linux.  I thought others might find it useful.

Thanks, but I don't intend to support older platforms in the testbed. The main library should work fine on older platforms.


add time range args to controller/tasks

allows for ?start= and ?end= expecting unix timestamps.

CI broke in master; the failure is unrelated.


feat(SelectUsers) Add SelectUsers modal

Closes #1924
Summary
Created SelectUsers component, allowing nested selection of users and groups for integration into the rule builder flow
Change List (commits, features, bugs, etc)

Added SelectUsers component
Added some basic tests

It was unclear what the requirements and expectations for user input are, so some assumptions were made re: when groups should be selectable (assumption: top-level groups/categories are not selectable unless it's a flat list of users). That logic is pretty straightforward to change,though and depending on requirements we could even pass in some functions that determine whether or not to enable/disable the row or show the actions.

@dianatran18 UX question. In this story we have different groups (roles/teams). What should we do if an individual in a group is added and then later on the entire group added? If we delete the group (with the individual inside) do we pull that person out individually as well? If a person is in two groups and one group is deleted do we delete the person from inside the second group? I think we need some guidance on how to handle these scenarios. Perhaps something we can discuss in next office hours?

@jkeen I would move this to an experimental section of the storybook in so we can still merge while we iron out the UX.

@davidicus This was merged into #2066 with a few minor adjustments for integration. I'll note them in that PR.


Clearer documentation on routing.

The Navigation class is kind of tricky (not to talk of applying transitions), documentation and code samples would be of great help.

Absolutely! We opened https://github.com/flutter/flutter/issues/1429 to track.
Thanks for the feedback :)


Where clauses are not working for Dates

When I send in a where clause with a date
	"where":{
		"updatedAt": {
			"$gt": "2019-04-02T19:03:25.495+01:00"
			}
	}
}

I get ... AND "Integration"."updatedAt" = '2019-04-02 04:00:00.000 +00:00'

The operator is not correct.  I have tried '$gt', '$lt', 'Op.gt', 'Op.lt' ... and they all end up '='
Why is the data mangled to 04:00:00.000. I am in the 04 Timezone

I am working against cockroachDB.
The column datatype is TIMESTAMPTZ
my versions are:

    "sequelize": "^4.43.1",
    "sequelize-typescript": "^0.6.7",
    "sequelize-cockroachdb": "^1.0.3"

My Model:
@Table(tableOptions)
export class Integration extends Model<Integration>  {
        ...
	@Column({type: DataType.JSONB})
	public transformExpression: ObjectExpression;

	@CreatedAt
	public createdAt: Date;

	@UpdatedAt
	public updatedAt: Date;

I also notice the resulting SQL does not work when trying to execute in DBeaver.  I have to reformat the  timestamps into standard UTC format.  Also, why does it add deletedAt > now() - deleted in the future?
SELECT "id", "name", "updatedBy", "createdAt", "updatedAt", "deletedAt" FROM "integration" AS "Integration" WHERE (("Integration"."deletedAt" > '2019-04-02 20:43:37.594 +00:00' OR "Integration"."deletedAt" IS NULL) AND "Integration"."updatedAt" = '2019-04-02 04:00:00.000 +00:00');

I'm probably doing something wrong.  Any advice would be appreciated.

Have you tried to set the pg type?
// timestamp without timezone
pg.types.setTypeParser(1114, (value) => {
  return moment(value).format('YYYY-MM-DDTHH:mm:ss.SSS');
});

It turns out the problem was that I initialized sequelize with operatorsAliases: false which made it note understand $gt.  Setting operatorsAliases: true solved my problem.  BTW, please dont deprecate the string operators because we use those to pass where clauses as json.


Replace all memcpy/memset-like functions with standard <string.h> functions

Replace all uses of CO_memcpy() with memcpy(). Both these functions are already used in the code, so no need to have them both.
Same as above, but with CO_memset() -> memset().
Reimplement CO_getUint16(), CO_getUint32(), CO_setUint16() and CO_setUint32() with standard use od memcpy(), which doesn't require any union.
For little-endian systems CO_memcpySwap2(), CO_memcpySwap4() and CO_memcpySwap8() actually do nothing, so just replace them with memcpy().
Remove CO_bytes_t type, which was used by previous implementation of CO_{get,set}Uint{16,32}().

Hi,
you can even go a step further and get rid of memcpy for the getters/setters like this
uint32_t CO_getUint32(const uint8_t data[]){
    return *((uint32_t*)data);
}

@CANopenNode what do you think? I'm in favour of this because

a modern compiler might just optimize away memcpy(), ... entirely for our use cases
someone new to the code doesn't have to check what CO_memcpy() is, only to find out that it's our own reimplementation of memcpy().
less code is good :-)

you can even go a step further and get rid of memcpy for the getters/setters like this...

You cannot, unless you can guarantee that the pointers are always properly aligned. On some 32-bit architectures (ARM Cortex-M3) unaligned access works fine, but on others (ARM Cortex-M0) it  ends up in a core exception ( http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0497a/BABFAIGG.html ).
Side note - previous getters/setters were using "undefined behaviour", memcpy is perfectly defined, casting pointers "up" is (in majority of cases) "undefined behaviour" again. This may be important for people who have to deal with nonsenses like MISRA C and similar.

a modern compiler might just optimize away memcpy(), ... entirely for our use cases

BTW - if we want optimization, than it might be a good idea to implement some of these functions (at least getters and setters) as inline (preferred) or as macros. If CANopenNode's minimum C standard would be declared as C99 (a good idea in my opinion - it's 2020 already [; ), then nice inline functions with type checking would be a very good approach!

I agree with the changes.
It is just a little problem here. I'm intensively working on split-driver branch. I plan to merge it to master soon, but new branch is quite reorganized. I don't like to maintain two different branches...
What do you think about new branch?

If you want I could also provide another pull request which would implement the same changes in the split-driver branch. Or I can provide this next pull request after your branch gets merged to master. But in each case I think it would be beneficial to have it merged in the current master branch as-is, unless you plan to merge your branch really soon.

Ok, then I think, it is time to merge split-driver branch into master. It is tested to some extent, but I can't guarantee fully for it. On the other side, if I wait too long, there will be just a mess.
However, I just merged the split-driver into master. There is also an old-master branch if someone will need it.
 I'm not so professional programmer and for some principles I'm not so sure. I'm learning.
I agree with more modern approach, inline functions should not be a problem. C99 as minimum should be OK.
And one more note: I'm currently working on SDO code, actually SDO client in connection with CiA309-3-CAN-ascii-gateway. (I is hard, I didn't believe @martinwag, he was right). However, now I have practically rewritten SDOclient.h. It is much more clear and manageable now with all the block transfer, etc. It is not published yet, because it is not tested.
My current effort is a good foundation for next step, new OD, where SDO server will also have to be rewritten with the necessary getters/setters, etc.

@CANopenNode I've written a CANopen manager / ASCII master application on top of CANopenNode, if you have questions feel free to ask. But please, do separate repo for manager/master, this is definitely a project on it's own.

I certainly don't want CANopenNode to become fat or interlaced. Actually I'm trying to keep it configurable also for thin configuration. For example enable only expedited SDO transfer, etc.
There are two options:

One project, some optional modules, like 302(CANopen manager), 309 (gateway), but no device profiles or project or microcontroller specific code. Everything well organized and independent as possible. Only modules independent from microcontroller included (except basic Linux driver)
Separate projects for each module, like CiA309, CiA302, etc.

I prefer first option, because everything is nice on one place and everybody use only, what he needs. There may be some extra code, which can be safely ignored. Otherwise, I'm afraid, things can become too partitioned. For example, SDO client should not be part of the basic stack.
Sorry for off-topic.

I've updated the branch - it is now based on current master. While at it I noticed several bugs in calls to CO_memset()/memset(), which I also fixed here.


Add Acknowledgements and Contributors sections in the Readme

Add a Contributors section in the Readme where all contributors from our group can be listed as co-authors. Also, an Acknowledgement section where Jamie's effort be acknowledged. Could be something like:

Jamie Bresch (@jamiebresch) for the obs2ioda converter (https://github.com/jamiebresch/obs2ioda) developments. In addition, the script GetRDAobs.csh in this workflow is based on rda_obs2ioda.csh from that repository;

Another acknowledgement for Craig Schwartz for the MPAS meanStateExe source code and build.

Craig Schwartz (@weather4evr) for providing the MPAS mean-state calculation program, which is used in verification and forecasting for ensemble cycling applications

Overall, we need to discuss internally in PARC as well. Let's do that before adding too many more items in this issue (my mistake).  Co-contributors that submit PR's are given credit via GitHub PR's as well.  My main motivations for these sections is to give credit to those who have contributed significantly, but would otherwise go unnoticed.


HTML autocomplete doing horrible things

Screenshot:

To reproduce:

Open an .html file
Insert caret directly before non-whitespace text
Write an HTML element's opening tag

Brackets will then prematurely auto-close the tag as soon as you type >, and somehow include the adjoining text as part of the closing element tag name. It seems like it will go until the next word boundary.
This behavior persists when reloading without extensions. I really don't want to do a fresh install halfway through a project, but as you can imagine this makes editing HTML a miserable experience.
OS X 10.10.3 (14D136)
Brackets info:
Release 1.3 build 1.3.0-16022 (release cd0a6aae5)
build timestamp: Fri Apr 24 2015 01:53:21 GMT-0700

@Tigt This behavior can be overridden using a preference. Open the preference files from Debug->Open Preferences File. That would open the preferences file brackets.json. Please add this code to brackets.json.
"closeTags": {
    "whenOpening": false
 },

Instant relief. Thank you so much; I was worried I was going to have to fix a regex somewhere.

:smile:


[FLOC-3165] Release flocker 1.5.0

Regularly scheduled release.

Thanks @jml.
The review step says that "The build should be passing to the team's satisfaction". I'm not sure that we can expect the acceptance tests to pass now. I will leave this up to your judgement of how many times to retry them.

... and continue when you are happy. Resubmit if any changes are needed to make the tests pass.

As above, continue when you're happy, thanks @jml for doing the release.


Initial implementation of Drag and Drop for desktop.

Implemented the new AOSP Drag-and-Drop APIs for the desktop.
Note that there is currently no "common" API to either specify the transferred object when Compose is the source, or to handle the transferred object specified by the system when another application is the source. Currently it must be done via the underlying AWT types. We would like to add this for a few frequently used types (text, images, files), but this requires discussions with upstream first.
Fixes https://youtrack.jetbrains.com/issue/CMP-1585/Desktop-drag-and-drop
Partially addresses https://github.com/JetBrains/compose-multiplatform/issues/4235
https://github.com/JetBrains/compose-multiplatform-core/assets/5230206/5c46a35d-8154-4cb2-9a1a-2534a54c6435
Testing
Will add unit tests later. In the meanwhile, can be tested manually with
@OptIn(ExperimentalFoundationApi::class, ExperimentalComposeUiApi::class)
fun main() = singleWindowApplication {
    val exportedText = "Hello, DnD!"
    Row(
        horizontalArrangement = Arrangement.SpaceEvenly,
        verticalAlignment = Alignment.CenterVertically,
        modifier = Modifier.fillMaxSize()
    ) {
        val textMeasurer = rememberTextMeasurer()
        Box(Modifier
            .size(200.dp)
            .background(Color.LightGray)
            .dragAndDropSource(
                drawDragDecoration = {
                    drawRect(
                        color = Color.White,
                        topLeft = Offset(x = 0f, y = size.height/4),
                        size = Size(size.width, size.height/2)
                    )
                    val textLayoutResult = textMeasurer.measure(
                        text = AnnotatedString(exportedText),
                        layoutDirection = layoutDirection,
                        density = this
                    )
                    drawText(
                        textLayoutResult = textLayoutResult,
                        topLeft = Offset(
                            x = (size.width - textLayoutResult.size.width) / 2,
                            y = (size.height - textLayoutResult.size.height) / 2,
                        )
                    )
                }
            ) {
                detectDragGestures(
                    onDragStart = { offset ->
                        startTransfer(
                            DragAndDropTransferData(
                                transferable = AwtDragAndDropTransferable(
                                    StringSelection(exportedText)
                                ),
                                supportedActions = listOf(
                                    DragAndDropTransferAction.Copy,
                                    DragAndDropTransferAction.Move,
                                    DragAndDropTransferAction.Link,
                                ),
                                initialAction = DragAndDropTransferAction.Copy,
                                dragOffset = offset,
                                onTransferCompleted = { action ->
                                    when (action) {
                                        null -> println("Transfer aborted")
                                        DragAndDropTransferAction.Copy -> println("Copied")
                                        DragAndDropTransferAction.Move -> println("Moved")
                                        DragAndDropTransferAction.Link -> println("Linked")
                                    }
                                }
                            )
                        )
                    },
                    onDrag = { _, _ -> },
                )
            }
        ) {
            Text("Drag Me", Modifier.align(Alignment.Center))
        }

        var showTargetBorder by remember { mutableStateOf(false)}
        var targetText by remember { mutableStateOf("Drop Here") }
        val coroutineScope = rememberCoroutineScope()
        val dragAndDropTarget = remember {
            object: DragAndDropTarget {

                override fun onStarted(event: DragAndDropEvent) {
                    showTargetBorder = true
                }

                override fun onEnded(event: DragAndDropEvent) {
                    showTargetBorder = false
                }

                override fun onDrop(event: DragAndDropEvent): Boolean {
                    val result = targetText == "Drop Here"
                    targetText = event.awtTransferable.let {
                        if (it.isDataFlavorSupported(DataFlavor.stringFlavor))
                            it.getTransferData(DataFlavor.stringFlavor) as String
                        else
                            it.transferDataFlavors.first().humanPresentableName
                    }
                    coroutineScope.launch {
                        delay(2000)
                        targetText = "Drop Here"
                    }
                    return result
                }
            }
        }
        Box(Modifier
            .size(200.dp)
            .background(Color.LightGray)
            .then(
                if (showTargetBorder)
                    Modifier.border(BorderStroke(3.dp, Color.Black))
                else
                    Modifier
            )
            .dragAndDropTarget(
                shouldStartDragAndDrop = { true },
                target = dragAndDropTarget
            )
        ) {
            Text(targetText, Modifier.align(Alignment.Center))
        }
    }
}

This should be tested by QA
Release Notes
Features - Desktop

Implemented Drag-and-Drop from AOSP: Modifier.dragAndDropSource and Modifier.dragAndDropTarget.

when i upgrade from compose 1.7.0-alpha01 to 1.7.0-alpha02 suddenly all drag and drop things in my desktop app do not work anymore.
is this a known issue? is it actually this PR?
if so, can you give a migration documentation please?

all drag and drop things in my desktop app do not work anymore

Can you be more specific? What doesn't work? Do you have a code sample?

will try to give more details ...

nothing from .onExternalDrag will fire anymore when i use 1.7.0-alpha02
    Theme {
        Surface {
            Box(modifier = Modifier.fillMaxSize().randomDebugBorder()) {
                Image(painterResource("background.jpg"), modifier = Modifier.fillMaxSize(), contentDescription = null, contentScale = ContentScale.Crop)
                Column(modifier = Modifier.fillMaxSize()) {
                    var isDragging by remember { mutableStateOf(false) }
                    var drag_value: ExternalDragValue? by remember { mutableStateOf(null) }
                    Box(Modifier.weight(1f)
                        .background(color = if (isDragging) Color.LightGray else Color.Transparent)
                        .onExternalDrag(
                            onDragStart = { value ->
                                Log.i(TAG, "onDragStart")
                                drag_value = value
                                isDragging = true  },
                            onDrag = {
                                Log.i(TAG, "onDrag")
                                },
                            onDragExit = {
                                Log.i(TAG, "onDragExit")
                                drag_value = null
                                isDragging = false },
                            onDrop = { value ->
                                drag_value = null
                                Log.i(TAG, "dropping file here")

Hmm, yes, that makes sense. I'll see whether it's possible to fix this. If not, we'll remove the old API.
In either case, you should use the new drag-and-drop API.

the new api doesnt do anything at all. no event is fired. what am i doing wrong?
is there a minimal example? i want/need to drop files from the ubuntu nautlius fileexplorer into my chat app.
and all i need really is the filename or multiple filesnames with path

See https://developer.android.com/reference/kotlin/androidx/compose/foundation/draganddrop/package-summary#(androidx.compose.ui.Modifier).dragAndDropTarget(kotlin.Function1,androidx.compose.ui.draganddrop.DragAndDropTarget)

yep thats what i did. nothing is firing

i have changed it to this, but nothing is printed
    Theme {
        Surface {
            Box(modifier = Modifier.fillMaxSize().randomDebugBorder()) {
                Image(painterResource("background.jpg"), modifier = Modifier.fillMaxSize(), contentDescription = null, contentScale = ContentScale.Crop)
                Column(modifier = Modifier.fillMaxSize()) {
                    var isDragging by remember { mutableStateOf(false) }
                    var drag_value: ExternalDragValue? by remember { mutableStateOf(null) }
                    Log.i(TAG, "XXXXXXXXXXXXXXXXXX")
                    Box(Modifier.weight(1f)
                        .background(color = if (isDragging) Color.LightGray else Color.Transparent)
                        .dragAndDropTarget(
                            shouldStartDragAndDrop = accept@{ startEvent ->
                                println("DDDDDDDDDDDD:001")
                                true
                            },
                            target = object : DragAndDropTarget {
                                override fun onStarted(event: DragAndDropEvent) {
                                    println("DDDDDDDDDDDD:002")
                                }

                                override fun onDrop(event: DragAndDropEvent): Boolean {
                                    println("DDDDDDDDDDDD:003")
                                    return true
                                }

                                override fun onEnded(event: DragAndDropEvent) {
                                    println("DDDDDDDDDDDD:004")
                                }
                            },
                            )
                        ) {

is there some global switch maybe? or something to turn drag and drop ON ?

strange it seems to work now if i copy it into an empty project. but not in my app.
antoher thing, can you give me a hint how i get the dropped files names from DragAndDropEvent ?

i made this minimal example:
import androidx.compose.desktop.ui.tooling.preview.Preview
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.TooltipArea
import androidx.compose.foundation.TooltipPlacement
import androidx.compose.foundation.background
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.draganddrop.dragAndDropTarget
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.ClickableText
import androidx.compose.foundation.text.selection.SelectionContainer
import androidx.compose.material.AlertDialog
import androidx.compose.material.Button
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Surface
import androidx.compose.material.Text
import androidx.compose.material.TextField
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateListOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.DragData
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.ExternalDragValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.awt.SwingPanel
import androidx.compose.ui.draganddrop.DragAndDropEvent
import androidx.compose.ui.draganddrop.DragAndDropTarget
import androidx.compose.ui.draganddrop.awtTransferable
import androidx.compose.ui.draganddrop.dragData
import androidx.compose.ui.draw.shadow
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.TextRange
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.input.TextFieldValue
import androidx.compose.ui.text.withStyle
import androidx.compose.ui.unit.DpOffset
import androidx.compose.ui.unit.TextUnit
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.ui.window.Window
import androidx.compose.ui.window.application
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import java.awt.Component
import java.awt.Container
import java.awt.Desktop
import java.awt.Dimension
import java.awt.LayoutManager
import java.net.URI
import java.nio.file.LinkOption
import javax.swing.JComponent
import javax.swing.JPanel
import kotlin.io.path.exists
import kotlin.io.path.toPath
import kotlin.math.min

@OptIn(ExperimentalComposeUiApi::class, ExperimentalFoundationApi::class)
@Composable
@Preview
fun App()
{
    Surface {
        Box(modifier = Modifier.fillMaxSize()) {
            Column(modifier = Modifier.fillMaxSize()) {
                var isDragging by remember { mutableStateOf(false) }
                Box(Modifier.fillMaxSize().background(color = if (isDragging) Color.Red else Color.Green).dragAndDropTarget(
                    shouldStartDragAndDrop = accept@{ startEvent ->
                        println("shouldStartDragAndDrop:" + startEvent.dragData())
                        true
                    },
                    target = object : DragAndDropTarget
                    {
                        override fun onChanged(event: DragAndDropEvent)
                        {
                            println("onChanged:" + event)
                            super.onChanged(event)
                        }

                        override fun onEntered(event: DragAndDropEvent)
                        {
                            println("onEntered:" + event)
                            isDragging = true
                            super.onEntered(event)
                        }

                        override fun onExited(event: DragAndDropEvent)
                        {
                            println("onExited:" + event)
                            isDragging = false
                            super.onExited(event)
                        }

                        override fun onMoved(event: DragAndDropEvent)
                        {
                            println("onMoved:" + event)
                            super.onMoved(event)
                        }

                        override fun onStarted(event: DragAndDropEvent)
                        {
                            println("onStarted:****************:" + event.nativeEvent.toString())
                        }

                        override fun onDrop(event: DragAndDropEvent): Boolean
                        {
                            println("======> onDrop:" + event + " " + event.dragData())
                            if (event.dragData() is DragData.FilesList)
                            {
                                println("======> onDrop:" + event)
                                val newFiles = (event.dragData() as DragData.FilesList).readFiles().mapNotNull { it1: String ->
                                    URI(it1).toPath().takeIf { it.exists(LinkOption.NOFOLLOW_LINKS) }
                                }
                                newFiles.forEach {
                                    // Log.i(TAG, "dropped file: " + it.toAbsolutePath() + " " + it.parent.normalize().name + " " + it.fileName.name)
                                    if (it.toAbsolutePath().toString().isNotEmpty()) {
                                        println(" " + it.toAbsolutePath().parent.toString() + " "
                                                + it.toAbsolutePath().fileName.toString())
                                    }
                                }
                            }
                            else if (event.dragData() is DragData.Image)
                            {
                                println("======> onDrop:iiiii " + event + " " + (event.dragData() as DragData.Image).toString())
                            }
                            else if (event.dragData() is DragData.Text)
                            {
                                println("======> onDrop:ttttt " + event + " " + (event.dragData() as DragData.Text).readText())
                            }
                            else
                            {
                                println("======> onDrop:uuuuu " + event + " " + event.dragData())
                            }
                            isDragging = false
                            return true
                        }

                        override fun onEnded(event: DragAndDropEvent)
                        {
                            isDragging = false
                            println("onEnded:****************")
                        }
                    },
                )) {}
            }
        }
    }
}

fun main() = application {
    Window(onCloseRequest = ::exitApplication) {
        App()
    }
}

and its just not working properly. sometimes event are missed, sometimes they fire. often you dont even get the onDrop event. if you drag a file from an external app, you can test it

any new info on this?

@zoff99 You need to 'remember' your DragAndDropTarget. In your code snippets you are recreating the target on every recomposition, which is why you see the erratic behavior as the target that was notified of the drag start might not exist anymore when successive events happen.

oh. but in the linked example its also not remembered:
https://developer.android.com/reference/kotlin/androidx/compose/foundation/draganddrop/package-summary#(androidx.compose.ui.Modifier).dragAndDropTarget(kotlin.Function1,androidx.compose.ui.draganddrop.DragAndDropTarget)
is there a working minimal example?

any more info on a working example? please

The post of the PR includes the example I was working with when I implemented the feature. Does that not work correctly for you?

maybe i looked at the wrong one. can you please post the link to the working example?

It's in the "Testing" section of the first post on this page.


Add per scrape-config targets limit

Fix #7340
Signed-off-by: Julien Pivotto<EMAIL_ADDRESS>

Screenshots:
Classic UI:

React UI:

@lilic do you want to PR it another look? otherwise I will merge it in the coming days.


regex 1

Hi Davion, you scored 1 correct challenge. Each challenge is worth 1.25 points. Please complete and re-submit for additional credit. Thanks!


Tests - Failure Criteria coverage

Tests are not covering the Failure Criteria module.
It is required that the tests cover, for each failure criterion:

Validation of inputs
Results based on bibliography problems
Returned values

I'm beginning to work on this and then I'll proceed to #6


Fix #13

I'm new to this package, could you just make sure I didn't break anything else with this change?
I'm re-setting cards indexes and the cards state whenever the cards prop changes.

I could re-set the state only if the length of the cards change if you think that's safer

@gfpacheco using getDerivedStateFromProps isn't really recommended and the swiper actually had it a while back and was removed for multiple reasons, one of which is performance. The current issue mentioned happens likely because there's a mix of state / props in the swiper when there should be only props.

I totally agree! I think the cards state is unnecessary, but I wanted to share the code that fixed the issue for me.
At the same time, we need to update the state whenever the cards prop changes (even before the render that changing it would cause), otherwise we might end up trying to read a card from an index that doesn't exist anymore.

getDerivedStateFromProps also fixes an issue for me when the card is null

getDerivedStateFromProps also fixes an issue for me when the card is null


slack notifications

Github Issue: https://github.com/Islandora/documentation/issues/1317
What does this Pull Request do?
Adds slack notifications to Travis.
How should this be tested?
The build status from this PR should get spammed to #notifications in slack.
Interested parties
@Islandora/8-x-committers

Since we're no longer using Travis, does this need to get updated to use github actions (or other replacement?)

I think on the Tech Call the general feeling was that it was noisy and not very useful. Nobody was actually listening to the Slack #notifications channel.


Implementation of higher dimension arrays

This pr is for Implementation of higher dimension arrays, #16.

TODO:

[ ] Refactor.
[ ] Update and pass tests.
[ ] Update documents.


AgentMap reports incorrect CurrentOffsetX and CurrentOffsetY values

Example steps to reproduce:

Visit Shirogane Subdivision (Wards 31-60)
Check the values of (*AgentMap.Instance()).CurrentOffsetX and (*AgentMap.Instance()).CurrentOffsetY
Observe that they are -704 and -704, respectively

These numbers should be 704 and 704. Perhaps something changed in Dawntrail to make them negative?
This is currently breaking Dalamud's GetMapCoordinates() method: goatcorp/Dalamud#1916

As far as I can see, nothing changed. They must have been negative before DT already.
6.58h2 @ 0x140BF424A is the same as in 7.0h1 @ 0x140DFB9B4:
a1->CurrentOffsetX = -v15->OffsetX;
a1->CurrentOffsetY = -v15->OffsetY;

SelectedOffsetX and Y in 6.58h2 @ 0x140BF9DFC is also the same as 7.0f1 @ 0x140E032C5.
a1->SelectedOffsetX = -v5->OffsetX;
a1->SelectedOffsetY = -v5->OffsetY;

yes it's missing something, the X and Y (or Z depending on naming) coordinates need to be adjusted by offset * scale
my personal impl:
public static Vector3 WorldToMapDisplay(Vector3 worldPos, short sizeFactor, short offsetX, short offsetY, short offsetZ) {
    var scale = sizeFactor / 100f;
    worldPos -= new Vector3(offsetX, 0, offsetY) * scale;

    var x = (10 + 0.2f * (worldPos.X + offsetX) + 1024f * 0.2f / scale) / 10f;
    var y = MathF.Floor((worldPos.Y - offsetZ) / 10f) * 10f / 100f;
    var z = (10 + 0.2f * (worldPos.Z + offsetY) + 1024f * 0.2f / scale) / 10f;

    return new Vector3(x, y, z);
}

As far as I can see, nothing changed. They must have been negative before DT already.

Interesting! Feel free to close this issue then, but OOC do we know why they're negative, while the equivalent OffsetX and OffsetY within Lumina's Map Excel sheet are not?

I don't know why they saved it that way. Maybe it's a formula thing.
But as you can see above, it takes the offsets from the map sheet and assigns them to the AgentMap fields, just with an inverted sign.
When passing them to the WorldToMap function, you can simply invert it again so they match what was in the map sheet.


u-turns right after intersections?

there are numerous places in osm where a street changes into two parallel one-way streets. often at intersections. like here:
http://www.openstreetmap.org/?lat=55.671981&lon=12.57939&zoom=18&layers=M
this is often in relation to intersections. in effect you have three way meeting: two oneways separated only by a small angle, and a bidirectional.
osrm is happy to enter one of the oneway streets, do a sharp u-turn, and leeave out the other oneway.  often this means you're leaving an intersections, do a u-turn right outside the intersection, and then re-enter the intersection.
i'm not really sure this is a bug; but the maneuver certainly seems untraditional. especially since these situations often occur at large roads (since they're the one that are typically divided at intersections).
http://localhost:5000/viaroute&start=55.671663936787,12.578800734469&dest=55.671733515879,12.57862370868&z=18&output=json&jsonp=showResultsRoute&geomformat=cmp&instructions=true

This is not a bug but a missing turn restriction if it's not allowed.

osm proposal for using divider=* for tagging street divider lines. this often indicates where you cannot do u-turns or otherwise cross the middle line: http://wiki.openstreetmap.org/wiki/Proposed_features/Divided_road
the tags is not yet widely used: http://taginfo.openstreetmap.org/keys/divider#values


HBAR Rate limit exceeded error

Description
I'm getting the following error from the relay when running through a long test case in my project.
hardhat stack trace:
     [Request ID: 95e64258-c5e9-40f6-9cb9-849c8b56d7de] HBAR Rate limit exceeded
  ProviderError: HttpProviderError
      at HttpProvider.request (/Users/usr/dev/proj/node_modules/hardhat/src/internal/core/providers/http.ts:78:19)
      at LocalAccountsProvider._getNonce (/Users/usr/dev/proj/node_modules/hardhat/src/internal/core/providers/accounts.ts:230:51)
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async LocalAccountsProvider.request (/Users/usr/dev/proj/node_modules/hardhat/src/internal/core/providers/accounts.ts:168:27)
      at async TracerWrapper.request (/Users/usr/dev/proj/node_modules/hardhat-tracer/src/wrapper.ts:36:16)
      at async EthersProviderWrapper.send (/Users/usr/dev/proj/node_modules/@nomiclabs/hardhat-ethers/src/internal/ethers-provider-wrapper.ts:13:20)

json-rpc-relay container logs:
[2022-12-02 14:12:45.828 +0000] DEBUG (rpc-server/49 on dd64e5a2d258): [Request ID: 95e64258-c5e9-40f6-9cb9-849c8b56d7de] eth_getTransactionCount
[2022-12-02 14:12:45.829 +0000] TRACE (relay-eth/49 on dd64e5a2d258): [Request ID: 95e64258-c5e9-40f6-9cb9-849c8b56d7de] getTransactionCount(address=0x67d8d32e9bf1a9968a5ff53b87d777aa8ebbee69, blockNumOrTag=pending)
[2022-12-02 14:12:45.829 +0000] TRACE (relay-eth/49 on dd64e5a2d258): [Request ID: 95e64258-c5e9-40f6-9cb9-849c8b56d7de] blockNumber()
[2022-12-02 14:12:45.840 +0000] DEBUG (mirror-node/49 on dd64e5a2d258): [Request ID: 95e64258-c5e9-40f6-9cb9-849c8b56d7de] [GET] blocks?limit=1&order=desc 200 11 ms
[2022-12-02 14:12:45.852 +0000] TRACE (mirror-node/49 on dd64e5a2d258): [Request ID: 95e64258-c5e9-40f6-9cb9-849c8b56d7de] Retry delay 500 ms
[2022-12-02 14:12:46.356 +0000] TRACE (mirror-node/49 on dd64e5a2d258): [Request ID: 95e64258-c5e9-40f6-9cb9-849c8b56d7de] Retry delay 500 ms
[2022-12-02 14:12:46.863 +0000] TRACE (mirror-node/49 on dd64e5a2d258): [Request ID: 95e64258-c5e9-40f6-9cb9-849c8b56d7de] Retry delay 500 ms
[2022-12-02 14:12:47.369 +0000] DEBUG (mirror-node/49 on dd64e5a2d258): [Request ID: 95e64258-c5e9-40f6-9cb9-849c8b56d7de] [GET] contracts/0x67d8d32e9bf1a9968a5ff53b87d777aa8ebbee69 404 status
[2022-12-02 14:12:47.379 +0000] DEBUG (mirror-node/49 on dd64e5a2d258): [Request ID: 95e64258-c5e9-40f6-9cb9-849c8b56d7de] [GET] accounts/0x67d8d32e9bf1a9968a5ff53b87d777aa8ebbee69 200 10 ms
[2022-12-02 14:12:47.380 +0000] WARN (hbar-rate-limit/49 on dd64e5a2d258): Rate limit incoming calls, -183009120 out of<PHONE_NUMBER> tℏ left in relay budget until<PHONE_NUMBER>352
[2022-12-02 14:12:47.382 +0000] TRACE (consensus-node/49 on dd64e5a2d258): [Request ID: 95e64258-c5e9-40f6-9cb9-849c8b56d7de] null eth_getTransactionCount AccountInfoQuery status: UNKNOWN (21), cost: null
[2022-12-02 14:12:47.382 +0000] ERROR (HBAR Rate limit exceeded/49 on dd64e5a2d258): [Request ID: 95e64258-c5e9-40f6-9cb9-849c8b56d7de] Error raised during getTransactionCount for address 0x67d8d32e9bf1a9968a5ff53b87d777aa8ebbee69, block number or tag pending
    code: -32606
    message: "HBAR Rate limit exceeded"
[2022-12-02 14:12:47.382 +0000] INFO (rpc-server/49 on dd64e5a2d258): [Request ID: 95e64258-c5e9-40f6-9cb9-849c8b56d7de] [POST] eth_getTransactionCount: -32606 1554 ms

Steps to reproduce

Start up the local-node: npx @hashgraph/hedera-local start --limits=false --dev=true
Run a long test case in a hardhat project; I can work on an example test case if necessary.

Additional context
No response
Hedera network
other
Version
<EMAIL_ADDRESS>Operating system
macOS

Adding a 10s sleep/delay before the relay call that usually results in this error fixes the issue, which is obviously non-ideal as it slows down dev speed.

I've opened a PR , when it's merged, we're going to release a patch.

@georgi-l95 great. I've also come across rate limits on eth_call which results in some of my test cases failing intermittently when running into that rate limit(even with --limits=false).
[2022-12-02 20:58:44.225 +0000] WARN (ip-rate-limit/50 on 048ddc87ea7b): Rate limit call to eth_call, 0 out of 100 calls remaining

Hey @mshakeg, I'm unable to reproduce this bug with eth_call being rate limited. Can you check again with the new release and open issue with example, if issue still persist ?


appsync emulator: adds useLocalstack option to tester's server creation

It was more difficult than expected to get java >= 8 on a CircleCI build instance

[x] allows use of localstack in tester

@lightsofapollo -- not sure what happened to travis.

cc @pianomansam

@cbaron Is "use localstack" what we want or to pass options for a dynamodb emulator that overrides the default behavior of spinning up a process ?


Plugin does not work with update

Plugin doesnt work

The fix has just been deployed, you can reload your client to see it again.

You can try uninstalling and re-installing it, let me know if that doesn't work!

Was trying that now! It worked thank you!

From: Zoinkwiz @.>
Sent: Wednesday, August 14, 2024 7:59:19 AM
To: Zoinkwiz/quest-helper @.>
Cc: MickyDsTea @.>; Author @.>
Subject: Re: [Zoinkwiz/quest-helper] Plugin does not work with update (Issue #1694)
You can try uninstalling and re-installing it, let me know if that doesn't work!
—
Reply to this email directly, view it on GitHubhttps://github.com/Zoinkwiz/quest-helper/issues/1694#issuecomment-2288551444, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BKRAESWJAMM6BZL4KU4F3E3ZRNBBPAVCNFSM6AAAAABMQFYRX2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOBYGU2TCNBUGQ.
You are receiving this because you authored the thread.Message ID: @.***>


feat: support firmware

About this PR
This PR supports firmware updating for rqx-58g.
If firmware.yaml doesn't exit, this function does nothing.
The firmwares are located on the OTA image.
ticket
https://tier4.atlassian.net/browse/T4PB-26551

@Bodong-Yang
This PR is currently draft since this is not confirmed yet on the actual OTA image, but the code itself is fixed.

@Bodong-Yang I confirmed with https://github.com/tier4/autoware_ecu_system_setup/pull/561. I'll change this PR to ready for review.

@Bodong-Yang code has been fixed and confirmed it works properly.


Update Profile

Populate the Profile forms with the mapped info so it can be updated.
Requires a few extra steps first.

[x] Load Profile values into Profile

Requires a few extra steps first.
[] Save profile Spec for a feature and group --> cell
[] Retrieve Profile Spec from bridged app
[] List Profile Specs
[] Load Profile values into Profile

Removed

[ ] Save profile Spec for a feature and group --> cell
[ ] Retrieve Profile Spec from bridged app
[ ] List Profile Specs

As these can go into a separate item


Feature/Search: Reorganize section, and add content about hybrid search

About
Inspired by Doing Hybrid Search in CrateDB (thanks @surister!), this patch intends to reoragnize the "Search" section, in order to make its structure strong enough to cover the discrimination between Full-Text Search, Vector Search, and Hybrid Search well.
Preview
https://cratedb-guide--106.org.readthedocs.build/feature/search/
Details

The "Search" section now doesn't educate about any details any longer. Instead, it has been repurposed into an "index" page, guiding to the topics of Full-Text Search vs. Vector Search vs. Hybrid Search in a balanced way.

Thoughts

This enhancement aims to set the stage for further improvements and contributions in this area. Please support us shaping this important section of the documentation.
Please also share your opinions what can be improved, and/or submit patches. Thanks!

/cc @matriv, @karynzv, @hlcianfagna, @hammerhead, @proddata, @kneth

At the beginning you talk about how vectors is not enough hence we need to mix with bm25, this is very well written in the description of https://haystackconf.com/us2023/talk-16/, maybe it can serve as an inspiration?

Brilliant, I love the idea and look forward putting in more content, great stuff.

Thanks a stack, appreciate it.

See [...] for other sources of inspiration.

I've adjusted my OP by adding a few inspirations I had slightly used for conceiving the first sketch of this patch. I was sure you would provide much better resources than coming from my quick research. Thanks!
I will be so happy to accept well rewritten paragraphs on this PR, based on the material you are suggesting, if you can afford a few cycles. Every chunk counts!
Otherwise, we will probably need to add it to the backlog summary at GH-101, because I need to take care about other obligations.

[improve] about how vectors is not enough hence we need to mix with bm25

I've diverted this to https://github.com/crate/cratedb-guide/issues/101#issuecomment-2258857679. Thanks!


Typo in readme

There is a small typo in this example code:
$response = (new Psr17Factory())->createReponse('200', 'Hello world');

It should be:
$response = (new Psr17Factory())->createResponse(200, 'Hello world');

Or even better to emit a real Hello World text:
$response = (new Psr17Factory())->createResponse(200);
$response->getBody()->write('Hello World');
(new SapiEmitter())->emit($response);

Thanks for noticing! I have now made a PR (#114) addressing this. Please comment there if you have more ideas for how to clean-up that specific usage example.


Laws over Fin n translate over to nat (for n > 0)

This shows that if a law implies another one over Fin n (for n > 0) then so it is the case over Nat. This will allow the code in #356 and #357 to interact with each other and also to avoid casting between Fin n and Fin m all over the place when creating the transitive closure of implications over laws.

This depends on #357  and contributes towards #174


fix(workspace): Dendron causes errors in non-Dendron workspaces

Fixes 2 issues that happen in non-Dendron workspaces:

CopyNoteLink (and some other commands) would be created even in non-Dendron workspaces. While the other commands didn't cause issues, CopyNoteLink eagerly tries to open the workspace during initialization which meant that it would throw an error.

TextDocumentService was being initialized during DendronExtension instance creation. TextDocumentService immediately hooks into the onDidSave hook when created, but DendronExtension is also created for workspaces that are not Dendron workspaces. This meant that TextDocumentService would constantly throw errors whenever saving a file in a non-Dendron workspace.

May be related to #2451
Dendron Extended PR Checklist
Code
Basics

[x] code should follow Code Conventions
[x] circular dependency check: make sure your code is not introducing new circular dependencies in plugin-core.  See Avoiding Circular Dependencies.
[x] sticking to existing conventions instead of creating new ones

eg: if configuration for utilities are already in one module or package, add future utilities there as well

Extended

General

[x] check whether code be simplified
[x] check if similar function already exist in the codebase. if so, can it be re-used?
[x] check if this change adversely impact performance

Operations

[x] when shipping this change, will it just work or will it introduce additional operational overhead due to complicated interface or known bugs?

Architecture

[x] check if code is introducing changes on a foundational class or interface. if so, call for design review if needed

eg: making changes to DNode

Instrumentation
Basics

[x] if you are adding analytics related changes, make sure you Document changes in airtable

Extended

[x] can we track the performance of this change to know if it is successful?

eg: see usage for export pod

Tests
Basics

[ ] Write Tests
[x] Confirm existing tests pass
[x] Confirm manual testing
[x] Common cases tested
[x] 1-2 Edge cases tested
[x] If your tests changes an existing snapshot, snapshots have been updated

Extended

[x] If you are adding a new language feature (graphically visible in VS Code/preview/publishing), an example is included in the test workspace

CSS

[ ] display is correct for following dimensions

[ ] sm: screen ≥ 576px, eg. iphonex, (375x812)
[ ] lg: screen ≥ 992px
[ ] xxl: screen ≥ 1600px eg. mac (1600x900)

[ ] display is correct for following browsers (across the various dimensions)

[ ] safari
[ ] firefox
[ ] chrome

Docs
Basics

[x] if your change reflects documentation changes, also submit a PR to dendron-site and mention the doc PR link in your current PR

Basics

[x] does this change introduce a new or better way of doing things that others need to be aware of? if so, an async should be created and a process added in Development or Packages

Close the Loop
Basics
Extended

[x]  is this a developer BREAKING change? if another person cloning from this branch will need to adjust their dependencies or mental model of the architecture, then it is. if this is the case, make sure this is communicated according to Close Loop

eg. breaking dev change due to new dependency

@tma66 as an FYI

@SeriousBug - another change led to a conflict - I think it just did a similar requireActiveWorkspace === true for one of the commands instead of all of them.

can you fix merge conflicts and then merge?


Please configure SAP BTP authentication first?

Hi
Thank you for this great exercise.
I'm trying to do the exercise, but when I come to creating the frontend application, I can't add integration. The button "CLOUD FUNTIONS" is grayed out and when I hoover over it, I see the message "Please configure SAP BTP authentication first".

How to fix this problem?
Kind regards
Thomas Madsen Nielsen

Additional info.
I admit I don't understand the authentication setup, but here is the history of my setup.
When I installed SAP Build App on BTP (via Booster) I had some errors related to Identity Provider. Then I found this blog by Beatrice Parsch where I followed step 3 "Create a custom IAS tenant". Then I was able to run the SAP Build App Boster.
Now my user is linked to 2 identity providers.

The Custom IAS tenant had all the BuildApps role collections and the Default identity provider has other role collections like Business_Application_Studio* and ProcessAutomation*.
In an attempt to fix the problem I sync'et the roles so both Identity providers now have all the same roles but this didn't help.
When the error message says "configure BTP authentication", I assume it is related to identity providers and role collections, but basically I don't understand this setup, so mayby it is something else?


Retry module download on read timeout

Users with poor internet connections are likely to experience read timeout when downloading artifacts from remote module repositories. This could happen at any point when getting the HTTP response,
Currently CMR just immediately gives up. It would be nice if it automatically retired a configurable number of times, before giving up entirely.

I suppose we should also try to support a similar thing for uploads, but I guess a POST:

is not idempotent and
a POST which fails half way through is even less so

@FroMage do you know how herd would cope with this? Would it just delete the partially uploaded file and let the user try again?


Would be great to see example for UWP

For those of us including UWP Apps in our Xamarin projects, authentication examples for other environemtns would be extremely helpful. (also  WPF, Mac, Tizen?)

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

ID: aa8bb9e0-5898-0d11-0213-fd4d8c8d0297
Version Independent ID: 2f46e1f7-164f-2f32-70c0-f28919d16c5c
Content: AuthenticateUsers with an Identity Provider - Xamarin
Content Source: docs/xamarin-forms/data-cloud/authentication/oauth.md
Product: xamarin
Technology: xamarin-forms
GitHub Login: @davidbritch
Microsoft Alias: dabritch

Hi @solomonfried
While not an official sample/doc, I wrote a blog post on doing OAuth for iOS/Android/UWP. Hopefully it'll help: https://www.davidbritch.com/2019/07/oauth-20-for-native-apps-using.html

Thanks for the info.
Trying to build NativeBrowsersWithOIDCClient and am getting this error (1 for Android and 1 for UWP)
Tried updating all NuGet packages, but to no avail.
Severity
Code
Description
Project
File
Line
Suppression State
Error
Failed to create JavaTypeInfo for class: Android.Support.V4.View.Accessibility.AccessibilityManagerCompat/IAccessibilityStateChangeListenerImplementor due to System.IO.DirectoryNotFoundException: Could not find a part of the path 'D:\projects.vs\TestProjects\DavidBritch\xamarin-forms-master\NativeBrowsersWithOIDCClient\NativeBrowsersWithOIDCClient.Android\obj\Debug\81\android\src\mono\android\support\v4\view\accessibility\AccessibilityManagerCompat_AccessibilityStateChangeListenerImplementor.java'.   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)   at System.IO.File.InternalDelete(String path, Boolean checkHost)   at System.IO.File.Delete(String path)   at Xamarin.Android.Tools.Files.CopyIfStreamChanged(Stream stream, String destination)   at Xamarin.Android.Tasks.Generator.CreateJavaSources(TaskLoggingHelper log, IEnumerable`1 javaTypes, String outputPath, String applicationJavaClass, String androidSdkPlatform, Boolean useSharedRuntime, Boolean generateOnCreateOverrides, Boolean hasExportReference)
NativeBrowsersWithOIDCClient.Android
Error
Framework resource extraction failed. Could not find a part of the path 'D:\projects.vs\TestProjects\DavidBritch\xamarin-forms-master\NativeBrowsersWithOIDCClient\NativeBrowsersWithOIDCClient.UWP\obj\x86\Debug\Microsoft.Extensions.DependencyInjection.Abstractions\en-US\Microsoft.Extensions.DependencyInjection.Abstractions.Resources.resw'.
NativeBrowsersWithOIDCClient.UWP
When using the NativeBrowsers example, I am getting a bit further but would you have a mapping for Google and Facebook to the fields in the Constants.cs file?
For Facebook using Xamarin OAuth I have the following…
ClientID => "4XXXXXXXXXXXX";
Scope => "email";
AuthorizeUrl => "https://www.facebook.com/dialog/oauth/";
ClientSecret => null;
RedirectUrl => "https://www.facebook.com/connect/login_success.html";
When I map these to the constants I and try to Login (I have tried several permutations), I do get a Login screen but there is an error message.
Can't Load URL
The domain of this URL isn't included in the app's domains. To be able to load this URL, add all domains and subdomains of your app to the App Domains field in your app settings.
For Google I have
Scope => "https://www.googleapis.com/auth/userinfo.email";
AuthorizeUrl => "https://accounts.google.com/o/oauth2/auth";
AccessTokenUrl => "https://www.googleapis.com/oauth2/v4/token";
UserInfoUrl => "https://www.googleapis.com/oauth2/v2/userinfo";
ClientSecret => null;
RedirectUrl => "com.pnqsys.classtars:/oauth2redirect";
ClientID => "9999999999-askdjalkdjopeijdqwdjakjdaskdjlaskdjasd.apps.googleusercontent.com";
But again, everything I have tried results in the popup with an error
“We can’t Connect to the service you need right now. Check your Network connections or try this again later”
Any suggestions would be appreciated.
From: David Britch<EMAIL_ADDRESS>Sent: Friday, November 29, 2019 4:32 AM
To: MicrosoftDocs/xamarin-docs<EMAIL_ADDRESS>Cc: Solomon Fried<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/xamarin-docs] Would be great to see example for UWP (#2348)
Hi @solomonfriedhttps://github.com/solomonfried
While not an official sample/doc, I wrote a blog post on doing OAuth for iOS/Android/UWP. Hopefully it'll help: https://www.davidbritch.com/2019/07/oauth-20-for-native-apps-using.html
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/xamarin-docs/issues/2348?email_source=notifications&email_token=AIXTRKP33IWQ54CG5LJLK63QWDORBA5CNFSM4JSOCDTKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFOLISA#issuecomment-559723592, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AIXTRKNK6I5OTTV6LBCU3KLQWDORBANCNFSM4JSOCDTA.

Hi @solomonfried
For your problems building NativeBrowsersWithOIDCClient it looks like your paths on Android and UWP are breaching the Windows 260 char limit.
Afraid I don't have any Constants to hand for Google and Facebook.

Thank you for looking into this.
I will see if I have any options for shortening the URL.
I appreciate the work you have put into this.
IMHO, I can't figure out why a function so common in apps these days is such a headache to implement cleanly on each platform. So on behalf of myself and the rest of us looking for a solution, we thank you.


@extend is not the devil

First off, I am going to say I had an irrational anger at the article posted in December. This is partially a reply to that, while also explaining why the prohibition of @extend in the Sass Guidelines is foolish. That being said, I am not here to say that @extend should be used all the time, but merely that there are many reasons why it should be used within a project.
TL;DR: @extend has a place in our hearts and stylesheets, but certainly isn't the end-all
Where are @extends helpful?

Chunky bacon! Chunky bacon!
— Why

There are two big places I find using @extend is most helpful. First off, for components, and components that might need repeating. I emphasize the might here, because although we set this up on all our work, we don't use it for each one. For every component we make, we create a silent extend class that can be used in other elements further along. I will admit, part of this comes from working within the Drupal ecosystem, where we find we have to @extend a large set of styles on another class, because it is impractical to change the classes/markup. It would also be impractical to change all of a bit of styling we have done into a mixin just for something that is found much later on.
Second, for base styles that are replicated often. The core example I always use for this are buttons. Why? Because we use buttons all the bloody time, and for most of our sites, they use the exact same base stylings. The need for a mixin that repeats those stylings is not needed, and can easily "dirty-up" the code base. Now, I can see you from here going "BUT GZIP!"...
BUT GZIP

To assume makes an an 'ass' out of 'u' and me'
— The only way I remember how to spell assume.

We should never make assumptions on how other pieces of our ecosystem are setup, or where our code will end up next. This is a belief I hold very firm, especially if we are talking about guidelines on how to write Sass. Those who are getting the advice may not have the server knowledge, or even the ability to ensure their hosting environment is setup in this way— and as arbitrators of knowledge, we can suggest that they look into that, but we cannot rely out outside technology to solve our problems for us. We must, always, make our code as efficient as possible and suggest others do the same. I think back to when I was considering hosting my site on Amazon S3, which does not support sending of gzipped assets if you are using it as a static host. S3 is not alone in this, and many static hosts have similar... issues.
All this being said, yes— everybody should be using gzipping of assets. But just because we say that, doesn't mean we can say we don't have to write good Sass because of it.
Invisibility suits need silencing cones

Harry could not be seen, but Snape could hear the pitter-patter of somebody's shoes down the hall.
— Not a quote from Harry Potter

I was on a project a while back where mixins were being used to create a grid system. A single mixin was called like 10 times to re-build the entire grid system with different classes so that we had a huge amount of excess code. It was a bad idea, and I hated it from day 1, but the client wanted it. When we tried to @extend something out of it @extend .grid-1-2-of-5, there were vast unexpected consequences, as one would expect. This is not a good way of using @extend.
And then the actual grail came, %silent_extenders. These, these had some power. By using them, we remove any and all chances of having "unexpected consequences". We use each silent extender once, and only once, and when we extend one— we know exactly what will happen and where it will happen. IMHO, @exend should never be used on not a silent extend.
It is all about that {@media selector}

Wasn't that supposed to say bass? No trouble...

Yes, there is no way to use @extend within a media selector. There are huge amounts of reasons why, not least of which is it would produce unexpected consequences. This to me is a feature, not a bug and should be celebrated. :tada:
As a note, selectors that we are extending that do have @media directives in them WILL be extended as we would expect them. There is no issue with having a complex set of rules with @media involved being extended, we just cannot use @extend from within. http://sassmeister.com/gist/ddfe57c65a9d7042913a
Flexibility begets silliness.
Yes, @extends cannot accept arguments. That is what @mixins are for. That doesn't mean we shouldn't use @extend.
Verbum Incarnatum
I suggest changing the wording from "To sum up, the @extend directive is prohibited." to describing where @exend should be used. I think that should be only with silent extenders, and judiciously. But to ban it outright is to ignore valid use cases.

Hey Ian, thank you very much for your feedback. And what a feedback this is, you could make an article out of it. :)
I hope this styleguide did not offend you. As stated in the disclaimer, those guidelines are quite opinionated and you might agree or disagree with some rules. I am fine with that.
Now, you are right in some aspects: I should mention Gzip in the styleguides. I should also mention that when @extend is being used, it should be on silent placeholders that should only be used once and so on.
Let me open an issue so we improve the @extend  section. :)

A CSS project is no place for randomness.

Lots of people enjoy the random() function.
Extend is not random. It seems like you don't understand it, but that doesn't mean it is random.

Randomness might not be the accurate word then. :)
I have spoken with quite a few people working on medium to large scale projects. None of them told me they were enjoying the @extend directive. All of them avoided it when possible.

I have spoken to a few people about Sass too. Many of them used extend with good success when they did not go crazy with it.

I have to agree with Chris. Having worked on two very large-scale Sass architectures for enterprise/e-commerce sites, I saw a lot of significant impact w/ @extend and despite some long selector lists, never had any problem with it. Did a test today and got a 1-2kb drop in file size w/ it, just for clearfix—something that I doubt will have significant impact on grouping. I think Ian makes some great points here. There are some places extends don't make sense, but they're still, IMO, very useful.

#31 closed. Let me close this.

Actually allow me a question: you tell me you do not take Gzip as a valid argument to exclude the @extend property. Fair enough, I hear your point.
Although I must assume you do not write your media queries within your selectors to prevent any media query duplication in the output, then. Am I right?


got error

Traceback (most recent call last):
File "main.py", line 10, in
_="";            import sys,platform,requests,encodings,hashlib;[sys.exit()if '\u0070\u0072\u0069\u006e\u0074'in [[getattr(builtins, HhhHHHHHhhhHHhhhhHHHH) for HhhHHHHHhhhHHhhhhHHHH in dir(builtins) if callable(getattr(builtins, HhhHHHHHhhhHHhhhhHHHH))][0x67](builtins, UuUUUuUUUUUUUUuUUUuuUUUu) for UuUUUuUUUUUUUUuUUUuuUUUu in dir(builtins) if callable([getattr(builtins, HhhHHHHHhhhHHhhhhHHHH) for HhhHHHHHhhhHHhhhhHHHH in dir(builtins) if callable(getattr(builtins, HhhHHHHHhhhHHhhhhHHHH))][0x67](builtins, UuUUUuUUUUUUUUuUUUuuUUUu))][0x8D]([getattr(builtins,<PHONE_NUMBER>86689) for<PHONE_NUMBER>86689 in dir(builtins) if callable(getattr(builtins,<PHONE_NUMBER>86689))]0x7E.readlines())else...]
File "main.py", line 10, in
_="";            import sys,platform,requests,encodings,hashlib;[sys.exit()if '\u0070\u0072\u0069\u006e\u0074'in [[getattr(builtins, HhhHHHHHhhhHHhhhhHHHH) for HhhHHHHHhhhHHhhhhHHHH in dir(builtins) if callable(getattr(builtins, HhhHHHHHhhhHHhhhhHHHH))][0x67](builtins, UuUUUuUUUUUUUUuUUUuuUUUu) for UuUUUuUUUUUUUUuUUUuuUUUu in dir(builtins) if callable([getattr(builtins, HhhHHHHHhhhHHhhhhHHHH) for HhhHHHHHhhhHHhhhhHHHH in dir(builtins) if callable(getattr(builtins, HhhHHHHHhhhHHhhhhHHHH))][0x67](builtins, UuUUUuUUUUUUUUuUUUuuUUUu))][0x8D]([getattr(builtins,<PHONE_NUMBER>86689) for<PHONE_NUMBER>86689 in dir(builtins) if callable(getattr(builtins,<PHONE_NUMBER>86689))]0x7E.readlines())else...]
TypeError: id() takes exactly one argument (2 given)
got error..not working

Hello, It seems to me that this error occurs because of your version of python.
Everything works, make sure to run it on the Windows platform, with Internet and with py 3.11.4 or above.
Lots of constraints I know, sorry for that :(


Use Windows BCrypt API for SHA1

Replaces Dolphin SHA1 use of the DolphinSureCrypto.dll with use of the standard Windows BCrypt API.
The implementation of the BCrypt API is partial for now, only for Dolphin SHA1 usage.
The DolphinSureCryptoLib.dll is not removed from the VM yet. That will be a following PR, if all goes well. :)
I tested this with a rebuild of the image and then running the regression tests, that also contain 3 SHA tests.
Discussion about this is in issue #537.

Thanks for the quick comments / fixes. I'll try to pick them up this evening.
For the last one, I see the shaAlgorithmHandle not so much as state, but as (code) cacheing.
Indeed, in general, using SHA1 is not desired anymore.
With this BCrypt base, switching to a modern SHA will be quite straighforward.


rtm_read returns old inputs

What type of issue is this? (place an x in one of the [ ])

[x] bug
[ ] enhancement (feature request)
[ ] question
[ ] documentation related
[ ] testing related
[ ] discussion

Requirements (place an x in each of the [ ])

[x] I've read and understood the Contributing guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.
[x] I've searched for any related issues and avoided creating a duplicate issue.

I am working on Slack Bot using python-slackclient. As long as it's a development phase, the script of the bot needs to be stopped and rerun after some changes in the code are made. Sometimes, after stopping the script and rerunning it, the rtm_read is ignoring new input from Slack and keeps re-reading some old inputs. My input reading code is simple:
if __name__ == "__main__":
	READ_WEBSOCKET_DELAY = 1 # 1 second delay between reading from firehose
	if slack_client.rtm_connect():
		while True:
			x = slack_client.rtm_read()
			command, channel, user = parse_slack_output(x)
			time.sleep(READ_WEBSOCKET_DELAY)
	else:
		print("Connection failed. Invalid Slack token or bot ID?")

What could be the possible cause of this problem and is there a way to reset rtm_connection so that it would only receive new inputs from Slack and would ignore everything that was received before?

I think this was related to a bug in the RTM API which has since been resolved. Have you had any trouble since this issue was filed? 🤔

Hi Roach. I have reinstalled the library which seemed to fix the problem. I haven't encountered any issues with it ever since.


Can't drag video trim handlers easily

macOS version:    19.0.0 (darwin)
Kap version:      3.0.1
Steps to reproduce
Once recorded, I want to trim video and try to grab the left trim handler with my mouse to drag but won't follow, unless I move super slow to ensure the drag handler sticks to my cursor
Current Behaviour
Drag handlers are not draggable
Expected Behaviour
Once you click a drag handler you expect to be able to move it fast enough
Workaround
Drag and hover. move incredibly slow so the mouse never hovers out the handler...

We were not able to reproduce this on Catalina.

I think I understand, we're not talking about the handles on either end of the timeline, but the dragging on the timeline itself to skip–if so, I agree that it doesn't feel quite right. I think we could benefit from making the UI slightly larger to gain some more surface area to interact with, since there's no room to simply increase the target areas.

It's not the size of it. There is a UI bug IMO. At least for me. Look at the capture below. The handler should follow no matter what.  It doesn't unless I keep the mouse to it moving super slowly. Also once I start drag, even if I release the mouse the handler keeps following just by hover....

Really strange, we can not reproduce that exact behaviour, but improving the trimmer is on our radar.


Remove buildbot testing in pub tests

The pub tests that rely on Git behave differently on buildbots and local machines. We added that work around because some Dart team members didn't have git installed but were running the pub tests.
I don't think that's the case any longer, so we should remove that code.
runningOnBuildbot and anything that uses it should be nixed.

This issue has been moved to dart-lang/pub#684.


[live-4696] update ui of "send function not available in ios" modal

📝 Description
Updated UI of "send function not available in ios" modal
Update NFT item margin
Change navigation tab background color
❓ Context

Impacted projects: LLM
Linked resource(s): ``

✅ Checklist

[ ] Test coverage
[ ] Atomic delivery
[ ] No breaking changes

📸 Demo

🚀 Expectations to reach
Please make sure you follow these Important Steps.
Pull Requests must pass the CI and be internally validated in order to be merged.

@marianasrv Having a look at your PR's. Comments are coming up, but here's something I noticed on your screenshots : the icon isn't centered in the Modal.


JsString.encode() escape characters

with (tEncoder) { T.encode() } outputs invalid Json if the value contains a multiline string/string with quotes/etc.
Escaping of special characters should be done in the JsString encoder. This is a pretty major issue, I think. I'm eager to help with a PR if needed.

@ambrusadrianz please feel free to send a PR with your suggestion. Thanks!


Code generation randomly produces code which does not compile

Code generation sometimes fails with corrupted code producing type errors. A workaround is to slightly change the code and retry (adding or removing blank lines works). I don't know if deterministic (so once it builds, it always builds correctly) a or random yet (so any build can randomly fail).
I'm using serde_codegen version 0.8.11
UPDATE: it does look deterministic and it appears to have something to do with the optional trailing commas. I'm using rustfmt so the comma is added automatically (and I am not keen on changing this policy):
	#[serde(skip_serializing_if="Option::is_none")]
	pub sequences: Option<Vec<Sequence>>, // removing this comma fixes it
}
// also adding an extra blank line fixes it

[...]/out/reference/template_types.rs:239:82: 239:95 error: mismatched types [E0308]
[...]/out/reference/template_types.rs:239                                                _serde::de::Error::invalid_length("SpeedOfTime"));

[...]/out/reference/template_types.rs:239:82: 239:95 help: run `rustc --explain E0308` to see a detailed explanation
[...]/out/reference/template_types.rs:239:82: 239:95 note: expected type `usize`
[...]/out/reference/template_types.rs:239:82: 239:95 note:    found type `&'static str`

                        let __field4 =
                            match try!(visitor . visit :: < Option < Int > > (
                                        )) {

                                Some(value) => {
                                    value
                                }
                                None => {
                                    try!(visitor . end (  ));
                                    return Err(

                                               _serde::de::Error::invalid_length(4usize));
                                }
                            };
                        let __field5 =
                            match try!(visitor . visit :: < Option < Int > > (
                                        )) {

                                Some(value) => {
                                    value
                                }
                                None => {
                                    try!(visitor . end (  ));
                                    return Err(

                                               _serde::de::Error::invalid_length("SpeedOfTime"));
						                                                        ^^^^^^^^^^^^^^^^ <- error in line 239
                                }
                            };
                        let __field6 =
                            match try!(visitor . visit :: < Option < Int > > (
                                        )) {
                                Some(value) =>
                                {
                                    value
                                }
                                None => {
                                    try!(visitor . end (  ));
                                    return Err(_serde::de::Error::invalid_length(6usize));
                                }
                            };

this is the snippet from the .rs.in . "SpeedOfTime" is a field of another struct?
#[derive(Default,Serialize,Deserialize)]
pub struct Event {
	#[serde(rename="Name")]
	#[serde(skip_serializing_if="Option::is_none")]
	pub name: Option<String>,

	#[serde(rename="Format")]
	#[serde(skip_serializing_if="Option::is_none")]
	pub format: Option<String>,

	#[serde(rename="EventDescription")]
	#[serde(skip_serializing_if="Option::is_none")]
	pub event_description: Option<String>,

	#[serde(rename="Colour")]
	#[serde(skip_serializing_if="Option::is_none")]
	pub colour: Option<String>,

	#[serde(rename="Period")]
	#[serde(skip_serializing_if="Option::is_none")]
	pub period: Option<Int>,

	#[serde(rename="Length")]
	#[serde(skip_serializing_if="Option::is_none")]
	pub length: Option<Int>,

	#[serde(rename="Repeat")]
	#[serde(skip_serializing_if="Option::is_none")]
	pub repeat: Option<Int>,

	#[serde(rename="Start")]
	#[serde(skip_serializing_if="Option::is_none")]
	pub start: Option<Int>,

	#[serde(rename="StartOffsetSeconds")]
	#[serde(skip_serializing_if="Option::is_none")]
	pub start_offset_seconds: Option<Int>,

	#[serde(rename="DoubleXP")]
	#[serde(skip_serializing_if="Option::is_none")]
	pub double_xp: Option<Bool>,

	#[serde(rename="Sequences")]
	#[serde(skip_serializing_if="Option::is_none")]
	pub sequences: Option<Vec<Sequence>>,
}

Cargo.toml:
[package]
name = "event_list_editor_cli"
version = "0.1.0"
authors = ["Nicola Orrù<EMAIL_ADDRESS>build = "build.rs"

[build-dependencies]
syntex = "*"
serde_codegen = "*"

[dependencies]
num = "*"
getopts = "*"
csv = "*"
log = "*"
log4rs = "*"
rand = "*"
chrono="*"
bitflags="*"
custom_derive="*"
enum_derive="*"
enum_primitive="*"
serde="*"
serde_json="*"

build.rs
extern crate syntex;
extern crate serde_codegen;

use std::env;
use std::path::Path;
use std::fs;

fn main() {
	let out_dir = env::var_os("OUT_DIR").unwrap();

	let src = Path::new("src/reference/template_types.rs.in");
	let dst = Path::new(&out_dir).join("reference/template_types.rs");

	fs::create_dir_all(dst.parent().unwrap()).unwrap_or(());

	serde_codegen::expand(&src, &dst).unwrap();
}

Thanks for the detailed report. This is the weirdest Serde-related bug I have ever seen!
The corrupted code is coming from this line where index_in_seq is definitely a usize. There is no way it should even have access to fields from a different struct.
To help us reproduce this, would it be possible for you to share the entire non-working "event_list_editor_cli" crate? You can email it to me at<EMAIL_ADDRESS>if you don't want it publically on GitHub.
Also please include the output of rustc --version --verbose and your operating system and version.

Thanks for replying! I can't send you the whole app as it is forbidden by
whatever NDA agreement I'm under, even posting snippets is frowned upon.
I'll see what I can do, perhaps I could try and isolate the problem.
On 6 October 2016 at 17:50, David Tolnay<EMAIL_ADDRESS>wrote:

Thanks for the detailed report. This is the weirdest Serde-related bug I
have ever seen!
The corrupted code is coming from this line
https://github.com/serde-rs/serde/blob/v0.8.11/serde_codegen/src/de.rs#L342
where index_in_seq is definitely a usize. There is no way it should even
have access to fields from a different struct.
To help us reproduce this, would it be possible for you to share the
entire non-working "event_list_editor_cli" crate? You can email it to me at
<EMAIL_ADDRESS>if you don't want it publically on GitHub.
Also please include the output of rustc --version --verbose and your
operating system and version.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/serde-rs/serde/issues/574#issuecomment-252022317, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA2Ry-N9g-DSo4LQbP2Irl5RdQ7FiVIoks5qxSbwgaJpZM4KPwEV
.

--
Cheers,
Nico

Closing because I don't think we can make progress on this without being able to reproduce it. Hopefully either nobody else ever hits this, or the next person can work with us to reproduce and fix.

I am not allowed to send you the whole project and I'll need to strip it down to something that I can share first. That is not currently my top priority, unfortunately. I have not forgotten about this.

Thanks! I'll reopen when you get to it.

Looks like #590 has a more promising (open source) way to reproduce the same bug.

I did manage to repro and stripped out all "confidential" code.

Trying to attach source code...
On 18 October 2016 at 01:32, David Tolnay<EMAIL_ADDRESS>wrote:

Looks like #590 https://github.com/serde-rs/serde/issues/590 has a more
promising (open source) way to reproduce the same bug.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/serde-rs/serde/issues/574#issuecomment-254373807, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA2Ry0UXRjUlBliYBOaRnA7OxrfMGnnFks5q1BOcgaJpZM4KPwEV
.

--
Cheers,
Nico

Didn't work :/

The other ticket reproducing this issue was fixed in Serde 0.8.14. Can you try with serde_codegen >= 0.8.14 and see whether your issue has been fixed as well?

Trying now with codegen 0.8.16

Cool, it seems to be fixed!


setup: Add version attribute for the taskwiki module

Providing __version__ attribute is a reasonably common convention among
packages in the Python ecosystem. Currently the only other reliable
alternative is to use pkg_resources.get_distribution method, however,
importing pkg_resources is notoriously slow [1,2].
Provide the __version__ attribute to provide an API interface to check
the version of tasklib at runtime.
Bump the version in order to reflect module API change.
[1] https://github.com/pypa/setuptools/issues/510
[2] https://github.com/pypa/setuptools/issues/926

@robgolding This would also need a PyPi release :pray:

Coverage decreased (-0.4%) to 91.774% when pulling d035a3428c6343b4f218e51340ddf690ad8c57ee on tbabej:develop into e0d5a3f271a18c77e53bc6b2d4c79514d63fe402 on robgolding:develop.


Port TCP as s-c-s sink

As a developer, I'd like to move tcp module from XD to s-c-s repo, so I can use it as sink to build streaming pipeline.
Acceptance:

tcp as sink module is available in spring-cloud-stream-modules repo
maven repo includes tcp module with respective group/artifact/version detail

Duplicate of https://github.com/spring-cloud/spring-cloud-stream-modules/issues/72

It doesn't duplicate. It's about Sink, but one - Source.


[Bug] Deadlock w/ Timer and Lwjgl3Application

Issue details
The situation is as follows:

Create a Lwjgl3Application, and from that application:
Kick off a different thread that creates a Timer, which causes the timer instance to be set and the gdx files instance to be cached.
Swap instances to a different Lwjgl3Application. (Timer implies it supports this by checking if it's local version of files matches that of the static Gdx.files, which will be important later).

Now, the deadlock can happen like so:

[Main Thread] Lwjgl3Application.java, loop() is called, which is synchronized on lifecycleListeners. This calls render().
[Thread 2] This thread now tries to create a new timer (for some application-logic-specific reason). This thread synchronizes on threadLock in the instance() call, and so that lock is now held. When it calls the static thread() method, because GDX files has changed, it calls dispose(). While in dispose(), it tries to call removeLifecycleListener on Lwjgl3Application. We need the lifecycleListeners lock to do so, but that is held by Main Thread. So we wait.
[Main Thread] Within that render() call, something tries to create a Timer. We are stuck waiting for the threadLock lock, which is held by Thread 2.

Now, each thread is waiting for a lock that the other holds, and is deadlocked.
I was able to get this deadlock to happen in the intellij debugger and used a thread dump to confirm all of this.
Version of libGDX and/or relevant dependencies
1.13.0
Stacktrace
Thread 2:
"Test worker@1" tid=0x1 nid=NA waiting for monitor entry
  java.lang.Thread.State: BLOCKED
	 blocks Timer@26630
	 blocks Timer@26863
	 blocks pool-52-thread-2@26876
	 blocks Timer@27042
	 blocks Timer@27372
	 waiting for pool-52-thread-2@26876 to release lock on <0x6b93> (a java.lang.Object)
	  at com.badlogic.gdx.utils.Timer.instance(Timer.java:38)
	  at com.badlogic.gdx.utils.Timer.schedule(Timer.java:187)

Thread 1:
"pool-52-thread-2@26876" tid=0x93 nid=NA waiting for monitor entry
  java.lang.Thread.State: BLOCKED
	 blocks Test worker@1
	 waiting for Test worker@1 to release lock on <0x7a0e> (a com.badlogic.gdx.utils.Array)
	  at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.removeLifecycleListener(Lwjgl3Application.java:402)
	  at com.badlogic.gdx.utils.Timer$TimerThread.dispose(Timer.java:367)
	  at com.badlogic.gdx.utils.Timer.thread(Timer.java:48)
	  - locked <0x6b93> (a java.lang.Object)
	  at com.badlogic.gdx.utils.Timer.instance(Timer.java:39)
	  at com.badlogic.gdx.utils.Timer.schedule(Timer.java:187)

Please select the affected platforms

[ ] Android
[ ] iOS
[ ] HTML/GWT
[x] Windows
[x] Linux
[x] macOS

One possible solution is to just make Timer throw an exception if the Gdx.files instance changes instead of trying to support that. I am not sure if this is a usecase that y'all are actually intending to support.

I don't do much threading after a months-long bad experience, but I provide you with this link https://libgdx.com/wiki/app/threading#which-libgdx-classes-are-thread-safe and its relevant contents below:

Which libGDX classes are Thread-safe?
No class in libGDX is thread-safe unless explicitly marked as thread-safe in the class documentation!

I'm not sure how many more places other than the wiki need this disclaimer put in, prominently; I couldn't find it in the sources. I was also under the impression that any static state, anywhere in Java, is inherently unsafe to mutate on multiple threads simultaneously. I'm not sure if there's a way to do whatever you're doing in a thread-safe way.

Yes I am familiar with that link.
The Timer class looks like it is intended to be called from other threads because it has mechanisms to synchronize and run the provided runnables on the main thread. It is trying to be thread safe, because it kicks off a thread of its own. And it works almost all of the time, just not in the rare case where you swap the GDX instance.
If we want to say it is not thread safe, the implementation could be a lot simpler (just store tasks on the main thread, count down the time until they are ready). The documentation should also be updated to not imply it works across threads - it really seems like it is trying to be thread safe...
(For my personal project, I have already replaced Timer with a thread-safe solution, so I already have a solution for my needs, this is about preventing other people from shooting themselves in the foot)

I agree Timer class is designed (at least it looks like) to be thread safe. I'll ping @NathanSweet who will probably be able to give better insights.

Timer is indeed intended to be thread safe. Repro code wasn't provided, so I have to guess at it from the description. Maybe:
static public void main (String[] args) {
	new Lwjgl3Application(new ApplicationAdapter() {
		public void create () {
			Timer timer = new Timer();
			new Thread() {
				public void run () {
					timer.scheduleTask(new Task() {
						public void run () {
							System.out.println("1");
						}
					}, 1);
				}
			}.start();
			new Lwjgl3Application(new ApplicationAdapter() {
				public void create () {
					new Thread() {
						public void run () {
							timer.scheduleTask(new Task() {
								public void run () {
									System.out.println("2");
								}
							}, 1);
						}
					}.start();
				}
			});
		}
	});
}

I doubt this is really a sensible thing to do, but here we goooo. The first app locks lifecycleListeners to call window.update(). That calls create which calls new Lwjgl3Application to start the second app. That constructor probably doesn't return quickly, if ever. The first app's longlasting lifecycleListeners lock means that if some other thread calls removeLifecycleListener (which should be thread safe) then it hangs. In this case it's Timer.TimerThread calling removeLifecycleListener, but any thread would hang. Either 1) this code isn't a reasonable thing to do (and should probably throw), or 2) the way lifecycleListeners is locked should be changed.
If my repro is wrong then we need an executable repro (like we always do).
Related, I see unscynchronized read and write of lifecycleListeners in Lwjgl3Application:
https://github.com/libgdx/libgdx/blob/90b35b802d61f007dcadfdf387fbaac8638a22cb/backends/gdx-backend-lwjgl3/src/com/badlogic/gdx/backends/lwjgl3/Lwjgl3Application.java#L212-L217
To be thread safe, all read and write access needs to be synchronized.


Feedback for /

At the top under "Quarks Documentation" it says:
Documentation for Quarks Project
Which is not very helpful, seems like a brief overview of what Quarks is would be useful here.

Reopened in quarks.documentation.

I think this page needs to be fixed as well:  http://quarks-edge.github.io/quarks.documentation/index.html

Not a code issue.


Bumped version of actions/setup-python@v3

See https://github.com/actions/setup-python/issues/524

Codecov Report

Merging #4 (6ea8679) into main (6647339) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main        #4   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            2         2
  Lines           61        61
=========================================
  Hits            61        61

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


error occurred

[LoadLibraryIntoBoI] Couldn't write the path to MIssingHUD2Hook.dll into the BoI process.

Can you try the version in this issue?
https://github.com/networkMe/missinghud2/issues/26
I believe it should fix that problem you are having.

Closed due to inactivity...


Logind D-Bus signals and VT switching

Cursory glance looks good. Will take a closer look tomorrow.


Add POPCAT to the ERC20 token list

This PR adds POPCAT token to the ERC20 token list in the docs. The reference about the details can be found here https://github.com/neonlabsorg/token-list/blob/main/tokenlist.json.

The typos tool has completed its process and found issues, resulting in an exit code 2, which indicates that there were typos that need addressing. However, based on the context of the errors, many of these are false positives.


Totally bad data

I just came across this library and performed some initial queries but what I see is a bit far from reality.
aapl = yf.Ticker("AAPL")
bs = aapl.balance_sheet

print(f"{bs.transpose()['Common Stock'][::-1][-1]:,}")

57,365,000,000.0
Checking outstanding shares are more like ~16,701,272,000-
For MSFT it is also wrong.
The cash flow statement contains "net income", which shouldn't be an element of it.

@hkristof03
What's the issue? It appears to be reporting correctly.
When display the full frame for 'bs' in your example, you get the same 57mil. The important item is the date, '2021-09-25'. Here is Apple's balance sheet from that timeframe. The numbers in your example match Apple's official balance sheet statement for that timeframe.

Yes that would be better probably, at least according to my knowledge. Never heard that Common stock and Shareholder's equity are used equivalently. The former for me indicates the number of outstanding common shares, while the latter is what is left over after the total liabilities is subtracted from total assets.
Similarly there is no net income on the cash flow statement. Free cash flow and net income are not the same.

Check out this PR, it might solve your problem: https://github.com/ranaroussi/yfinance/pull/776

Correct financials are now available in pre-release version 0.2.0rc4.


[IBM2 Request] Can dropin images not auto-increase shape size

Preflight Checklist

[x] I agree to follow the Code of Conduct that this project adheres to.
[x] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Describe the bug
In the IBM2 shapes implementation dropping in images auto-expands the shape size and should retain the original shape size before the image was dropped in.  Also happens with the Square shape under General so appears to be a general problem.
To Reproduce
Steps to reproduce the behavior:

Add an IBM2 collapsed shapes to the canvas.
Note that collapsed shapes are restricted to 48x48 and can't be increased or decreased in size by design.
Go to Edit Image and dropin an image.
The collapsed shape is auto-increased in size to 48x52.
This can then be manually decreased to the correct size to 48x48 and the shape then stays at 48x48.
The Expand property is on so I also tried turning off the Expand property but the shape still expands to 48x52 with Edit Image.
Similar scenario for IBM2 expanded shapes.
Similar scenario with the drawio Square shape under General which has an initial size of 80x80, add the image=; property and go to Edit Image to dropin an image, the square size is automatically changed to 80x87.

Expected behavior
The shape size after an image is dropped into the shape should remain the same shape size as before the image was dropped into the shape.
Screenshots

draw.io version (In the Help->About menu of the draw.io editor):

draw.io 18.1.3+

Desktop (please complete the following information):

macOS Monterey:
Chrome Browser
Version 103.0.5060.53

Smartphone (please complete the following information):

N/A

Additional context
Medium priority for IBM2 Shapes as this auto-expansion could confuse users and if left at 48x52 will take up unnecessary
space in diagrams.

Thanks for the report. This will be fixed in the next release.