[KYUUBI #2918][Bug] Kyuubi integrated Ranger failed to query: table stats must be specified

Why are the changes needed?
Fix #2918
How was this patch tested?

[x] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

Codecov Report

Merging #2967 (24aaf81) into master (994dc6c) will decrease coverage by 0.01%.
The diff coverage is 74.28%.

@@             Coverage Diff              @@
##             master    #2967      +/-   ##
============================================
- Coverage     62.89%   62.87%   -0.02%
  Complexity        6        6
============================================
  Files           418      417       -1
  Lines         20252    20255       +3
  Branches       2589     2574      -15
============================================
- Hits          12738    12736       -2
- Misses         6282     6296      +14
+ Partials       1232     1223       -9

Impacted Files
Coverage Δ

...ark/authz/util/RowFilterAndDataMaskingMarker.scala
75.00% <66.66%> (+25.00%)
:arrow_up:

...uthz/ranger/RuleApplyRowFilterAndDataMasking.scala
84.61% <75.00%> (+1.85%)
:arrow_up:

.../org/apache/kyuubi/operation/OperationHandle.scala
76.66% <0.00%> (-14.04%)
:arrow_down:

...la/org/apache/kyuubi/operation/GetTableTypes.scala
66.66% <0.00%> (-8.34%)
:arrow_down:

...ubi/engine/spark/operation/SetCurrentCatalog.scala
60.00% <0.00%> (-6.67%)
:arrow_down:

...ache/kyuubi/server/KyuubiRestFrontendService.scala
79.48% <0.00%> (-3.41%)
:arrow_down:

...he/kyuubi/engine/spark/operation/GetCatalogs.scala
80.00% <0.00%> (-3.34%)
:arrow_down:

...ubi/engine/spark/operation/GetCurrentCatalog.scala
80.00% <0.00%> (-3.34%)
:arrow_down:

...bi/engine/spark/operation/GetCurrentDatabase.scala
80.00% <0.00%> (-3.34%)
:arrow_down:

...rg/apache/kyuubi/ctl/cmd/log/LogBatchCommand.scala
80.00% <0.00%> (-2.00%)
:arrow_down:

... and 15 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 994dc6c...24aaf81. Read the comment docs.

the idea looks promising, I left some comments. also cc @MLikeWater @zhaomin1423
FYI, you can also pick the test code from PR #2945 for double verification

Added two more test cases.
The credit also goes to @zhaomin1423 . His PR helped a lot for me to figure out this solution. And I also included his test case in this PR.

thanks, @zhouyifan279 @zhaomin1423 for the fix， and @MLikeWater as the original reporter.
merged to master

thanks, @zhouyifan279 @zhaomin1423 for the fix， and @MLikeWater as the original reporter.
merged to master

@yaooqinn @zhouyifan279 @zhaomin1423 thank you all, pass-test.


Example of how to access configuration in a JUnit test case

Is it possible to access server configuration properties for use in a JUnit test case?
Something like:
server = Server.create().start();
String property = server.getConfig().get("app.myProperty");

I know that I can define my own Config instance prior to creating the server, however, if possible I would like to rely on the properties that the server loads by default.

Helidon components do not internally use a Config instance - they extract the values from config and store them in fields (most of Helidon components are immutable).
There are a few properties you can get through methods, such as the port the server is running on (Server.port()).
I think it may be a good enhancement to provided the "defaults" of each component.
In your example, you are looking for app.myProperty - that would never be available on Server, as server only cares about properties in its configuration tree. Also server would never create a Config instance, unless one is provided through API.

Thanks Tomas. I got around the issue by doing this:
		Config config = Config.builder().build();
		server = Server.builder().config(config).build().start();

I was just wondering if there was an alternative solution that avoided building my own config instance - I was concerned that this may be built differently to the one created internally when simply calling Server.create().start();.
Happy for this to be closed.

For the record, I believe this is the "correct" option:
		server = Server.create().start();
		Config config = ConfigProvider.getConfig();

A guide on unit testing would be very much appreciated, in particular for dependency injection. I'd be happy to contribute. Example:
class JpaTest {
	@PersistenceContext
	private EntityManager entityManager;

	@BeforeAll
	public static void setup() {
		cdiContainer = SeContainerInitializer.newInstance().addBeanClasses(JpaTest.class).initialize();
		assertNotNull(cdiContainer);

		server = Server.create().start();
		Config config = ConfigProvider.getConfig();
	}

	EntityManager getEntityManager() {
		return entityManager;
	}

	@Test
	public void aTestCase() {
		final EstimationToolJpaTest self = cdiContainer.select(JpaTest.class).get();
		assertNotNull(self);
		EntityManager em = self.getEntityManager();
		assertNotNull(em);
	}
}

You can use Config.create() as a shortcut for builder
Server does create its own Config, though you can also pass your own instance using the builder
You can control how config is created through meta configuration (see the docs)
In MP you have a choice for configuration

You can either leave it to us to create a configuration instance (that uses either meta configuration, or expected configuration files on classpath)
You can create configuration using Helidon SE Config and pass it to the Server builder
You can create configuration using MicroProfile Config (ConfigProviderResolver.instance().getBuilder()) to use the MP specific APIs

I realized I did not answer one question - yes, Config config = ConfigProvider.getConfig(); is the correct way to obtain config instance anywhere in Helidon MP. You must be careful about timing, if you want to use a custom build config. If you rely on the default instance, you are fine calling this method anytime (though I would recommend not calling it in a static initializer, as that would not work nice with GraalVM native image in the future).

For the unit testing of CDI, I would kindly ask @ljnelson to get into the conversation

For unit testing I like to keep things simple.  Here's a short little recipe I use (I'm typing this mostly from memory so excuse syntax errors; I'm sure you'll get the idea:
@ApplicationScoped // make the test itself a bean
class MyTest {

  private SeContainer cdiContainer;

  @Inject // inject whatever you want
  private Frob whatever;

  @Inject // here we've injected a MicroProfile Config implementation
  private Config microprofileConfig;

  @PersistenceContext // ...if you use Helidon JPA stuff
  private EntityManager em;

  @Inject // self-injection so you can test interceptors etc.
  private MyTest self;

  @BeforeEach
  public void setUp() {
    if (this.cdiContainer != null) {
      this.cdiContainer.close();
    }
    final SeContainerInitializer initializer = SeContainerInitializer.newInstance();
    initializer.addBeanClasses(this.getClass());
    this.cdiContainer = initializer.initialize();
    // If you need Helidon and not just CDI; obviously store it somewhere
    final Server server = Server.builder().cdiContainer(this.cdiContainer).start();
  }

  @AfterEach
  public void tearDown() {
    if (this.cdiContainer != null) {
      this.cdiContainer.close();
  }

  @Test
  public void testSomething() {
    // you can't just use, e.g. this.em, because @Test methods are not invoked by CDI.
    // so you'll need to use a method on the test-as-bean, like so:
    final EntityManager entityManager = self.getEntityManager();
    final Frob whatever = self.getWhatever();
  }

  public Config getConfig() {
    return this.config;
  }

  public EntityManager getEntityManager() {
    return this.em;
  }

  public Frob getWhatever() {
    return this.whatever;
  }
}

@mattjlewis Does this get you what you need?

Yes, thank you.


Fix backwards compatability of TopicPartitionOffset constructor #2060

Version 2.1 (specifically commit https://github.com/confluentinc/confluent-kafka-dotnet/commit/9826d7941176882ac0d739a08912daa2054b3c95) introduced a breaking change (looks unintentional as you would think optional parameters would be non-breaking but they aren't). This is causing my applications that reference a library that uses a library that uses Confluent.Kafka to break when the entry app tries to upgrade to the latest Confluent.Kafka.
See #2060

Closing this as your commit is merged with PR #2066.


litemdview: added

Minimalist suckless markdown viewer. Serves
the same purpose and people as nsxiv, zathura.
Description of changes

This is a new package: litemdview. Amazing suckless markdown viewer, similar to zathura and nsxiv in its purpose.
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

I haven't found any new packages in rl-2305.section.md file, so not sure if I should add this one to any release notes.
Tested the correctness as follows:
nix-shell -p litemdview -I nixpkgs=~/prj/nixpkgs/nixpkgs

Thanks. Apparently there is a version, I just never noticed it. Took into account all your comments, hopefully

Oh, and just realising, if it is inspired by suckless, is it also "configure through patches"?
In this case an overridable patches ? [] would make sense.

Result of nixpkgs-review pr 209770 run on x86_64-linux 1

1 package built:

litemdview

Result of nixpkgs-review pr 209770 run on aarch64-linux 1

1 package built:

litemdview

Result of nixpkgs-review pr 209770 run on x86_64-linux 1

1 package built:

litemdview

diff --git a/pkgs/applications/graphics/litemdview/default.nix b/pkgs/applications/graphics/litemdview/default.nix
index 12939c7b183..36864b4a1c3 100644
--- a/pkgs/applications/graphics/litemdview/default.nix
+++ b/pkgs/applications/graphics/litemdview/default.nix
@@ -3,9 +3,7 @@
 , fetchFromGitea
 , fetchpatch
 , gtkmm3
-, autoconf
-, automake
-, libtool
+, autoreconfHook
 , pkg-config
 }:

@@ -27,14 +25,10 @@ stdenv.mkDerivation rec {
   ];

   nativeBuildInputs = [
-    autoconf
-    automake
+    autoreconfHook
     pkg-config
-    libtool
   ];

-  preConfigure = "./bootstrap";
-
   meta = with lib; {
     homepage = "https://notabug.org/g0tsu/litemdview";
     description = "A suckless markdown viewer";

With this change, I think it should be good to go, unless you want to add any passthru.tests. Hard to test a GUI app, though.

Note: I keep all my package in one commit, is it how it should be, or should I commit changes per PR review in different commits?

There's a conflict in maintainers/maintainer-list.nix, also fetchpatch appears unused.

The best way is to split it into two commits:

maintainers: add WhiteBlackGoose
litemdview: init at 0.0.32

Oh yeah that's what I meant (and how I keep it). Okay thanks
I'll quickly remove the unused dep and rebase

@ofborg build litemdview

Result of nixpkgs-review pr 209770 run on x86_64-linux 1

1 package built:

litemdview


Description of adding @Route to the main view misses a word

I found a missing word error in "Define the Main View class" section of this guide(image attached below)

@pivotal-cla This is an Obvious Fix

@snicoll This should be merged as well!

@sushnag22 thanks for making your first contribution to the guide!


Allow to override build date with SOURCE_DATE_EPOCH

Allow to override build date with SOURCE_DATE_EPOCH
in order to make builds reproducible.
See https://reproducible-builds.org/ for why this is good and https://reproducible-builds.org/specs/source-date-epoch/ for the definition of this variable.
This patch was done while working on reproducible builds for openSUSE.

Thank you for the patch.  Note there's also the issue #75.
Since this patch is probably an RPM-only solution, I'd probably prefer
having this date logic, note the latter detections should beat the former:

time.time() by default
SOURCE_DATE_EPOCH env var (solves RPM builds if no better detection
available)
what @ssbarnea suggests, i.e. detecting from .gith
the --date option (explicit decision)

The first two are implemented by this PR.  The third can be added later,
As such, I like the PR.  @ssbarnea can you take a look?

SOURCE_DATE_EPOCH is set by various package builds, e.g. in Debian, ArchLinux, NixOS, Guix - in addition to rpm.
If you have a .git tree instead of a release tarball, you can also extract %ct from it.
An explicit --date option is not as useful, because it requires us to patch an infinite number of callers.

Ok, thank you again for the patch!


How to turn off logging?

Great lib, is there any way to turn standard logging off?

What logs are you getting?

Yep, sorry, should have provided some more info:
processing..
iCAL-PARSER: 1 events parsed
iCAL-PARSER: 1 events parsed
iCAL-PARSER: 1 events parsed

I guess it is from one of the libs you are using?

This is from the library ical-parser. That library currently does not have a verbosity flag to change. I will see about forking their code to add that in, it has bugged me as well seeing those logs. Give me a few days.

Updated to 1.6.2. Use setting parserLogging: true/false to toggle logs.

Lovely, that was fast. Thanks and all the best

Thanks,
please add the async package, you probably have it globally :-)
And the new version doesn't work for me. I get
I20200923-22:40:31.320(2)? processing..
I20200923-22:40:31.355(2)? processing..
I20200923-22:40:33.275(2)? processing..

But no events are returned, strange ... did you change anything else?

I will take a look at this

Solved by #4


Set emmet.useNewSetting to false by default in 1.14

Currently in the Insiders we have emmet.useNewEmmet set to true by default.
Once the branch for release/1.14 is cut, this should be set to false in the release branch.
Creating this issue to track this, as I will be on vacation next week
https://github.com/Microsoft/vscode/blob/709211c2abfa7769431940e4f294bb4629076389/src/vs/workbench/parts/emmet/electron-browser/emmet.contribution.ts#L65

Can you please check the previous emmet  issue (a few second ago) madam ramya rao ?

@ta-riq Can you link the other issue you are referring to?

He maybe means this issue https://github.com/Microsoft/vscode/issues/29907 @ramya-rao-a
Even though the reproduction steps are very poor.


Extension 1.19.55

basically V1.21.02, but Verno turned back,
because of problems with files generated.
(Verno is part of the text files, what changes the text file ...)
Enhancement: German translation improved
Enhancement: Info screen-doc improved
Enhancement: added option to create config file template
Enhancement: inserted option OldFilesPerDBC to define the use splitting of DBC like version pre 1.21.0

There is a bug, I left one occurrence of the verno in 1.21.

@lscheffler Are you going to create another pull request? I want to wait until you have made all of your changes before I add mine to minimize the conflicts.

I'm close to pushing - found an other bug I was working whole day. Need to set up doc. Maybe 2h


unstable validator_basic "processedRowsStatus": "insert\/update\/delete: 1\/0\/0" count: 0 != expected: 1

Which jobs are flaking?
validator_basic
Which test(s) are flaking?
DM-IT
Jenkins logs or GitHub Actions link
[2022-08-04T04:41:26.432Z] command: query-status test "processedRowsStatus": "insert\/update\/delete: 1\/0\/0" count: 0 != expected: 1, failed the 9-th time, will retry again

[2022-08-04T04:41:28.321Z] {

[2022-08-04T04:41:28.321Z]     "result": true,

[2022-08-04T04:41:28.321Z]     "msg": "",

[2022-08-04T04:41:28.321Z]     "sources": [

[2022-08-04T04:41:28.321Z]         {

[2022-08-04T04:41:28.321Z]             "result": true,

[2022-08-04T04:41:28.321Z]             "msg": "",

[2022-08-04T04:41:28.321Z]             "sourceStatus": {

[2022-08-04T04:41:28.321Z]                 "source": "mysql-replica-01",

[2022-08-04T04:41:28.321Z]                 "worker": "worker1",

[2022-08-04T04:41:28.321Z]                 "result": null,

[2022-08-04T04:41:28.321Z]                 "relayStatus": null

[2022-08-04T04:41:28.321Z]             },

[2022-08-04T04:41:28.321Z]             "subTaskStatus": [

[2022-08-04T04:41:28.321Z]                 {

[2022-08-04T04:41:28.321Z]                     "name": "test",

[2022-08-04T04:41:28.321Z]                     "stage": "Running",

[2022-08-04T04:41:28.321Z]                     "unit": "Sync",

[2022-08-04T04:41:28.321Z]                     "result": null,

[2022-08-04T04:41:28.321Z]                     "unresolvedDDLLockID": "",

[2022-08-04T04:41:28.321Z]                     "sync": {

[2022-08-04T04:41:28.321Z]                         "totalEvents": "9",

[2022-08-04T04:41:28.321Z]                         "totalTps": "0",

[2022-08-04T04:41:28.321Z]                         "recentTps": "0",

[2022-08-04T04:41:28.321Z]                         "masterBinlog": "(dm-integration-test-go1180-8595-nfnn8-hzl1f-bin.000001, 11377)",

[2022-08-04T04:41:28.321Z]                         "masterBinlogGtid": "21886096-13ae-11ed-8dcd-9e8c32ceba30:1-48",

[2022-08-04T04:41:28.322Z]                         "syncerBinlog": "(dm-integration-test-go1180-8595-nfnn8-hzl1f-bin.000001, 11377)",

[2022-08-04T04:41:28.322Z]                         "syncerBinlogGtid": "",

[2022-08-04T04:41:28.322Z]                         "blockingDDLs": [

[2022-08-04T04:41:28.322Z]                         ],

[2022-08-04T04:41:28.322Z]                         "unresolvedGroups": [

[2022-08-04T04:41:28.322Z]                         ],

[2022-08-04T04:41:28.322Z]                         "synced": true,

[2022-08-04T04:41:28.322Z]                         "binlogType": "remote",

[2022-08-04T04:41:28.322Z]                         "secondsBehindMaster": "0",

[2022-08-04T04:41:28.322Z]                         "blockDDLOwner": "",

[2022-08-04T04:41:28.322Z]                         "conflictMsg": ""

[2022-08-04T04:41:28.322Z]                     },

[2022-08-04T04:41:28.322Z]                     "validation": {

[2022-08-04T04:41:28.322Z]                         "task": "test",

[2022-08-04T04:41:28.322Z]                         "source": "mysql-replica-01",

[2022-08-04T04:41:28.322Z]                         "mode": "full",

[2022-08-04T04:41:28.322Z]                         "stage": "Running",

[2022-08-04T04:41:28.322Z]                         "validatorBinlog": "(dm-integration-test-go1180-8595-nfnn8-hzl1f-bin.000001, 10922)",

[2022-08-04T04:41:28.322Z]                         "validatorBinlogGtid": "",

[2022-08-04T04:41:28.322Z]                         "result": null,

[2022-08-04T04:41:28.322Z]                         "processedRowsStatus": "insert/update/delete: 0/0/0",

[2022-08-04T04:41:28.322Z]                         "pendingRowsStatus": "insert/update/delete: 0/0/0",

[2022-08-04T04:41:28.322Z]                         "errorRowsStatus": "new/ignored/resolved: 0/0/0"

[2022-08-04T04:41:28.322Z]                     }

[2022-08-04T04:41:28.322Z]                 }

[2022-08-04T04:41:28.322Z]             ]

[2022-08-04T04:41:28.322Z]         }

[2022-08-04T04:41:28.322Z]     ]

[2022-08-04T04:41:28.322Z] }

https://ci2.pingcap.net/blue/organizations/jenkins/dm_ghpr_integration_test/detail/dm_ghpr_integration_test/8595/pipeline
Anything else we need to know

Does this test exist for other branches as well?

Has there been a high frequency of failure lately?

do you have some advice? @buchuitoudegou

seems the validation procedure is too slow...
[2022-08-04T04:41:28.955Z] [2022/08/04 12:41:26.128 +08:00] [INFO] [server.go:776] [request=QueryStatus] [payload="name:\"test\" "]
...
[2022-08-04T04:41:28.956Z] [2022/08/04 12:41:27.156 +08:00] [DEBUG] [validate_worker.go:276] ["pending row count (insert, update, delete)"] [task=test] [unit="continuous validator"] [id=1] [before="[1,0,0]"] [after="[0,0,0]"]

The last query-status happened before the validator finished validating.

https://github.com/pingcap/tiflow/blob/b85512aa2734f4b5046d251c14e620eddd6f6630/dm/tests/validator_basic/run.sh#L651-L654
we purposely added a delay here to let the validator fall behind so that we can check the validator is capable of validating rows after the syncer is stopped by checking whether it can catch up with the process of the syncer.

This delay is quite stable in local env. What about reducing the delay to 1sec or 1.5sec?

/close
not the same issue
record in: https://github.com/pingcap/tiflow/issues/6734


AnimatedList sample app

A sample app that demonstrates how to use AnimatedList. It includes a ListModel class, that demos how to link a list data model with the AnimatedList.
The app is lightly documented. I hope that in the near future:

The AnimatedList dart doc will link to it
The widget catalog will include an entry for AnimatedList and link to it

In the slightly longer term I hope that:

We'll automatically generate a screenshot of the app in action
The widget catalog will incorporate the screenshot
There will be more samples

This is all flutter create generated boilerplate except for:
examples/samples/animated_list/pubspec.yaml
examples/samples/animated_list/lib/main.dart
examples/samples/animated_list/test/smoke_test.dart

What does the "samples" part mean?  I was expecting this to just be in examples/animated_list

Maybe examples/widgets/* ?
@abarth The idea is to build a little example app for each widget, as I understand it.

I'm worried that gradle/Xcode overhead will make that prohibitive.  Can we have one sample app that shows off each in a separate page?  That sounds a bit like flutter_gallery...

The goal is for each sample to be a self-contained app. There doesn't really need to be one sample app per flutter project, for example we could have a collections of samples per TBD widget category (I don't think a flutter gallery style viewer for all of the samples is needed either). That said, perhaps we should add directory substructure as needed. How about I just move this first sample up a level and move lib/main.dart to lib/animated_list_sample.dart?

We could do this layers-style. The layers directory has one "app" but many "main.dart" files (named various things).

Yeah, maybe we should merge layers into this example at some point.

I've set things up so that many sample apps can be moved in examples/samples/lib.
I'll add some scaffold/appbar samples next to help flesh out the way things are organized.

The example looks a bit more complicated than I would have expected from such a thing, but LGTM.

Hey! Sorry for my question but why the internal list? I altered the sample to only use the animated list (and its state) and it works fine.


SeatAvailability aggregate broken?

In the SeatAvailability example, how do we account for overbooking?  If two transactions are concurrently running, they may read the same event stream, determine the same number of available seats, and emit a Reservation event.  Consider if there is 1 seat remaining, and the two concurrently running transactions reserve 1 seat each.
We don't have a central record that is being updated, so optimistic locking is out.  A single processor is possible, but that constrains scalability.

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

ID: 2d510272-fa5f-07f9-8b06-fb88d45d2464
Version Independent ID: 578a488f-89a7-92cc-779f-b4906f6d731a
Content: Event Sourcing pattern - Cloud Design Patterns
Content Source: docs/patterns/event-sourcing.md
Service: architecture-center
Sub-service: design-pattern
GitHub Login: @dragon119
Microsoft Alias: pnp

Thanks for reporting - this issue is under review. This is a Microsoft Internal DevOps Bug ID # 384891

You are correct, when you cannot single thread the processor, this doesn't eliminate concurrency issues.
Matter of fact, this is called out in the article:

Even though event sourcing minimizes the chance of conflicting updates to the data, the application must still be able to deal with inconsistencies that result from eventual consistency and the lack of transactions. For example, an event that indicates a reduction in stock inventory might arrive in the data store while an order for that item is being placed, resulting in a requirement to reconcile the two operations either by advising the customer or creating a back order.

Your example is another situation of this. These solutions often do have remediation/reconciliation processes that need to happen to address situations like this.  If it's in a critical path, and this behavior would do more harm than good, you'd need to guard against it.  The example given in this case seems to always end up in this situation as seat numbers approach zero, so a business decision would need to be made on how to handle it.
I'm going to close as this is indeed addressed/called out, but like many patterns, this doesn't solve for everything.  Thank you for the insight and conversation, @saheemsiddiqi


NTFY notification garbled

⚠ Please verify that this bug has NOT been raised before.

[X] I checked and didn't find similar issue

🛡 Security Policy

[X] I agree to have read this project Security Policy

Description
I've been using Uptime Kuma for years, and the NTFY notification has always been garbled and hard to read.
👟 Reproduction steps
Set up NTFY as standard
👀 Expected behavior
Uptime Kuma as on the NTFY website:

😓 Actual Behavior

🐻 Uptime-Kuma Version
1.23.1
💻 Operating System and Arch
Alpinr Linux
🌐 Browser
Firefox 116.0.3-1
🐋 Docker Version
20.10.24
🟩 NodeJS Version
No response
📝 Relevant log output
No response

#3476

@ae5960e8-a6fc-491f-b252-898ecf59af95 do we have to improve the helptext further?
If yes, do you have any suggestions?


NEW Wi-Fi Module - Not Flashing

During the flashing the Device registers but after the registration everything stops.
smarthack-wifi.log
smarthack-mqtt.log
smarthack-smartconfig.log
smarthack-web.log

Unfortunately this device is running an unsupported firmware

Is it possible that this firmware will become supported in the future? What would be required of me that this firmware would become supported?


Java 21 throws warning with idiomatic Freebuilder usage

Hello,
while preparing a codebase for the migration to Java 21, we noticed that when you use Freebuilder with default values as described in the README
public Builder() {
      // Set defaults in the builder constructor.
      description("Indescribable");
}

the Java 21 compiler now throws a warning, failing the compilation if the -Werror flag is set.
This can be suppressed with @SuppressWarnings("this-escape"), but having a cleaner solution would be preferable.

What happens if you add an explicit super(). before the method call?

It still throws the warning, as it is still a call to a overwritable method from the constructor

That seems like a bug, since it's not overwriteable if you call the super method.

🤔 strange. In the meantime, a workaround would be to not set the defaults in the constructor directly but in a static builder() method (subsequently decreasing the constructor's visibility)

I'll leave this open in case anyone has any other advice


[flutter_tools] No more implicit --no-sound-null-safety

Fixes https://github.com/flutter/flutter/issues/118331
Before this change, when trying to build a Flutter app that is not soundly null-safe (specifically, if the language version of the Dart entrypoint is less than 2.12) and the explicit flag --no-sound-null-safe is not provided from the command line:

For web debug builds (which use DDC), compilation would succeed, because there are two dills for DDC, and the tool has special handling for detecting which dill should be used for compilation;
For all other builds (dart2js and VM builds), the tool would invoke the appropriate dart compiler, which would fail with an error message instructing to provide the flag and that this flag would be deprecated in Dart v3 for all platforms.

This change will cause the tool to ToolExit for all target platforms before any compilers get invoked with a message similar to that provided by the dart compiler.
Running a web target on this branch:
$ flutter run -d chrome
This application does not support sound null-safety (its language version is 2.11).
To build this application, you must provide the CLI flag --no-sound-null-safety. Dart 3 will only support sound null safety, see https://dart.dev/null-safety.

$ flutter run -d chrome --no-sound-null-safety
Launching lib/main.dart on Chrome in debug mode...
Waiting for connection from debug service on Chrome...             22.0s
This app is linked to the debug service: ws://<IP_ADDRESS>:33389/iwRiGUncaNk=/ws
Debug service listening on ws://<IP_ADDRESS>:33389/iwRiGUncaNk=/ws

Running without sound null safety ⚠
Dart 3 will only support sound null safety, see https://dart.dev/null-safety

🔥  To hot restart changes while running, press "r" or "R".
For a more detailed help message, press "h". To quit, press "q".

An Observatory debugger and profiler on Chrome is available at:
http://<IP_ADDRESS>:33389/iwRiGUncaNk=
The Flutter DevTools debugger and profiler on Chrome is available at:
http://<IP_ADDRESS>:9100?uri=http://<IP_ADDRESS>:33389/iwRiGUncaNk=

Running a desktop target on this branch:
$ flutter run -d linux
This application does not support sound null-safety (its language version is 2.11).
To build this application, you must provide the CLI flag --no-sound-null-safety. Dart 3 will only
support sound null safety, see https://dart.dev/null-safety.

$ flutter run -d linux --no-sound-null-safety
Launching lib/main.dart on Linux in debug mode...
fatal: not a git repository (or any of the parent directories): .git
Building Linux application...
Syncing files to device Linux...                                   386ms

Flutter run key commands.
r Hot reload. 🔥🔥🔥
R Hot restart.
h List all available interactive commands.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).

Running without sound null safety ⚠
Dart 3 will only support sound null safety, see https://dart.dev/null-safety

An Observatory debugger and profiler on Linux is available at:
http://<IP_ADDRESS>:36037/7-kXLgw0gtY=/
The Flutter DevTools debugger and profiler on Linux is available at:
http://<IP_ADDRESS>:9100?uri=http://<IP_ADDRESS>:36037/7-kXLgw0gtY=/

cc @nshahan


Sandbox isolation defect

All modules are loaded to the client application sandbox using api.registry.require function, which uses node.js require. So all modules are cached. This can lead to a situation, when client application code changes some sandboxed module, and it changes everywhere. For example, there can be written client code, which deletes all properties from api.jstp, so api.jstp becomes an empty object on the entire application server
https://github.com/metarhia/impress/blob/5d713d08c6525efb11b9065ef6d95673b48de399/lib/registry.js#L137-L163

We changed Metarhia technology stack strategy: now application isolation should be implemented using docker, all internal api functions and domain model code is a trusted code so nobody will purposely broke dependencies. But we protect global context removing recursive ref like sandbox.global = sandbox; and freeze all interfaces in sandbox.api but shallow freeze (not recursive).


irmin-test: make the core suite type abstract

... and avoid unnecessarily exposing the Common unit.

Thanks @Ngoguey42 for the review.


Make TF default to eager mode

Eager mode has been the default for TF since v2 and it has led to significant API improvements in the codebase and speed improvements for training using tf.function as noted here:
https://github.com/dpressel/mead-baseline/pull/508
Its also easier to debug than declarative mode.  I think we should change the default for eager mode to on, and require the user pass --eager_mode false to turn it off starting with v2.1

Fixed in 2.3


build portable version of rocksdb's shared library

The current build of librocksdb.so is optimized for the host/kernel on which it is originally built; this can cause problems on a host that doesn't support the same CPU feature set, resulting in core dumps and messages like this in dmesg:
traps: tikv-server[16153] trap invalid opcode ip:7fe833fc9610 sp:7ffccbd12340 error:0 in librocksdb.so.4.5.1[7fe833e80000+373000]
The official INSTALL.MD talks about this:

By default the binary we produce is optimized for the platform you're compiling on (-march=native or the equivalent). If you want to build a portable binary, add 'PORTABLE=1' before your make commands, like this: PORTABLE=1 make static_lib

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.

LGTM

LGTM

Thank you very much @wegel


Devices unavailable after HA restart - till before manual re-interview of all of them

Problem/Motivation
Today happened short power outage. HA node successfully started.
After some time I discovered: all ZWave nodes still unavailable.
In short - only manual re-interview for all nodes + integration restart helped.
Aeotec Stick was Ok, but other nodes not - only friendly name in list.
After every node re-interview: device info in Control Panel appears, like model etc.
But HA still not getting any data. Integration restart solved this las issue.
Expected behavior
Expected: all devices become available w/out user intervention - after HA server was restarted,
Actual behavior
All Z-Wave devices unavailable. In Control Panel they looks like:

Logs attached. Hope it will find the issue.
zwavejs2mqtt-store_20210405_11.zip
zwavejs2mqtt-store_20210405_12.zip
Steps to reproduce
Not sure.
Proposed changes

This is not something the add-on can change. Addons wrap existing software, in this case: Z-Wave JS to MQTT. Please report your issue upstream. Thanks 👍


Question : What does the Quantum_trainer output?

Hi,
I wish to use the Quantum_trainer to do a Depression Detection using a chatbot (the sentences would be the input for the QNLP module), and wish to then classify as whether the person has depression or not.
May I ask what is the input and what is the output in the sample trainer for the quantum module? Does it do binary classification or is it something I need to add as an additional layer?

Hi,
the QuantumTrainer provides a high level abstraction of a classic machine learning training routine. It stores the training statistics and takes a model as input. During the training, it saves the state of the model in checkpoint files, that can be used to instantiate a new model for inference through:
model = TketModel.from_checkpoint('path/to/checkpoint')

The output of your model depends on your circuit/diagrams. If you have one open (qubit) wire, the output will be a 2-d array, if you have two output wires, the output will be a 4-d array, and so on. Currently, only the PytorchModel supports additional layers, however, we'll add Pennylane and tensorflow-quantum support soon.

So imagining I have a dataset of 1 feature, and one label, if I feed the dataset to the quantum_trainer.ipynb version, can I extract predictions for binary classification?

Is the quantum_trainer.ipynb basically creating and training the model on the dataset? If so, how can I extract predictions on new samples?

Understood, so to call the model on new instances I have to first pass them through the parser to be reformed as diagrams as well correct?

That is correct. But bear in mind that you have to take care of word tokens that are unknown to the model. If you pass a diagram to the model that contains a word that wasn't part of the training process, it'll fail to calculate the output.
In classical NLP, one would for example deal with that by introducing an <unk> token, that replaces all rare words in your corpus.

The original question has been answered, so this issue will be closed.


Subview shorthands for assigning model and/or collection

subviews: {
        user: {
            container: '[role=user]',
            constructor: UserView,
            model: 'model.user' // Will set subview model to model.user and wait for it.
        },
        todos: {
            container: '[role=todos]',
            constructor: TodoView,
            collection: 'model.todos' // Will set subview collection to model.todos and wait for it.
        }
    }

same as #64, if others want to jump in and revive those issues, please do


IOException while awaiting document conversion

Hi
I'm testing Fax Sending using the current version of the library (1.1) using a simple console test app and using the example code from the docs.
I am getting an error while the library is waiting for document conversion. In FaxSendService.cs, ObserveDocumentStatus, the status never changes from "initialised" and eventually calls to GetDocumentStatusAsync throw an exception with:
System.Net.Http.HttpRequestException: An error occurred while sending the request.
---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host..
---> System.Net.Sockets.SocketException (10054): An existing connection was forcibly closed by the remote host.
Do you have a working demo of the fax send api or any tips on troubleshooting?

Thanks @wojtj - this was actually due to a config issue on the backend which was preventing the document conversion status from being updated, should be resolved now.


Typo

Fix a typo

I don't know how so many people have failed to see that. Thank you!

Thanks @bsdjunk! @alxcenz did this get merged into develop as well?

Nope but I'll cherrypick it now.
-----Original Message-----
From: "Lillian Lemmer"<EMAIL_ADDRESS>Sent: 8/17/2015 3:16 AM
To: "hypatia-engine/hypatia"<EMAIL_ADDRESS>Cc: "Alice Jenkinson"<EMAIL_ADDRESS>Subject: Re: [hypatia] Typo (#63)
Thanks @bsdjunk! @alxcenz did this get merged into develop as well?
—
Reply to this email directly or view it on GitHub.

@alxcenz please be careful to merge to the develop branch and never directly to master unless you're willing to hotfix + release, though I think nobody will care about us updating the readme. :) Thank you both for your time <3

ER that's to say that modifying the readme to fix a typo probably isn't a great reason to create a release, so in this instance, creating a hotfix which doesn't create a release isn't the worst thing. But yeah always merge to develop first. :) <3 thanks


Clean up

Left an old version of the file with the comments, for reference. Also serves as a reference for the future. But cli.py is clean and easy to follow.

Good work @BlitzKraft :+1:
I was thinking of removing the usage of the unwanted packages (bs4, python magicetc.)
I will be merging this PR as you have put your time and hard work on it. But I really think for the next PR, instead of refactoring the existing codebase, we should start work with the API provided by xkcd. It's much less brittle!
What is your opinion on that?

I agree. But bs4 seems reasonable - grabbing the archive in one request, and parsing everything offline. And then using the json api for downloading the actual comics.
I was looking for some native libraries that support html parsing, couldn't find any that handled it as concisely as bs4 does. Other than that, I would consider writing my own parsing method - but that's beyond me at the moment.
As for magic, I guess reading the first few bytes of the binary file would suffice to distinguish between jpeg and png - that I can do and will be my next PR.
Here are my targets, for the coming week:
Docopts, is easy to use, but not necessary - I think. Urllib.request can be done away with.
What else do you have in mind?

grabbing the archive in one request, and parsing everything offline. And then using the json api for downloading the actual comics.

But wouldn't the JSON API just return JSON objects. So no need for an HTML parser (if I did understand what you were trying to convey)
Have a look at mimetypes in the standard library, I think it might give us the leverage to do away with python magic.

Docopts, is easy to use, but not necessary

argparse would be the closest thing in the standard library which can replace it.

Urllib.request can be done away with.

Are we not using requests for all that?

The archive is only being used to update the db. That seems to be the right choice. Because, json api returns only one comic. For updating, that would mean a ton of requests, just to update the db. XKCD's json does not provide an interface for downloading an archive. JSON requests are being used when there are download options given in the command line.
I am looking into mimetypes. I agree, argparse is the way to go.
There are still a few spots where urllib was used. I should change them to requests instead.
My reason for the clean up was to make the code readable and the comments are breaking my flow. I almost expected you wouldn't be merging it. I am glad you did!

Hey, you did some hard work on the previous PR. :smile:
But I think the DB thingy is more of an anti feature.

My thoughts
http://xkcd.com/info.0.json
returns
{
	"month": "4",
	"num": 1665,
	"link": "",
	"year": "2016",
	"news": "",
	"safe_title": "City Talk Pages",
	"transcript": "",
	"alt": "I don't think the Lakeshore Air Crash Museum really belongs under 'Tourist Attractions.' It's not a museum--it's just an area near the Lake Festival Laser Show where a lot of planes have crashed.",
	"img": "http:\/\/imgs.xkcd.com\/comics\/city_talk_pages.png",
	"title": "City Talk Pages",
	"day": "8"
}

Now we have http://xkcd.com/1/info.0.json
{
	"month": "1",
	"num": 1,
	"link": "",
	"year": "2006",
	"news": "",
	"safe_title": "Barrel - Part 1",
	"transcript": "[[A boy sits in a barrel which is floating in an ocean.]]\nBoy: I wonder where I'll float next?\n[[The barrel drifts into the distance. Nothing else can be seen.]]\n{{Alt: Don't we all.}}",
	"alt": "Don't we all.",
	"img": "http:\/\/imgs.xkcd.com\/comics\/barrel_cropped_(1).jpg",
	"title": "Barrel - Part 1",
	"day": "1"
}

Now we can run a loop when running --dowload-all

I agree we can run it and that it works. But compare that to having just one request get ALL the data required to populate the db, as opposed to making 1664 (currently) requests - for the information we don't use in the db at all.
For the update db, all the data we need, is just the comic number. The dict is nice that it grabs the title and the published date, for a quick reference.

Sounds good to me. I will leave that decision to you on how you go about it. :+1:

Great! I've got my weekend planned out for this.
Now back to work!!


release-ci.DockerFile 构建镜像失败

执行命令
docker build -t spu:v1 -f release-ci.DockerFile .

报错内容

Sending build context to Docker daemon 3.584 kB
Step 1/16 : FROM centos:centos7
 ---> eeb6ee3f44bd
Step 2/16 : RUN sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo     && sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo     && sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo
 ---> Using cache
 ---> 92a83badd403
Step 3/16 : RUN yum install -y centos-release-scl epel-release     && yum update -y     && yum clean all
 ---> Running in 6e2d29e80081

Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
Resolving Dependencies
--> Running transaction check
---> Package centos-release-scl.noarch 0:2-3.el7.centos will be installed
--> Processing Dependency: centos-release-scl-rh for package: centos-release-scl-2-3.el7.centos.noarch
---> Package epel-release.noarch 0:7-11 will be installed
--> Running transaction check
---> Package centos-release-scl-rh.noarch 0:2-3.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                    Arch        Version               Repository   Size
================================================================================
Installing:
 centos-release-scl         noarch      2-3.el7.centos        extras       12 k
 epel-release               noarch      7-11                  extras       15 k
Installing for dependencies:
 centos-release-scl-rh      noarch      2-3.el7.centos        extras       12 k

Transaction Summary
================================================================================
Install  2 Packages (+1 Dependent package)

Total download size: 39 k
Installed size: 63 k
Downloading packages:
warning: /var/cache/yum/x86_64/7/extras/packages/centos-release-scl-rh-2-3.el7.centos.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for centos-release-scl-rh-2-3.el7.centos.noarch.rpm is not installed
--------------------------------------------------------------------------------
Total                                               20 kB/s |  39 kB  00:01
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key<EMAIL_ADDRESS> Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-9.2009.0.el7.centos.x86_64 (@CentOS)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : centos-release-scl-rh-2-3.el7.centos.noarch                  1/3
  Installing : centos-release-scl-2-3.el7.centos.noarch                     2/3
  Installing : epel-release-7-11.noarch                                     3/3
  Verifying  : centos-release-scl-2-3.el7.centos.noarch                     1/3
  Verifying  : centos-release-scl-rh-2-3.el7.centos.noarch                  2/3
  Verifying  : epel-release-7-11.noarch                                     3/3

Installed:
  centos-release-scl.noarch 0:2-3.el7.centos     epel-release.noarch 0:7-11

Dependency Installed:
  centos-release-scl-rh.noarch 0:2-3.el7.centos

Complete!
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrorlist.centos.org?arch=x86_64&release=7&repo=sclo-rh error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"

 One of the configured repositories failed (Unknown),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:

     1. Contact the upstream for the repository and get them to fix the problem.

     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).

     3. Run the command with the repository temporarily disabled
            yum --disablerepo=<repoid> ...

     4. Disable the repository permanently, so yum won't use it by default. Yum
        will then just ignore the repository until you permanently enable it
        again or use --enablerepo for temporary usage:

            yum-config-manager --disable <repoid>
        or
            subscription-manager repos --disable=<repoid>

     5. Configure the failing repository to be skipped, if it is unavailable.
        Note that yum will try to contact the repo. when it runs most commands,
        so will have to try and fail each time (and thus. yum will be be much
        slower). If it is a very temporary problem though, this is often a nice
        compromise:

            yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true

Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64
The command '/bin/sh -c yum install -y centos-release-scl epel-release     && yum update -y     && yum clean all' returned a non-zero code: 1

先使用release-ci-aarch64来构建镜像使用。
https://github.com/secretflow/devtools/blob/main/dockerfiles/release-ci-aarch64.DockerFile

先使用release-ci-aarch64来构建镜像使用。
https://github.com/secretflow/devtools/blob/main/dockerfiles/release-ci-aarch64.DockerFile

先使用release-ci-aarch64来构建镜像使用。
https://github.com/secretflow/devtools/blob/main/dockerfiles/release-ci-aarch64.DockerFile

Hi @notinghere
Fixed, plz try again.
Thanks


RFC: Option to invalidate document cache with a query

Summary
I found useful invalidating document cache by providing additionalTypenames to mutation.
I have a specific usecase, where I'd want to do the same with a query. From default cache exchange source it's clear that queries only "mark" the results with additionalTypenames.
I currently have a working solution, by copying over the exchange's source and tweaking it and I'm interested in creating a PR to contribute back.
Why

when you don't want to switch to graphcache as document cache suits you
when you don't want to use requestPolicy: 'network-first' for the query you need to invalidate as that would require you to implement additional logic when to apply the policy (often complicated)
when you don't want to refetch a query straight away (ie. you might be on the page displaying the query results and don't want to switch to loading again, but you only want to refetch on the next page visit)
when you don't trigger a mutation (see specific usecase below)

Usecase:
On a specific event (subscription in my case) I imperatively trigger a query via client.query. This query should in turn invalidate some results in cache (list of items), since it fetches a fresh item from backend. As I use document cache, subscription doesn't invalidate anything in cache and urql doesn't provide a way to access cache. The triggered query following a subscription callback is the only place I can invalidate.
Proposed Solution
By providing an option in OperationContext, eg.
client.query(query, variables, {
  additionalTypenames: ['typename_to_invalidate'],
  invalidateAdditionalTypenames: true
})

I was able to invalidate cache while the request with the provided context option was passing through cache exchange.
The logic to invalidate cache is already present, so I just abstracted it into a function and added
// invalidates query's typenames provided in additionalTypenames param
// when invalidateAdditionalTypenames in the operation context is set to true
if (
  response.operation.kind === 'query' &&
  response.operation.context.invalidateAdditionalTypenames &&
  response.data
) {
  invalidateCache(response.operation.context.additionalTypenames)
}

Would you be interested in this?

We actually explicitly haven't implemented a mechanism for this and there's some older issues around this request.
We do however want to encourage everyone to copy the default cache and modify it as needed, if they get to a point where it doesn't serve their use-case.
This is similar to Apollo's refetchQueries API and we explicitly don't believe in this approach. It basically is equivalent to making a function that just plainly explicitly refetches queries.
Similarly, for more complex cases it's intended that Graphcache is sufficient to update or invalidate requests.
I understand that there's a middle ground here and we've discussed in the past how to lower the migration cost of moving to Graphcache, but I still believe this isn't it.
Basically, if your query is just "local" and doesn't affect the other queries, since they're only passively modified, then as you said the side-effect that causes queries to be considered stale comes from something else.
If this is not a mutation but a subscription, I'd actually be more inclined to apply the same invalidation logic that mutations have to subscriptions optionally.
In other words and TL;Dr:

invalidateAdditionalTypenames to add a side-effect to a query is not expected, and I'd always assume that a query (the operation, not the result) is repeatable without side-effects

i.e. I don't think adding a context option for the cache to turn a query into an invalidating effect makes sense

Recognising additionalTypenames on subscriptions however is something I can get onboard with

I still don't think we should automatically invalidate based on subscriptions (more on that below)

I'd still enforce that mutations represent changes of data, and queries and subscriptions represent data that is (to some extent) unchanged.
Graphcache (and ignoring what other caches/libs consider their normalised caches to be) is basically the cache to go for if you have operations that affect one another in more complex ways
Does that make sense to you? ✌
Would adding additionalTyoenames invalidation to subscriptions solve your issue mostly as well — in theory, of course, since you have a custom cache now?

Yes, that would do it as well and is indeed a better option.
Do you want me to open a PR for this? It's in fact just about adding || response.operation.kind === 'subscription' in the cache invalidation logic.
I tried switching to Graphcache to get access to cache invalidation. In our case it would be a huge bandwidth saver if I could invalidate a single item in the list instead of the whole list as with document cache.
This however proved challenging because the page is displaying paginated data in the form of relay's Connection.
eg.
query GridData {
  grid(args) {
    data(args) {
      pageInfo {
        endCursor
        hasNextPage
      }
      edges {
        node
      }
    }
  }
}

By grid, data and edges entities not having an ID, all nodes are actually embedded within this structure starting with grid in cache. To make it even more difficult, data's arguments is not a trivial scalar input.
To actually update the embedded list in the cache, I'd need to pass all of the arguments used in the query to the subscription in order to construct a correct query to read from the cache, am I right?
Is it possible I was trying to update the cache wrong? Because it seems that every cursor-paginated list must be suffering from this issue. Is there maybe another way how to do cache updates for paginated data like this?

@kitten I tried inspectFields as well.
For the above example grid was of __typename: 'Grid' and data of __typename: 'GridConnection'. Running cache.inspectFields({ __typename: 'Grid' }) and cache.inspectFields({ __typename: 'GridConnection' }) respectively just returned an empty array for me. Would you know why that is?
However running cache.inspectFields({ __typename: 'Query' }) did output every query for me. For grid there was this record
{
  arguments : {gridType: '<value>'}
  fieldKey: "grid({\"gridType\":\"<value>\"})"
  fieldName: "grid"
}

Let's say I am able to get arguments from here and run cache.invalidate('Query', 'grid', { gridType: "<value>" }) right?
There is indeed 1 other fact I didn't mention. Before grid data is fetched, I first fetch grid configuration under the same field. So:
query GridConfig {
  grid(args) {
    columns {
      ...
    }
  }
}

For some reasons we don't fetch data and config together as we have a custom utility to fetch data (via imperatively calling client.query) in batches until pagination says there is no more data (we are talking big data sets here, so need to fetch in batches due to response size / backend load).
When I run cache.invalidate('Query', 'grid', { gridType: "<value>" }) I only see the grid config query being triggered again, but not the one that fetched data.
Is this something to do with the commutativity as described in the docs ?
Similarly, I was only able to invalidate with the above call, nothing else worked. I tried:
cache.invalidate('Grid')
cache.invalidate('GridConnection')
cache.invalidate('grid({"gridType":"deskPromotionsGrid"})')
cache.invalidate('Grid', 'data')
cache.invalidate('Grid', 'data', {
  gridType: 'deskPromotionsGrid',
})

I obviously don't know anything about your utility, but if it's using toPromise, or rather, only waits for a single result, there's no way to update that result, because whatever issued this operation is not subscribed to future results from the Client

That must be it yes, it's using toPromise!

However that actually doesn't solve the issue - I don't actually need the operation to refetch straight away, rather on a next page visit, that means the utility will trigger the queries again, but this time it will get it from cache. Why wouldn't data invalidate as well when the config obviously did? Both data and config are in the cache under the same `grid({gridType: })" key so I would inspect for the data query to hit the backend again after invalidation (on next page visit ofc.).


Waiting to connect to Genkit runtime... Genkit Tools version: 0.9.6

Expected Behavior
Genkit show all models, flows and prompts
Actual Behavior
Waiting to connect to Genkit runtime...
Your application must be running in dev mode to access all of the features of the Developer UI, either using genkit start or by setting the environment variable GENKIT_ENV=dev.
This page will automatically refresh when the runtime is detected. Be sure to check the logs for any startup errors.
Steps to Reproduce the Problem

Run de code lab with Genkit 0.9 or above

#23 should take care of this. feel free to give it a try.


Swipe control SwipeItem Command Binding is Ignored

Describe the bug
A SwipeItem with a Command bound to a valid ICommand in a view model ignores the binding.
Steps to reproduce the bug

Using a sample project with a ListView of SwipeControls, bind a ViewModel Command to a SwipeItem.
Launch the project and attempt to invoke the command from the SwipeItem.
Observe that nothing happens.
Set the Invoked event and set a breakpoint in the Invoked event.
Launch and Invoke the SwipeItem's event.
Inspect the sender of the event and note that the Command property is null.

Expected behavior
Expect that the bound ICommand is invoked.
Version Info
NuGet package version:
Microsoft.UI.Xaml 2.0.181018004

Windows 10 version
Saw the problem?

October 2018 Update (17763)
Yes

See also:  https://stackoverflow.com/questions/53560468/swipeitem-xaml-binding-ignored

Accidentally hit close. Apologies.

Interesting bug, thanks for the extra details from the SO link. We'll have to debug and see if it's a Swipe problem or Binding.
Could you try using x:Bind instead of Binding to see if that changes anything?
Also what happens if you use Binding to set the SwipeItem's Text property?

Binding on the text property works as expected.
Changing to x:Bind and moving the SwipeItems out of a page resource and into the body of the SwipeControl itself seems to have done the trick, making me think that perhaps I had a problem with my binding syntax. I'll research this a little more when I have a chance.

@drchilds please let me know what you find. Thanks!

@drchilds, please reopen once you've had time to investigate and determine this is a platform issue you'd like us to look at.

@jevansaks I cannot reopen this issue as I'm not the original poster.
I found this stackoverflow answer which explains why it does not work, and the person who answered it seems to hold a good reputation around the UWP topic.
I don't know whether this is a fundamental issue or whether it is possible to fix by Microsoft, but as a developer the point that you can bind something that doesn't support binding feels like a bug. It is very counterintuitive, and googling around shows that multiple people (besides myself) were confused by this. It does not show a binding error. It has both a Command and Invoke property; the Invoke property is usually used with codebehind, the Command property is often used with binding to MVVM.
Could you please reopen it?

Thank you!
All documentation currently mentions only the Invoked option, like here but the point is that it is confusing that the available Command property does not work as expected.
This answer seems like a possible workaround; however I could not get that to work either. The Invoked property works.


DNSSnooper: error decoding packet: No decoder for layer type Dot1Q

[12:48 PM]
carlpett So, first feedback :slightly_smiling_face: We get a lot of this:
`<probe> ERRO: 2017/01/26 12:46:27.282902 DNSSnooper: error decoding packet: No decoder for layer type Dot1Q`

[12:48 PM]
Problem related to running on physical hardware?

[1:27 PM]
tom googles Dot1Q...

[1:27 PM]
tom
> Dot1Q is an IEEE's open standard, which be used to create trunk connection between switches of different vendors. In ISL the original ethernet frame is not modified, it is encapsulated between an ISL header and an FCS.

We should at least rate limit the error messages

We should at least rate limit the error messages

Yep

If the condition isn't causing any problems, then it shouldn't be reported as an error at all.

If the condition isn't causing any problems, then it shouldn't be reported as an error at all.

I believe it may be causing problems (i.e. AFAIU, if the link layer doesn't use plain Ethernet or LinuxSLL, the snooper won't work).  Gopacket supports Dot1Q, so incorporating it to the decoder should be easy.
BTW, wouldn't Weave Net have the same problem in Sleeve mode?

BTW, wouldn't Weave Net have the same problem in Sleeve mode?

cc @bboreham

Weave Net generally only needs the source and destination MAC addresses.  There is one case where an unexpected frame type would disrupt operation: an IPV4 packet which has DF set and is too big would not get a correct ICMP response.
However, as far as I know the kernel does not allow sending tagged packets via a virtual ethernet device, so this cannot happen.


Support new resolver syntax

Support new syntax on input mapper and branch conditions:
New format explained here: http://confluence.tibco.com/display/FLOGO/Architecture#Architecture-ExpressionSyntaxProposal
This solution is backward compatible with old format.

Yes, the test comment and names chosen where misleading.
I have made the changes as your expectation was correct.


Spatial: HasData does not work with Point

Throws exception from CSharpHelper while scaffolding literal for type System.Data.SqlTypes.SqlBytes

Dup of #8741

Requires #8741

Fixed by PRs #13396 & #13397


On MacOS X "Home" and "End" keys do not work as expected

Description
On MacOS 10.11.6 Atom 1.10.2 (even in safe mode) the "home" and "end" keys on my extended keyboard don't do the right thing. "home" moves to the start of the line and "end" moves to the end of line.
The key resolver shows that this is caused by:
"atom-text-editor": {
    "home": "editor:move-to-first-character-of-line",
    "end": "editor:move-to-end-of-screen-line",
    "shift-home": "editor:select-to-first-character-of-line",
    "shift-end": "editor:select-to-end-of-line"
  },

in /Applications/Atom.app/Contents/Resources/app.asar/keymaps/base.json
Bindings for what appear to be more traditional behavior, e.g. core:move-to-top for home, are also present in /Applications/Atom.app/Contents/Resources/app.asar/node_modules/tree-view/keymaps/e-view.json` but are being overridden by the above.
I realize I can work around this, but it seems to me that the default ought to be fixed.

i guess the Problem is that on windows and linux the home/end keys do jump to start/end of line.
macOS uses cmd+arrows for this (so changing this default behaviour will anger the win/linux users)
with that in mind, you can also use cmd+up/down for start/end of file.
another solution for your Problem would be to remap the home/end keys with an app like karabiner.

@cy4n I don't think that special bindings for macOS would be the problem. There are already many platform specific defaults. See: keymaps/darwin.cson.


Add files via upload

Added Bule Hora university as a recognized higher educational institution in Ethiopia.

@DSpike file/lib/domains/et/edu/bhu.txt: this request has an incorrect file path format, please ensure that you are familiar with     this repository rules located at the bottom of this page and change     your request accordingly. If you don't know how to change request, close it and open a new one.     If you are not able to make the pull request according the instructions, please send us an email to<EMAIL_ADDRESS>Please mention this request URL in the message.

@DSpike file/lib/domains/et/edu/bhu.txt: this request has an incorrect file path format, please ensure that you are familiar with     this repository rules located at the bottom of this page and change     your request accordingly. If you don't know how to change request, close it and open a new one.     If you are not able to make the pull request according the instructions, please send us an email to<EMAIL_ADDRESS>Please mention this request URL in the message.


Proxy does not warn on a certificate error at  https://nitreb-forms.theismailiusa.org

Proxy is unable to process https://nitreb-forms.theismailiusa.org. The certificate looks okay but the issue is broader than NITMProxy. But the hope was the proxy should issue the same "ignore warning" that it does for e.g. with an expired certificate.

The website has some certificate related error. See below when replicated via JAVA directly.
import java.net.*;
import java.io.*;
import javax.net.ssl.*;

/*
 * This example demostrates how to use a SSLSocket as client to
 * send a HTTP request and get response from an HTTPS server.
 * It assumes that the client is not behind a firewall
 */

public class SSLSocketClient {

    public static void main(String[] args) throws Exception {
	try {
	    SSLSocketFactory factory =
				      (SSLSocketFactory)SSLSocketFactory.getDefault();
	    SSLSocket socket =
			      (SSLSocket)factory.createSocket("nitreb-forms.theismailiusa.org", 443);

	    /*
             * send http request
             *
             * Before any application data is sent or received, the
             * SSL socket will do SSL handshaking first to set up
             * the security attributes.
             *
             * SSL handshaking can be initiated by either flushing data
             * down the pipe, or by starting the handshaking by hand.
             *
             * Handshaking is started manually in this example because
             * PrintWriter catches all IOExceptions (including
             * SSLExceptions), sets an internal error flag, and then
             * returns without rethrowing the exception.
             *
             * Unfortunately, this means any error messages are lost,
             * which caused lots of confusion for others using this
             * code.  The only way to tell there was an error is to call
             * PrintWriter.checkError().
             */
	    socket.startHandshake();

	    PrintWriter out = new PrintWriter(
					      new BufferedWriter(
		new OutputStreamWriter(
				       socket.getOutputStream())));

	    out.println("GET / HTTP/1.0");
	    out.println();
	    out.flush();

	    /*
             * Make sure there were no surprises
             */
	    if (out.checkError())
		System.out.println(
				   "SSLSocketClient:  java.io.PrintWriter error");

	    /* read response */
	    BufferedReader in = new BufferedReader(
		new InputStreamReader(
				      socket.getInputStream()));

	    String inputLine;
	    while ((inputLine = in.readLine()) != null)
		System.out.println(inputLine);

	    in.close();
	    out.close();
	    socket.close();

	} catch (Exception e) {
	    e.printStackTrace();
	}
    }
}

java SSLSocketClient
javax.net.ssl.SSLHandshakeException: received handshake warning: unrecognized_name
        at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)
        at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:337)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:293)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:284)
        at java.base/sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:272)
        at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:186)
        at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:171)
        at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1408)
        at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1314)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:440)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:411)
        at SSLSocketClient.main(SSLSocketClient.java:40)

