Simplify selection criteria in cicd.yml

It should be possible to write the selection criteria in the yaml file as:
if: ${{fromJson(fromJson(needs.select-jobs.outputs.tests)[github.job])}}

But this causes the GitHub workflow to fail with an internal error.
Instead the condition needs explicitly name the job:
if: ${{fromJson(fromJson(needs.select-jobs.outputs.tests)['unit_tests'])}}

I think this should be a backlog item. not sure if this even applies to the code as is today, or a prototype Alan was working on.

Not relevant anymore.


case where # conditions used for RSA is fewer than the total available for estimating GSN?

say a user wants to use the full set of stimuli available per subject to estimate the signal/noise mean and covariance structure, but then wants a noise ceiling estimate for the case where only a subset of those stimuli are being compared via RSA against some model.
right now the "ncond" for monte carlo simulation is always the dimensionality of the input data over the condition dimension. do we want to add an input argument so that the user can optionally select a different (lower) ncond? will this affect NC estimates?

This is an interesting issue.   In theory, the number of conditions simulated in the Monte Carlo simulations shouldn't fundamentally change the noise ceiling estimates.  (However, of course, the expectation is the larger the number of conditions, the better, for averaging out incidental variability.)   Nonetheless, would be good to implement as an optional input parameter.  I'll do this soon

this has been implemented (as input option )


Pubsub to see running entries

It should be possible to get a list of entries that are running.

This changes our the current pubsub architecture. Previously when you subscribed on a scope, you received publishes if models within your scoped were added updated or deleted.
However this changes changes the semantics of subscribing. Instead of receiving publishes of models within your scope, the publishes will specify changes relative to your scope.
With this new version of subscribing, delete in the publish will be renamed to remove. If you subscribed on entries with scope: ended_at: null, and an entry currently in your scope gets updated to ended_at: bla, the publish will contain this model under the remove key. The model has been removed from your scope even though the action on the model was an update.
So the keys of the publish event could mean the following:

add:

a new model gets added and fits your scope
a model gets updated, before the update it didn't match your scope, after the update it does match your scope

update:

a model already in your scope gets updated

remove:

a model in your scope gets deleted
a model in your scope gets updated and the updated version doesn't match your scope

Toppie


segmentation fault when running example prediction

When running the commands under the section "Prediction" at http://kplogo.wi.mit.edu/manual.html#examples, I get a segmentation fault after the second command.
I've tried this on CentOS 6 and from within a Debian 9 container with the same results. This is with the latest release 1.0.
$ kpLogo gRNA.txt -weighted -o model_training
[Tue Jul 18 17:15:22 2017] Summary:
[Tue Jul 18 17:15:22 2017]    Input       :   gRNA.txt
[Tue Jul 18 17:15:22 2017]    Background  :   local
[Tue Jul 18 17:15:22 2017]    Output      :   model_training.*
[Tue Jul 18 17:15:22 2017]    alphabet    :   ACGT
[Tue Jul 18 17:15:22 2017]    min_kmer    :   1
[Tue Jul 18 17:15:22 2017]    max_kmer    :   4
[Tue Jul 18 17:15:22 2017]    min_shift   :   0
[Tue Jul 18 17:15:22 2017]    max_shift   :   0
[Tue Jul 18 17:15:22 2017]    p           :   1.010000
[Tue Jul 18 17:15:22 2017]    start at    :   1
[Tue Jul 18 17:15:22 2017] 1841 sequences loaded from gRNA.txt
[Tue Jul 18 17:15:22 2017] making frequency logo...
[Tue Jul 18 17:15:22 2017] making information content logo...
[Tue Jul 18 17:15:22 2017] fixed position: 25	26
[Tue Jul 18 17:15:22 2017] fixed residual  : G	G
[Tue Jul 18 17:15:22 2017] 340 exact kmers to be tested
[Tue Jul 18 17:15:22 2017] 9288 tests (kmer x position x shifts) will be performed
[Tue Jul 18 17:15:23 2017] 5941 positional kmers with p <1.010000
[Tue Jul 18 17:15:24 2017] plotting the most significant kmer at each position...
G
G
[Tue Jul 18 17:15:24 2017] plotting single nucleotide profile...
[Tue Jul 18 17:15:27 2017] Done!
$ kpLogo gRNA.txt -predict model_training
[Tue Jul 18 17:15:31 2017] Summary:
[Tue Jul 18 17:15:31 2017]    Input       :   gRNA.txt
[Tue Jul 18 17:15:31 2017]    Background  :   local
[Tue Jul 18 17:15:31 2017]    Output      :   kpLogo.*
[Tue Jul 18 17:15:31 2017]    alphabet    :   ACGT
[Tue Jul 18 17:15:31 2017]    min_kmer    :   1
[Tue Jul 18 17:15:31 2017]    max_kmer    :   4
[Tue Jul 18 17:15:31 2017]    min_shift   :   0
[Tue Jul 18 17:15:31 2017]    max_shift   :   0
[Tue Jul 18 17:15:31 2017]    p           :   1.010000
[Tue Jul 18 17:15:31 2017]    start at    :   1
[Tue Jul 18 17:15:31 2017] 1841 sequences loaded from gRNA.txt
[Tue Jul 18 17:15:31 2017] making frequency logo...
[Tue Jul 18 17:15:32 2017] making information content logo...
[Tue Jul 18 17:15:32 2017] fixed position: 25	26
[Tue Jul 18 17:15:32 2017] fixed residual  : G	G
[Tue Jul 18 17:15:32 2017] === prediction mode ===
[Tue Jul 18 17:15:32 2017] building model from file: model_training.pass.p.cutoff.txt
[Tue Jul 18 17:15:32 2017] - 5719 positional kmers included in the model
[Tue Jul 18 17:15:32 2017] scoring input sequences using the model...
[Tue Jul 18 17:15:33 2017] - done
Segmentation fault

I've identified bugs that could potentially cause this error. Please try the updated version from the master branch.

Alright, I don't see the segfault anymore. Thanks for tagging a new release!


Swift 3.1.1 release.

@swizzlr could this also be added as a tag and made available from the Docker Hub? Right now pulling swift:latest gets me swift-3.1, not 3.1.1.

@pixelspark I just added the 3.1.1 tag and also created a new build DockerHub, do u mind trying again?


[UPDATE] Modify document API according to deletion of hideControls props.

Description
In the webpage document API props due to the deletion of the hideControls prop, a new prop, disableToolbar props, is added to the document and readme.md is modified.
Additional context

What is the purpose of this pull request?

[ ] Bug fix
[ ] New Feature
[X] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[X] Read the Contributing Guidelines.
[X] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[X] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[X] Ideally, include relevant tests that fail without this PR but pass with it.

@prabhuignoto Could you please incorporate the feedback?

@prabhuignoto Could you please incorporate the feedback?

@prabhuignoto Sorry for asking again, but is it possible to merge?


I really enjoyed reading your code and I learned a ton !
I oscillated form amazement to stupefaction, jumped from head scratching to aha moments.
The verlet integration in the main fragment shader caught me off guard : a pure delight.
Thank you so much :)

Haha thanks! Glad you enjoyed it!


AutoLayout rework for LinkCellView

I think this is finally able to be merged, amazing working with you on this @colejd ! Excited to get this out and tested :D


Pls validate this statement

To use Microsoft Phone System with Teams, users must be in TeamsOnly mode.
I have 2 user on 2 different tenants - set for Island mode in which i can place phone calls from both Teams/Skype for Business. Now when I get a call, It appears that the Skype End point gets the call. Is this what you mean that to use MS Phone System users must be in TeamsOnly mode ?
[Enter feedback here]

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

ID: 49921e8a-55ac-f547-d4e2-d329f5089c2e
Version Independent ID: 91c3433a-3684-95cd-3426-4a5877b33106
Content: Migration and interoperability guidance for organizations using Teams together with Skype for Business - Microsoft Teams
Content Source: Teams/migration-interop-guidance-for-teams-with-skype.md
Service: msteams
GitHub Login: @LanaChin
Microsoft Alias: v-lanac

@rickleye Thank you for submitting feedback and contributing to the docs. We are currently investigating this.

@rickleye Thank you for your feedback. Please let me know if this link helps at all. - https://docs.microsoft.com/powershell/module/skype/get-csteamsupgradepolicy?view=skype-ps

@rickleye We appreciate any feedback that improves the content in the Microsoft docs but we haven't had any response from you so we are going to close this issue.
Please feel free to re-open this issue if there is a specific area of the docs that we can improve or make better. Thank you.


Try to more gently disable the TestArmv7Disassembly test for now.

The previous attempt seems not to have been enough to unbreak PR testing.

@swift-ci please test and merge


find function missing occurrences

We have written the needed data into your clipboard because
Issue Type: Bug
hit control f and enter text to find. editor only finds 2 out of 4 entries. match case and match entire word are not selected.
I closed the find box and searched again and everything worked...

VS Code version: Code 1.69.1 (b06ae3b2d2dbfe28bca3134cc6be65935cdfea6a, 2022-07-12T08:21:24.514Z)
OS version: Windows_NT x64 10.0.22000
Restricted Mode: No

System Info

Item
Value

CPUs
12th Gen Intel(R) Core(TM) i9-12900K (24 x 3187)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
31.78GB (10.73GB free)

Process Argv
--crash-reporter-id ff3c814f-f001-48b5-a1b4-81ca06b085c7

Screen Reader
no

VM
0%

Extensions (2)

Extension
Author (truncated)
Version

vscode-docker
ms-
1.22.1

remote-containers
ms-
0.241.3

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383:30185418
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
pythonvspyl392:30443607
vserr242:30382549
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263cf:30335440
vscorecescf:30445987
pythondataviewer:30285071
vscod805cf:30301675
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
vsaa593:30376534
vsc1dst:30438360
pythonvs932:30410667
wslgetstarted:30449410
vscscmwlcmt:30465135
cppdebug:30492333
vsclangdc:30486549

 it was too large to send. Please paste.

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.69.2. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

In your first screenshot I think you have added a trailing space in the Find field.

That's embarrassing. I blame it on lack of sleep.


Show diffs for text files only

In focus mode we automatically show the first diff. We should only do this for text files, otherwise I get:

Changes are needed in this method to make sure the file we're opening makes sense:
https://github.com/microsoft/vscode-pull-request-github/blob/a3040499b41ea55fcab3500bf599b7f0c5e7a98e/src/view/reviewManager.ts#L409-L421

Now, we will try to find a non-media file to show. If there are none then we could still end up showing a non-text file.


Configure CI checks for frontend tests

Is your feature request related to a specific problem?
We should get the frontend tests running in CI! Ideally before we start heavy development on the frontend.
Describe the solution you'd like
Add to the existing github action
Describe alternatives you've considered, if any
A description of any alternative solutions or features you've considered.
Additional context
https://github.com/ethyca/fides/pull/624#discussion_r869413835

Did this for fidesops here: https://github.com/ethyca/fidesops/pull/510
should be pretty much copypasta, but without privacy-center. Blocked until tests are actually passing though

Closed by https://github.com/ethyca/fides/pull/685


