Events not working

When subscribing to events I either get a "This value of type 'Object' has no property named '[insert field name]'" or nothing happens at all. I'm probably simply missing something very obvious, but I've gotten responses to work normally and I the README instructions are very straightforward. Here's an example script:
#Requires AutoHotkey v2.0
#Include OBSWebSocketAHK\OBSWebSocket.ahk

class MyOBSController extends OBSWebSocket {
	InputMuteStateChanged(data) {
		inputName := data.inputName
		inputMuted := data.inputMuted ? "muted 🔇" : "unmuted 🔊"
		MsgBox(inputName . " is now " . inputMuted)
	}
}

obsc := MyOBSController("ws://<IP_ADDRESS>:4455/", 0, MyOBSController.EventSubscription.Inputs | MyOBSController.EventSubscription.Scenes)

F12::MsgBox(obsc.IsWebSocketAlive())

The received object has a bit different structure.
Check the part at Example Message here
If you change data.* to data.d.eventData.* (i.e. data.inputName to data.d.eventData.inputName etc), it should work.
That is for sure, I should refer to the original description about the event (or other) structure in this documentation as well. Thank you for your report!

Now it works. Updating the documentation would indeed be a good idea. Thanks for you help!

Funny thing is, every example were correct, except this one, the main example.
https://github.com/5ony/OBSWebSocketAHK/blob/main/README.md#-event-handling
Anyhow, this is a good sign that I should do a more friendly introduction to OBS AHK scripting, because I feel the documentation just goes deep into details, and the more relevant information just getting lost,
Thanks again for your feedback, and keep them coming! :)


Framerates should not be hardcoded in VS Code

VSCode Version: 1.43.2
OS Version: Darwin x64 19.4.0
Device setup: 4K 120hz DisplayPort 1.4 monitor + MacBook Pro 16 running Mac OS Catalina 10.15.4

VS Code feels like it is locked to 60fps on my 4k 120hz monitor. Dynamic refresh rate support is an important accessibility feature against eye strain for users with high refresh rate monitors.
I noticed that the scrolling framerate is hardcoded here at 16ms per frame (60fps): https://github.com/microsoft/vscode/blob/18b8ef01b85d867d74f7314637c3de89e46227d8/src/vs/base/browser/dom.ts#L354
Many CSS transitions in the editor also seem to be running at 60fps due to a hardcoded configuration somewhere.
Please dynamically adjust to the current monitor's refresh rate instead of using these constant values.

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

There are no animations that depend on that constant. That constant is used only in the utility named addDisposableThrottledListener. That utility is used when listening for mouse input, like for example clicking on the scrollbar and dragging or when clicking in the editor and dragging to create a selection. This is an optimization to not handle too many incoming mouse events in too short of a time in order to remain responsive in the face of many incoming input event. IMHO this does not influence the quality of operating the editor, but I thank you for your vigilance in tracking this down.


Getting VFX to attach to character movement?

Hello, I've only recently started getting into using this addon, but so far I've had a lot of fun learning the tools! That being said, I'm sorry if this is an obvious fix or has been asked already somewhere I didn't see.
Basically I have a 'blade swing' VFX attached to heavy swing that spawns on my character. While standing still the VFX appear to work just how I want. But if I cast the skill while moving, it just finishes the animation on the ground where I initially cast it (as if standing still) rather than moving along with my character. I've seen other VFX that will move with your character, so I looked all over for some setting that might control this, but haven't had any luck so far.
Any advice would be much appreciated! :)

check in the "binder" settings. Usually for these types of things, it's good to find a VFX which behaves like that (for example, the default heavy swing animation) and see how the binder settings are configured for that.

Thanks for the response! I had thought it might be a binder related thing. Unfortunately, there's no consistent difference between the binders on abilities that follow and abilities that are in fixed positions from what I can tell. I tried making the settings on my modded ability identical to an effect that behaved the way I wanted, and still no dice.
I also had the thought that the setting might be applied individually to each particle but there are a lot of particle settings and I don't really understand what most of them do so it's been a bit harder to test that.

I've had a little bit of time to look at this, and I'd suggest setting up binder "properties start" like this:

also make sure that the binder is selected in the "Timelines" tab, both under the "parameters" and "items"

I was thankfully able to fix it, but not the way I thought. I tried copying the settings you provided (I believe I had already tried something similar before, but decided I may as well give it a second go). Still no dice. I ended up importing an entirely new binder from another ability and changed the settings to match those you provided, and sure enough, it worked correctly on the first try.
Still not sure why the original binder wasn't behaving as expected, but glad to have found a solution either way. Thanks for taking the time to help me work through this. :)


Maxlength of comment in blueprint

I wouldn’t set the maxlength in the default blueprint. I configured the maxlength in the config, but I do not want to copy the blueprint from the plugin folder to my site/blueprints folder just to change this small detail.

Fixed in v1.2.1: https://github.com/Addpixel/KirbyComments/releases/tag/1.2.1


Parameterize job name to remove hardcoded name "node"

Added job and port drop-down list (modeled after node exporter full dashboard)
Fixed typo in "Used Swap" expression

Merged, thanks!


2D NavMesh

Maybe consider to allow 2D Colliders to get used for nav mesh generation?

yes it's planned


Fix solution reload and config change issues

This fixes a bunch of bad regressions around solution reload and "change configuration" actions

All features stop working on any file after solution is reloaded
All features stop working on opened script files after project reloading
Changes in referenced projects are not seen until restart

The problems were:

we were caching the project options in LanguageService.fs but not invalidating the cache when a project was updated
we were caching colorization information but not making that conditional on the defines active for a colorization
we were not noticing "global" updates to project configuration affecting all projects, so getting situations where configurations were mixed between projects

Testing:

[x] I've added a project under tests\projects\misc for manually checking behaviour when switching configs or making other changes to a project

[x] I've checked the following load
devenv tests\projects\stress\big\dense\Dense.sln
devenv tests\projects\stress\huge\dense\Dense.sln
devenv tests\projects\stress\big\shallow\Shallow.sln

Notes on testing:

The unit testing for much of this "the project is changed in Visual Studio" area has effectively been disabled since the Roslynization of the codebase, which we're certainly discovered by having lots of bugs in this area.  We will somehow have to rewrite or rejig unit tests.  For example, this unit test is in theory "active" but it still tests only the unit-testable slice of the old FSharp.LanguageService.dll instead of FSharp.Editor.dll.  This means that it test how FSharp.LanguageService.dll is listening in and reacting to events from VS and FSharp.ProjectSystem.dll.  It doesn't test any of the code in FSharpEditor...\LanguageService.fs
We should probably accept this PR and any other fixes to regressions before enabling the unit tests, but should activate the unit tests (somehow - it's really not easy!) before adding significant complexity to FSharp.Editor.  It would be great if we could activate the unit tests before replacing the F# Project System but maybe that's just going to make them all obsolete in any case....

@saul @vasily-kirichenko and others - I'd be grateful if you could try this out and validate that it fixes the bugs I've marked. Also check for loss of performance - we get a lot of "Project has updated" signals so have to recompute a lot of flags.

Some glitches still need to be fixed

[ ] Still getting  ``...\Debug\net40\bin\FSharp.Core.dll' was not found or is invalid``` from VisualFSharp.sln.  We should not be getting that when in Release configuration.  This error went away for smaller solutions.

[ ] Two failures due to loading FSharp.Core.dll from disk

[ ] I tried to re-validate that #if colorization has the right behaviour on configuration change but I haven't been able to do that yet

+++ MultiTargeting (E_BadPathToFSharpCore.fs) +++
--------------------------------------------------------
Error from hosted compiler
Exit code: 1
Error:     2
Microsoft (R) F# Compiler version 4.1
Copyright (c) Microsoft Corporation. All Rights Reserved.
(0,0): error FS0082: Could not resolve this reference. Could not locate the assembly "FSharp.Core.dll". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. (Code=MSB3245)
(0,0): error FS0073: internal error: BuildFrameworkTcImports: no resolution of 'FSharp.Core.dll'
--------------------------------------------------------
Microsoft (R) F# Compiler version 4.1
Copyright (c) Microsoft Corporation. All Rights Reserved.
(0,0): error FS0082: Could not resolve this reference. Could not locate the assembly "FSharp.Core.dll". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. (Code=MSB3245)
(0,0): error FS0073: internal error: BuildFrameworkTcImports: no resolution of 'FSharp.Core.dll'

*** The following necessary lines were never matched:
***	error FS0229:.+Error opening binary file '.+I_DO_NOT_EXIST\\FSharp\.Core\.dll'

*** The following necessary lines were incorrectly matched:
***	(0,0): error FS0073: internal error: BuildFrameworkTcImports: no resolution of 'FSharp.Core.dll'

Unexpected Compiler Output
FAIL
+++ MultiTargeting (E_BadPathToFSharpCore.fsx) +++
--------------------------------------------------------
Error from hosted compiler
Exit code: 1
Error:     2
Microsoft (R) F# Compiler version 4.1
Copyright (c) Microsoft Corporation. All Rights Reserved.
(0,0): error FS0082: Could not resolve this reference. Could not locate the assembly "FSharp.Core.dll". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. (Code=MSB3245)
--------------------------------------------------------
Microsoft (R) F# Compiler version 4.1
Copyright (c) Microsoft Corporation. All Rights Reserved.
(0,0): error FS0082: Could not resolve this reference. Could not locate the assembly "FSharp.Core.dll". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. (Code=MSB3245)

*** The following necessary lines were never matched:
***	error FS0229:.+Error opening binary file '.+I_DO_NOT_EXIST\\FSharp\.Core\.dll'

*** The following necessary lines were incorrectly matched:

Unexpected Compiler Output
FAIL

Load VFT solution
Change the solution file outside VS
Reload the solution
Everything works, coloring reappear much quicker than the first time
The following assertion raised (it seems to be unrelated to this PR though)

---------------------------
Assertion Failed: Abort=Quit, Retry=Debug, Ignore=Continue
---------------------------
IncrementalBuild object has already been disposed!

   at Microsoft.FSharp.Compiler.IncrementalBuilder.assertNotDisposed()

   at Microsoft.FSharp.Compiler.IncrementalBuilder.DecrementUsageCount()

   at <StartupCode$FSharp-LanguageService-Compiler>.$Service.-ctor@2157-123.Invoke(Tuple`3 tupledArg)

   at Internal.Utilities.Collections.AgedLookup`3.strongDiscard(Value x)

   at <StartupCode$FSharp-LanguageService-Compiler>.$InternalCollections.clo@110-9.Invoke(Value x)

   at Microsoft.FSharp.Primitives.Basics.List.iter[T](FSharpFunc`2 f, FSharpList`1 x)

   at Microsoft.FSharp.Collections.ListModule.Iterate[T](FSharpFunc`2 action, FSharpList`1 list)

   at Internal.Utilities.Collections.AgedLookup`3.AssignWithStrength[d,e](d tok, FSharpList`1 newdata, FSharpList`1 discard1)

   at <StartupCode$FSharp-LanguageService-Compiler>.$Service.clo@2166-424.Invoke(Tuple`3 _arg3)

   at Microsoft.FSharp.Compiler.AbstractIL.Internal.Library.CancellableModule.bind@744.Invoke(CancellationToken ct)

   at Microsoft.FS......

<truncated>
---------------------------
Abort   Retry   Ignore
---------------------------

This is ready (once green)

@vasily-kirichenko If you could give it another go that would be great.

@vasily-kirichenko @KevinRansom @brettfo @saul and others - could I request a code review on this please?  Thanks

@dsyme If you could give it another go that would be great.

Same endless assertions.

I can confirm the 3 issues fixed.
When switching branches in VisualFSharp I got lots of identical:
[Failure] Could not find file 'C:\Users\Kuba\AppData\Local\Temp\.NETFramework,Version=v4.5.AssemblyAttributes.cs'.
But I think I've seen those before.

@saul Thanks for the review!  I'll go through the items now

@saull Could you check the last two commits?  I've updated to only call ComputeSourcesAndFlags in OnAfterActiveSolutionCfgChange and this seems to have the desired effect of only doing the operation once on load, reload and configuration update.  On load and reload other operations end up forcing ComputeSourcesAndFlags
After this change I don't see any value in the batchState tracking.
I must say this logic is a right mess.  I can't wait to ditch the whole project system and replace it with the Roslyn one

@saul OK, I think this is ready
@vasily-kirichenko I believe the assertion is a different problem - we've certainly seen it before - I've been able to repro it sometimes but not consistently.

When switching branches in VisualFSharp I got lots of identical: [Failure] Could not find file 'C:\Users\Kuba\AppData\Local\Temp.NETFramework,Version=v4.5.AssemblyAttributes.cs'.

I've not seen this before, I'm confident it's a separate problem but it would be good to address it

@KevinRansom This is not yet ready to go in (at least until @saul approves :))