I can connect the website with nitmproxy running 1.8.0_292.
Can you provide the java version you are running?

I am using Java 11.
Sent from my handheld device

On Oct 13, 2021, at 9:17 PM, Chun-Han, Hsiao @.***> wrote:

I can connect the website with nitmproxy running 1.8.0_292.
Can you provide the java version you are running?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

I think the issue was caused by the SNI extension.
It looks like you are using the JDS built-in SSL library instead of openssl, which is not supporting SNI extension and cause the failure.
The netty-tcnative must be included as a dependency while deploying the ntimproxy.


setup-analytics: Handle missing /proc/.../uuid

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.
[x] Have you successfully run brew tests with your changes locally?

When is this missing?

On Windows Subsystem for Linux, for example.

And does it have /usr/bin/uuidgen present? If so, can we reverse the ordering so /proc is only checked if uuidgen isn't present?

Yes, it does have /usr/bin/uuidgen, at least with the default Ubuntu file system image.

If so, can we reverse the ordering so /proc is only checked if uuidgen isn't present?

:+1: Done.

Thanks again @sjackman!

Thanks again for merging, Mike!


Plugging in usb power while on causes a freeze

Reported by a user in the Discord help channel:

Don't plug the power in while it's on.  appparantly freezes it.

I'm not sure if this is during playback or not, as I haven't yet been able to replicate it.