Added count and insert to map directory

Hi! This is my first contribution, please let me know if there's an issue with my code

Everything looks great :+1:
Nice work @rahulkarajgikar :100: :tada:


Add mixed boundary conditions

Add MacOS hidden files to gitignore
Add different platforms to pixi.toml
Relock dependencies
Add new boundary conditions (Neumann and Dirichlet-Neumann)

Ready for review 🍾
Here is what the basis vectors look like with the new conditions:

Use this code to reproduce:
_, axs = plt.subplot_mosaic(
    """
    ABC
    DEF
    """,
    figsize=(14, 6), sharex=True, sharey=True, constrained_layout=True,
)

m = 3
L = 5

eigvals = pm.gp.hsgp_approx.calc_eigenvalues(pt.as_tensor([L]), [m])
phi_N = pm.gp.hsgp_approx.calc_eigenvectors(
    x[:, None],
    pt.as_tensor([L]),
    eigvals,
    [m],
    boundary_condition="neumann",
).eval()
phi_D = pm.gp.hsgp_approx.calc_eigenvectors(
    x[:, None],
    pt.as_tensor([L]),
    eigvals,
    [m],
    boundary_condition="dirichlet",
).eval()
phi_M = pm.gp.hsgp_approx.calc_eigenvectors(
    x[:, None],
    pt.as_tensor([L]),
    eigvals,
    [m],
    boundary_condition="mixed",
).eval()

for j in range(m):
    axs["A"].plot(x, phi_N[:, j])
    axs["B"].plot(x, phi_D[:, j])
    axs["C"].plot(x, phi_M[:, j])

axs["A"].set(title=f"Neumann condition\nc = {L / S}")
axs["B"].set(title=f"Dirichlet condition\nc = {L / S}")
axs["C"].set(title=f"Mixed condition\nc = {L / S}")

L = 7.5
eigvals = pm.gp.hsgp_approx.calc_eigenvalues(pt.as_tensor([L]), [m])
phi_N = pm.gp.hsgp_approx.calc_eigenvectors(
    x[:, None],
    pt.as_tensor([L]),
    eigvals,
    [m],
    boundary_condition="neumann",
).eval()
phi_D = pm.gp.hsgp_approx.calc_eigenvectors(
    x[:, None],
    pt.as_tensor([L]),
    eigvals,
    [m],
    boundary_condition="dirichlet",
).eval()
phi_M = pm.gp.hsgp_approx.calc_eigenvectors(
    x[:, None],
    pt.as_tensor([L]),
    eigvals,
    [m],
    boundary_condition="mixed",
).eval()

for j in range(m):
    axs["D"].plot(x, phi_N[:, j])
    axs["E"].plot(x, phi_D[:, j])
    axs["F"].plot(x, phi_M[:, j])

axs["D"].set(title=f"c = {L / S}")
axs["E"].set(title=f"c = {L / S}")
axs["F"].set(title=f"c = {L / S}");

The conflict was this in pixi.lock @maresb:
<<<<<<< mixed-conditions
  version: 0.0.1.post1.dev2+geab2fb9.d20240905
=======
  version: 0.0.1.post1.dev2+geab2fb9.d20240828
>>>>>>> main

I solved in favor of the new branch. LMK if that's wrong

Not sure why tests fail though, everything passes locally for me 🤔

You definitely had the right idea, but somehow in the merge there was a line that got clobbered. I just readded that line.

Thanks @AlexAndorra!
One thing to consider is that the constant eigenfunction is currently missing from Neumann. Even though it's super useful to omit, it should probably be included by default. So one possibility would be to make something called zero-mean-neumann. But we don't need to figure this out now! That's why I created this repo! :wink:
The most important issue I see is that the formula for mixed BCs is a bit off. The problem is that the weighted sum of sinusoids is no longer a perfect sinusoid. The correct formula would be something like $\sin(k x)$ for whichever values of $k$ have derivative zero at the right-endpoint. It'd be nice to fix this before merging, but we could merge/release now and fix later if you're in a rush.
Another naming issue to consider that we don't have to solve now is that "mixed" could also mean Neumann at the left and Dirichlet at the right, so it would probably be better to instead have both "dirichlet-neumann" and "neumann-dirichlet".

For the new API I'm thinking along the lines of an abstract HilbertSpaceBasis class of which you'd implement as something like Interval(a, b, boundary_conditions="neumann-dirichlet").

One thing to consider is that the constant eigenfunction is currently missing from Neumann. Even though it's super useful to omit, it should probably be included by default. So one possibility would be to make something called zero-mean-neumann.

Definitely down for this (you had me at zero-mean 😅 ). Can you explicit a bit what you mean though? I'm not sure I understand for now

Thanks for your helpful input @maresb !

One thing to consider is that the constant eigenfunction is currently missing from Neumann. Even though it's super useful to omit, it should probably be included by default. So one possibility would be to make something called zero-mean-neumann.

Definitely down for this (you had me at zero-mean 😅 ). Can you explicit a bit what you mean though? I'm not sure I understand for now

The correct formula would be something like sin  ( k x ) for whichever values of k have derivative zero at the right-endpoint

I'm in no rush, so let's fix that. Do you have some pseudo-code in mind, to guide my intuition?

it would probably be better to instead have both "dirichlet-neumann" and "neumann-dirichlet"

For sure. I'll include this in my next batch of commits.