Here's what I see for the set of events triggered when loading tests\projects\misc\TestProjectChanges.sln. Looking at this,

I believe you are right that we are doing ComputeSourcesAndFlags twice per project on solution load.

The cost of ComputeSourcesAndFlags has been much reduced since #3002 since it uses the stored computed options for referenced projects

It is important not to do any ComputeSourcesAndFlags until we have updated the configuration on all the projects. So I think we have to do this in OnActiveProjectCfgChangeBatchEnd.

Loading tests\projects\misc\TestProjectChanges.sln

OnActiveProjectCfgChangeBatchBegin x 3
IVsUpdateSolutionEvents.OnActiveProjectCfgChange(null) x 3
IVsUpdateSolutionEvents.OnActiveProjectCfgChange(not-null) x 6
OnActiveProjectCfgChangeBatchEnd x 3

Then we get a "duplicate" set of Batch events

OnActiveProjectCfgChangeBatchBegin x 3
OnActiveProjectCfgChangeBatchEnd x 3

Then something else forces ComputeSourcesAndFlags on each project
Switching to "Release"

OnBeforeActiveSolutionCfgChange x 3
OnActiveProjectCfgChangeBatchBegin x 3
IVsUpdateSolutionEvents.OnActiveProjectCfgChange(null) x 3
IVsUpdateSolutionEvents.OnActiveProjectCfgChange(not-null) x 6
OnActiveProjectCfgChangeBatchEnd x 3
OnAfterActiveSolutionCfgChange x 3 ComputeSourcesAndFlags

On prompted solution reload after a project file has been edited

OnActiveProjectCfgChangeBatchBegin x 3
IVsUpdateSolutionEvents.OnActiveProjectCfgChange(null) x 3
IVsUpdateSolutionEvents.OnActiveProjectCfgChange(not-null) x 6
OnActiveProjectCfgChangeBatchEnd x 3

Then we get a "duplicate" set of Batch events

OnActiveProjectCfgChangeBatchBegin x 3
OnActiveProjectCfgChangeBatchEnd x 3

Then something else forces ComputeSourcesAndFlags on each project
On individual project reload

OnActiveProjectCfgChange

On batch build:

UpdateProjectCfg_Begin x 6 (twice for each project!)
UpdateProjectCfg_Done x 6 (twice for each project!)

Also I never see these being called in the scenarios I've tested - if you know a sequence that triggers them please let me know :)

IVsUpdateSolutionEvents2.OnActiveProjectCfgChange
IVsUpdateSolutionEvents2.UpdateProjectCfg_Begin
IVsUpdateSolutionEvents2.UpdateProjectCfg_Done

@saul Here are my further investigations

First, I have adjusted the code to keep a count for the dialog

Second, I have tested "Batch Build".  This functions correctly

Third, I've put the batchState value back in.  This actually has nothing to do with batch builds - the OnActiveProjectCfgChangeBatchBegin doesn't get invoked for batch build and I really do think the old comments were just misled (a lot of this code is awful - we should never have copied the original C# VS sample from whence all this stems - and I can't wait to get rid of it with the new project system).  I've added an assert that batchState is always NonBatch by the time we get to OnAfterActiveSolutionCfgChange

Fourth, I tried to move ComputeSourcesAndFlags back to OnActiveProjectCfgChangeBatchEnd.  The problem with moving it there or any earlier is that it seems the MSBuild state of the project is out of sync, and we get invalid mixes of Debug and Release references in project options, This is the primary problem I've been fighting and which TestProjectChanges helps test (maually).  I've tried hard to work out why this happens, and whether it is a regression or an existing bug, but it's just too hard for me.  So I've kept ComputeSourcesAndFlags in OnAfterActiveSolutionCfgChange and made sure the dialog stays up.

So in short we should have the same number of ComputeSourcesAndFlags calls - 1 per project - but they just come later in the event sequence, when all projects have had their MSBuild state updated and the project options drop out correctly. Any other ordering just doesn't seem to work for me.
Manual testing:
tests\proejcts\misc\TestProjectChanges\TestProjectChanges.sln

Change to/from Debug/Release config and watch the intellisense/coloring update. No errors should appear
Build in each configuration
File --> Close Solution
File --> Open Solution
File --> Close Solution
Do a batch build over all configurations  (except Lib2=Release which makes no sense for this)
Do a batch build "clean" over all configurations  (except Lib2=Release which makes no sense for this)
Do a batch rebuild over all configurations (except Lib2=Release which makes no sense for this)

VisualFSharp.sln

Open in Debug, do a build, check #if DEBUG is active
Switch to Release do a build, check #if DEBUG is NOT active
File --> Close Solution
File --> Open Solution
File --> Close Solution

I think this is the best I can do.  Though I'll try again if you ask me :)

@saul The thanks is to you for reviewing so carefully.  It's about the most important thing we can do.

@KevinRansom this is ready to merge (unless you wish to add additional reviews)


Is there an error on Line 30 of the sample code?

$elasticpool = -AzureRmSqlElasticPool -ResourceGroupName $resourcegroupname
Looks like there's some missing text. I might be wrong, but shouldn't that say:
$elasticpool = New-AzureRmSqlElasticPool -ResourceGroupName $resourcegroupname

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

ID: 4fdc8111-10fa-acff-f219-b17432e37f6e
Version Independent ID: 879b5225-4883-fe12-be79-08adaf6b80c6
Content
Content Source
Service: sql-database

Thanx for reporting! We are working on a fix.

Assigning it to @CarlRabeler to modify the powershell script

@stevestein to fix

@amanarneja - I updated the PowerShell script so the fixed article should go live soon. Thanks for pointing this out!


Add PodHashMap

This is a cleaned up version of #97.

Based on #162.  The dynasm changes that show up in the diff will go away.

@kbara yeah but first things first

Yep, just trying to get my head around what to expect where. :-)

tx!


Expose maxDatagramSize property

As title says.
This property is almost mandatory if larger packets are needed to be sent (like video frames) which might be larger than MTU. This will result in an error.
WebTransport Docs:
https://developer.mozilla.org/en-US/docs/Web/API/WebTransportDatagramDuplexStream/maxDatagramSize
This is why we need it:
/// Transmit `data` as an unreliable, unordered application datagram
///
/// Application datagrams are a low-level primitive. They may be lost or delivered out of order,
/// and `data` must both fit inside a single QUIC packet and be smaller than the maximum
/// dictated by the peer.
pub fn send_datagram(&self, data: Bytes) -> Result<(), SendDatagramError>

This is how to get max datagram size in quinn:
/// Compute the maximum size of datagrams that may passed to `send_datagram`
///
/// Returns `None` if datagrams are unsupported by the peer or disabled locally.
///
/// This may change over the lifetime of a connection according to variation in the path MTU
/// estimate. The peer can also enforce an arbitrarily small fixed limit, but if the peer's
/// limit is large this is guaranteed to be a little over a kilobyte at minimum.
///
/// Not necessarily the maximum size of received datagrams.
pub fn max_size(&self) -> Option<usize>

Thank you for your feedback, and I agree with having this interface.
We recently merged this on master: https://github.com/BiagioFesta/wtransport/commit/fd9f75c5815061c15ac4288cc6ca92d923b2ac9c that exposes it

I also should add a few settings for MTU and queues sizes from QUIC transport. Anyway, this is out of the scope of this issue. I am going to close this as solved.


Fetch and Display contents from search to dashboard

add the response from API in the search bar to local storage and then display the results in the component

Hi, I can take on this task :) @r-ush

Go on! @MaximeKoitsalu

@r-ush do you have any examples of the api response or instructions how to setup my own backend :)? Right now, the api endpoint points to http://localhost:5000/sci

I'll share the a dummy response

https://github.com/liuhh02/tcdr-ml this is the repo for the backend, you can check the response for the scilit section here @MaximeKoitsalu

