Request a message update for the helper text

Fix #824
resume: the init call didnt call the update message event because
the inner memory was set inside the super()init call.
Description of Changes
The class request a message update inside __init__
Screenshots
from kivymd.app import MDApp
from kivymd.uix.screen import MDScreen
from kivymd.uix.textfield import MDTextField

class Example(MDApp):
    def build(self):
        screen = MDScreen()
        screen.add_widget(
            MDTextField(
                hint_text="hint_text",
                helper_text="helper_text",
                helper_text_mode="on_focus",
                pos_hint={"center_x": .5, "center_y": .5},
                size_hint_x=0.5,
            )
        )
        return screen

Example().run()

Before

Before

@HeaTTheatR could you review this change?, I don't want to mix up the pulls, since I'm still unable to make independent pulls directly from kivymd master


Error, now it wont open anymore

Got an unhandled exception error, now it wont open anymore :/ - Even after trying the troubleshotting steps

Fixed: removed the currupted config file located in AppData\Local\Apps\2.0\AVC****\NCT*****\xbox.....tion_**\profiles\default.ini


fix default suspension of Deployment/StatefulSet with Kueue-managed owners

What type of PR is this?

/kind feature
What this PR does / why we need it:
Adjusts default suspension logic in Deployment/StatefulSet webhooks to correctly handle the case where they
are children of another Kueue-managed Kind.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Based on a suggestion in abandoned PR to allow us to avoid needing a full-blown replicaset integration.
Does this PR introduce a user-facing change?

NONE

/hold
I did initial testing with some e2e scenarios with appwrappers already.  I want to work through all of them to make sure there aren't any surprises.  Except to finish that today.

/unhold I've tested various combinations of deployments, statefulsets, and appwrappers in both managed and unmanaged namespaces.  Everything appears to be working reasonably.

/unhold

/lgtm
/approve
Since this PR was extensively tested manually per https://github.com/kubernetes-sigs/kueue/pull/3803#issuecomment-2533506262 I'm good to go with it. The main concern is the hard-coded lookup of the integrations. I believe this is something we can clean up in a follow up @dgrove-oss.


[Progress] Add ARIA values to improve accessibility of Progress variants

Description
This PR resolves https://github.com/mui/material-ui/issues/31376 by adding the proper ARIA values to the different Progress component variants in order to communicate progress state changes via screenreader.

When components that dynamically change progress values are interacted with using assistive technology, they will announce changes in progress.

Motivation for this change:

Progress indicator components do not consistently communicate role or state to assistive technology.

Level A WCAG failure of 4.1.2: Name, Role, Value.

[x] I have followed the PR section of the contributing guide.

Hey @apoznanski, thanks for the contribution! This is great 😊 here's my feedback
There should be an Accessibility section with an example of how to provide progress alerts, like Joy's Circular Progress accessibility section. In this section, there would be an example of determinate and indeterminate components with the span alert elements. I would remove the alert element from the existing determinate examples:

CircularDeterminate
CircularWithValueLabel
LinearDeterminate
LinearBuffer
LinearWithValueLabel

This would appear to make these examples inaccessible, but I would argue it doesn't as there's nothing really loading in the demos to start with. This makes the examples easier to understand and avoids repetition between them.
We should also update Joy's documentation with similar examples in the accessibility section (cc: @siriwatknp):

https://mui.com/joy-ui/react-circular-progress/#accessibility
https://mui.com/joy-ui/react-linear-progress/

What do you think about these ideas?

Hey @apoznanski, do you think you'll continue working on this PR?
If not, I can carry on with the remaining work

@DiegoAndai Just a reminder in case you're planning to work on this.

Thanks for the ping, @ZeeshanTamboli. I'll close this PR and add the issue to the Material UI with the Base UI milestone, as we will be working on that soon, and we should rely on Base UI's progress component.


[BUG] Paging through a considerable amount of queues in a namespace results in inconsistent page and total item count results