Ya, sure! Basically I'm saying you need to modify the eigenvalues.
The eigenvalue for $\sin(kx)$ or $\cos(kx)$ is $k^2$. Thus to compute eigenvalues, we need to compute valid values of $k$ and square them.
With Dirichlet we fix the left boundary at $x=0$ by choosing $\sin(kx)$. For the right endpoint we need the value at the right endpoint $x=2L$ to be zero, so the equation is $\sin(2Lk)=0$. The $\sin$ function is zero when its argument is an integer multiple of $\pi$. Thus the values of $k$ satisfying the right-hand boundary condition are
$$k=0, \, \pi/(2L), \, 2\pi/(2L), \, 3\pi/(2L), \, \ldots$$
The eigenfunctions with $k<0$ are duplicates (up to a sign) so they are excluded. Also note that although $k=0$ is a solution, it must be excluded since it corresponds to the zero function which is not normalizable.
In contrast, when we do Neumann, we fix the left boundary at $x=0$ by choosing $\cos(kx)$. For the right endpoint we need the derivative at the right endpoint $x=2L$ to be zero. Coincidentally we get the same equation for the valid values of $k$. But this time $k=0$ corresponds to the function $f(x)=1$, so it must be included (unless it's specifically excluded for a special purpose such as the zero-mean constraint).
Finally, to figure out Dirichlet-Neumann, we choose $\sin(kx)$ to deal with the left endpoint. To deal with the right endpoint we need to solve $\cos(kx)=0$ at $x=2L$, so we get
$$k=\pi/(4L), \, 3\pi/(4L), \, 5\pi/(4L), \, 7\pi/(4L), \, \ldots$$
Hopefully I didn't make any mistakes, but if this is clear then I'll leave Neumann-Dirichlet to you.
The way the code is currently structured it seems a bit awkward to modify the eigenvalues in the ways I'm suggesting. I'm not sure how best to do it, but this is why I'm inclined to rewrite some parts so that we can do this more easily.


Make hour time differences less verbose

It'd be quite involved to remove about only for the recent releases so I've trimmed it in our generic time delta function.
Fixes #313

Yea, absolutely. It's never important on a site like this. "About" is implicit.


Build failure:  vulkan-validation-layers-1.3.268.0

Steps To Reproduce
Steps to reproduce the behavior:

build vulkan-validation-layers

Build log
https://gist.github.com/khaneliman/f00a01e44bd586a274955b875324a890#file-vulkan-validation-layers-1-3-268-0-drv-error
Additional context
Add any other context about the problem here.
Notify maintainers
@Ralith

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
nix-shell -p nix-info --run "nix-info -m"
🔨 Welcome to khanelinix
 - system: `"x86_64-linux"`
 - host os: `Linux 6.6.1, NixOS, 23.11 (Tapir), 23.11.20231114.bf744fe`
 - multi-user?: `yes`
 - sandbox: `relaxed`
 - version: `nix-env (Nix) 2.18.1`
 - channels(root): `""`
 - nixpkgs: `/etc/nix/inputs/nixpkgs`

Looks to have been a race condition during large update from recent wave. Running flake switch repeatedly progressed past it.

The dependency causing this is vulkan-utility-libraries: 1.3.269 -> 1.3.270
This version bump causes vulkan-validation-layers to fail.
https://github.com/NixOS/nixpkgs/blob/d08965eda2fa4107af04f9839d460a3fd1372d90/pkgs/development/libraries/vulkan-utility-libraries/default.nix

The latest SDK version is 1.3.268. vulkan-utility-libraries should be rolled back to that version; we should not be packaging non-SDK versions of Vulkan SDK components, and especially not piecemeal.


Use the same timestamp when record is encoded using multiple encoders.

This simplifies matching the log entries when more than one log appender
is used.
Unfortunately I am not able to figure out how to implement this without breaking the public API.

@im-0 I'm interested in lending a hand to get this across the finish line if we can figure out how to not make a breaking change. Are you still interesting in working on this?

@im-0 I'm going to close this for now due to inactivity. If you're interested in moving this forward in the future lmk and I'll be happy to help.

I noticed today that my logfile and stderr appenders had different timestamps. Code says that encoders are responsible for getting a timestamp.
@estk, the pull request would have introduced an ExtendedRecord type, a wrapper around log::Record. What's the reason? serialization/deserialization compatibility? What needs to be done to add a timestamp directly to log::Record? This seems such a vital part of a log record.

Oh, I misread. log is not a module of log4rs, but the log crate. Nevermind. Sorry for the noise.


Question: help with example configuration

Hello, first off thank you for creating this library.  I am building a grpc server and attempting to integrate you library so I can log the grpc interaction.   I have referenced your example called  Example_serverInitializationWithOptions() and that seems to producing lots of output.  I have tried implementing the basic Example_serverInitializationSimple () but I don't seem to be getting the output (which I expect should be the same as the with Options since it just using defaults).  That is problem 1.
The 2nd problem is that I seem to be getting very little calls out of the ServerInterceptor methods.  After implementing the  Example_serverInitializationWithOptions() grpc server options and setting the payload to Zerolog.Disable for both Stream and Unary, I only see this when calling calling a very basic Unary call.  I have ConsoleWriter current turned on for my output in Zerolog.
5:37:01 PM INF Starting Server listener=[::]:50051
5:37:11 PM DBG ConnectionTest Executing
5:37:11 PM INF finished unary call grpc.code=OK grpc.method=ConnectionTest grpc.service=remoteprocessmanager.RemoteProcessManager grpc.time_ms=0.09577

Is this the expected behavior or should I be seeing the initial call.  I am running the following.
	github.com/pereslava/grpc_zerolog v0.0.3
	github.com/rs/zerolog v1.25.0
	google.golang.org/grpc v1.40.0
	google.golang.org/protobuf v1.27.1

Any help would be great!

@jwomackgsa
Thank you for feedback.
I'm not sure that i completely have understood the problem, but anyway bellow the code i used for tests (i also upgraded the dependecies to be match to your)
package main

import (
	"context"
	"fmt"
	"loggers/generated/pb"
	"net"
	"time"

	"github.com/pereslava/grpc_zerolog"

	"github.com/rs/zerolog"
	"github.com/rs/zerolog/log"
	"google.golang.org/grpc"
	"google.golang.org/grpc/codes"
	"google.golang.org/grpc/status"
)

var (
	customDecider             grpc_zerolog.Decider        = grpc_zerolog.DefaultDeciderFunc
	customPayloadDecider      grpc_zerolog.PayloadDecider = grpc_zerolog.DefaultPayloadDecider
	customCodeToLevelFunction grpc_zerolog.CodeToLevel    = grpc_zerolog.DefaultCodeToLevelFunc
)

func main() {
	addr := ":9000"
	conn, err := net.Listen("tcp", addr)
	if err != nil {
		log.Fatal().Err(err).Msgf("Cannot listen to address %s", addr)
	}

	s := grpc.NewServer(
		grpc.ChainUnaryInterceptor(
			grpc_zerolog.NewPayloadUnaryServerInterceptor(
				log.Logger,
				grpc_zerolog.WithPayloadDecider(customPayloadDecider),
				grpc_zerolog.WithPayloadLevel(zerolog.Disabled),
			),
			grpc_zerolog.NewUnaryServerInterceptor(
				log.Logger,
				grpc_zerolog.WithDecider(customDecider),
				grpc_zerolog.WithLevels(customCodeToLevelFunction),
			),
		),
		grpc.ChainStreamInterceptor(
			grpc_zerolog.NewPayloadStreamServerInterceptor(
				log.Logger,
				grpc_zerolog.WithPayloadDecider(customPayloadDecider),
				grpc_zerolog.WithPayloadLevel(zerolog.InfoLevel),
			),
			grpc_zerolog.NewStreamServerInterceptor(
				log.Logger,
				grpc_zerolog.WithDecider(customDecider),
				grpc_zerolog.WithLevels(customCodeToLevelFunction),
			),
		),
	)
	pb.RegisterHelloServiceServer(s, &server{})

	log.Info().Str("Address", addr).Msg("grpc serving")
	if err := s.Serve(conn); err != nil {
		log.Fatal().Err(err).Msg("failed to serve")
	}
}

type server struct {
	pb.UnimplementedHelloServiceServer
}

var hellocalled int64 = 0

func (*server) Hello(ctx context.Context, req *pb.HelloRequest) (*pb.HelloResponse, error) {
	if req.LastName == "" && req.FirstName == "" {
		return nil, status.Error(codes.InvalidArgument, "first or last name must exist")
	}
	hellocalled++
	return &pb.HelloResponse{
		Greet:  fmt.Sprintf("Hello %s %s", req.FirstName, req.LastName),
		Number: hellocalled,
	}, nil
}

func (*server) ServerStreamDemo(req *pb.ServerStreamRequest, stream pb.HelloService_ServerStreamDemoServer) error {
	if req.Ticks == 0 {
		return status.Error(codes.InvalidArgument, "ticks cannot be 0")
	}

	for i := int32(0); i < req.Ticks; i++ {
		if err := stream.Send(&pb.ServerStreamResponse{Tick: i + 1}); err != nil {
			return err
		}
		time.Sleep(time.Second)
	}
	return nil
}

and the proto file:
syntax = "proto3";

package loggers;
option go_package = "generated/pb";

service HelloService {
  rpc Hello(HelloRequest) returns (HelloResponse) {}
  rpc ServerStreamDemo(ServerStreamRequest) returns (stream ServerStreamResponse) {}
}

message HelloRequest {
  string first_name = 1;
  string last_name = 2;
}

message HelloResponse {
  string greet = 1;
  int64 number = 2;
}

message ServerStreamRequest {
  int32 ticks = 1;
}

message ServerStreamResponse {
  int32 tick = 1;
}

In this example the configuration just copied from Example with options and the payload interceptor for Unary Call is disabled, but enabled with Trace level for the Stream Call. And i see the output as expected:
For unary call:
{"level":"info","grpc.service":"loggers.HelloService","grpc.method":"Hello","grpc.code":"OK","grpc.time_ms":0.007837,"time":"2021-09-28T11:31:43+03:00","message":"finished unary call"}

And for stream:
{"level":"info","grpc.service":"loggers.HelloService","grpc.method":"ServerStreamDemo","grpc.request.payload":{"ticks":10},"time":"2021-09-28T11:31:29+03:00"}
{"level":"info","grpc.service":"loggers.HelloService","grpc.method":"ServerStreamDemo","grpc.response.payload":{"tick":1},"time":"2021-09-28T11:31:29+03:00"}
{"level":"info","grpc.service":"loggers.HelloService","grpc.method":"ServerStreamDemo","grpc.response.payload":{"tick":2},"time":"2021-09-28T11:31:30+03:00"}
{"level":"info","grpc.service":"loggers.HelloService","grpc.method":"ServerStreamDemo","grpc.response.payload":{"tick":3},"time":"2021-09-28T11:31:31+03:00"}
{"level":"info","grpc.service":"loggers.HelloService","grpc.method":"ServerStreamDemo","grpc.response.payload":{"tick":4},"time":"2021-09-28T11:31:32+03:00"}
{"level":"info","grpc.service":"loggers.HelloService","grpc.method":"ServerStreamDemo","grpc.response.payload":{"tick":5},"time":"2021-09-28T11:31:33+03:00"}
{"level":"info","grpc.service":"loggers.HelloService","grpc.method":"ServerStreamDemo","grpc.response.payload":{"tick":6},"time":"2021-09-28T11:31:34+03:00"}
{"level":"info","grpc.service":"loggers.HelloService","grpc.method":"ServerStreamDemo","grpc.response.payload":{"tick":7},"time":"2021-09-28T11:31:35+03:00"}
{"level":"info","grpc.service":"loggers.HelloService","grpc.method":"ServerStreamDemo","grpc.response.payload":{"tick":8},"time":"2021-09-28T11:31:36+03:00"}
{"level":"info","grpc.service":"loggers.HelloService","grpc.method":"ServerStreamDemo","grpc.response.payload":{"tick":9},"time":"2021-09-28T11:31:37+03:00"}
{"level":"info","grpc.service":"loggers.HelloService","grpc.method":"ServerStreamDemo","grpc.response.payload":{"tick":10},"time":"2021-09-28T11:31:38+03:00"}
{"level":"info","grpc.service":"loggers.HelloService","grpc.method":"ServerStreamDemo","grpc.code":"OK","grpc.time_ms":10006.065194,"time":"2021-09-28T11:31:39+03:00","message":"finished stream call"}

So unary call ends up with single log line without output parameters and the stream call outputs every stream response with payload and the last line coming from the Stream Interceptor.
This is exactly like was initialized in the code above. So i don't understand what do you mean when you say lot of output.
Regarding the second if i understand correctly, you want to disable output at all.
So the option 'grpc_zerolog.WithPayloadLevel(zerolog.Disabled)' affects only payload interceptor (the payload will not be logged).
To disable the Unary interceptor you can pass 'log.Logger.Level(zerolog.Disabled)' to the first parameter of grpc_zerolog.NewUnaryServerInterceptor.
For unary interceptor you can also configure the log level by grpc_zerolog.WithLevels option which is a function returns the log level depends on grpc status (you can look at 'ExampleWithLevels')
To summarize:
The Unary interceptor log level can be configured by passing the configured zerolog instance to constructor or by writing CodeToLevel function and pass it to interceptor with grpc_zerolog.WithLevels option.
The Stream interceptor log level can be configured by passing he configured zerolog instance to constructor as well or by pass the log level to 'grpc_zerolog.WithPayloadLevel' option.
There are difference between Unary and Stream interceptors is that the Unary interceptors uses function to out to desired log level, and the Stream interceptors use the log level not depend on grpc status.
Hope it is clear and you enjoy this library :)

Hello,  thanks for the quick reply and sorry for the confusing questions.  I will confirm I am seeing similar output as your example when I use your similar code based on the example.  So we are all good there. For some reason I thought I would get more logging from grpc-go like "received unary call" followed by "finished unary call", but I guess that is all the grpc-go library logs.
The follow-on question is about the example named Example_serverInitializationSimple().  Since this doesn't include the different deciders or levels, what logging should be expected out of this setup?  Should I be getting payload with this configuration or only when using the additional options?

Is grpc_zerolog.ReplaceGrpcLogger() only require if you want to cast all grpc logs as a certain level?

Hi again,
In general the Example_serverInitializationSimple will produce output almost same as example with options. Just because the example with option shows how to set different options to the constructors, but in the fact, it uses same defaults. The only difference in output of example with options is that the payload interceptor logger is disabled. So the answer on your original question is yes, it is expected. I mean the output to the console logger will be:
5:37:01 PM INF Starting Server listener=[::]:50051
5:37:11 PM DBG ConnectionTest Executing
5:37:11 PM INF finished unary call grpc.code=OK grpc.method=ConnectionTest grpc.service=remoteprocessmanager.RemoteProcessManager grpc.time_ms=0.09577

And yes, you are right, the second line coming from grpc-go. And this is a reason why in examples code i state:
grpc_zerolog.ReplaceGrpcLogger(zerolog.New(os.Stderr).Level(zerolog.ErrorLevel))

In the code bellow i set up the logger of go-grpc to level Error. because i think the DEBUG level of grpc-go is not interesting much and in most cases we want to opt-out logging of grpc-go except of errors.
And yes, grpc_zerolog.ReplaceGrpcLogger() required if you want (and probably you want) messages comes from go-grpc to be in same format as rest of your loggers.


Add LLNL to the README as a named contributor

This incorporates LLNL as a named contributor to the project. @IanLee1521 and @h-m-f-t, what do you think?

👍  Thanks for your contributions, @IanLee1521!


Recursive model with discriminated union has exponential time and space complexity for validation

Initial Checks

[X] I confirm that I'm using Pydantic V2

Description
When validating the recursive model given in the example, Pydantic has exponential time and space complexity, meaning that validation time and memory usage may grow indefinitely and rapidly depending on model depth, even when using a discriminator field.
Given the presence of a discriminator field, this should not be the case.
A model like this can potentially be abused in a denial-of-service attack, if the data passed to the validator can be controlled by the user.
Example Code
from __future__ import annotations
from typing import Literal, Annotated
from pydantic import Field, TypeAdapter, BaseModel

class NestedState(BaseModel):
    state_type: Literal["nested"]
    substate: AnyState

# If this type is left out, the model behaves normally again
class LoopState(BaseModel):
    state_type: Literal["loop"]
    substate: AnyState

class LeafState(BaseModel):
    state_type: Literal["leaf"]

AnyState = Annotated[NestedState | LoopState | LeafState, Field(..., discriminator="state_type")]

def build_nested_state(n):
    if n <= 0:
        return {"state_type": "leaf"}
    else:
        return {"state_type": "loop", "substate": {"state_type": "nested", "substate": build_nested_state(n-1)}}

