Moving nodes between scopes

I was having this issue on master, and have just upgraded to develop and have the same behaviour.
I have a drag-and-drop front end to a nested menu system, with multiple menus (scopes) visible on the same page. The user can drag menu items from one menu to another.
We've been seeing some issues with items suddenly disappearing after dragging from menu to menu, and a look at the database shows that the depth is being incremented for unknown reasons.
I tried some testing on my own environment and I noticed pretty early that certain values aren't being updated in one situation. That situation is as follows:
I start with my default menu hierarchy (fresh from db:seed, this is stock and the numbers all look right). Two of the menus roots are empty (footer_left and sub).
+-----+--------------+-----------+------+------+-------+----------------------+
| id  | menu         | parent_id | lft  | rgt  | depth | name                 |
+-----+--------------+-----------+------+------+-------+----------------------+
| 561 | footer_left  |      NULL |    1 |    2 |     0 | NULL                 |
| 562 | footer_right |      NULL |    1 |   16 |     0 | NULL                 |
| 563 | footer_right |       562 |    2 |    3 |     1 | Food & Drink         |
| 564 | footer_right |       562 |    4 |    5 |     1 | Accommodations       |
| 565 | footer_right |       562 |    6 |    7 |     1 | Event Calendar       |
| 566 | footer_right |       562 |    8 |    9 |     1 | Things to Do         |
| 567 | footer_right |       562 |   10 |   11 |     1 | Travel Deals         |
| 568 | footer_right |       562 |   12 |   13 |     1 | Itineraries          |
| 569 | footer_right |       562 |   14 |   15 |     1 | Blog                 |
| 550 | main         |      NULL |    1 |   20 |     0 | NULL                 |
| 551 | main         |       550 |    2 |    9 |     1 | Festivals and Events |
| 552 | main         |       551 |    3 |    4 |     2 | Food & Drink         |
| 553 | main         |       551 |    5 |    6 |     2 | Accommodations       |
| 554 | main         |       551 |    7 |    8 |     2 | Event Calendar       |
| 555 | main         |       550 |   10 |   17 |     1 | Things to Do         |
| 556 | main         |       555 |   11 |   12 |     2 | Food & Drink         |
| 557 | main         |       555 |   13 |   14 |     2 | Accommodations       |
| 558 | main         |       555 |   15 |   16 |     2 | Event Calendar       |
| 559 | main         |       550 |   18 |   19 |     1 | Travel Deals         |
| 560 | sub          |      NULL |    1 |    2 |     0 | NULL                 |
+-----+--------------+-----------+------+------+-------+----------------------+