I haven't seen this since it was first reported or heard that anyone else experienced this so will close for now.


stop viewport being set at window.innerHeight

Status: Ready for Review
Owner: @ericawright
Reviewers: @mikenikles @fractaltheory @jansepar @marlowpayne @stewartyu
Changes

on Chrome when scrolled down the page the viewport was staying at the top of the page and remained the size of the window.
remove the body height style, as it was being set to window size
stop viewport height being set as inner height

Todos:

[ ] Engineer +1

Issues:
https://github.com/mobify/pikabu/issues/66
Feedback:
none so far
How to Test

grunt serve
go to http://localhost:3000/examples/

Very cool stuff @ericawright ! Just a note that when you touch the src code for Pikabu you'll want to re-build the dist/ files with grunt build and commit them too.

@marlowpayne thanks, the dist/ files slipped my mind

Nice fix, @ericawright! :+1:

ready to go again after noticing an orientation bug

LGTM! :+1:
There's a test failing but it's failing on develop too so it doesn't block merge -- if you have time @ericawright it'd be awesome to get that fixed too.

@fractaltheory yup, that test is fixed in https://github.com/mobify/pikabu/pull/76

:100: !


Points not appearing at certain angles

As reported on the forum, the below code creates a view where the line of points are not visible until move the view to a different angle (middle-mouse move does it).  Even if you add an altitude to fromDegrees to raise the points off the ground, the problem still occurs.  I'm not sure what is going on but it happens in all browsers.
CC @emackey
var viewer = new Cesium.Viewer('cesiumContainer');
var scene = viewer.scene;