adapter = TypeAdapter(AnyState)

# the next statement takes around 0.8s
adapter.validate_python(build_nested_state(9))

# the next statement takes around 3.5s
adapter.validate_python(build_nested_state(10))

# the next statement takes around 12.5s
adapter.validate_python(build_nested_state(11))

Python, Pydantic & OS Version
pydantic version: 2.6.0
        pydantic-core version: 2.16.1
          pydantic-core build: profile=release pgo=true
                 install path: /<redacted>/venv-3.11/lib/python3.11/site-packages/pydantic
               python version: 3.11.7 (main, Dec  4 2023, 18:10:11) [Clang 15.0.0 (clang-15<IP_ADDRESS>.5)]
                     platform: macOS-14.3-arm64-arm-64bit
             related packages: fastapi-0.105.0 typing_extensions-4.8.0 pydantic-settings-2.1.0
                       commit: unknown

@palle-k,
Thanks for reporting this. @davidhewitt, could you please take a look at this performance issue when you have a chance? Thank you!

It looks like there's a potential schema-building bug here.
The core schema looks like this:
{'definitions': [{'cls': <class '__main__.NestedState'>,
                  'config': {'title': 'NestedState'},
                  'custom_init': False,
                  'metadata': {'pydantic.internal.needs_apply_discriminated_union': False,
                               'pydantic_js_annotation_functions': [],
                               'pydantic_js_functions': [functools.partial(<function modify_model_json_schema at 0x7fba5440fce0>, cls=<class '__main__.NestedState'>),
                                                         <bound method BaseModel.__get_pydantic_json_schema__ of <class '__main__.NestedState'>>]},
                  'ref': '__main__.NestedState:94515929304032',
                  'root_model': False,
                  'schema': {'computed_fields': [],
                             'fields': {'state_type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func at 0x7fba54486fc0>],
                                                                    'pydantic_js_functions': []},
                                                       'schema': {'expected': ['nested'],
                                                                  'metadata': {'pydantic.internal.needs_apply_discriminated_union': False},
                                                                  'type': 'literal'},
                                                       'type': 'model-field'},
                                        'substate': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func at 0x7fba54487100>],
                                                                  'pydantic_js_functions': []},
                                                     'schema': {'default': Ellipsis,
                                                                'schema': {'choices': [{'metadata': {'pydantic.internal.needs_apply_discriminated_union': False},
                                                                                'schema_ref': '__main__.NestedState:94515929304032',
                                                                                'type': 'definition-ref'},
                                                                                {'metadata': {'pydantic.internal.needs_apply_discriminated_union': False},
                                                                                'schema_ref': '__main__.LoopState:94515929369184',
                                                                                'type': 'definition-ref'},
                                                                                {'metadata': {'pydantic.internal.needs_apply_discriminated_union': False},
                                                                                'schema_ref': '__main__.LeafState:94515929326848',
                                                                                'type': 'definition-ref'}],
                                                                           'metadata': {'pydantic.internal.needs_apply_discriminated_union': True,
                                                                                'pydantic.internal.union_discriminator': 'state_type'},
                                                                           'type': 'union'},
                                                                'type': 'default'},
                                                     'type': 'model-field'}},
                             'model_name': 'NestedState',
                             'type': 'model-fields'},
                  'type': 'model'},
                 {'cls': <class '__main__.LoopState'>,
                  'config': {'title': 'LoopState'},
                  'custom_init': False,
                  'metadata': {'pydantic.internal.needs_apply_discriminated_union': False,
                               'pydantic_js_annotation_functions': [],
                               'pydantic_js_functions': [functools.partial(<function modify_model_json_schema at 0x7fba5440fce0>, cls=<class '__main__.LoopState'>),
                                                         <bound method BaseModel.__get_pydantic_json_schema__ of <class '__main__.LoopState'>>]},
                  'ref': '__main__.LoopState:94515929369184',
                  'root_model': False,
                  'schema': {'computed_fields': [],
                             'fields': {'state_type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func at 0x7fba544871a0>],
                                                                    'pydantic_js_functions': []},
                                                       'schema': {'expected': ['loop'],
                                                                  'metadata': {'pydantic.internal.needs_apply_discriminated_union': False},
                                                                  'type': 'literal'},
                                                       'type': 'model-field'},
                                        'substate': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func at 0x7fba54487380>],
                                                                  'pydantic_js_functions': []},
                                                     'schema': {'default': Ellipsis,
                                                                'schema': {'choices': [{'metadata': {'pydantic.internal.needs_apply_discriminated_union': False},
                                                                                'schema_ref': '__main__.NestedState:94515929304032',
                                                                                'type': 'definition-ref'},
                                                                                {'metadata': {'pydantic.internal.needs_apply_discriminated_union': False},
                                                                                'schema_ref': '__main__.LoopState:94515929369184',
                                                                                'type': 'definition-ref'},
                                                                                {'metadata': {'pydantic.internal.needs_apply_discriminated_union': False},
                                                                                'schema_ref': '__main__.LeafState:94515929326848',
                                                                                'type': 'definition-ref'}],
                                                                           'metadata': {'pydantic.internal.needs_apply_discriminated_union': True,
                                                                                'pydantic.internal.union_discriminator': 'state_type'},
                                                                           'type': 'union'},
                                                                'type': 'default'},
                                                     'type': 'model-field'}},
                             'model_name': 'LoopState',
                             'type': 'model-fields'},
                  'type': 'model'},
                 {'cls': <class '__main__.LeafState'>,
                  'config': {'title': 'LeafState'},
                  'custom_init': False,
                  'metadata': {'pydantic.internal.needs_apply_discriminated_union': False,
                               'pydantic_js_annotation_functions': [],
                               'pydantic_js_functions': [functools.partial(<function modify_model_json_schema at 0x7fba5440fce0>, cls=<class '__main__.LeafState'>),
                                                         <bound method BaseModel.__get_pydantic_json_schema__ of <class '__main__.LeafState'>>]},
                  'ref': '__main__.LeafState:94515929326848',
                  'root_model': False,
                  'schema': {'computed_fields': [],
                             'fields': {'state_type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func at 0x7fba54484fe0>],
                                                                    'pydantic_js_functions': []},
                                                       'schema': {'expected': ['leaf'],
                                                                  'metadata': {'pydantic.internal.needs_apply_discriminated_union': False},
                                                                  'type': 'literal'},
                                                       'type': 'model-field'}},
                             'model_name': 'LeafState',
                             'type': 'model-fields'},
                  'type': 'model'}],
 'schema': {'choices': {'leaf': {'schema_ref': '__main__.LeafState:94515929326848',
                                 'type': 'definition-ref'},
                        'loop': {'schema_ref': '__main__.LoopState:94515929369184',
                                 'type': 'definition-ref'},
                        'nested': {'schema_ref': '__main__.NestedState:94515929304032',
                                   'type': 'definition-ref'}},
            'discriminator': 'state_type',
            'from_attributes': True,
            'metadata': {'pydantic.internal.needs_apply_discriminated_union': True,
                         'pydantic.internal.union_discriminator': 'state_type'},
            'strict': False,
            'type': 'tagged-union'},
 'type': 'definitions'}

In particular the interesting bit to me is that we have 3 definitions instead of 4; the AnyState union is inlined in each model. But in the inlined model copies it is 'type': 'union' instead of 'type': 'tagged-union', which would explain where there's linear search rather than tagged dispatch at each level.
Hence the exponential blowup.
cc @adriangb as the schema building expert ;)

The schema simplifies to:
{
    "type": "definitions",
    "schema": {
        "type": "tagged-union",
        "choices": {
            "nested": {
                "type": "definition-ref",
                "schema_ref": "__main__.NestedState:4587657680"
            },
            "loop": {
                "type": "definition-ref",
                "schema_ref": "__main__.LoopState:4587670848"
            },
            "leaf": {
                "type": "definition-ref",
                "schema_ref": "__main__.LeafState:5124597648"
            }
        },
        "discriminator": "state_type"
    },
    "definitions": [
        {
            "type": "model",
            "cls": "__main__.LeafState",
            "schema": {
                "type": "model-fields",
                "fields": {
                    "state_type": {
                        "type": "model-field",
                        "schema": {
                            "type": "literal",
                            "expected": [
                                "leaf"
                            ]
                        }
                    }
                },
                "model_name": "LeafState"
            },
            "ref": "__main__.LeafState:5124597648"
        },
        {
            "type": "model",
            "cls": "__main__.LoopState",
            "schema": {
                "type": "model-fields",
                "fields": {
                    "state_type": {
                        "type": "model-field",
                        "schema": {
                            "type": "literal",
                            "expected": [
                                "loop"
                            ]
                        }
                    },
                    "substate": {
                        "type": "model-field",
                        "schema": {
                            "type": "default",
                            "schema": {
                                "type": "union",
                                "choices": [
                                    {
                                        "type": "definition-ref",
                                        "schema_ref": "__main__.NestedState:4587657680"
                                    },
                                    {
                                        "type": "definition-ref",
                                        "schema_ref": "__main__.LoopState:4587670848"
                                    },
                                    {
                                        "type": "definition-ref",
                                        "schema_ref": "__main__.LeafState:5124597648"
                                    }
                                ]
                            }
                        }
                    }
                }
            },
            "ref": "__main__.LoopState:4587670848"
        },
        {
            "type": "model",
            "cls": "__main__.NestedState",
            "schema": {
                "type": "model-fields",
                "fields": {
                    "state_type": {
                        "type": "model-field",
                        "schema": {
                            "type": "literal",
                            "expected": [
                                "nested"
                            ]
                        }
                    },
                    "substate": {
                        "type": "model-field",
                        "schema": {
                            "type": "default",
                            "schema": {
                                "type": "union",
                                "choices": [
                                    {
                                        "type": "definition-ref",
                                        "schema_ref": "__main__.NestedState:4587657680"
                                    },
                                    {
                                        "type": "definition-ref",
                                        "schema_ref": "__main__.LoopState:4587670848"
                                    },
                                    {
                                        "type": "definition-ref",
                                        "schema_ref": "__main__.LeafState:5124597648"
                                    }
                                ]
                            }
                        }
                    }
                }
            },
            "ref": "__main__.NestedState:4587657680"
        }
    ]
}

The issue is that the tagged union is not carried along so it's loss after the first union and thus performance degrades.
So yes it's a schema generation bug.
@sydney-runkle is that enough to go off of? I'm guessing we're not doing the apply_discrimnators stuff correctly.

Hmm, this looks similar to this issue: https://github.com/pydantic/pydantic/issues/8688, which we fixed here https://github.com/pydantic/pydantic/pull/8702 for the 2.6.1 release. @palle-k, could you please confirm whether or not this issue has been resolved with 2.6.1?

@davidhewitt, ah rats, ok 🐀.

+1 this seems pretty critical 😬, is there any workaround?

This is a regression because I don't see this issue with
pydantic==2.4.2
pydantic_core==2.10.1

@rossmacarthur,
Thanks for the +1. I've added to the list of issues we'll attempt to fix for 2.6.2. Hopefully we can get that release out next week. I'll keep you updated as we progress. I don't currently know of a workaround for this performance issue.