Thanks @MaximeKoitsalu !


amazon s3 uploading with fog not working as expected

I tried to setup the gem with fog storage to amazon s3 but it does not seem to be working.
There are no errors, the png is uploaded to amazon but when i open it it is a 1 second black video.
When i change the storage to :file it is working fine.
I tried the command itself and it is outputting the png correctly.
I tried replacing current_path with a local directory and the thumbnail is showing up just fine.
Any advise on how to get the thumbnail to upload to amazon correctly?
http://f.cq.tl/T1Rb

This isn't working with the latest version of carrierwave unfortunately. Stuck with a nil content_type no matter what I try.


Remove pre-compilation of contracts/scripts for sncast tests

In order to cache scarb artifacts we once created a build_contracts.sh script, that compiles contracts if there are no artifacts, and skips the compilation if artifacts are already present. The script is no longer needed, and in fact generates some problems when we update scarb. We should just get rid of it.

blocked by migration to newer devnet version, where network will be forked.


Postgres representation

Hello,
I am looking a way to use BigUint in Postgres when using rust-postgres.
I found only 1 issue in rust-postgres talking about Big numbers support, but no resolution for it.
Sadly my knowledge in the triplet Big Numbers, Postgres and Rust is not sufficient to figure out a way to do it on my own. I don't know how Big Numbers are represented, how to store them in Postgres nor my skills in Rust are good enough for that.
I will gladly try to implement the num-bigint for rust-postgres with some guidance.

I think that you should ask that question on rust-postgres as it is highly unlikely that there will be any changes in this repository during that integration.

Fair point! Totally agree. Closing the issue


npm run generate

Environment

Operating System: Linux
Node Version:     v18.20.3
Nuxt Version:     3.12.4
CLI Version:      3.12.0
Nitro Version:    2.9.7
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      compatibilityDate, devtools, app
Runtime Modules:  -
Build Modules:    -

Reproduction
https://stackblitz.com/edit/nuxt-starter-jspoi7?file=nuxt.config.ts
Describe the bug
When I set the cdnurl prefix with // and set the path /static and start npm run generate, an error occurs.

Additional context
No response
Logs
No response

When I set the prefix to http:// or https://, everything works fine.
When I set the prefix to //, an error occurs.


wip: Introduce skip argument in all execute methods

Hi @scrumthing,
it turned out to be easier than anticipated.
You can upgrade your local TM1py to this branch with pip:
pip install https://github.com/cubewise-code/tm1py/archive/feature/skip-argument-in-execute-functions.zip --upgrade
Please let me know if this works as expected. I will add a few test cases for the functionality over the next days, but it seems to be working well so far.

Thanks @MariusWirtz for the quick implementation. Will check it out tomorrow.
With skip and top proper phonation (within the odata standard) should be possible. Awesome!

It works as expected. If you set top to 100 and skip to 0 you get the first 100 entries. If you set it top to 100 and skip to 100 you get the entries 101 till 200.
But just to clarify. At the moment for both request a new cellset is created. Wouldn't it be more efficient if we could reuse the cellset for the second batch? Because in my test enviroment it takes 76 seconds to create the cellset every time.

Hi @scrumthing,
thanks for testing!
You are right. Every execute_view call creates a cellset with the full view, but retrieves only n cells.
That is indeed inefficient.
With the CellService you can also operate on the cellset level.
I think is what you need. Here is the sample:
from TM1py import TM1Service

ADDRESS = "localhost"
PORT = 12354
SSL = True
USER = "admin"
PASSWORD = "apple"

with TM1Service(address=ADDRESS, port=PORT, ssl=SSL, user=USER, password=PASSWORD) as tm1:
    view = tm1.cubes.views.get("Sales", "Margin By State", False)

    cellset_id = tm1.cells.create_cellset_from_view(cube_name="Sales", view_name="Margin By State", private=False)

    cells = tm1.cells.extract_cellset(cellset_id=cellset_id, top=10, skip=0, skip_contexts=True, delete_cellset=False)

    cells = tm1.cells.extract_cellset(cellset_id=cellset_id, top=10, skip=10, skip_contexts=True, delete_cellset=False)

    cells = tm1.cells.extract_cellset(cellset_id=cellset_id, top=10, skip=20, skip_contexts=True, delete_cellset=False)

PS
don't worry about deleting the cellset. If you log out (leave the with context in python) the REST API will destroy your cellsets.

Thanks. Thats works great! :-)


About positional encoding of the coordinate-MLP

Hi, thanks for your great work!
I wonder if you have tried using positional encoding or sine activation schemes in the coordinate-MLP network? It is a very popular method to make the coordinate-MLP fitting high frequencies signals better, but in your source code it seems that the coordinate-MLP is a relu-activated MLP without positional encoding.

Hi, we have preliminarily tried using positional encoding, which did not help in our case. My understanding is that the scene flow representation for autonomous driving scenes might not necessarily need positional encoding, since we want to make the local region "as rigid as possible". Cheers.


emacsPackages.codeium: rework

set codeium explicitly instead of relying on pkgs
rename patch to a more descriptive -.patch format
use lib.getExe' instead of hardcoding the binary path
updateScript