var coordinates =
     [ [123.0274,30.9532],[123.0595,30.955],[123.0902,30.9558],[123.1241,30.9563],
     [123.1546,30.9513],[123.1823,30.9374],[123.2089,30.9238],[123.2362,30.9091],
     [123.2638,30.8938],[123.2909,30.8787],[123.317,30.864],[123.3463,30.847],
     [123.374,30.8308],[123.4015,30.8151],[123.4285,30.8],[123.4522,30.787],
     [123.4827,30.7703],[123.508,30.7568],[123.5357,30.742],[123.5595,30.7292],
     [123.5889,30.7137],[123.617,30.6982],[123.6427,30.6838],[123.6692,30.6695],
     [123.6964,30.6547],[123.7195,30.6416],[123.7441,30.6269],[123.77,30.611],
     [123.7917,30.5979],[123.8137,30.584],[123.8365,30.5684],[123.862,30.554],
     [123.8852,30.542],[123.9085,30.5305],[123.9345,30.5182],[123.96,30.5058],
     [123.9832,30.4934],[124.0064,30.4803],[124.0281,30.468],[124.0534,30.4532],
     [124.0743,30.4405],[124.0961,30.4276],[124.1183,30.4145],[124.1425,30.4003],
     [124.1566,30.392],[124.1865,30.3742],[124.2101,30.3605],[124.2352,30.3465],
     [124.2425,30.3423],[124.2701,30.3347],[124.2962,30.3278],[124.362,30.3017] ];

