M1 docker fix

Description
The Dockerfile for localnet needs to be fixed to use the correct library. It is attempting to use the x86_64 when the image is running on aarch64.
closes: N/A

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[x] Targeted PR against correct branch (see CONTRIBUTING.md)
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Wrote unit and integration tests
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[ ] Added relevant godoc comments.
[ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[x] Re-reviewed Files changed in the Github PR explorer
[ ] Review Codecov Report in the comment section below once CI passes

Nice work!  Now our docker setup is ready for the M1 fix.


Check for previous/existing GitHub issues/module proposals

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

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

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

Bicep or Terraform?
Bicep
Module Classification?
Resource Module
Module Name
avm/res/network/network-security-group
Module Details
Migrate the NSG module from CARML to AVM:
https://github.com/Azure/ResourceModules/tree/main/modules/network/network-security-group
Do you want to be the owner of this module?
Yes
Module Owner's GitHub Username (handle)
ahmadabdalla
(Optional) Secondary Module Owner's GitHub Username (handle)
No response

Hi @ahmadabdalla,
Thanks for requesting/proposing to be an AVM module owner!
We just want to confirm you agree to the below pages that define what module ownership means:

Team Definitions & RACI
Shared Specification (Bicep & Terraform)
Module Support

Any questions or clarifications needed, let us know!
If you agree, please just reply to this issue with the exact sentence below (as this helps with our automation 👍):
"I CONFIRM I WISH TO OWN THIS AVM MODULE AND UNDERSTAND THE REQUIREMENTS AND DEFINITION OF A MODULE OWNER"
Thanks,
The AVM Core Team
#RR

NOTE:

This Module Proposal issue MUST remain open until the module is fully developed, tested and published to the relevant registry. Do NOT close the issue before the successful publication is confirmed!
Once the module is fully developed, tested and published to the relevant registry, and the Module Proposal issue was closed, it MUST remain closed.

I CONFIRM I WISH TO OWN THIS AVM MODULE AND UNDERSTAND THE REQUIREMENTS AND DEFINITION OF A MODULE OWNER

Hi @ahmadabdalla,
Thanks for confirming that you wish to own this AVM module and understand the related requirements and responsibilities!
We just want to ask you to double check a few important things and take the next steps before you start the development.
Please use the following values explicitly as provided in the module index page:

For your module:

ModuleName - to name your module
TelemetryIdPrefix - to be used in your module's telemetry

For your module's repository:

Repository name and folder path are defined in RepoURL
Create the GitHub teams defined in the ModuleOwnersGHTeam and ModuleContributorsGHTeam columns and grant them permissions as described here.

In case of a Bicep module, please let the AVM core team know when you created these teams, and we'll help you with assigning the necessary permissions as described here.
In case of a Terraform module, follow the instructions here and assign the necessary permissions.

Grant the right level of permissions for  the AVM core team and PG teams on your GitHub repo as described here.
You can now start the development of this module! ✅ Happy coding! 🎉
Please respond to this comment and request a review from the AVM core team once your module is ready to be published! Please include a link pointing to your PR if available. 🙏
Any further questions or clarifications needed, let us know!
Thanks,
The AVM Core Team

NOTE:

This Module Proposal issue MUST remain open until the module is fully developed, tested and published to the relevant registry. Do NOT close the issue before the successful publication is confirmed!
Once the module is fully developed, tested and published to the relevant registry, and the Module Proposal issue was closed, it MUST remain closed.

[x] Module published.
[x] GitHub teams are available and assigned to their parents.
[x] CODEOWNERS file updated.

Thank you for your work @ahmadabdalla!


Add Prometheus node_exporter config

Fixes #864
This PR adds Prometheus node-exporter configuration for both k8s and docker-compose.
docker-compose
The additions are straightforward:

add a service named nodeexporter that uses the image quay.io/prometheus/node-exporter:v1.1.2
use the configuration options from here
add a Grafana dashboard with the file deploy/docker-compose/grafana/prometheus-node-exporter-dashboard.json
add an entry in the deploy/docker-compose/prometheus.yml in order to scrape the /metrics endpoint of the node-exporter service

k8s
Since the node-exporter will be accessed only internally (through Prometheus itself), and since  the port 9100 is not accessible from outside (e.g. missing from the Security Group rules), we do not need the quay.io/brancz/kube-rbac-proxy container in the demonset pods.
All we need is the daemonset pods up and running, a service that will expose the endpoints (pods) in order for Prometheus to scrape them (through service discovery), Prometheus configuration and a Grafana dashboard that will show the metrics. The additions are:

add the scraping rule for node-exporter in deploy/kubernetes/manifests-monitoring/04-prometheus-configmap.yaml
add a dashboard in Grafana in deploy/kubernetes/manifests-monitoring/20-grafana-configmap.yaml
add the node_exporter required resources for deployment deploy/kubernetes/manifests-monitoring/{24-prometheus-node-exporter-sa.yaml,25-prometheus-node-exporter-daemonset.yaml,26-prometheus-node-exporter-svc.yaml}

LGTM.I tested both deployments( compose and k8s) and everything seems to work correctly.


Scaling panopes down casues large response times

It might be linked to cellect going offline and the api tries sending http get requests for subjects and waiting on the responses. Or it might not be blocking and something else is happening. I dont think api nodes shutting down would cause this spike in ruby time either. @edpaget thoughts?
2 cellect nodes went down
1st one:
2015 March 18 23:31:59 UTC
2015 March 18 23:33:01 UTC
2nd one:
2015 March 18 23:26:28 UTC
2015 March 18 23:27:30 UTC
3 API nodes went down
1:
2015 March 18 23:36:11 UTC
2015 March 18 23:37:15 UTC
2:
2015 March 18 23:35:40 UTC
2015 March 18 23:36:48 UTC
3:
2015 March 18 23:25:39 UTC
2015 March 18 23:26:42 UTC

It looks like its the reload users in Cellect that caused the issue. The workflows_controller#show method spiked at the same time mostly due to the load_user cellect method.

Should we have a timeout on the cellect http request so we spin waiting for the request to timeout?

Maybe we should load users in a sidekiq worker?

Great idea for the workflow async load that totally doesn't need to be in the request response cycle. Not sure about get subjects though. At the least it won't stop the site loading to the home page.

Hmm that might be trickier than I thought unless we want to store the cellect host for users somewhere on the server (redis maybe?.) We need to be able to set the cellect host into the user session.

Can't we just pass this down from the session into the worker via the same method we use for cellect client here?

We need to set it back into the session though. We pass the whole session object to the CellectClient, so it can set new hosts into the session. We don't have access to a user session object in sidekiq since it's not part of the request/response cycle.

Yeah - that's only if the cellect server has disappeared though. We can get the CellectClient to choose the host and set it in the session before serialising the Cellect host ip into the worker, so any previous deaths should get caught and reset in that request cycle.
Chances of the cellect host dying between the request coming in and being reprocessed by sidekiq are slim but it could happen. This operation is an optimization on the user seen set load time so it's nice to get it in before they ask for a subject but not completly necessary for cellect to work. Cellect may take a hit on setting up the data structures and loading data if it comes with a get request as well. I think the worst i saw of this in my benchmarking of 85% seen set for 500K was ~10seconds to load seen set and select the unseen set.


How I can find some docs?

Hey @remy, thanks for the great console component!
Is there are any docs for the component API? How to use it in another React app? Is TypeScript supported?
Thank,
Yury

I was thinking the same thing. We could really use a filled out readme to see how this would be used in applications!

There's not any docs. It's not officially supported (by me) so I've avoided documenting it intentionally. It works, because I've done it - and I know some others have done it too. I'd be happy to add any contributed docs to the project if it takes anyone's fancy.


[ci] Add more TVLA tests

Currently, CI only runs a basic AES test for TVLA. We should extend CI to also test other features.
However, as I am not aware of which features are actually used and should be supported, could somebody (@vogelpi @vrozic @johannheyszl) please help me creating a list of testvectors we would like to have in CI? For example, as the --tttest-step-file feature (mentioned in #284 ) was not mentioned anywhere (documentation or getting started), I was not aware that this is something we would like to have.
I am happy to add all necessary TVLA features to CI and debug them if necessary.

Thanks for opening the issue @nasahlpa . What I would like to cover are the following features:

Select 2 bytes in 2 rounds, e.g. Bytes 0 and 1 in Rounds 0 and 1. This will dramatically reduce the memory footprint and computation time. Note, we need a small change in the argument passing. Shouldn't be tricky though. Currently if selecting bytes and rounds, individual bytes and rounds are supported only. However this is not sufficient as we've just seen.
Compute and memory could further be reduced by choosing fewer samples (not to be confused with fewer traces please).
Plotting figures after computation.
Recomputing the figures after loading ttest-step-file (this is currently broken).
For now let's use the CW database for this. It's fine to switch once ceca.py is ported over to the new format.

I can work on this as well when I have some spare cycles.


Porting app to MacOS (macatalyst) mouse drag, zoom, and context menu not working.

Issue: I'm porting a Maui NET8 app developed in Windows using VS to MacOS. Everything works well except mouse drag, zoom, and context menu. Please note, I'm simply copying the VS folder to my Mac, opening it in VS Code and compiling/debugging it. This has worked with other apps but may not work with ScottPlot.
ScottPlot Version: 5.0.47
Code Sample:
XAML code
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:ScottPlot="clr-namespace:ScottPlot.Maui;assembly=ScottPlot.Maui"
             x:Class="PlottingWithScott.MainPage">

    <Grid ColumnDefinitions="*" RowDefinitions="*" Padding="0,0,0,0" >
        <ScottPlot:MauiPlot x:Name="MauiPlot1" Scale="1" />
    </Grid>
</ContentPage>

and calling this method after InitializeComponent(); in the code behind
        private void SimpleDrawPhasorPlot()
        {
            //Create arrow base coordinates used for all vectors
            Coordinates arrowBase = new(0, 0);

            // create arrow 1
            Coordinates arrow1Tip = new(5, 0);
            CoordinateLine arrow1Line = new(arrowBase, arrow1Tip);

            // add a simple arrow
            var arrow1 = MauiPlot1.Plot.Add.Arrow(arrow1Line);
            arrow1.ArrowFillColor = Colors.Red;
            arrow1.ArrowLineWidth = 0;
            arrow1.ArrowWidth = 5;
            arrow1.ArrowheadLength = 20;
            arrow1.ArrowheadAxisLength = 20;
            arrow1.ArrowheadWidth = 20;
            var dl1 = MauiPlot1.Plot.Add.Text("T(1)", arrow1Tip);
            dl1.LabelFontSize = 28;
            dl1.LabelFontColor = Colors.Black;

            // Preserve X-axis plot scaling during window size changes
            SquarePreserveX rule2 = new(xAxis: MauiPlot1.Plot.Axes.Bottom, yAxis: MauiPlot1.Plot.Axes.Left);
            MauiPlot1.Plot.Axes.Rules.Clear();
            MauiPlot1.Plot.Axes.Rules.Add(rule2);

        }

In the MauiPlot.cs file, the following lines of code can be found:
if (DeviceInfo.Idiom == DeviceIdiom.Desktop)
{
    Touch += MauiPlot_Touch;
    EnableTouchEvents = true;
}
else
{
    EnableTouchEvents = false;
    var panGestureRecognizer = new PanGestureRecognizer();
    ...
}

This was implemented because click events could register more than twice if not distinguished by platform. However, it seems that MacCatalyst is not recognized as Desktop.
Instead, you can create a class that inherits from MauiPlot as follows:
using ScottPlot;
using ScottPlot.Interactivity;
using ScottPlot.Maui;
using SkiaSharp.Views.Maui;
using System.Diagnostics;

namespace YourNamespace;

internal class CustomMauiPlot : MauiPlot
{
    public CustomMauiPlot() : base()
    {
        if (DeviceInfo.Platform == DevicePlatform.MacCatalyst)
        {
            Touch += MauiPlot_Touch;
            EnableTouchEvents = true;
        }
    }

    private void MauiPlot_Touch(object? sender, SKTouchEventArgs e)
    {
        Pixel pixel = new Pixel(e.Location.X, e.Location.Y);
        switch (e.ActionType)
        {
            case SKTouchAction.Pressed:
                {
                    IUserAction action = e.MouseButton switch
                    {
                        SKMouseButton.Left => new ScottPlot.Interactivity.UserActions.LeftMouseDown(pixel),
                        SKMouseButton.Middle => new ScottPlot.Interactivity.UserActions.MiddleMouseDown(pixel),
                        SKMouseButton.Right => new ScottPlot.Interactivity.UserActions.RightMouseDown(pixel),
                        _ => new ScottPlot.Interactivity.UserActions.Unknown()
                    };
                    UserInputProcessor.Process(action);

                    break;
                }
            case SKTouchAction.Moved:
                {
                    IUserAction action = new ScottPlot.Interactivity.UserActions.MouseMove(pixel);
                    UserInputProcessor.Process(action);

                    break;
                }
            case SKTouchAction.Released:
                {
                    IUserAction action = e.MouseButton switch
                    {
                        SKMouseButton.Left => new ScottPlot.Interactivity.UserActions.LeftMouseUp(pixel),
                        SKMouseButton.Middle => new ScottPlot.Interactivity.UserActions.MiddleMouseUp(pixel),
                        SKMouseButton.Right => new ScottPlot.Interactivity.UserActions.RightMouseUp(pixel),
                        _ => new ScottPlot.Interactivity.UserActions.Unknown()
                    };
                    UserInputProcessor.Process(action);
                    break;
                }
            case SKTouchAction.WheelChanged:
                {
                    IUserAction action = e.WheelDelta > 0
                      ? new ScottPlot.Interactivity.UserActions.MouseWheelUp(pixel)
                      : new ScottPlot.Interactivity.UserActions.MouseWheelDown(pixel);

                    UserInputProcessor.Process(action);
                    break;
                }
            default: break;
        }
    }
}

Use this class instead of MauiPlot.

However, it seems that MacCatalyst is not recognized as Desktop.

Wouldn't this be considered a Maui bug? Because I would expect Maui to do the proper input translation based on the idiom. Or is that wrong?

I ask because if this is a Maui bug, I will submit it as such.  NET Maui is not very cross-platform if it doesn't translate mouse/keyboard properly based on  idiom IMO.
Also, will this class be incorporated into ScottPlot or will developers need to create it for themselves?

Sorry for the late response. This should be a bug in MAUI, as it should recognize that it is running on a desktop device. For now, the appropriate solution would be to use the approach I provided by creating a derived class, as I am unaware of the behavior on Apple devices, and there may be other particular behaviors on those platforms.
Additionally, MAUI fails to recognize the keyboard properly. Even to make the window respond to the mouse wheel, I had to use events from a SkiaSharp canvas, as MAUI does not handle them correctly.

I ask because if this is a Maui bug, I will submit it as such. NET Maui is not very cross-platform if it doesn't translate mouse/keyboard properly based on idiom IMO.

I don't think this is a Maui bug, since Microsoft seems to know about it. They have this article on it here: https://learn.microsoft.com/en-us/dotnet/maui/mac-catalyst/user-interface-idiom?view=net-maui-9.0
TLDR: Mac Catalyst apps default to the iPad UI idiom, you can change this by modifying your Info.plist file. It looks like it comes with some downsides, as some UI controls seem to only be fully supported in one idiom or the other. I think this default behaviour is because Mac Catalyst was created for moving iPad apps over to Mac, it's just unfortunate since Mac Catalyst is the only supported Maui platform on MacOS, likely stemming from Maui's roots as a mobile platform.
If you want to still use iPad UI idiom then you'll have to override MauiPlot's idiom-specific behaviour.


fix(hyperscan): Handles the InvalidError exception during db loading.

This PR introduces logic to handle the InvalidError exception during loading the cached hyperscan db and fixes #4053.
According to the documentation, this error (InvalidError) is only returned when the function detects an invalid parameter. Since loaddb only takes one parameter(the serialized Hyperscan database), this error indicates a problem with the input ByteString. The current fix addresses this by triggering a full database recompile whenever this exception is encountered.

Sounds good, thanks. Merging. We can cut a release if we want or just let it be. This is rare enough, I think we can wait, and I think we have another issue about not recognizing citations that we'll need to pull in soon anyway.


0.21 fails to build workspace project from crate root: "could not find the root package"

Trunk 0.20 managed to build my workspace project's wasm project from the workspace root, using the following command line: trunk build ./src/foo-ui/index.html. Now, on trunk 0.21.4, that results in the following error:
:;    ~/.cargo/bin/trunk build ./src/foo-ui/index.html
2024-11-08T17:02:50.706597Z  INFO 🚀 Starting trunk 0.21.4
2024-11-08T17:02:51.198526Z ERROR could not find the root package of the target crate

I notice that trunk isn't searching for a Trunk.toml (and Cargo.tom) relative to the index.html file provided - only the current directory. Is there a way to make it search there again? The build process I'm using doesn't make it easy to invoke trunk from a subdirectory.

I experimented with some options a bit and it looks like --config solves half of what I need:
:;    ~/.cargo/bin/trunk build --config=src/foo-ui/Trunk.toml ./src/foo-ui/index.html
2024-11-08T17:49:07.855806Z  INFO 🚀 Starting trunk 0.21.4
2024-11-08T17:49:07.861348Z ERROR error getting the canonical path to the build target HTML file "/Users/asf/Hacks/foo/src/foo-ui/./src/foo-ui/index.html"
2024-11-08T17:49:07.861529Z  INFO   1: No such file or directory (os error 2)

but:
:;    ~/.cargo/bin/trunk build --config=src/foo-ui/Trunk.toml ./src/foo-ui/index.html
2024-11-08T17:49:07.855806Z  INFO 🚀 Starting trunk 0.21.4
2024-11-08T17:51:17.755288Z  INFO 📦 starting build
2024-11-08T17:51:17.761751Z  INFO spawned hook yarn command_arguments=["install"]
2024-11-08T17:51:17.761762Z  INFO spawning hook stage=PreBuild command=yarn
yarn install v1.22.22
[1/4] 🔍  Resolving packages...
success Already up-to-date.
✨  Done in 0.03s.
2024-11-08T17:51:17.902947Z  INFO finished hook yarn
   Compiling proc-macro2 v1.0.82
   Compiling wasm-bindgen-shared v0.2.93
[...success!]

So it sounds like trunk is looking for the HTML file relative to the config option's directory, rather than relative to the directory where trunk was invoked... if the index file is a relative pathname:
:;    ~/.cargo/bin/trunk build --config=src/foo-ui/Trunk.toml `pwd`/src/foo-ui/index.html
2024-11-08T17:49:07.855806Z  INFO 🚀 Starting trunk 0.21.4
2024-11-08T17:51:17.755288Z  INFO 📦 starting build
2024-11-08T17:51:17.761751Z  INFO spawned hook yarn command_arguments=["install"]
2024-11-08T17:51:17.761762Z  INFO spawning hook stage=PreBuild command=yarn
yarn install v1.22.22
[1/4] 🔍  Resolving packages...
success Already up-to-date.
✨  Done in 0.03s.
2024-11-08T17:51:17.902947Z  INFO finished hook yarn
   Compiling proc-macro2 v1.0.82
   Compiling wasm-bindgen-shared v0.2.93
[...success!]

That's really confusing /:

Having the same problem


Add genesis files

Description
OP requires genesis files to be deployed from genesis. See OP devnet: https://github.com/ethereum-optimism/optimism/blob/develop/bedrock-devnet/devnet/init.py .
Tasks

[ ] Add genesis files to repo

Approach
Copy paste in hardcoded files from .devnet (this is the approach I think I'm going with)
In the .devnet folder after running make devnet up there are json files. I believe we could simply just copy an instance of these files in. Then using the embed package we can load them into the appropriate structs.
Alternative approaches
Same way devnet does it (don't like this approach)
We could just call the same code the devnet is calling
func generateL1Genesis(deployConfigPath, l1AllocsPath, l1DeploymentsPath, outfile string) error {
    ctx := cli.NewContext(nil, &cli.FlagSet{}, nil)
    ctx.Set("deploy-config", deployConfigPath)
    ctx.Set("l1-allocs", l1AllocsPath)
    ctx.Set("l1-deployments", l1DeploymentsPath)
    ctx.Set("outfile.l1", outfile)

    // Call the L1 genesis action directly
    return genesis.Subcommands[0].Action(ctx)
}

Naively trying to run this code threw a lot of errors and in general this way feels a bit hacky so I abandoned the approach right away. I'm uncertain if this approach will work well given mocktimism is currently not in the optimism repo and the current devnet uses foundry to deploy the contracts not golang.
Copy paste in hardcoded files from .devnet (this is the approach I think I'm going with)
In the .devnet folder after running make devnet up there are json files. I believe we could simply just copy an instance of these files in. Then using the embed package we can load them into the appropriate structs.
Generate using op-chain-ops (This might possibly be the correct approach)
To get a genesis file we simply need the DeployConfig struct. We could fill in this struct with hardcoded values and then pass this into BuildL1DeveloperGenesis. This seems to be the main way the OP repo does it
Related consideration - Contract deployments
Contract deployments. Currently mocktimism is built for anvil so we have foundry as a dependency. We could deploy the contracts with foundry like the devnet does. In general this feels unecessary. I think just deploying the artifacts using the generated op-bindings code makes a lot more sense

mark
21 minutes ago
I think dynamic gen using existing codepaths will make breaking changes/newly added smart contracts just work
Will
18 minutes ago
Tyty this is exactly why I wanted to make sure I ran this by ya'll. What's the best entrypoint for existing code paths?  My intuition is it's not the op-node cli (which the python script calls) but instead it's actually the BuildL1DeveloperGenesis and the l2 equivelent in op-chain-ops
Will
13 minutes ago
Best way to deploy the contracts is another open question. My plan was to use op-bindings.  But the more DRY way of doing it I think would be to use our foundry scripts. The big downside of using foundry scripts though is we ultimately want to distribute this as a single binary so using the foundry scripts in that context I believe will require some hacks such as copying contracts-bedrock into a temp directory (which might be ok)
mark
10 minutes ago
The opnode just wraps those functions
New
mark
9 minutes ago
I believe there are ways to load state into anvil via rpc
:true:
1
mark
8 minutes ago
If we spit out the genesis json dynamically then loaded it via rpc, could that work well?
Will
6 minutes ago
Yea there are in fact a thing we are implementing is the ability to dump the entire state and load the state of all chains spun up in the devnet. So I could generate genesis put it in the same place this feature would be putting the files and then once the files are there use the same code paths to load the genesis state that the state dump state loading code would be using.
Will
4 minutes ago
Looking at the deploy scripts I am actually leaning more towards I'm gonna have to find a way to reuse these even if it's a bit hacky. It seems not good to maintain a seperate way of deploying the contracts
Will
3 minutes ago
Actually a way of not making this not hacky is instead generating the genesis state including the l1 contracts in the build of mocktimism instead of at runtime (edited)
Will
1 minute ago
^I really really really like this way of doing it. Once I move mocktimism into the monorepo this makes it so I can 100% reuse existing code and for now I can just add OP as a submodule


Help documentation for user interface (incomplete)

User Interface
General
(gear-icon) Settings
Access point-cloud settings
Navigation
(heli-icon) Fly Navigation
ASDW or Arrows: Move freely through scene
Mouse: rotate camera
(indiana-icon) First-Person Navigation
WS: Move back and forth in first-person view
Mouse: rotate camera
(play-icon) Play Mode
Automically move along a preconfigured demo path
Measurement
(toolkit-icon) Toolkit
Click to open measuring instruments
(distance-icon) Distance
Left Mouse: Insert Measurement Point
Right Mouse: Finish insertion
Drag&Drop: Move Measurement Points
Distance between measurement points will be displayed on the edge.
(area-icon) Surface Area
Left Mouse: Insert Measurement Point
Right Mouse: Finish insertion
Drag&Drop: Move Measurement Points
Distance between measurement points will be displayed on the edge and the total area on the centroid. The area is calculated on the ground plane. The height does not affect the result. Crossings should be avoided.
(volume-icon) Volume
Left Mouse: Insert Volume or Select Inserted Volume
Switch between translation (icon), scale (icon) and rotation (icon) mode
Keyboard shortcut: E, R, T
Volume will be displayed on the objects centroid.
(hightprofile-icon) Height Profile
Left Mouse: Insert Profile Marker
Right Mouse: Finish insertion
Drag&Drop: Move Profile Marker
ctrl + Drag&Drop: Drag upwards to increase or downwards to decrease the profile width
Depending on the Clip Mode, points inside the profile will be highlighted or points outside the profile will be clipped.
(clipvolume-icon) Clip Volume
Left Mouse: Insert Volume or Select Inserted Volume
Switch between translation (icon), scale (icon) and rotation (icon) mode
Keyboard shortcut: E, R, T

Help documentation is implemented.


custom dwm on my tp14s

Applied the autostart.sh patch to setup xrandr and early X junk
Added a lot of custom keybinds, etc.

What I should probably do, though, is rewrite history and extract patches of stuff I'm happy with and make sure they apply cleanly on top of sl's master. Then, apply patches from patches/. I can use quilt and stuff like I did before.


An image becomes invalid in "Azure Active Directory v2.0 and OAuth 2.0 On-Behalf-Of flow"

An image becomes invalid in Azure Active Directory v2.0 and OAuth 2.0 On-Behalf-Of flow
https://github.com/MicrosoftDocs/azure-docs/blame/master/articles/active-directory/develop/v2-oauth2-on-behalf-of-flow.md#L39

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

ID: 3cd73bb0-f8d5-84f7-3fc5-2022f8392a20
Version Independent ID: d598130d-ba3a-0078-d4b6-1e47fad5ea41
Content: Azure AD v2.0 OAuth2.0 On-Behalf-Of flow
Content Source: articles/active-directory/develop/v2-oauth2-on-behalf-of-flow.md
Service: active-directory
GitHub Login: @CelesteDG
Microsoft Alias: celested

@tonyxu-io Thanks for the feedback. We are actively investigating and will get back to you soon.

@tonyxu-io Thanks for reporting! I have made necessary modifications to fix the issue. Thanks.


working version of vercel app

The existing file did not work, nor did it correspond to the implemented vercel_bot

Do you also want to adjust the README?

@KnorpelSenf I can, but it still seems correct to me, not sure anything more is needed?
And the top README already mentions the vercel app, now 👌


Gmaps fix

In short, it will check if google maps attribute is valid (blank is not valid). If so, it will enable Google Maps basemaps.
Possible cases with the user:

Feature flag enabled and google_maps_key attribute empty -> only custom basemaps

Feature flag enabled and google_maps_key attribute filled -> custom and gmaps basemaps

Feature flag disabled and google_maps_key attribute empty  -> Here, CartoDB, Stamen and custom basemaps.

Feature flag disabled and google_maps_key attribute filled  -> GMaps basemaps.

Same behaviour belonging to an organization. Also, these tests have been run without last @juanignaciosl patch in central.

Frontend tests were OK :+1: (details)

cc @javisantana

I think here => https://github.com/CartoDB/cartodb/blob/gmaps-fix/app/models/carto/user.rb#L112
we should do
if self.organization.google_maps_key.blank?
  self.google_maps_key
else
 self.organization.google_maps_key
end

to avoid false ruby checking

https://github.com/CartoDB/cartodb/commit/5f064fdb2ef4ba8499aed0d14c99ef91cc36b11d

Frontend tests were OK :+1: (details)


No support for videos

Patreon supports quite a lot of different video formats and methods for their users to upload videos, each needing their own handler. There's a few other video downloader extensions that already do a good job of downloading video, so I recommend making use of them.
Release v1.1.1 adds a note about videos.


Move renovate config to .github/renovate.json5

Codecov Report
Patch and project coverage have no change.

Comparison is base (3cb3e8b) 100.00% compared to head (261ec4d) 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #43   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            2         2
  Lines          228       228
=========================================
  Hits           228       228

Flag
Coverage Δ

unittests
100.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Is there a way to globally set per-page number?

By default, per-page number is 30. I can set it when I am returning my results but that's a little hard to manage if I have lots of APIs. Is there a configuration to globally set a default per-page number? Thanks

Sorry I find I can set it up in will_paginate. I will close this issue. Thanks


First round of feedback

Hey hey :) My name is Brian Egan and I've been asked by Nilay and the Flutter team to review the GDE workshops. I've just completed a review of your workshop and wanted to provide feedback.
I'm just here to help out, so please feel free to accept any feedback you find helpful and reject any feedback that doesn't make sense to you! I won't be offended :)

Overall, the workshop covers a really nice topic!
The writing is fun and easy to read
The Firebase setup instructions are clear and the GIFs are very helpful
Solution in Step 2 did not work for me. I think it has to due with the fact the list item expects a users object and more? Those objects are not discussed in the instructions.
In general, please think about the amount of knowledge you have as the workshop author vs the knowledge the workshop taker has. For example: voting. The voting code is found in the snippet, but is never discussed, and the reader is actively discouraged from focusing on the supporting code. I'd consider removing the voting stuff from early steps and move it to it's own step later on.
Overall, please keep in mind that the snippets are quite long and the reader has not written them, which means they lack knowledge compared to you as the author. It felt a couple of times like we reached an "ah-ha" moment in the instructions tht was based on code written in the snippet, but was left confused as the taker like I'd missed a step because I hadn't written that code myself.
Total time to take workshop: 1hr 13minutes

Hey Brian,
I will go through and push updates soon, thanks for feedback! everything mentioned is so valid.
Question: is the total time okay or it's longer than it should be?

Yay! Glad the feedback is helpful :)

Question: is the total time okay or it's longer than it should be?

From my perspective, it didn't feel long! Most of the workshops have taken me 1 - 2 hours to complete.

Hey @brianegan, I've modified the workshop according to your notes. There was a bug in step 2 and it wasn't working, thanks again for finding out, I fixed it and added more instructions.


Blank page when first StatusBay initialisation

When kubernetes table is empty, we seeing a blank page
consol error:
react-dom.production.min.js:196 TypeError: Cannot read property 'map' of null
    at U (MultiSelect.js:112)
    at pa (react-dom.production.min.js:154)
    at Ps (react-dom.production.min.js:259)
    at Al (react-dom.production.min.js:230)
    at Ml (react-dom.production.min.js:229)
    at wl (react-dom.production.min.js:223)
    at react-dom.production.min.js:121
    at t.unstable_runWithPriority (scheduler.production.min.js:18)
    at Xi (react-dom.production.min.js:120)
    at Qi (react-dom.production.min.js:121)
gs @ react-dom.production.min.js:196
MultiSelect.js:112 Uncaught (in promise) TypeError: Cannot read property 'map' of null
    at U (MultiSelect.js:112)
    at pa (react-dom.production.min.js:154)
    at Ps (react-dom.production.min.js:259)
    at Al (react-dom.production.min.js:230)
    at Ml (react-dom.production.min.js:229)
    at wl (react-dom.production.min.js:223)
    at react-dom.production.min.js:121
    at t.unstable_runWithPriority (scheduler.production.min.js:18)
    at Xi (react-dom.production.min.js:120)
    at Qi (react-dom.production.min.js:121)

this issue was resolved


WIP: drivers page

Just started working on drivers. I create new page with route /drivers.
Need your input for the UI and the flow

Unfortunately we can't merge this. It needs to be more complete.


Expect REQUEST_URI to preserve the query string

Following #1781, for which I forgot to include the reproduction steps. Sorry about that.
The tests should be working assuming the query string was preserved in REQUEST_URI, but they don’t. Here’s what I get instead:
        response = client.get("/?a=b")
>       assert response.get_data(as_text=True) == "/\n/?a=b"
E       AssertionError: assert '/\n/' == '/\n/?a=b'
E           /
E         - /?a=b
E         + /

I’m making this pull request a draft as you probably don’t want to merge it until the tests pass.

Closing, your commit with the tests was pulled into #1853.


Platform 110

Description of proposed changes
What does this pull request accomplish? Why should it be integrated?
Loop added to form inputs to allow users to add multiple of the same question on a form (ie. perscriptions)
Checklist
Put an x in the boxes that apply.

[x] My lint and unit tests pass locally with my changes
[ ] I have added tests that prove my changes work (if applicable)
[ ] I have added or updated necessary documentation (if appropriate)

Additional comments
Is there anything else you want us to know?

@jamccomb92 one last thing and this should be good!


fix: nav bar menu width (dw-132)

fixes dw-132

I am extremely disappointed to realize that this PR was merged without starting over from a clean fork @BOBOtoTHEmoon @Yembot31013.
By merging this PR, you reintroduced the 37 MiB video file that #141 purged.


Temporarily override the improper_ctypes warning #62.

The remaining warnings are from types in
core-foundation(CGAffineTransform) and core-graphics(CFNumberRef). When
they are rectified the warnings can be turned back on.

This change is

I really dislike this solution, but I want to dig into the warnings produced by core-foundation and core-graphics first.
I'll need some guidance on the core-foundation work, as this commit reverts the foundation structs to tuple-structs, which seem to be the root cause of the warning.
Alternatively I can investigate whether tuple-structs should actually be triggering this warning to begin with: found zero-size struct in foreign module, consider adding a member to this struct.

We already have the warnings present; why do we need to hide them while we investigate errors in other repositories?

And yes, I think it would be worth talking with the Rust compiler developers about whether types like this should be considered FFI-unsafe:
struct Foo;
struct FooRef(*const Foo);

In fact, the discussion in https://github.com/rust-lang/rust/issues/34798 may be relevant.

Similarly, https://github.com/rust-lang/rust/issues/27303.

Yeah fair call - I can cancel this PR.
I was reading that discussion along with rust-lang/rust#27303.
It seems odd that the zero-size struct warning is firing for tuple-structs.

Closing. Warnings are from core-foundation and core-graphics types.


Skip to the content

When keyboard-only users interact with your site they use the tab key to jump from link to link. If you have a lot of links at the first of your page in your header or in a menu, they must tab through those every time they come to a new page just to get to the main content. Providing a skip to main content link allows them to easily bypass this.

Checklist

[ ] Origin Story
[x] Requesting agency
[x] Name
[x] About this component
[x] Description
[x] Examples (ca.gov)
[ ] Examples (design systems)
[ ] Features

Requesting agency
Who is requesting this component?
CDT, California State Template development unit
Origin Story
What prompted this proposal?
Having skip to the main content link is accessibility requirement (WCAG 2.4.1)
Name
What should we call this component in conversation?
Skip to the main content
About this component
Please tell us more about the component.
The objective of this technique is to provide a mechanism to bypass header links and main navigation links are repeated on multiple Web pages by skipping directly to the main content of the Web page. The first interactive item in the Web page is a link to the beginning of the main content. Activating the link sets focus beyond the other content to the main content.
Description
Describe how this component will be used.
When keyboard-only users interact with your site they use the tab key to jump from link to link. If you have a lot of links at the first of your page in your header or in a menu, they must tab through those every time they come to a new page just to get to the main content. Providing a skip to main content link allows them to easily bypass this.
Examples from ca.gov properties
(Can be screenshots, a few examples is great. Please include URLs if the examples are live.) This helps everyone understand what you are referring to.
https://template.webstandards.ca.gov/
Examples from other design systems
If this component is commonly found in other design systems, please link to it. This helps everyone understand real-world examples of this idea.
https://designsystem.digital.gov/
Features
Critical features to support initially.

Should be first focusable element on the page.
Should be hidden on initial view but visible on focus.
Should be linked to the main content tag

Thank you!
Learn more about our review process.

Nice!
Super helpful to have some notes on the State's standards to refer to. I'm adding a question on the thread.
Question: This is a small component that would be included in the page layout?


New package: JackMacWindows.CraftOS-PC version 2.7.5

Description

Resolve https://github.com/microsoft/winget-pkgs/issues/115055

Checks

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.5 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

https://github.com/microsoft/winget-pkgs/pull/123726#issuecomment-1779868368

Failed ... Discussion is created for help.

https://github.com/MCJack123/craftos2/discussions/333

Originally posted by @Dragon1573 in https://github.com/microsoft/winget-pkgs/issues/123726#issuecomment-1781403891

Thanks - please feel free to @ me when the discussion is resolved.

@stephengillie - The discussion is resolved.

Unfortunately it does not appear to be possible to stop the program from automatically launching. There is an option in Inno Setup's source code to disable auto-launching; however, this interferes with the auto-updater, which expects the app to relaunch after updating. I also cannot disable the analytics box for user privacy reasons. I may investigate alternate solutions involving runtime variables if possible, but for the time being you will have to tell users to close the app manually.
Originally posted by @MCJack123 in MCJack123/craftos2 discussion-333


[ALL] Enable Two-factor authentication

https://poac.pm/setting/security
or Google Authenticator

unnecessary


Correctly parse zero-length strings

Add a test for zero-length strings
Ensure zero-length strings are parsed correctly
Prior to this, a zero-length string would cause the parser to incorrectly interpret the next byte as a string character
This isn't the cleanest solution, but as far as I can tell it works and doesn't break anything.

Wow that's great, LGTM👍
Thanks for fixing bugs, improving the test code, and contributing.

How about extract method
like this
    def zero_length_delimited_handler(self):
        self.parsed_data.append(
            ParsedResult(
                field=self.target_field,
                wire_type="string",
                data=""
            )
        )
        self.state = State.FIND_FIELD
        self.buffer.flush()

    def parse_length_delimited_handler(self, chunk):

        ...
        self.buffer.append(value)
        data_length = self.get_buffered_value()
        if data_length == 0:
            return self.zero_length_delimited_handler()

        self.fetcher.set_data_length(data_length)
        self.state = State.GET_DELIMITED_DATA
        self.buffer.flush()

Looks much better to me. Added a commit with this solution.

Thanks your contribution


Daily Problem Solved

Oct 19 : Daily Problem Solved. @Coding-Cartel/cartels

looks good . good approach used


Extend sample with setting a custom attribute in B2C?

Hi,
The example is clear but how to create a user with a custom attribute value?
So let's say I have a custom attribute called "GlobalAdmin".
How can I create a new user with a value for this attribute.
If it is not possible via the graph sdk, how to do this with the new graph?
With the old graph you can do it as described in my blogpost
Thanks

OK... found the solution.
Maybe a good idea to add this to the sample project?
internal class B2cCustomAttributeHelper
{
    internal readonly string _b2cExtensionAppClientId;

    internal B2cCustomAttributeHelper(string b2cExtensionAppClientId)
    {
        _b2cExtensionAppClientId = b2cExtensionAppClientId.Replace("-", "");
    }

    internal string GetCompleteAttributeName(string attributeName)
    {
        if (string.IsNullOrWhiteSpace(attributeName))
        {
            throw new System.ArgumentException("Is mandatory", nameof(attributeName));
        }

        return $"extension_{_b2cExtensionAppClientId}_{attributeName}";
    }
}

internal async Task<string> CreateUser(GraphServiceClient graphClient, CreateUserRequest request)
{
    string b2CInstanceName = "foobar.onmicrosoft.com";
    string b2cExtensionAppClientId = "573c14fb-611f-4ee1-867a-11024853200d";
    string b2cCustomAttributeHelper = new B2cCustomAttributeHelper(b2cExtensionAppClientId);
    string globalAdminCustomAttributeName = b2cCustomAttributeHelper.GetCompleteAttributeName("GlobalAdmin");

    // Fill custom attributes
    IDictionary<string, object> extensionInstance = new Dictionary<string, object>();
    extensionInstance.Add(globalAdminCustomAttributeName, true);
    // Add multiple custom attributes here...

    // Create user
    var result = await graphClient.Users
        .Request()
        .AddAsync(new User
        {
            GivenName = request.FirstName,
            Surname = request.LastName,
            DisplayName = request.FirstName + " " + request.LastName,
            Identities = new List<ObjectIdentity>
            {
                new ObjectIdentity()
                {
                    SignInType = "emailAddress",
                    Issuer = b2CInstanceName,
                    IssuerAssignedId = request.Email.ToLowerInvariant()
                }
            },
            PasswordProfile = new PasswordProfile()
            {
                Password = PasswordHelper.GenerateNewPassword(4, 8, 4)
            },
            PasswordPolicies = "DisablePasswordExpiration",
            AdditionalData = extensionInstance
        });

    return result.Id;
}

Excellent, thanks @LockTar! Would you like to submit a PR, by chance?

How to query existing custom attributes?
I expected them in AdditionalData but it's not there.
Then I tried to use
_graphClient.Users.Request().Expand("extensions").GetAsync();
Still no luck.

How to query existing custom attributes?
I expected them in AdditionalData but it's not there.

I'm not sure but I think you need the extensions api for that.

Excellent, thanks @LockTar! Would you like to submit a PR, by chance?

I think I can find some time for it. Then there must be some remark in the Readme that the new call assumes there is a custom attribute with a specific name.

Sample:

Thanks again for #4, @LockTar! :rocket:


Attempted to call an undefined method named "id" of class "AppBundle\Entity\User".

Hi,
I am trying to enrich activities but the getter called is by default id() (Enrich.php#L144) and on my entities it's getId().
Do you think that the best way to handle that is:

Use an Interface to get the id? (I can create a PR for this)
Make my own Enrich?

Best regards

I am not sure how you could solve this by adding an interface, can you share an idea about this? The quick and simple solution in this case would be to add id method to your entities and let that return getId()

@tbarbugli yes sure, for example something like
interface EnrichedReference {
    public function getId();
}

class MyEnrichedObject implements EnrichedReference {
    ...
    private $id;
    ...
    public function getId() ...

and $item here https://github.com/GetStream/stream-doctrine/blob/master/src/Enrich.php#L143 could be a EnrichedReference
Maybe my solution is a little bit complex :)


how to change background color in widget numeric?

Thanks @godind , for all your answers.. : )
Just a quick question.. I want to use de moderTheme, however I would like the Divs to have a black background instead of the grey... I have looking many files and I dont find where and what to change to have black background.

Could you tell me which file do I have to look at to change the grey color to the #0000000 ??

To change color schema, use the provided themes. What are you trying to do exactly? Build a custom version of KIP?

To obtain help on coding practices, source code, etc. please do not use Issues. Those are meant to track product bugs and enhancement requests.
Instead use the kip Signalk-dev Slack channel. You will find many ressources to assist on all development questions regarding Signal K and related apps. I will close this issue. See you on Slack.

Yes, just what I explained in the picture aboved. I want to use the moder-Theme but with black background


[material-ui][Text Field] Label transformation issue with font size change

Steps to reproduce
Link to live example: Disclosure not possible due to data protection guidelines
Steps:

Setup only the minimum required packages (react, mui, emotion, I use vite)
Implement the TextField component, specify a value and a label
Change the font-size in the browser settings to, for example, 72

Current behavior
When the font size in the browser is changed, the TextField's Label does not transform correctly. It appears to be using pixels for sizes, leading to issues with responsiveness see attached image.

Expected behavior
The TextField's Label should transform appropriately when the font size in the browser is changed. It should be responsive and adapt to different font sizes.
Context
I am trying to create a responsive user interface, and the issue with TextField's Label transformation is affecting the overall layout and user experience. This component is used in many places for maintain the personal and business related profile.
Your environment

npx @mui/envinfo
  Using Google Chrome Version 121.0.6167.85 (Offizieller Build) (64-Bit)
  System:
    OS: Windows 10 10.0.19045
  Binaries:
    Node: 20.10.0 - C:\Program Files\nodejs\node.EXE
    npm: 10.2.3 - C:\Program Files\nodejs\npm.CMD
    pnpm: Not Found
  Browsers:
    Chrome: Not Found
    Edge: Chromium (120.0.2210.144)
  npmPackages:
    @emotion/react: ^11.11.3 => 11.11.3
    @emotion/styled: ^11.11.0 => 11.11.0
    @mui/base:  5.0.0-beta.33
    @mui/core-downloads-tracker:  5.15.6
    @mui/material: ^5.15.6 => 5.15.6
    @mui/private-theming:  5.15.6
    @mui/styled-engine:  5.15.6
    @mui/system:  5.15.6
    @mui/types:  7.2.13
    @mui/utils:  5.15.6
    @types/react: ^18.2.43 => 18.2.48
    react: ^18.2.0 => 18.2.0
    react-dom: ^18.2.0 => 18.2.0
    typescript: ^5.2.2 => 5.3.3

Search keywords: textfield, label, fontsize, transform, pixel, chrome

Hey @NiklasVeda, thanks for the report.
I can confirm the behavior. It behaves good enough up until the font size is ~30:

After that, we get collisions, and at 72, it looks bad

The questions would be:

What should be the behavior
Up to what size do we need to support? Is 72 too much? Up to 72? More than 72?

What do you think @zanivan @danilo-leal?

@NiklasVeda ,
is it a valid case to change the browser font-size to a large value like 72?
I think even in large monitors the 72px font size will break the whole design not only the input fields.

Hello @mohamedsaiedd,
thanks for reaching out so quickly.
Changing the browser font size to 72 is valid for accessibility reasons, particularly benefiting visually impaired users, adhering to accessibility guidelines, accommodating an aging population, and addressing user preferences.
The browser, such as Firefox and Chrome, specify 72 as the maximum value and we would like to support this because of the things mentioned above.

Hi there!
Thanks for the report @NiklasVeda, good to see people worried about a11y 🙌
However, I believe 72 might be too big for this purpose. Chrome's 'very large' font size is 24px, and it's the same max size that's offered in safari. Also, for WCAG a large text size is considered 18 points, what can typically be translated to 24px.
WCAG also tells us that we should optimize for the 200% zoom in the page, meaning that up to 48px it must be working perfectly.
So, I would set the supported max size as 24px (set by browser) + 200% zoom—unless we find some specific a11y guideline stating something else.

Here's a quick audit:
1. font-size: 24px

2. font-size: 48px

3. font-size: 24px + 200% zoom

I would say font-size 48px is the only one that looks bad. It's important to note that font-size 24px + 200% zoom didn't turn out the same as 48px, as the former scales everything and the latter only the font.
So, we're covered if the goal is to optimize for 24px + 200% zoom. If the goal is to optimize for 48px, we must fix it.
@zanivan

Having it optimized for 24px + 200% zoom should be enough—and then we keep monitoring the a11y guidelines just in case.

Hey everyone,
Thanks for the lively discussion.
Understanding SC 1.4.4: Resize Text (Level AA)
As I understand it, with a base of 16px and a scaling of 200%, we have a final value of 32px.
I think that the value 200 does not only refer to the zoom but also to the scaling of the font size itself.

Hey @NiklasVeda, I think I've expressed myself poorly previously with the 48px example, so apologies for that.
text scaling and page zooming are two different things. The text scaling is when you change the default font size, like changing it from the default 16px to  “very large” 24px. This will mainly affect rem declarations, since it's a relative unit. The zoom will affect everything except the viewport units. This article is very good to explain the best use case for each unit 😄

Thanks @zanivan
Exactly. The linked WCAG Success Criterion 1.4.4 refers to text scaling. To meet this success criterion, it's mandatory to support text scaling of up to 200%. (Above 200%, the working group recommends page zoom instead of text resizing.)

I'm closing this as we're optimizing for 24px + 200% zoom, which currently works.


Bump riak_core to 2.1.1, repoint erlydtl dep, fix xref.

:+1:  7a15aab

@borshop merge

:+1: 210b455 r=zeeshanlakhani

create jira issue


Remove HtmlAgilityPack and handle html parsing via Regex

@pournasserian based on our conversation we decided to stick with HtmlAgilityPack.


R program to convert string to alternatingcase

📑 Description
R program to convert string to alternating case.
Alternating case is a style of writing in which each letter is converted to its opposite case.
🐞 Related Issue
Closes https://github.com/codinasion/codinasion/issues/3982
📋 Explanation of changes

Added R function (convert_to_alternating_case) to convert a string to alternating case.
Provided an example showcasing usage of the function.
Printed the updated string as the output.

@RiteshK-611 @0ME9A @victoriacheng15  @hi-Kartik2004 @anandfresh  Can you please review and merge this PR?


AWS Lambda Error

Hey there!
i try to get sharp with poppler support working on AWS lambda. In your installation instructions you have explained how to build sharp for lambda. This will download a pre build vips without the poppler support. Well, i have build my own docker image based on the lambci/lambda:build-nodejs8.10 image and installed all dependencies included all poppler stuff.
When i get into the docker container with the interactive shell and install sharp with the following command:
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${TARGET}/lib/pkgconfig"
npm install sharp

Sharp detects the globally installed vips:
info sharp Detected globally-installed libvips v8.6.4
info sharp Building from source via node-gyp

My little test-script to convert a PDF to PNG works great (see my test-repo):
LD_LIBRARY_PATH=${TARGET}/lib node index.js

Then i have created a simple lamda and bundled the include, lib, bin folder into it (builded in the custom docker container). Also installed sharp inside the container, placed in the deployment package in the compiled folder and use inside the lamda handler require('../compiled/sharp'); to get the precompiled sharp.
The deployed lambda crashes with the following error:
{"errorMessage":"libvips-cpp.so.42: cannot open shared object file: No such file or directory","errorType":"Error","stackTrace":["Object.Module._extensions..node (module.js:681:18)","Module.load (module.js:565:32)","tryModuleLoad (module.js:505:12)","Function.Module._load (module.js:497:3)","Module.require (module.js:596:17)","require (internal/module.js:11:18)","Object.<anonymous> (/var/task/compiled/sharp/lib/constructor.js:10:15)","Module._compile (module.js:652:30)","Object.Module._extensions..js (module.js:663:10)","Module.load (module.js:565:32)"]}

The bundled folders placed in the lambda task root (/var/task) and will be deployd. Regarding to this doc lamda sets the LD_LIBRARY_PATH env var to LAMBDA_TASK_ROOT/lib. The error occurs in the libvips-cpp.so.42 file, so i assume sharp find the libvips library.
Any suggestions i can try to get this working? Or any idea what the error means?
Many thanks!

Perhaps you could debug your deployment package using the runtime lambci/lambda:nodejs8.10 rather than the install-time lambci/lambda:build-nodejs8.10 image.
Running ldd /var/task/node_modules/sharp/build/Release/sharp.node inside a runtime container would be a good place to start.
This is more of a Lambda and shared libraries problem than being specific to sharp - good luck!

is there any reason that you don't use pre-built libvips?

Because i need poppler support to convert PDFs to PNG and poppler support is not included in the pre-build libvips.

@marcel-devdude Were you able to make any progress with this?

Hi @lovell. I am having the same problem outlined here. I have built sharp in a container based on the lambda:build-nodejs12.x image.
Then I try to access a JPEG2000 file in my container using the script below:
const sharp = require('sharp');

console.log(sharp.format.magick);
sharp('/tmp/test/balloon.jp2')
  .metadata()
  .then(console.log)
  .catch(console.error);

And I get a good response:
$ LD_LIBRARY_PATH=/opt/lib node test.js
{
  id: 'magick',
  input: { file: true, buffer: true, stream: true },
  output: { file: true, buffer: true, stream: true }
}
{
  format: 'magick',
  width: 2717,
  height: 3701,
  space: 'srgb',
  channels: 3,
  depth: 'uchar',
  isProgressive: false,
  pages: 1,
  hasProfile: false,
  hasAlpha: false
}

I export all of the dependencies to a folder and mount it as /opt/lib and try to run the same script in the lambci/lambda:nodejs12.x container specifying the LD_LIBRARY_PATH environment variable:
$ LD_LIBRARY_PATH=/opt/lib node test.js
{
  id: 'magick',
  input: { file: true, buffer: true, stream: true },
  output: { file: true, buffer: true, stream: true }
}
[Error: Input file contains unsupported image format]

Then I checked the dependencies of sharp.node and it seems that everything is the same in both environments:
$ LD_LIBRARY_PATH=/opt/lib ldd /var/task/node_modules/sharp/build/Release/sharp.node
	linux-vdso.so.1 (0x00007ffd9fbc1000)
	libvips-cpp.so.42 => /opt/lib/libvips-cpp.so.42 (0x00007f8f2aba2000)
	libvips.so.42 => /opt/lib/libvips.so.42 (0x00007f8f2a4de000)
	libgobject-2.0.so.0 => /opt/lib/libgobject-2.0.so.0 (0x00007f8f2a28b000)
	libglib-2.0.so.0 => /opt/lib/libglib-2.0.so.0 (0x00007f8f29f75000)
	libstdc++.so.6 => /opt/lib/libstdc++.so.6 (0x00007f8f29bf3000)
	libm.so.6 => /opt/lib/libm.so.6 (0x00007f8f298b3000)
	libgcc_s.so.1 => /opt/lib/libgcc_s.so.1 (0x00007f8f2969d000)
	libpthread.so.0 => /opt/lib/libpthread.so.0 (0x00007f8f2947f000)
	libc.so.6 => /opt/lib/libc.so.6 (0x00007f8f290d4000)
	libz.so.1 => /opt/lib/libz.so.1 (0x00007f8f28ebe000)
	libMagickCore.so.5 => /opt/lib/libMagickCore.so.5 (0x00007f8f28a10000)
	libpng15.so.15 => /opt/lib/libpng15.so.15 (0x00007f8f287e5000)
	libtiff.so.5 => /opt/lib/libtiff.so.5 (0x00007f8f28571000)
	libjpeg.so.62 => /opt/lib/libjpeg.so.62 (0x00007f8f2831f000)
	libgthread-2.0.so.0 => /opt/lib/libgthread-2.0.so.0 (0x00007f8f2811d000)
	libgmodule-2.0.so.0 => /opt/lib/libgmodule-2.0.so.0 (0x00007f8f27f19000)
	libexpat.so.1 => /opt/lib/libexpat.so.1 (0x00007f8f27ce7000)
	libgsf-1.so.114 => /opt/lib/libgsf-1.so.114 (0x00007f8f27aa5000)
	libxml2.so.2 => /opt/lib/libxml2.so.2 (0x00007f8f2774c000)
	libgif.so.4 => /opt/lib/libgif.so.4 (0x00007f8f27542000)
	librsvg-2.so.2 => /opt/lib/librsvg-2.so.2 (0x00007f8f2730c000)
	libgio-2.0.so.0 => /opt/lib/libgio-2.0.so.0 (0x00007f8f26f6f000)
	libgdk_pixbuf-2.0.so.0 => /opt/lib/libgdk_pixbuf-2.0.so.0 (0x00007f8f26d48000)
	libcairo.so.2 => /opt/lib/libcairo.so.2 (0x00007f8f26a22000)
	libopenslide.so.0 => /opt/lib/libopenslide.so.0 (0x00007f8f267f3000)
	libexif.so.12 => /opt/lib/libexif.so.12 (0x00007f8f265ae000)
	libpcre.so.1 => /opt/lib/libpcre.so.1 (0x00007f8f2634a000)
	libffi.so.6 => /opt/lib/libffi.so.6 (0x00007f8f26142000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f8f2b011000)
	libfontconfig.so.1 => /opt/lib/libfontconfig.so.1 (0x00007f8f25f05000)
	libfreetype.so.6 => /opt/lib/libfreetype.so.6 (0x00007f8f25c61000)
	libXext.so.6 => /opt/lib/libXext.so.6 (0x00007f8f25a4f000)
	libSM.so.6 => /opt/lib/libSM.so.6 (0x00007f8f25847000)
	libICE.so.6 => /opt/lib/libICE.so.6 (0x00007f8f2562a000)
	libX11.so.6 => /opt/lib/libX11.so.6 (0x00007f8f252ec000)
	libXt.so.6 => /opt/lib/libXt.so.6 (0x00007f8f25084000)
	liblzma.so.5 => /opt/lib/liblzma.so.5 (0x00007f8f24e5e000)
	libbz2.so.1 => /opt/lib/libbz2.so.1 (0x00007f8f24c4e000)
	libgomp.so.1 => /opt/lib/libgomp.so.1 (0x00007f8f24a21000)
	libltdl.so.7 => /opt/lib/libltdl.so.7 (0x00007f8f24817000)
	libjbig.so.2.0 => /opt/lib/libjbig.so.2.0 (0x00007f8f2460b000)
	libdl.so.2 => /opt/lib/libdl.so.2 (0x00007f8f24407000)
	libpangocairo-1.0.so.0 => /opt/lib/libpangocairo-1.0.so.0 (0x00007f8f241fa000)
	libpango-1.0.so.0 => /opt/lib/libpango-1.0.so.0 (0x00007f8f23faf000)
	libcroco-0.6.so.3 => /opt/lib/libcroco-0.6.so.3 (0x00007f8f23d74000)
	libselinux.so.1 => /opt/lib/libselinux.so.1 (0x00007f8f23b4d000)
	libresolv.so.2 => /opt/lib/libresolv.so.2 (0x00007f8f23937000)
	libmount.so.1 => /opt/lib/libmount.so.1 (0x00007f8f236e2000)
	libpixman-1.so.0 => /opt/lib/libpixman-1.so.0 (0x00007f8f2343c000)
	libEGL.so.1 => /opt/lib/libEGL.so.1 (0x00007f8f23228000)
	libxcb-shm.so.0 => /opt/lib/libxcb-shm.so.0 (0x00007f8f23025000)
	libxcb.so.1 => /opt/lib/libxcb.so.1 (0x00007f8f22dfd000)
	libxcb-render.so.0 => /opt/lib/libxcb-render.so.0 (0x00007f8f22bef000)
	libXrender.so.1 => /opt/lib/libXrender.so.1 (0x00007f8f229e5000)
	libGL.so.1 => /opt/lib/libGL.so.1 (0x00007f8f22759000)
	librt.so.1 => /opt/lib/librt.so.1 (0x00007f8f22551000)
	libsqlite3.so.0 => /opt/lib/libsqlite3.so.0 (0x00007f8f2229c000)
	libopenjpeg.so.1 => /opt/lib/libopenjpeg.so.1 (0x00007f8f22079000)
	libuuid.so.1 => /opt/lib/libuuid.so.1 (0x00007f8f21e74000)
	libpangoft2-1.0.so.0 => /opt/lib/libpangoft2-1.0.so.0 (0x00007f8f21c5f000)
	libthai.so.0 => /opt/lib/libthai.so.0 (0x00007f8f21a53000)
	libharfbuzz.so.0 => /opt/lib/libharfbuzz.so.0 (0x00007f8f217ef000)
	libblkid.so.1 => /opt/lib/libblkid.so.1 (0x00007f8f215a5000)
	libGLdispatch.so.0 => /opt/lib/libGLdispatch.so.0 (0x00007f8f212ef000)
	libXau.so.6 => /opt/lib/libXau.so.6 (0x00007f8f210eb000)
	libGLX.so.0 => /opt/lib/libGLX.so.0 (0x00007f8f20eba000)
	libgraphite2.so.3 => /opt/lib/libgraphite2.so.3 (0x00007f8f20c8e000)

Any help would be greatly appreciated.

For those who stumble on this issue (including our future selves), we were able to resolve this using

this Dockerfile for the build environment,
this script to extract the dependencies for Imagemagick and the jp2 coder,
and adding these environment variables to point vips to the Imagemagick files.


info: variable information

Information like: population, countries and dialects, is changing with time. So, this information can't be afforded by the module itself.
Mark the three functions as obsolete; delete their documentation and test.

The functions are deprecated


Make throttle configurable

This PR adds a new attribute to the directive (infiniteScrollThrottle), which lets the user configure the number of milliseconds to use for the throttle function. This attribute is optional, the default value remains at 300.

looks good.
please align with the master branch so i can merge it.
thanks.

I rebased on current master, should be fine now.

Thanks!


Enhancing User Experience: Transitioning from PNG to SVG Icons for Dark-Light Mode

The transition from using PNG images to SVG (Scalable Vector Graphics) for implementing dark-light mode icons offers several advantages. SVGs are resolution-independent, ensuring crisp display across various screen sizes and resolutions. Additionally, SVGs are lightweight and offer better performance, contributing to faster load times. Furthermore, SVGs allow for easy manipulation using CSS, enabling dynamic changes such as color adjustments for different themes. Overall, the shift to SVGs enhances the user experience by providing visually appealing and responsive dark-light mode icons.
Closes - #330

@huamanraj please Check issue resolved

close the issue now!


Windows: .py registry open handler

Does anyone know if this extension is adding a .py file open handler to the Windows registry? If so it means that you can't run a script by just typing the script name because it opens the file in VS Code.
Thanks.
Something is adding this.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\VSCode.py]
@="Python Source File"
"AppUserModelID"="Microsoft.VisualStudioCode"
[HKEY_CLASSES_ROOT\VSCode.py\DefaultIcon]
@="C:\Program Files\Microsoft VS Code\resources\app\resources\win32\python.ico"
[HKEY_CLASSES_ROOT\VSCode.py\shell]
[HKEY_CLASSES_ROOT\VSCode.py\shell\open]
[HKEY_CLASSES_ROOT\VSCode.py\shell\open\command]
@=""C:\Program Files\Microsoft VS Code\Code.exe" "%1""

maybe you don't need to modify your registry?
like, right click on a .py file, click properties, find "open with", click change, choose python or click "more app -> find other app in this computer", find your python.exe;
(I'm not using an en win10 so I'm sure I made a few mistakes of words, hope that you could understand me)

Maybe I wasn't clear enough. Something (possible the extension) is modifying the registry and adding the handler, I'm not doing it. It's a pain in the butt because it means when you type a script on the command line then the script opens in VSCode rather than running. Even if I delete the registry entry then it's being added again over time, possibly when the extension is updated.

I got it. Looks like a new switch should be added into installation procedure of VSCode.
( but sadly I can't code in Typescript :disappointed_relieved:

The python extension does not add .py file handler.


Create codeql-analysis.yml

Signed-off-by: xiaowuhu<EMAIL_ADDRESS>Add code analysis component, this is for SDL review need.

Could you please update the descriptions with details below?

The component name "CodeQL".
A brief introduction about what help it can provide.
When will this component work?

Thanks.


Slack site down?

http://slack.httplug.io/ yields an error message, as opposed to a chat.

@sagikazarmark can you check this one please?

Yeah, looking at it. Looks like Slack killed the possibility to send invites using Slackin. :\
I'm looking for an alternative.

@letharion I can send you an invite directly if you wish.

@sagikazarmark Thanks, I don't need one at the moment

Apologies for taking the time on this one. It should now redirect to a non-expiring slack invite link.


WIP: Add sourceType field for Program node

Refs #1159.
@mikesherov does this look right?
Needs updated unit test fixtures and regression test fixtures.

Yes, this is it.

Needs updated unit test fixtures and regression test fixtures.

Right, that's probably the bulk of the work.

@ariya, I rebuilt the fixtures and the  output seemed off. Any thoughts?

Just pushed the rebuilt unit-test and 3rd party fixtures. Some of the results are a little surprising. Here's a stats view: https://gist.github.com/4ec33f3ae18a59eb3a58
NOTE: viewing the diff takes awhile as 1272 files changed :/

There seems to be a linter error. Also, probably worth rebasing it on the latest master.

Will do

In some cases, it's the ordering. Back then in the days, the location information such range or loc used to appear at the end. After some optimization, they are the first. The test suite automatically ignores such a different ordering (afterall, it's just JSON). Yet, generating a new fixture means that the baseline will have the updated ordering (location first). It is safe to ignore those cases.
For some other tests cases, e.g. test/fixtures/ES6/arrow-function/arrow-with-multiple-arg-and-rest.js, the new fixture/baseline looks radically different, i.e. not just an addition of "sourceType": "script" because that test case was parsed with a non-standard parsing option. In this example, I believe the tokens are supposed to be included as well.
The same goes for test cases which need to be parsed with tolerant mode, e.g. test/fixtures/tolerant-parse/migrated_0052.js. It should not yield in a failure (migrated_0052.failure.json) since the code can be tolerated enough by Esprima, assuming the tolerant option is set during parsing.
I don't know the easiest way to fix this. We may introduction foo.options.json for every foo.js in case the parsing options are custom.

@jasonLaster This should be now covered by this pull request: https://github.com/jquery/esprima/pull/1282.


#828 - Add details when JSON decode failure occurs

change ParseFailure msg value to details instead of sanitized version

I think this will scratch your itch, but the definition in https://github.com/http4s/http4s/blob/master/core/src/main/scala/org/http4s/MessageFailure.scala would give both the sanitized and details.  I'm not at a computer, but I think that would drop right in.
I can release this evening.

Sure. That looks better.

v0.12.6 is on its way to Maven Central with this fix.
v0.12.5 is a permanent monument to my failure to pull before publishing. Sadly, it's not the first. :flushed:

Wonderful. Thank you my friend!


Pong

Added Pong with naive AI to make the game a bit more difficult. I have a few years of experience with Javascript in web apps and Discord bots.

Kanishq this is great! To be honest it's not the sort of game we intended for people to make with the engine but that makes it even cooler! I'm curious how it will run on the actual Sprig. Nice work you've earned your Sprig: https://sprig-order.hackclub.dev/
If you're not already on the Hack Club Slack you should join and share some of your projects. The community would love to see them.


Support Zoom Beyond Level 18

Not sure if it is a function of the OSM Basemap or not, but, I have a layer with a zoom level of 19.
When working on a Work Cell, I can not get beyond level 18 (which corresponds to the OSM map max depth). This is the case whether I have the OSM layer toggled on or off.
I thought I saw something in the code that set the max zoom level to 21, but, it does not seem like the leaflet map is letting me zoom beyond 18. No tile calls are being made once I zoom past level 18 to what should trigger calls to zoom level 19 tiles.

Yes, the zoom levels are dependent on the layers loaded onto the map. I have been able to force the zoom levels lower (I have a kml of a building layout that I've been able to establish higher zoom levels, but assume it's letting me do that because I do have that layer loaded onto the map)

Right, but something is wrong.
The OSM layer you are loading should be capable of zooming to at least level 19.
In fact, the way you are calling it, you're saying it should go to level 22 (the osm tile cache you're hitting only goes to 19 though)
    var djoptions = {"layers": [["OSM", "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", "\u00a9 OpenStreetMap contributors"]], "minimap": false, "scale": "metric", "center": null, "tilesextent": [], "attributionprefix": null, "zoom": null, "maxzoom": 22, "minzoom": 0, "extent": [[-90, -180], [90, 180]], "resetview": false, "srid": null, "fitextent": true},

http://tile.openstreetmap.org/19/0/0.png exists, http://tile.openstreetmap.org/20/0/0.png does not.
So, if nothing else, I should be able to zoom to level 19, but, it bottoms out at 18.
I am unable to reproduce your behavior by loading a very finely detailed KML. I can keep zooming in on the KML, but, no tiles are called from any layer past 18.
Is it possible that somwhere you have a maxZoom set for the map to 18?
http://leafletjs.com/reference.html#map-options
http://leafletjs.com/reference.html#tilelayer

I believe the latest upgrades should allow zooming beyond level 18. For a Job map, add a tile layer that can zoom to the level you want and check 'is base layer'. It should now replace OSM as the base layer for the Job.
One thing I've noticed is that some Google layers will make zooms 'snap back' to a previous zoom layer. Not sure why that is, but may look at the plugin for those layers

Awesome - thanks!
On Tue, May 5, 2015 at 10:45 AM, Stephen Jones<EMAIL_ADDRESS>wrote:

I believe the latest upgrades should allow zooming beyond level 18. For a
Job map, add a tile layer that can zoom to the level you want and check 'is
base layer'. It should now replace OSM as the base layer for the Job.
One thing I've noticed is that some Google layers will make zooms 'snap
back' to a previous zoom layer. Not sure why that is, but may look at the
plugin for those layers
—
Reply to this email directly or view it on GitHub
https://github.com/ngageoint/geoq/issues/306#issuecomment-99101003.

--
Sean Wohltman - WG0OGL | Geospatial Scientist |<EMAIL_ADDRESS>|
703-677-8626


Partner Experience: update horizon config/install copy

The main goal of docs updates in terms of partner experience is to make them more opinionated on what to do for configuration with less choices so it is faster for setup and less possibility of choosing wrong settings. The effort here was to remove many options and instead present as few but generally robust options that are geared towards latest settings in horizon.
This change is focused on just runtime configuration(not ingestion yet, that is another task). Configuring was refactored and I pulled in reformat of Installing as it was closely tied into how configurations get done as well. You can view new pages here:
https://developers-pr162.previews.kube001.services.stellar-ops.com/docs/run-platform-server/installing
https://developers-pr162.previews.kube001.services.stellar-ops.com/docs/run-platform-server/configuring
To that means, have also made leap in docs to suggest features/flags in Horizon to enable these streamlined configs, but don't exist yet, and therefore would need to be reviewed to determine if we want to add them. I've highlighted any functional gaps with TODO inline in docs to mark where these are.
Closes #141

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

There are also a handful of grammatical fixes. We should definitely get devrel (and maybe even someone from marketing) do a proper wording + grammar pass before merging this branch into main.

yes, these changes won't be landing on main in short term, the plan is to use feature branch partner_experience, to stage related docs as a whole. The feature branch will also gate on review and implementation of any new functionality in code that docs refer to as TODO proposals before merging to main.

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

ok to merge w/ TODOs? if yes I can ✔ but @mollykarcher / Jesse (what's his GH username??) should look as well for product/partner perspective

yes, we are spinning up dev tickets for the TODO's, and will remove the TODO's from here first before merge.

yes, we are spinning up dev tickets for the TODO's, and will remove the TODO's from here first before merge.

Yep 👍 aligned with this approach

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr162.previews.kube001.services.stellar-ops.com


Upgrades to Junit 4.12

Upgrade to latest version of Junit, 4.12. This is now used for all modules, including integration which seemed stuck on a different, older version.
mvn clean install ran successfully.

Pretty straightforward, any complaints?

Pretty straightforward, any complaints?

Not sure if you're asking me or other reviewers, but I don't have any particular complaints.
There is an open question on what to do with the integration-module though. As mentioned above, it seems to use an older version than the others and also specify this as a dependency for the maven-antrun-plugin. I'm not sure why this is the case, so I'm open to suggestions on how to proceed with this.

I would say upgrade for antrun-plugin and see if the tests all pass. Or maybe upgrade ant run-plugin if it's out of date and see if it brings in a newer version of junit. JUnit has done a pretty good job with backwards compatibility over the years.

Or maybe upgrade ant run-plugin if it's out of date and see if it brings in a newer version of junit.

It didn't seem to do so without specifying it manually, so I set it to the same junit version as used elsewhere.
I thought about upgrading the plugin to a newer release as well, which can probably be done for several others too. If you look at the output from mvn versions:display-plugin-updates, some plugins require a minimum version of maven. (I assume this is because they use features or APIs which doesn't exist in older versions of maven) I don't know slf4j's policy on prerequisites or which maven versions are targeted, though if you check the output it looks some plugins (like the version of maven-site-plugin) already has some implicit requirements so effectively there should be little change. I can look into the plugin upgrades if that sounds ok.

Antrun latest only requires maven 2.2.1 to run.  I'd suggest if antrun is really needed still to get it upgraded all the way to latest and update ant as well to latest.  Probably a separate pull request for that.
As for updating others, this project is using maven-site-plugin 3.3 which is on maven 3 core.  I'm sure there are a few others, haven't looked.  So that pretty much tells me everything can be updated without harm.  Before going all crazy though, I'd love someone to take a look at my pull request to cleanup the builds using maven best practices.  #88
Then probably another pull request down the road to update all the maven plugins.  Once everything is at least on par with a maven 3 core build, then the builds can be done in parallel and thus much faster.  Food for thought anyway!

Probably a separate pull request for that.

Yes, I would have done that as part of another pull request. This was mainly because I saw junit was outdated.

Before going all crazy though, I'd love someone to take a look at my pull request to cleanup the builds using maven best practices. #88

Thanks for the reminder, I actually saw that earlier. I agree that should probably land before the plugin upgrades to avoid merge conflicts etc...

Hi again. What is the status of this request? Is there anything holding it up which I can look into? :)

This pull request should be closed. The changes have been applied elsewhere I think.

Yes, looks like the changes have made their way into master :)


Change final installation page with more information for first start

Some more explanations in final page like the current OCP bug.

Solved it by linking it to the project github page. Another solution would have been a readme.txt.
That solution might be one to investigate again.


[Tracking issue] WASM Interpreter in ZK ASM

This is a tracking issue for all work related to selecting, compiling, and running WASM interpreter on ZKASM machine.
Our main goal for Stage 2 is to run a fully-fledged WASM interpreter on ZKASM machine. This is necessary to enable aggregatable proofs about the execution of a sequence of WASM programs (e.g. Smart-Contract calls).
This will require finding a suitable WASM interpreter, extending the set of WASM instructions supported by ZKASM backend to compile that interpreter, and testing that interpreter on a range of WASM programs and benchmarks.
We will likely need a short design doc to outline how the system will work end-to-end, from taking the code of the chosen WASM interpreter, to running a WASM program on top of ZKASM compiled version of this interpreter.
- [ ] https://github.com/near/wasmtime/issues/160
- [ ] Run WASM spectests through ZKASM-compiled interpreter
- [ ] Run benchmarks through ZKASM-compiled interpreter

At Aurora we were looking into the costs of interpreting wasm on chain. This was done in the context of synchronous wasm execution. Some benchmarks are available in this repo where we have a contract￼C that does number crunching in a loop. C is executed natively as NEAR contract and interpreted within another contract that contains a wasmi interpreter.
Some insights that could be relevant for ZK WASM are:

Seing a possible setup for wasm interpretation on NEAR. Using wasmi it is a surprisingly smooth process.
As the number of loop iterations is increased, the gas cost for interpreting C shoots up quickly, while it only slightly increases for the “native” execution. See results (the table can be scrolled to the right).


ReactToolTip Prop Place

Is it possible to place the Box on the right side of the icon as expected?

(Notice by the triangle in the black box).
I know the green box is bigger than the rest of the space on the right side, however, is there any way to resolve the situation?
Note: The icon has a scrollable superior parent.
Thanks!!

There are too many icons on this picture, which one you are hover on to open tooltip? By this picture it seems that you are hovering on turquoise block.


"Wiki / Installing Micro / Arch Linux" is outdated

This section of the wiki say :

If you are on Arch Linux, you can install micro using the AUR

The "micro" package is no longer part of the AUR and has to be installed from the community repository instead.
The packages available in the AUR are the development version (micro-git) and micro-nightly-bin.
The README has already been updated so I guess it could be a good idea to remove this part of the wiki, or to update it and to replace the Installation part of the README with a link to the wiki to avoid duplication.

PS: Consider allowing editing on the wiki so that anyone can contribute to it :slightly_smiling_face:


Update locations.rb

foursquare_v2_id is deprecated by Instagram.  Please use facebook_places_id instead of foursquare_v2_id

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. In order for us to review and merge your code, please sign up at https://code.facebook.com/cla - and if you have received this in error or have any questions, please drop us a line at<EMAIL_ADDRESS>Thanks!


.TableOfContents ignores id's generated by heading render hook

What version of Hugo are you using (hugo version)?

hugo v0.83.0-DEV+extended linux/amd64 BuildDate=unknown

Does this issue reproduce with the latest release?
Yes
Without a heading render hook
This markup:
## Section One

Produces this HTML:

Section One

With this item in the .TableOfContents:

Section One

At this point everything is behaving as expected.
With a heading render hook
layouts/_default/_markup/render-heading.html:
<h{{ .Level }} id="{{ printf "%s%s" "foo-" .Anchor | safeURL }}">{{ .Text | safeHTML }}</h{{ .Level }}>

Produces this HTML:

Section One

With this item in the .TableOfContents:

Section One

The item in the .TableOfContents should be:

Section One

Example:
git clone --single-branch -b hugo-github-issue-8383 https://github.com/jmooring/hugo-testing hugo-github-issue-8383
cd hugo-github-issue-8383
hugo server

It appears that the table of contents generation is dependent upon Goldmark's autoHeadingID being set to true. This parses the actual content in the markdown file to generate the link. In your example above, if you change "Section One" in the markdown file to "Hello Friend," the link would produce .
Goldmark has a parser option that allows for custom ids if specified in the markdown file:
## heading {#id .className attrName=attrValue class="class1 class2"}
This can be added; however, it would not fix the issue above. The table of contents would have to be generated from parsing the html output rather than the markdown to incorporate the render hooks correctly. Or, at least that is what I have gathered from my investigation.

This is certainly a known limitation. We could (and should?) maybe get by this if we allow setting attributes inside the hook, e.g.:
{{ $id := printf "%s%s" "foo-" .Anchor | safeURL }}
{{ .SetAttribute "id" $id }}
<h{{ .Level }} id="{{ $id }}">{{ .Text | safeHTML }}</h{{ .Level }}>

@bep did you have some idea in mind for the solution here? I was having a look to see what it would take to contribute the fix and it seems quite complicated. My intuition was that we could implement native parsing of raw HTML header elements upstream in goldmark (or potentially as an extension) such that they would be emitted in the markdown AST just as if they were authored in # syntax. This would make autoHeadingID and also make render hooks work for <h*> elements.
I think this could be done without violating the CommonMark specification as described by @yuin in https://github.com/yuin/goldmark/issues/125#issuecomment-622207664.

That only covers one scenario though, there are actually many:

#... and <h*> tags authored in markdown files
<h*> elements emitted from render hooks
<h*> elements emitted from shortcode evaluation (directly or indirectly via markdownify)
<h*> elements in surrounding layout templates

... and that's just for headers. We have the same/similar problems with  and  tags to consider as well.
The solution described above really only helps solve (1). I don't see a way we could address (2-4) without performing a second pass using a full-blown HTML parser over the fully rendered document.
This would have serious performance implications but could also be very powerful for a number of other scenarios like automated link integrity checking (without requiring use of ref/relref), more robust render hooks (that work no matter what the source format is), HTML minification, linting, etc.


feat: override vim.lsp.buf methods

Resolve #2044

What problem is this solving? https://github.com/vscode-neovim/vscode-neovim/issues/2044 explains nothing. Please, always explain the problem being solved. That saves time for reviewers and saves needless discussion/questions/assumptions.
Just for reference: will this interfere with users that expect Nvim LSP (or plugins like null-ls) to work?
This implementation looks isolated and "flat", thus low-risk and low-maintenance. If it doesn't creep into a growing collection of workarounds spread around the codebase, then it's probably fine.
If this works well, then it seems like it could avoid unnecessary key mappings/bindings. Does it allow us to remove any existing keybindings?
If this doesn't work well, then similar to https://github.com/vscode-neovim/vscode-neovim/pull/2020 , it's risky.
When a project is "small", it's easy to add features, because the project is easy to work with. Eventually it gets hard to work with, and contributors fade away and then it's hard to figure out which parts are needed and which were optional. It seems like we're getting a lot of minor nice-to-have feature proposals with very weak justifications:

this PR (gives no explanation about the motivation, nor does the linked issue)
https://github.com/vscode-neovim/vscode-neovim/pull/2020
several other recent PRs

Isn't it more convenient to set keymaps to these methods than to find command id by yourself?

@justinmk I understand your concerns. These are all PRs designed to smooth the edges and provide an out-of-the-box experience which is as compatible with nvim configs as possible. With this PR, all bindings related to LSP provided by a distro, say LazyVim, are now supported. The code is indeed isolated and flat.

will this interfere with users that expect Nvim LSP (or plugins like null-ls) to work

Nvim LSP/null-ns will NEVER be supported by this extension by design. Thus, this PR acts as a substitute so that these bindings continue to work.
For example, currently, a mapping like https://github.com/LazyVim/LazyVim/blob/8024201e75b471eac5e399dcb6c8ec4f3f55e2a2/lua/lazyvim/plugins/lsp/keymaps.lua#L24 is a no-op in VSCode. Now, it maps to the VSCode native command.

we're getting a lot of minor nice-to-have feature proposals with very weak justifications

#2020 is indeed going the wrong direction, but it was a prototype. The correct implementation will look similar to this PR (simply forward the command to VSCode).
In general, the whole mantra of this extension is "if this extension were perfect, there would be no need for a readme, since all nvim behavior works out of the box". Before, many behaviours like statusline, cmdline, and other things "several other recent PRs" have touched, required custom solutions/settings/bindings to function. Now, they work "the neovim way".

Additionally, this PR (vim.lsp.buf) is simple enough.

That by itself is not really a great reason for any change to be made. There needs to be a clear problem that is being solved.

The motivation for this https://github.com/vscode-neovim/vscode-neovim/pull/133 is the same, so no explanation is provided

I don't see how #133 is related, but anyways it saves time to clearly state what problem is being solved, instead of expecting others to puzzle together the context. That helps a lot for referencing the PR (or commit message, ideally) in the future, too.

With this PR, all bindings related to LSP provided by a distro, say LazyVim, are now supported.

That's good, though it does imply that vscode-neovim intentionally wants to support "distros". That's a lot of scope to take on.

@justinmk

So that implies that vscode-neovim intentionally wants to support "distros". That's a lot of scope to take on.

Not exactly... vscode-neovim wants to support the full nvim API, so that distros, users, and basically anyone can have nvim configs which don't need special cases for VSCode. In this case, many distros map bindings to LSP commands (show references, go to definition, toggle inlay hints, etc), but we are not directly supporting that distro... we are supporting the official nvim API.

we are supporting the official nvim API.

Nvim UIs are not expected to shim the Nvim LSP interface just to avoid a few mappings. It's probably low risk for now, but may be counterproductive in the future, as Nvim LSP becomes an extensibility point for more than just "LSP servers".

To be precise, vscode-neovim is not a Neovim UI, but rather more like a script host.
However, this kind of functionality can be implemented through a separate Neovim plugin. Installing the plugin has no cost for the user, and it also allows the user to have a clearer understanding of the available features.


Add ref count to WFServiceGovernance

Make it legal to delete an upstream being used.

Not good enough. Close.


Crash caused by activity.Finish(); line

Type of issue
Code doesn't work
Description
In the "Read the data from the incoming intent" section, in the example code there is a line activity.Finish(); . Having this line included causes the app to behave incorrectly when opening it from a deep link.
The app won't "crash" in the traditional sense, but does immediately go into the background. Opening the app switcher and choosing the app again just repeats the behavior.
Removing that line from my code allowed my deep link to behave correctly. I recommend removing this line.
Page URL
https://learn.microsoft.com/en-us/dotnet/maui/android/app-links?view=net-maui-8.0#read-the-data-from-the-incoming-intent
Content source URL
https://github.com/dotnet/docs-maui/blob/main/docs/android/app-links.md
Document Version Independent Id
8a77b383-4209-5406-59a1-5df947a75e47
Article author
@davidbritch
Metadata

ID: 8a77b383-4209-5406-59a1-5df947a75e47
Service: dotnet-mobile
Sub-service: dotnet-maui

#2213

Fixed by #2213


Support Jest 27

Codecov Report

Merging #21 (5179dba) into master (3113077) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master       #21   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           48        48
  Lines          952       952
  Branches       221       221
=========================================
  Hits           952       952

Flag
Coverage Δ

root
100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

packages/cli/src/registers/jest__26.x/index.ts
100.00% <100.00%> (ø)

packages/cli/src/registers/jest__27.x/index.ts
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


add related to minecraft and minecraft-bedrock-edition topics

Please confirm this pull request meets the following requirements:

[x] I followed the contributing guidelines: https://github.com/github/explore/blob/main/CONTRIBUTING.md.
[x] I have no affiliation with the project I am suggesting (as a maintainer, creator, contractor, or employee).

Which change are you proposing?

[x] Suggesting edits to an existing topic or collection
[ ] Curating a new topic or collection
[ ] Something that does not neatly fit into the binary options above

Editing an existing topic or collection
I'm suggesting these edits to an existing topic or collection:

[ ] Image (and my file is *.png, square, dimensions 288x288, size <= 75 kB)
[x] Content (and my changes are in index.md)

This PR adds related field to topics minecraft and minecraft-bedrock-edition.

Please note: we will close your PR without comment if you do not check the boxes above and provide ALL requested information.

I see that a check failed because there are the same topics in both related and aliases. I feel that they make sense in both[*]. However, should I close?

I see that a check failed because there are the same topics in both related and aliases. I feel that they make sense in both. However, should I close?

I believe the failure is saying that in each topic the related and alias lists can't have any overlap. So you'll just need to make sure that each list has unique items.