Description of changes

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] 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/)
24.11 Release Notes (or backporting 23.11 and 24.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

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

If there are no conflict with base branch (master here) to resolve, there is not need to sync with master again when you force-push.  In that way, it is easier to view the diff of a force-push by clicking the "Compare" button.


Uknown reason for PR - For Gilad

I tried to fetch from the upstream and this is what I got.

Closed


Cannot make 'zmq-shim.c'

When compiling on an ubuntu 18.04 system (I doubt that fact is relevant), I get
makefile: 31: recipe for target 'zmq-shim.c' failed

In the instructions, when cloning the mit-scheme-kernel repository, is there a specific directory we should be doing this from?  This is not explicitly stated in the instructions in the readme.rmd file.

I'm suspecting I forgot some steps.  I am reviewing, and will re-open if needed.  I had mit-scheme already installed, but thought it might be a good idea to follow the steps verbatim.


Limit tiles by size, prioritizing features by a numeric property

This gets much closer to providing value over tippecanoe -- when a tile gets too big and we have to sacrifice something, we can do it by a numeric feature property.
The tile sizes aren't respected with the current implementation, though:
Added 22922 features into 7/62/39, costing 555270 bytes (skipping some features after hitting size limit)
Added 22922 features into 8/125/79, costing 555270 bytes (skipping some features after hitting size limit)
Added 22922 features into 9/251/159, costing 555270 bytes (skipping some features after hitting size limit)
Added 4570 features into 10/502/318, costing 108612 bytes
Added 22842 features into 10/502/319, costing 552732 bytes (skipping some features after hitting size limit)
Added 178 features into 10/503/318, costing 3830 bytes
Added 8897 features into 10/503/319, costing 213575 bytes

That's because only the encoded geometry counts towards the size estimate, not any properties. Calling layer.compute_size() repeatedly doesn't work either though, because it's incredibly slow to encode the protobuf constantly.

Moving this code to another repo. This is merged in as https://github.com/Urban-Analytics-Technology-Platform/lines2pmtiles/commit/2d00d16658284a4fcade993351ccb07f912523ae


Grating access on storage container level only

I have following scenario to implement: The enterprise consists of thousands of organizations. Each needs a Records Collection (currently e.g. Google Team Drives, SharePoint Site Collections etc.) to store archived documents. Each collection has owners and i completely separated from other collections - i.e. you need to be granted permissions to even see files withing a particular connection.
I imagine, the most secure approach to structuring the permissions with RBAC would be to dedicate a single blob container to each collection, and than grant the required permissions ONLY on the container level. However, doing this, I cant see the storage account at all when I log in with an account which only has access to the container. Is this by design?

@milleniumfish To understand the issue better, could you please provide more details on the issue you are experiencing? Do point any specific step or document section that you’re unable to follow? Also, kindly do share a screenshot of the issue after concealing any private details. Looking forward to your reply.

@milleniumfish, Please help with the link of document on which above document feedback request is created. In case your query in not related to document content, open a new forum thread in MSDN forum or Stack Overflow as it could be better place to get help on your scenario. These forum community members could provide their expert guidance on your scenario based on their experience. Thanks.

@milleniumfish Since we have not heard back from you we will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly reopen the issue and continue the discussion.


[FR] Provide Callback for HUD window, so that user can replace it with other UI widgets(e.g. nvim-notify)

I just played around nyoom.nvim, it looks pretty cool. But I realize sometime the notification window of notify overlaps with conjure's HUD. I think it would be good if it's possible to replace the HUD interface with nvim-notify. Of course this should be opt-in, by default we still should use the HUD.

Never heard of nvim-notify but yeah, I'm open to optionally supporting it if:

It's detected by Conjure
It's toggled on with an option

Just like the Tree Sitter support really (although I default that to on now because it's just better). Will consider adding support myself at some point soon, shouldn't be too bad since all HUD control runs through one spot in the code, it's fairly well organised and shouldn't require changing many places across the code.
Mostly just adding a new Fennel module, maybe under conjure.extras.nvim-notify so we start an optional "extras" section or something, that is called from the conjure.log module when required. I think the log module handles the HUD... IIRC.

here you go: nvim-notify

Why not instead provide a lua callback that would allow any plugin ever? Then you could configure it on your own.

@Invertisment that sounds better, @Olical maybe this is a better approach to preven the codebase from being bloated.

Note that nvim notify is just a viewer for vim.notify, which is an api provided by neovim itself. would it make sense to add a conjure option to use vim.notify rather than a floating window to display eval results?

I don't think vim.notify is the right API for this since many points around Conjure's codebase constantly append to the log. So you'd get notified over and over with single lines from different parts of the code, causing the notify window to presumably flash up and down with parts of the log, but not a coherent view.
The design of the log is just that... a log! You need the context since it is continually append to. A notify / dialog window of sorts does not fit in that idea of a scrolling stateful log of additions. So I don't really know how it'll work with this at all.
I'll look at adding a hook so you can opt out of using the HUD code for something else, but it's up to the user to make that continuous appending behaviour work with whatever display they want to use.

I've added a hook API to develop and documented it here, thoughts? Can be extend with more features of Conjure quite easily too.
https://github.com/Olical/conjure/blob/a74547e5bd8f870fdeefb4ebbdfe9fb43458fe37/doc/conjure.txt#L1110-L1154

Hello sorry for the delay, I'm looking at this right now. If I want to hook conjure into vim notify, is there a way I can get the content of evaluated buffer?
I see there's a function upsert-buf, which seems like what I need, could you make this public?
Here's a trivial script of what I'm trying to do:
        local hook = require('conjure.hook')
        hook.override('display-hud',
          function(opts)
            local log = require('conjure.log')
            local buf = log['upsert-buf']()
            local content = vim.nvim_buf_get_lines(buf, 0, -1, false)
            vim.notify(content)
          end)

Now I'm thinking this is ugly, for the following reasons:

UI is tied to the logging logic
Using hook I have to access local variable, that force us to make the internal implementation public.

A better idea is to redesign this part, but for now I'm thinking the HUD is good enough, but anyone who is interested may look into that direction.

Also if a rewrite of the UI logic is possible I'm willing to help on it :)

I don't think a total rewrite is the right move or very easy since I'm streaming lines from the REPL to your view. Sometimes the users needs that live stream, sometimes they don't care, Conjure can't easily do both (streaming and batching for notify plugins).
So I think it'll need to stay streaming but with more flags on messages to say "this is a result, here's the full body". If you use notify with that sort of idea it means a long running process that constantly logs will display nothing until it's done (which could be never!). So those things will need thinking about.
Conjure's entire UX is designed around the streaming log buffer, therefore so is the HUD, that won't be going away. I'm open to adding more events and metadata though that allow people to hook into notify if they really want to, but they will have to make decisions on tradeoffs. Will require quite a lot of timing / debounced code in order to batch stdout calls so a stdout print of 100 lines doesn't produce 100 notify calls in 1ms.
There's a few ways this could cause so many notifications that it pegs your CPU and essentially locks up Neovim I think. Will have to be careful with those.


new e2e tests

As of now ics721 covers e2e tests using ts-relayer. This is for various reasons not ideal, since ts-relayer is neither meant for production nor it is up to date.
New e2e tests should cover tests as defined in ./ts-relayer-tests/src/ics721.spec.ts.

Maybe interchaintest is the right fit here?  Which could be either implemented forking the juno interchaintest implementation, which already comes with a bunch of helpful CosmWasm helpers or give it a try to the newily released interchaintest scaffolding tool from @srdtrk
Or a Rust alternative as implemented by Timewave as @Art3miX suggested that can be found here https://github.com/timewave-computer/orbital/tree/main/local-interchaintest

I had tested go-codegen with cw-ics721 and made sure it works thanks to @jhernandezb. I'll do my best to support your use case, and review some e2e PRs if you decide to go with my tool 😄 .

Yes! I've started some of this work locally using go-codegen, thanks @srdtrk

Here's a comprehensive code walkthrough for cw-ics721 newbies (will be published in IBC blog soon):
Unleashing InterChain NFT Utilities with cw-ics721 and Callbacks: A Comprehensive Implementation Guide
Agenda

Introduction to cw-ics721: Explanation of its role in InterChain NFT transfers.
About Ark Protocol: Building an InterChain NFT Hub across all CosmWasm-based Cosmos chains.
Understanding cw-ics721: Brief architecture intro on cw-ics721.
Understanding Proxies for Security Considerations: The importance of proxies for securing cw-ics721.
Case Study: Full example of cw-ics721 including callbacks and NFT updates in action.
Implementation Walkthrough: Step-by-step guide on setting up and using cw-ics721.
Future Prospects: Expansion plans and potential applications.
Conclusion: Empowering developers for a new era of InterChain NFT utilities.

Introduction
The Cosmos ecosystem is rapidly evolving, with InterChain capabilities transforming how assets move across different blockchains. Ark Protocol's cw-ics721 provides a robust solution for InterChain NFT transfers, leveraging the IBC protocol to enable seamless InterChain interactions. This article delves into the technical implementation and use cases of cw-ics721, showcasing its potential to revolutionize NFT utilities.
About Ark Protocol
Ark Protocol is dedicated to building InterChain NFT utilities, enabling seamless NFT transfers and access to utilities across multiple blockchains. By leveraging the Inter-Blockchain Communication (IBC) protocol, Ark Protocol aims to create a unified NFT ecosystem where collections can be accessed and utilized on any chain, at any time. As of now, Ark Protocol has deployed InterChain contracts on 7+ chains. Our mission is to empower the NFT community by providing secure, efficient, and innovative solutions for InterChain interactions across all CosmWasm-based chains.
Mission:

Building an InterChain NFT Hub. Technically this means:
Transitioning NFT utilities from a local, single-chain to a global and InterChain level (like transfers, staking, snapshots, launchpads, marketplace, etc.).

Ark team is one of the main contributor for cw-ics721 and cw-nfts. Recent utilities we have provided are:

ICS 721

InterChain transfers
Outgoing and incoming proxies for additional security (e.g., whitelisting IBC channels)
Optional receive and ack callbacks

cw-nfts

cw721-expiration: For issuing time-based subscriptions and services
Upcoming major v0.19 release

Main logic moved to cw721 package for better re-use
Distinction between creator and minter
NEW CollectionInfo in cw721 package
NEW utility: UpdateNftInfo and UpdateCollectionInfo msg

More InterChain utilities coming soon:

InterChain launchpad
InterChain marketplace
cw-ics721 v2 (onchain metadata, royalties, single-hop-only transfers, etc.)

Understanding cw-ics721
The cw-ics721 standard facilitates NFT transfers between chains by locking (aka escrowing) the original NFT on the source chain and minting a new NFT (aka debt voucher) on the target chain. If the NFT is returned, it gets burned on the target chain and unescrowed/transferred back to the recipient on the source chain. This process ensures that NFTs can seamlessly move across different blockchain ecosystems while maintaining their unique properties and metadata.
Understanding Proxies for Security Considerations
Ark provides additional security measures to prevent possible exploits and malicious attacks on ics721:

Outgoing and Incoming Proxy Contracts: Secure the transfer process with rate limits, whitelisting channels, collections, and code hashes, preventing unauthorized transfers and vector attacks.

The example uses a simple rate limiter for outgoing proxy. cw-ics721 managed by Ark Protocol uses a more advanced and secure outgoing proxy.
Incoming proxies secure ics721 across all Cosmos chains (and not only CosmWasm-based chains) from malicious or compromised chains.

Multisigs: All InterChain contracts use multisig wallets for managing contract ownership and administration, ensuring a higher level of security.

Ark plans transitioning to DAO-managed InterChain contracts.

Case Study
The process involved minting an NFT, transferring it between Osmosis and Stargaze, and demonstrating the callback mechanism to update metadata seamlessly. This is a full example demonstrating how cw721 interacts with cw-ics721, incoming, and outgoing proxies. The demo shows how an NFT and its metadata are affected using callbacks during InterChain (ics721) transfers:

Minting an NFT on Osmosis:
A minted NFT on Osmosis (source/home chain) looks like this:

Transferring NFT to Stargaze:
After transferring the NFT to Stargaze, it is escrowed on Osmosis, and its metadata is updated:

Note: PFP has changed from home to away (=escrowed) PFP!

Note: PFP has changed from home to transferred (=debt voucher) PFP!

Transferring Back to Osmosis:
When transferring an NFT back to the home chain, it is burned on Stargaze and reset on Osmosis:

Note: PFP is reset to the home PFP!

Implementation Walkthrough
In this post, we focus on the callbacks to avoid overwhelming the article. For all other code snippets, links are provided to examine the entire workflow in detail.
Setup and Deployment
Follow the SETUP.md for deploying these contracts on Osmosis and Stargaze testnet:

cw721_base.wasm: Deploys two collection contracts

Passport collection: Used for ics721 NFT transfers between Osmosis and Stargaze
POAP collection: Mints a POAP NFT on the target chain for recipient, as a reward, on each ics721 transfer using callbacks

cw_ics721_arkite_passport.wasm (aka Arkite contract)

The contract where a Passport NFT is sent
Triggers cw-ics721 transfer by passing a NFT to outgoing proxy contract and attaching callbacks in the memo field

cw_ics721_outgoing_proxy_rate_limit.wasm

Validates incoming NFTs to ensure only legitimate transfers occur.
Forwards NFT to cw-ics721

ics721_base.wasm

Sends IBC packet, including NFT on-chain data, to the counterpart contract, cw-ics721, on the target chain

cw_ics721_incoming_proxy_base.wasm

Triggered by counterpart contract cw-ics721
Validates incoming channels are whitelisted by the incoming proxy, ensuring only legitimate transfers occur.

Arkite Messages
The Arkite contract provides the following messages:
pub enum ExecuteMsg {
    Mint {},
    ReceiveNft(Cw721ReceiveMsg),
    CounterPartyContract {
        addr: String,
    },
    /// Ack callback on source chain
    Ics721AckCallback(Ics721AckCallbackMsg),
    /// Receive callback on target chain, NOTE: if this fails, the transfer will fail and NFT is reverted back to the sender
    Ics721ReceiveCallback(Ics721ReceiveCallbackMsg),
}

Minting a Passport NFT
ExecuteMsg::Mint can be triggered using ./scripts/mint.sh osmosis. This mint message executes cw721_base::msg::ExecuteMsg::Mint to mint an NFT containing metadata with four traits:
fn create_mint_msg(deps: DepsMut, cw721: Addr, owner: String) -> Result<SubMsg, ContractError> {
...
    let default_token_uri = DEFAULT_TOKEN_URI.load(deps.storage)?;
    let escrowed_token_uri = ESCROWED_TOKEN_URI.load(deps.storage)?;
    let transferred_token_uri = TRANSFERRED_TOKEN_URI.load(deps.storage)?;
    let trait_token_uri = Trait {
        display_type: None,
        trait_type: "token_uri".to_string(),
        value: default_token_uri.clone(),
    };
    let trait_default_uri = Trait {
        display_type: None,
        trait_type: "default_uri".to_string(),
        value: default_token_uri.clone(),
    };
    let trait_escrowed_uri = Trait {
        display_type: None,
        trait_type: "escrowed_uri".to_string(),
        value: escrowed_token_uri.clone(),
    };
    let trait_transferred_uri = Trait {
        display_type: None,
        trait_type: "transferred_uri".to_string(),
        value: transferred_token_uri.clone(),
    };
    let extension = Some(NftExtensionMsg {
        image: Some(Some(default_token_uri.clone())),
        attributes: Some(Some(vec![
            trait_token_uri,
            trait_default_uri,
            trait_escrowed_uri,
            trait_transferred_uri,
        ])),
        ..Default::default()
    });
    let mint_msg = WasmMsg::Execute {
        contract_addr: cw721.to_string(),
        msg: to_json_binary(&cw721_base::msg::ExecuteMsg::<
            DefaultOptionalNftExtensionMsg,
            DefaultOptionalCollectionExtensionMsg,
            Empty,
        >::Mint {
            token_id: num_tokens.count.to_string(),
            owner,
            token_uri: Some(default_token_uri.clone()),
            extension,
        })?,
        funds: vec![],
    };
    let sub_msg = SubMsg::reply_always(mint_msg, MINT_NFT_REPLY_ID);
    Ok(sub_msg)
}

$CLI query wasm contract-state smart $ADDR_CW721 '{"nft_info":{"token_id": "1"}}' --chain-id $C HAIN_ID --node $CHAIN_NODE | jq provides the following NFT details:
{
  "data": {
    "token_uri": "https://github.com/arkprotocol/cw-ics721-callback-example/raw/main/public/passport_osmosis01_home.png",
    "extension": {
      "image": "https://github.com/arkprotocol/cw-ics721-callback-example/raw/main/public/passport_osmosis01_home.png",
      "image_data": null,
      "external_url": null,
      "description": null,
      "name": null,
      "attributes": [
        {
          "display_type": null,
          "trait_type": "token_uri",
          "value": "https://github.com/arkprotocol/cw-ics721-callback-example/raw/main/public/passport_osmosis01_home.png"
        },
        {
          "display_type": null,
          "trait_type": "default_uri",
          "value": "https://github.com/arkprotocol/cw-ics721-callback-example/raw/main/public/passport_osmosis01_home.png"
        },
        {
          "display_type": null,
          "trait_type": "escrowed_uri",
          "value": "https://github.com/arkprotocol/cw-ics721-callback-example/raw/main/public/passport_osmosis02_away.png"
        },
        {
          "display_type": null,
          "trait_type": "transferred_uri",
          "value": "https://github.com/arkprotocol/cw-ics721-callback-example/raw/main/public/passport_osmosis03_transferred.png"
        }
      ],
      "background_color": null,
      "animation_url": null,
      "youtube_url": null
    }
  }
}

Please note that token_uri on mint refers to the default passport_osmosis01_home.png image. In the next step, token_uri will be changed while executing InterChain transfer using callbacks.
Also check minted NFT using Ark's UI here: https://testnet.arkprotocol.io/collections/CW721_ADDRESS/NFT_ID
Transferring Passport NFT from Osmosis to Stargaze
NFT #1 can be transferred by executing this script: ./scripts/transfer.sh osmosis 1. Once the script is executed, the following workflow covers three main parts:

Initialize InterChain transfer on Osmosis as source chain, and attaching receive and ack callbacks
Receive NFT packet on Stargaze, target chain, for minting a Passport NFT (aka debt voucher), executing receive callback and sending an ack packet back to target chain
Finally processing ack packet on source chain and executing ack callback

In this example the receive callback on target chain does 2 things:

changing image by updating the Passport NFT
Passport receiver gets another NFT from POAP collection contract, as a reward for doing an InterChain transfer

The ack callback on source chain in return:

changes image, indicating Passport NFT has been escrowed by ICS721.
in case of failure, undo and return NFT back to sender.

Initialize InterChain Transfer on Source Chain with Callbacks
Initializing an InterChain transfer covers these steps:

Script triggers InterChain transfer

executes cw721_base::msg::ExecuteMsg::SendNft on Passport collection contract
attaches IbcOutgoingMsg data to SendNft
IbcOutgoingMsg attachment in script can be found here.

Passport collection contract processing SendNft

transfers NFT to Arkite contract
contract calls ExecuteMsg::ReceiveNft on Arkite contract
attaches IbcOutgoingMsg data to ReceiveNft
IbcOutgoingMsg attachment in contract can be found here.

Arkite contract processing ReceiveNft

forwards/retransfers NFT to outgoing proxy contract by calling SendNFT on Passport collection and attaching modified IbcOutgoingMsg with callbacks as memo
execute_receive_nft() main code is here

Passport collection contract processing SendNft

same as above: transfer NFT ownership and calls ReceiveNft on outgoing proxy
send_nft() code is here.

Outgoing Proxy contract processing ReceiveNft

validates rate limit, ensuring only legitimate transfers occur
transfers NFT ownership to ics721 contract
calls ProxyExecuteMsg::ReceiveNft(cw721::Cw721ReceiveMsg) on ics721 contract
attaches IbcOutgoingMsg data to ReceiveNft
execute_receive_nft() main code is here

ICS721 contract processing ReceiveNft

validates whether sender is outgoing proxy
validates NFT is escrowed/owned by ics721
creates NonFungibleTokenPacketData containing collection and NFT data
sends IBC message with NonFungibleTokenPacketData
key logic here

For simplicity please note, in step 1, that the recipient for Passport NFT is the Arkite contract on Stargaze, target chain! This way Arkite contract, being the creator of Passport collection, will be able to update NFT data.
In step 3, on execute_receive_nft() it does 5 things:

checks whether outgoing proxy is set in ics721
unwraps IbcOutgoingMsg
creates Ics721Memo with receive and ack callbacks
attaches memo field into IbcOutgoingMsg
forwards and executes SendNft with modified IbcOutgoingMsg

Note: in case an outgoing proxy address is set, then ics721 only accepts ReceiveNft from outgoing proxy!
fn execute_receive_nft(
    deps: DepsMut,
    env: Env,
    info: MessageInfo,
    msg: Cw721ReceiveMsg,
) -> Result<Response, ContractError> {
    // query whether there is an outgoing proxy defined by ics721
    let outgoing_proxy_or_ics721 = match deps
        .querier
        .query_wasm_smart(ics721.clone(), &ics721::msg::QueryMsg::OutgoingProxy {})?
    {
        Some(outgoing_proxy) => outgoing_proxy,
        None => ics721,
    };
    let mut ibc_msg: IbcOutgoingMsg = from_json(&msg.msg)?; // unwrap IbcOutgoingMsg binary
    let memo = create_memo(deps.storage, env, msg.sender, msg.token_id.clone())?;
    ibc_msg.memo = Some(Binary::to_base64(&to_json_binary(&memo)?)); // create callback and attach as memo
    // forward nft to ics721 or outgoing proxy
    let cw721 = info.sender;
    let send_msg = WasmMsg::Execute { // send nft to proxy
        contract_addr: cw721.to_string(),
        msg: to_json_binary(&cw721_base::msg::ExecuteMsg::<
            DefaultOptionalNftExtensionMsg,
            DefaultOptionalCollectionExtensionMsg,
            Empty,
        >::SendNft {
            contract: outgoing_proxy_or_ics721.to_string(),
            token_id: msg.token_id,
            msg: to_json_binary(&ibc_msg)?,
        })?,
        funds: vec![],
    };
...
}

The Ics721Callbacks struct accepts these props:
pub struct Ics721Callbacks {
    /// Data to pass with a callback on source side (status update)
    /// Note - If this field is empty, no callback will be sent
    pub ack_callback_data: Option<Binary>,
    /// The address that will receive the callback message
    /// Defaults to the sender address
    pub ack_callback_addr: Option<String>,
    /// Data to pass with a callback on the destination side (ReceiveNftIcs721)
    /// Note - If this field is empty, no callback will be sent
    pub receive_callback_data: Option<Binary>,
    /// The address that will receive the callback message
    /// Defaults to the receiver address
    pub receive_callback_addr: Option<String>,
}

A contract can define its own custom callback data. In Arkite it passes sender and various token URIs as part of Ics721Memo:
fn create_memo(
    storage: &dyn Storage,
    env: Env,
    sender: String,
    token_id: String,
) -> Result<Ics721Memo, ContractError> {
    let default_token_uri = DEFAULT_TOKEN_URI.load(storage)?;
    let escrowed_token_uri = ESCROWED_TOKEN_URI.load(storage)?;
    let transferred_token_uri = TRANSFERRED_TOKEN_URI.load(storage)?;
    let callback_data = CallbackData {
        sender,
        token_id,
        default_token_uri,
        escrowed_token_uri,
        transferred_token_uri,
    };
    let mut callbacks = Ics721Callbacks {
        ack_callback_data: Some(to_json_binary(&callback_data)?),
        ack_callback_addr: Some(env.contract.address.to_string()),
        receive_callback_data: None,
        receive_callback_addr: None,
    };
    if let Some(counterparty_contract) = COUNTERPARTY_CONTRACT.may_load(storage)? {
        callbacks.receive_callback_data = Some(to_json_binary(&callback_data)?);
        callbacks.receive_callback_addr = Some(counterparty_contract); // here we need to set contract addr, since receiver is NFT receiver
    }
    Ok(Ics721Memo {
        callbacks: Some(callbacks),
    })
}

recv Packet Processing on Target Chain and Execute Ics721ReceiveCallback
On target chain ics721 contracts gets a receive packet:

entry point is ibc_packet_receive()
validates whether ics721 has been paused
creates varioius msgs like:

ics721 incoming proxy msg triggers proxy and errors if channel is not eligible to be passed to ics721 on target chain.
depending on forward or back transfer, NFT is either minted or unescrowed for recipient
and finally callback msg is executed

Arkite contract processing execute_receive_callback()

calls cw721_base::msg::ExecuteMsg::UpdateNftInfo on Passport collection
calls cw721_base::msg::ExecuteMsg::Mint on POAP collection

finally ics721 returns an ack success or error

NOTE: in case any sub message errors, ics721 reverts all changes

Updating a NFT is straightforward, here on execute_receive_callback() Arkite contract calls cw721_base::msg::ExecuteMsg::UpdateNftInfo:
let new_token_uri = if current_token_uri == default_token_uri {
   if use_escrowed_uri {
      escrowed_token_uri.clone()
   } else {
      transferred_token_uri.clone()
   }
} else {
   default_token_uri.clone()
};
let trait_token_uri = Trait {
   display_type: None,
   trait_type: "token_uri".to_string(),
   value: new_token_uri.clone(),
};
let trait_default_uri = Trait {
   display_type: None,
   trait_type: "default_uri".to_string(),
   value: default_token_uri.clone(),
};
let trait_escrowed_uri = Trait {
   display_type: None,
   trait_type: "escrowed_uri".to_string(),
   value: escrowed_token_uri.clone(),
};
let trait_transferred_uri = Trait {
   display_type: None,
   trait_type: "transferred_uri".to_string(),
   value: transferred_token_uri.clone(),
};
let extension = Some(NftExtensionMsg {
   image: Some(Some(new_token_uri.clone())),
   attributes: Some(Some(vec![
      trait_token_uri,
      trait_default_uri,
      trait_escrowed_uri,
      trait_transferred_uri,
   ])),
   ..Default::default()
});
// - set new token uri
let update_nft_info: WasmMsg = WasmMsg::Execute {
   contract_addr: cw721,
   msg: to_json_binary(&cw721_base::msg::ExecuteMsg::<
      DefaultOptionalNftExtensionMsg,
      DefaultOptionalCollectionExtensionMsg,
      Empty,
   >::UpdateNftInfo {
      token_id: callback_data.token_id.clone(),
      token_uri: Some(Some(new_token_uri.clone())),
      extension,
   })?,
   funds: vec![],
};

In addition Arkite mints an NFT for recipient, as a reward:
let extension = Some(NftExtensionMsg {
   image: Some(Some(default_token_uri.clone())),
   attributes: Some(Some(vec![
      trait_token_uri,
      trait_default_uri,
      trait_escrowed_uri,
      trait_transferred_uri,
   ])),
   ..Default::default()
});
let mint_msg = WasmMsg::Execute {
   contract_addr: cw721.to_string(),
   msg: to_json_binary(&cw721_base::msg::ExecuteMsg::<
      DefaultOptionalNftExtensionMsg,
      DefaultOptionalCollectionExtensionMsg,
      Empty,
   >::Mint {
      token_id: num_tokens.count.to_string(),
      owner,
      token_uri: Some(default_token_uri.clone()),
      extension,
   })?,
   funds: vec![],
};

Finally ics721 sends a ack packet on success. In case of failure an error message is attached to ack packet.
ack Packet Processing on Source Chain and Execute Ics721AckCallback
On source chain ics721 contracts gets an ack packet:

entry point is ibc_packet_ack(), handling ack success or fail:

handle_packet_fail()

transfers NFT back to sender
executes callback with Ics721Status::Failed

on success ics721

burn NFTs in case of back transfer
executes callback with Ics721Status::Success

Important: unlike receive callback, ics721 ignores ack callback errors and wont rollback changes!

Arkite ack callback

entry point is execute_ack_callback()
validates sender is ics721
Ics721Status::Success: udpates NFT
Ics721Status::Failed: returns NFT back to sender

execute_ack_callback() on Arkite contract is straightforward dealing both, ack fail and success:
match msg.status {
   Ics721Status::Success => {
      let (update_nft_info, old_token_uri, new_token_uri) = create_update_nft_info_msg(
            deps.as_ref(),
            msg.nft_contract,
            callback_data.clone(),
            true,
      )?;
      Ok(res
            .add_message(update_nft_info)
            .add_attribute("old_token_uri", old_token_uri)
            .add_attribute("new_token_uri", new_token_uri))
   }
   Ics721Status::Failed(error) => {
      let transfer_msg = WasmMsg::Execute {
            contract_addr: msg.nft_contract.to_string(),
            msg: to_json_binary(&cw721_base::msg::ExecuteMsg::<
               DefaultOptionalNftExtensionMsg,
               DefaultOptionalCollectionExtensionMsg,
               Empty,
            >::TransferNft {
               recipient: callback_data.sender,
               token_id: callback_data.token_id,
            })?,
            funds: vec![],
      };

      Ok(res.add_message(transfer_msg).add_attribute("error", error))
   }
}

Future Prospects
The successful implementation of cw-ics721 and its extension for callbacks, opens up numerous possibilities for NFT utilities across various blockchain ecosystems. With plans to extend support to Ethereum and other EVM chains, the potential for InterChain NFT interactions is limitless.
Conclusion
Ark Protocol’s cw-ics721 is paving the way for a new era of InterChain NFT utilities. By providing a secure, efficient, and scalable solution for InterChain NFT transfers, it empowers developers to explore innovative applications and expand the NFT ecosystem. Join us in this interstellar journey as we continue to push the boundaries of what's possible in the world of NFTs.
For a detailed implementation guide and access to the code, visit the cw-ics721-callback-example GitHub repository.

This technical deep dive aims to inspire developers across the Cosmos ecosystem to explore and implement cw-ics721, enhancing the functionality and reach of NFTs.


Mmca 4407

It better to add more description for the PR title along with the ticket number , in this case it can be below (taken from the story title)
Improve statement & branch test coverage above 90%


Fixed mocks & loaders are dev deps

they we're re-added as deps in version 0.2.4

Coverage remained the same at 85.227% when pulling 8fb3b3a27b22cbd90aa757608a0b90c38f38dea8 on dozoisch:master into a6155dfd99423cf3ddb9d4c0ead872c019f4652e on ajbrown:master.

Coverage remained the same at 85.227% when pulling 8fb3b3a27b22cbd90aa757608a0b90c38f38dea8 on dozoisch:master into a6155dfd99423cf3ddb9d4c0ead872c019f4652e on ajbrown:master.

@ajbrown Anything I can do to get this merged?

@dozoisch sorry for the delay!

No problem :) thanks!


Add failover method for when local admin fails just like the failover in place for MDM failures

Macjutsu -
Although the use of local credentials works great, i am running into a few issues with certain devices that may not have a matching password on the local Admin account.  I would like to have the flexibility to present the end user with Creds when local admin account fails to verify.
Credential Error: The provided password for account "TestAdminUser" is not valid.
Warning: Automatic macOS update/upgrade enforcement on Apple Silicon computers requires authentication credentials
Exit: Startup validation failed.
I tried using the --user-auth-mdm-failover= options but these does not seem to work as they appear to be strictly for the Jamf API workflow.
End goal, "as a failover" allow end user to Authenticate and for the update to proceed (given they have Secure Token rights of course)

Thank you very much

+1 for this feature

https://github.com/Macjutsu/super/releases/tag/v4.0.0-beta1


Comments are not saved after VS CODE restart

I really like your extension. I really need it, but my comments are not saved after restarting the application. I also noticed that the comments.json file is not being created either. Can you help me solve this problem?

Hi! Thank you for your interest in this extension. It's been a while since I worked on this, and it is very much in alpha stage. Currently, I also do not use this extension myself, so I haven't tested it. I suggest cloning the repository locally and setting up a VSCode extension development environment. Then you should be able to view logs, debug the code and find whether writeThreads is called at the appropriate times. If you have any improvements, feel free to send a PR!


⚠ Bofrost.es has degraded performance

In 5e78ccb, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1609 ms

Resolved: Bofrost.es performance has improved in 761e8e8 after 16 minutes.


Supporting LinkedIn Learning

Can I use this to download videos from LinkedIn Learning instead of Lynda?
As I don't have an account on Lynda and can't link my LinkedIn account to Lynda

LinkedIn learning https://www.linkedin.com/learning/me is a rebrand of Lynda that has the same courses but your script refuses to use my login credentials ... The script says Lynda doesn't recognize login.

@ScorpionIbm i can add support for this. but you can still download the same course via linked what you need to do is to google the course name followed by Lynda. lynda will show you the url supported by this repository and then you can download that using your credentials. but i will take a look at this. for this i might need your credentials if you are okay with sharing then you can email me

Sadly the my credentials aren't accepted on Lynda as they only work for LinkedIn learning (Lynda.com doesn't recognize my login credentials).
Secondly, I can't send my linkedIn credentials because they give access to the whole LinkedIn profile and payment info not just LinkedIn learning, but you can make an account with a month of free trial here.
Also I can help you with testing.
Thanks for your fast response. I'd be glad if you could make your script work for that too as it's more advanced and stable with more features.