var pointCollection = scene.primitives.add(new Cesium.PointPrimitiveCollection());

for (var i = 0; i < coordinates.length; i++) {
    var position = Cesium.Cartesian3.fromDegrees(coordinates[i][0], coordinates[i][1]);
       pointCollection.add({
                pixelSize : 3,
                color : Cesium.Color.LIME,
                position : position,
                id : coordinates[i].toString()
    });
}

scene.camera.setView({
    position:  new Cesium.Cartesian3(-4448384.84226208, 8847434.903068805, 5385593.024560826),
    heading: 6.037857876846167,
    pitch: -1.5701076653988428,
    roll: 0
});

@emackey thinks this may be a similar problem to #2130

Correct.  The points have a thin "transparent" outline due to anti-aliasing built into the fragment shader.  In the screenshot below I've made the points bigger and turned off scene.fxaa, and here the points appear to have a black outline.  But the outline isn't black, it's transparent, and it's showing through to the black background because the render order for the points is backwards from this point of view.
When the points get close together, the transparent-to-background outlines stack up so densely that you can't see the core point color anymore.

Can you guys think of any temporary workaround for this? I am showing tracks of a ship's position and there are a lots of areas where the points can make closely packed lines similar to the data above.  If there is a patch I can make to get around this even at cost of some performance it will good enough for me.   Thanks!