Library name and version
Azure.Messaging.ServiceBus, Version=<IP_ADDRESS>
Describe the bug
I have a small service bus browser tool https://github.com/sergevm/azure-servicebus-browser that has some search features (contains on queue / topic name). To execute this search, I use ServicebusAdministrationClient.GetQueuesRuntimePropertiesAsync() with AsPages() to run through the the queue runtime informations and find matches.
However, I noticed that I don't always get the same number of search results. I added some logging to the method that processes the IAsyncEnumerable<Page>. With the page size set to 100, I see in the logging that all pages except for the last one contain 100 queues, except for the last page. In the logging, I see that the number of pages is not consistent, as are the number of queues on the last page received.
Expected behavior
Without queues being created or deleted, the number of pages is always the same, as well as the total number of items.
Actual behavior
There are no exceptions thrown, nor logging statements.
Reproduction Steps
Use a namespace that contains a considerable amount of queues. In my test context, I have +1900 queues.
Use the Azure.ServiceBus.Messaging ServicebusAdministration client to run over the queues in the namespace, using the ServicebusAdministrationClient.GetQueuesRuntimePropertiesAsync() API, and call AsPages() on the result, e.g. ` return client.GetQueuesRuntimePropertiesAsync(cancellationToken).AsPages(continuationToken, pageSize);
The implementation I use is as simple as
public IAsyncEnumerable<Azure.Page<QueueRuntimeProperties>> GetQueueRuntimeInfo(int pageSize, string? continuationToken, CancellationToken cancellationToken = default)
{
       return client.GetQueuesRuntimePropertiesAsync(cancellationToken).AsPages(continuationToken, pageSize);
}

This method is called from another method (on another class):
public async IAsyncEnumerable<IEnumerable<QueueViewModel>> GetQueues(string filter, int maxItems = 100, [EnumeratorCancellation] CancellationToken cancellationToken = default)
{
    var count = 0;
    var pageIndex = 0;
    var totalQueueCount = 0;

    var info = client.GetQueueRuntimeInfo(maxItems, null, cancellationToken);
    await foreach (var page in info)
    {
        var itemCount = page.Values.Count;
        totalQueueCount += page.Values.Count;
        var matches = page.Values.Where(v => v.Name.Contains(filter, StringComparison.InvariantCultureIgnoreCase)).ToList();
        var matchesCount = matches.Count;
        count += matches.Count;

        logger.Information("Page {PageIndex} contains {ItemCount} items, {MatchesCount} matches, continuation token is {ContinuationToken}", pageIndex++, itemCount, matchesCount, page.ContinuationToken);

        yield return matches.Select(runtimeProperties => new QueueViewModel(namespaceContext, new QueueRuntimePropertiesWrapper(runtimeProperties)));

        if (count >= maxItems)
        {
            break;
        }
    }

    logger.Information("Total queue count that has been evaluated against filter: {TotalQueueCount}", totalQueueCount);
}

Run this multiple times, and see the total item count vary, as well as the page count. Note that all but the last page contain the page size worth of items
Environment
Installation Source: SDK 8.0.100
Manifest Version:    8.0.0-preview.1.23557.2/8.0.100
Manifest Path:       /usr/local/share/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.aspire/8.0.0-preview.1.23557.2/WorkloadManifest.json
Install Type:        FileBased
Host:
Version:      8.0.0
Architecture: arm64
Commit:       5535e31a71
.NET SDKs installed:
6.0.400 [/usr/local/share/dotnet/sdk]
6.0.412 [/usr/local/share/dotnet/sdk]
6.0.413 [/usr/local/share/dotnet/sdk]
7.0.304 [/usr/local/share/dotnet/sdk]
7.0.305 [/usr/local/share/dotnet/sdk]
7.0.306 [/usr/local/share/dotnet/sdk]
7.0.307 [/usr/local/share/dotnet/sdk]
8.0.100-rc.1.23463.5 [/usr/local/share/dotnet/sdk]
8.0.100-rc.2.23502.2 [/usr/local/share/dotnet/sdk]
8.0.100 [/usr/local/share/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.8 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.20 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.21 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.7 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.8 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.9 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.10 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.0-rc.2.23480.2 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.8 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.20 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.21 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.7 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.8 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.9 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.10 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.0-rc.2.23479.6 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
x64   [/usr/local/share/dotnet/x64]
Environment variables:
Not set

Hi @sergevm.  Thank you for reaching out and we regret that you're experiencing difficulties.   The client library does not control what data is returned nor how it is broken into pages; that is done by the Service Bus administration service.  Unfortunately, the Azure SDK maintainers are unable to assist with service issues.
Your best path forward would be to open an Azure support request.  As an alternative, you could consider posting to the Service Bus forum of the Azure Feedback site, which is monitored by the Service Bus team.
I'm going to close this out; if I've misunderstood what you're describing, please let us know in a comment and we'd be happy to assist as we're able.

In predecessors of this package, there were options to use a management client to filter on subscriptions, topics etc server-side, see e.g.
https://learn.microsoft.com/en-us/dotnet/api/microsoft.servicebus.namespacemanager.gettopicsasync?view=azure-dotnet-legacy#microsoft-servicebus-namespacemanager-gettopicsasync(system-string).
This feature seems to have disappeared in the supported package, therefore, I am filtering client-side.
Any chance this feature would be introduced again in the library?


Bug Fix: Changes to cut_lineage() for UserWarning

Description
This change will ensure compatibility with newer version of PySpark to fix the UserWarning: UserWarning: DataFrame.sql_ctx is an internal property, and will be removed in future releases. Use DataFrame.sparkSession instead.

[x] Bug fix - non-breaking change

Checklist:

[x] I have performed a self-review of my own code.
[x] I have commented my code appropriately, focusing on explaining my design decisions (explain why, not how).
[x] I have made corresponding changes to the documentation (comments, docstring, etc.. )
[x] I have added tests that prove my fix is effective or that my feature works.
[x] New and existing unit tests pass locally with my changes.
[x] I have updated the change log.

Peer review
Any new code includes all the following:

Documentation: docstrings, comments have been added/ updated.
Style guidelines: New code conforms to the project's contribution guidelines.
Functionality: The code works as expected, handles expected edge cases and exceptions are handled appropriately.
Complexity: The code is not overly complex, logic has been split into appropriately sized functions, etc..
Test coverage: Unit tests cover essential functions for a reasonable range of inputs and conditions. Added and existing tests pass on my machine.

Review comments
Suggestions should be tailored to the code that you are reviewing. Provide context.
Be critical and clear, but not mean. Ask questions and set actions.
These might include:

bugs that need fixing (does it work as expected? and does it work with other code
that it is likely to interact with?)
alternative methods (could it be written more efficiently or with more clarity?)
documentation improvements (does the documentation reflect how the code actually works?)
additional tests that should be implemented

Do the tests effectively assure that it
works correctly? Are there additional edge cases/ negative tests to be considered?

code style improvements (could the code be written more clearly?)

Further reading: code review best practices

Also, successfully tested in the CDP MIG Environment, I can confirm I no longer see the UserWarning: UserWarning: DataFrame.sql_ctx is an internal property, and will be removed in future releases. Use DataFrame.sparkSession instead.


[SUPPORT] MOR table behavior for Spark Bulk insert to COW

I've already created an issue HUDI-8394, but what to highlight and discuss this problem here.
I suppose, this is a critical issue with current master when:

bulk insert operation,
hoodie.datasource.write.row.writer.enable = false,
simple bucket index.

Describe the problem you faced
When I try to bulk insert to COW table, I see in file system parquet and log files, which is MOR table behavior.
I've checked that table is COW type.
cat ./.hoodie/hoodie.properties
# ...
# hoodie.table.type=COPY_ON_WRITE       <-- COW table
# ...

But files are not for COW table:
ll ./dt\=2021-01-05/
# total 456
# drwxr-xr-x 2 d00838679 d00838679   4096 окт 19 15:33 ./
# drwxrwxr-x 4 d00838679 d00838679   4096 окт 19 15:32 ../
# -rw-r--r-- 1 d00838679 d00838679 435346 окт 19 15:32 00000001-4a79-47b3-918c-05f8b90e8b14-0_1-14-12_20241019083242289.parquet               <-- base file
# -rw-r--r-- 1 d00838679 d00838679   3412 окт 19 15:32 .00000001-4a79-47b3-918c-05f8b90e8b14-0_1-14-12_20241019083242289.parquet.crc
# -rw-r--r-- 1 d00838679 d00838679    978 окт 19 15:33 .00000001-4a79-47b3-918c-05f8b90e8b14-0_20241019083307134.log.1_0-30-31                <-- log file as for MOR table
# -rw-r--r-- 1 d00838679 d00838679     16 окт 19 15:33 ..00000001-4a79-47b3-918c-05f8b90e8b14-0_20241019083307134.log.1_0-30-31.crc
# -rw-r--r-- 1 d00838679 d00838679     96 окт 19 15:32 .hoodie_partition_metadata
# -rw-r--r-- 1 d00838679 d00838679     12 окт 19 15:32 ..hoodie_partition_metadata.crc

To Reproduce
To reproduce, existed test Test Bulk Insert Into Bucket Index Table could be modified and used:
test("Test Bulk Insert Into Bucket Index Table") {
  withSQLConf("hoodie.datasource.write.operation" -> "bulk_insert", "hoodie.bulkinsert.shuffle.parallelism" -> "1") {
    withTempDir { tmp =>
      val tableName = generateTableName
      // Create a partitioned table
      spark.sql(
        s"""
            |create table $tableName (
            |  id int,
            |  dt string,
            |  name string,
            |  price double,
            |  ts long
            |) using hudi
            | tblproperties (
            | primaryKey = 'id,name',
            | type = 'cow',
            | preCombineField = 'ts',
            | hoodie.index.type = 'BUCKET',
            | hoodie.index.bucket.engine = 'SIMPLE',
            | hoodie.bucket.index.num.buckets = '2',
            | hoodie.bucket.index.hash.field = 'id,name',
            | hoodie.datasource.write.row.writer.enable = 'false')
            | partitioned by (dt)
            | location '${tmp.getCanonicalPath}'
            """.stripMargin)
      spark.sql(
        s"""
            | insert into $tableName values
            | (5, 'a1,1', 10, 1000, "2021-01-05")
            """.stripMargin)
      spark.sql(
        s"""
            | insert into $tableName values
            | (9, 'a3,3', 30, 3000, "2021-01-05")
         """.stripMargin)
      )
    }
  }
}

Expected behavior
For COW table, only parquet files should be created.
Environment Description

Hudi version : current master

Spark version : 3.4

Currently, for this case BucketIndexBulkInsertPartitioner is used:
https://github.com/apache/hudi/blob/5ccb19bb417d17368b0855fff041a9a129638802/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/BucketIndexBulkInsertPartitioner.java#L65-L68
First insert uses SingleFileHandleCreateFactory, but the second insert will use AppendHandleFactory, and create log file.
I don't understand how Bulk insert to COW table with Simple bucket index should work by design. When we inserting data, that should update previous data, should we create new parquet file with new data, and call inline compaction (due to COW table type), or merge and write data to new parquet file, then it's not bulk insert?

Bulk_insert should only be executed once IMO, for second update, you should use upsert operation instead.

@geserdugarov Thats surprising. We should ideally never have log files regardless of what operation you use.

Sorry, I wrote wrong version of Spark first.
When I tried to build Hudi with -Dspark3.5, I faced
An exception or error caused a run to abort: org.apache.spark.sql.catalyst.plans.logical.InsertIntoStatement.copy$default$7()Z
java.lang.NoSuchMethodError: org.apache.spark.sql.catalyst.plans.logical.InsertIntoStatement.copy$default$7()Z
	at org.apache.spark.sql.HoodieSpark3CatalystPlanUtils.rebaseInsertIntoStatement(HoodieSpark3CatalystPlanUtils.scala:70)
	at org.apache.spark.sql.HoodieSpark3CatalystPlanUtils.rebaseInsertIntoStatement$(HoodieSpark3CatalystPlanUtils.scala:69)
	at org.apache.spark.sql.HoodieSpark34CatalystPlanUtils$.rebaseInsertIntoStatement(HoodieSpark34CatalystPlanUtils.scala:33)
	at org.apache.spark.sql.hudi.analysis.HoodieAnalysis$AdaptIngestionTargetLogicalRelations$$anonfun$$nestedInanonfun$apply$1$1.applyOrElse(HoodieAnalysis.scala:314)
...

As you can see, there calling of HoodieSpark34CatalystPlanUtils. So, I didn't check the reason, and switched to -Dspark3.4 to skip it.
I'm using Ubuntu 22.04, and run modified test in IntelliJ IDEA. To prevent removing of data files, I placed breakpoint right after the second insert, and check filesystem in debug mode.
Rechecked mentioned test again for commit 66597e5080d8ecd071f79473a27117f19f2e793b, and still see:
/tmp/spark-bee1984c-74df-4067-8e14-09a61e02e0c8$ tree -a
.
├── dt=2021-01-05
│   ├── 00000001-9e90-410e-bdf3-4ea189ba93ac-0_1-14-12_20241023121839934.parquet
│   ├── .00000001-9e90-410e-bdf3-4ea189ba93ac-0_1-14-12_20241023121839934.parquet.crc
│   ├── .00000001-9e90-410e-bdf3-4ea189ba93ac-0_20241023121845855.log.1_0-30-31
│   ├── ..00000001-9e90-410e-bdf3-4ea189ba93ac-0_20241023121845855.log.1_0-30-31.crc
│   ├── .hoodie_partition_metadata
│   └── ..hoodie_partition_metadata.crc

I've simplified provided test to:
test("Test MOR as COW") {
  withSQLConf("hoodie.datasource.write.operation" -> "bulk_insert") {
    spark.sql(
      s"""
         |create table mor_as_cow (
         |  id int,
         |  dt int
         |) using hudi
         | tblproperties (
         | primaryKey = 'id',
         | type = 'cow',
         | preCombineField = 'dt',
         | hoodie.index.type = 'BUCKET',
         | hoodie.index.bucket.engine = 'SIMPLE',
         | hoodie.bucket.index.num.buckets = '2',
         | hoodie.datasource.write.row.writer.enable = 'false')
         | location '/tmp/mor_as_cow'
        """.stripMargin)
    spark.sql(s"insert into mor_as_cow values (5, 10)")
    spark.sql(s"insert into mor_as_cow values (9, 30)")
  }
}

@ad1happy2go  I've prepared local Spark 3.5.3 cluster and prepared test to reproduce this bug using PySpark. The script is available here:
https://github.com/geserdugarov/test-hudi-issues/blob/main/HUDI-8394/write-COW-get-MOR.py
After
INSERT INTO cow_or_mor VALUES (5, 10);
INSERT INTO cow_or_mor VALUES (9, 30);

for
SELECT * FROM cow_or_mor;

I got:
('5', '', '00000000-dad4-4358-aaad-767a76e43e70-0_0-14-12_20241025153558259.parquet', 5, 10)

We see only one row, and missed the second one with id=9, because it's placed in a log file, despite the fact that we set COW table:
tree -a /tmp/write-COW-get-MOR
# .
# ├── 00000000-dad4-4358-aaad-767a76e43e70-0_0-14-12_20241025153558259.parquet
# ├── .00000000-dad4-4358-aaad-767a76e43e70-0_0-14-12_20241025153558259.parquet.crc
# ├── .00000000-dad4-4358-aaad-767a76e43e70-0_20241025153606721.log.1_0-30-28
# ├── ..00000000-dad4-4358-aaad-767a76e43e70-0_20241025153606721.log.1_0-30-28.crc

@geserdugarov
Did you checked hoodie.properties inside write-COW-get-MOR ?
DId you got a chance to try with latest master?

@geserdugarov I tried your code with the current master but can't see any issue. Can you please try once and confirm please. Thanks a lot.
Code
create table mor_as_cow (
           id int,
           dt int
         ) using hudi
          tblproperties (
          primaryKey = 'id',
          type = 'cow',
          preCombineField = 'dt',
          hoodie.index.type = 'BUCKET',
          hoodie.index.bucket.engine = 'SIMPLE',
          hoodie.bucket.index.num.buckets = '2',
          hoodie.datasource.write.row.writer.enable = 'false',
          hoodie.datasource.write.operation = 'bulk_insert')
          location '/tmp/mot_as_cow';

insert into mor_as_cow values (5, 10);

insert into mor_as_cow values (9, 30);

@geserdugarov I also tried building the code using the commit you mentioned, https://github.com/apache/hudi/commit/66597e5080d8ecd071f79473a27117f19f2e793b but still see the expected correct behavior.

@ad1happy2go , I will recheck on current master.
But I see, that you set
hoodie.datasource.write.operation = 'bulk_insert'
in table properties. But this config shouldn't store in table properties, and related only to writer. You can set current writer property by
SET hoodie.datasource.write.operation=bulk_insert

Issue is reproduced on 3d81ea0a313bba1902065de87de4ee2be38538e3:
tree -a
.
├── 00000000-6344-45e3-abbb-b78fd08cfc12-0_0-13-11_20241106134327326.parquet
├── .00000000-6344-45e3-abbb-b78fd08cfc12-0_0-13-11_20241106134327326.parquet.crc
├── .00000000-6344-45e3-abbb-b78fd08cfc12-0_20241106134336247.log.1_0-29-27
├── ..00000000-6344-45e3-abbb-b78fd08cfc12-0_20241106134336247.log.1_0-29-27.crc
├── .hoodie

Hoodie table properties:
cat ./.hoodie/hoodie.properties
#Updated at 2024-11-06T06:43:32.140Z
#Wed Nov 06 13:43:32 NOVT 2024
hoodie.table.precombine.field=dt
hoodie.table.version=8
hoodie.database.name=default
hoodie.table.initial.version=8
hoodie.datasource.write.hive_style_partitioning=true
hoodie.table.metadata.partitions.inflight=
hoodie.table.checksum=2880991016
hoodie.table.keygenerator.type=NON_PARTITION
hoodie.table.create.schema={"type"\:"record","name"\:"cow_or_mor_record","namespace"\:"hoodie.cow_or_mor","fields"\:[{"name"\:"id","type"\:["int","null"]},{"name"\:"dt","type"\:["int","null"]}]}
hoodie.archivelog.folder=archived
hoodie.table.name=cow_or_mor
hoodie.record.merge.strategy.id=eeb8d96f-b1e4-49fd-bbf8-28ac514178e5
hoodie.compaction.payload.class=org.apache.hudi.common.model.DefaultHoodieRecordPayload
hoodie.table.type=COPY_ON_WRITE                                              <-- COW
hoodie.datasource.write.partitionpath.urlencode=false
hoodie.datasource.write.drop.partition.columns=false
hoodie.table.metadata.partitions=files
hoodie.timeline.layout.version=1
hoodie.record.merge.mode=EVENT_TIME_ORDERING
hoodie.table.recordkey.fields=id

@geserdugarov Thanks a lot. Thats a good catch. I am able to reproduce this issue with above code.

@geserdugarov I have also confirmed the same behaviour with Hudi 0.15.X and spark master. It only happens for bucket index, so thinking if this is expected.
@danny0405 Are you aware of this by any chance?

bulk_insert is designed for executed with bootstrap purpose, because the whole pipeline just ignore any updates and do a one-shot write of parquets. If you do another bulk_insert based on the first one, it will be seen as an update and trigger log file write.

Bulk_insert should only be executed once IMO, for second update, you should use upsert operation instead.

Then using this logic, I propose fix as https://github.com/apache/hudi/pull/12245. Need to wait CI results to be sure that it doesn't brake other specific cases.


Correct incomplete helix-scripts uploads

we build new helix-installer and helix-scripts wheels in every dotnet-helix-machines-ci build. this means we always have a new ScriptVersion for every rollout. unfortunately, our on-premise machines sometimes fall behind. this happened in #377 and is again today.
see output from
HeartbeatExport
| where LastHeartbeat > ago(1hour)
| where Queue has "perf" or Queue has "osx" or Queue has "iot" or Queue has "s390x" or Queue has "ppc64le" or Queue has "android" or Queue has "cet"
| summarize arg_max(LastHeartbeat, *) by Queue
| where ScriptVersion == "20230801.9"

that returns the full list of existing on-premise queues. inverting the last line (to ScriptVersion != "20230801.9) shows only ubuntu.1804.amd64.android.open.svc. that shows up b/c it matches "android" but is actually a queue of VMs. inverting the second where (to not (Queue has ...)) shows only the unmonitored Win7 queues
root cause this time appears to be !32895. the new continue at line 380 in Program.cs is correct only for VMs. should not continue if it's an on-premise queue

Release Note Category

[x] Feature changes/additions
[x] Bug fixes
[ ] Internal Infrastructure Improvements

Release Note Description
Corrected a deployment code bug in order to resume Python script updates for on-premise machines. we unfortunately temporarily stopped deploying the correct files after the 2 August rollout.

Fix has rolled out and all machines that are heart-beating and past Initializing have ScriptVersion=="20231004.5".


ERD diagram

Description
Hello and thank you for the tool!
The problem:

I created an ERD diagram and rearranged all the boxes so that they are visually clearly sorted with little crossing lines.
With what I learned I adjusted the database model slightly (Django) and migrated the database.
Next I want the modifications to appear in the diagram.
refresh does nothing
refreshing the database does add the modifications to the table tree on the right
I can drag and drop the new and changed tables to the ERD
However the existing and layouted Elements do not connect to the modified foreign keys.
So where there was on initial import a line automagically generated there is none generated to the key now. Only if I drag in all again the lines are generated within the new boxes but that means I have to rearrange everything again.
I created a screenshot: The boxes with colored headers are the existing and layouted ones the black ones are added/updated. As you can see the lines (importer_mitgliedimportline -> mitgliederverwaltung_mitglied) do not connect even though the foreign key is still there:

DBeaver Version
CE 22.2.1
Operating System
Linux
Database and driver
sqlite
Steps to reproduce
No response
Additional context
No response

@enaut Hello. What type of diagram do you have? Is it a custom diagram created in the project or the diagram tab for an object opened from the navigator?
For custom diagrams the changes are all manual, they are made by the user and changed by the user. For the diagram of the objects you may try disabling Keep Layout button before the refresh.

Let me know if that helped

But disabling keep layout does require me to rearrange everything afterwards isn't it?
I think the ERD file was initially in the diagram tab, but then saved and loaded again. So I guess that means it is now a custom Diagram?

@enaut Yes, disabling keep layout does refresh the diagram and rearrange it from scratch.
THe custom diagram is the one that is located in the Diagrams folder of the project and actually has different functionality than a diagram that can be opened for most of the database objects.

I am assuming your diagram is in this issue is the one that is opened for the database in object ER Diagram tab like this

Am I correct?

Thank you! I guess the tool just doesn't work as I expected.


:recycle: refactor(key_signature): declare static empty constant

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 2 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
816

Relevant Lines:
816

💛  - Coveralls


Added DeleteBlob operations with integration and unit tests

Pressed Ctrl+K, Ctrl+D (oops, lots of whitspace gone... makes this PR look bad)
Added DeleteBlob and DeleteBlobAsync
Added Delete unit tests
Added Delete integration tests

DeleteBlobResponse: You appear to have some unnecessary copy+paste leftovers. I don't see Metadata or body content mentioned in the API page for DeleteBlob, so unless I misread the ogic to handle those aren't necessary for DeleteBlob
Unit Tests: There are some conventions in place for the unit tests that I suppose I should document clearly somewhere.

All (most) of the tests are written using a 3-part naming pattern: FunctionUnderTest_Scenario_Expectation
This communicates exactly what is broken when a unit tests fails and you just see it in a build list and makes it easy to scan through the list of collapsed tests to find one that you remember the intent for but not the details. It also forces you to define your intent clearly, which may result in you changing what you test.

AAA Pattern
All of the tests are written using the AAA pattern and I attempted to space them all out to make it clear what belonged to the seperate Arrange, Act, and Assert stages. When a test was too long or needed extra whitespace tat would not make this obvious, I added comments above each section. When you're coming in to update a test, you're often looking for the Arrange section nd it's easy to find. When you're troubleshooting a broken test, you often start at Assert, then look at Act, then look at Arrange.

BlobServiceClientTests - DeleteBlob_ExistingBlob and DeleteBlobAsync_ExistingBlob

Naming for the two tests per 1
Format for the tests per 2
The pre-exists check is basically testing our setup code and/or the MS Azure SDK and the already tested GetBlob method, so I would remove it (they can test that on their own and we have plenty on GteBlob already). If this shared logic failed, we have numerous other tests that would fail and paint a pretty clear picture of what was wrong. If we wanted to keep this assertion, we would split this into two tests, one having the intent to test the setup code and one having the intent to test the DeleteBlobRequest
In tests, try to only use the BasicAzureStorageSDK functions as the function under test and do any setup or assertions using the MS Azure SDK. This reduces the risk of introducing an error (likely through copy and paste in multiple modules) that all of the functions do equally wrong but appear to be doing right in the test. It also means that if we break the GetBlob function, only the GetBlob tests will fail (and the DeleteBlob will continue working). This means it is clear when tests fail for multiple functions under tests that we have done something lower-level that affects multiple operatoins, versus all the tests failing for a single function (like GetBlob) which indicates it is likely somethign specific to just that one function.
In the other tests, I refactored down common checks like AssertBlobExists into a function so the intent would be clear in the tests and the implementation would be common across any other tests that needed it. When you glance at the tail end of one of those tests, it's a single line and clear what the intent is. You've copied the same 10 lines of logic to verify the blob has been deleted into both tests. It would be cleaner to move this to a separate function. There is an AssertContainerExists, AssertContainerDoesNotExist, and AssertBlobExists, the pattern should be pretty clear to create a AssertBlobDoesNotExist

Oh wow. Lots to do. I'll have it cleaned up in a jiffy.
Sent from my Windows Phone

From: Eli<EMAIL_ADDRESS>Sent: 8/17/2015 10:19 AM
To<EMAIL_ADDRESS>Cc: Brian<EMAIL_ADDRESS>Subject: Re: [BasicAzureStorageSDK] Added DeleteBlob operations with integration and unit tests (#5)
DeleteBlobResponse: You appear to have some unnecessary copy+paste leftovers. I don't see Metadata or body content mentioned in the API page for DeleteBlob, so unless I misread the ogic to handle those aren't necessary for DeleteBlob
Unit Tests: There are some conventions in place for the unit tests that I suppose I should document clearly somewhere.

All (most) of the tests are written using a 3-part naming pattern: FunctionUnderTest_Scenario_Expectation
This communicates exactly what is broken when a unit tests fails and you just see it in a build list and makes it easy to scan through the list of collapsed tests to find one that you remember the intent for but not the details. It also forces you to define your intent clearly, which may result in you changing what you test.

AAA Pattern
All of the tests are written using the AAA pattern and I attempted to space them all out to make it clear what belonged to the seperate Arrange, Act, and Assert stages. When a test was too long or needed extra whitespace tat would not make this obvious, I added comments above each section. When you're coming in to update a test, you're often looking for the Arrange section nd it's easy to find. When you're troubleshooting a broken test, you often start at Assert, then look at Act, then look at Arrange.

BlobServiceClientTests - DeleteBlob_ExistingBlob and DeleteBlobAsync_ExistingBlob

Naming for the two tests per 1
Format for the tests per 2
The pre-exists check is basically testing our setup code and/or the MS Azure SDK and the already tested GetBlob method, so I would remove it (they can test that on their own and we have plenty on GteBlob already). If this shared logic failed, we have numerous other tests that would fail and paint a pretty clear picture of what was wrong. If we wanted to keep this assertion, we would split this into two tests, one having the intent to test the setup code and one having the intent to test the DeleteBlobRequest
In tests, try to only use the BasicAzureStorageSDK functions as the function under test and do any setup or assertions using the MS Azure SDK. This reduces the risk of introducing an error (likely through copy and paste in multiple modules) that all of the functions do equally wrong but appear to be doing right in the test. It also means that if we break the GetBlob function, only the GetBlob tests will fail (and the DeleteBlob will continue working). This means it is clear when tests fail for multiple functions under tests that we have done something lower-level that affects multiple operatoins, versus all the tests failing for a single function (like GetBlob) which indicates it is likely somethign specific to just that one function.
In the other tests, I refactored down common checks like AssertBlobExists into a function so the intent would be clear in the tests and the implementation would be common across any other tests that needed it. When you glance at the tail end of one of those tests, it's a single line and clear what the intent is. You've copied the same 10 lines of logic to verify the blob has been deleted into both tests. It would be cleaner to move this to a separate function. There is an AssertContainerExists, AssertContainerDoesNotExist, and AssertBlobExists, the pattern should be pretty clear to create a AssertBlobDoesNotExist

Reply to this email directly or view it on GitHub:
https://github.com/tarwn/BasicAzureStorageSDK/pull/5#issuecomment-131834756

Updated per comments


Snapshot tests

#2184
Added snapshot tests (todomvc and tree-view examples).
https://github.com/reactjs/redux/issues/2184#issuecomment-271313696

I don't think replacing tests with snapshots is good. They should be in addition to manual tests.

Hm... I thought it was means replacing, not adding.

Try to find some tests that are checking output and change them to snapshot tests.

Ok, i can just add this tests.
Also, i got some troubles. Why this happens?
- Snapshot
+ Received

- onChange={[Function mockConstructor]}
+ onChange={[Function anonymous]}

I think the CI build failures are because of the difference between these in ES5, but them being the same in ES6:
var f = function() {};
var f = function f() {}

I'm not sure why babel-jest isn't fixing this.

@brigand Now it's ok?

@Hemko looks good to me, but I'm not an authority on this repo.
For older node versions, what about just disabling snapshots on them? Since there are other tests, it's not a big deal.

@brigand
Can you suggest the correct way to disabling snapshots for older node version?
I tried this way:
     if (nodeMajorVersion > 5) {         expect(output).toMatchSnapshot()       }
But i got the next result:

16 obsolete snapshots -> snapshot failure

@Hemko apparently this is supposed to be fixed already. Try `yarn add<EMAIL_ADDRESS>I have that version at work and it works correctly. 18.1.0 is currently installed here according to yarn.lock.
For now, we could create a helper that recursively iterates over the output and replace each function with function f(){}.