This is what the script shows when I try to login with my credentials on LinkedIn Learning

@ScorpionIbm okay i understand and respect your privacy. just a simple question can you login to lynda via browser using this endpoint https://www.lynda.com/signin? if you can't then the other solution could be using cookie based authentication. or i will check with some free contents & can you share the course url you are trying to download?

It's a complete learning Path here If the script doesn't work with that then the individual course links in there should work

hi @r0oth3x49  i am also having same problem now lynda courses are accessible through linkedin learning , i tried myself to make some change in script

@ScorpionIbm i can add support for this. but you can still download the same course with lynda-dl what you need to do is to google the course name followed by Lynda. Google will show you the url supported by this repository and then you can download that using your credentials. but i will take a look at this. for this i might need your credentials if you are okay with sharing then you can email me

you can check this thing with your credentails .
i tried the way you told to search in google , In 6 hrs of course only public lectures Downloaded , other lectures skipped .


partitura.music_analysis.note_features.make_note_features() breaks when add_idx=True and the feature is empty

This is a bug when one wants to add features for which no note exists, append new column with zero entries and breaks.

Idea : Take 4x22 and ask for fermata feature.


Redirection of repair_id

Right now we can force enter repair id of diffrent customer.
Change it, so before fetching request his identity is checked.

Added condition checking if endpoint reached by customer can be seen by him and added redirection if it cant be.