I drag the "Food & Drink" item (523) from the footer_right menu to the footer_left menu. I verify that the input I am sending to my back end is right -- I'm sending menu, parent_id, lft, rgt, depth for each item ID.
My back end code loads all the MenuItem objects and orders them by menu and then lft. I loop through once and update the 'menu' property of each, in case any need to change scope. Then I loop through in that order again and for each one except root nodes (whether it's been edited or not -- detecting reorderings etc seems like a lot of work) I reload $node and $parentNode to ensure data is fresh and then run $node->makeChildOf($parentNode). This works just fine and reorders things as expected as long as I'm just reordering within a particular menu/scope, but in this example where I'm moving from one scope to another I get an unexpected result.
+-----+--------------+-----------+------+------+-------+----------------------+
| id  | menu         | parent_id | lft  | rgt  | depth | name                 |
+-----+--------------+-----------+------+------+-------+----------------------+
| 561 | footer_left  |      NULL |    1 |    2 |     0 | NULL                 |
| 563 | footer_left  |       562 |    2 |    3 |     1 | Food & Drink         |
| 562 | footer_right |      NULL |    1 |   16 |     0 | NULL                 |
| 564 | footer_right |       562 |    4 |    5 |     1 | Accommodations       |
| 565 | footer_right |       562 |    6 |    7 |     1 | Event Calendar       |
| 566 | footer_right |       562 |    8 |    9 |     1 | Things to Do         |
| 567 | footer_right |       562 |   10 |   11 |     1 | Travel Deals         |
| 568 | footer_right |       562 |   12 |   13 |     1 | Itineraries          |
| 569 | footer_right |       562 |   14 |   15 |     1 | Blog                 |
| 550 | main         |      NULL |    1 |   20 |     0 | NULL                 |
| 551 | main         |       550 |    2 |    9 |     1 | Festivals and Events |
| 552 | main         |       551 |    3 |    4 |     2 | Food & Drink         |
| 553 | main         |       551 |    5 |    6 |     2 | Accommodations       |
| 554 | main         |       551 |    7 |    8 |     2 | Event Calendar       |
| 555 | main         |       550 |   10 |   17 |     1 | Things to Do         |
| 556 | main         |       555 |   11 |   12 |     2 | Food & Drink         |
| 557 | main         |       555 |   13 |   14 |     2 | Accommodations       |
| 558 | main         |       555 |   15 |   16 |     2 | Event Calendar       |
| 559 | main         |       550 |   18 |   19 |     1 | Travel Deals         |
| 560 | sub          |      NULL |    1 |    2 |     0 | NULL                 |
+-----+--------------+-----------+------+------+-------+----------------------+

So, id 563, the one I moved, has changed scope. But note that its parent_id has not changed. Its lft and rgt happen to be right, but they're the same as they were before (which was also right). The depth is right. But also note that the footer_left root's lft and rgt have not been updated -- in particular, the rgt should now be 4. footer_right's subtree hasn't updated its lft and rgt values either, but I'm not sure if that's an issue or not.
So something above is broken.
It gets interesting when I move a different menu item. Re-seeding the database I have this:
+-----+--------------+-----------+------+------+-------+----------------------+
| id  | menu         | parent_id | lft  | rgt  | depth | name                 |
+-----+--------------+-----------+------+------+-------+----------------------+
| 581 | footer_left  |      NULL |    1 |    2 |     0 | NULL                 |
| 582 | footer_right |      NULL |    1 |   16 |     0 | NULL                 |
| 583 | footer_right |       582 |    2 |    3 |     1 | Food & Drink         |
| 584 | footer_right |       582 |    4 |    5 |     1 | Accommodations       |
| 585 | footer_right |       582 |    6 |    7 |     1 | Event Calendar       |
| 586 | footer_right |       582 |    8 |    9 |     1 | Things to Do         |
| 587 | footer_right |       582 |   10 |   11 |     1 | Travel Deals         |
| 588 | footer_right |       582 |   12 |   13 |     1 | Itineraries          |
| 589 | footer_right |       582 |   14 |   15 |     1 | Blog                 |
| 570 | main         |      NULL |    1 |   20 |     0 | NULL                 |
| 571 | main         |       570 |    2 |    9 |     1 | Festivals and Events |
| 572 | main         |       571 |    3 |    4 |     2 | Food & Drink         |
| 573 | main         |       571 |    5 |    6 |     2 | Accommodations       |
| 574 | main         |       571 |    7 |    8 |     2 | Event Calendar       |
| 575 | main         |       570 |   10 |   17 |     1 | Things to Do         |
| 576 | main         |       575 |   11 |   12 |     2 | Food & Drink         |
| 577 | main         |       575 |   13 |   14 |     2 | Accommodations       |
| 578 | main         |       575 |   15 |   16 |     2 | Event Calendar       |
| 579 | main         |       570 |   18 |   19 |     1 | Travel Deals         |
| 580 | sub          |      NULL |    1 |    2 |     0 | NULL                 |
+-----+--------------+-----------+------+------+-------+----------------------+

If I now move 'Accommodations' (584) from footer_right to footer_left, I end up with this:
+-----+--------------+-----------+------+------+-------+----------------------+
| id  | menu         | parent_id | lft  | rgt  | depth | name                 |
+-----+--------------+-----------+------+------+-------+----------------------+
| 581 | footer_left  |      NULL |    1 |    4 |     0 | NULL                 |
| 584 | footer_left  |       581 |    2 |    3 |     1 | Accommodations       |
| 582 | footer_right |      NULL |    1 |   16 |     0 | NULL                 |
| 583 | footer_right |       582 |    4 |    5 |     1 | Food & Drink         |
| 585 | footer_right |       582 |    6 |    7 |     1 | Event Calendar       |
| 586 | footer_right |       582 |    8 |    9 |     1 | Things to Do         |
| 587 | footer_right |       582 |   10 |   11 |     1 | Travel Deals         |
| 588 | footer_right |       582 |   12 |   13 |     1 | Itineraries          |
| 589 | footer_right |       582 |   14 |   15 |     1 | Blog                 |
| 570 | main         |      NULL |    1 |   20 |     0 | NULL                 |
| 571 | main         |       570 |    2 |    9 |     1 | Festivals and Events |
| 572 | main         |       571 |    3 |    4 |     2 | Food & Drink         |
| 573 | main         |       571 |    5 |    6 |     2 | Accommodations       |
| 574 | main         |       571 |    7 |    8 |     2 | Event Calendar       |
| 575 | main         |       570 |   10 |   17 |     1 | Things to Do         |
| 576 | main         |       575 |   11 |   12 |     2 | Food & Drink         |
| 577 | main         |       575 |   13 |   14 |     2 | Accommodations       |
| 578 | main         |       575 |   15 |   16 |     2 | Event Calendar       |
| 579 | main         |       570 |   18 |   19 |     1 | Travel Deals         |
| 580 | sub          |      NULL |    1 |    2 |     0 | NULL                 |
+-----+--------------+-----------+------+------+-------+----------------------+

Again, I'm not sure if it's an issue that footer_right root and children's lft and rgt values haven't changed, but this time the moved node 584 has the correct parent_id, lft and rgt, and the footer_left root 581 has the correct lft and rgt too.
The issue above occurs whether I run MenuItem::rebuild() after all this or not. I also tried running MenuItem::rebuild() between passes (after I change the scopes where necessary), and I have the same issue.
Is there something I'm doing wrong? Or is this a bug?

@etrepat any progress on "move between scopes" functionality?


[SUPPORT] Archival not working for hudi & corresponding hudi metadata table

We were using emr version emr-6.11.0 , hudi version 0.13.0-amzn-0 , spark version = 3.3.2 , hive version = 3.1.3
We recently migrated from hudi 0.12.2 to 0.13.0. The main reason for migration was too many files in /metadata/.hoodie/ folder i.e. archival for metadata table was not triggering. Reason for that was https://github.com/apache/hudi/issues/7472 , as stated this was fixed in hudi 0.13.0.
After migrating to hudi 0.13.0, we observed archival is not working for both /.hoodie folder and /.hoodie/metadata/.hoodie/.
Table type is COW.logs:-
for our COW table, log says,
[2023-08-16 06:26:33,848] INFO No Instants to archive (org.apache.hudi.client.HoodieTimelineArchiver)for the corresponding meta data, log says
[2023-08-16 06:40:14,400] INFO Not archiving as there is no compaction yet on the metadata table (org.apache.hudi.client.HoodieTimelineArchiver)
[2023-08-16 06:40:14,400] INFO No Instants to archive (org.apache.hudi.client.HoodieTimelineArchiver)
Following is the complete list of hudi params[copied from logs]:-
DEBUG Passed in properties:
hive_sync.support_timestamp=true
hoodie.archive.async=true
hoodie.archive.automatic=true
hoodie.archivelog.folder=archived
hoodie.bulkinsert.shuffle.parallelism=200
hoodie.clean.async=true
hoodie.clean.automatic=true
hoodie.cleaner.commits.retained=2
hoodie.cleaner.policy.failed.writes=EAGER
hoodie.clustering.async.enabled=false
hoodie.clustering.inline=false
hoodie.datasource.compaction.async.enable=true
hoodie.datasource.hive_sync.base_file_format=PARQUET
hoodie.datasource.hive_sync.create_managed_table=false
hoodie.datasource.hive_sync.database=<db_name>
hoodie.datasource.hive_sync.enable=true
hoodie.datasource.hive_sync.jdbcurl=
hoodie.datasource.hive_sync.partition_extractor_class=org.apache.hudi.hive.MultiPartKeysValueExtractor
hoodie.datasource.hive_sync.partition_fields=dt
hoodie.datasource.hive_sync.password=hive
hoodie.datasource.hive_sync.schema_string_length_thresh=4000
hoodie.datasource.hive_sync.support_timestamp=true
hoodie.datasource.hive_sync.sync_as_datasource=true
hoodie.datasource.hive_sync.table=table_name
hoodie.datasource.hive_sync.use_jdbc=true
hoodie.datasource.hive_sync.username=hive
hoodie.datasource.meta.sync.base.path=
hoodie.datasource.meta.sync.enable=true
hoodie.datasource.write.commitmeta.key.prefix=_
hoodie.datasource.write.drop.partition.columns=false
hoodie.datasource.write.hive_style_partitioning=true
hoodie.datasource.write.insert.drop.duplicates=false
hoodie.datasource.write.keygenerator.class=org.apache.hudi.keygen.ComplexKeyGenerator
hoodie.datasource.write.keygenerator.consistent.logical.timestamp.enabled=false
hoodie.datasource.write.operation=upsert
hoodie.datasource.write.partitionpath.field=dt
hoodie.datasource.write.partitionpath.urlencode=false
hoodie.datasource.write.payload.class=org.apache.hudi.common.model.OverwriteWithLatestAvroPayload
hoodie.datasource.write.precombine.field=ingestedat
hoodie.datasource.write.reconcile.schema=false
hoodie.datasource.write.recordkey.field=id
hoodie.datasource.write.row.writer.enable=true
hoodie.datasource.write.streaming.ignore.failed.batch=false
hoodie.datasource.write.streaming.retry.count=3
hoodie.datasource.write.streaming.retry.interval.ms=2000
hoodie.datasource.write.table.type=COPY_ON_WRITE
hoodie.fail.on.timeline.archiving=false
hoodie.finalize.write.parallelism=200
hoodie.insert.shuffle.parallelism=200
hoodie.keep.max.commits=4
hoodie.keep.min.commits=3
hoodie.meta.sync.client.tool.class=org.apache.hudi.hive.HiveSyncTool
hoodie.meta.sync.metadata_file_listing=true
hoodie.meta_sync.spark.version=3.3.2-amzn-0
hoodie.metadata.clean.async=true
hoodie.metadata.cleaner.commits.retained=4
hoodie.metadata.enable=true
hoodie.metadata.keep.max.commits=7
hoodie.metadata.keep.min.commits=5
hoodie.metrics.pushgateway.host=
hoodie.metrics.pushgateway.port=9091
hoodie.parquet.max.file.size=128000000
hoodie.parquet.small.file.limit=100000000
hoodie.payload.ordering.field=ingestedat
hoodie.table.base.file.format=PARQUET
hoodie.table.checksum=1229177767
hoodie.table.keygenerator.class=org.apache.hudi.keygen.ComplexKeyGenerator
hoodie.table.metadata.partitions=files
hoodie.table.name=table_name
hoodie.table.partition.fields=dt
hoodie.table.precombine.field=ingestedat
hoodie.table.recordkey.fields=id
hoodie.table.type=COPY_ON_WRITE
hoodie.table.version=5
hoodie.timeline.layout.version=1
hoodie.upsert.shuffle.parallelism=200
hoodie.write.concurrency.mode=single_writer
hoodie.write.lock.provider=org.apache.hudi.client.transaction.lock.ZookeeperBasedLockProvider
hoodie.write.lock.zookeeper.base_path=/hudi
hoodie.write.lock.zookeeper.port=
hoodie.write.lock.zookeeper.url=

@vedantKhandelwalDP Which writer you are using? Is it a spark structured streaming writer OR datasource writer OR deltastreamer?

@ad1happy2go We are using spark structured streaming writer.

@PankajKaushal The configuration looks okay.
The metadata table doesn't looks to be archiving as no compaction is happening for the metadata table. Can you check and confirm the same in timeline.
The main table should have been archived, just wanted to check if you have enough commits to trigger archiving i.e. 4 in your case.
Can you share the timeline and code what you are using to write.

@ad1happy2go Please find the timeline attached for both table and metadata table.
Yes, you are right, for metadata table there is no commit with replacecommit as action. We want to understand that also, as the number of commits are huge why compaction is not triggering.
timeline.txt
metadata_timeline.txt
public static void writeToTable(
Dataset data, Map<String, String> hudiOptions, String path, Pipeline pipeline) {
if (log.isDebugEnabled()) {
  writeToConsole(data);
}
int attempt = 1;
while (attempt <= 3) {
  log.error(
      "writing data for "
          + pipeline.getOutputDbName()
          + "."
          + pipeline.getOutputTableName()
          + " attempt: "
          + attempt);
  try {
    data.write().format(ORG_APACHE_HUDI).options(hudiOptions).mode(SaveMode.Append).save(path);
    break;
  } catch (org.apache.hudi.exception.HoodieRemoteException hoodieRemoteException) {
    log.error(
        "hoodieRemoteException for "
            + pipeline.getOutputDbName()
            + "."
            + pipeline.getOutputTableName()
            + " attempt: "
            + attempt);
    log.error(hoodieRemoteException.getMessage());
    log.error(hoodieRemoteException.toString());
    attempt += 1;
  } catch (Exception e) {
    SlackAlert.postChatAlert(
        "Exception for "
            + pipeline.getOutputDbName()
            + "."
            + pipeline.getOutputTableName()
            + " : "
            + e.getMessage());
    log.error(
        "Exception for "
            + pipeline.getOutputDbName()
            + "."
            + pipeline.getOutputTableName()
            + " attempt: "
            + attempt);
    log.error(e.getMessage());
    log.error(e.toString());
    attempt += 1;
  }
}
if (attempt > 3) {
  log.error("terminating application tried max attempts");
  System.exit(1);
}

}

@ad1happy2go @danny0405 @codope Can you please advise us on this.

I can tell you the current behavior:

the MDT can not compat if there is any pending table services(compaction, clustring) on the DT timeline;
the DT can not archive beyond the instant of the latest MDT compaction instant
the MDT can not archive beyond the DT timeline

Finally the result is, if there is any pending instant on DT timeline, both of the timelines can not archive very well.

cc @nsivabalan , we are trying to tackle this, but with no clear time schedule.

@danny0405 Thanks for the information.
In such case where archival on DT or MDT is not working and active timeline for both tables is huge. Is there any thing, that can be done(running any table service manually etc.) to reduce the active time line and hence listing cost as well as batch duration.

@danny0405 Thanks much for the information.

@PankajKaushal Do you need any other help on this? Feel free to close this issue if all good. Thanks.

@PankajKaushal Closing this out. Please reopen or create a new one in case of any more issues.


Return number of updated records after using BulkUpdateAsync

I am using the BulkUpdateAsync method to update a large number of records at once and it works fine, but I can't figure out how to know the number of records that have actually been updated. Is there a way to know the number of affected records by the operation. I need this info to be logged.

Yes, there is info about this in ReadMe:

When CalculateStats is set to True the result is return in BulkConfig.StatsInfo (StatsNumber-Inserted/Updated)

@borisdj Thanks for the reply. But this does not seem to work with the method BulkInsertAsync. The StatsInfo is null even when I set CalculateStats to true. Also I don't think the numbers are very accurate. After a call to the "BulkInsertOrUpdateAsync" The StatsInfo.StatsNumberInserted was negative. What do you think is the issue? I am using version 2.6.3

Can you please make a test where this would be reproducible.


Check for previous/existing GitHub issues/module proposals

[X] I have checked for previous/existing GitHub issues/module proposals.

Check this module doesn't already exist in the module indexes

[X] I have checked for that this module doesn't already exist in the module indexes; or I'm proposing the module to be migrated from CARML/TFVM.

Bicep or Terraform?
Terraform
Module Classification?
Resource Module
Module Name
avm-res-network-virtualrouter
Module Details
Resource module for Route Server -  Microsoft.Network/virtualRouters
Do you want to be the owner of this module?
No
Module Owner's GitHub Username (handle)
No response
(Optional) Secondary Module Owner's GitHub Username (handle)
No response

@PmeshramPM Thank you for proposing module. Will place this request in 'looking for owners' until we find owner.

I'd be happy to own this

@pagyP If you want I would be happy to contribute to this

@PmeshramPM we will suspend this in favor virtualHubs one.
@pagyP , @SkouRene will tag you there.

Closing as we agree that it is not needed.


Moving a text field below a button results in error

Describe the Bug
Given the following example form
{
  "type": "default",
  "components": [
    {
      "key": "textfield1",
      "label": "Text Field",
      "type": "textfield"
    },
    {
      "key": "textfield2",
      "label": "Text Field",
      "type": "textfield"
    },
    {
      "key": "button6",
      "label": "Button",
      "type": "button"
    }
  ]
}

and moving the first text field below the button, the text field got erased from the editor. Also, an error is displayed in the Developer Console.

Steps to Reproduce

Open example form from above
Drag & drop the first text field to the very bottom
Recognize the text field is lost
Notice the text field is still persisted in the JSON view

Expected Behavior
Moving the text field should work without problems.
Environment

OS: MacOS 10.15
Camunda Modeler Version: 4.7.0-rc.0

I cannot reproduce this. Do you have a way of reproducing this 100% or is it just failing sometimes?

It fails for me any time I try it:

Create new form
Create text field
Create another text field
Create button
Try to move any text field below the button

Some capture - it also feels as drag & drop is not 100% reliable on my machine (blue drop indicator is not showing up all the time).

Maybe dragula has some difficulties on Mac?

Okay, I can reproduce it sometimes, when the blue indicators are not showing which is really weird. I guess we'll have to drop (no pun intended) dragula even earlier than expected.

Same on Linux: the blue drop indicator rarely appears

Closed by https://github.com/camunda/camunda-modeler/pull/2205


Invalid leafref value error in ietf-keystore module

Hi, I could successfully merge the tls_keystore.xml and tls_truststore.xml files.
When I am trying to merge 'tls_listen.xml file, I see an invalid leafref value error as below.
I couldn't find similar issue. Did I miss something or I need to change something?
ubuntu@ip-172-31-8-184:~/netopeer2/example_configuration$ sysrepocfg --edit=tls_listen.xml -m ietf-netconf-server -d startup -v4
[INF]: Applying scheduled changes.
[INF]: No scheduled changes.
[INF]: Connection 94 created.
[INF]: Session 474 (user "ubuntu", CID 94) created.
[ERR]: Invalid leafref value "servercert" - no existing target instance "/ks:keystore/ks:asymmetric-keys/ks:asymmetric-key[ks:name = current()/../asymmetric-key]/ks:certificates/ks:certificate/ks:name".
[ERR]: Validation failed.
sysrepocfg error: Failed to merge edit data (Validation failed)
[INF]: No write permission for the module "ietf-yang-library", skipping.
[INF]: No write permission for the module "sysrepo-monitoring", skipping.
[INF]: No write permission for the module "sysrepo-plugind", skipping.
[INF]: No datastore changes to apply.

Duplicate of https://github.com/sysrepo/sysrepo/issues/2507.


[ENH] tag manager mixin

port of https://github.com/sktime/sktime/pull/3630 to skbase
This PR factors out the tag management logic into a _FlagManager mixin, and generalizes the functionality so it can be used for multiple fields of tags.
Advantages:

increases cohesion and reduces coupling, separates concerns in the BaseObject class: state/parameter management and tag management
prepares the ground for managing configuration fields, e.g., for implementing a set_config similar to the new sklearn feature

Test coverage is already there for the base case, but should be added for a different tag field. Will do that with the PR that adds config handling.
(I called the flag manager since not all flags are tags, and interactions with the sklearn _get_tags)
A STEP is available here: https://github.com/sktime/enhancement-proposals/pull/29

Addressed, see replies in #140


Recipe to migrate from takari/maven-wrapper to the official maven wrapper

Migrate from takari/maven-wrapper to the official maven wrapper.
See https://github.com/spring-io/initializr/issues/1294 and https://github.com/spring-io/initializr/commit/7dab3f2268b53b8794f51463acbbf78236eb1080 for more details
Also https://github.com/takari/maven-wrapper
It seems that for this migration all we need to do is to run mvn wrapper:wrapper and to delete MavenWrapperDownloader.java

Completed via https://github.com/openrewrite/rewrite/pull/3392.


Spelling error

Please check if there is a spelling error of "boxe" in the following comment:
    // All-purpose method for displaying a line of text in the
    // text boxe.
    private void DisplayLine(string line)
    {
        TextBoxOutput.AppendText(line);
        TextBoxOutput.AppendText(Environment.NewLine);
    }

Related doc:
How to: Handle User Input Events in Windows Forms Controls

Thank you for opening this issue. Looks like it just got fixed. Thanks again!


Add/Update GitHub Actions

For some time now, I contribute German translations to the GNOME project. Recently, one of my translations failed tests when uploading  - I think msgfmt -vc was the command they run when testing the uploaded translations (can't confirm it, I'm not on my coding machine(tm) for the next week). I think this would be cool for us as well!
While I'm at it - do you have ideas for other CI tests we should do? Do any existing tests need updating?
I will start working on it next weekend, so plenty of time to think ;)