Tim

You can trade this problem for other problem(s), and see if the other ones are more subtle or more acceptable than this.  Try turning off "depth masking" and see if it helps, by adding the following code to the above demo.  This may introduce a different problem where points fail to obscure background objects of certain types.
// Warning: Use of _private variables is undocumented and may change without warning.
pointCollection._rs = scene.context.createRenderState({
    depthTest : {
        enabled : true
    },
    depthMask : false,
    blending : Cesium.BlendingState.ALPHA_BLEND
});

Thanks! That seems to work fine for me. I don't see any performance hit either.  I am only showing points with a label on mouse over.  I see that the label is showing on top of the points which is what I want anyways.  I think this is a good work around for us for now. Thanks!!

Looks like scene.context.createRenderState is not longer available in 1.13 version. Is there any other work around I can use for this issue?
Thanks,
Tim

The code has changed a bit for this.  Try this:
// Warning: Use of _private variables is undocumented and may change without warning.
pointCollection._rs = Cesium.RenderState.fromCache({
    depthTest : {
        enabled : true
    },
    depthMask : false,
    blending : Cesium.BlendingState.ALPHA_BLEND
});

That worked. Thanks!

Problem is way more visible in this code sample:
var viewer = new Cesium.Viewer('cesiumContainer');

for (var i=0; i<35000; i++) {
    viewer.entities.add({
        position : Cesium.Cartesian3.fromDegrees(-122.431297 +i/10, 37.773972+i/10),
        point : {
            pixelSize : 10,
            color : Cesium.Color.fromRandom({
                    alpha : 1.0,
                    minimumRed : 0.5,
                    minimumGreen : 0.5,
                    minimumBlue : 0.5
                })
        }
    });
}

