Is it possible to open scene viewer without showing the 3d model with model-viewer?

For some cases we would like to create a link to open directly scene viewer, so we would like to know if it is possible.
I noticed model-viewer component creates an anchor with a 'intent' command with some fallback parameters.
is it possible to hide the model-viewer component but keep the link to open the AR functionality directly?
I tried with an anchor with the href attribute set with the intent command but it is not working, i also tried by handling the event and using another anchor to trigger the .click() method but it didn't work, does it have any restriction or something like that?
intent://subdomain.domain.com/file.glb?
link=https://domain/ar-example/ar-example.html
&title=3dmodel
#Intent;
scheme=http;
package=com.google.ar.core;
action=android.intent.action.VIEW;
S.browser_fallback_url=https://domain/ar-example.html#model-viewer-no-ar-fallback;
end
<a href="intent://subdomain.domain.com/file.glb?link=https://domain/ar-example.html&title=3dmodel#Intent;scheme=http;package=com.google.ar.core;action=android.intent.action.VIEW;S.browser_fallback_url=https://domain/ar-example.html#model-viewer-no-ar-fallback;end"> AR </a>

Hi @Esteban26 thanks for the questions.
🚨Important disclaimer: the implementation you are looking at in <model-viewer> is presently considered a private / undocumented Scene Viewer API and is subject to change at any time!
To answer your high-level question: it is possible to set reveal="interaction" on <model-viewer> and also use the ar attribute to show the AR button where available without loading the model right away. This will have the effect of displaying the poster and deferring the model until the user interacts with the poster. However, please also be aware that on Android devices without ARCore, <model-viewer> will still fallback to going fullscreen when the button is pressed.
To answer your low level question: the code you are looking at is the code that launches Scene Viewer. <model-viewer> doesn't have any special / restricted capabilities, but per the disclaimer above the API to launch Scene Viewer is considered private / undocumented and is subject to change without notice. <model-viewer> will be updated as quickly as possible when the API changes. The easiest way to avoid a breaking change is to continue to launch Scene Viewer with <model-viewer> until the Scene Viewer API is publicly documented.

Thanks for your response @cdata :) I already found my issues

intent://subdomain.domain.com/file.glb?
link=https://domain/ar-example/ar-example.html
&title=3dmodel
#Intent;
scheme=https';
package=com.google.ar.core;
action=android.intent.action.VIEW;
S.browser_fallback_url=https://domain/ar-example.html#model-viewer-no-ar-fallback;
end**;**

@cdata is the reveal attribute a public parameter/attribute? I didn't see it at the documentation. Will this attribute be able in future versions?

Sorry, your comment took me by surprise because I wrote the docs for that attribute ;)
It looks like the docs were accidentally reverted to an older version. I filed https://github.com/GoogleWebComponents/model-viewer/issues/549 to track this issue.
In the mean time, you can read the correct docs in the PR where reveal was added: #487

Here is a more direct link to the correct docs:
https://github.com/GoogleWebComponents/model-viewer/blob/076c380c85538b3b0b7a12f6965bc97a9a7035d7/index.html#L201-L208

You can find the full documentation here: https://developers.google.com/ar/develop/java/scene-viewer#ar-only

Hi! I've tried to inspect this thread and #631 carefully, but still can't get the solution.
Is there a straight answer can showing GLB model in AR be as simple as USDZ only by direct link? Or scanning a QR code for example? Just point your device's camera at QR code and be redirected directly to AR mode?
I've tried the way with calling intent, but it also works only if user touch the link with his own finger, calling this  with ajax or any other implementation of "autoclick" feature leads to fallback url.

Hi! I've tried to inspect this thread and #631 carefully, but still can't get the solution.
Is there a straight answer can showing GLB model in AR be as simple as USDZ only by direct link? Or scanning a QR code for example? Just point your device's camera at QR code and be redirected directly to AR mode?
I've tried the way with calling intent, but it also works only if user touch the link with his own finger, calling this  with ajax or any other implementation of "autoclick" feature leads to fallback url.

You're running up against the browser security model. Entering AR either via WebXR or App intent is not allowed except by user activation. This means they have to actually click the AR button; you can't do it for them. You can use a custom AR button using our slot that covers the whole element to make it clear if you want.

You're running up against the browser security model. Entering AR either via WebXR or App intent is not allowed except by user activation. This means they have to actually click the AR button; you can't do it for them. You can use a custom AR button using our slot that covers the whole element to make it clear if you want.


maintainers: add gmemstr

Description of changes
Adding myself as a maintainer for future packaging work, specifically #252557 at the moment
Sidenote: I sign my commits with an SSH key, rather than GPG. Wonder if we can add support for that in some way to the maintainer list.
Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

Sidenote: I sign my commits with an SSH key, rather than GPG. Wonder if we can add support for that in some way to the maintainer list.

Yep I also do that. I also raised that somewhere, and it is considered (to my knowledge). Nothing you can do right now.


Failure Notification: ReportStream Inbound Orders

Story
As a hospital, so that I know if ReportStream fails to process an (already accepted) incoming order, I need to be notified of failures that occur in RS’s handling of an order.
Pre-conditions
Acceptance Criteria

[ ] The hospital is notified when RS fails to process an order after already returning an HTTP 200 response to the sender.
[ ] Failures of this sort are listed by the metadata endpoint.

Tasks
Research
Copied from spike: (likely need to be refined)

[ ] See if we can be notified when an error occurs in RS.
[ ] Document what validation that is happening already in RS today.

[ ] What would cause the pipeline to fail which would require a history API call to find out about? - @jcrichlake

[ ] If RS fails to send a message (to TI) due to a bad format, how does the customer know? How do we want our customers finding out? @jorg3lopez
[ ] See if we can be notified when an error occurs in RS.

Engineering

[ ] Engineering work needed to complete the story
[ ] Foundational: Technical runway work to support this and future efforts

Definition of Done

[ ] Documentation tasks completed

[ ] Documentation and diagrams created or updated

[ ] Implementation guide (/ig folder)
[ ] ADRs (/adr folder)
[ ] Main README.md
[ ] Other READMEs in the repo
[ ] If applicable, update the ReportStream Setup section in README.md

[ ] Threat model updated
[ ] API documentation updated
[ ] Source code documentation created when the code is not self-documenting

[ ] Code quality tasks completed

[ ] Logging added where useful
[ ] Code refactored for clarity and no design/technical debt
[ ] Adhere to separation of concerns; code is not tightly coupled, especially to 3rd party dependencies
[ ] Code is reviewed or developed by pair; 1 approval is needed but consider requiring an outside-the-pair reviewer
[ ] Code quality checks passed

[ ] Security & Privacy tasks completed

[ ] Security & privacy gates passed

[ ] Testing tasks completed

[ ] Load tests passed
[ ] Unit test coverage of our code >= 90%

[ ] Build & Deploy tasks completed

[ ] Build process updated
[ ] API(s) are versioned
[ ] Feature toggles created and/or deleted.  Document the feature toggle
[ ] Source code is merged to the main branch

Research Questions

Optional: Any initial questions for research

Decisions

Optional: Any decisions we've made while working on this story

Notes

Discussed on 5/9/2024 with @sfradkin and @somesylvie. Is/are there a dead letter queue(s) in ReportStream that we can monitor? Can we readily filter those by the ETOR topic?

Prior Findings
What would cause the API endpoint to fail immediately?  E.g. a 400 is returned.
400 Bad Request

Sender name is blank
Sender is unknown
invalid Schema or Formate Paramater = Invalid Parameter Exception
Invalid receiver name
unknown sender
unknown schema
missing content type
Not a mimeType
Blank messages if hl7- v2

401 Unauthorized

Bad authentication
Bad Authorization

404 Not Found

Organization does not exist (need to test this one)

411 Length Required

Request Header "content-length" is missing, "content-length" header is not a number, "content-length " is < 0

413 Payload Too Large

"content-length" header is > 50 mb, request body is greater than 50 mb

500 Internal Server Error

Other

Further 400s
Unsupported HL7 message type
rawMessage is empty
if FHIR bundle is empty
Unable to parse FHIR data
IllegalStateException Unexpected sender format

Discussed during Refinement on 5/21/2024:

For this story, it may be easier to send an email than update metadata, as this is before TI is aware of the message.
This story may automatically complete the TI=>RS failure story, as well as RS=>receiver story.

Instead divide by step? (e.g. parsing, delivery)

Consider refactoring and streamline existing alerting

Questions for later:

How long can the various retry processes take? If more than hours, we may need notification before the message ends up in a failed state (i.e. poison queue)

As discussed yesterday, it may be easiest to just send an email notification for this particular story -- as opposed to updating the metadata.


[LI-HOTFIX] Add an integration test for LiCombinedControl request

TICKET = LIKAFKA-49954
LI_DESCRIPTION =
Added integration test to verify commit 8c5b1ec033577cb6ca2b445a70e7347581d5b7c6 do fix a LiCombinedControlRequest bug. This test adds replicas to a broker that is in a cluster with replicas in other brokers and that previously has not hosted any replicas on it. The test then verifies after assigning partitions to the broker, the broker still sends LiCombinedControl requests.
Verification is done that without commit 8c5b1ec033577cb6ca2b445a70e7347581d5b7c6, this added test would fail; and with commit 8c5b1ec033577cb6ca2b445a70e7347581d5b7c6, the test would pass.
EXIT_CRITERIA = The same as the LiCombinedControl request.

Also, this should be an [LI-FIXUP] to 8c5b1ec.
Please take a look at previous history on how [LI-FIXUP] commits writes the commit message (e.g. which commit this LI-FIXUP fixes) and apply them upon merging.


Add advanced filters and images function

@iamvdo awesome! Can you just put a EOF new-line to tests files, please?

Merged manually to next6


For tupled functions it's possible to break/step before the arguments have correct debug display

Migrated from fsharp/fsharp#369
From @DavidKarlas

Bug reported in XS also reproducible in VS as debugger bug I came to conclusion it's compiler bug... > See comment 3 for more details.
see https://bugzilla.xamarin.com/show_bug.cgi?id=21537

From @7sharp9
Given the following program:
[<EntryPoint>]
let main argv =

    let combineTwoTupledStrings (one, two)=
        sprintf "First:%s Second:%s" one two

    printfn "%s" <| combineTwoTupledStrings ("hello", "everyone")

When a break point is placed on on the line: sprintf "First:%s Second:%s" one two
The value one is incorrectly shown as null
The value two is incorrectly shown as Unknown Identifiew
The locals display does not include two

From Ram Chandra
I have checked this issue and I am getting the same behavior.
Steps I followed:

Create a "F# console application on XS".
Replace the code of "Program.fs" in file with following code[<EntryPoint>]
let main argv =

    let combineTwoTupledStrings (one, two)=
        sprintf "First:%s Second:%s" one two

    printfn "%s" <| combineTwoTupledStrings ("hello", "everyone")
    0

Place a breakpoint on following line :
```sprintf "First:%s Second:%s" one two``
Debug the application.

When I hover the cursor over the value of one, I observed that the suggestion
popup display it null and the values of two is incorrectly shown as Unknown Identifier. I have checked the same on 'Local' debug window and I am getting
the same behavior.
Screencast
Environment Info:
Mac OS X 10.9.3
Xamarin Studio: 5.2 (build 384)

Build Information
Release ID: 502000384
Git revision: 09e06441e39ea272ddda63758fd53013157f7e45
Build date: 2014-07-16 11:15:54-04
Xamarin addins: 2d11dd4dad5b35ca83f24d70e965792a47be8291

From @DavidKarlas:
This is compiler bug not debugger. You can confirm this by compering results in
VisualStudio(it's same behaviour).
Problem is that this method in C# looks like this:
public override string Invoke (Tuple<string, string> tupledArg)
{
  string one = tupledArg.get_Item1 ();
  string two = tupledArg.get_Item2 ();
  FSharpFunc<string, FSharpFunc<string, string>> clo =
ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<string,
FSharpFunc<string, string>>> (new PrintfFormat<FSharpFunc<string,
FSharpFunc<string, string>>, Unit, string, string, Tuple<string, string>>
("First:%s Second:%s"));
  return FSharpFunc<string, string>.InvokeFast<string> (new
Program.combineTwoTupledStrings@5-1 (clo), one, two);
}

And .mdb(or .pdb) method information look like this:
<method token="0x6000007" signature="System.String
Program/combineTwoTupledStrings@5::Invoke(System.Tuple`2<System.String,System.String>)">
  <sequencepoints>
  <entry il="0x0" row="5" col="9" file_ref="1" />
  </sequencepoints>
  <locals>
  <entry name="one" il_index="0" scope_ref="2" />
  <entry name="two" il_index="1" scope_ref="3" />
  </locals>
  <scopes>
  <entry index="0" start="0x0" end="0x2d" />
  <entry index="1" start="0x0" end="0x2d" />
  <entry index="2" start="0x7" end="0x2d" />
  </scopes>
</method>