Here's a somewhat clumsy workaround:
from __future__ import annotations
from typing import Any, Literal, Annotated
from pydantic import AfterValidator, Field, TypeAdapter, BaseModel
import time

def validate_any_state(value: Any):
    return _ADAPTER.validate_python(value)

AnyState = Annotated[Any, AfterValidator(validate_any_state)]

class NestedState(BaseModel):
    state_type: Literal["nested"]
    substate: AnyState

# If this type is left out, the model behaves normally again
class LoopState(BaseModel):
    state_type: Literal["loop"]
    substate: AnyState

class LeafState(BaseModel):
    state_type: Literal["leaf"]

_ADAPTER = TypeAdapter(Annotated[NestedState | LoopState | LeafState, Field(..., discriminator="state_type")])

def build_nested_state(n):
    if n <= 0:
        return {"state_type": "leaf"}
    else:
        return {"state_type": "loop", "substate": {"state_type": "nested", "substate": build_nested_state(n-1)}}

for i in range(13):
    start = time.time()
    _ADAPTER.validate_python(build_nested_state(i))
    print(f"Time for {i}: {time.time() - start}")

It works by cutting the recursive model apart a bit crudely with the AfterValidator. This has downsides; it's opaque to pydantic-core so will affect the way that things like model_config are propagated and usually an AfterValidator is not as efficient as builtin design, if we can support it. In this case while we've got the performance bug the AfterValidator performs significantly better 😂
Disclaimer: I haven't checked if doing this creates other unexpected effects. YMMV.

I git bisected pydantic and pydantic-core and the bug was introduced in these commits
pydantic: bump pydantic-core to 2.14.0: https://github.com/pydantic/pydantic/commit/fb8a5946f5e167a7bf0b1cdecbfc9e28592685b8
pydantic-core: replace ultra_strict with new union implementation: https://github.com/pydantic/pydantic-core/commit/f409e0013e4f7b1937c2bd14ca877f7d27541be3

Okay, it looks like using union_mode="left_to_right" doesn't have this problem

Thanks for checking that 👍
Given that those commits changed the way a non-tagged union is evaluated, that's not a huge surprise. I suspect that the truth is the schema building bug illustrated above existed before those commits, but the newer smart union implementation (which tries to be more accurate in which type gets produced) exacerbated the existing bug.

If anyone else needs a workaround until this fixed I'm currently using a Discriminator with a custom function and annotating each type with Tag. The built schema always has a tagged-union in this case:
def get_state_type(v: Any) -> Hashable:
    if isinstance(v, dict):
        return v.get("state_type")
    return getattr(v, "state_type", None)

AnyState = Annotated[
    Annotated[NestedState, Tag("nested")]
    | Annotated[LoopState, Tag("loop")]
    | Annotated[LeafState, Tag("leaf")],
    Discriminator(get_state_type),
]

@sydney-runkle by the way, as I've mentioned previously, this issue can lead to a denial of service attack (and I did find apps which are vulnerable to this issue). Should we publish a security advisory somewhere?

Facing this issue as well at both the 01 and open-interpreter projects. Things were working fine for me yesterday, but since today morning, my FastAPI server does not start due to this Pydantic schema issue. This is also coming up in my OpenAI dependency, for which I've opened an issue here.
I did a memray memory profile to investigate further. Here is the report from open-interpreter, and here is the report from the 01 project. In both, the inflated memory seems to be due to this issue, since both FastAPI and OpenAI use Pydantic.
Could you give a timeline for this issue to be fixed? If this is not expected soon, could you give a patch I can apply in the meantime?
cc @KillianLucas

Hi all,
Given the significance of this bug, we're working on a fix now, and will plan to do a 2.6.3 release with said fix, once we have it! We'll keep this thread updated as we progress.

Hey all 😄,
After some extended debugging, we found a fix, and will release 2.6.3 today with the changes. Please ping me if you're experiencing any other issues. Happy coding! 🚀


Document usage with GridLayers

The example mentions "tile layers", and users might assume that this plugin works only with L.TileLayers.
Given that the plugin monkey-patches L.GridLayer, and that things like L.GridLayer.GoogleMutant interact with this plugin, I suggest adding a note to the readme, like

This plugin adds a new option to all instances of L.GridLayer and L.TileLayer:

Well spotted, thanks.

... monkey-patches ...

Ouch! I assume by that you disapprove of my patching technique? ;)

No, it's just how "extending the functionality of an existing javascript class prototype by replacing the implementation of one of its methods" is called in layman's terms :smile:

>.< How embarrassing...I'd best do some homework... :)


rake (+ cxgen) can't build sub package

The two examples below could be two related but different issues.

[ ] rake should build subpackages
[ ] cxgen should generated nested scopes

Example 1

There is a package called test inside the profiling package.
cd to the test subpackage. Run rake clobber default. Instead of generating files for implementation of the TestProfiling class, it only creates wrappers for the ::cortex::test types.
The build system generated wrappers for dependency packages, but did not generate the current package.
Example 2
Create an autorun package inside $CORTEX_HOME/packages/cortex/test. cd to this directory. Create a couple of types. Run rake clobber default. It doesn't build: complains there isn't an autorun package.

This issue was fixed by issue #262


Update doc to mention proper meta

To use expose-testables functions must have the :testable meta and not :private.

cool, thanks for the patch!


refactor: move package to turborepo

What does this PR introduce?
Move package to multiple packages, use pnpm and turbo

Decided to not implement monorepo as it will introduce circular dependencies and reduce from flexibility of using packages within packages


You appear to be reinventing Conda / PyPi / FuseSoC / etc - consider just being a wrapper for existing ecosystems?

Reading the description of volare, it sounds like you are quickly starting to reinvent existing tooling like Conda / Pip / FuseSoC / etc. Your tool_metadata.yml file sounds a lot like Conda's environment.yml and Pip's requirements.txt. These existing systems have quite a large amount of tooling already written for them.
Have you considered making volare just a thin wrapper around these existing solutions (if it isn't already)?
I know that @olofk and @proppy where looking at this problem too. @umarcor, @kgugala and @carlosedp have been working on similar problems in the FPGA space.

PIP has a 60 MB storage upload limit and has no inherent provision for switching between versions, but was in consideration.
Conda already has sky130 builds, and this tool is designed for condaless setups.
The tool_metadata.yml file is indeed similar, but not identical, as it is used in OpenLane and DFFRAM's build systems, which do not use conda. And is entirely nonconsequential to the existence of volare itself, as all volare does with tool_metadata.yml is provide a convenience function. Volare can be used independent of said manifest file.
This is a tool laser-focused on managing PDKs and switching between them quickly. Think of it more like a version manager along the lines of tj/n or pyenv for PDKs rather than a fully-fledged package manager.

pip can install from other locations than just PyPi -- see the options at https://pip.pypa.io/en/stable/cli/pip_install/#examples

I'm aware. But the no multiple-version-management part stands.


How to use with REST?

I am unable to use gRPC in my current environment, I am wondering how I can make the client default to using the REST Transport methods instead of gRPC. Thanks!

Hi Andrew,
You can select which type of transport to use for vector operations in the following way:
using Pinecone.Rest;

// Assuming you have a PineconeClient instance named 'pinecone'
using var index = await pinecone.GetIndex<RestTransport>(indexName);

Keep in mind that Pinecone had a lot of semi-breaking API changes lately, as evidenced by numerous reports on their forum for official clients, so let me know if something breaks.


da/type path resolver

imp: pathType resolves strings that look like relpaths to file
imp: add _devshelltoml module arg (only set for toml files)

fixes: #95

Oops, I missed a bunch of PRs. Is this really working? It's hard to wrap my head around the implementation but color me impressed :)

^^ noted, will try to carve out a spot to context switch.


MM-18239 Refactor actions/views/root.js::loadTranslations to have a single point of return.

Summary
Refactor actions/views/root.js::loadTranslations to have a single point of return.
Ticket Link
Fixes https://github.com/mattermost/mattermost-server/issues/12515

Thanks @IpsumCapra for the pull request!
Per the CONTRIBUTING.md file displayed when you created this pull request, we need to add you to the list of approved contributors for the Mattermost project.
Please help complete the Mattermost contribution license agreement?
This is a standard procedure for many open source projects. Your form should be processed within 24 hours and reviewers for your pull request will be able to proceed.
Please let us know if you have any questions.
We are very happy to have you join our growing community! If you're not yet a member, please consider joining our Contributors community channel to meet other contributors and discuss new opportunities with the core team.

This issue has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @hanzei

Hi @IpsumCapra,
Do you have any questions about the feedback?

Been busy with college, sorry for the late reply.
Will start work on this asap, no questions right now, thanks!

Hey @IpsumCapra! No hurry on this issue, but just wanted to check in to see if you had any questions.


🦡 [App Badges] Set badge count on activities tab bar item

📲 What
Sets the app's current badge count value on the activities tab bar item.
This is part of a larger body of work to bring badging to the app. Future PR's will include:

resetting badge count upon navigating to the activities tab.
making a GraphQL request to reset the count on the back-end.
updating the badge count when a push notification is received while the app is open.

🤔 Why
We've allowed for badges in the app for some time now but work has recently been done to support this on the back-end. This brings additional functionality to allow us to display the amount of unread activities in the app and to mark them as read via GraphQL.
🛠 How

On app launch set the value of AppEnvironment.current.application.applicationIconBadgeNumber which is UIApplication.shared.applicationIconBadgeNumber via our ApplicationType protocol on AppEnvironment.
Clamp this value at 99 and display a + if this value exceeds that.
Do not show a badge for 0 or less.

👀 See

0 unread
5 unread
99 unread
> 99 unread

✅ Acceptance criteria

[ ] Badge count reflects current value of UIApplication.shared.applicationIconBadgeNumber on app launch.
[ ] No badge is shown for zero or less.
[ ] 99+ is shown for an amount greater than 99.

 New activity indicator inside the app

Wondering about accessibility...should we have a custom a11y value with more human description than 99+ ... maybe more than 99?

@dusi good point, will address a11y in a separate PR 👍


The search method is deprecated ?

Hello, I have an error when using the search method of Query class, it throw me this exception:
Call to undefined method Spot\Entity\Manager::datasourceOptions()
Which is the best way to do a search?
Thanks!

I'am not familiar with the search method. Maybe I'm blind but could not find anything useful in the commit history either. @vlucas could you please help us out?

That's a bug. That should be a call to tableOptions instead.
Looks like there is a test Entity for searching, but no actual search performed in the tests or this would have been caught: https://github.com/spotorm/spot2/blob/e3c98c8fc212dc1ff83fabbea77048fb7691b12a/tests/Entity/Event/Search.php


Adding University of Illinois

Pull Request
This is a pull request to add University of Illinois to the sequencing centre enums

Witt 2021 ENA/SRA reports Brown University as sequencing center even if paper says Illinois - we should set as Unknown as we can't be sure which is which.


Update docs to clarify best use of default command

The current docs for best use of default command recommends duplicating defaults both in values.yaml and in a default command inside the template. This is not DRY, and I don't think we should recommend that. However, there are use cases where default command is not redundant (for example, computed values which can't be declared in static values.yaml). I'll open a PR for this next.