@brigand
What did you mean under helper?
Function which will change the render output?

@Hemko on second thought, filtering out the function props would be a pretty crazy solution. By helper I just meant a function that the tests could use to augment the output.

@brigand I don't know how to do that. Can you show some examples?

Perhaps someone knows how to fix this problem?
Additional Information:
https://github.com/facebook/jest/issues/1681


:safety_vest: fix(config): Throw an error if an unknown property is passed to config

Descri
Description
Throw a warning and fix for user if they pass in a deprecated property
Testing
Explain the quality checks that have been done on the code changes
Additional Information

[ ] I read the contributing docs (if this is your first contribution)

Your ENS/address:

Current dependencies on/for this PR:

main

PR #318

PR #319

PR #320

PR #321

PR #322

PR #323   👈

This comment was auto-generated by Graphite.

Current dependencies on/for this PR:

main

PR #318

PR #319

PR #320

PR #321

PR #322

PR #323   👈

This comment was auto-generated by Graphite.


Create template for a RenkuLab specific custom resource object definition

The custom resource objects will need some git-related add-ons which are currently in the init-container and the git-https-proxy components. The goal of this issue is to have a method which takes a UserServer object and executes a call to the custom api to create that object.

This is a duplicate of #624.


Add numerical inverse Laplace transform functionallity