I thought about this - any meaningful code-related tests would involve launching GNOME Shell on a GitHub hosted runner. While this should be close-to-impossible, I already came quite far!
I managed to created a Podman container (https://github.com/Schneegans/gnome-shell-pod) which executes gnome-shell under xvfb. It's possible to run this container on a GitHub runner and upload a screenshot of GNOME Shell as artifact! See one of the latest CI runs: https://github.com/Schneegans/Fly-Pie/actions/runs/514312628. If you scroll to the bottom of the page, you can download the screenshot.
The only missing puzzle piece is that GNOME Shell fails to load any extension when run this way. I asked for any ideas regarding this issue over at https://discourse.gnome.org/t/run-gnome-shell-in-a-container/5450. Let's see if the folks have an idea!

I thought about this - any meaningful code-related tests would involve launching GNOME Shell on a GitHub hosted runner. While this should be close-to-impossible, I already came quite far!
I managed to created a Podman container (https://github.com/Schneegans/gnome-shell-pod) which executes gnome-shell under xvfb. It's possible to run this container on a GitHub runner and upload a screenshot of GNOME Shell as artifact! See one of the latest CI runs: https://github.com/Schneegans/Fly-Pie/actions/runs/514312628. If you scroll to the bottom of the page, you can download the screenshot.
The only missing puzzle piece is that GNOME Shell fails to load any extension when run this way. I asked for any ideas regarding this issue over at https://discourse.gnome.org/t/run-gnome-shell-in-a-container/5450. Let's see if the folks have an idea!

Extension loading seems to work now! Feel free to test it on your machine to get a feeling for the possibilities!
https://github.com/Schneegans/gnome-shell-pod
I think we could do alot of testing this way. We can actually simulate mouse clicks, open the settings dialog etc...

Extension loading seems to work now! Feel free to test it on your machine to get a feeling for the possibilities!
https://github.com/Schneegans/gnome-shell-pod
I think we could do alot of testing this way. We can actually simulate mouse clicks, open the settings dialog etc...

Nice! Will test it on the weekend if there's time (I am working this weekend), or in the coming week.

Nice! Will test it on the weekend if there's time (I am working this weekend), or in the coming week.

It's finally working! We now have a test which executes this: https://github.com/Schneegans/Fly-Pie/blob/develop/scripts/run-tests.sh.
Feel free to test this on your end, you'll only need podman (sudo apt install podman). The script installs Fly-Pie in GNOME Shell 3.36 or 3.38 (or 40.0 but that's not yet supported in develop) and opens the preferences dialog. If any error happens, the script reports a failure.
Now we can extend this to whatever we want:

Import menu configurations from older versions.
Actually opening menus.
Opening menus via the D-Bus.
Simulating mouse clicks in the preferences dialog.
...

You may have a look at https://github.com/Schneegans/gnome-shell-pod to get some inspiration! I'll make this a discussion; we should then later create issues for specific tests.


Keybindings for keyboards without "Break" or "Pause" keys

As Laptops get more powerful it becomes common to create VM on mobile devices without a full keyboard. Generally these laptops come with a keyboard without a "break" or "pause" key. They keybindings with these keys can therefor not be entered.
Document a solution with custom keybindings to use these on mobile devices.

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

ID: 7dc50ab2-5b70-2b78-5345-cb261071fcc0
Version Independent ID: c081e16d-cf9d-f9a7-e86c-80a38e33d211
Content: Hyper-V Virtual Machine Connection
Content Source: WindowsServerDocs/virtualization/hyper-v/learn-more/hyper-v-virtual-machine-connect.md
Product: windows-server
Technology: hyper-v
GitHub Login: @BenjaminArmstrong
Microsoft Alias: benarm

#label:"request"

#label:"product-feedback"

#assign:xelu86

Hey kingma-sbw,
Thanks for contacting Microsoft. We value your feedback.
As we understand it, you've described an issue with a Windows product or service, rather than the documentation itself.
GitHub issues in the Windows Server repo are monitored for content issues that we can address, such as broken links, grammar or wording, typos, updates, or incorrect code in examples. We offer other channels for engaging with us, whether you have a support question, product feedback, or other feedback.
We cannot assist with the following as it's outside our scope of work:

Support cases or support tickets
Bug submittal or Feature requests
Extended troubleshooting, technical support, or product support

Instead, please use one or more of the following:

On a Windows OS, use Windows Feedback Hub or press Windows + F. You can also provide feedback with using our Feedback Portal.
Open a ticket with Microsoft Support.
Search or engage with Microsoft TechNet.
Search or engage with the Microsoft Developer Network.
Search or engage with the Microsoft Support Community.

As this is a non-documentation issue, we’re closing this thread.
Thank you and have a most pleasant day.
#please-close


Menu Glitch?

Seed: R520-JZV3-Z9GK3M9LL863
Not sure if the menu is supposed to look like this with Regina. Just figured I'd show.

It just looks like writing

it is like this on all menus, item box included


Single profile for build dependencies

I've just noticed that build dependencies are currently rebuilt for each profile (or at least debug and release, I haven't noticed what happens for the others).
That's fine for a little build helper like gcc, but painful for bindgen (mainly due to syntex_syntax build time).
Are there circumstances in which the build dependency build profile is relevant to the main project build? I could very well be missing something here.
If it's never relevant, then having to rebuild all your build dependencies for each profile is a (minor) pain.
Potential solutions:
Only build the build dependencies once…

Optimise for performance: … with the release profile.
Optimise for failure: … with the debug profile.
Optimise for control: … with a new build profile, configured in the project's Cargo.toml like the others (and choose defaults from the above, I guess).

Thoughts?

Yeah I've often wondered this in the past as well. I feel like choosing debug is the right default (most build scripts are not cpu bound) with the ability to tweak it (e.g. profile.build) would be the best way forward.

I discovered an inter-related problem. It could be regarded as a different bug. Let me know.
I'm pretty sure that build dependencies should disregard both the profile (as above) and the target.
An example failure follows. As you can see, cargo rustc is attempting to depend on std, which is not available for the custom target. I double-checked this behaviour with cargo build.
This kind of surprises me, and makes me wonder if I'm doing something wrong. Have people simply not been using cargo for cross-compiles with build dependencies? In this case, it's just x86 on x86_64, but how would an ARM build work on x86_64 with build dependencies built for ARM?
cargo rustc --verbose --target=i686-unknown-linux-gnu.json -- -C soft-float -C lto -C opt-level=1 -Z no-landing-pads
...
/home/jdub/.cargo/registry/src/github.com-0a35038f75765ae4/libc-0.1.8/rust/src/liblibc/lib.rs:1:1: 1:1 error: can't find crate for `std`
/home/jdub/.cargo/registry/src/github.com-0a35038f75765ae4/libc-0.1.8/rust/src/liblibc/lib.rs:1 // Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT
                                                                                ^
error: aborting due to previous error
Could not compile `libc`.

Caused by:

  Process didn't exit successfully: `rustc /home/jdub/.cargo/registry/src/github.com-0a35038f75765ae4/libc-0.1.8/rust/src/liblibc/lib.rs --crate-name libc --crate-type lib -g --cfg feature="default" --cfg feature="cargo-build" -C metadata=ef5cbad4ef5c7a1e -C extra-filename=-ef5cbad4ef5c7a1e --out-dir /home/jdub/src/derp/derp/target/i686-unknown-linux-gnu/debug/deps --emit=dep-info,link --target i686-unknown-linux-gnu.json -C linker=util/linker.sh -L dependency=/home/jdub/src/derp/derp/target/i686-unknown-linux-gnu/debug/deps -L dependency=/home/jdub/src/derp/derp/target/i686-unknown-linux-gnu/debug/deps -Awarnings` (exit code: 101)

I think this problem is orthogonal to build dependencies, but the problem you're seeing is that your compiler cannot target 32-bit windows because you're missing the standard library. Each Rust installation comes with a set of folders for the targets it has libraries for, and if these aren't present then there truly is no standard library to link against.
For any cross compilation scenario the first step is to ensure that you have those dependencies (e.g. std and everything under the facade). We plan on making this much easier to do in the future, so stay tuned!