So when debugger step into this method string one = tupledArg.get_Item1 (); is
not called yet and variable two is not visible yet because it's part of scope
3 which starts at ILoffset 0x7... So doing few steps results into entering into
scope 3 and both variables being set...
What compiler should do is set sequence point to IL 0xE or something like
that(so after both variables are set) instead of 0x0...
Pasting also IL output:
.method public strict virtual
  instance string Invoke (
    class [mscorlib]System.Tuple`2<string, string> tupledArg
  ) cil managed
{
  // Method begins at RVA 0x20f0
  // Code size 45 (0x2d)
  .maxstack 7
  .locals init (
    [0] string,
    [1] string,
    [2] class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2<string, class
[FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2<string, string>>
  )

  IL_0000: ldarg.1
  IL_0001: call instance !0 class [mscorlib]System.Tuple`2<string,
string>::get_Item1()
  IL_0006: stloc.0
  IL_0007: ldarg.1
  IL_0008: call instance !1 class [mscorlib]System.Tuple`2<string,
string>::get_Item2()
  IL_000d: stloc.1
  IL_000e: ldstr "First:%s Second:%s"
  IL_0013: newobj instance void class
[FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5<class
[FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2<string, class
[FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2<string, string>>, class
[FSharp.Core]Microsoft.FSharp.Core.Unit, string, string, class
[mscorlib]System.Tuple`2<string, string>>ctor(string)
  IL_0018: call !!0
[FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString<class
[FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2<string, class
[FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2<string, string>>>(class
[FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4<!!0, class
[FSharp.Core]Microsoft.FSharp.Core.Unit, string, string>)
  IL_001d: stloc.2
  IL_001e: nop
  IL_001f: ldloc.2
  IL_0020: newobj instance void
Program/'combineTwoTupledStrings@5-1'::.ctor(class
[FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2<string, class
[FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2<string, string>>)
  IL_0025: ldloc.0
  IL_0026: ldloc.1
  IL_0027: call !!0 class
[FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2<string,
string>::InvokeFast<string>(class
[FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2<!0, class
[FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2<!1, !!0>>, !0, !1)
  IL_002c: ret
}

This is definitely a debug range bug, but as I mentioned on Codeplex, if you continue single-stepping (through invisible code) the locals do populate correctly (at least in VS, have not looked at XS)

Fixed


HuskSync 2.0 - no more proxy plugin, redis caching, rewritten database handling, remove sqlite support

I thought about it and decided it was time for a change of approach. The goal of this rewrite is basically to deprecate the need for a proxy plugin while maintaining the speed afforded by redis, and also opening the door to more platforms (fabric). It'll do this through utilizing redis key caching and a rewrite of the common module.

[x] Use redis key caching, remove need for proxy plugin
[x] Rewrite database class for much, much better access
[x] Make platform independent to allow porting to other platforms
[x] Better handling if connection is lost to redis (#26)
[x] Finally support multi-user backups as was originally planned (and to hopefully reduce complaints) - including new in-game commands to support this
[x] Serialize with gson (to jsons) rather than implements Serializable (this is a big improvement for many reasons). Should also improve database performance
[x] Support data conversion from HuskSync 1.4
[x] Synchronisation of player PersistentDataContainers (#30)
[x] Write new locales
[x] Fix issues with /inventory and /enderchest command
[x] 📌 "Pinning" user data backups so they don't get rotated
[x] Update other locales, start requesting updates from translators
[x] Plan integration
[ ] Test everything (esp. PDC syncing, location syncing)

The work done for HuskSync 1.4 with regard to removing the MPDB dependence will still be very useful for this.
Unfortunately, that means SQLite support will be dropped, though this isn't really an issue. Nobody running HuskSync doesn't have a MySQL database. Further work to support additional database types can be explored.
A side effect of all this work, particularly on serialization, is that there should be decent performance gains, especially on expensive events (#31)
Thoughts and feedback welcome.

Disconnecting from the proxy is a good solution.
Is it possible to transfer data from Sqlite to Mysql?

Too fast....
Thanks you for such a great plugin ❤

My initial checklist is now done, but still todo before merge & release:

[ ] Fix issues with /inventory and /enderchest command
[ ] 📌 "Pinning" user data backups so they don't get rotated
[ ] Update other locales, start requesting updates from translators
[ ] Test everything

Worth noting, I wrote a little library to aid 1.4 --> 2.0 importing (https://github.com/WiIIiam278/HSLDataConverter). I've decided that data importing wont be manual, as adding stuff to the plugin enable logic is liable to go wrong.
Clear documentation on how to migrate is better than just doing it manually whether you like it or not. The console command for doing this, by the way, is husksync migrate legacy <args>, which will bring up a wizard just like the mpdb migrator.

Merging this now to begin final checks and polish.


NBKBinaryIntegerWords

I'm seeing some overlap between moduels, now that I'm working on a big integer with lots of word-based algorithms. I can't use pointers as a common base case because NBKDoubleWidth's ordering depends on the platform's architecture. Also, while I can write most constraints in a long where clause, I can't write indices == 0 ..< count.
// pinky promises that indices == 0 ...< count
protocol NBKBinaryIntegerWords: RandomAccessCollection where Element == UInt, Indices == Range<Int> { }

Note: The Indices == Range<Int> constraint infers Index == Int.

I can't use pointers as a common base case because NBKDoubleWidth's ordering depends on the platform's architecture. Also, while I can get most constraints with a really long and unergonomic where clause, I can't get indices == 0 ..< count.

It would be really nice, however, if Swift let you use associated type constraints as generic type constraints like some BinaryInteger.Words. I believe that would remove the need for most bogus bag-of-type-constraint protocols.

Hm. It's also quite trivial to write algorithms generic over any limb type, not just UInt.

While I said abstracting over limbs is trivial, I had to add a truncating-with-bit-casting-fast-paths init method.


LevelZero Performance Factor Support

Relates to #2172 feature request from github issues
Built on top of #2081 since it provides signals with similar Device/Chip split.

Adds support for LevelZero sysman performance factor signals and controls.
Feature documentation here
The high level is that this is a unitless value in Sysman from 0-100 that provides a tradeoff between the compute hardware and all other hardware.  100 favors compute, 0 favors support hardware.
In the Level IO Group we support reading the associated signals and writing controls for:

[x] The Chip Level Compute Domain

Items keeping this in draft:

[x] Updates to MockLevelZero.hpp
[x] Updates to LevelZeroDevicePoolTest.cpp
[x] Updates to LevelZeroIOGroupTest.cpp
[x] Update signals and controls for save/restore - setconfig() may not be granted, so getconfig() may not contain the last value written as outlined here

Splitting perf_factor & other levelzero API into GPU & GPU_CHIP functions tracked as part of #2689


erroneous 8640 meter altitude and BL sub grid

latest flight shows some outliers. here
When this occurs, the the 2nd packet ALWAYS conveys 8640 M altitude and BL for the char 5,6 grid. Voltage and temperature seem to be responding normal though.
Based on TELEN, this seems to only happen first in the morning, or, immediately after a afternoon reboot. (why its rebooting in the afternoon is another story). so based on this criteria perhaps this is something I can replicate on the ground (by forcing frequent reboots).

my two cents:
I think having a test loop for gps cold reset would be useful
There are two aspects to reboot: rp2040 startup, and gps is starting with empty almanac
The ATGM336H-5N31 https://www.icofchina.com/d/file/xiazai/2016-12-05/b5c57074f4b1fcc62ba8c7868548d18a.pdf
only preserves the almanac if VBAT is between 1.5v and 3.6v
if you're expecting a gps cold reset because you disconnected power, well you usually have to wait 10-15 secs for caps to drain, otherwise VBAT may stay high enough so almanac is preserved.
it's easier to do repeated gps cold reset, because that flushes the almanac and all other gps data.
I'm assuming you don't force a gps cold reset on powerup, so the almanac would be preserved if VBAT is good
but wakeup in the morning on a balloon, and the almanac is definitely not there
Takes 2-3 minutes to load the almanac
U4B will send callsign and telemetry even if gps isn't valid
You should act like traquito and not send telemetry if the gps isn't valid. Don't use "the last one" in the morning (u4b does that..it can send a gps location from the prior day
but I really think you should have some kind of gps cold reset testing in the config (a loop)
lock time (which will include almanac time) can be grepped
If you have a noisy system, it might not be able to get the almanac ..the almanac has to come from a single satellite.
it's the hardest thing the gps system has to grab, in terms of data
these chips don't need to download a full almanac. they can get a fix with a partial almanac

Oh: I was testing with a low voltage source.
some questions:
Does your voltage supervisor on the jlcpcb  require input voltage >3v to boot?
I'm not sure you've documented that?
what voltage will it cause reset at? (thinking of your afternnoon reboot. Sun is hot then, lower power/voltage from cells sometimes, because cells are hot

I left a jlcpcb board running in my window last night
I tend to have a gps-challenging environment (u4b has a hard time with hardware test)..although traquito does fine with consistent 60 sec gps fixes (from cold reset)...with consistent altitude
I notice here the altitude changes from a correct 2358 meters to other values. Sat count varies, including going down to 0. highest is 15.   Also: what is the first column? is utc timestamp on this somehow?
00d08:42:03.478330 [14656] Temp: 88.4  Volts: 3.1  Altitude: 1326  Satellite count: 5
00d08:42:08.484913 [14657] Temp: 85.9  Volts: 3.1  Altitude: 1262  Satellite count: 6
00d08:42:13.491481 [14658] Temp: 85.9  Volts: 3.1  Altitude: 1207  Satellite count: 6
00d08:42:18.498051 [14659] Temp: 86.7  Volts: 3.1  Altitude: 1157  Satellite count: 6
00d08:42:23.504646 [14660] Temp: 86.7  Volts: 3.1  Altitude: 1112  Satellite count: 5
00d08:42:28.511266 [14661] Temp: 84.2  Volts: 3.1  Altitude: 1072  Satellite count: 5
00d08:42:33.517876 [14662] Temp: 87.6  Volts: 3.1  Altitude: 1035  Satellite count: 5
00d08:42:38.524507 [14663] Temp: 86.7  Volts: 3.1  Altitude: 1002  Satellite count: 5
00d08:42:43.531129 [14664] Temp: 87.6  Volts: 3.1  Altitude: 971  Satellite count: 5
00d08:42:48.537780 [14665] Temp: 86.7  Volts: 3.1  Altitude: 948  Satellite count: 5
00d08:42:53.544395 [14666] Temp: 81.7  Volts: 3.1  Altitude: 948  Satellite count: 5
00d08:42:58.550991 [14667] Temp: 83.4  Volts: 3.1  Altitude: 949  Satellite count: 5
00d08:43:03.557614 [14668] Temp: 86.7  Volts: 3.2  Altitude: 951  Satellite count: 5
00d08:43:08.564244 [14669] Temp: 86.7  Volts: 3.2  Altitude: 954  Satellite count: 5
00d08:43:13.570865 [14670] Temp: 81.7  Volts: 3.2  Altitude: 934  Satellite count: 4
00d08:43:18.577450 [14671] Temp: 85.9  Volts: 3.1  Altitude: 921  Satellite count: 5
00d08:43:23.584023 [14672] Temp: 85.9  Volts: 3.1  Altitude: 898  Satellite count: 5
00d08:43:28.590612 [14673] Temp: 83.4  Volts: 3.1  Altitude: 898  Satellite count: 11
00d08:43:33.597170 [14674] Temp: 83.4  Volts: 3.1  Altitude: 2372  Satellite count: 13
00d08:43:38.603730 [14675] Temp: 85.9  Volts: 3.1  Altitude: 2370  Satellite count: 13
00d08:43:43.610295 [14676] Temp: 83.4  Volts: 3.1  Altitude: 2370  Satellite count: 12
00d08:43:48.616874 [14677] Temp: 83.4  Volts: 3.1  Altitude: 2370  Satellite count: 12
00d08:43:53.623418 [14678] Temp: 85.1  Volts: 3.1  Altitude: 2370  Satellite count: 13
00d08:43:58.630011 [14679] Temp: 84.2  Volts: 3.1  Altitude: 2371  Satellite count: 13
00d08:44:03.636573 [14680] Temp: 82.5  Volts: 3.1  Altitude: 2372  Satellite count: 14
00d08:44:08.643148 [14681] Temp: 83.4  Volts: 3.1  Altitude: 2372  Satellite count: 14
00d08:44:13.649706 [14682] Temp: 84.2  Volts: 3.1  Altitude: 2372  Satellite count: 14

Don't know if this is expected or maybe related. Note the loss of 3d fix while sitting there.   The tracker wasn't moving, but the sats were :-)   but in general, i think only seeing 6 or 7 sats means you are very close to the edge of not enough satellite signal. indoors, and also changing cloud coverage can really attentuate the sat signals.

Does your voltage supervisor on the jlcpcb require input voltage >3v to boot?

i believe the device i used has a threshold of 3.3v, and no i dont think i specifically documented that. That is kindof an arbitrary level, and further experimentation could be done to possibly use a lower value.
Also, you said it was reporting 3.1 volts when plugged into USB. that should not be, it should have reported close to 5. Unless you had a defective usb cable or port, that should be a new issue.

kevin, based on our email exchange i am pretty sure this particular issue is caused by incorrectly parsing GPS messages that dont have all the expected fields, like you mentioned. I will fix shortly...

Also, you said it was reporting 3.1 volts when plugged into USB. that should not be, it should have reported close to 5. Unless you had a defective usb cable or port, that should be a new issue.

the code was doing wrapping in main.c before that print
USB voltage of 5.0v is not in the 3-4.95v range that u4b supports without wrapped
So any high USB voltage could cause a wrap (in telemetry)
I changed that in my fork so that the modulo stuff for temp and voltage doesn't happen in main where it prints to stdout

kevin, based on our email exchange i am pretty sure this particular issue is caused by incorrectly parsing GPS messages that dont have all the expected fields, like you mentioned. I will fix shortly...

I added some enhancements to my fork in gpstime.c to have the parsing be more obviously robust in the present of empty fields etc. (the variable length char strings and the way commas were turned into null terminators for char extraction is a little nonintuitive.
you can look at what I did
but I compared GNGGA sentences and altitude extractions, and I don't believe there was a problem there.
the code I changed just is a little more understandable that it covers the empty cases, I think (or not enough commas, or some other error cases I think)

i believe the device i used has a threshold of 3.3v, and no i dont think i specifically documented that. That is kindof an arbitrary level, and further experimentation could be done to possibly use a lower value.

in general, for LDO's the input voltage has to be equal to the target regulated voltage + the drop voltages.
So I think Vin needs to be around 3.55v
3.3v will pass thru, but it won't be regulated as well, if I remember correctly.

a while back i started to "snapshot" position and altitude when the first packet is created, and use those saved values for the 2nd telemetry packet (otherwise strange things happened if major grid changed during 1st/2nd packet). In the event that the pico boots up too late to create the 1st packet, but in time to create the 2nd, the code generates the 2nd packet with data from the "snapshot" variables, which contained bogus data because the first packet code never ran and never wrote data into them. now fixed.


How to package package npm modeules?

I use npm to install requests in my own PC. But after i complete extension develop and use vsce package to pack it , it can't be use in an environment without request. How can i pack the extension using an npm install library?

You can't use npm to publish extensions, vsce is the cli to publish them to the extension marketplace


refactor: use instanceof patterns where detected

I am slightly annoyed every time I see a cast, so mass-convert to instanceof patterns where obvious.
Done automatically by IDE on the first commit and manually on the second.

I am slightly annoyed every time I see a cast, so mass-convert to instanceof patterns where obvious.

Have you considered some anger management counseling?

Done automatically by IDE on the first commit and manually on the second.

Which IDE and if IntelliJ IDEA Community Edition what setting turns it on and off?

Have you considered some anger management counseling?

No, I think counseling is about how you react to what you feel, instead of managing to not have the feelings in the first place.

Which IDE and if IntelliJ IDEA Community Edition what setting turns it on and off?

Yes, IntelliJ. Inspections -> Java -> Java language level migration aids -> Java 16 -> Pattern variable can be used.

No, I think counseling is about how you react to what you feel, instead of managing to not have the feelings in the first place.

"annoy" has been a trigger word in the past.

Yes, IntelliJ. Inspections -> Java -> Java language level migration aids -> Java 16 -> Pattern variable can be used.

Thanks.  In theory it should be flagged for me as well and I have not seen it.  I know there was at least one instance because the opportunity was pointed out in a review.


ng-grid

Hi,
I have a grid with pagination. If I check the selectAll check box on page number1 of the grid and move to next page of the grid, selectedAll is still check whereas none of the items are selected in page two of the grid.

Could you throw together a plunker to demonstrate the problem?

http://embed.plnkr.co/K7n2dKJxWJt04OYgZN5O/preview


Add more diverse license support

More types of license
It would be great if projects could add more licenses. Examples:
GPL, LGPL, MIT, Apache
Some projects might have a custom license (midibox for exampe). Muzhack should add options to add custom licenses or have an option that says: "For license: see description"
multiple licenses
Some projects use different licenses for different parts of the project (e.g. software/hardware). It would be cool to be able to add multiple licenses.

Thanks for the suggestion Johannes.


clasp push changes the execution order of script files in Apps Script projects

Expected Behavior
clasp push should retain the order of the script files in the Apps Script Editor not just visually but also in terms of order of execution.
Actual Behavior
clasp push re-orders the files so that they are executed in alphabetical order even though visually they retain the expected order in the sidebar of the editor. This bug is hazardous to projects that rely on script files to execute as listed in the Apps Script editor.
Steps to Reproduce the Problem

Create a stand-alone script project

In that project create 6 script files in sequence and name them Z, Y, X, C, B  and A; each with a Logger.log() that logs their respective names.

Create a 7th script file and add the following function:

Run that function from the menu bar Run>Run function>runTest  and then view the logs View>Logs and you will get the following:

Open your terminal and use clasp clone [PROJECT-FILE-ID] and then clasp push from the command line (project file id omitted from screenshot):

Then run the test function again and then view the logs and you'll see the following:

The execution order of the scripts (though visually correct in the editor's sidebar) is changed to run in alphabetical order!
This bug wreaked havoc on one of my projects before I found it. I would love for clasp to be a part of my development workflow but that won't happen until this issue is resolved.
Specifications

Node version - v6.11.0
Clasp Version - 3.10.10
OS - Windows

Thanks for the detailed report.
I will address this issue in the next major release.
As a workaround, encapsulate all statements in functions rather than global scope as a best practice to avoid execution order dependencies.

@DimuDesigns the previous command line tool also had this behavior (gapps)
And it's pretty normal to not rely on something as random as creation order of the files.
As grant underlined, you should not have any global executing code. It's advised to know exactly where are your entry points.
Using global scope may cause unexpected variables overwriting and such.
@grant it would be great to also keep the alphabetical ordering capability

Best practice aside, sometimes there is a need to store configuration options as global constants/enums. I could wrap said properties into getter/accessor functions or create some kind of singleton composed of such functions but that feels superfluous since I know I can rely on execution order. Clasp unfortunately breaks that reliability.
@JeanRemiDelteil The script files are only ordered alphabetically (in truth lexicographical-ly) in terms of execution. However, that ordering is not reflected visually in the Apps Script editor so I don't see the value in retaining this weird ordering glitch. But there is an option to sort files alphabetically under the view menu in the Apps Script editor.

For visual ordering, you may want to try my AppsScriptColor extension that will display the files always alphabetically, and with folders if you name your files with '/' inside (works well with CLASP).

Technically, I believe execution order is based on file creation date within the IDE.
In the API, the order of the files in updateContent. It causes lots of bugs for users, so we generally recommend putting all code in functions.

Is execution order well defined behaviour or were people using it just because it works?
What should happen if we modify the order files are sorted? View -> Sort Alphabetically (And possibly new ones in the future)?
Should it also modify execution order? What if I need a certain execution order, but enjoy viewing files in a totally different order?
What about asynchronous "order"? Is there a reason scripts can't be run in parallel? 😃
If this order issue is really a thing that can't be easily fixed by creating functions, I would rather have the option to edit the order explicitly in manifest file than relying on naming conventions.

@rafasc I can't speak for other developers, but in my experience, sorting the files alphabetically within a project via View -> Sort does not impact execution order. From what I can tell execution order is equivalent to the order in which the files are created which appears to be independent of view order.
As for running scripts in parallel (asynchronously), there are folks in the apps script community who have managed to achieve this to a degree (linked here). But I suspect that, in terms of granularity, parallelism is only achievable at the session level, ie. multiple instances of a project are spun up (say via google.script.run from the client-side) and run/execute concurrently. Whereas individual scripts within a project probably cannot be made to do so (but I'm guessing here).

The question of running script in parallel in totally different from the matter of file execution order.
In AppsScript, strictly speaking, real parallelism or asynchronous behavior like you would expect with Promise, timeOut or thread does not exist at the moment.
All files are read and executed in their creation order, which is why using global is not recommend.
This creation order was historically the order of file creation in the web editor.
And only for standalone script (not container bound script, eg: script linked to a spreadsheet and such), you could get and set the content as a Drive file.
In such a case, execution order was the order in which files were in the drive file (with GAPPS, that was alphabetical order).
The new GAS API is totally different in it's disclosed manner of action, in the way that it is a API working on AppsScript projects, and not on Drive files. As such it is not bound the standalone restriction, it can work on standalone and container bound both (which is a GREAT improvement, waited for many years).
Relying in wacky hacks due to Script execution order should not be the way in AppsScript.
There are way better ways to achieve initialization with better control.
For example, you should know were all your entry points are located, and at the beginning of all those functions, just call the function initializing everything (by returning an object).
Just to mention, in AppsScript, the 'this' object is the global object.
I have an example of this in this simple project: monitor-firebase-status (and I would be happy to discuss over this method of initialization).

@grant I just realized that this issue also highlights another oddity. If you look at the timestamps in the logs (screenshots 4 and 6) the timezone changed following the call to clasp push. It was EDT before and now its PDT after. I checked the Project Properties -> Info and the timezone is set to Eastern Time as expected but the log timezones are now PDT. Weird...

How is the status of this bug?
I just ran into this problem with a third party library and it took me quite some time to figure out what went wrong.

That would be great. Otherwise I probably have to  rewrite the library.

Btw, this is the bug for reordering script in the script editor: https://b.corp.google.com/issues/36756144

I've spent a few hours trying to solve this issue. This is what I've done:

Look at how to set the creation/modified date of a unix file.

A: It seems impossible, you can only touch a file to set the modification date to now.

Look how gapps may have done this.

A: It looks like gapps didn't modify the creation date. Not sure how this was solved in that tool.

Look how import-export may have done this:

It looks like there's simply an array of files that you can put in or out. I guess if you manually stitched the files correctly, it would work, but that's a bit manual.

The solution seems to be this:

clasp pull: Does a unix touch in the order of the file.

Delays each fs.writeFile with a setTimeout(() => {}, 1);

clasp push: Reads all files and does a fs.statSync to organize the array of files before push.

@grant : I'm sure there are reason to fix this 'bug' however keeping the alphabetical ordering as an option would make sense.
(Though i'm not to stuck up on this, as for all I've said above the file order does not really matter, and my extension and the original UI allows to show the files in order !)

I've alphabetical ordering (_.gs, a.gs, b/z.gs, x.gs) would fix everyone's issues then I'd gladly implement that and update clasp this week. I hate that this large issue hasn't been solved since March and affects some claspers.
Is there anyone opposed here to that?
@DimuDesigns @rafasc @Nebucatnetzer

I'm not sure I understand it.
Isn't alphabetical ordering the way it currently works and that is causing problems?
At least my workaround for the problem was to name the files Z01_xxx, Z02_xxx, etc.
So that they keep their order.

Yes i'm pretty sure it's how the current implementation works.
It's just something you need to take in account when coding.
Alphabetical order is so easy to understand instead of invisible shaddy creation dates imho !
It is also reproducible on all system and fit for a streamlined work process (as the result will always be the same).

I personally can live with that, however then it is more a problem for the Google Apps Script Browser UI.
Because there the scripts are shown in the order they get created and not in alphabetical order.
I don't know if @grant can do something about that.

Look how import-export may have done this:

It looks like there's simply an array of files that you can put in or out. I guess if you manually stitched >the files correctly, it would work, but that's a bit manual.

I've found that the arrays retrieved using import-export actually retain the execution order of the script files in an app script project (as seen in the IDE).
I don't like the idea of a tool automatically changing underlying structures that can adversely affect my code. So if at all possible please retain the execution order.

@Nebucatnetzer It's possible to show the scripts in alphabetical order in the Google Apps Script Browser UI.
You have to check a menu:

Ah okay, but that doesn't change the execution order?

No. It's display only.
I myself don't write any code in the browser UI any more, even the files are created on my desktop, then pushed to the script when testing, so using the GUI is anecdotal..

Ah okay, I agree that alphabetical execution order makes the most sense.
At least it's something which is easy to understand/lookup.
However that still breaks existing projects which rely on the date execution order.

It seems like preserving existing execution order (which is based on the create date for each file you've created) is the only solution for preserving old script execution order.
I'll eventually add this feature, but it's going to take some time and testing since filesystems don't have a way to manually override file creation time (ctime). Here would be the implementation plan.
WRITE to FS (after clasp pull):

projects.getContent
With the response's files array:

setTimeout for 1 ms
Write the file

READ from FS (clasp push):

For every non-ignored file:

fs.statSync#ctimeMs
Sort the file in order of oldest to newest ctimeMs
Push

This would preserve file creation order in and out of the script.google.com UI.

Ok, Just a question on this.
We are only using READ from FS. never Write, or juste to init a project from existing really old script.
With your plan, you will order files against a creation time that came from just creating files when developing the project on the FS.
Those files are stored in a version control system, that can delete and create them at will, hence changing randomly the creation date.
As this makes no sense, but needs to be solved, I propose that you store the existing files order when pulling them, in the .clasp.json settings file.
Then use this order first when pushing, and add all non-mentioned files in alphabetical order (and do not update the .clasp.json with them unless pull is used again).
This method should solve this issue and also provide an easy / simple / consistent way to keep existing file ordering or manually / programmaticaly temper with file ordering !

I agree that deleting/creating/moving the files will alter the order. Even copying the files from one folder to another would break the order. I'm open to any long-term solution, but I still don't see one.
My initial reply would be: Storing the push order of files doesn't work because you may rename/move the file.
However, a push order may be the best and most accurate way to push files in order.
Here's an idea: I could create a list of files that clasp should push first, but that doesn't seem scalable.
export interface ProjectSettings {
  scriptId: string;
  rootDir: string;
  projectId: string;
  filePushOrder: string[];
}

In this example, you could define filenames in your .clasp.json. It's up to you to ensure that list is up-to-date.
Would this work for everyone?

For me this would be fine.

@grant : and if there are files not mentioned in this list, I expect them to be pushed alphabetically ordered.
That would be ok!
About scalable:
The whole 'creation time' ordering is not scalable from the start. There are no serious project/solutions out there that use this kind of behaviour.
So it's not a real problem: the issue here is to prevent old project from breaking when pulling and pushing again.
About file being referenced by name: again, that is not a real issue ! If a user changes a filename (which is the only ID of the file), then he will probably make other changes as well and he know what he is doing.

@DimuDesigns @JeanRemiDelteil @Nebucatnetzer @rafasc
Can you install<EMAIL_ADDRESS>and use the new filePushOrder setting?
It should work like this:
clasp status
Detected filePushOrder setting. Pushing these files first:
└─ main.js

Not ignored files:
└─ main.js
└─ 1.js
└─ 2.js
└─ appsscript.json
└─ fstest.js

Ignored files:
└─ .clasp.json

cat .clasp.json
{
  "scriptId":"1pbtnbRjwdPOAUdmTViOZnWSrqoYPa3Y3xWFzAxOZh1HvesRRKiLu7S3j",
  "filePushOrder":["main.js"]
}

Assuming the API is not buggy, it sends the files in an array as listed in the "Not ignored files" list.

Thanks I'll check it out next week.

@grant the documentation mention

All other files are pushed after this list of files.

Maybe you can detail in which order ? (alphabetical I suppose ?)

All other files are pushed in alphabetical order after this list of files.

I find this important as it's the default behavior.

@grant I just tested, the "filePushOrder" PR reopen issue https://github.com/google/clasp/issues/48
Meaning my file/ folder architecture is named with a "" instead of a "/"
This breaks all the HTML imports based on file name.

@grant I just tested, the "filePushOrder" PR reopen issue #48
Meaning my folder/file architecture is named with a "" instead of a "/"
This breaks all the HTML imports based on file name.
The final file names should be consistent even when pushed from different OS (window / linux / mac)

@grant, I'm having the same problem here regarding HTML file import.
Any idea how to solve the problem?

Circuit conversation "[google/clasp] clasp push changes the
execution order of script files in Apps Script projects (#72)" created
for this email thread.
View at: https://adfs01.circuitsandbox.net/#/conversation/dbdc09ad-1be5-45bf-9bbe-c79a38af7125


fix: Fix test errors caused by compile output in test resources

Fix #573
The cause of #573 was that the compile test introduced in #566 produced .class files in the test resources directory. These class files would then cause the surefire plugin to crash for some reason. I don't know why it crashes because of that, but the class files shouldn't be there either way.
This also explains why only the deploy job failed: it runs the tests twice, once when running package and once when running deploy (we should probably remove the package target). All of the other jobs run the tests only once, and thus don't encounter the problem.
The reason this happened was that there are two overloads of the ProcessorTestHelper.getTestCaseStream() method. One of them returns the test cases for the resources in a directory (this was the one that was used), and the other one copies all test resources to a temporary directory and then returns test cases based on that (this is the one that should have been used).
This PR changes the tests to use the method that copies the resources to a temporary directory first, and also renames that method and updates its documentation to avoid this confusion in the future.

@fermadeiral @khaes-kth Urgent to merge to fix deployment failures, first to the party please review and merge :)
If you've run any tests locally since yesterday, you probably have class files lying around your test resources. You'll want to delete those to avoid test strangeness.
You can clean the resources directory like so:
git clean -xf src/test/resources

Note that this removes any untracked file, so make sure to commit everything you want to commit before doing it.

LGTM.


style(src): update code block styling

Issue #129
Add custom css styling for code blocks
Changes

Added css targeting html <code> elements, and styling them

Before

After

Sure, here's what it looks like now:


Bug report

What happened?
Query results for tasks do not display task status characters, like - [!] or - [/]. They all display as - [ ] tasks.
DQL
No response
JS
No response
Dataview Version
0.5.17
Obsidian Version
0.14.7
OS
MacOS

Custom checkboxes are now being indexed in the beta.

This was fixed very recently with help from @ebullient; it should work properly in 0.5.18, which I've just released.

Great!


Fix var app_name

Remove unnecessary variable assignment
Closes jprorama/CRI_XCBC#388

It has been tested, and it solved the issue as expected. It could be merged.
You can find the test build at here
    openstack.image: TASK [ood_uab_ui : Copy the configure file for apps] ***************************
    openstack.image: changed: [default] => (item=dashboard)
    openstack.image: changed: [default] => (item=myjobs)
    openstack.image: changed: [default] => (item=shell)
    ...
    openstack.image: TASK [ood_uab_ui : Restart apps to pickup new settings] ************************
    openstack.image: changed: [default] => (item=dashboard)
    openstack.image: changed: [default] => (item=myjobs)


raftstore/error: add StoreNotMatch details (#3885)

What have you changed? (mandatory)
We need to report store id in v2.1.x too.
What are the type of the changes? (mandatory)

Improvement

Does this PR affect documentation (docs) update? (mandatory)
No.
Does this PR affect tidb-ansible update? (mandatory)
No.
Refer to a related PR or issue link (optional)
#3885
Benchmark result if necessary (optional)
Add a few positive/negative examples (optional)

/run-all-tests tidb=release-2.1 pd=release-2.1 tidb-test=release-2.1

test failed, seems caused by the wrong version of kvproto?

Seems kvproto is updated before #4284 is ready.

Cherry-picked on #4284 .

PTAL, /release


DRILL-6850: JDBC integration tests failures

In the first commit:

Fixed RDBMS integration tests (expected decimal output and testCrossSourceMultiFragmentJoin)
Updated libraries versions
Resolved NPE for empty result

In the second commit:

Made changes to force setting DRILL_LOGICAL Convention for DrillRelFactories and DrillFilterRel
Fixed workspace case insensitivity for JDBC storage plugin

In the third commit:

Allowed configuring table names case sensitivity for JDBC storage plugin

For problem description please see DRILL-6850.

+1


Add zoom function

Discussed in https://github.com/deoostfrees/Parvus/discussions/41

Originally posted by vikasneugi March 10, 2023
At the moment, it seems to me impossible to expand with your fingers an expanded parvus image on mobile.
Is there any way for touch enabled zoom for the expanded image for mobile?

This is definitely the biggest missing functionality in this lightbox and I hope to see it one day! 🤞

I know a lot of people have been waiting for this for a long time 🙈. I'll try to start development soon.

No pressure, I know this is not paid work! I would take a swing at a PR to try and help, but I have no idea where to start for adding that.


ipsec Phase2 config, multiple left|rightsubnet

Hi Team,
Per https://wiki.strongswan.org/projects/strongswan/wiki/ConnSection ipsec.conf left|rightsubnet supports comma separated list of subnets.
On opnsense UI "VPN: IPsec: Tunnel Settings" (Add new Phase2) Local Network Type can only be "Address/Network"
Describe the solution you'd like
Can there be a "Custom"/"Manual" option there so I can write comma separated list right there?
Describe alternatives you've considered
Don't see any alternatives for this other than creating one Phase2 entry per subnet which is not ideal for my use case.
I saw "Manual SPD entries" on the bottom that does not create the same as multiple subnets as the client is roadwarrior.
Additional context
NA

Currently not possible and hard to implement. You could add your custom conn via include file.

To implement multiple comma separated left subnet, you can add multiple phase 2 (same phase 2 proposal but different local network)
Be carefull that Microsoft Windows do not push automatically routes. You have to play with add-vpnconnectionroutes...

I think that results two different conn sections as subconn like conn con6-003
Include file works well though, thanks for that @mimugmail

I think that results two different conn sections as subconn like conn con6-003
Include file works well though, thanks for that @mimugmail

I have done that on my ipsec and I have only 1 "conn con1" with:
leftsubnet = <IP_ADDRESS>/8,<IP_ADDRESS>/26,<IP_ADDRESS>/29


Modbus equipment that is not within the standards

Hello, sorry to ask the question here, but I have a problem and I would ask for your help to resolve the situation.
I have modbus equipment that is not within the standards when I make a request with uint32 it is responding with count1, is it possible to change the CRC or another way so that I can access the data.
THANKS

Hello,
Thank you for reaching out with your issue regarding the non-standard response from your Modbus equipment.
To better assist you, I would need a bit more information about your setup:

Device Details: Can you please provide the make and model of the Modbus equipment you are using? This will help in understanding any specific quirks or proprietary behaviours.

Current Configuration: What is your current configuration in Node-RED for communicating with this equipment? Please include any relevant flow details or settings.

Error Logs/Outputs: Are there any specific error messages or unusual outputs you receive when attempting to communicate with the equipment? If possible, please share the logs or screenshots.

Network Environment: Could you describe your network setup? This includes any routers, converters, or other devices between your Node-RED instance and the Modbus equipment.

Understanding these aspects will help in determining whether the issue is due to CRC or if there's an alternative approach to access the data.
Looking forward to your response to assist you further.
Best regards,
Bitpool

Hello again, I needed an option in the modbus validator that I can manipulate and get something like this.
#from this
DataType.UINT32: ENTRY("I", 2, PARM_IS_LEGAL(ILLEGAL, ILLEGAL, OPTIONAL, OPTIONAL, OPTIONAL)

#for this
DataType.UINT32: ENTRY("I", 1, PARM_IS_LEGAL(ILLEGAL, ILLEGAL, OPTIONAL, OPTIONAL, OPTIONAL)

I hope that makes sense, thanks

Hello again, basically I need  data_type: custom so that I can manipulate the information.


SSDT modifications

Just found your repo, very nice work on merging all the ACPI patches like PMC/PLUG/HPET/TB3/etc into one big SSDT.
I did notice the SMBUS patch was missing and instead of AWAK patches RTC ones were used. I've added the SMBUS patch and swapped RTC for AWAK method as described here and here.
Going by the DSDT dump we only need the AWAK method on our NUC. But I could be wrong, though I been using AWAK method myself without any issues. SMBUS is not strictly needed but good to fix regardless.
I'm not a programmer or expert, just an enthusiast so please check if my changes don't break anything. I tested it for a few hours on two of my NUCs and didn't experience any issues or problems while running some basic checks and stress tests.
Feel free to ignore my PR. I just really like the idea of merging the patches and wanted to contribute to it instead of simply using them for my repo and not share my modifications.
I noticed the internal USB ports (HS05/HS06) in USBPorts.kext are missing but those are only needed if you use the internal headers.
Another USB thing to keep in mind is that when using an Apple Airport or other wireless/bluetooth card in the m.2 slot the internal USB hub (HS10) used by the Intel wireless/bluetooth combo must be removed from USBPorts.kext and wireless/bluetooth must be disabled in the BIOS. If those steps aren't taken sleep/wake will be problematic.
Hope this helps and thank you for sharing your merged patches!

Thank you , i will test as soon as possible your pr


[Feature] Dynamically control page visibility

User stories:

Users implementing login via their own APIs need to hide pages that aren't accessible till the login is complete
Users want to conditionally hide pages that are not relevant to certain user ids or user groups

Designs required:

Way to access page properties: Order of pages, mark certain pages as 'Homepage', control visibility of pages
Property window to modify the page properties
Way to reorder/ set home page/ clone/ delete and conditional visibility controlled via JS.

@hetunandu @Nikhil-Nandagopal @Debsourabh could you look at the feature spec? What else do we need here?

Another property that just came up is the slug name of the page in the URL when we have clean URLs.
So properties I can see are

Page Name
URL slugname
Visibility
Page Order

Should we just show the current slug name but disable editing it till we can create clean URLs? For now, we'll show the current URL, and later we'll show the ability to edit it.

Yes, we can even not show it. I just wanted to add an exhaustive list so we can think about the future design

To have page properties clubbed under one place, I think this is the best approach for 2 reasons:

This is consistent with other property windows that we have.
Lean learning curve and everything under one roof.

The property window will appear when they click on the 3 dots and we show the menu. The menu can take care of all the above-mentioned properties. For reorder, the best experience is to drag and drop within the Entity Explorer. I do not see the need to have an option for the reordering page.

The property pane for the pages will behave in the exact same fashion as it does today for any widget.

A couple of pointers:

If you have set something as a homepage we cannot drag and drop that. It will always appear on the top. If there are 4 pages and the first one is the homepage, the user can only reorder 3 pages.
In this flow we do not need to open any additional menu to accommodate the above-mentioned properties.
As compared to the previous page menu UX, this does not look like a long list.
Page rename will work the same way as widget rename.

@Debsourabh What happens to the overflow menus for other entities like Action, Query, Datasource etc. Will they also transform into this UI? I'm asking because ideally, we'd like to be consistent in our approach across the board.

@Debsourabh What happens to the overflow menus for other entities like Action, Query, Datasource etc. Will they also transform into this UI? I'm asking because ideally, we'd like to be consistent in our approach across the board.

Yes. Ideally, we should move to this format as these are properties of respective elements.

@Debsourabh If the approach is this type of property pane, then why not treat the page as a top-level widget which shows the property pane? i.e if you click the page, it selects the entire canvas and shows the property pane. That seems more consistent with the mental model than this.

Does this approach work? In this case, we have independent 3 dots for the actions and then the property for the page. This way we do not break the mental modal and at the same time get some more real estate to work with in the future.

Some comments:

How will you control properties of all the pages together?
How will reordering of pages happen?
Please give a way to access all page controls from the entity explorer itself. Either in the overflow menu.

I like the idea of a consistent flow, but how the property pane opens today for widgets won't work well. It'll need to be modified to open for a page.
This is how you open a property pane for a widget today:

Click on the entity to select the widget
Click on the tiny button at the top to open the property pane

Both of these applied to pages:

Clicking a page to select and open its properties mean that property pane of a page cannot be opened without navigating to the page (a user could be trying to change properties of all pages from a single page)
I have to now click the chevron/unfurl icon on the left to open the page's widgets because the main action opens the property pane
If I'm already in the page, then I have scroll to the top to open the property pane

Some solutions:

Have an additional ⚙ icon in the page names in entity explorer that can be clicked to open the properties of a page
Every page can have properties, but there should be a global set of properties for the entire set of pages. This could be similar to global table properties-->column properties

Some comments:

How will you control properties of all the pages together?
How will reordering of pages happen?
Please give a way to access all page controls from the entity explorer itself. Either in the overflow menu or an icon beside the entity name.

I like the idea of a consistent flow, but how the property pane opens today for widgets won't work well. It'll need to be modified to open for a page.
This is how you open a property pane for a widget today:

Click on the entity to select the widget
Click on the tiny button at the top to open the property pane

Both of these applied to pages:

Clicking a page to select and open its properties mean that property pane of a page cannot be opened without navigating to the page (a user could be trying to change properties of all pages from a single page)
I have to now click the chevron/unfurl icon on the left to open the page's widgets because the main action opens the property pane
If I'm already in the page, then I have scroll to the top to open the property pane

Some solutions:

Have an additional ⚙ icon in the page names in entity explorer that can be clicked to open the properties of a page
Every page can have properties, but there should be a global set of properties for the entire set of pages. This could be similar to global table properties-->column properties

There are 3 options under the link. Each with its owns pros and cons.
https://www.figma.com/file/NJB6wtUsWfYKIKICXKwWzY/?node-id=44%3A2

Post our conversation around this I have updated the designs here.
https://www.figma.com/file/NJB6wtUsWfYKIKICXKwWzY/?node-id=77%3A1587

Related issue #2244

Related issue #2244

Notes in #2786

Just trying to get attention to this issue. After watching the video on custom authetication where tabs are hidden/shown according to authentication success, I was under the impression we could the same with pages... but not so.
Page visibility does not support binding, AND we cannot set Page visibility from other pages... so I think this is a dead end...
Is there a workaround? How to not show pages until after authentication happens?

@dncpax we're working on this as part of #3317 because we realize that simply hiding the page is not enough for security, we need to restrict access to this page.
To work around this today, you can mark the login page as hidden and set it to home. This will hide all other pages when the user is on the login page

Hi @Nikhil-Nandagopal thanks for the workaround - I will look into it.
I don't think most users will need the full granular access control. But some measure of control would be nice. I agree that hiding is not really that secure, but it's something we can live with if we couple that with hiding controls and binding queries to a store value (authenticated=true/false).
I have been playing around with redirecting to an external page when authentication is not appropriate for the app.

Hi, sorry to push on this old request. I am using external authentication and tabs on each page like the example on Youtube.
But, managing visibility of a page based on JS would be great, to avoid the tab asking to go back to login.

I think this should be separated from the RBAC issue but more about components visibility level.
For example, many components visibility can be controlled by JavaScript, this "menu component" should have it also.

Any update on this?


[WIP] Begin implementation of asynchronous transfers, Issue #63

The purpose of these patches is to allow asynchronous USB transfers. Keep in mind that I am not claiming this should be the final form. I'm not an asyncio expert, and I am open for suggestions on how to improve the implementation. Note that async transfers are only imlemented for the libusb1 backend.
I am striving to achieve an API that looks like the following example:
async def do_usb_stuff():
    dev = usb.core.find(...)

    transfer1 = dev.submit_read(...)
    transfer2 = dev.submit_write(...)

    await transfer2.result()
    await transfer1.result()

Note that this is symmetrical to the sync functions, in that the transfer type does not have to be specified. It is derived from the endpoint.
await transfer.result() is similar to an asyncio.Future, although the implementation is not exactly an awaitable future. This is an implementation detail, and it could be changed if needed.

https://github.com/vpelletier/python-libusb1
Not so sure if the implementation in python-libusb1 is of some reference value here.

This is a WIP to address #63.

Not sure if anyone is working on this or not. I tend to think this is one major missing feature (along with hotplug).

I don't know a lot about how ctypes work but I think the transfer class should be looking like this, according to libusb document. It takes advantage of file descriptors for platforms that can use it. If not, which is Windows case, it falls back to using run_in_executor, which is using threads. libusb_handle_events seems indeed to be a blocking function but sits idle waiting for events, so using threads could make sense here.
class _AsyncTransfer():
    """ Generic API for asynchronous USB transfers"""
    def __init__(self, dev_handle, ep, buf, iso_packet_count, timeout):
        self._transfer = _lib.libusb_alloc_transfer(iso_packet_count)
        self._ctx = None
        self._buf = buf
        self._event_term_event = threading.Event()
        self._fds = []

        if "windows" in platform.platform().lower():
            self._threaded = True
        else:
            self._threaded = False

    def __del__(self):
        if not self._fut.done():
            _lib.libusb_cancel_transfer(self._transfer)

        _lib.libusb_free_transfer(self._transfer)

    def submit(self, ctx = None):
        """ Submit the USB transfer, but don't wait for completion

        TODO: Is it better to create the Future in __init__ and reuse it?
        TODO 2: Exception when libusb_submit_transfer() fails()
        """
        self._fut = asyncio.Future()
        self._ctx = ctx
        self._event_term_event.clear()
        _check(_lib.libusb_submit_transfer(self._transfer))

        return self

    def _add_usb_event_handler(self):
        """ Helper function to process USB events and complete futures
        """

        self._fds = _lib.libusb_get_pollfds(self._ctx)
        loop = asyncio.get_event_loop()
        for fd in self._fds:
            loop.add_reader(fd, self._fd_reader_callback)

    def _usb_event_loop_threaded(self):
        """
            This should be run in separate thread. The way it is used in this class is not for "hotplug" case.
        """
        while not self._event_term_event.is_set():
            _check(_lib.libusb_handle_events(self._ctx))
            # add 0 sec sleep here so the threads can find their optimized path
            time.sleep(0)

    async def result(self):
        """
        Asynchronous result of USB transfer. Should be 'await'ed
        TODO: handle timeout cases
        """
        if self._threaded is True:
            loop = asyncio.get_event_loop()
            await loop.run_in_executor(None, self._usb_event_loop_threaded)

        return await self._fut.result()

    def _fd_reader_callback(self):
        _lib.libusb_handle_events_timeout_completed(self._ctx, POINTER(timeval(0, 0)), None)

    def _callback(self, transfer):
        status = int(transfer.contents.status)
        if status != LIBUSB_TRANSFER_COMPLETED:
            result =  usb.USBError(_str_transfer_error[status],
                                  status, _transfer_errno[status])
        else:
            result = self._buf[:transfer.contents.actual_length]

        # TODO: this next line should be tested if does not violate thread safety.
        self._fut.set_result(result)
        if self._threaded is True:
            self._event_term_event.set()

I would like to test this code but need a test device and look deeper into ctypes.


No running Vagrant instances found

Describe the bug
pyinfra cannot find a running Vagrant instance.
To Reproduce
Steps to reproduce the behavior (include code & usage example):
Vagrantfile:
Vagrant.configure("2") do |config|
  config.vm.box = "generic/ubuntu2004"
  config.vm.hostname = "lol"
end

inventory.py:
my_hosts = ['@vagrant/default', '@vagrant/focal64', 'lol', '@vagrant/ubuntu2004']  # define a group as a list of hosts

deploy.py:
from pyinfra.operations import apt, server

server.shell(
    name='Run an ad-hoc command',  # optional name for the operation
    commands='id',
)

# Define some state - this operation will do nothing on subsequent runs
apt.packages(
    name='Ensure the apt packages are installed',
    packages=['git', 'i3', 'tmux', 'vim'],
    sudo=True,  # use sudo when installing the packages
)

Running:
$ vagrant status --machine-readable
1629155671,default,metadata,provider,vmware_desktop
1629155672,default,provider-name,vmware_desktop
1629155672,default,state,running
1629155672,default,state-human-short,running
1629155672,default,state-human-long,The VM is running. To stop this VM%!(VAGRANT_COMMA) you can run `vagrant halt` to\nshut it down%!(VAGRANT_COMMA) or you can run `vagrant suspend` to simply suspend\nthe virtual machine. In either case%!(VAGRANT_COMMA) to restart it again%!(VAGRANT_COMMA) run\n`vagrant up`.
1629155672,,ui,info,Current machine states:\n\ndefault                   running (vmware_desktop)\n\nThe VM is running. To stop this VM%!(VAGRANT_COMMA) you can run `vagrant halt` to\nshut it down%!(VAGRANT_COMMA) or you can run `vagrant suspend` to simply suspend\nthe virtual machine. In either case%!(VAGRANT_COMMA) to restart it again%!(VAGRANT_COMMA) run\n`vagrant up`.

$ pyinfra inventory.py deploy.py
--> Loading config...
--> Loading inventory...
    Getting Vagrant config...
    Getting Vagrant config...
--> pyinfra error: No running Vagrant instances found!

Expected behavior
Expected pyinfra to run id on the VM and install packages and dependencies via apt: git, i3, tmux, vim.
Meta

Include output of pyinfra --support.

$ pyinfra --support
--> Support information:

    If you are having issues with pyinfra or wish to make feature requests, please
    check out the GitHub issues at https://github.com/Fizzadar/pyinfra/issues .
    When adding an issue, be sure to include the following:

    System: Darwin
      Platform: macOS-10.15.7-x86_64-i386-64bit
      Release: 19.6.0
      Machine: x86_64
    pyinfra: v1.4.12
    Executable: /usr/local/bin/pyinfra
    Python: 3.8.2 (CPython, Clang 12.0.0 (clang-1<IP_ADDRESS>))

How was pyinfra installed (source/pip)?

$ sudo pip3 install pyinfra
$ pyinfra --version
pyinfra: v1.4.12

Include pyinfra-debug.log (if one was created)
Consider including output with -vv and --debug.

$ pyinfra -vvv --debug --debug-facts --debug-operations inventory.py deploy.py
    [pyinfra_cli.main] Checking potential directory:
    [pyinfra_cli.main] Deploy directory remains as cwd
--> Loading config...
--> Loading inventory...
    [pyinfra_cli.inventory] Creating fake inventory...
    Getting Vagrant config...
localhost: >>> vagrant status --machine-readable
localhost:<PHONE_NUMBER>,default,metadata,provider,vmware_desktop
localhost:<PHONE_NUMBER>,default,provider-name,vmware_desktop
localhost:<PHONE_NUMBER>,default,state,running
localhost:<PHONE_NUMBER>,default,state-human-short,running
localhost:<PHONE_NUMBER>,default,state-human-long,The VM is running. To stop this VM%!(VAGRANT_COMMA) you can run `vagrant halt` to\nshut it down%!(VAGRANT_COMMA) or you can run `vagrant suspend` to simply suspend\nthe virtual machine. In either case%!(VAGRANT_COMMA) to restart it again%!(VAGRANT_COMMA) run\n`vagrant up`.
localhost:<PHONE_NUMBER>,,ui,info,Current machine states:\n\ndefault                   running (vmware_desktop)\n\nThe VM is running. To stop this VM%!(VAGRANT_COMMA) you can run `vagrant halt` to\nshut it down%!(VAGRANT_COMMA) or you can run `vagrant suspend` to simply suspend\nthe virtual machine. In either case%!(VAGRANT_COMMA) to restart it again%!(VAGRANT_COMMA) run\n`vagrant up`.
[pyinfra.api.connectors.util] --> Waiting for exit status...
[pyinfra.api.connectors.util] --> Command exit status: 0
    [pyinfra.api.connectors.vagrant] Loading SSH config for default
localhost: >>> vagrant ssh-config default
localhost: Host default
localhost:   HostName <IP_ADDRESS>
localhost:   User vagrant
localhost:   Port 2231
localhost:   UserKnownHostsFile /dev/null
localhost:   StrictHostKeyChecking no
localhost:   PasswordAuthentication no
localhost:   IdentityFile /private/tmp/lol/.vagrant/machines/default/vmware_desktop/private_key
localhost:   IdentitiesOnly yes
localhost:   LogLevel FATAL
localhost:
[pyinfra.api.connectors.util] --> Waiting for exit status...
[pyinfra.api.connectors.util] --> Command exit status: 0
    [pyinfra.api.connectors.vagrant] Got Vagrant SSH info:
['Host default', 'HostName <IP_ADDRESS>', 'User vagrant', 'Port 2231', 'UserKnownHostsFile /dev/null', 'StrictHostKeyChecking no', 'PasswordAuthentication no', 'IdentityFile /private/tmp/lol/.vagrant/machines/default/vmware_desktop/private_key', 'IdentitiesOnly yes', 'LogLevel FATAL', '']
    Getting Vagrant config...
localhost: >>> vagrant status --machine-readable
localhost:<PHONE_NUMBER>,default,metadata,provider,vmware_desktop
localhost:<PHONE_NUMBER>,default,provider-name,vmware_desktop
localhost:<PHONE_NUMBER>,default,state,running
localhost:<PHONE_NUMBER>,default,state-human-short,running
localhost:<PHONE_NUMBER>,default,state-human-long,The VM is running. To stop this VM%!(VAGRANT_COMMA) you can run `vagrant halt` to\nshut it down%!(VAGRANT_COMMA) or you can run `vagrant suspend` to simply suspend\nthe virtual machine. In either case%!(VAGRANT_COMMA) to restart it again%!(VAGRANT_COMMA) run\n`vagrant up`.
localhost:<PHONE_NUMBER>,,ui,info,Current machine states:\n\ndefault                   running (vmware_desktop)\n\nThe VM is running. To stop this VM%!(VAGRANT_COMMA) you can run `vagrant halt` to\nshut it down%!(VAGRANT_COMMA) or you can run `vagrant suspend` to simply suspend\nthe virtual machine. In either case%!(VAGRANT_COMMA) to restart it again%!(VAGRANT_COMMA) run\n`vagrant up`.
[pyinfra.api.connectors.util] --> Waiting for exit status...
[pyinfra.api.connectors.util] --> Command exit status: 0
    [pyinfra.api.connectors.vagrant] Got Vagrant SSH info:
[]
--> pyinfra error: No running Vagrant instances found!

Verifying:
$ vagrant ssh
vagrant@lol:~$ dpkg -l | grep -c 'i3-wm'
0

Resolved. My approach was incorrect with inventory.py.
my_hosts = ['@vagrant/default']  # define a group as a list of hosts

Running:
$ pyinfra -vv --debug inventory.py deploy.py
    [pyinfra_cli.main] Checking potential directory:
    [pyinfra_cli.main] Deploy directory remains as cwd
--> Loading config...
--> Loading inventory...
    [pyinfra_cli.inventory] Creating fake inventory...
    Getting Vagrant config...
localhost: >>> vagrant status --machine-readable
[pyinfra.api.connectors.util] --> Waiting for exit status...
[pyinfra.api.connectors.util] --> Command exit status: 0
    [pyinfra.api.connectors.vagrant] Loading SSH config for default
localhost: >>> vagrant ssh-config default
[pyinfra.api.connectors.util] --> Waiting for exit status...
[pyinfra.api.connectors.util] --> Command exit status: 0
    [pyinfra.api.connectors.vagrant] Got Vagrant SSH info:
['Host default', 'HostName <IP_ADDRESS>', 'User vagrant', 'Port 2231', 'UserKnownHostsFile /dev/null', 'StrictHostKeyChecking no', 'PasswordAuthentication no', 'IdentityFile /private/tmp/lol/.vagrant/machines/default/vmware_desktop/private_key', 'IdentitiesOnly yes', 'LogLevel FATAL', '']
    [pyinfra.api.connectors.vagrant] Got Vagrant SSH info:
['Host default', 'HostName <IP_ADDRESS>', 'User vagrant', 'Port 2231', 'UserKnownHostsFile /dev/null', 'StrictHostKeyChecking no', 'PasswordAuthentication no', 'IdentityFile /private/tmp/lol/.vagrant/machines/default/vmware_desktop/private_key', 'IdentitiesOnly yes', 'LogLevel FATAL', '']

--> Connecting to hosts...
    [pyinfra.api.connectors.ssh] Connecting to: @vagrant/default ({'allow_agent': False, 'look_for_keys': False, 'hostname': '<IP_ADDRESS>', 'username': 'vagrant', 'port': 2231, 'timeout': 10, 'pkey': <paramiko.rsakey.RSAKey object at 0x10742c1c0>})
    [@vagrant/default] Connected
    [pyinfra.api.state] Activating host: @vagrant/default

--> Preparing operations...
    Loading: deploy.py
    [pyinfra.api.operation] Adding operation, {'Run an ad-hoc command'}, opOrder=(3,), opHash=08743582456b52abe1182f5a5a3e12b457ba28b8
    [pyinfra.api.operation] Adding operation, {'Ensure the apt packages are installed'}, opOrder=(9,), opHash=c11b7766912fe844d36569f005f08e2e2799e6c3
    [pyinfra.api.facts] Getting fact: deb_packages () (ensure_hosts: (Host(@vagrant/default),))
    [pyinfra.api.connectors.ssh] Running command on @vagrant/default: (pty=False) sudo -H -n sh -c '! command -v dpkg >/dev/null || dpkg -l'
[@vagrant/default] >>> sudo -H -n sh -c '! command -v dpkg >/dev/null || dpkg -l'
    [pyinfra.api.connectors.ssh] Waiting for exit status...
    [pyinfra.api.connectors.ssh] Command exit status: 0
    Loaded fact deb_packages ()
    [@vagrant/default] noop: package git is installed (1:2.25.1-1ubuntu3.1)
    [@vagrant/default] noop: package tmux is installed (3.0a-2ubuntu0.3)
    [@vagrant/default] noop: package vim is installed (2:8.1.2269-1ubuntu5)
    [@vagrant/default] Ready: deploy.py

--> Proposed changes:
    Groups: inventory / @vagrant / my_hosts
    [@vagrant/default]   Operations: 2   Commands: 2

--> Beginning operation run...
--> Starting operation: Run an ad-hoc command
    [pyinfra.api.operations] Starting operation Run an ad-hoc command on @vagrant/default
    [pyinfra.api.connectors.ssh] Running command on @vagrant/default: (pty=None) sh -c id
[@vagrant/default] >>> sh -c id
    [pyinfra.api.connectors.ssh] Waiting for exit status...
    [pyinfra.api.connectors.ssh] Command exit status: 0
    [@vagrant/default] Success

--> Starting operation: Ensure the apt packages are installed
    [pyinfra.api.operations] Starting operation Ensure the apt packages are installed on @vagrant/default
    [pyinfra.api.connectors.ssh] Running command on @vagrant/default: (pty=None) sudo -H -n sh -c 'DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install i3'
[@vagrant/default] >>> sudo -H -n sh -c 'DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install i3'
    [pyinfra.api.connectors.ssh] Waiting for exit status...
    [pyinfra.api.connectors.ssh] Command exit status: 0
    [@vagrant/default] Success

--> Results:
    Groups: inventory / @vagrant / my_hosts
    [@vagrant/default]   Successful: 2   Errors: 0   Commands: 2/2

@int0x80 thank you for raising this - the error in the first instance was definitely not helpful. I've just pushed/released an improvement for that in https://github.com/Fizzadar/pyinfra/commit/aed9f111dc80cd0244f285c45e69f6a677c32d37 / v1.4.13.


Cannot open the file

You have previously mentioned that this engine supports from Game Maker Studio 2022.8 or later. When I try to open the file, it throws an error stating that it cannot open this file.
It shows something like this:

My GameMaker Version: 2<IP_ADDRESS> (LTS)

There is some small mistake here,
My GameMaker Version: 2<IP_ADDRESS> (LTS)

I don't use the LTS version of GameMaker, but there's a new version of LTS coming in April from what I seen on the GameMaker Discord
Try forwarding this question in the Discord to see if they can give you a solution.
I can't do anything about this sadly


Elusive Icons el- prefix conflicts with element-plus component el- prefix

In element-plus, components have the el- prefix (eg <el-button>Hi</el-button>
However, Elusive Icons also has an el- prefix.
Example:
<el-upload> = Element Plus component -> https://element-plus.org/#/en-US/component/upload
<el-upload> = Elusive icons icon -> https://iconify.design/icon-sets/el/upload.html
Elusive Icons always takes precedence in this case.
eg. <el-button> looks for the "button" icon in Elusive Icons. The intention with writing  is rendering an Element Plus button but with vite-plugin-icons it's not possible, because the "el-" prefix is interpreted as an Elusive Icons prefix. The result is an error, because there's no el-button icon. el-upload is another case to consider, since el-upload is both a component and an icon.
Repro in Vitesse - install with npm install rather than pnpm (Link to branch and file with repro)

https://github.com/3nuc/tworzenie-aplikacji-sieciowych/blob/091e9c32c9ce4c77b5ba9423f37c03a808c09550/front/vite.config.ts#L55-L56
You can either add a prefix for icons (which is the default, but I prefer non-prefix in Vitesse). Or only enable certain icon collections

@antfu I just saw this in my config and wanted to close. Sorry for the trouble
For future visitors: https://github.com/3nuc/tworzenie-aplikacji-sieciowych/commit/8af7867055d227a72977b78e97e2936c46f4fb52


Add today & date-picker widgets to BRP's Subject Information date fields

Request has been made to implement the same new date functionality for the Subject Information form as https://github.com/chop-dbhi/ehb-datasources/issues/14 did for the RedCap forms.

There's an issue introduced by this commit that makes the subject's organization unable to be selected and saved


feat: use secure-push-oci for archiving artifacts

Description
TBD
Issue ticket number and link
KFLUXDP-6
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
in CI 🤷
Checklist:

[X] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added meaningful description with JIRA/GitHub issue key(if applicable), for example HASSuiteDescribe("STONE-123456789 devfile source")
[ ] I have updated labels (if needed)

/retest

/retest

/retest

/retest

/retest

/retest

/retest

/retest

/retest

/retest

/retest


Html content

imges compressed

images are compressed well and the content looks good.
Just need to be careful of styling for header_logo has changed but ready to merge


Add swift/kotlin tests for External Signature feature

Exterrnal signature support has been added with https://github.com/trustwallet/wallet-core/pull/1978
C++, C are including, as well as Go sample, but Swift and Kotlin tests are missing.
Add at least on Swift and one Kotlin tests, corresponding tests tests from TWTransactionCompilerTests.cpp

Note: swift test added, but not kotlin; I consider effort outweighs the benefit.


[FLINK-2115] [Table API] support no aggregation after groupBy.

JavaBatchTranslator does not support no aggregation select after groupBy previously, add the logic in this PR.

What it does now is to only pick one element in the group that has the compound key of the groupBy expression. The reason why I did not want to support this initially was that the element that results from this has arbitrary values in the fields that are not key fields since only on arbitrary element of the group of elements is picked.
Should we maybe limit this to only allow selecting fields that are also key fields?

@aljoscha , it's a very interesting topic, should we add a limitation that only allow key fields to be no aggregated function field in select clause?
Oracle has this limitation while Mysql does not. Most of the time, select non-aggregation field after groupby has no real meaning, while sometimes, if user is aware that groupby some fielde would lead to  other fields get grouped as well, this feature would help to improve the performance and user convenience, more described here: http://dev.mysql.com/doc/refman/5.0/en/group-by-handling.html . Currently we keep consistent with Mysql on this feature, allow no aggregation field after groupBy, with no guarantee of its return value.
Actually, i prefer to the Mysql way, more flexible to user, what do you think?

OK, I see your point. We can go with the MySQL way then. Thanks for explaining it. :smile:
Could you please update the documentation with a small paragraph that explains the behavior?

Ok, i think it could be added in the Select operator description in Table API page, it would depends on  FLINK-2955. Seems it takes quite long time delay to sync merged commit to github, waiting for FLINK-2955 get synced.

@Li Chengxiang, you can always pull changes directly from the ASF git
repository: https://git-wip-us.apache.org/repos/asf/flink.git. Then you
don't have to wait for syncing with the github mirror.
On Thu, Nov 19, 2015 at 10:51 AM, Li Chengxiang<EMAIL_ADDRESS>wrote:

Ok, i think it could be added in the Select operator description in Table
API page, it would depends on FLINK-2955. Seems it takes quite long time
delay to sync merged commit to github, waiting for FLINK-2955 get synced.
—
Reply to this email directly or view it on GitHub
https://github.com/apache/flink/pull/1377#issuecomment-158007073.

Hi, @aljoscha , i guess you may forget this PR :smile: , could you help to move this forward? it should be ready yet.

Hi, you are are absolutely right, I'm sorry. Please don't hesitate to ping me in the future if I'm taking to long but I'll also try to be more responsive on these.
I'm merging it now. :smile:

Thanks for your efforts. :smile: Could you please close this PR?


ipcRenderer.send/ipcMain.on remove functions from parameters ?

Hi !
I'm trying to get a context menu that does not block the renderer process, and I'm using ipcMain and ipcRenderer to achieve that.
Attach files by dragging & dropping,  Sélect. fichiers selecting them, or pasting from the clipboard.
Submit new issue
Here's my code:
var template = [
   {
       label : 'Add to queue',
       click : function() {
           console.log('add to queue');
       }
   },
   {
       label : 'Play next',
       click : function() {
           console.log('play next');
       }
   }
];

ipcRenderer.send('contextMenu', template);

and in my main process:
ipcMain.on('contextMenu', function(event, template) {

    var contextMenu = Menu.buildFromTemplate(template);
    contextMenu.popup(mainWindow);
});

The menu appears fine but when I click on a MenuItem, nothing happens, and in fact, the click key is not even here anymore (was removed from the object). I tried to send functions as arguments directly, it's the same: they become undefined in the main process.
Is it the default behavior ?
(reproduced it on Ubuntu 14.04 and Windows 10, with Electron 0.36.2 and 0.35.2)

See here: #3923

Damn, so I have to find another way. Thanks.


feat: add gap, gapColumn & gapRow styles

#74

Example
Custom Theme
{
  "gap": {
     97: 388
   }
}

Output Avaibility

gap-97
gap-x-97
gap-y-97

Thanks for the feedback, here's testing development react native web for custom theme gaps


Inference of implicit arguments and definitions vs. assumptions

Consider the following code:
module U
let t (b: bool) : Tot Type0 = int → Tot int
let t' (#b: bool) (f: t b) : Tot Type0 = string

Then, the following successfully typechecks:
assume val f : t true
let g : t' f = "sou"

However, the following even fails to lax-typecheck (h succeeds, but not k):
val h : t true
let h x = x
let k : t' h = "oh"

Failed to resolve implicit argument of type 'Prims.bool' in the type of k (U.t' U.h)
Somehow it looks like h is unfolded in the type of k already at lax-typechecking time.
Is this expected?

By contrast, the following successfully typechecks:
val u : (ℤ → Tot ℤ)
let u x = x
val v : t true
let v = u
let k : t' v = "ohu"

This issue also happens with --use_two_phase_tc true

All these example work with F* master, closing the issue.


Add PyArray_FillWithScalarFunc to support arr.fill()

This PR adds support for the arr.fill('blah') PyArray_ArrFunc for the StringDType. A simple test was added to check that it works.

Yep, looks like this was deprecated - closing.


Resolve Memory Leaks

Fix current memory leaks in the BlurKit library. If you have encountered any, leave a comment below with the details and I'll be sure it gets addressed.
Official Maintainer Ticket: @emersoncloud

From @SergeyBurlaka
"Has memory leaks when use in my xml"
<com.wonderkiln.blurkit.BlurLayout
xmlns:blurkit="http://schemas.android.com/apk/res-auto"-->
    android:id="@+id/blurLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="end"
    blurkit:blurRadius="12"
    blurkit:downscaleFactor="0.90"
    blurkit:fps="60" />

From @hugbio:
"Use BlurLayout is not going to cause memory leaks? Because invalidationLoop does not have removeFrameCallback"


Add support for default catalog

Add functionality to ensure that a default catalog can exist and will be set up by default, and available to users, independent of the type of catalogs being used. Inject this in a way that makes it transparent to any other list of catalogs that are added. Simplest is a FS catalog, but evaluate options.

Renamed to sample catalog

Closed in #478


Build doesn't work when using symbolic links to external content

For some of our documents, we are using textual contents that are shared between several documents. In order to achieve this with the Sphinx infrastructure, in the source directory, we are inserting symbolic links towards directories located elsewhere on the file system (in a "shared library").
When building with the sphinx-book-theme, Sphinx stops and displays this error:
$ make html
[...]
Theme error:
An error occured while generating the page: contents.
The reason is: ValueError("'/home/user/shared-doc-modules/Python/intro' does not start with '/home/user/my-doc'")

A quick look at the sphinx_book_theme/__init__.py file shows at line 53 and 54:
path_from_page_dir = path_rel_from_page_dir.resolve()
page_rel_root = path_from_page_dir.relative_to(source_dir).joinpath(path_rel.name)

The Path.resolve call resolves the symbolic link and thus, after, the file path is not relative to the source directory anymore and the Path.relative_to call raises the exception.
Is there any reason to use Path.resolve at line 53 instead of Path.absolute? Should it be possible to make this change so the build will work in our use case?
Environment
Python: 3.8.2
Sphinx: 3.2.1
sphinx-book-theme: 0.0.36

interesting - can you try making a PR with absolute() and see if that fixes this? I don't think there's a strong reason to use resolve() over it

It definitely works.

I don't think there's a strong reason to use resolve() over it

There is -- absolute is not a documented attribute on pathlib.  Sorry, I didn't check the documentation. But nevertheless, someone has coded the method in the Path class... And it makes sense to have something to build an absolute path without resolving the symbolic links.
Strictly sticking to the documentation, we could go with:
pathlib.Path(os.path.abspath(path_rel_from_page_dir))
and it will work for our use case. Should this be conceivable?

@pradyunsg is there a reason absolute isn't documented?
@ocayrol I'm fine using os.path if we want to avoid absolute in pathlib

https://discuss.python.org/t/2573/ has the discussion pertaining to pathlib's absolute method. There's a CPython bug pertaining to it, linked from the first post in that thread.
I feel like I'm responsible for sending triple digit numner of people there. 🙈

Thanks for the link to the Python discussion. Indeed, computing the absolute path can be quite difficult in the exotic cases.
I'm creating a new merge request using os.path to circumvent the problem until a consensus emerges on the pathlib side.