Bug: Website prisma.io not working correctly: 404 for main-27ebd8f395035954ac59.js

Bug description
JavaScript is not being executed due to the fact that the URL https://www.prisma.io/_next/static/runtime/main-27ebd8f395035954ac59.js returns a 404 Not Found error.
How to reproduce

Go to https://www.prisma.io/
Go to the "Network" tab in Chrome
See that the file is not loading

Expected behavior
File loads and website works
Environment & setup

OS: macOS Catalina 10.15.4 (19E287)
Browser: Chrome Version 81.0.4044.92

Seems to work again ¯_(ツ)_/¯

Welcome to CDN hell. There seems to be a bug on our hosting provider, which currently impacts some of our assets unfortunately.

Aye okay. Will leave this issue open then ✌


[BUGFIX] Fix Perses build for downstream consumers

Downstream consumers aren't able to depend on Perses because asset files referenced in the /ui package aren't supplied unless a make build has been run to generate them:

I don't know if you are trying to import some perses lib in a go application or if you are trying to build perses on your own side, but:

if you want to import some libs, you should only use what is contained in pkg that's where we are putting our "public" lib.
if you are trying to build Perses on your side, then you should considerate to generate the go files before trying to build it, because it's not the only one file generated. And you can be sure we won't remove the generation of these files, specially since the files with embed doesn't have the same name each time you are building it.