Please add docs label

@technosophos I understand the docs are meant to start simple, and add more complexity as other concepts/functions are explained - which makes sense. But IMO this statement is misleading:

It is considered good (almost mandatory) practice to set defaults with default for any object that originates from .Values.

I think that is actually false. If so, there would be no value in a values.yaml file at all (I know there are discussions elsewhere about updating how charts document these defaults, but as of Today I think we don't want to recommend people repeat a default both in values.yaml and using the default command inside templates, right?

(Bringing over my comment from my chart PR, for the sake of this discussion)
Given that, is it still considered necessary or good practice to wrap calls to values nested beyond the first level, that have defaults in values.yaml, in {{- if }} blocks like so?
{{- if .Values.foo.service }}
    - name: {{ .Values.foo.service.name }}
      port: {{ .Values.foo.service.port }}
{{- else }}
    - name: "myservice"
      port: 80
{{- end }}

...or can the conditional guards be dropped entirely in that case and just say
    - name: {{ .Values.foo.service.name }}
      port: {{ .Values.foo.service.port }}

@omkensey Conditionals still make sense, if that part of the final k8s manifest is optional. This issue is only about clarifying the part of the helm docs that says it's:

considered good (almost mandatory) practice to set defaults with default for any object that originates from .Values

The PR #2889 has a LGTM on it now, so looks like that part will be updated, while trying to preserve the original intent of this part of the docs.


minimum version for YoonitCamera

hi, today i tested YoonitCamera, but i got minimum version error when run pod, can u help? Thanks
pod 'YoonitCamera', :git => 'https://github.com/Yoonit-Labs/ios-yoonit-camera.git', :tag => '2.7.0'

Hi @fukemy
Sorry for the delay. Have you tried cleaning the build?


implement originating origin identity

added a interface to the context
Exposing the concrete classes for casting if wanted

I updated based on the comments and I also took a stab at adding a test case for making sure the Originating Origin Identity is being set.

LGTM, thanks @shawn-hurley


make fails when CUDNN_ENABLED

I'm getting a compile error when using CUDNN:
g++ -DCUDNN_ENABLED -O3 -fPIC -Wall -Wfatal-errors -I./include -I/usr/local/cuda/include -c -o src/nnet/conv_bc01_matmul.o src/nnet/conv_bc01_matmul.cpp
nvcc -gencode arch=compute_20,code=sm_20 -gencode arch=compute_20,code=compute_20 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_30,code=compute_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_35,code=compute_35 -O3 --compiler-options '-DCUDNN_ENABLED -O3 -fPIC -Wall -Wfatal-errors' --ftz=true --prec-div=false -prec-sqrt=false --fmad=true -I./include -I/usr/local/cuda/include -c -o src/nnet/pool_b01.o src/nnet/pool_b01.cu
g++ -DCUDNN_ENABLED -O3 -fPIC -Wall -Wfatal-errors -I./include -I/usr/local/cuda/include -c -o src/nnet/cudnn.o src/nnet/cudnn.cpp
In file included from src/nnet/cudnn.cpp:5:0:
src/nnet/cudnn.cpp: In instantiation of ‘void cudarray::ConvBC01CuDNN<T>::bprop(const T*, const T*, const T*, T*, T*) [with T = float]’:
src/nnet/cudnn.cpp:216:16:   required from here
src/nnet/cudnn.cpp:206:5: error: cannot convert ‘const float*’ to ‘cudnnConvolutionBwdFilterAlgo_t’ for argument ‘8’ to ‘cudnnStatus_t cudnnConvolutionBackwardFilter(cudnnHandle_t, const void*, cudnnTensorDescriptor_t, const void*, cudnnTensorDescriptor_t, const void*, cudnnConvolutionDescriptor_t, cudnnConvolutionBwdFilterAlgo_t, void*, size_t, const void*, cudnnFilterDescriptor_t, void*)’
     ));
     ^
./include/cudarray/nnet/cudnn.hpp:85:44: note: in definition of macro ‘CUDNN_CHECK’
 #define CUDNN_CHECK(status) { cudnn_check((status), __FILE__, __LINE__); }
                                            ^
compilation terminated due to -Wfatal-errors.
make: *** [src/nnet/cudnn.o] Error 1

I've got the following versions installed:

CUDA 7.5.18
CUDNN 4.0

Seems to compile OK without CUDNN.
Any ideas? If there's something I can provide that might be useful please let me know.
And thanks for the awesome package and tools!

Hi there, CUDArray doesn't yet support cuDNN 4 in the master branch. I have just created a cudnn4 branch which should fix your problem. As soon as cuDNN 4 is out officially (not as a release candidate), I will update master.
Best,
Anders

Many thanks!

Hi, @andersbll
Does CUDArray support CUDA-8.0 and cuDNN-6.0 now? I meet the same error above.


Update Doxygen Entries of Each Function Definitions in Tizen C-API Header

Add a note that this API is experimental and not stable.
6.x --> 6.0 ?

:octocat: cibot: Thank you for posting issue #414. The person in charge will reply soon.


React Router Relay - unclear how ViewerQueries ties in

For all the <Route>s you do queries={ViewerQueries} where in all the previous sections we have been building on top of this query object. So what happened to all that work we did?
I know the answer is fundamentally in the code, but as I read the section I just couldn't like the ideas.

I don't understand the issue you are describing here, can you clearify?

Sorry for being so unclear, must have been tired. So I'm talking about this section of the tutorial.
It's basically unclear why we are passing in the ViewerQueries object into the routes. The user has just spent the last few sections reading about building queries on top of viewer and it would just be nice to have some more explanation connecting the two. For example (and I'm making this up, probably wrong), 'The ViewerQueries object is passed into every route so that the component for that route can attach its query requirements to the top level query`.
Is that a little clearer?

Ok I see. Thanks for the clarification! It's a good idea to come back to the ViewerQueries as it's something familiar to the user.

Basically I'm thinking of repeating and extending on information given here: https://learnrelay.org/queries/containers-fragments#exercise-02-prepare-the-listpage-for-further-action

Yea, I think that makes sense. It’s just establishing that link between
passing the viewer object in and how/why it gets used by “sub-queries”
On Thu, Sep 22, 2016 at 10:26 AM Nilan Marktanner<EMAIL_ADDRESS>wrote:

Basically I'm thinking of repeating and extending on information given
here:
https://learnrelay.org/queries/containers-fragments#exercise-02-prepare-the-listpage-for-further-action
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/learnrelay/learnrelay/issues/30#issuecomment-248852917,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACo0E9DMAb5wXkmvA7OI5HZ43TA5hTgoks5qsknbgaJpZM4KDQgZ
.

I added a sentence on the ViewerQueries, I hope it is clear now.


Add support for Gitlab repositories

https://openssf.org/blog/2023/08/28/openssf-scorecard-launches-v4-12-with-support-for-gitlab/

Fantastic @UlisesGascon! I'll work on that!!¡
Those are good news !! 😎

Hi @UlisesGascon,
Back in the day the code was implemented to work with both platforms, as soon as the api was ready, so great news!
I'm going to work in small refinements and on improving the documentation for the community to know that the visualizer can be used also with gitlab repositories too.


Quick question: Can two or more users invite the same person (email) ?

Since this gem creates a User record in the DB upon inviting someone, does this mean two different users  can't invite the same person (email)?

They can invite same person if resend_invitation is enabled, which is default

Thank you!!!

So the most recent user to send the invitation gets the "credit" when the invited person signs up?

Yes, because previous invited_by association is changed to new one, and previous invitation_token is changed with new one, so previous invitation doesn't work anymore


[SPARK-45917][PYTHON][SQL] Automatic registration of Python Data Source on startup

What changes were proposed in this pull request?
This PR proposes to add the support of automatic Python Data Source registration.
End user perspective:
# Assume that `customsource` defined a short name as `custom`
pip install pyspark_customsource

Users can directly use the Python Data Source
df = spark.format("custom").load()

Developer perspective:
The packages should follow the structure below:

The package name should start with pyspark_ prefix
pyspark_*.DefaultSource has to be defined that inherits pyspark.sql.datasource.DataSource

For example:
pyspark_customsource
├── __init__.py
 ...

__init__.py:
from pyspark.sql.datasource import DataSource

class DefaultSource(Datasource):
    pass

Why are the changes needed?
This allows the developers to release and maintain their 3rd party Python Data Sources separately (e.g., in PyPI), and end users can easily install the Python Data Source without doing anything other than just pip install pyspark_their_source
Does this PR introduce any user-facing change?
Yes, this allows users to pip install pyspark_custom_source, and automatically register it as Data Source available in Spark.
How was this patch tested?
Unittests were added.
Also manual test as below:
rm -fr pyspark_mysource
mkdir pyspark_mysource
cd pyspark_mysource
echo '
from pyspark.sql.datasource import DataSource, DataSourceReader, InputPartition

class TestDataSourceReader(DataSourceReader):
    def __init__(self, options):
        self.options = options
    def partitions(self):
        return [InputPartition(i) for i in range(3)]
    def read(self, partition):
        yield partition.value, str(partition.value)

class DefaultSource(DataSource):
    @classmethod
    def name(cls):
        return "test"
    def schema(self):
        return "x INT, y STRING"
    def reader(self, schema) -> "DataSourceReader":
        return TestDataSourceReader(self.options)
    @classmethod
    def name(cls):
        return "mysource"
' > __init__.py
cd ..
./bin/pyspark

spark.read.format("mysource").load().show()

+---+---+
|  x|  y|
+---+---+
|  0|  0|
|  1|  1|
|  2|  2|
+---+---+

Was this patch authored or co-authored using generative AI tooling?
No.

Oops, there's a bit of more fixes to make (although the basic cases work). Let me mark as a draft for now.

Let me actually add the test cases here together while I am here.

Merged to master.

@HyukjinKwon
I have reverted https://github.com/apache/spark/pull/44504 (CommitID: 229a4eaf547e5c263c749bd53f7f9a89f4a9bea9).
Based on the current running results, the Run Spark on Kubernetes Integration test failure of GA is related to this.

Thx, let me fix up together at https://github.com/apache/spark/pull/44519


#33 allows to force ios js banner instead of native banner using options

I did this, it seems to work fine now. you can specify the ios app-id and if specified, it will display the js. This allows us to controll when and how we display this banner even tho we can't provide a way to open the app directly going trough the store is reasonable. Thanks for this banner gold mine :+1:

Ah that's the same as #60 anyway, I suppose both changes work just fine. Is this still maintained?


Update hedera-mirror-node.md

Adding Validation Cloud as a provider of production-ready mainnet (and testnet) mirror nodes.
Description:
Documentation update, adding Validation Cloud as a production grade mirror node provider.
Notes for reviewer:
Documentation update only.
Checklist

[ ] Documented (Code comments, README, etc.)
[ ] Tested (unit, integration, etc.)

@aaron-cottrell-vc  can you please resolve the DCO issue so I can merge? thank you!


Enable project wide index caching