Strange idea: If the point's fragment shader can write a depth value, maybe we write "sane" (normal) depth values for high alpha fragments, but tweak the written depth to be further away for low alpha values.  The point written would become sort of a view of the pointy end of a cone, and the points would stick out in front of the fringes.

Looks like this user has a similar problem: https://groups.google.com/forum/?hl=en#!topic/cesium-dev/5qv7Q_qudt8

Closing as duplicate with https://github.com/AnalyticalGraphicsInc/cesium/issues/2130#issuecomment-270008324


New build Windows 10 Version 19044.1568 Not Supported

The new Windows 10 build 19044.1568 is not supported. "rdpwrap.ini" file from dear sir sebaxakerhtc no longer works

could it be 19044.1586  ?

The new Windows 10 build 19044.1568 is not supported. "rdpwrap.ini" file from dear sir sebaxakerhtc no longer works

Rdpconf screenshot please

Looks like duplicate of https://github.com/stascorp/rdpwrap/issues/1725
But with error in Version

could it be 19044.1586 ?

Yes! 19044.1586!


Change peer set log level when there is a large number of peers

Tasks:

[ ] log at info-level when the number of peers is below 16 (zcashd default), and debug otherwise
[x] improve or delete the hint - #1428

[x] delete "configure fast peers", most users won't be able to do that
[x] add something about testnet, and checking the speed and reliability of your network connection

@hdevalence are these the peer logging changes you wanted?

We can do the remaining tasks later

I think we've fixed this issue over time. If there are any frequent messages left, we should open specific tickets or PRs for them.


go: jsii doesn't handle local module replacements for private monorepo modules

Describe the bug
In case of a private monorepo, that uses manually rewritten module paths.
module github.com/org/privaterepo/platform/packages/my-cdk8s-turbochart

go 1.20

require (
	github.com/org/privaterepo/platform/utility/crds v0.0.0
)

replace github.com/org/privaterepo/platform/utility/crds => ../../utility/crds

JSII is unable to pick import the shared replaced module.
Expected Behavior
It should be able to pick modules using their respective absolute paths.
Current Behavior
It panics with a failed import
panic: Passed to parameter props of new xrd_apiextensionscrossplaneio.CompositeResourceDefinition: Unable to deserialize value as xrd_apiextensionscrossplaneio.CompositeResourceDefinitionProps | undefined
├── 🛑 Failing value is an object
│      { '$jsii.struct': [Object] }
╰── 🔍 Failure reason(s):
    ╰─ Key 'spec': Unable to deserialize value as xrd_apiextensionscrossplaneio.CompositeResourceDefinitionSpec | undefined
        ├── 🛑 Failing value is an object
        │      { '$jsii.struct': [Object] }
        ╰── 🔍 Failure reason(s):
            ╰─ Key 'versions': Unable to deserialize value as array<xrd_apiextensionscrossplaneio.CompositeResourceDefinitionSpecVersions>
                ├── 🛑 Failing value is an array
                │      [ [Object] ]
                ╰── 🔍 Failure reason(s):
                    ╰─ Index 0: Unable to deserialize value as xrd_apiextensionscrossplaneio.CompositeResourceDefinitionSpecVersions
                        ├── 🛑 Failing value is an object
                        │      { '$jsii.struct': [Object] }
                        ╰── 🔍 Failure reason(s):
                            ╰─ Key 'schema': Unable to deserialize value as xrd_apiextensionscrossplaneio.CompositeResourceDefinitionSpecVersionsSchema | undefined
                                ├── 🛑 Failing value is an object
                                │      { '$jsii.struct': [Object] }
                                ╰── 🔍 Failure reason(s):
                                    ╰─ Key 'openApiv3Schema': Unable to deserialize value as any | undefined
                                        ├── 🛑 Failing value is an object
                                        │      { '$jsii.struct': [Object] }
                                        ╰── 🔍 Failure reason(s):
                                            ╰─ Module 'k8s' not found

Reproduction Steps
Create two golang modules

github.com/org/repo/module1, github.com/org/repo/module2
make a direct replacement in module1 referencing module2 using relative path

module github.com/org/repo/module1

go 1.20

require (
	github.com/org/repo/module2 v0.0.0
)

replace 	github.com/org/repo/module2 => ../module2

JSII will fail to import.

Possible Solution
Implement the respective module rewriting handler for go.mod.
Additional Information/Context
I'm using cdk8s specifically for codegen but not sure if it's a cdk8s issue and the respective handler should be implemented there, as well.
Can provide a sample cdk8s project, for reference and reproducibility.
I've created a separate CDK8S issue with more details regarding my cdk8s use case.
It's an issue where jsii does not generate anything for struct passed into interface{}, also not sure if it's relevant to CDK8S or jsii, but I'd like to get some form of exception, instead of completely blank synthesis.
SDK version used
github.com/aws/jsii-runtime-go v1.81.0 github.com/aws/constructs-go/constructs/v10 v10.2.22
Environment details (OS name and version, etc.)
ArchLinux node.js lts-hydrogen go 1.20

I don't think it's all about monorepo's - I've switched to a single private go module and JSII still unable to find the k8s imported package.


Show files starting with dot in VS Code Command bar

VSCode Version:

Visual Studio Code - Insiders

Version: 1.39.0-insider
Commit: b7a5b7cf39f569a570599530ffc855b454e37b06
Date: 2019-09-12T08:43:00.105Z
Electron: 4.2.10
Chrome: 69.0.3497.128
Node.js: 10.11.0
V8: 6.9.427.31-electron.0
OS: Darwin x64 18.7.0

OS Version: Darwin x64 18.7.0

Steps to Reproduce:

Open a folder which includes several files starting with a . like .editorconfig or .tmuxinator.yml
Press  ⌘  + p
Type .tmux
tmuxinator.yml isnt suggested

This seems to happen when the folder contains a lot of subfolders and files.
Files starting with a . are not excluded in my settings:

Does this issue occur when all extensions are disabled?: Yes/No
Yes

Are they in your .gitignore?

no

I can't reproduce it. So this only affects files that start with . and you can find all other files? What if you create a new file that starts with . and search for it?


release artifacts for release v1.1.0

Issue #, if available:
Description of changes:
Release artifacts for v1.1.0
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

/lgtm


Add more documentation about check_callback

I couldn't really find a full documentation for all the check_callback parameters. What I found was:

http://www.jstree.com/api/#/?f=$.jstree.defaults.core.check_callback
https://github.com/vakata/jstree#more-on-configuration (mid of the section)

So the signature is function (operation, node, parent, position, more). But that alone leaves many questions open:

What are all possible situations when the callback gets called and what are the respective values for operation?
For each situation, what do all the other parameters mean? Especially the more parameter is very complex. I found for dnd it's pos property can vary between i, a and b. What does this mean?

So it would be cool if you could add some more details here.
Thanks!

Thanks!

For anyone looking, the more.pos property can be any of the following:

'b' - addBefore
'a' - addAfter
'i' - append

Source: https://groups.google.com/forum/#!topic/jstree/qYPyhXcewuc


Sending a message should update the MessageGrid with the sent data

... if the MessageGrid is currently representing the contents of the folder identified by the id returned with #27

fixed with #29


Added label 'azure.workload.identity/use: "true"'

The bash code snippet that deploys a pod to Kubernetes with an Azure Managed Identity Service Account configured is missing the mandatory tag 'azure.workload.identity/use: "true"'.
This fixes issue #108460.

#sign-off


update recipe

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender

@ocefpaf, ready for review. Last commit should only affect osx.

Wow! Passing!!! :tada:

@isuruf I noticed that you did not use multiple sources in the meta.yaml and kept the qtwebkit download in the build.sh.
We don't have to change it now b/c the build takes to long and this is working fine (planning to merge as soon as CircleCI finishes). I'm just wondering if there any reason for this so we do or do not try it again later.

I'm just wondering if there any reason for this so we do or do not try it again later.

As I said indicated in my commit message, I'm just using a configuration that worked in your PR. I think we should just move to @mingwandroid's recipe for 5.6.3 soon, but this can be merged until we do.

As I said indicated in my commit message, I'm just using a configuration that worked in your PR.

Thought so, asked just b/c I know how hard it is to make changes in this recipe and still get a green build :smile:

I think we should just move to @mingwandroid's recipe for 5.6.3 soon, but this can be merged until we do.

Yes! That is the plan :wink:
Thanks to your input here I may be able to do that, unless you want to it :stuck_out_tongue_closed_eyes:
(There is only one thing that I fear more than gdal and that is qt.)

I'll add opencv and boost to that list esp on Windows

I'll add opencv and boost to that list esp on Windows

One day we need to get together for :beers: and drown our packing frustrations. I only wonder if there is enough beer in the world :thinking:

To build webengine, it being a Google derived project, Python 2 is required. Not sure why it's not there for other OSes.

Do i need to do a Windows build for this?

It would be nice but I have no idea if that is going to be easy.