This branch implements three common numerical inverse Laplace transform algorithms (Talbot, Stehfest, and de Hoog, Knight & Stokes). The default algorithm is de Hoog. Algorithms have been "tuned" based on testing a suite of typical functions with known inverses (Table 9.4 of Cohen, 2007).
Doctests and main tests pass.

There is a small markup bug in the docstring for invertlaplace: the double colon on line 546 should be a single colon for the following equation to render correctly.
This looks good, and I'll be happy to merge it. Feel free to add a credit line for yourself in the source file and/or the documentation page.


Option to send support requests to Zendesk instead of Agent View

FEATURE OVERVIEW
User Story
As a Member Support staffer, I want to receive and respond to Gambit support requests using Zendesk instead of Agent View.
Current Implementation
When a member texts the Member Support Command ("Q"), they are opted into the Chatbot Agent View Opt-in Path. All incoming messages from the User are placed into the Agent View queue.  If the User wants to continue their Gambit Campaign conversation, they must text back the Signup Keyword.
TODO

[ ] When a member texts Member Support Command, their message is posted to the Zendesk API as a new ticket.

[ ] After the member sends their support question, Gambit responds with a new member_support_confirmation message, informing the User their message will be answered by a DoSomething staffer from a different phone number (e.g. "Thanks for the question, we've created a support ticket and we'll try to text back an answer within 24 hrs. Text BOOKBOT to continue Two Books, or QUESTION if you need to add more info to your ticket.")