if you want to import some libs, you should only use what is contained in pkg that's where we are putting our "public" lib.

I'll let Lizzy go into the specifics of what else we'd like to be public, but is there potential to expose more in the "public" API @Nexucis?
Or even potential to publish a go module for consumers interested in the embed use-case? We're thinking about trying to hit the /validate endpoint from our UI since we have no other way to utilize the CUE schema right now.
If that doesn't work out, we probably will need to look into adding another solution like zod for client-side validation

I'll let Lizzy go into the specifics of what else we'd like to be public, but is there potential to expose more in the "public" API @Nexucis? We're thinking about trying to hit the /validate endpoint from our UI since we have no other way to utilize the CUE schema right now.

That's another question than what it is tackling here.
Here I still don't get what part of the build of Perses doesn't work. Still the files that need to be generated are generated on purpose and you shouldn't need to depend on it.
Regarding the fact you would like to use what is behind the /validate endpoint you can still import it even if it's not in the pkg path. It is more a convention rather than something that would block you from importing it.
For example, if you are looking at the CLI, you will see it is able to use the CUE file locally or it can use the validate endpoint if you are more into a online mode.
https://github.com/perses/perses/blob/main/internal/cli/cmd/lint/lint.go#L93-L143

We're thinking about trying to hit the /validate endpoint from our UI since we have no other way to utilize the CUE schema right now.

You could simply run an instance of Perses that would be a cheap solution. Like that the endpoint will be available. Or you are doing what the CLI is doing: reading the cue files and use them to validate the dashboards locally

The goal of this PR is to unblock our ability to add the "github.com/perses/perses" module as a dependency in another Go module.
We're deploying a Perses image to a container and plan to query this instance from a separate service (specifically, as @sjcobb mentioned, the /validate endpoint). In this other service, we want to add a Perses Go dependency to provide the contents of "github.com/perses/perses/pkg/client" and "github.com/perses/perses/pkg/model". This will allow this other service to import the Perses-defined API schemas for its client layer with Perses. In its current state, adding this dependency breaks the Go build because the UI package cannot build without assets.
The original approach in this PR was an attempt to track everything the Go build needs — as you mentioned this didn't work because the compressed asset files are not stable. I've updated this draft with a different approach. Rather than leaving the Go module as-is and including additional files needed by the compiler, this approach updates the module structure so that the offending package (/ui) is entirely excluded; the /ui directory is separated into its own Go module.
This prevents the contents of /ui from being included in the "github.com/perses/perses" module. Those interested in deploying the Perses UI can do so using the complete source code, either via the Perses Docker release or by cloning locally (the process remains unchanged). The "github.com/perses/perses" Go module is now isolated to contents that can be built by a Go compiler (thus unblocking the module from being used as a dependency).
Unfortunately there's still an issue — tests in pkg/client import the e2eframework package, which import the ui package via core. While this doesn't break the Go build (because all these test files are annotated with the //go:build integration constraint), it does break vendoring when importing "github.com/perses/perses/pkg/client" because the dependency chain can't be resolved when /ui is excluded from the root Go module.
This PR fixes the import/vendoring issue for pkg/client by moving the e2e tests from pkg/client into internal/api/e2e. But the Go build for the root module will now break when passing the integration compiler flag (which will attempt to build the files otherwise ignored by go:build integration constraint). This means the Go build will be broken when running in the e2e action pipeline.
I didn't want to go further here without some opinions from Perses people, but one fix to this could be moving e2e into a module of its own that adds the github.com/perses/perses/ui module as a dependency. The the root module would not need to import either e2e or ui modules.

I also tried with a new go project and I didn't face the issue you are mentioning.
go.mod
module github.com/nexucis/pocperses

go 1.20

require github.com/perses/perses v0.31.0

require (
	cuelang.org/go v0.5.0 // indirect
	github.com/ajg/form v1.5.1 // indirect
	github.com/andybalholm/brotli v1.0.4 // indirect
	github.com/beorn7/perks v1.0.1 // indirect
	github.com/cespare/xxhash/v2 v2.2.0 // indirect
	github.com/cockroachdb/apd/v2 v2.0.2 // indirect
	github.com/davecgh/go-spew v1.1.1 // indirect
	github.com/emicklei/proto v1.10.0 // indirect
	github.com/fatih/color v1.13.0 // indirect
	github.com/fatih/structs v1.1.0 // indirect
	github.com/fsnotify/fsnotify v1.6.0 // indirect
	github.com/gavv/httpexpect/v2 v2.15.0 // indirect
	github.com/go-logr/logr v1.2.3 // indirect
	github.com/go-logr/stdr v1.2.2 // indirect
	github.com/go-sql-driver/mysql v1.7.1 // indirect
	github.com/gobwas/glob v0.2.3 // indirect
	github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
	github.com/golang/glog v1.0.0 // indirect
	github.com/golang/protobuf v1.5.3 // indirect
	github.com/google/go-querystring v1.1.0 // indirect
	github.com/google/uuid v1.3.0 // indirect
	github.com/gorilla/websocket v1.5.0 // indirect
	github.com/huandu/go-sqlbuilder v1.21.0 // indirect
	github.com/huandu/xstrings v1.3.2 // indirect
	github.com/imkira/go-interpol v1.1.0 // indirect
	github.com/jpillora/backoff v1.0.0 // indirect
	github.com/json-iterator/go v1.1.12 // indirect
	github.com/klauspost/compress v1.16.3 // indirect
	github.com/labstack/echo/v4 v4.10.2 // indirect
	github.com/labstack/gommon v0.4.0 // indirect
	github.com/mattn/go-colorable v0.1.13 // indirect
	github.com/mattn/go-isatty v0.0.17 // indirect
	github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
	github.com/mitchellh/go-wordwrap v1.0.1 // indirect
	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
	github.com/modern-go/reflect2 v1.0.2 // indirect
	github.com/mpvl/unique v0.0.0-20150818121801-cbe035fff7de // indirect
	github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect
	github.com/nexucis/lamenv v0.5.0 // indirect
	github.com/nxadm/tail v1.4.8 // indirect
	github.com/perses/common v0.20.0 // indirect
	github.com/pkg/errors v0.9.1 // indirect
	github.com/pmezard/go-difflib v1.0.0 // indirect
	github.com/prometheus/client_golang v1.15.1 // indirect
	github.com/prometheus/client_model v0.4.0 // indirect
	github.com/prometheus/common v0.44.0 // indirect
	github.com/prometheus/common/assets v0.2.0 // indirect
	github.com/prometheus/procfs v0.9.0 // indirect
	github.com/protocolbuffers/txtpbfmt v0.0.0-20220428173112-74888fd59c2b // indirect
	github.com/sanity-io/litter v1.5.5 // indirect
	github.com/sergi/go-diff v1.2.0 // indirect
	github.com/sirupsen/logrus v1.9.2 // indirect
	github.com/stretchr/testify v1.8.3 // indirect
	github.com/valyala/bytebufferpool v1.0.0 // indirect
	github.com/valyala/fasthttp v1.34.0 // indirect
	github.com/valyala/fasttemplate v1.2.2 // indirect
	github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
	github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
	github.com/xeipuuv/gojsonschema v1.2.0 // indirect
	github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0 // indirect
	github.com/yudai/gojsondiff v1.0.0 // indirect
	github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 // indirect
	go.opentelemetry.io/otel v1.14.0 // indirect
	go.opentelemetry.io/otel/sdk v1.14.0 // indirect
	go.opentelemetry.io/otel/trace v1.14.0 // indirect
	golang.org/x/crypto v0.8.0 // indirect
	golang.org/x/net v0.10.0 // indirect
	golang.org/x/oauth2 v0.8.0 // indirect
	golang.org/x/sys v0.8.0 // indirect
	golang.org/x/text v0.9.0 // indirect
	golang.org/x/time v0.3.0 // indirect
	google.golang.org/appengine v1.6.7 // indirect
	google.golang.org/protobuf v1.30.0 // indirect
	gopkg.in/yaml.v2 v2.4.0 // indirect
	gopkg.in/yaml.v3 v3.0.1 // indirect
	moul.io/http2curl/v2 v2.3.0 // indirect
)

main.go
package main

import (
	"fmt"

	clientV1 "github.com/perses/perses/pkg/client/api/v1"
	"github.com/perses/perses/pkg/client/perseshttp"
	v1 "github.com/perses/perses/pkg/model/api/v1"
)

func main() {
	entity := &v1.GlobalDatasource{}
	restClient, err := perseshttp.NewFromConfig(perseshttp.RestConfigClient{})
	if err != nil {
		panic(err)
	}
	client := clientV1.NewWithClient(restClient)
	fmt.Println("Hello, 世界", entity, client)
}

while I was looking at my go.mod (used for the poc), I was wondering if moving the e2e tests outside of pkg would reduce drastically all these indirect dependencies that are mostly coming and used for the server and not for the pkg.
And it seems yes it reduced it and it is definitely cleaner:
module github.com/nexucis/pocperses

go 1.20

require github.com/perses/perses v0.31.0

replace github.com/perses/perses => github.com/nexucis/perses v0.0.0-20230531095007-718efebef4e9

require (
        github.com/json-iterator/go v1.1.12 // indirect
        github.com/kr/pretty v0.3.1 // indirect
        github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
        github.com/modern-go/reflect2 v1.0.2 // indirect
        github.com/prometheus/common v0.44.0 // indirect
        gopkg.in/yaml.v2 v2.4.0 // indirect
)

I'm closing this PR. The e2e tests have been moved outside of the pkg package. Like that the list of import will be tinier and more accurate.
If you feel there is still something broken, please let me know


Re-Add _APP Include

I think you accidentally removed the whole include!
Re-added it and changed the view_base class usage

Hmm, very strange. Just committed the change ... i'll check and fix it but about in a week. Far from the working place now :)) Thanks for the note!

Fixed this directly to master. This is a mysterious issue. I had the code in the original system - it was not deleted - I just commited it again. Very strange.
Anyway, could you please check if it works? Probably the PR can be closed

Thanks, well your change is completely identical to this PR, so it should work. Closing


Move requirements lock file into README

I don't want Dependabot PRs to keep being opened on this repo, so I'm moving the full list of requirements and their versions into the README. This way, it's still documented, but it won't trigger Dependabot (I think).

There's at least one critical security vulnerability being flagged now


"Disconnect" not responding when using some DoH servers

Steps

Launch the app
Switch the DoH server to "Snopyta"
Wait for some time and tap "Disconnect"
The app won't respond any more

Root Cause

lwIP device receives DNS request from the app
lwIP holds a global lock and invokes our UDP handler
It calls our DoH server's Query method
We will try to connect to the DoH server, but it might take up to 3 minutes due to routing timeout
User tries to disconnect, and we will call lwIP's Close method
lwIP's Close will block because the global lock is not released

Fixed in #501


Task: Backend server to store data in MongoDB

made the connection string, now we can add queries as needed.


"diskControllerType": "NVME" should be "diskControllerTypes": "NVMe".

[Enter feedback here]
Seems in the sample ARM template in the documentation Enable NVMe Interface. - Azure Virtual Machines | Microsoft Learn, the "diskControllerType": "NVME" should be "diskControllerTypes": "NVMe".

Reference:
https://learn.microsoft.com/en-us/rest/api/compute/virtual-machines/create-or-update?view=rest-compute-2023-09-01&tabs=HTTP#diskcontrollertypes

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

ID: 4716f731-96c3-1a42-c538-065d44b039a0
Version Independent ID: 7aef4bc8-c56a-c39c-a654-765008a3f1d2
Content: Enable NVMe Interface. - Azure Virtual Machines
Content Source: articles/virtual-machines/enable-nvme-interface.md
Service: virtual-machines
Sub-service: sizes
GitHub Login: @iamwilliew
Microsoft Alias: wwilliams

@kingshukbarua
Thanks for your feedback! We will investigate and update as appropriate.

@kingshukbarua
Thanks for reporting this! We have created a PR for this issue and the changes should go live soon.


feat: add compiler to filter policies

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

20 of 23 (86.96%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.01%) to 84.987%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

core/opaevaluator.go
19
22
86.36%

Totals

Change from base Build<PHONE_NUMBER>9:
-0.01%

Covered Lines:
2355

Relevant Lines:
2771

💛  - Coveralls


Backports of #217 and #210 to 1.0.x

Backport of https://github.com/graphite-project/whisper/pull/217 and https://github.com/graphite-project/whisper/pull/210 to 1.0.x branch

Coverage remained the same at 88.577% when pulling f117353c8c420c64a832d50a00930e36dfe2a950 on deniszh:DZ-backports into 03eb41ba89f9cea4723f65c37e2c2e887ff3e250 on graphite-project:1.0.x.


Monit - use standard css classes for status view colors?

@fbrendel would it be possible to customize the colors or even better and simpler just to use the standard css classes ?
regards rené
the problem is that it is not always very appropriate!

@fichtner i don´t know if user @fbrendel is the developer of this.

Good idea. It's more 'GUI integrated'.
@fichtner what do you think?

yes please, see e.g. https://github.com/opnsense/core/commit/fe21186e05f5e

@fbrendel works great :-) thx very much!
regards rené