Looks good, but tests are failing.

Thanks. Fixed it.

Can you make a new release please?


release latest OCPP to pypi

Hello,
please release the latest version of this package to pypi, as there are corrections which are fundamentaly needed for OCPP 2.0.1 to work as https://github.com/mobilityhouse/ocpp/commit/27d4e7480a293d19198e154d9484f03848285e4e
Distributing the package as a github release again would be nice too.
Thanks!

Hello. Thanks for the reminder. I've released 0.8.2 and uploaded it to pypi.
I also uploaded the .whl files to Github releases.


Missing typescript definitions for og, files, images and other documented StreamClient methods/properties

For example:
import * as stream from 'getstream'

const client = stream.connect('asdf', 'asdf', 'asdf')

client.og('https://foo.bar') // Property 'og' does not exist on type 'StreamClient'
client.images.upload('foo') // Property 'images' does not exist on type 'StreamClient'
client.files.upload('foo') // Property 'files' does not exist on type 'StreamClient'

files: https://github.com/GetStream/stream-js/pull/296
vars: https://github.com/GetStream/stream-js/pull/297
og: https://github.com/GetStream/stream-js/pull/299
https://github.com/GetStream/stream-js/releases/tag/v4.5.3 has these types.


Tiles missing when switching to Iso orientation (Scene Gizmo)

Open cesium-unity-samples, 02_CesiumMelbourne
Look down at the street somewhere...

Switch the orientation to Iso by using the Scene Gizmo (circled in red in previous screenshot)...

Tiles are missing.
Interestingly, keeping the camera in Persp and setting the FOV to 4 degrees (minimum) looks fine.

Unity 2022.3.21f1
Windows 10
Cesium for Unity 1.8.0

Same issue in Cesium for Unreal: https://github.com/CesiumGS/cesium-unreal/issues/383
The SSE-based LOD selection algorithm used by 3D Tiles doesn't work with non-perspective frustums. I'm sure there's something reasonable we could do instead, but it's never been deemed important enough to figure out.

One use case for ortho views would be when defining a spline for a Cartographic Polygon.
Using a top down ortho view makes it a little easier to line up a spline to features in the imagery (roads, rivers, other boundaries).


Creation tool fails to parse GRIB files with lambert_lam projection

Describe the bug
Dataset building fails for GRIB files with "lambert_lam" projection. earthkit.data fails to detect the name of the projection and therefore cannot determine the resolution, which anemoi.dataset expects.
Version number
I am using the following versions/branch/sha1 of the anemoi packages:
anemoi-datasets==0.5.12
anemoi-transform==0.1.0
anemoi-utils==0.4.9
earthkit-data==0.11.4
earthkit-geo==0.3.0
earthkit-meteo==0.3.0
To Reproduce
Steps to reproduce the behavior:

pip install anemoi-datasets[create]
Save the test YAML file:

dates:
  start: 2024-12-03T06:00:00Z
  end: 2024-12-03T06:00:00Z
  frequency: 1h

input:
  join:
    - grib:
        path: "GRIBPFDEOD+0006h00m00s"
        levtype: sfc
        param: [2t]

Copy the sample data available on ATOS: /lus/h2resw01/scratch/fatn/DE330/GRIBPFDEOD+0006h00m00s
Run anemoi-datasets create test.yaml test.zarr
Here is the error log:

2024-12-10 22:09:51 INFO 🎬 Task init((),{}) starting
2024-12-10 22:09:51 INFO Setting flatten_grid=True in config
2024-12-10 22:09:51 INFO Setting ensemble_dimension=2 in config
2024-12-10 22:09:51 INFO Setting flatten_grid=True in config
2024-12-10 22:09:51 INFO Setting ensemble_dimension=2 in config
2024-12-10 22:09:51 INFO {'start': datetime.datetime(2024, 12, 3, 6, 0, tzinfo=datetime.timezone.utc), 'end': datetime.datetime(2024, 12, 3, 6, 0, tzinfo=datetime.timezone.utc), 'frequency': '1h', 'group_by': 'monthly'}
2024-12-10 22:09:51 INFO Groups(dates=1,<anemoi.datasets.dates.StartEndDates object at 0x7272ddba76d0>)
2024-12-10 22:09:51 INFO JoinAction:
  FunctionAction: path=GRIBPFDEOD+0006h00m00s levtype=sfc param=['2t']
2024-12-10 22:09:51 INFO Groups: Groups(dates=1,<anemoi.datasets.dates.StartEndDates object at 0x7272ddba76d0>)
2024-12-10 22:09:51 INFO Minimal input for 'init' step (using only the first date) : GroupOfDates(dates=['2024-12-03T06:00:00'])
2024-12-10 22:09:51 INFO JoinResult: 1 dates (2024-12-03:06)
  grib(GroupOfDates(dates=['2024-12-03T06:00:00']))
2024-12-10 22:09:51 INFO Config loaded ok:
2024-12-10 22:09:51 INFO Found 1 datetimes.
2024-12-10 22:09:51 INFO Dates: Found 1 datetimes, in 1 groups:
2024-12-10 22:09:51 INFO Missing dates: 0
Traceback (most recent call last):
  File "/home/thomasn/deps/lib/python3.10/site-packages/anemoi/utils/cli.py", line 153, in cli_main
    cmd.run(args)
  File "/home/thomasn/deps/lib/python3.10/site-packages/anemoi/datasets/commands/create.py", line 72, in run
    self.serial_create(args)
  File "/home/thomasn/deps/lib/python3.10/site-packages/anemoi/datasets/commands/create.py", line 82, in serial_create
    task("init", options)
  File "/home/thomasn/deps/lib/python3.10/site-packages/anemoi/datasets/commands/create.py", line 36, in task
    result = c.run()
  File "/home/thomasn/deps/lib/python3.10/site-packages/anemoi/datasets/create/__init__.py", line 392, in run
    return self._run()
  File "/home/thomasn/deps/lib/python3.10/site-packages/anemoi/datasets/create/__init__.py", line 414, in _run
    variables = self.minimal_input.variables
  File "/home/thomasn/deps/lib/python3.10/site-packages/anemoi/datasets/create/input/result.py", line 538, in variables
    self.build_coords()
  File "/home/thomasn/deps/lib/python3.10/site-packages/anemoi/datasets/create/input/result.py", line 527, in build_coords
    self._resolution = first_field.resolution
  File "/home/thomasn/deps/lib/python3.10/site-packages/earthkit/data/core/fieldlist.py", line 378, in resolution
    return self._metadata.geography.resolution()
  File "/home/thomasn/deps/lib/python3.10/site-packages/earthkit/data/readers/grib/metadata.py", line 179, in resolution
    raise ValueError(f"Unknown gridType={grid_type}")
ValueError: Unknown gridType=lambert_lam
2024-12-10 22:09:51 ERROR
💣 Unknown gridType=lambert_lam
2024-12-10 22:09:51 ERROR 💣 Exiting

URL to sample input data
The grib file is available on ATOS:
/lus/h2resw01/scratch/fatn/DE330/GRIBPFDEOD+0006h00m00s
Expected behavior
I expected the dataset to be created

Another follow up comment. earthkit.data also fails to recognize the resolution for datasets on regular lat/lon (grid_type=regular_ll) grids that have different grid spacing in the latitude and longitude direction. This is used by the Austrian ReAnalysis, which is a regional reanalysis with DxInDegrees=0.028° and DyInDegrees=0.018°.


.NET 9 Templates release date?

.NET 9 was released on Nov 12, 2024 with new Blazor Web App templates.
Blazor 9 Release Notes
What's the plan for the updated MudBlazor templates? Thanks.

Hi,
We are aware of the .NET 9 release, and we are currently working on v8 of MudBlazor and its support for .NET 9. Once we have completed that and have some spare time, we will update the templates to .NET 9 as well (the templates alo depend on the Extensions.MudBlazor.StaticInput dependency, which also needs to be updated first).
For now, we can't do everything at once.

Thanks!


sprigmaze

Your checklist for this pull request
Author name
Alex Diep
Author:
alexdiep
 adiep
About your game
Push boxes out the way to get to the exit
What is your game about?
Escape the levels within 20 seconds

How do you play your game?
Use WASD to move

Code
Check off the items that are true.

[x] The game was made using the Sprig editor.
[x] The game is placed in the in the /games directory.
[ ] The code is significantly different from all other games in the Sprig gallery (except for games labeled "demo").
[x] The game runs without errors.
[x] The name of the file/game contains only alphanumeric characters, -s, or _s.
[x] The game name is not the same as the others from gallery

Image (If an image is used)

[ ] The image is in the /games/img directory.
[ ] The name of the image matches the name of your file.

Thanks for your PR!

I am closing this PR until more progress it made.  Feel free to reopen it to advocate for its landing if you feel this was done in error.


interp: fix assignable check

The assignable check used to be too strict as it lacked the property that
if an untyped const can be represented as a T, then it is assignable to T.
And we can now use that fixed check to add a missing check: in a return
statement, we now make sure that any of the returned elements are
assignable to what the signature tells us they should be.

For additional background: what prompted me to fix
func (t *itype) assignableTo(o *itype) bool is that it would fail if you try to use to check the return statement of ./_test/ret7.go
And the go spec states that a return statement must be assignable.


Add link buttons from dashboard deployment to epinio app

Summary
Fixes https://github.com/epinio/ui/issues/271

List of annotations for Epinio pods:

app.kubernetes.io/part-of: epinio
app.kubernetes.io/component: epinio
epinio.io/created-by
epinio.io/app-container

Known issues
~~https://github.com/rancher/dashboard/issues/9330~~ fixed in the shell pkg.

@andreas-kupries @mmartin24 This PR will add links from Rancher Manager dashboard to Epinio applications, filtering those pods/jobs created by Epinio.
As per our offline discussion, there are some annotations that can be used to identify epinio object (see also the description).
Could we add other annotations for Epinio services ? I couldn't find any annotations to identify them.


Great walkthrough - a few issues ("Make ideas editable by original creator" for Employee Ideas app)

Hi!
Great walkthrough, however, I came across a few problems:

When in the 'Edit' screen, if I change a field besides the standard 'Title' and 'Description' fields, that change is going to reflect in all other fields, like so (I only changed the text for the question with the arrow, however, it changed the text for every consecutive field afterwards to the same):

I am not sure if this is because I am the Teams owner, but I can edit every idea regardless who submitted it in the 'Ideas' tab. Is there a criteria not correctly setup like an IF function or something to make 'Edit' button disable if the idea owner = current user?

Thanks for your help!

resubmitting with correct link


:book: Added data license info for the API to the README.

Related to #2713.
What kind of change does this PR introduce?
(Is it a bug fix, feature, docs update, something else?)

[ ] PR title follows the guidelines defined in our pull request documentation

What is the current behavior?
No license listed for API data.
What is the new behavior (if this is a feature change)?**
No new behaviour - but explicitly document that the API data is provided under a cc0 license.
Which issue(s) this PR fixes

Special notes for your reviewer
This is a "straw man" proposal. It may be that we need additional data license artefacts as well.
Does this PR introduce a user-facing change?
For user-facing changes, please add a concise, human-readable release note to
the release-note
(In particular, describe what changes users might need to make in their
application as a result of this pull request.)