All subsequent incoming messages are answered by Gambit: If the user didn't send a valid Start or Member Support command, Gambit will reply with the a "Sorry, I didn't get that" + the Member Support Confirmation message

[ ] We need the ability to switch this feature off completely via config variable, to return sending support requests to Agent View

[ ] BONUS Filtering: If the support ticket contains any explicit language, don't create the ticket but respond a prompt to reword their question appropriately (#895)

cc @jamjensen @justkika @classicfreddie

This looks great! I think the pre-work we'll want to have set up on the Zendesk side is having macros to answer common questions as well as the ticket tagging so that we can autofilter the SMS messages to one zendesk account.

Also, context that might be helpful is where this member is messaging from: broadcast, reminder message, etc. Is that something we have the ability to do for an MVP?

In exploring Zendesk Text, I found I was able to send replies to a Zendesk ticket via text when the ticket was created via my texting the our Zendesk number directly. Within Zendesk, I was not able to send a text response to a ticket created via Zendesk API (Gambit), the replies from Zendesk would only be sent over email.
I submitted a Zendesk support ticket for guidance, here's their response:

I reached out to our Talk/Text team and they said there was no API setup that would allow you to create the ticket via app API and then switch the channel over to text.  However, they recommended modifying the trigger found in Sending proactive outbound texts: Recipes and tips to allow you to send a response via SMS.  If the requester responds, it would create a new ticket instead of appending to the original but at least you would be able to send that first response via SMS.

I'll look into this approach and document its pros and cons in our SMS Spec.

More details from a Zendesk support rep below. I'm leaning towards jumping ship on using Zendesk Text for now as it seems workarounds rely on triggers that would open at least 2 Zendesk tickets per support request (when ideally we just want the single ticket)

This issue we are running into here is that since this is not a supported workflow we are trying to cobble together a workaround.  I think you could set something up that replicates what you are looking to do but it's going to be a little messy.

Without setting up the workflow and testing I can't be sure, but I believe what you would need to do is create a trigger similar to "Send automated text responses". You will need to incorporate a unique tag as a condition.  This tag will need to be added during ticket creation for these tickets.  The trigger would then fire to send the automated response to the requester via SMS but this is only a one way message.  If the requester responds to that text, a new ticket will be created and will not have any connection to the previous one other than it being from the same requester.

This leaves you in an awkward position because if you want to send an SMS response, you'll need to use the "Start a text conversation with proactive outbound texts" trigger and modify to apply to the open ticket.  But there again, if the requester responds, it will create a new ticket.  So for this workflow, you'll be dealing with a minimum of two separate tickets for each request submitted this way.

Sadly, this is a function of the Text channel being in its infancy and is currently only designed to create tickets from inbound texts.  Expanding this functionality is in development but I do not have have a timeline as to when it will be available. :-/

I hope this helps clarify the situation.  Feel free to reach out if you have any other questions.
Have a great weekend!

@hbghidey and I chatted through a way we could implement this today, following the steps described in "Send automated responses":

When a member texts the Member Support Command, create a Zendesk ticket tagged with something like gambit_member_support
Set up a trigger to send an automated response, send us your question and we'll get back to you asap. This message is sent from a long code (not our shortcode)
When member submits their question by responding to the message sent from long code, a new Zendesk ticket is created, allowing an agent to respond over text (over the long code)

@hbghidey suggested we create a separate Zendesk instance to avoid interfering with our current workflow for email tickets.

Here's example copy of what the start of the Zendesk conversation could look like:

Member texts Q (member support command) to 38383
Zendesk sends the first message from our longcode.
Member responds with their question via text
We see their question as a new ticket in Zendesk, respond through Zendesk which gets delivered back as SMS (Puppet Sloth responded to this ticket in particular):

Refs #915, https://www.pivotaltracker.com/n/projects/1979505/stories/145639137


你的应用版本过低，请升级至最新版本后再登录。点击“确定”后将跳转至 最新版下载页面，依赖都是最新版的这个怎么解决呢

Important：Please file the issue follow the template, or we won't be able to help you to solve the problem.

0. Report Issue Guide

Please run the following command and check whether the problem has been fixed：
rm -rf package-lock.json
rm -rf node_modules
npm install

Please search in FAQ List first, and make sure your problem has not been solved before.

Please search in the issue first, and make sure your problem had not been reported before

1. Versions

What is your wechaty version?

Answer:

Which puppet are you using for wechaty? (puppeteer/padlocal/service...)

Answer:

What is your wechaty-puppet-XXX（padchat/puppeteer/） version?

Answer:

What is your node version? (run node --version)

Answer:

What os are you using

Answer:
2. Describe the bug

Give a clear and concise description of what the bug is.

3. To Reproduce

This part is very important: if you can not provide any reproduce steps, then the problem will be very hard to be recognized.

How to create a Minimal, Reproducible Example
Steps to reproduce the behavior:

run '...'
...
...

4. Expected behavior

Give a clear and concise description of what you expected to happen.

5. Actual behavior

If applicable, add screenshots to help explain your problem. But the log message must be in plain text instead of screenshot.

6. Full Output Logs