Unable to upgrade module when using "puppet module upgrade"

If for some reason someone has the latest version of puppetlabs-apt installed, then the dependencies of the latest version of this module cannot be installed at the moment.
Seems that on the updated metadata.json the version related to the puppetlabs-apt module will need to be updated to at least the actual version 2.0.1.
Is there any reason that the version 2.0.1 of puppetlabs-apt may not fit the requirements or affect the actual deployment of version 1.4.0?
My actual use case is that I'm installing a new orchestration system that is being managed from Puppet and I cannot use the latest version of this module.

PR created just in case:
https://github.com/jenkinsci/puppet-jenkins/pull/317

Do you have a stacktrace or error for this? I'm not sure I entirely understand why this is causing problems

Initially this is the error that I'm receiving:
puppet module upgrade rtyler-jenkins --modulepath modules
Notice: Preparing to upgrade 'rtyler-jenkins' ...
Notice: Found 'rtyler-jenkins' (v1.3.0) in /.../modules ...
Notice: Downloading from https://forgeapi.puppetlabs.com ...
Error: Could not upgrade module 'rtyler-jenkins' (v1.3.0 -> latest)
  There are 1 newer versions
    No combination of dependency upgrades would satisfy all dependencies
    Dependencies will not be automatically upgraded across major versions
    Upgrading one or more of these modules may permit the upgrade to succeed:
    - puppetlabs-stdlib
    - puppetlabs-apt
    - puppetlabs-java
    - darin-zypprepo
    - nanliu-staging
    Use `puppet module upgrade --force` to upgrade only this module

This issue happens because I've installed the module puppetlabs-apt before rtyler-jenkins so the system is installing the latest version at this moment of puppetlabs-apt (v2.0.1) and then doesn't permit to upgrade the actual version of rtyler-jenkins (v1.3.0)

@rtyler I've implemented my configuration using librarian-puppet to control the dependencies better in our installation. Based on this, the version installed of puppetlabs-apt will be v1.8.0.
In that way there's no problem to use the module.
In other hand if you give me the green light I would like to propose the code for using the latest version of puppetlabs-apt as it seems a bit more reliable on handling the keys/sources from packages.

We're also experiencing this issue; the symptoms are slightly different - when we've got other modules in the Puppetfile which reference 'puppetlabs-apt', '>= 2.0.0', the dependency resolution fails, and the installation fails. Is there any specific reason puppetlabs-apt is being pinned to 1.8.0?

@madAndroid I've verified the code and the initial issue is related to how the rtyler-jenkins module uses APT to install the packages. Since version 2.0.0 of puppetlabs-apt, some of the ways to declare the sources changed, therefore if you want to install version 1.4.0 of this module, then you will need to install puppetlabs-apt version 1.8.0.
In my previous comment I've asked @rtyler if it's ok to propose the adaptation of the necessary classes in order to be able to use puppetlabs-apt >= 2.0.0, but so far didn't received an answer and didn't wanted to come with proposed code and being invasive on the development of this module.

There are existing PRs for this at #281 and #301, which address the changes required for supporting puppetlabs-apt > 2.0.x - perhaps these PRs can be consolidated to address the issue ( cc @jhoblitt )

@madAndroid I've checked @jhoblitt PR and seems a very good change. Additionally to this I saw the comment in the conversation about the upgrade of puppetlabs-apt but just in case wanted to collaborate and updated PR https://github.com/jenkinsci/puppet-jenkins/pull/317 with also a bit of refactor in order to not to repeat Keys and URL's in the conditions. (cc @tedivm to be aware)

Puppetlabs-apt Module was updated to be backward compatible for declaration of Sources .
Closing this one as is not relevant anymore (Unless someone wants to change the format to the version 2.x)


Way to hide password

I want to avoid to write my database user password into a notebook plain text, is it possible?

Definitely. If you have an environment variable set for DATABASE_URL, postgres_kernel will connect to a database there.


Bump ex_doc version

Please build documentation with newer version of ex_doc

Thanks! I would gladly accept a PR if you would be willing to put one together.


Default stories for Page header do not link correctly.

Currently the default storybook stories for pageheader do not link correctly.
Added stories in PageHeader.docs.json so that it link the storybook stories correctly.
Changes in docs so skipping changeset.

Closes #3669

Thanks for tackling this @electron97!

Hmm, based on the validation it seems like the stories field here needs to be an array or stories from the PageHeader.features.stories.tsx file 🤔
cc @siddharthkp it seems like this file is marked draft as expected, do you happen to know why the default story is not working then?

@joshblack 👋🏻
I was reviewing this PR and the tests failed and I think it is because of the same reason you mentioned above that it is not a feature story id.
From what I understand, we generate default story id for each component and it doesn't take component status into account if I am reading this right
I wonder if such fix would resolve this? 🤔

@broccolinisoup ooo I think it would! Let me know when that PR is good to go, it will help out a ton 🥳

https://github.com/primer/react/pull/3670 fixes the default story id for components that are not in the main bundle (i.e. drafts, deprecated etc) With https://github.com/primer/react/pull/3670 is out, PageHeader docs are now rendered correctly 🎉 I'm closing this PR but please let me know if there is any concern 🙌🏻


"Azure resiliency technical guidance" link is valid?

The link of "Azure resiliency technical guidance" is valid? The link referenced to non-Azure GitHub repository and that repository is archived.

Azure Compute (IaaS) – You must provision additional compute resources in advance to ensure resources are available in another region during a disaster. For more information, see Azure resiliency technical guidance.

https://github.com/uglide/azure-content/blob/master/articles/resiliency/resiliency-technical-guidance.md

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

ID: 09a788e4-0130-73f2-d985-6fc3aec77974
Version Independent ID: a9f4ec3f-f0a3-b050-020b-f487c74c5179
Content: Ensure business continuity & disaster recovery using Azure Paired Regions
Content Source: articles/best-practices-availability-paired-regions.md
Service: multiple
GitHub Login: @martinekuan
Microsoft Alias: martinek

Good catch! This link points to some old copy of source markdown pages. Sorry about that. I think the quick fix is simply to remove the link, which I can handle.
https://github.com/MicrosoftDocs/azure-docs-pr/pull/173931
#please-close


Website Bookmarker

In this we can bookmark our favourite website and link and add a title to that bookmark
On clicking on bookmark, we will be directed to the bookmarked link.
@urvashi-code1255 Please assign me this issue under the label GSSOC'21 .
I would like to contribute to it!

@urvashi-code1255 My last PR is merged . Can I start working on it now?


[Feature][Doc] Add doc about connector-v2 schema feature

Search before asking

[X] I had searched in the feature and found no similar feature requirement.

Description
SeaTunnel support schema config in connector-v2. But we don't have any document to introduce this feature.
We should:

Add new document about schema feature. Introduce why we need schema?  What type we supported at now? How to use schema? When we should use it or not?
Add doc to docs/en/concept.
Link it into website use sidebars.js
(Option) Modify connector doc to link to this doc which use schema.

Usage Scenario
No response
Related issues
No response
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

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

@liugddx PTAL