@torgo Thanks for the PR.

It's probably fine. I think I'll need to check with LF legal. GitHub doesn't try to impose any license on data from its API, does it? Anyone know?

Three points:

Quick nit: the license short name is usually in all-caps, that is, it should say "CC0" not "cc0".
I notice that this PR is to address issue https://github.com/ossf/scorecard/issues/2713.
Please wait and do not accept this PR until we hear back from legal review. I've filed this as legal review LR-1558. I suspect it's fine but it's important to hear from actual legal experts first :-).

Thank you @david-a-wheeler!

Quick nit: the license short name is usually in all-caps, that is, it should say "CC0" not "cc0".

I've added a suggested change to reflect this. Please feel free to accept.
I await

I await.

Me too :-). . I've filed this as legal review LR-1558.

Not sure what happened there. :/ But you got the gist.

I expect to hear more sometime tomorrow. It may be them asking more questions, but let's try to get this resolved.

See: https://github.com/ossf/scorecard/issues/2713

@torgo Would you mind applying the CDLA suggestion, and then I'll get this merged in?

FYI: this repo is configured so that I have to merge "main" into this branch before it can be (auto) merged into main. So I did that to get this to be merged.
Thanks for your persistence. Ensuring that everything is legal is very important.

Grr. The auto-merge adds a merge commit (good!), but the merge commit doesn't have a DCO, so it's failing the DCO check even though there's no content to sign for DCO. Let me see if I can override this.

I don't see why this PR isn't passing the checks (other than DCO).
So I've re-created the PR, but included in the comment credit to @torgo . See: https://github.com/ossf/scorecard/pull/3404
Maybe with a re-created PR we can get this merged!

There was some weird technical problem, so this PR was re-created here: https://github.com/ossf/scorecard/pull/3404 and then merged.
Thank you @torgo !


TestCafe fails to log in to MS Teams - Failed to initialize sync engine

What is your Test Scenario?
I need to perform some tests in Microsoft Teams, but after clicking on MS Teams icon inside Microsoft's portal TestCafe throws an error and MS Teams web app doesn't get loaded.
What is the Current behavior?
Testcafe fails to log in to MS Teams and the errors are thrown - here are some of them:
hammerhead.js:15 2021-10-13T01:54:36.880Z CDLWorkerManager: {"errorCode":"Unknown","hostRendererId":"MainRenderer","component":"CDLWorkerManager","message":"Failed to initialize sync engine :: err: {\"rendererId\":\"MainRenderer\",\"requestId\":\"syncEngine-1\",\"status\":\"failure\",\"type\":\"syncEngine\",\"response\":{\"errors\":\"State machine initialization failed for request of type syncEngine with error {\\\"context\\\":\\\"WorkerInitialization\\\",\\\"code\\\":\\\"Disabled\\\",\\\"message\\\":\\\"Sync Engine not enabled\\\",\\\"name\\\":\\\"\\\"}\"},\"workerResponseTime\":-1}"}

2021-10-13T01:54:42.942Z AUTHMSAL: Event: adal:tokenRenewFailure, code: token_renewal_error|Token renewal operation failed due to timeout., resource: https://api.spaces.skype.com, action: renewalTimeout

What is the Expected behavior?
TestCafe logs in to Microsoft Teams.
What is your web application and your TestCafe test code?

Your website URL (or attach your complete example):
https://teams.microsoft.com/

Your complete test code (or attach your test files):

// test.js
const { Role, Selector } = require('testcafe');

fixture('My test');

const credentials = {
    username: '***',
    password: '***'
};

const testrole = Role('https://login.microsoftonline.com/', async t => {
    await t
        .typeText(
            Selector('input').withAttribute('type', 'email'),
            credentials.username
        )
        .click(Selector('#idSIButton9'))
        .typeText(
            Selector('input').withAttribute('type', 'password'),
            credentials.password
        )
        .click(Selector('#idSIButton9'))
        .click(Selector('#idBtn_Back'));
}, { preserveUrl: true });

test('Login', async t => {
    await t.navigateTo('https://www.office.com');

    await t.useRole(testrole);

    await t.click(Selector('.ms-ohp-Icon--teamsLogo'));

    await t.debug();
});

Your complete configuration file (if any):

Your complete test report:
node --max-http-header-size=1024000 ./node_modules/testcafe/bin/testcafe.js chrome test.js --disable-page-caching --skip-js-errors --disable-multiple-windows

 Running tests in:
 - Chrome 94.0.4606.81 / macOS 10.15.7

 My test

----
Chrome 94.0.4606.81 / macOS 10.15.7
DEBUGGER PAUSE:
46 |
> 47 |    await t.debug();
48 |
----

Screenshots:

Steps to Reproduce:

Create test.js with the code provided above
Execute it: testcafe chrome test.js --disable-page-caching --skip-js-errors --disable-multiple-windows
Open Developer Tools console in Chrome and see the errors

Your Environment details:

testcafe version:                   1.16.1
node.js version:                    14.15.1
command-line arguments:  testcafe chrome test.js --disable-page-caching --skip-js-errors --disable-multiple-windows
browser name and version: Chrome 94.0.4606.81
platform and version:           macOS 10.15.7
other:

@Farfurix is there any approximate date for when this issue will be fixed?


Fix macos & add to CI

Small test fixes to make it run on macos.
Checklist

~Added a CHANGELOG.rst entry~ - only tests/CI change

The opset generation produced different results to what's in main, so I had to rebase on #115 - or is there a better approach?


Updated Dockerfile to use kafka-manager <IP_ADDRESS>

kafka-manager <IP_ADDRESS> (rev. 48d91762168a24845a60d0348b2ba2e6681d6366)

I just realized this is a duplicate of https://github.com/sheepkiller/kafka-manager-docker/pull/19/files


use static page for broker liveness probe

This brings the broker liveness probe in sync with the community Helm chart, and should use less resources than the health_check script.
In Astra Streaming we switch to this liveness probe instead of using the metrics endpoint because we were getting a lot of errors in the broker logs (https://github.com/riptano/astra-streaming/pull/513).

@cdbartholomew PTAL.  This is how the Apache community broker is configured and we're doing the same in Astra Streaming.

In Astra we were previously seeing brokers regularly restarting because the health check was failing, possibly incorrectly (maybe @zzzming has more info) when using the health check.  So we switched to use the metrics endpoint, but then we were seeing brokers stuck in a running but not ready state.  That issue seems much better in the current 2.10 versions that we're running.  We switched to using the static page instead of the metrics endpoint in Astra, and it seems to be fine for the past couple weeks.

Do we have an issue opened in the upstream project? That sounds like a bug.

@michaeljmarshall I think the issue was fixed in 2.10.  At least we haven't seen it in the last couple months.  Maybe we need a new endpoint specific to the liveness check?


No change in Fitness or Fatigue after activities

Plugin version: 6.5.2
Chrome version:  68.0.3440.106
OS version: Windows 10

On Sunday 9th September I did a 600m swim, a 15km bike ride and a 4km run.  I can see all these within Stravaistix, but they have had no effect on either my Fitness or Fatigue.  I can't find any other examples of this, normally any activity increases my fatigue and my fitness.
This can be seen here:

Any ideas?

You have to set a Swim FTP in athlete settings (single or dated)
And if no HRM you have to set Cycling FTP and Running FTP in athlete
settings  (single or dated)
If fixed i let you close the ticket.
Hope this helps
On Tue, Sep 11, 2018 at 2:47 PM A1Dan75<EMAIL_ADDRESS>wrote:

Plugin version: 6.5.2
Chrome version: 68.0.3440.106
OS version: Windows 10

On Sunday 9th September I did a 600m swim, a 15km bike ride and a 4km run.
I can see all these within Stravaistix, but they have had no effect on
either my Fitness or Fatigue. I can't find any other examples of this,
normally any activity increases my fatigue and my fitness.
This can be seen here:
[image: image]
https://user-images.githubusercontent.com/24933894/45361096-3fe7a600-b5c9-11e8-88b3-27530fcd1b70.png
Any ideas?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/thomaschampagne/stravistix/issues/653, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AAJRpbv_S7-_GJgJXWFRfnpI-Y1mwiboks5uZ7D5gaJpZM4WjPQV
.

--
Thomas Champagne - http://thomaschampagne.github.io

Thanks for the quick reply Thomas.
That makes sense for the swim, but the ride and run do have heart rate data, so I'm not sure why they would not have an effect?

I've added Swim FTP and re-synced but it is still the same.

Do you have activities IDs?
Single or dated athletes settings? If dated can you provide me a screenshot?
On Tue, Sep 11, 2018, 15:27 A1Dan75<EMAIL_ADDRESS>wrote:

I've added Swim FTP and re-synced but it is still the same.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/thomaschampagne/stravistix/issues/653#issuecomment-420273988,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAJRpcFUWF6lBYYXYKinJVFJbQ_xDJIeks5uZ7opgaJpZM4WjPQV
.

Actually, you know what…  I’ve gone through the Modelization formulae, and I think a stress score of 29 just happens to work out as a change of pretty much zero on both metrics, given their current levels!
I’m not sure why the stress score is so low though – I did a steady 7km jog in 35 minutes today and got a stress score of 50, but a 600m swim, a 15km bike ride and a 4km run, taking 01:20 and pushing much harder only give me 29?

Your heart rate data is quite low, what's your age?
Did you well setup your max/rest hr? Values?

You know, I think that's the problem.  Only just occurred to me that I didn't have my HRM chest-strap, the HR data was from the sensor on my watch.  And yes, it is far too low, so I think the answer to my whole question is to not rely on wrist-based HRM!
Thanks for you help, Thomas, and keep up the good work with the site!

No problem i close the ticket


cx hope bastion page could be more easier for understanding | about  adding bastion subnet into destination VM NSG

[Enter feedback here]

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

ID: cc46ceac-e45e-6f29-dd5b-6453c614d9b2
Version Independent ID: b8b3bb83-5204-1f8b-787f-eb3da444e22e
Content: Working with VMs and NSGs in Azure Bastion
Content Source: articles/bastion/bastion-nsg.md
Service: bastion
GitHub Login: @cherylmc
Microsoft Alias: cherylmc

my cx is new to bastion, so he followed document to create it and tried to connect to windows server via bastion
but then he faced RDP issue, it is caused by missing bastion subnet in destination VM NSG , so traffic is blocked
i check document and i find we do have comments about NSG, but could us still try make is easier for new cx's understanding?

Thanks for the feedback! We are currently investigating and will update you shortly.

@jjjjeee Could you be more specific about what is confusing you so we can work on that? Thank you!

@jjjjeee Any update?

We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


feat: Add ability to use configuraiton file

Also rework CLI options and package structure.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

6 of 35 (17.14%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-12.4%) to 57.042%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

internal/util/time.go
0
1
0.0%

internal/util/env.go
6
8
75.0%

internal/util/fs.go
0
26
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-12.4%

Covered Lines:
81

Relevant Lines:
142

💛  - Coveralls