I've uploaded a package for vc14 to the gillins channel (sha256: 6c352b4546fe32125e53214d778cd3f751b4f81ebe95991f6f48c9b28e89cdc7). I can't seem to build vc9 any more due to the error below. Does any one know about this error with the latest conda-build? It used to work by looking for "Visual Studio for python 2.7" (which I do have installed) if VS9 (which I don't have) isn't available.
for /F "skip=2 tokens=2,*" %A in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\9.0" /v InstallDir') do SET "VSINSTALLDIR=%B"
ERROR: The system was unable to find the specified registry key or value.

I've uploaded a package for vc14 to the gillins channel (sha256: 6c352b4546fe32125e53214d778cd3f751b4f81ebe95991f6f48c9b28e89cdc7).

Thanks!
The package is in the channle: https://anaconda.org/conda-forge/qt/files

I can't seem to build vc9 any more due to the error below. Does any one know about this error with the latest conda-build? It used to work by looking for "Visual Studio for python 2.7" (which I do have installed) if VS9 (which I don't have) isn't available.

I guess you need to install "conda-forge-ci-setup=1" but I don't really know the Windows config stuff.

@ocefpaf, the vc14 build has no pinnings.
@gillings, when you build do conda build recipe -m /path/to/conda_build_config.yaml where conda_build_config.yaml comes from the conda-forge-pinning package.

Btw, how long does the windows build take?

@ocefpaf, the vc14 build has no pinnings.

Thanks for checking. I pulled the package. I may try to attempt to build it locally.

Btw, how long does the windows build take?

Last time I checked it took more than 2 hours on my Windows machine :-(

I've uploaded a qt-5.6.2-h2639256_8.tar.bz2 to the gillins channel for vc14 (sha256: 153ba1e49fe20479be235751a0e7695c0187dbf53e04fa32ca4ce10a1a4b5ecd).
I've just seen that Visual Studio for Python 2.7 is no longer supported (https://github.com/conda/conda-build/issues/3039#issuecomment-407009373). I'm installing VS 2008 and will see if that fixes it.

Looks good

Thanks @gillins for building and @isuruf for reviewing!
Uploading it now :tada:


API request

Action > Controller > Config configuration. Options will be merged
Api:
class FoosController

acts_as_shapeable path: Serializers:Foo

def index
  render: json: query.includes(shape.eager_loads), serializer: shape
end

This has mostly been addressed. We still need to add support for a config file

awesome. I'll close this one out.


CSV without header

Is it possible to validate files without header?
I expected something like this but it seems it's not possible.
validators = {
        0: [
            UniqueValidator(),
            IntValidator(),
        ],
        1: [
            FloatValidator(),
        ],
        2: [
            SetValidator(["USD", "EUR", "GBP"]),
        ],
    }

Not currently, the header is required for certain validators to function properly, e.g. to determine row lengths for the RowLengthValidator, as well as output on results.

@rabbit72 I put together a small pull request at #93 as a proof of concept. This would allow a developer to define the header values at the validator level to validate CSV files without included header rows. Would this change address your use case?

@jonafato hi, looks promising!
Does it mean this change allows me to name columns in a CSV file that doesn’t contain the first row with columns?
Do you validate that all rows contain the same number of columns?

Does it mean this change allows me to name columns in a CSV file that doesn’t contain the first row with columns?

Yes, if you use this feature, your CSV files should not include header rows. (This feature is not compatible with CSV files that include header rows, and setting fieldnames along with a header row is likely to result in a validation error or other invalid results.)

Do you validate that all rows contain the same number of columns?

This is not enabled by default, but vladiate ships with a RowLengthValidator that you can use with the row_validators attribute to ensure that all rows have the same number of columns as the header row (or, with this new feature PR, the fieldnames attribute). This row validator is available for use as of version 0.0.25.


Img-img retrieval

Hello!
Can your benchmark measure img2img retrieval quality? I assume that if I just change the domains from [['txt'], ['img']] to [['img'], ['img']] it'll work, but will the metrics be representative?
Tnx in advance.

Hi @epishchik ! Correct. You can do any combination of text and image, including image to image. As long as the dataset being used is setup for that.


Use exit codes from PyInstaller entrypoint [PRED-1736]

For executables installed with PyInstaller (i.e. our standalone installer)
the exit code was not being set correctly. This change will correct that
so its behavior is in line with the entrypoint created by setup.py

Coverage remained the same at 82.411% when pulling 10d5ddfbc97d5b6b76a58f6e0b7fe0b6d40b5eb0 on exit-codes-from-PyInstaller-entrypoint into 3ecffa1fff2952f2895dbcafc7642fbe62a79b97 on master.


Print date/time for each step taken in docs.sh

This will allow us to see in the logs how long each step takes

Merging on red to try to help to get the build green.

https://github.com/flutter/flutter/issues/60646


fix missing umbrella header

don't forget to re-tag to a new version in your podspec after that :)

thanks!


Downgrade ci to 12.17.0 due to MacOS issue

There's an issue with the imodeljs-native addon on MacOS for versions of Node greater than 12.17.  Downgrade until we can get a fix in.

/AzurePipelines run


Question: Making the api docs dynamic?

I am wondering if I am able to create the a way to dynamically add variables in slate? I'm trying to find a way to have the api key for the person looking at the docs rendered when they view the docs page. If there is a way is there a particular way to have middleman serve these changes up?

Not built in to Slate, no! But we're just HTML + CSS + JS, so you could add code to all_nosearch.js with code to fill in API keys dynamically.

Ok I apologize but I actually asked the wrong question but that is something I am looking at doing.
Right now, in our api docs (index.md) the url is example.com. We have multiple sites (something.example.com, public.something.example.com, dev, test). If we want to build docs for the test site then we have to edit the md file and then rebuild the docs. We have to do this for every site. The goal is to make this easier. We could make a bash script that takes a url and replaces the url in the md file and then builds it. Or we could find other ways of making it more dynamic. Any thoughts on this or have you seen or heard of people doing this other ways?

Ah, no worries! Middleman has a feature to generate multiple output files from the same input file: https://middlemanapp.com/advanced/dynamic-pages/
The best you can do is probably generate public_index.html, dev_index.html, etc and then write a script that copies the files to the relevant locations.


Added AsyncBatchedExecutor for execute tasks in parallel with batch constraints

Added AsyncBatchedExecutor for execute tasks in parallel with batch constraints. Maybe you will find a better way for modify this algo. I will really appreciate your help with review this code. Yes I know about Parallel.ForEachAsync, but Parallel.ForEachAsync realization uses locks, in opposite my realization is lock free.

PR has 12-month old commits.
I think that the same behavior can be achieved with Parallel.ForEachAsync from .NET standard library.

No, you need to pick only required changes and repeat them on top of develop branch. All these commits are from master branch.

@Tassadar2499 , I think that lock-free nature of the proposed implementation is a bit incorrect. Task.WhenAll as well as Task use locks internally. Additionally, batch processing reduces throughput of parallel execution in contrast to Parallel class. For instance, we have 6 items in the collection and batch count is 3. Assuming that processing time of each item is different (that is not so uncommon):

I1 = 5ms, I2 = 20ms, I3 = 6ms
I4 = 3ms, I5 = 25ms, I6 = 5ms

Total time for each batch is Max(t(I1),... t(In)). Thus, the total processing time is 20+25=45ms
Now execution steps of Parallel with parallelism equal to 3:

I1 = 5ms, I2 = 20ms, I3 = 6ms
I4 = 3ms, I2 = 15ms, I3 = 1ms (5ms)
I4 = 2ms, I2 = 14ms, I5 = 25ms (1ms)
I6 = 5ms, I2 = 12ms, I5 = 23ms (2ms)
I2 = 7ms, I5=18ms (5ms)
I5 = 11ms (7ms)
Total execution time is 5+1+2+5+7+11 = 31ms

As you can see, Parallel is 32% faster. This happens because batch processing cannot take a new work item from the next batch.
Task.WhenAll doesn't provide a way to process a completed task in the batch. If you want to process tasks as they complete you can take a look at TaskCompletionPipe<T> class provided by .NEXT Threading library.


Video/Blog article of how to have this package running?

I am currently stuck at getting 403 error with my Application ID and Secret value. What are the permissions required by the Application before using its appID and secret to get the access Token?

Hey there! If you're authenticating at the application level, I think you'll need these permissions. If you're using user auth, you'll need a refresh token.

I you're using user auth, you should be able to get the required refresh token by following these instructions: https://learn.microsoft.com/en-us/partner-center/developer/secure-sample-application

Hey Justin,
Thank you for the response! I have the permissions set as below in my App
registration. Below is my setup for more context.
Tenant A - My own Developer tenant which has the App registration with all
the required permissions, secret generated and redirect URIs for
authentication by code.
Tenant B - MSP Tenant that is the CSP Tenant and has access to the the
Partner Center.
Tenant C,D,E - 3 tenants that are the Customers of the CSP Tenant (ie
TenantB)
After consenting through the MSP tenant(Tenant B) a service principal for
this App is generated in Enterprise apps of the MSP tenant(Tenat B).
I add the created service principal to AdminAgents group so that it has
access to all the roles provided via the GDAP relationship with the
customer tenants.
While using your package I initiate the PartnerCenter client with domain of
the MSP tenant (Tenant B) + Application ID + Azure Secret for that
application.
Whatever function I try to run with this client I get 403 error. What am I
doing wrong?
[image: image.png]
On Fri, Dec 6, 2024 at 4:08 PM Justin McMahon @.***>
wrote:

I you're using user auth, you should be able to get the required refresh
token by following these instructions:
https://learn.microsoft.com/en-us/partner-center/developer/secure-sample-application
https://camo.githubusercontent.com/a544566e9646db72f4883e758b0580db7a9e9513bc6db9ab2a1e97198e2db1b8/68747470733a2f2f6c6561726e2e6d6963726f736f66742e636f6d2f656e2d75732f6d656469612f6f70656e2d67726170682d696d6167652e706e67
Secure partner application for CSP and CPV - Partner app developer
https://learn.microsoft.com/en-us/partner-center/developer/secure-sample-application
Create a secure Partner Center application.
—
Reply to this email directly, view it on GitHub
https://github.com/pliancy/microsoft-partnercenter-node/issues/130#issuecomment-2524678179,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVCQSPJOGVA5LX2WAPIIGR32EI37FAVCNFSM6AAAAABTFSNZNCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMRUGY3TQMJXHE
.
You are receiving this because you authored the thread.Message ID:
@.***>

Have you tried generating a refresh token and then instantiating the MicrosoftPartnerCenter with it?
const mspc = new MicrosoftPartnerCenter({
    partnerDomain: 'myPartnerDomain.onmicrosoft.com',
    authentication: {
        clientId: 'client-id',
        clientSecret: 'client-secret',
        refreshToken: 'refresh-token'
    }
}