That makes total sense for dependencies, but shouldn't build dependencies be built for the current machine (i.e. without --target)?
Aha! Now that I look more closely, I notice that immediate build dependencies are built without --target. In the following log, core is built with --target, but filetime and gcc are not. Perfect.
But in the previous log, libc was only being built for the benefit of...
:egg: :point_right: :dizzy_face:
Damn it. I didn't disable the non-build dependency. Sorry.
   Compiling core v0.0.0 (file:///home/jdub/src/derp/derp)
     Running `rustc vendor/libcore/src/lib.rs --crate-name core --crate-type lib -g -C metadata=7eddcbb0a532076f -C extra-filename=-7eddcbb0a532076f --out-dir /home/jdub/src/derp/derp/target/i686-unknown-linux-gnu/debug/deps --emit=dep-info,link --target i686-unknown-linux-gnu.json -C linker=util/linker.sh -L dependency=/home/jdub/src/derp/derp/target/i686-unknown-linux-gnu/debug/deps -L dependency=/home/jdub/src/derp/derp/target/i686-unknown-linux-gnu/debug/deps`
   Compiling filetime v0.1.4
     Running `rustc /home/jdub/.cargo/registry/src/github.com-0a35038f75765ae4/filetime-0.1.4/src/lib.rs --crate-name filetime --crate-type lib -g -C metadata=98fab2a8e902dde6 -C extra-filename=-98fab2a8e902dde6 --out-dir /home/jdub/src/derp/derp/target/debug/deps --emit=dep-info,link -L dependency=/home/jdub/src/derp/derp/target/debug/deps -L dependency=/home/jdub/src/derp/derp/target/debug/deps -Awarnings`
   Compiling gcc v0.3.8 (file:///home/jdub/src/derp/derp)
     Running `rustc /home/jdub/src/derp/gcc-rs/src/lib.rs --crate-name gcc --crate-type lib -g -C metadata=d4b5f7b7ec599315 -C extra-filename=-d4b5f7b7ec599315 --out-dir /home/jdub/src/derp/derp/target/debug/deps --emit=dep-info,link -L dependency=/home/jdub/src/derp/derp/target/debug/deps -L dependency=/home/jdub/src/derp/derp/target/debug/deps --extern filetime=/home/jdub/src/derp/derp/target/debug/deps/libfiletime-98fab2a8e902dde6.rlib`


docs-bug(app): theme text colors are inaccessible

Documentation Feedback
The text on documentation pages is difficult to read when the Cyan & Orange theme is selected: e.g., the page text for the Autocomplete component seems to be the color rgb(26, 27, 31) while the background-color for the page seems to be rgb(16, 20, 20), which yields a color contrast ratio of about 1.07:1.
Affected documentation page
https://material.angular.io/components/autocomplete/overview

Can you try clearing your cache? We reworked the themes in v19 and you might have the old one in your cache.

Clearing my cache worked. Thanks!


Rewrite 'neighbor!' methods

Refactor the neighbor! methods to receive keyword arguments properly, and possibly get rid of default values.

Closed in 1c8885c.


pubsub: add optional check for leaked messages

Bryan Mills suggests using a finalizer to check for messages that have not been acked:
In ReceiveSettings:
// ReportLeakedMessage is called in a finalizer if a message
// passed to Receive becomes unreachable without any calls to
// its Ack or Nack methods.
//
// If ReportLeakedMessage is nil, then ….
ReportLeakedMessage func(*pubsub.Message)

Moved to https://github.com/GoogleCloudPlatform/google-cloud-go/wiki/Feature-Backlog.


liftoff 2x / v8flags 2x released

Heya, this is just a friendly note to let you know that a new version of Liftoff and some of the dependencies commonly used in conjunction with it have been released. This release adds better support for situations where your user's configuration files are written using features behind a v8 flag (e.g. --harmony). Windows users and io.js users should see less issues if you upgrade!
Some helpful links:
https://github.com/tkellen/node-liftoff/blob/master/UPGRADING.md#100---200
https://github.com/tkellen/node-v8flags/blob/master/README.md#example
https://github.com/tkellen/node-hacker/blob/master/bin/hacker.js#L10-L14
Thanks!

Awesome! Thank you for the notification and I would do some research and then definitely upgrade to the latest Liftoff.


/submit-new-question resets input

Description
Briefly describe the problem.
At the endpoint /submit-new-question, the input gets resetted after submitting without selecting the correct answer checkbox.
Results in enduser to reenter his input.
Steps to Reproduce

got to /submit-new-question
enter a question and 4 answers.
do not select the correct answers.
enter submit.
error window appears.

Expected Behavior
I expect that the fields filled in already stay filled after the error appears.
So the user can only mark the missing checkboxes to be able to submit corectly, and does not need to fill in the fields again.
Actual Behavior
error window appears and the input is resetted in the fields. Please view the print screen below.
Screenshots (optional)
If relevant, add screenshots to help illustrate the issue.

the solution might be to send the input data back to the form with the error (200) message .
let message = 'We cannot save your question. You must mark at least one correct answer.';
res.status(200).render('new-question.ejs', {
message,
question,
answer1Text,
answer1CheckBox: !!answer1CheckBox,
answer2Text,
answer2CheckBox: !!answer2CheckBox,
answer3Text,
answer3CheckBox: !!answer3CheckBox,
answer4Text,
answer4CheckBox: !!answer4CheckBox

Very clear steps to reproduce the error.
Additionally, your solution should work as a fix.
Question: Why the double !! in answer4CheckBox: !!answer4CheckBox?
Well done!


Run code button issue

Challenge http://freecodecamp.com/challenges/waypoint-nest-an-anchor-element-within-a-paragraph has an issue. Please describe how to reproduce it, and include links to screenshots if possible.
Several fast clicks on "Run code" button enables you to pass in the next exercise even thought the solution submit-ed is not the right one.

Do you mean the next or this exercise? The nest an anchor element within a paragraph? In the link you provided I tried my best clicking the button as fast as I could and it still said it's an invalid solution, so please give more information and possibly include the source code you have that got the job done when it shouldn't.

In order to reproduce it: go to the link I provided, reset the code by pressing the reset button, click the run code button once, it should say that the solution is invalid, after that make three fast clicks (or hold pressed Ctrl and press enter three times fast).
Here's the code:
<link href="http://fonts.googleapis.com/css?family=Lobster" rel="stylesheet" type="text/css">

CatPhotoApp

cat photos

Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.

Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.

Sorry for the long wait and lack of activity on my part.
I've tested it, done as you told me, with the reset and fast clicks and I still get an incompletion message like I should. Then I copied your code and tried that - still an error. I don't seem to be able to reproduce the bug. Try it again on your machine, maybe it was a one-time thing (which, don't get me wrong, is still a bug of course).

Hey @alirajt, any updates on this?

 On my computer which runs linux mint 17, i can always reproduce the bug, tested with two different accounts, the result is the same. On a windows powered computer instead I was unable to reproduce the bug. Seems like this is a chrome + linux mint issue

@alirajt Interesting... Would love to see some debugging. You down for some source diving? The issue is most likely located in the commonFramework file.
Chrome is pretty good about being the same across platforms, but v8 (Chrome and Nodes JavaScript engine) is built in C++ so they need to be compiled on each system.

This issue if fixed and, hopefully, will be live soon.


Added zombie cleanups for external git command calls.

For issue #996
When pushing a large amount of commits, an increase in the number of zombie processes can be detected from the process table, specifically 3 new zombies for each commit that is handled. This was fixed by calling exec.Wait() for the commands that were called using exec.Start().
I'm not entirely sure if the calls for exec.Wait() are in their appropriate places here, but at least this seems to do the trick for me.

I'm not sure how this is actually helping. Those Wait() calls are happening in goroutines. Go programs drop all goroutines on the floor when main() exits.

No the goroutines are not the problem, but the child processes launched by exec.Start() for those git commands are. This was my quick and dirty fix, as calling Wait() before the stdins from the commands can be closed will cause problems. Another solution could be to pass the cmd pointers to the calling function ScanRefsToChan() from each of the three functions and call the Wait()s there after the inputs and outputs of the git commands have been properly handled.

Hmm, actually I think the problem in issue #1005 was because of these changes after all. My Wait()s may be closing something too soon and the stdout scanners in the goroutines don't receive everything. Moving the waits into these reading goroutines seems to work better!


[Sentinel] - Refactoring and Improvements

Scope
The primary aim of this refactoring effort was to enhance the readability, maintainability, and efficiency of the code.
Phase 1: Refactoring the Client Class
Background
Originally, the Client class served as the default for all operations related to network and Superfluid contracts. Over time, it became bloated and unfocused, necessitating an overhaul to improve its structure and functionality.
Division into Distinct Classes
To uphold the Single Responsibility Principle (SRP), the Client class was divided into four different classes. Each new class now handles a distinct set of responsibilities:

ContractLoader: Responsible for all instances of Superfluid contracts. Its duties include finding addresses and creating Web3 instances of contracts.

RPCClient: Manages the interactions between Sentinel and node RPC, providing the necessary infrastructure to send transactions to the network.

SuperTokenManager: Oversees all SuperTokens and their associated configurations, improving organization and accessibility.

AccountManager: Manages all accounts needed to operate a Sentinel instance, improving security and account usability. This new class will allow multi accounts on the same sentinel instance.

Through this division, each class now has a clear, singular focus, improving the overall efficiency and readability of the code. Future updates and debugging should also be more straightforward due to the modular and targeted nature of these classes.

This is done on GDA branch


VS Code tasks improvments

Fixed error with Pester tests launch.
The property 'WriteVSCodeMarker' cannot be found on this object. Verify that the property exists and can be set.

Added new task for running tests only in current file.

Kkdk


#2807

Ⅰ. Describe what this PR did
Seata compatible with PostgreSQL driver
Ⅱ. Does this pull request fix one issue?

fixes #2807
Ⅲ. Why don't you add test cases (unit test/integration test)?
Little change
Ⅳ. Describe how to verify it
The integration of Seata and sharding can be verified with PostgreSQL database
Ⅴ. Special notes for reviews
nothing

change the title，tell what  you are doing in this pr


feat(aws-lambda) Add AWS Gov Cloud region to plugin schema

Summary
Add us-gov-west-1 to the list of allowed regions to permit AWS Lambda
functions to be invoked from the AWS GovCloud region.
Full changelog

Add us-gov-west-1 to schema of aws_region config in aws-lambda plugin

Thank you! You can now claim and receive your very own Contributor T-shirt :)


[Feature]: Implement Velocity Controller to also actively Brake

Description
Since the current implementation of the velocity controller only includes a PID for throttling ( accelerating the car) and uses the included frictions of the simulation to brake, which is not good enough to control the velocity especially on jumping to lower max_velocities, BRAKING-functionality needs to be included.
Implement new Controller for the brake-inputs of carla:

[x] Since another PID Controller would interact with the already implemented and tuned throttle PID Controller, only test P- Controllers, which should be enough (testing different Kp = 0.5 , 1.0, 1.5, ...)
[x] Always also test if allowing the throttle PID Controller to calculate negative throttles which can be used as positive brakes
[x] Preferably the easiest, most predictable Solution is used.
[x] Test with different Velocities and testcases.

Definition of Done

the Velocity Controller can actively brake, reaching better performance in controlling velocity
Improve braking times compared to without braking-Controller by at least 50% (since friction is already braking alot and even fully braking brake=1 is not doing much more, higher than 50% is not really possible)

Compared so far:

braking with throttle = 0 (only frictions from simulation)
giving the throttle PID the range -1 to 1 (instead of 0 to 1) and use all negative throttles as positive brake inputs
using another PID for braking with negative parameters (braking is negative acceleration) to brake instead, while throttlePID sets throttle = 0. Currently brakingPID = PID(0.5,0,0) and needs tuning, but how to tune this efficiently? Can i set a starting velocity and deactivate throttlePID??)

Why are 2 and 3 so similar:

At the drop of target velocity both set brake to max and throttle to 0. So we actually see the maximum possible braking in the first few seconds, then the brakingPID WILL BE BETTER IF TUNED CORRECTLY.

Since a braking PID controller with I and D parts will badly interact with the throttlePID controller ( and since braking is alot simpler considering that the vehicle model already de-accelerates alot and stable when no throttle is used) a simple P-Controller will be used for braking.
This will increase the general velocity controlling alot, while hardly interacting with the already well tuned throttlePID.
Since a P-Controller brakes only proportionally to the (negative) velocity error with maximum braking  being = 1, the Kp of this controller can be tuned to get the velocity error point where we stop fully braking.
E.G. if we want to slow down braking at v_err = -3 m/s (around 10km/h over target velocity) we just set Kp = 1 / v_err. (while braking = 0 at target velocity and below).

Found and verified a good Kp for braking at -1.35, tuned with:

100km/h, where because of the linearisation of the throttlePID around 50km/h, we overshoot the target-velocity by a little, meaning we reach constant negative velocity-error which activates the brake. This is tested to actually improve the offset and not leading into oscillation.
25 to 75 to 25 km/h, which tests the brake at the small overshoot at reaching 25km/h, and the braking from 75 back to 25. 25 km/h is somehow important and varies in throttle-behavior alot, maybe of the gear shift, which is at around 21km/h and very close to target velocity.

Plots will be shown in presentation.

For now the negative-throttle solution is implemented, as it has the most predictable outcome while highly improving braking times without interfering with other controllers since there are none (as a braking-PID would do).


Github CI Badge Error on README

Because a breaking change by shields.io, the build status badge related a Github CI is showing an error on README.
Previously, was used by pipeline name and, after the change, requires a filename.
To resolve this issue, needs update image url to :
https://img.shields.io/github/actions/workflow/status/docker-library/python/ci.yml?branch=master&label=GitHub%20CI
ps: i tried create a Pull Request to fix this little issue but i don't have permission :/

ps: i tried create a Pull Request to fix this little issue but i don't have permission :/

Please create a fork first or share the full error message.

Only needs update README file with the new image url.
At this moment, the file is this way:

With fix update related above, will be:


Cop Idea: Replace instance_double(Foo).as_null_object with instance_spy(Foo)

This seems pretty uncontroversial. This is all there is behind the scenes for these methods so people should use them instead of doing double(...).as_null_object

thoughts @andyw8 @bquorning ?

Heh alright maybe it is more controversial than I expected.
I'm actually not sure how to reason about this now. The semantics alone tell me that adding this cop would be fine but I'm not sure how much meaning double and spy are supposed to actually carry beyond their behavior if that makes sense.
@JonRowe what do you think here? Are there cases where instance_double(User).as_null_object should be used instead of instance_double(User)?

@JonRowe what do you think here? Are there cases where instance_double(User).as_null_object should be used instead of instance_double(User)?

Personally I'd avoid it's use, like the any instance features, but it's a tool for working with legacy code. Spies do something different so I don't feel it's a semantic match...

Thanks @JonRowe. Are you saying you would avoid the use of as_null_object? Also what difference are you referring to for spies? I figured they were equivalent given the code snippet I linked. Do you mean that users are only supposed to use spies when using have_received like @andyw8 said?

Are you saying you would avoid the use of as_null_object?

Yes

Do you mean that users are only supposed to use spies when using have_received like @andyw8 said?

Yes, the fact that they use the same code as as_null_object is an implementation detail, I'd support converting as_null_object calls to _spy calls when have_received is used tho!

Neat. Thanks for the input. I'll adjust the scope of this cop idea then to what @andyw8 and you recommended.


Warning: Path must be a string. Received null Use --force to continue.

when I run grunt
outputing this:
Running "jshint:files" (jshint) task
Warning: Path must be a string. Received null Use --force to continue.
Aborted due to warnings.

reporterOutput: ''             // <-- Add an empty String here
This solution worked for me. If not defined it takes the value as null.

thanks @shourya23 that did it for me as well.

I will add this.

You can also fix this by updating jshint to e.g.
"grunt-contrib-jshint": "^0.12.0",


Add BeTranslation ComponentRef to fix Windows installer.

Thanks! I was using Linux, so I wasn't able to test out the installer


RT-1.3: BGP Route Propagation needs uplifting for router-id, global address family, route-policy for ebgp

RT-1.3: BGP Route Propagation currently does not have

router-id
global address family initialization such that initialized address family can be used under neighbors
route-policy used for filtering for an ebgp session

I can take up uplifting this test if no-one has any issues

Observing same issue. Script failing due to -
1. Missing PeerGroup configuration with route-policy (required for ebgp) and address-family enabling.
2. Missing Address-family configuration at global and neighbor (ipv4)

is this related to this PR? https://github.com/openconfig/featureprofiles/pull/513

Closing as this does appear to be resolved by that PR.


Open discussion: 2024-01-11

Summary
We're planning an open discussion of WG-async topics on 2024-01-11.
About this issue
This issue is a proposal for a WG-async meeting.

I might have a conflict for the triage on 2023-01-08 - can we perhaps move discussion of https://github.com/rust-lang/rust/pull/119550#discussion_r1440723495 to this slot? That would give us a bit more time too.
cc/ @compiler-errors - would that work for you?

I should be able to make it.


[SPARK-42031][CORE][SQL] Clean up remove methods that do not need override

What changes were proposed in this pull request?
Java 8 began to provide the default remove method implementation for the java.util.Iterator interface.
https://github.com/openjdk/jdk/blob/9a9add8825a040565051a09010b29b099c2e7d49/jdk/src/share/classes/java/util/Iterator.java#L92-L94
default void remove() {
    throw new UnsupportedOperationException("remove");
}

So this pr cleans up unnecessary remove method overrdie in Spark code.
Why are the changes needed?
Code cleanup
Does this PR introduce any user-facing change?
No
How was this patch tested?
Pass Github Actions

LGTM
cc @sunchao

Merged to master. Thanks @LuciferYang @sunchao

Thanks @sunchao @huaxingao


Clarify whatif and confirm behavior

closes https://github.com/MicrosoftDocs/office-docs-powershell/issues/10962

@JohanFreelancer9

@isrumnon Please comment. Thanks

@pbafna03 Will be looking after this area going forward

@tseward and @isrumnon Please let me know how to proceed with this PR. Thanks

@ruchiagrawal9221 can best comment on this as this is a Policy Grant cmdlet.

@ruchiagrawal9221 Please help.

@yogkumgit  Agree with @tseward .. feature team should track the bugs separately.

@get-itips

@tseward what is expected?

Then, closing.


GPU quantization for sentence-transformer: ONNX quantized model

Hi,
Thanks for the nice repo!
Isn't it possible to obtain an ONNX model from GPU quantization of a sentence-transformer?
It seems that the end to end notebook is based on tensorRT quantized model.
Thanks!

On GPU, TensorRT is the only way to run quantized models.
Onnx Runtime requires you to use the TensorRT provider.
So you need to:
1/ extract onnx model from sentence transformers (wrappers are provided in this lib in case you have some difficulties)
2/ do same kind of work than described in the repo on this onnx file

Do you recommend to apply QAT? Is this suppose to redo pre-training on the whole dataset?

Is this suppose to redo pre-training on the whole dataset in case of multilingual model?
It depends ;-)
What I can say is official Nvidia doc says only 10%, but in CV with large dataset. In fine tuning regime, it definitely depends of the size of your dataset.

And regarding the opportunity to do it, it's more about how important latency improvement matters to your use case and the difficulty to industrialize it Vs other strategies like distillation in miniLM or whatever smaller model for instance. In our case, at some points we excluded it from our industrialization pipeline.


Ripgrep search provider incorrectly treats search.exclude globs as non-strict.

The include and exclude fields in the search view/search editor use a "loose" glob interpretation:
test -> **/test/**, **/test
.test -> **/*.test
etc.
search.exclude however uses strict globs. However, the ripgrep search provider seems to be interpreting the globs in search.exclude loosely:
For instance: Try searching "searchEditor" in vscode standard:

Now try adding "**/workbench": true to search.exclude. This should only remove results with basename workbench. In actuality, it filters out all of **/workbench/**:

Oh, I see. From rg's perspective, it will not search inside workbench/ as it walks the folder tree because the workbench folder itself is excluded. I don't think we can even override this. vscode has always been this way and I wouldn't want to change it now.

Hm I see. cc @burntsushi for visiblity, but will close out of scope for now.


Errors during setup - wsl debian or ubuntu

Hi.
I am following the guide to install it but it fails during execution, I tried without root and with root, I am on Windows 11.
Steps I followed for the setup:
sudo apt update
sudo apt install git curl coreutils

cd ~
git clone https://github.com/Kong/kong-pongo.git
mkdir -p ~/.local/bin
ln -s $(realpath kong-pongo/pongo.sh) ~/.local/bin/pongo
PATH=$PATH:~/.local/bin

root@chrispc:~/kong-pongo# pongo run
[pongo-INFO] auto-starting the test environment, use the 'pongo down' action to stop it
[+] Running 2/2
 ⠿ Network pongo-1dd560c3               Created                                                                                1.0s
 ⠿ Container pongo-1dd560c3-postgres-1  Started                                                                                1.5s
[+] Running 1/1
 ⠿ Container pongo-1dd560c3-cassandra-1  Started                                                                                1.3s
[pongo-INFO] Waiting for postgres
[pongo-INFO] Waiting for cassandra
[pongo-INFO] image 'kong-pongo-test:2.8.1' not found, auto-building it
[pongo-INFO] starting build of image 'kong-pongo-test:2.8.1'
[+] Building 27.5s (12/13)
 => [internal] load build definition from Dockerfile                                                                                0.0s
 => => transferring dockerfile: 32B                                                                                0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => [internal] load metadata for docker.io/library/kong:2.8.1-alpine                                                                                0.0s
 => [1/9] FROM docker.io/library/kong:2.8.1-alpine                                                                                0.0s
 => [internal] load build context                                                                                0.0s
 => => transferring context: 25.64kB                                                                                0.0s
 => CACHED [2/9] COPY ./kong-versions/2.8.1/kong /kong                                                                                0.0s
 => CACHED [3/9] COPY assets/busted_helper.lua      /pongo/busted_helper.lua                                                                                0.0s
 => CACHED [4/9] COPY assets/pongo_entrypoint.sh    /pongo/pongo_entrypoint.sh                                                                                0.0s
 => CACHED [5/9] COPY assets/default-pongo-setup.sh /pongo/default-pongo-setup.sh                                                                                0.0s
 => CACHED [6/9] COPY assets/pongo_pack.lua         /pongo/pongo_pack.lua                                                                                0.0s
 => CACHED [7/9] COPY assets/pongo_profile.sh       /etc/profile.d/pongo_profile.sh                                                                                0.0s
 => ERROR [8/9] RUN apk update     && apk add zip unzip make g++ py-pip jq git bsd-compat-headers m4 openssl-dev curl     && curl -k -s -S -L https://github.com  27.4s
[8/9] RUN apk update     && apk add zip unzip make g++ py-pip jq git bsd-compat-headers m4 openssl-dev curl     && curl -k -s -S -L https://github.com/fullstorydev/grpcurl/releases/download/v1.7.0/grpcurl_1.7.0_linux_x86_64.tar.gz | tar xz -C /kong/bin     && pip install httpie     ; cd /kong     && git config --global url.https://github.com/.insteadOf git://github.com/     && make dependencies     && luarocks install busted-htest     && luarocks install luacov:
#12 0.641 fetch https://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz
#12 1.275 fetch https://dl-cdn.alpinelinux.org/alpine/v3.15/community/x86_64/APKINDEX.tar.gz
#12 1.709 v3.15.4-23-g26ba280437 [https://dl-cdn.alpinelinux.org/alpine/v3.15/main]
#12 1.709 v3.15.4-26-g36f9d42a4c [https://dl-cdn.alpinelinux.org/alpine/v3.15/community]
#12 1.709 OK: 15857 distinct packages available
#12 2.076 (1/51) Installing bsd-compat-headers (0.7.2-r3)
#12 2.223 (2/51) Installing curl (7.80.0-r0)
#12 2.306 (3/51) Installing binutils (2.37-r3)
#12 2.771 (4/51) Installing libgomp (10.3.1_git20211027-r0)
#12 2.849 (5/51) Installing libatomic (10.3.1_git20211027-r0)
#12 2.871 (6/51) Installing libgphobos (10.3.1_git20211027-r0)
#12 3.173 (7/51) Installing gmp (6.2.1-r1)
#12 3.230 (8/51) Installing isl22 (0.22-r0)
#12 3.379 (9/51) Installing mpfr4 (4.1.0-r0)
#12 3.707 (10/51) Installing mpc1 (1.2.1-r0)
#12 3.855 (11/51) Installing gcc (10.3.1_git20211027-r0)
#12 8.712 (12/51) Installing musl-dev (1.2.2-r7)
#12 9.165 (13/51) Installing libc-dev (0.7.2-r3)
#12 9.186 (14/51) Installing g++ (10.3.1_git20211027-r0)
#12 11.79 (15/51) Installing oniguruma (<IP_ADDRESS>-r0)
#12 11.92 (16/51) Installing jq (1.6-r1)
#12 11.98 (17/51) Installing m4 (1.4.18-r2)
#12 12.02 (18/51) Installing make (4.3-r0)
#12 12.29 (19/51) Installing openssl-dev (1.1.1n-r0)
#12 12.43 (20/51) Installing libffi (3.4.2-r1)
#12 12.49 (21/51) Installing gdbm (1.22-r0)
#12 12.52 (22/51) Installing xz-libs (5.2.5-r1)
#12 12.59 (23/51) Installing mpdecimal (2.5.1-r1)
#12 12.65 (24/51) Installing sqlite-libs (3.36.0-r0)
#12 12.74 (25/51) Installing python3 (3.9.7-r4)
#12 14.69 (26/51) Installing py3-appdirs (1.4.4-r2)
#12 14.74 (27/51) Installing py3-certifi (2020.12.5-r1)
#12 14.78 (28/51) Installing py3-charset-normalizer (2.0.7-r0)
#12 14.83 (29/51) Installing py3-idna (3.3-r0)
#12 14.87 (30/51) Installing py3-urllib3 (1.26.7-r0)
#12 14.95 (31/51) Installing py3-requests (2.26.0-r1)
#12 15.01 (32/51) Installing py3-msgpack (1.0.2-r1)
#12 15.07 (33/51) Installing py3-lockfile (0.12.2-r4)
#12 15.09 (34/51) Installing py3-cachecontrol (0.12.10-r0)
#12 15.13 (35/51) Installing py3-colorama (0.4.4-r1)
#12 15.18 (36/51) Installing py3-contextlib2 (21.6.0-r1)
#12 15.21 (37/51) Installing py3-distlib (0.3.3-r0)
#12 15.37 (38/51) Installing py3-distro (1.6.0-r0)
#12 15.51 (39/51) Installing py3-six (1.16.0-r0)
#12 15.59 (40/51) Installing py3-webencodings (0.5.1-r4)
#12 15.65 (41/51) Installing py3-html5lib (1.1-r1)
#12 15.72 (42/51) Installing py3-parsing (2.4.7-r2)
#12 15.78 (43/51) Installing py3-packaging (20.9-r1)
#12 15.81 (44/51) Installing py3-tomli (1.2.2-r0)
#12 15.87 (45/51) Installing py3-pep517 (0.12.0-r0)
#12 15.90 (46/51) Installing py3-progress (1.6-r0)
#12 15.92 (47/51) Installing py3-retrying (1.3.3-r2)
#12 15.94 (48/51) Installing py3-ordered-set (4.0.2-r2)
#12 15.97 (49/51) Installing py3-setuptools (52.0.0-r4)
#12 16.09 (50/51) Installing py3-toml (0.10.2-r2)
#12 16.13 (51/51) Installing py3-pip (20.3.4-r1)
#12 16.52 Executing busybox-1.34.1-r5.trigger
#12 16.53 OK: 318 MiB in 91 packages
#12 21.82 curl: (6) Could not resolve host: objects.githubusercontent.com
#12 21.82 tar: invalid magic
#12 21.82 tar: short read
#12 21.84 fatal: not a git repository (or any of the parent directories): .git
#12 27.04 curl: (6) Could not resolve host: objects.githubusercontent.com
#12 27.04 tar: invalid magic
#12 27.04 tar: short read
#12 27.04 make: *** [Makefile:133: bin/grpcurl] Error 1
executor failed running [/bin/sh -c apk update     && apk add zip unzip make g++ py-pip jq git bsd-compat-headers m4 openssl-dev curl     && curl -k -s -S -L https://github.com/fullstorydev/grpcurl/releases/download/v1.7.0/grpcurl_1.7.0_linux_x86_64.tar.gz | tar xz -C /kong/bin     && pip install httpie     ; cd /kong     && git config --global url.https://github.com/.insteadOf git://github.com/     && make dependencies     && luarocks install busted-htest     && luarocks install luacov]: exit code: 2
[pongo-ERROR] Error: failed to build test environment

Any Idea?

from first looks it seems that
curl -k -s -S -L https://github.com/fullstorydev/grpcurl/releases/download/v1.7.0/grpcurl_1.7.0_linux_x86_64.tar.gz | tar xz -C /kong/bin

is failing. Could it be a network failure? have you retried?

If I issue the command on the shell it downloads the file. There are no network issues. I tried to run pongo on my mac afterwards and it works. There is no proxy.

I don't have a win 11 system to test unfortunately. So cannot reproduce.
You can try and debug by modifying the dockerfile, and separating out the failing commands; file is here might be the curl succeeds, but the untar just fails?

@chris2016 did you manage to figure this one out?

closing this


NTR: 'negative regulation of interleukin-7 secretion'

Request for 'negative regulation of interleukin-7 secretion' term to be added.
Evidence: PMID: 25962782. Figure 5B:

IL-7 and IL-17 levels in culture supernatant were significantly down regulated after miR-181c mimic transfection (***p < 0.001).

Note: miR-181c directly targets IL-7 mRNA, reducing its expression (Fig 2B).
Currently only GO:0072605 'interleukin-7 secretion' exists.
cc
@BarbaraCzub
@RLovering

GOC:aruk


As a developer, I want to fuzzer the transaction logic

Port the old fuzzers from the ledger repository to openmina. These fuzzers do differential fuzzing against the OCaml implementation, support coverage, and snapshot-based fuzzing.

For the moment, focus is on the transaction fuzzer only (no staged ledger or proof fuzzers).
Remove FFI code: the rust fuzzer will communicate with the OCaml side via stdin/stdout and binprot. This simplifies a lot the build process and the maintenance of the mina node fork.
Remove OCaml coverage: since the focus now is fuzzing our implementation, we don't need coverage of the OCaml code. By removing it we no longer need to maintain our own PPX fork and less modifications are required to the mina node fork.
Move the fuzzer code to a standalone openmina/tools application.
Update dependencies, types, and all changes necessary to make it work with the current version of openmina.

UPDATE: updating type definitions, old dependencies, and old rust unstable features that changed semantics.

UPDATE: all remaining changes were completed and fuzzer builds.
TODO:

[ ] Fix IPC problems with OCaml counterpart.
[ ] Fix OCaml code so it doesn't enter in an infinite loop if the rust process suddenly dies.
[ ] Remove hardcoded paths and move OCaml counterpart to a Docker container.

Merged into develop.
Pending: fix issues with Docker container to automate the building of the OCaml component.


Remove the TypeChecker interface from Evaluator

Also, the PredicateEvaluator interface is subsumed to the Evaluator interface.

What this PR does / why we need it:
This is a sanity-refactoring that teases out responsibilities for the interfaces. With this CL, the exact nature of dependencies to the expression language is clearly demarcated.
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
Release note:

NONE

Friendly ping. Squash and merge looks pretty tempting.

Hmm, I thought I approved this already...
/lgtm

@ozevren: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-smoke.sh
51f95748cfbe941a9f4ac5e20a3db72e12915956
link
/test e2e-smoke

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test e2e-smoke


Nic device controller

Pull Request Test Coverage Report for Build<PHONE_NUMBER>7
Details

995 of 1513 (65.76%)  changed or added relevant lines in 14 files are covered.
3 unchanged lines in 2 files lost coverage.
Overall coverage increased (+9.5%) to 60.675%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/testutils/testutils.go
21
33
63.64%

pkg/host/mocks/HostManager.go
47
60
78.33%

pkg/maintenance/mocks/MaintenanceManager.go
46
63
73.02%

cmd/nic-configuration-daemon/main.go
0
18
0.0%

pkg/host/host.go
108
133
81.2%

pkg/host/configvalidation.go
147
184
79.89%

pkg/host/mocks/configValidation.go
48
115
41.74%

pkg/host/utils.go
183
254
72.05%

internal/controller/nicdevice_controller.go
295
377
78.25%

pkg/host/mocks/HostUtils.go
78
162
48.15%

Files with Coverage Reduction
New Missed Lines
%

pkg/host/host.go
1
84.02%

internal/controller/nicconfigurationtemplate_controller.go
2
89.05%

Totals

Change from base Build<PHONE_NUMBER>6:
9.5%

Covered Lines:
1637

Relevant Lines:
2698

💛  - Coveralls


InsertColumns

Coverage decreased (-0.5%) to 91.682% when pulling 1bf647763f40177c9b14d30a13a9e14243913d6d on insert-columns into 3d44a10b89ad0e3a800491209eee464e48e5f42c on v1-stable.


Upgrade ava

Upgrading ava to fix #44.
After bumping, ava got really angry about our file paths and started failing to successfully read our fixtures.
I'm not certain why the bump in ava caused this to show... perhaps managing state in child processes?
The fix seems fairly reasonable to me, (__dirname everywhere), but i'm totally open to alternatives.

@pmdartus wdyt? i'm open to whatever here.


Initial open the clock

Is it possible to open the clock initially? I did not found something in the code

Hi @peterklein, so yes it's possible by using the method open at the created like that:
<vue-clock-picker v-model="value" ref="time"></vue-clock-picker>

created() {
   this.$refs.time.open();
}


update: libarchive

Name: libarchive
CVEs: CVE-2024-26256, CVE-2024-48957, CVE-2024-48958
CVSSs: 7.8, 7.8, 7.8
Action Needed: update to >= 3.7.5
Summary:

CVE-2024-26256: libarchive Remote Code Execution Vulnerability.
CVE-2024-48957: execute_filter_audio in archive_read_support_format_rar.c in libarchive before 3.7.5 allows out-of-bounds access via a crafted archive file because src can move beyond dst.
CVE-2024-48958: execute_filter_delta in archive_read_support_format_rar.c in libarchive before 3.7.5 allows out-of-bounds access via a crafted archive file because src can move beyond dst.

refmap.gentoo: https://bugs.gentoo.org/939800

Added CVE-2024-48957, CVE-2024-48958.

Done in https://github.com/flatcar/scripts/pull/2364.


add statsd reporter support

What changed? Why?
add statsd reporter support
How did you test the change?

[x] unit test
[ ] integration test
[ ] functional test
[ ] adhoc test (described below)

Review Error for HenryYYang @ 2024-01-21 03:34:04 UTC
User failed mfa authentication, public email is not set on your github profile. see go/mfa-help


Bug in HID example

At line 123 in main.c for HID_Custom, you should have g_hid_out_report1 not g_hid_in_report1.
USB not being my strong point, it took me quite a while to figure out why it didn't work.

Oops, sorry about that. Thanks for letting me know. I'll fix that asap.


[CLOSED] add let type edit

 Issue by antalsz
Tuesday Oct 16, 2018 at 07:48 GMT
Originally opened as https://github.com/antalsz/hs-to-coq/issues/110

Allow specifying the type annotation on an internal let binding.  For instance, given
Definition outer : ... := let inner := ... in ....

Then
add let type Module.outer inner : type -> annotation

would result in
Definition outer : ... := let inner : type -> annotation := ... in ....

For instance, we currently work around this in CoreUtils/edits with
in CoreUtils.eqExpr rewrite forall, go (Core.mkRnEnv2 in_scope) e1 e2 = let _go_alt : Core.RnEnv2 -> (Core.CoreAlt -> (Core.CoreAlt -> bool)) := go_alt in go (Core.mkRnEnv2 in_scope) e1 e2

but it would be much cleaner to have
add let type CoreUtil.eqExpr go_alt : Core.RnEnv2 -> (Core.CoreAlt -> (Core.CoreAlt -> bool))

 Comment by antalsz
Tuesday Oct 16, 2018 at 07:48 GMT

Another option would be to attach this to inline mutual…

 Comment by antalsz
Friday May 24, 2019 at 19:58 GMT

I've just run into this again; it's still necessary

 Comment by antalsz
Tuesday Jun 11, 2019 at 07:32 GMT

We now have set type.  Thanks to the in meta-edit, we can do
in Module.outer set type inner : type -> annotation

I haven't gone through and checked everywhere we could use this, but it's now supported.
(I just need to merge in Yao's changes, so it'll probably get pushed tomorrow instead of right now.)


Fix Linux linking order

coroutine must be before context on some systems

https://github.com/hunter-packages/Beast/releases/tag/v1.0.0-b32-hunter-3


Establish initial version control of a1111 repo & dependencies list

This change implements rudimentary version control by way of replacing references to master/main branches within the A1111 notebook with version tags.

DERP, meant to open PR into the fork, sorry to anybody paying attention, long day.


Add quizlet to the list of sites

doing a little more contribution, will re-submit this later along with some other edits


TrayIcon.Menu: Icon on NativeMenuItem is not shown

When using an icon on a NativeMenuItem, it is not shown in UI.
E.g.
<TrayIcon.Icons>
    <TrayIcons>
        <TrayIcon Icon="/Assets/icon_blue.ico" ToolTipText="Avalonia Tray Icon ToolTip">
        <TrayIcon.Menu>
	    <NativeMenu>
                <NativeMenuItem Icon="/Assets/icon_grey.ico" Header="BLAAA" />
	    </NativeMenu>
        </TrayIcon.Menu>
        </TrayIcon>
    </TrayIcons>
</TrayIcon.Icons>

"icon_blue.ico" is shown, but "icon_grey.ico" is not shown.
Desktop (please complete the following information):

OS: Windows 10 64 Bit
Avalonia Version 0.10.9

Is there any kind of workaround I could do. Seems like the Icons are generally not shown on NativeMenuItem?

When this gets fixed?
For me,l and I think for many developers, this is an absolute showstopper for the whole TrayIcon feature.
The TrayIcon Icon is not usable.

Sorry for my overreaction in the past, your are all doing a great job...


I hope this project is alive

Seems like this is the only project that lets you take screenshots of workspaces.
I wish there was an install manual.

It's alive, I use it almost every day!
For now, the easiest way to install it is:

Clone the repo to the location of your choice

For example, git clone https://github.com/b0o/snag ~/code/snag

Make a symbolic link to the snag script somewhere in your PATH

Assuming that ~/.local/bin is in your PATH, run ln -s ~/code/snag/snag ~/.local/bin/snag

Now you should be able to run snag --help
If you want to create a key binding in sway, something like this should work:

bindsym Mod4+Print exec snag --rofi --dir ~/screenshots/

I'm happy to provide more help if needed.

Chad


Maps discussion

I just added an alternative HashMap implementation, based heavily on the IntMap code (there is definitely some room for improvements, e.g. using arrays for the buckets). While the old Map implementation has a lot of shortcomings, it also has some functionality I don't want to miss. I think before working on TreeMap, we should agree on a common Map interface. Further, it would be cool to benchmark  HashMap against Map.

Actually List for buckets are perfectly fine. It takes O(n) to traverse a list, and O(n) to traverse an array. However it technically takes O(1) to add an element to the head of a list, and O(n) to add an element to an array. (Although Array.copy is heavy optimised)

As for method names, they are a bit subjective. Different people might like different method names, we can supply aliased methods to cater for that.
I'm having a bit of trouble deciding on names myself. But I'm guessing the target audience would be those that have prior Higher Kinded Type knowledge and want to apply it for solving problems in Java. Which would include people from Scala and Haskell. So I'd recommend adapting a mixture of conventions used for Maps from those languages.

There is also a lot of additional methods we need to make it complete. We would need intersection, union, difference and updates that also depend on the key.
I am a fan of the methods used here https://pursuit.purescript.org/packages/purescript-intmaps/1.1.3/docs/Data.IntMap , but I am a bit biased.

I added temporarily a crude benchmark class, and I'm a little bit surprised by the results: There is no big difference between HashMap and Map concerning inserts and lookups, however my old Map performs clearly better for deletes. Hmm...

Remember Java needs a warm up period for the JIT optimizations to kick in.

I suppose with large integer keys (the full 32 bits). The IntMap uses full depth (5 levels max), where as Map wont be as deep (its depth depends on the number of items).
IntMap might only have good performance for index-like Keys. (Using IntMap like an persistent Vector)

If we get stuck too bad, we can try translating this one: https://hackage.haskell.org/package/unordered-containers-<IP_ADDRESS>/docs/Data-HashMap-Strict.html

A two things can be done to improve delete.

Node.isEmpty() currently traverses the entire tree each level while working back to the top of the tree. Really just need to see if each of the Branchs nodes is the actual empty node before reducing to the empty node.
In branch avoid allocating an array of nodes if the branch is about to become empty.

I've done some experimenting in a hashmap-tweaks branch on a fork of this repository.
https://github.com/clinuxrulz/highj/tree/hashmap-tweaks
I get the following results when I do a 5 round warm up and average over 10 runs. I also used a HASH_MAP to limit the size of the integer key:
Running org.highj.data.MapBenchmark
Warm up
Actual run. (Average times over 10 runs)
filling Map    : 0.0368489701 seconds
filling HashMap: 0.024817550600000002 seconds
lookup Map     : 0.0368489701 seconds
lookup HashMap : 0.024817550600000002 seconds
delete Map     : 0.045823338799999995 seconds
delete HashMap : 0.0380471581 seconds

The performance got a bit better, but too much black magic in choosing a HASH_MASK.
Seems to be better to go with your original Map for now.

Seems like nanoTime on my machine has a 9ms accuracy. Its very suspicious how filling and lookup mach in time taken for every digit.
May need to see performance on a graph with time vs number of elements. And use a larger number of elements to notice a bigger difference.

Hmmm, not really huge differences. Map could be improved by using not the actual hashCode, but a "bit-shuffled" version, which would minimize the risk for a degenerated, unbalanced tree when hashCodes come in order for some reasons.
Nice work with benchmarking and improving!

The benchmark library on this page might be worth looking in to: http://www.ibm.com/developerworks/java/library/j-benchmark2/index.html
Java benchmarking can be very tricky.

doing a manual garbage collection between the tests seems to make a difference too. The slow down in delete might of been the garabage collector being started.

HASH_MASK of 0xFFFFF
And garbage collection before start of test, and before end of test. This will make the time for the deallocation of memory get included in result.
    private static <T> T2<T,Double> time(Supplier<T> supplier) {
        System.gc();
        long start = System.nanoTime();
        T t = null;
        for (int i = 0; i < 10; ++i) {
            t = supplier.get();
        }
        System.gc();
        long end = System.nanoTime();
        return T2.of(t, (end - start) / 10.0 /<PHONE_NUMBER>.0);
    }

And the result becomes:
Running org.highj.data.MapBenchmark
Warm up
0
1
2
3
4
Actual run. (Average times over 10 runs)
filling Map    : 0.0911456993 seconds
filling HashMap: 0.060811082200000005 seconds
lookup Map     : 0.0911456993 seconds
lookup HashMap : 0.060811082200000005 seconds
delete Map     : 0.11461590220000001 seconds
delete HashMap : 0.073576071 seconds

Okay, looks like we should ditch Map.
One thing I asked myself is if we could reuse the "machinery" of IntMap a little better, as it could be the backbone of HashMap, HashSet, Multi(Hash)Set and Multi(Hash)Map as well. For this, we would need to separate the bit-shift magic from the "payload" in Leaf, however the node implementations would need some hooks to have more control over the behavior.

I was thinking something simple as:
public class HashMap<K,V> {
    private static final into HASK_MASK = 0xFFFFF;
    private final IntMap<T2<K,V>> intMap;
    . . .

Then just proxy the methods.

HashSet can work similar as well.
public class HashSet<V> {
    private static final into HASK_MASK = 0xFFFFF;
    private final IntMap<List<V>> intMap;
    . . .

I was thinking later we could profile FJ's new HashArrayMappedTrie against HighJ's Map.
See: https://github.com/mperry/functionaljava/blob/06833e56eb3c1778062c4aa2499e7af47f1c76c7/core/src/main/java/fj/data/hamt/HashArrayMappedTrie.java
And if it performs better then we can just adapt it and give credit to FJ.
Adjusting our IntMap for good performance for use as a HashMap seems too fiddly.


add vue component support

add vue component support

@Ivanwangcy Thanks for the PR but I don't know what this is meant to be doing. Adding vue as a scope name like this will do nothing other than break the grammar. As for adding .vue as a filetype, my grammar isn't designed to parse vue files correctly.
Take for example this trivial example.
<script>
  var Vue = require('vue');
</script>

The embedded JS will not be highlighted.
Sorry but I can't accept this PR.


[ENHANCEMENT] Support customizing replicas number in all components

Describe the use case:
Allow increasing replicas number of all Camunda Platform 8 components.
Describe the enhancement/feature:
Currently, we only support customizing replicas number in Zeebe, and we need to support it for all components (Tasklist, Operate, etc.).
Desired outcome and acceptance tests:

Allow customizing replica numbers via values file.
The default replica number shouldn't change.

Hi Team, here are some notes in case they help:

Here’s an example of how to setup 2 instances (aka replicas) of the Operate webapp, and 1 instance of the importer/archiver: https://github.com/camunda-community-hub/camunda-8-helm-profiles/tree/main/operate

Here’s an example of how to setup 2 instances (aka replicas) of the Tasklist webapp, and 1 instance of the importer/archiver: https://github.com/camunda-community-hub/camunda-8-helm-profiles/tree/main/tasklist

Optimize - See this page here for configuration options available for Optimize in Camunda 8: https://docs.camunda.io/optimize/self-managed/optimize-deployment/configuration/system-configuration-platform-8/
It’s possible to start multiple replicas of Optimize as long as zeebe.enabled is set to false. This parameter can be controlled by setting an environment variable named CAMUNDA_OPTIMIZE_ZEEBE_ENABLED.
To scale optimize, create a deployment.yaml file and set CAMUNDA_OPTIMIZE_ZEEBE_ENABLED to false. The number of replicas in this deployment can then be increased depending on how many replicas you need.
Create a second deployment.yaml and set CAMUNDA_OPTIMIZE_ZEEBE_ENABLED to true. The replica must be set to 1 when the importer is enabled.

Identity
It’s possible to run multiple instances of Identity without problems. When starting from a fresh environment, Identity will initialize the realm and all data. So, the only condition is that multiple instances of Identity should not be started at the same time if this is the first time that Identity has ever been started in an environment.
However, after identity has been started in an environment, and the realm is initialized, it’s possible to increase the number of replicas and restart identity.

Keycloak
I also researched how to horizontally scale Keycloak and found these two links which should be helpful:

https://github.com/bitnami/charts/tree/main/bitnami/keycloak#keycloak-statefulset-parameters
https://docs.bitnami.com/kubernetes/apps/keycloak/administration/scale-deployment/

I'm closing this issue in favor of https://github.com/camunda/camunda-platform-helm/issues/975 since it has more details.


Accessing via HTML or PHP

How does one access components like slugs, albums, photos (under "Documentation") using HTML or PHP?
It doesn't seem like the syntax for markdown will work and not sure how to use SELF in this context?
EDIT: I basically want to be able to retrieve a list of the albums, open particular albums, and get lists of the photos in that album by url. Is that possible here?
Thanks!

It works the same was it works for other components in October. For the list of albums you add Albums component to the page, for the listing of photos in specific albums you add Album component to the page. It works same way as you do with RainLab.Blog for example.

Thanks. I'm still fairly new to working with components. I've basically
just used the native components for accessing media, etc.
I've got the PhotoAlbums components added to my page of choice, but do I
need to set anything in order to get all of the albums (in some sort of
list/set object) or what's the proper syntax to access it? I was trying to
dump the parameters from the different components but wasn't seeing
anything printed out. I do have one album with a couple test images so far.
Cheers.
On Mon, Oct 12, 2020 at 1:55 AM Graker<EMAIL_ADDRESS>wrote:

It works the same was it works for other components in October. For the
list of albums you add Albums component to the page, for the listing of
photos in specific albums you add Album component to the page. It works
same way as you do with RainLab.Blog for example.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/graker/oc-photoalbums-plugin/issues/11#issuecomment-706981683,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AI2REQZMDEQ3QON2I7QVMZ3SKLAANANCNFSM4SMBOQDQ
.

You attach the component to your page, set up the parameters in component's config, print it in page template, e.g. {% component "albumList" %} and that's basically it.

If you want to alter the component's output, for example, change how each album is rendered, you copy the partial template of corresponding component to your theme and make the changes you need there.

If you need further help, please provide some code examples and information on what you've got so far and what is that you're trying to achieve.

Thanks @graker.
I'm using lightslider for displaying some photos right now, but I want a better backend experience for managing the photos than just using the native octobercms "Media" plugin. What I would like to do is continue to use lightslider for the frontend and photoalbums for the backend UI/image organization. My understanding is that with PhotoAlbums I can

get the set of all albums, extract their handles and thumbnail/low-res image cover, and use that to generate the available albums (see what I have already on this test site). I already have the formatting I desire, so I just want to be able to get the url for each album and their associated cover photo.
Pseudocode:
albums_list = retrieve_existing_albums_from_photoalbums()
for album in albums_list:
album_handle, cover_image_url = extract_relevant_properties(album)
display_necessary_info_on_page(album_handle, cover_image_url)

given an album name/url, get the ordered urls for all the photos in the album. Right now, I have folders in Media that are filled with the photos for each "collection/album" that I want to make. This just makes it difficult to reorder photos, add any metadata etc, so I'd like to use PhotoAlbums. This creates a gallery in my paradigm (e.g. desert.
ordered_photos_url_list = retrieve_photos(album_name)
for photo_url in ordered_photos_url_list:
display_formatted_photo(url=photo_url)

Is this possible? I can handle the frontend formatting, I just am having trouble accessing url parameters from any of the attached components. Is there a good way to print out the properties for each component? I've tried using this: "{{ dump(this.page.components['albumList'].properties) }}" but it is somewhat opaque to me. If I could walk the structure, that would be easiest I think.
Many thanks!

I still don't understand the issue :) Here's the default template to render Album component. See this cycle:
{% for photo in album.photos %}

            {{ photo.title }}

    {% else %}

Album doesn't have any photos yet

    {% endfor %}

The cycle is going over each photo and accessing it's properties. Isn't it what you need?
If you want to go straight for image file url instead of photo's page url, you can check out this template that renders a separate photo page. See how IMG tag is rendered:

Try to go for photo.image.path in your album's template. Or you can configure thumbs in album component to fit your needs.

I think my issue is actually more basic.
Right now, when I set up the page, I originally thought I was going to add the components (similarly to RainLab.Blog) like:
title = "TEST"
url = "/test"
layout = "default"

[album]
slug = "mountains"
[albumList]
[photo]
[randomPhotos]

However, only albumList and randomPhotos allow for the page to load (in debug mode). The other two throw:
Class name is not registered for the component "album". Check the component plugin.
.../modules/cms/Classes/ComponentManager.php line 199

Is this an install issue, or the incorrect name for album and photo?
Furthermore, albumList does not seem to register that one album does in fact exist:
title = "TEST"
url = "/test"
layout = "default"

[albumList]
==
==
{% for album in albumList %}

{{ album.title }}

            Created on {{ album.created_at|date('M d, Y') }}
            {{ album.photo_count }} images

    {% else %}

You have not created any albums yet

    {% endfor %}

Which returns:

You have not created any albums yet

Is this an incorrect usage of albumList?
Thanks again.

@seanjkanderson ,
It seems from the first code sample that you haven't set component parameters. Check out how I attach album list to my page:
[albumList]
title = "Galleries"
url = "/galleries"
layout = "default"
description = "Galleries page"
is_hidden = 0

[albumList]
albumPage = "album"
thumbMode = "crop"
thumbWidth = 640
thumbHeight = 480
albumsOnPage = 30
==

Galleries

    {% component "albumList" %}

See those params under [albumList]? I think albumPage is mandatory.
Also, have you had the plugin installed properly, with migrations etc? Do you see your one existing album here: /backend/graker/photoalbums/albums? Because this plugin can not pick up your Media content, you have to create albums and upload photos via PhotoAlbums backend.

Also I'm not sure this would work:
[album]
slug = "mountains"
[albumList]
[photo]
[randomPhotos]

because two components here definitely require different slugs to pick up album and photo, and I'm not sure about that slug = mountains order of execution, nor whether it can exist in components section of October's template.
Could you maybe try to create several test pages and display components one by one to figure out what you can do with them?

Also, for the Album component ([album]), did you add it via page backend, or manually in the template? Because when I add it to a page via backend, it's default alias is photoAlbum, not album, see this example:
title = "Photo album"
url = "/galleries/:slug"
layout = "default"
description = "Single album page"
is_hidden = 0

[photoAlbum]
slug = "{{ :slug }}"
photoPage = "photo"
thumbMode = "crop"
thumbWidth = 640
thumbHeight = 480
photosOnPage = 30
==

    {% component "photoAlbum" %}

Same goes for photo component, it's default alias is singlePhoto. Try to add it via backend's CMS page.

So I can I get this to work (it displays the two existing albums):
`title = "TEST"
url = "/test"
layout = "default"
[albumList]
albumPage = "albums"
thumbMode = "crop"
thumbWidth = 640
thumbHeight = 480
albumsOnPage = 30
==

    {% component "albumList" %}
`
However, this just prints out "You have not created any albums yet":
`title = "TEST"
url = "/test"
layout = "default"
[albumList]
albumPage = "albums"
thumbMode = "crop"
thumbWidth = 640
thumbHeight = 480
albumsOnPage = 30
==

{% for album in albumList %}

{{ album.title }}

        Created on {{ album.created_at|date('M d, Y') }}
        {{ album.photo_count }} images

{% else %}

You have not created any albums yet

{% endfor %}

`
Should I be iterating over a different object?

I think I've found a different solution now that will be easier for my purposes. Thanks for your help!

Okay, now I see it doesn't have anything to do with the plugin :)

Should I be iterating over a different object?

You shouldn't have replaced {% component "albumList" %} with your cycle to begin with, because that's not how it works in October. If you wanted to replace the default component markup with your code, you should have overrode component's partial as I suggested earlier. See this in docs: https://octobercms.com/docs/cms/components#overriding-partials they explain there, where you should put your custom markup for the component.
Because when you remove {% component "albumList" %} from the page it means that October doesn't see the component anymore. So your cycle will always yield You have not created any albums yet because the system doesn't know what is that albumsList you're iterating over.

I see now. Thanks very much for your help @graker!
On Tue, Nov 17, 2020 at 11:41 AM Graker<EMAIL_ADDRESS>wrote:

Okay, now I see it doesn't have anything to do with the plugin :)
Should I be iterating over a different object?
You shouldn't have replaced {% component "albumList" %} with your cycle
to begin with, because that's not how it works in October. If you wanted to
replace the default component markup with your code, you should have
overrode component's partial as I suggested earlier. See this in docs:
https://octobercms.com/docs/cms/components#overriding-partials they
explain there, where you should put your custom markup for the component.
Because when you remove {% component "albumList" %} from the page it
means that October doesn't see the component anymore. So your cycle will
always yield You have not created any albums yet because the system
doesn't know what is that albumsList you're iterating over.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/graker/oc-photoalbums-plugin/issues/11#issuecomment-729157681,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AI2REQ7KTRI5PO4C63HBC2TSQLGWHANCNFSM4SMBOQDQ
.


Option to ignore certain fields when validating resources

Certain resource properties often contain an invalid value when retrieved from a cluster - for example creationTimestamp in the screenshot below:

To avoid this error cluttering up the interface and "hiding" any real errors it would be helpful if Monokle could maintain a list of paths to ignore during validation

a couple of questions here - should we:

make this list configurable?
only ignore when validating cluster resources?
add a setting to enable/disable?

A possible solution could be:

add a setting "Ignore properties during validation" with the values "alwasy, never, cluster-preview only"
add a configurable list of properties (as we have for the file includes/excludes) - default values being ["lastProbeTime", "creationTimestamp"]

thoughts @devcatalin @fog1985 @erdkse @kambydyne ?

I'd like a combination of both solutions: having a configurable list of properties where you can set one of the values "always, never, cluster-preview only" for each of the configured property