Set env WECHATY_LOG=silly in order to set log level to silly, then we can get the full log (If you dosen't set log env, log level is info as default, we cannot get the full log)

We need full log instead of log screenshot or log fragments!

Show Logs

$ WECHATY_LOG=silly node yourbot.js

-> Make sure to copy/paste the full (instead of only fragments) log message in text format (instead of image/screenshot) at here

7. Additional context

Add any other context about the problem here.

Close this issue due to not following the template: no detail information was provided.


Docker - new module to create a swam environment.

Proposal:
Add new module to create/update a docker swarm
Author: Thierry Bouvet <@tbouvet> IRC: handle (if different)
Date: 2018/05/14

Status: New
Proposal type: (core design, process, ?) docker
Targeted Release: 2.6
Associated PR: https://github.com/ansible/ansible/pull/38280
Estimated time to implement: 0 days (it's done by the PR)

Motivation
The reason is to have an idempotent module to create/update a swarm environment for docker.
Problems
What problems exist that this proposal will solve?
The only solution to create/update a swarm is to do "by hand". That's mean, you can only use shell/command module. So it's not idempotent.
Solution proposal
See https://github.com/ansible/ansible/pull/38280
Dependencies (optional)
docker-api
Testing (optional)
An integration test is done.
Documentation (optional)
documentation is done.
Anything else?
If you'd like to add anything else beyond the above required and optional sections, you are welcome to do so.

I don't think you need to follow the proposal process for creating modules. You can just create a PR with the module, docs and tests, then find someone doing the review and eventually merge.

Thank you for your answer. I have done the PR with docs and tests and I'm waiting for someone to do the review. Do you know how to contact someone to do the review ?

Asking on IRC #ansible-devel usually does the trick, in your case asking the same people that already reviewed helps too. In some cases you can look for authors or contributors to other modules in the same technology-domain (i.e. Docker).
Forming a Docker-related team could be useful to manage Docker-related modules and provide support. And you can cross-review contributions and merge them.
If you really are stuck and nobody is there to help, you can raise it to the Public Ansible meeting agenda as a last resort.

Done : https://github.com/ansible/ansible/pull/38280


broken build with g++ 10.2.1 on Linux

I can't build index_set-optimization on Linux, either:
bbb@tock:/local/bbb/project/SAG/np-schedulability-analysis/build [9740] cmake ..
-- The CXX compiler identification is GNU 10.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
yaml-cpp found
-- Configuring done (0.7s)
-- Generating done (0.0s)
-- Build files have been written to: /local/bbb/project/SAG/np-schedulability-analysis/build
bbb@tock:/local/bbb/project/SAG/np-schedulability-analysis/build [9719] make -j
[  7%] Building CXX object CMakeFiles/runtests.dir/src/tests/basic.cpp.o
[ 15%] Building CXX object CMakeFiles/nptest.dir/src/nptest.cpp.o
[ 23%] Building CXX object CMakeFiles/runtests.dir/src/tests/fig1.cpp.o
[ 38%] Building CXX object CMakeFiles/nptest.dir/lib/src/OptionParser.cpp.o
[ 38%] Building CXX object CMakeFiles/runtests.dir/src/tests/fig1_dense.cpp.o
[ 46%] Building CXX object CMakeFiles/runtests.dir/src/tests/fig1_prec.cpp.o
[ 53%] Building CXX object CMakeFiles/runtests.dir/src/tests/global.cpp.o
[ 61%] Building CXX object CMakeFiles/runtests.dir/src/tests/global_prec.cpp.o
[ 69%] Building CXX object CMakeFiles/runtests.dir/src/tests/io.cpp.o
[ 76%] Building CXX object CMakeFiles/runtests.dir/src/tests/self_suspending_tasks.cpp.o
[ 84%] Building CXX object CMakeFiles/runtests.dir/src/tests/state_space.cpp.o
/local/bbb/project/SAG/np-schedulability-analysis/src/nptest.cpp: In function ‘int main(int, char**)’:
/local/bbb/project/SAG/np-schedulability-analysis/src/nptest.cpp:367:72: error: call of overloaded ‘basic_string(optparse::Value)’ is ambiguous
  367 |  const std::string& time_model = (std::string) options.get("time_model");
      |                                                                        ^
In file included from /usr/include/c++/10/string:55,
                 from /usr/include/c++/10/bits/locale_classes.h:40,
                 from /usr/include/c++/10/bits/ios_base.h:41,
                 from /usr/include/c++/10/ios:42,
                 from /usr/include/c++/10/ostream:38,
                 from /usr/include/c++/10/iostream:39,
                 from /local/bbb/project/SAG/np-schedulability-analysis/src/nptest.cpp:1:
/usr/include/c++/10/bits/basic_string.h:525:7: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
  525 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:448:7: note: candidate: ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
  448 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
make[2]: *** [CMakeFiles/nptest.dir/build.make:76: CMakeFiles/nptest.dir/src/nptest.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:111: CMakeFiles/nptest.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 92%] Linking CXX executable runtests
[ 92%] Built target runtests
make: *** [Makefile:91: all] Error 2

CC: @gnelissen @porya-gohary

Interesting.
I think to remember I had added the type cast because the code didn't work properly with MSVC otherwise.
I'll have to double check that.


[Feature] Simplified Text Format support from Placeholder API (colored text & decorations)

Since there's already support for placeholders in Placeholder API, I think it would also be pretty neat if there was also an implementation of the Simplified Text Format. That way we can have custom gradients, colors, and placeholders to customize the MOTD and Player list with!

Sounds like a good feature. I will take a look at it after my exam period.


Support remote server being treated like a 'local' server when on same machine as VS code extension host

Current Working Directory is not the current notebook directory.
This goes against default behaviour in jupyter notebook and jupyter lab.
Can this be fixed? If not, how can I automate setting the current work directory to the file location? Is there some environment variable that is set to the current notebook file that I can read in a setup cell?
Environment data

VS Code version: 1.61.1
Jupyter Extension version (available under the Extensions sidebar): v2021.9.1101343141
Python Extension version (available under the Extensions sidebar): v2021.10.1336267007
OS (Windows | Mac | Linux distro) and version: Windows 21H1
Python and/or Anaconda version: 3.9
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): conda
Jupyter server running: Remote

Expected behaviour
from pathlib import Path; Path.cwd() returns the directory where the current notebook is.
Actual behaviour
The directory where the jupyter remote server was started is returned.
Steps to reproduce:

Externally, start jupyter server at ~
Create folder at ~/a
Create folder at ~/a/b
With vscode remote ssh, open ~/a.
Run vscode command to create notebook at ~/a/b/c.ipynb
In the notebook, run from pathlib import Path; Path.cwd()

Thanks for the bug. We don't currently control the path where you start the remote server. A kernel from the remote server will default to that path when starting.
You can either:

Start the jupyter server at a different location
Change the directory in a cell
Not use a remote server (remote ssh is supported by the jupyter extension). If you just use 'Default' on this picker here:

VS code will start the 'remote' server on the box itself. It will then use this setting when starting the kernel:

Which should default to the same directory as the notebook.

In the remote server case where you're using remote ssh, the fact that your remote server and VS code are running on the same machine is a coincidence. Normally when connecting to a remote server, the machine is not in the same place as your code.
We don't know the directory structure of the remote machine for remote servers so we can't force the ${fileDirname} on the kernel when launching. The ${fileDirname} is for the 'local' machine.
That's why I recommend you just let us create the jupyter server. Then we know the kernel is on the same machine that the VS code extension host is running at.

This is the hard part:

then set the cwd to the relative path from the server to the notebook

What's the path that the server started at? We could potentially get cwd from the active jupyter server by querying the process itself, but then we'd have to figure out which process is the jupyter server. Potentially we could start a dummy kernel though and have it output the cwd for us to read. But then we'd have to also make sure the machine is the same.
But since you have VS code on the same machine, there's no need to run the server yourself. You can just have us start it.
I don't think we'd do the extra work to make remote servers behave like local servers when they are on the same machine as the VS code server.
Is there a reason you want the remote server there? Maybe sharing with other people that don't use VS code?

FWIW, perhaps the "real" fix here is to figure out ways to address / mitigate the substantial pain-points of using the "local" jupyter server, succinctly noted above by @lasergyro -- which keep coming up in various guises (e.g. #1378, #1654). It's ultimately these issues that cause folks like me and @lasergyro to turn to the "remote" server option even locally on the same machine vscode is running on (or that the remote-ssh extension is running on).

is there a reason you want the remote server there? Maybe sharing with other people that don't use VS code?

for me there is just one reason:
remote sessions won't be closed when i close vscode
a job lasting for days is common for me, I can't keep my laptop connected to the server for like a few days

I'm closing this issue as there haven't been enough upvotes to warrant this feature requets.
Today remote servers are treated as completely remote, and trying to make it work like it was a local maching but using remotes would require a lot of changes with if conditions complicating the code.


enum constraint error

Current Behaviour (for problems)
Using a enum constraint of TMR Districts
"Central West", "Darling Downs", "Far North Queensland", "Fitzroy", "Mackay/Whitsunday", "Metropolitan", "North Coast", "North West", "North Queensland", "South Coast", "South West", "Wide Bay/Burnett"

I get an field.castValue is not a function error

Expected Behaviour
District column is validated against enum constraint
Your Environment

Include details about the environment you experienced the problem - this will help us fix the bug quicker.

Data Curator version: 0.9.0
Operating System and version: e.g. macOS High Sierra 10.13.3

Reported on https://github.com/frictionlessdata/tableschema-js/issues/117

Using v.0.11.0 and entering data, I got

Fixed in v.0.12.0


Does not seem to work on Windows

I'm running windows 11 and this does not seem to work for me. I had success with dotnet and dart test plugins using neotest. So I know basic features of neotest are working.
However, there seems to be trouble getting anything to run. Test detection works great, but running the tests and getting output does not work.
I'm running trying to run it for my neovim plugins. I've created a simple simple project to try out this plugin. I'm including those files here for reference.
There is just a single test with these contents
describe("My test test group --", function()
	it("should work", function()
		assert.are.same(1, 1)
	end)
end)

Which should work every time.
Running this command to test from the terminal works for me
 Starting...Scheduling: .\lua\tests\test_spec.lua

  ========================================
  Testing:        D:/Programming/neovim/test_neotest_with_plenary_runner/lua/tests/test_spec.lua
  Success ||      My test test group -- should work

  Success:        1
  Failed :        0
  Errors :        0
  ========================================

     Date      Time    Attr         Size   Compressed  Name
  ------------------- ----- ------------ ------------  ------------------------
  2024-03-27 08:57:41 D....            0            0  test_neotest_with_plenary_runner
  2024-03-27 21:33:14 D....            0            0  test_neotest_with_plenary_runner\lua
  2024-03-27 21:33:14 ....A           23           23  test_neotest_with_plenary_runner\lua\minimal_init.lua
  2024-03-27 08:59:18 D....            0            0  test_neotest_with_plenary_runner\lua\myplugin
  2024-03-27 08:59:18 ....A           40           40  test_neotest_with_plenary_runner\lua\myplugin\init.lua
  2024-03-27 09:00:24 D....            0            0  test_neotest_with_plenary_runner\lua\tests
  2024-03-27 09:00:24 ....A          115           91  test_neotest_with_plenary_runner\lua\tests\test_spec.lua
  ------------------- ----- ------------ ------------  ------------------------
  2024-03-27 21:33:14                178          154  3 files, 4 folders

Here is an image of the test tree which just shows spinning loading bars forever

I've already started diving into the code and will create a pull request to help compare my work and get more suggestions.
I've found problems with getting the init.lua path and also trying to generate the new path to the run_tests.lua script.
But, even after these fixes I'm still stuck! What could be wrong? I'm not sure where to start debugging next.

Unfortunately even after the recent updates this still does not work on my Windows setup.
I have no problems using my arch Linux computer setup.
The problems I'm seeing with Windows is the same as before - the tests are discovered but once you try to run any of them the cool backslash + forward slash spinner just goes and goes forever.
I'm running neovim version 0.10.2 and Lazy plugin manager shows I have  commit 3523adc checked out from the master branch for this plugin.
Here is another screenshot

Running the command :PlenaryBustedFile % works fine and produces this output
Scheduling: C:/Users/dlomax/AdventOfCode\2024/lua/day_1_spec.lua

========================================
Testing:        C:/Users/dlomax/AdventOfCode/2024/lua/day_1_spec.lua
Home directory is: C:\Users\dlomax
Success ||      2024 day 1 Make sure test rig works
Success ||      2024 day 1 Data file exists
Success ||      2024 day 1 Input helper can be sourced
Success ||      2024 day 1 Input helper returns a non-empty table
Success ||      2024 day 1 Day 1 can be sourced
Success ||      2024 day 1 Day 1 line 1 input matches
Success ||      2024 day 1 Processing input returns 2 tables
Success ||      2024 day 1 Processing input returns 2 sorted tables
Success ||      2024 day 1 Caluculate the distance array for simple example
Success ||      2024 day 1 Calculate the total distance for simple example
Success ||      2024 day 1 Day 1 part 1 solution
Success ||      Day 1 part 2 Example similarity score
Success ||      Day 1 part 2 Example total similarity score
Success ||      Day 1 part 2 Part 2 solution

Success:        14
Failed :        0
Errors :        0
========================================

And running from the command-line has similar results
  ✗ nvim --headless -c "PlenaryBustedDirectory ."
E576: Error while reading ShaDa file: last entry specified that it occupies 58 bytes, but file ended earlier
Starting...Scheduling: .\2024\lua\day_1_spec.lua

========================================
Testing:        C:/Users/dlomax/AdventOfCode/2024/lua/day_1_spec.lua
Home directory is: C:\Users\dlomax
Success ||      2024 day 1 Make sure test rig works
Success ||      2024 day 1 Data file exists
Success ||      2024 day 1 Input helper can be sourced
Success ||      2024 day 1 Input helper returns a non-empty table
Success ||      2024 day 1 Day 1 can be sourced
Success ||      2024 day 1 Day 1 line 1 input matches
Success ||      2024 day 1 Processing input returns 2 tables
Success ||      2024 day 1 Processing input returns 2 sorted tables
Success ||      2024 day 1 Caluculate the distance array for simple example
Success ||      2024 day 1 Calculate the total distance for simple example
Success ||      2024 day 1 Day 1 part 1 solution
Success ||      Day 1 part 2 Example similarity score
Success ||      Day 1 part 2 Example total similarity score
Success ||      Day 1 part 2 Part 2 solution

Success:        14
Failed :        0
Errors :        0
========================================

So something is still strange with the plugin.
I've already tried digging through the source without much success. I want to help resolve the problem but could use
some suggestions on where to to get started.
For example, I'm guessing there is logging some where because of the configuration value for log level, however I can't find where these logs would be.
Here is my entire configuration for reference
    {
        'nvim-neotest/neotest',
        enabled = true,
        -- stylua: ignore start
        keys = {
            { "<leader>tt", function() require("neotest").run.run(vim.fn.expand("%")) end,                      desc = "Run File" },
            { "<leader>tT", function() require("neotest").run.run(vim.uv.cwd()) end,                            desc = "Run All Test Files" },
            { "<leader>tr", function() require("neotest").run.run() end,                                        desc = "Run Nearest" },
            { "<leader>tl", function() require("neotest").run.run_last() end,                                   desc = "Run Last" },
            { "<leader>ts", function() require("neotest").summary.toggle() end,                                 desc = "Toggle Summary" },
            { "<leader>to", function() require("neotest").output.open({ enter = true, auto_close = true }) end, desc = "Show Output" },
            { "<leader>tO", function() require("neotest").output_panel.toggle() end,                            desc = "Toggle Output Panel" },
            { "<leader>tS", function() require("neotest").run.stop() end,                                       desc = "Stop" },
            -- stylua: ignore end
        },
        dependencies = {
            -- Plugin requirements
            'nvim-neotest/nvim-nio',
            'nvim-lua/plenary.nvim',
            'nvim-treesitter/nvim-treesitter',
            'antoinemadec/FixCursorHold.nvim',

            -- Test runners
            {
                'nvim-neotest/neotest-plenary',
                -- Working on solving an issue with this plugin right now. It does not work on windows.
                -- dev = true,
            },
            'nvim-neotest/neotest-python',
            'vim-test/vim-test',
            'Issafalcon/neotest-dotnet',
            'sidlatau/neotest-dart',
        },

        log_level = vim.log.levels.TRACE,
        config = function()
            require('neotest').setup({
                adapters = {
                    require('neotest-plenary'),
                    require('neotest-dotnet'),
                    require('neotest-python'),
                    require('neotest-dart')({
                        command = 'flutter',
                        use_lsp = true,
                    }),
                },
            })

            vim.keymap.set('n', '<leader>tt', function()
                require('neotest').run.run()
            end, { silent = true, desc = 'Run neotest' })
        end,
    },


Fixed value type and applied small change in AnimationNodeOneShot

This is a small fix. It fixes the wrong code, but it has little effect on the behavior.

Thanks!


Decode tx

Also - lets go a little further in our decoding efforts.

There are some fields for which we know the format for sure and we don't need to display them as obscure hashes.
nonce, gasPrice, gasLimit should be displayed as ints.
value should be also int, but divided by 10^18.
Yes, it will require some more FE layout, but it will also make our FE test nicer as we will be able to assert specific fields with human readable names instead of json blob with hexes.

Let's do the above comment in the subsequent PR as if would contain significant part of the scope of another issue: https://linear.app/deth/issue/DET-105/tooltip-to-choose-value-display-format


Update xds protos for testing

@donnadionne yeah, you are right. Updated.

This was merged into https://github.com/grpc/grpc/pull/24643


DevOps Update

The URL for the APIs changes with the move from VSTS to Azure DevOps.
The url goes from being
https://{orgname}.visualstudio.com/_apis/...
to
https://dev.azure.com/{orgname}/_apis/...
Technically I guess the listed example URL "https://{organization}/_apis/notification/DiagnosticLogs/{event ID}/entries?startTime={date}&endTime={date}" cover that whole thing as {organisation}, but it foxed me for a minute so might be worth an update / clarification around URL pattern for Azure DevOps?

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

ID: e4db6b52-d81d-410a-6237-ce7371a0ceb8
Version Independent ID: 15af6008-ddfc-0c30-cc3e-1e6e027c67c1
Content: How to use subscription logging - Azure DevOps Services & TFS
Content Source: docs/notifications/howto-use-subscription-logging.md
Product: devops
GitHub Login: @chcomley
Microsoft Alias: chcomley

Thanks @mattquinn I've created a work item on my backlog to address this. Thanks again.


Issues with sql_query and Uuid

Setup
Versions

Rust: rustc 1.40.0-nightly (9e346646e 2019-11-08)
Diesel: 1.4.3
Database: PostgreSQL 11
Operating System macOS Mojave 10.14.5

Feature Flags

diesel: ["uuidv07", "chrono", "postgres", "serde_json"]

Problem Description
When using sql_query, I am unable to load a Uuid with the error:
|     .load(&conn.0)
|      ^^^^ the trait `diesel::deserialize::QueryableByName<diesel::pg::Pg>` is not implemented for `uuid::Uuid`

Here is my schema and model:
// schema.rs
table! {
    usr (id) {
        id -> Uuid,
        created_at -> Timestamptz,
        username -> Varchar,
        email -> Varchar,
        password_hash -> Varchar,
        profile_image_url -> Nullable<Varchar>,
    }
}

// models.rs
use chrono::prelude::*;
use serde::ser::{Serialize, SerializeStruct, Serializer};
use uuid::Uuid;

use crate::schema::*;

#[derive(Debug, Queryable, QueryableByName, Deserialize)]
#[table_name = "usr"]
pub struct User {
  #[sql_type = "Uuid"]
  pub id: Uuid,
  pub created_at: DateTime<Utc>,
  pub username: String,
  pub email: String,
  pub password_hash: String,
  pub profile_image_url: Option<String>,
}

impl Serialize for User {
  fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
  where
    S: Serializer,
  {
    let mut state = serializer.serialize_struct("User", 5)?;
    state.serialize_field("id", &self.id)?;
    state.serialize_field("created_at", &self.created_at)?;
    state.serialize_field("username", &self.username)?;
    state.serialize_field("email", &self.email)?;
    state.serialize_field("profile_image_url", &self.profile_image_url)?;
    state.end()
  }
}

Here is the broken diesel statement:
sql_query(include_str!("../sql/login.sql"))
    .bind(&identifier) // a String
    .bind(&password) // a String
    .load(&conn) // should return a `Uuid` object

But this one works fine:
let user = usr.find(id).first(&conn.0); // a `User` object

What are you trying to accomplish?
I am trying to call raw SQL to authenticate a user using pgcrypto:
SELECT id
FROM usr
WHERE ($1 IN (email, username))
      AND password_hash = crypt($2, password_hash);

What is the expected output?
The Uuid of the user being authenticated
What is the actual output?
An error.
Are you seeing any additional errors?
No.

That's expected behaviour. sql_query expects to return into a struct that implements QueryableByName because we need to know the field name there to resolve the result in a sane not error prone way.

Ok wonderful, I missed that in the docs but see it now; yet it still doesn't appear to work:
// models.rs
use uuid::Uuid;

#[derive(Debug, QueryableByName, Serialize, Deserialize)]
#[table_name = "usr"]
pub struct UserIdentifier(#[column_name = "id"] pub Uuid);

// foo.rs
sql_query(include_str!("../sql/login.sql"))
    .bind(&identifier) // a String
    .bind(&password) // a String
    .load::<UserIdentifier>(&conn)

What am I missing here? What documentation should I consult? Unless I'm missing something, I'd expect this to work based on the QueryableByName documentation

I think the problem is the way you are implementing QueryableByName. Using the table attribute assumes that all columns of that table are returned. I would assume that your table has more than one column. Try the other variant using #[sql_type] that is described in the docs.

I tried that as well, but still no luck:
#[derive(Debug, QueryableByName, Serialize, Deserialize)]
pub struct UserIdentifier(
    #[column_name = "id"]
    #[sql_type = "Uuid"]
    pub Uuid
);

Error is the same as before

Oh yes. The problem is not your return type but the type parameters for bind. I assume you just removed them from the example? They need to be .bind::<Text,_>(...).

That'll do it, I has .bind::<String, _> like a neanderthal 🤦♀
Thanks so much for your help and patience!

That'll do it, I had .bind::<String, _> like a neanderthal 🤦♀
Thanks so much for your help and patience!

I was also bitten by this (used String instead of Text). Thank goodness I was able to locate this issue ...


Fix null variables in QueryOptions causing exception in Operation constructor

As it says on the tin - that said, it might be worth doing this at a higher level (e.g. QueryOptions) to avoid having to special-case other places in the future. This change, along with https://github.com/zino-app/graphql-flutter/pull/210, makes an app that worked with the https://github.com/snowballdigital/flutter-graphql fork also work with the changes in the next branch.

:tada: This PR is included in version 1.0.0-beta.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Disable mark all as read text if notifications is empty

Instead of removing it every time the notification modal is opened it checks for the unread notifications. If it is empty, nothing happens when clicking on Mark all as read. @buckyroberts I wanted to test it locally but I am not sure what exactly triggers a notification.
Fixes #361

@hawyar the "Mark all as read" text is disabled when it shouldn't be. Also what is your account number? I can send you some points for development. If you create another account and send points between them it will trigger a notification.

Updated ticket to not use a state. Also @hawyar I made a minor CSS update, see rule: https://thenewboston.com/style-guide/css#sass-amp-bem

@angle943 the css looks cleaner thanks for the update. @buckyroberts my dev account number is 2349bd8417e5c2e6f8ec5b56882018f6007163fd29fddddcf3766e1d880e91ec


Feature/subscriptions

As discussed in https://github.com/sphereio/sphere-node-sdk/pull/159, I added tests and improved the subscription endpoint so it's ready for production use.
Fix https://github.com/sphereio/sphere-node-sdk/issues/219

[ ] commit messages are commitizen-friendly
[ ] code is unit tested
[ ] code is integration tested
[ ] public code is documented
[ ] code is reviewed by at least one person
[ ] code satisfies linter rules

Coverage increased (+0.02%) to 97.555% when pulling fe15e8c462273c187ded066fee6fa6e014cf64b4 on feature/subscriptions into 6be5d4c9744ced7082ba7c48121a262f35187af1 on master.

Also contributing.md should be updated that iron.io credentials is needed for the tests to work.
So anybody working on the project needs to provide that...

https://github.com/sphereio/sphere-node-sdk/pull/220/commits/7c0c38cd43ca74c449c76c2ea40485be5daa2b34

Coverage increased (+0.02%) to 97.555% when pulling 4f4d144bed312c5c8684377483ee2267a4ec3a33 on feature/subscriptions into 6be5d4c9744ced7082ba7c48121a262f35187af1 on master.

Coverage increased (+0.02%) to 97.555% when pulling eba94d9081d4ebc54edb2f194e6ce559e45432d1 on feature/subscriptions into 6be5d4c9744ced7082ba7c48121a262f35187af1 on master.

Hi @hisabimbola can you approve it now or is there sth still missing? Thanks.

I tried running on my machine, encountered a missing module.
Working on it now and also improving the config configuration

Coverage increased (+0.01%) to 97.554% when pulling 1662faa2043302d7db70b3893b07f29408cc7cbd on feature/subscriptions into 6be5d4c9744ced7082ba7c48121a262f35187af1 on master.

Coverage increased (+0.01%) to 97.554% when pulling 1662faa2043302d7db70b3893b07f29408cc7cbd on feature/subscriptions into 6be5d4c9744ced7082ba7c48121a262f35187af1 on master.


Update changelog, 4.x is not released yet

@thePanz what about a RC1 then? :blush: We are currently using dev-master :see_no_evil:

@dmaicher @norbert-n : v4.0.0-rc.1 has been tagged