Simplify code in AddCommandParser

Codecov Report
Base: 75.03% // Head: 75.46% // Increases project coverage by +0.43% :tada:

Coverage data is based on head (43651fd) compared to base (4e11ce7).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff              @@
##             master     #190      +/-   ##
============================================
+ Coverage     75.03%   75.46%   +0.43%
  Complexity      529      529
============================================
  Files            77       77
  Lines          1554     1545       -9
  Branches        179      179
============================================
  Hits           1166     1166
+ Misses          343      334       -9
  Partials         45       45

Impacted Files
Coverage Δ

...ava/seedu/guest/logic/parser/AddCommandParser.java
82.60% <100.00%> (+23.23%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

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


Incorrectly minifies parenthetical expressions

Specifically related to bit manipulation in this particular case

Lua Version: 5.3
Before minification
return ((x or -1) & (y or -1)) & 0xFFFFFFFF

--[[
let x = 1021, y = 251
Result = 249
]]

After minification
return c or-1&d or-1&0xFFFFFFFF

--[[
let x = 1021, y = 251
Result = 1021
]]

Expected result
-- Parenthesis required for order of operations!!!
return((c or-1)&(d or-1))&0xFFFFFFFF

Is this RiscLua? Using LuaBit will help for bit-shifting operators.

@MartyMaro This is just regular, ol' Lua 5.3. Shouldn't need a whole new package just so the code is minified properly.

Example of non-binary operation:
local y1 = 6*(i-1)
local y2 = 1 + 6*(i-1)
local y3 = 6*(i-1) + 1

Minified:
local br=6*(N-1)
local bs=1+6*N-1
local bt=6*N-1+1

When combining product and sum, the parentheses are lost, so the last two variables y2 and y3 are effectively just 6*N.
This case is surprisingly not in tests.js, adding it should reveal the issue.
The PR that fixed integer division, /pull/59 seems a good reference to start with.

Quick fix: be very defensive with brackets and at this line, replace
			if (
				currentPrecedence < options.precedence ||
				(
					currentPrecedence == options.precedence &&
					associativity != options.direction &&
					options.parent != '+' &&
					!(options.parent == '*' && (operator == '/' || operator == '*'))
				)
			) {

with
			if (
				currentPrecedence <= options.precedence
			) {

Because it's very defensive, you will get unnecessary brackets in associative operations like

./luamin -c "a = 1 + (2 + 3) + 4"
=> a=(1+(2+3))+4

The comments indicate that we really wanted this just in the case of 1 - (2 - 3).
So ideally we'd need to find the correct condition just for this case.
Unfortunately, I don't understand how operator vs options.parent work (I would have thought the parent is the parent operation in the syntax tree, so I'd have to check for parent * vs operator + and descending precedence to preserve brackets; but console.logging the variables doesn't output what I expect), but I think the issue can be solved in this area.

And another one with boolean operators:
./luamin -c "local result = (true or false) and true or false"
local a=true or false and true or false

The workaround I suggested above also works to prevent that defensively (without adding crazy extra brackets either).

@hsandt will you update your fork with these fixes?

Yes, but I'll probably make a special branch because it's still a workaround to me (in the sense that the final result is not the smallest code possible as it's very defensive), and I'll probably just comment out the old code to explain what happened (again, not something you'd want to integrate in main). I don't understand the whole code with priority check and all, so I can't make a clean fix so you'll need to wait for somebody else to do it.
Another reason to make a separate branch is that I commonly use a branch with other modifications like extra options for aggressive minification that not everybody would want. Let me have a look and I can make a branch with a clear name about what is does.

Done. I put it in https://github.com/hsandt/luamin/tree/feature/defensive-fix-lost-brackets
(which is also merged in https://github.com/hsandt/luamin/tree/feature/pico8 I use for PICO-8 only).
I didn't take the time to test it in production, next time I work on my project I'll npm update luamin, remove my intermediate vars workaround and try the real expression with brackets to see if it works. In the meantime you can try it on your own, either using the branch directly or just picking the commit you need.

@hsandt Thanks, I will check it later. Since I am using this in a tool to minify lua script, correctness is much more important than minimal result 😃
I can check it tonight or tomorrow.

Arg, I found a new case where important brackets are removed: when you start to add comparisons.
./luamin -c "a = 1 > (2 + 1) * 0"

a=1>2+1*0

Inspecting the issue...

Looks like I have been testing on my own fork all that time and that I was seeing an issue that didn't exist on upstream, only one I created in the meantime with my commit to add --newline-separator 180ecd590d105487865b188e0330d75adb44fffc, as I thought it would be good to pass my base options down all the way of formatExpression's recursive calls, except my extend logic was wrong. For those using my custom branch:
			result = formatExpression(expression.left, extend({
				'precedence': currentPrecedence,
				'direction': 'left',
				'parent': operator
			}, baseOptions));

would give priority to baseOptions not the local parent. Parent info is not really an option and I think they should be passed separately, but anyway priority should be given to the more local info.
Since this issue is not anymore related to upstream, we can continue discussion on my fork https://github.com/hsandt/luamin (but I intend to fix the issue on my fork soon anyway).

If you're not using my branch, you shouldn't have any problem with operators like + * / - and <
However, you'll still have the OP's issue with binary operators. But I managed to fix this one: it seems that operator precedence definition is missing for &. So just add:
'&': 4,

to the PRECEDENCE dictionary. I noticed | was also missing (but not XOR which doesn't exist; ^ means math power), so I also added it and had to offset the other indices:
	var PRECEDENCE = {
		'or': 1,
		'and': 2,
		'<': 3, '>': 3, '<=': 3, '>=': 3, '~=': 3, '==': 3,
		'|': 4,
		'&': 5,
		'..': 6,
		'+': 7, '-': 7, // binary -
		'*': 8, '/': 8, '%': 8,
		'unarynot': 9, 'unary#': 9, 'unary-': 9, // unary -
		'^': 10
	};

That's it. I will send a PR so we can finally close this issue (I don't know who is maintaining this repo now though).

I've sent the PR. Looks like auto-referencing failed, so I'm adding the link here: https://github.com/mathiasbynens/luamin/pull/78


binary_Search_in_python

Binary searching in python

Great work you can also give a Star to my repo✨

Great work you can also give a Star to my repo✨

yea sure!!


ability to change font family

It would be great to be able to select my preferred font within the App (macOS).

Heyy @Tekl, thanks for sharing your kind suggestion.
I am working on this.

Hey @jeanfbrito, I have inspected this issue and found this to be only applicable to the electron app's UI such as Settings and Downloads. On servers it's not possible to do because they use their own CSS.
One approach would be to manually and forcefully modify the DOM but applying a specific font-family provided by the user in settings. After further inspection, I found that mainly two CSS variables govern the font of the RC servers: --body-font-family & --rcx-font-family.
I have tried changing these and found everything to be well working.
Please let me know if this approach sounds good to you. I am already having a working draft for the same that I have created during my experiment. If you allow, I can raise a PR for the same.

@jeanfbrito should I implement my approach?

For the desktop app yes.


Add banner colors to Ohio local shields

#941 added support for color banners. The Ohio shield code needs to be modified to add appropriate color banner:
US:OH:ASD:TWP, green
US:OH:ATH:Trimble, green
US:OH:MED:York, blue
US:OH:PAU:Latty, green
US:OH:PAU:Washington, green
US:OH:WAS:Aurelius, green
US:OH:WAS:Salem, green

The color can be added as a third item in each of these arrays, to be passed in as another parameter to banneredShield():
https://github.com/ZeLonewolf/openstreetmap-americana/blob/6e287a4a84f64d17b56d5196ba6b6cbcc1cf369e/src/js/shield_defs.js#L1974-L2007


Code-gen dashboard from system.dashboards table

Fixes #886
ClickHouse has built-in dashboards defined in the system table dashboards.
This can be seen natively with the ClickHouse HTTP server: https://clickhouse.com/docs/en/operations/monitoring#built-in-advanced-observability-dashboard
This change includes a script that fetches the queries from that table, transforms them for Grafana, and then puts them into a dashboard that can be loaded in the plugin.

Thanks! Hopefully we can improve it in the future with more specialized units/colors, but this matches the built-in dashboard almost exactly


Security / disable log viewer in production by default

fixes #324 and #292

This is a breaking change, not a minor one :(


Failed to start SonarQube service. Mar 22 15:45:39 jenkins systemd[1]: sonarqube.service: Unit entered failed state. Mar 22 15:45:39 jenkins systemd[1]: sonarqube.service: Failed with result 'start-limit-hit'.

Failed to start SonarQube service.
Mar 22 15:45:39 jenkins systemd[1]: sonarqube.service: Unit entered failed state.
Mar 22 15:45:39 jenkins systemd[1]: sonarqube.service: Failed with result 'start-limit-hit'.

hi,
ensure that u are using t2.medium

sonarqube requires the below prerequisites if you done already please close the issue
The SonarQube server requires at least 2GB of RAM to run efficiently and 1GB of free RAM for the OS.
please launch minimum 4GB of RAM machine and try


[core] refactor default member bugfix to error on incorrect default m…

…ember, but not when no default member
Let me know if the logic works. But I think what you want is that the error is propagated upwards only when there's an error parsing a Cut from the default member value.
if there's no default member value, just skip.
Previously, it was returning an error when there was a missing default member.

yup this looks like it works.


fix alexa device discovery

Hi Aircoookie,
here my PR for alexa device discover fix.
Basically this is the same fix of  https://github.com/Aircoookie/WLED/pull/1497.
I've just removed the md5 calculation and now the unique id is the first part of the MAC followed by the id in HEX (aabbccddeeii).
Hope you will merge soon the fix also in Wled.
BR,
Luca

Awesome, thank you so much! Will get added to WLED ASAP as well :)


Feature: local images as data URIs?

Is is possible to convert a file example.md with code like this inside
![](./0_8.png)
to URI
<img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAAAAADhZOFXAAAAU0lEQVR4nAFIALf/AQAbOgv+8czlBC5F9Bso5Q/QAY/LcxoMDGYrBAQZ/a0SGB8MAgjpqvfGx9MNBO4ICPzs9f/zASdd/PQM9S2FAQAfYSr+35fiC0sfIOsGuCgAAAAASUVORK5CYII=" />

where image 0_8.png is in a same folder as example.md.
For me, this feature makes a lot of sense to implement a local wiki without introducing external image links.
P.S.: I have implemented this feature in a dirty and quick way in this repo.

Something like this is well suited as a 3rd party extension. One such extension already exists: https://facelessuser.github.io/pymdown-extensions/extensions/b64/.

Something like this is well suited as a 3rd party extension.

I agree.


Include symbolic link doesn't work on Windows

Hi
This is not really an issue ot, at least, it's a partial issue. In this project you have a symbolic link inside the in "include" folder on root project. Other your projects that needs this library (like svgren) refer to the include file here as:
#	include <agg/agg_rendering_buffer.h>
#	include <agg/agg_pixfmt_rgba.h>
#	include <agg/agg_renderer_base.h>

than work on linux able to manage symbolic link but compilation fails on Windows cause the path is missing (pull git project doesn't produce the correct path). Do you think it would be possible to change folders structure by avoid the use of symbolic links?
Thank you

This symbolic link is needed for proper Maven packaging for Android. See this issue which would allow eliminating this symbolic link:
https://github.com/howardpang/androidNativeBundle/issues/7
but it is not resolved yet and seems unprioritized

Thank you. Actually it's not a big problem for me because I copy the source files according to my project structure. I had only reported the thing but if there is a specific reason for this choice then that's okay.

FYI: I removed the symlink, now the headers can be taken from src/agg/include


[KERAS]RepeatVector, Conv3DTranspose op support added

RepeatVector
Conv3DTranspose

The above 2 ops support is added for keras frontend.
@masahi @FrozenGene Please help to review this PR. TIA.

Thanks @siju-samuel


How can i dynamically change icon colors

Hi guys, i just wanted to know if is possible to stylize the eva icon inside ui kitten input like this.
  const renderIconPass = (prop: any) => (
    <TouchableWithoutFeedback onPress={toggleSecurePass}>
      <Icon fill={isEmailValid ? '#A3B3CF' : '#FF3D71'} name={securePass ? 'eye-off' : 'eye'} {...prop} />
    </TouchableWithoutFeedback>
  );

where isEmailValid is an boolean state, whenever i validate my mail i toggle that state so that the icon color changes inside the input.
my main issue with this, is that since the color of the icon is based on the text color of the input, is taking the color of my text, which is a darker grey compared to what i'm looking for
  <Input
    autoCapitalize="none"
    accessoryRight={renderIconEmail}
    status={isEmailValid ? 'basic' : 'danger'}
    placeholderTextColor={isEmailValid ? '#3066FA' : '#FF3D71'}
    value={txtEmail}
    selectionColor={isEmailValid ? '#3066FA' : '#FF3D71'}
    style={[
      styles.loginInput,
      {
        borderColor: isEmailValid ? '#E6ECF3' : '#FF3D71',
      },
    ]}
    keyboardType="default"
    onChangeText={(text) => {
      setTxtEmail(text);
    }}
  />

as you can see in this image, it stays in the same color no matter what.

Package
Version

@eva-design/eva
^2.0.0

@ui-kitten/components
^5.0.0

@ui-kitten/eva-icons
^5.0.0

👋 there.
Just tried running same code and the answer is yes, you can. And even in 2 variations.

Passing a fill property, just like you did. Notice it's passed after we do spreading of the inherited props.

const CalendarOutlineIcon = (props: IconProps): IconElement<ImageProps> => (
  <Icon {...props} fill='red' name='calendar-outline' />
);

Passing a style prop with a tintColor property. Notice we use style from the inherited props as well.

const CalendarOutlineIcon = (props: IconProps): IconElement<ImageProps> => (
  <Icon {...props} style={[props.style, { tintColor: 'blue' }]}  name='calendar-outline' />
);

Advice
It's recommended to use status property instead of using conditional colors. You may pass status='danger' to change the border and the rest colors of the Input. It's also possible to define status colors in case standard Eva colors do not fit.
<Input status={isEmailValid ? 'basic' : 'danger'} />

thank you, it worked :)


Progressive healing carousel/s

Overview

adding
images,
buttons
functionality

home page 5
1 from each other carousels and a new pic added
3 on all the other pages

Pic 3 decided to cooperate!


chore: release 1.0.0

Release-As: 1.0.0

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

Current dependencies on/for this PR:

#53  👈
#52
main

This stack of pull requests is managed by Graphite.


How to generate gestures corresponding to specific semantics？

Hello, I read your great paper recently ,I don't know much about Co-speech generation task, so I have some questions and would like to ask you for advice:

I found that neither your paper nor other similar SOTA papers seem to incorporate too many semantic features, so is this model unable to generate corresponding gestures with specific semantics? For example: When I say "here", can I generate a corresponding pointing gesture?
At present, there are two main types of methods for the Co-speech generation task: rule-based method and data-driven method. If I want to generate corresponding gestures in specific semantics, should I combine the effect of the rule-based method?

Thanks for your message. As to you question:

Since we only use audio as input, it's hard to measure the correspondence before words and generated gestures. But you can refer to other papers like HA2G and SEEG, which use text as the input.
In my opinion, data-based results are more natural and smooth, and rule-based results are more robust and predictable. It would be interesting if you could combine the advantages of both manners.


[NEW]      +4 copy_intptr                                                                      +4  [NEW]
      [NEW]      +4 copy_channel_trace                                                               +4  [NEW]
      [NEW]      +2 destroy_intptr                                                                   +2  [NEW]
      [NEW]      +2 destroy_channel_trace                                                            +2  [NEW]
  [NEW]    +440 src/core/lib/channel/status_util.cc                                            +440  [NEW]
      [NEW]    +296 grpc_status_code_to_string                                                     +296  [NEW]
      [NEW]    +131 grpc_status_code_from_string                                                   +131  [NEW]
      [NEW]     +13 [Unmapped]                                                                      +13  [NEW]
  +173%    +218 src/core/lib/json/json.cc                                                      +218  +173%
      [NEW]    +105 grpc_json_link_child                                                           +105  [NEW]
      [NEW]     +88 grpc_json_create_child                                                          +88  [NEW]
      +114%     +16 [Unmapped]                                                                      +16  +114%
      +9.6%      +9 grpc_json_destroy                                                                +9  +9.6%

 -------------- SHRINKING                                                                   --------------
  [DEL]    -440 src/core/ext/filters/client_channel/status_util.cc                             -440  [DEL]
      [DEL]    -296 grpc_status_code_to_string                                                     -296  [DEL]
      [DEL]    -131 grpc_status_code_from_string                                                   -131  [DEL]
      [DEL]     -13 [Unmapped]                                                                      -13  [DEL]

  +0.7% +9.19Ki TOTAL                                                                       +78.4Ki  +1.0%

****************************************************************

libgrpc++.so

     VM SIZE              FILE SIZE
 ++++++++++++++ GROWIN ++++++++++++++

 -------------- SHRINK --------------
  [ = ]       0 [None]     -24  -0.0%

  [ = ]       0 TOTAL      -24  -0.0%

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

[microbenchmarks] Performance differences noted:
Benchmark                    cpu_time    real_time
---------------------------  ----------  -----------
BM_MetadataRefUnrefExternal  +25%        +25%
BM_MetadataRefUnrefStatic    +25%        +25%

This looks pretty good!  All remaining comments are minor.

Reviewed 3 of 27 files at r8, 1 of 31 files at r11, 6 of 17 files at r12, 12 of 12 files at r13.
Review status: all files reviewed at latest revision, 4 unresolved discussions, some commit checks broke.

src/core/ext/filters/client_channel/subchannel.cc, line 39 at r13 (raw file):

#include "src/core/lib/backoff/backoff.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/channel_trace.h"

The two new includes added here are no longer needed.  I think this file can just be reverted.

src/core/lib/channel/channel_trace.h, line 43 at r13 (raw file):

  intptr_t GetUuid() const;

  enum Severity {

Is there a reasonable way to get these enum values from the proto file (maybe using nanopb) instead of duplicating them here?
This isn't a big deal, so if it's a big pain to set up the nanopb stuff, don't worry about it.  But if it's something you could throw together quickly, that would be great.

src/core/lib/channel/channel_trace.h, line 51 at r13 (raw file):

  // Adds a new trace event to the tracing object
  void AddTraceEvent(Severity severity, grpc_slice data);

Why take a slice here instead of a simple string?  My guess is that most of these messages are not going to be interned, and most callers will need to construct the string before turning it into a slice anyway, so it's not clear what the advantage is of forcing them to create the slice in the first place.

src/core/lib/channel/channel_trace.h, line 73 at r13 (raw file):

 private:
  // Types of objects that can be references by trace events.
  enum ReferencedType { Channel, Subchannel };

As per the TODO below, we know that we will ultimately want to have the references be to channelz objects, rather than to ChannelTrace objects.  Once we do that, will we still need to record the type of reference here?  Or will the channelz object encode its own type internally?
To be clear, I see why we need this right now to generate the child refs when we render the json; I'm just curious if this is intended to stay permanently or if it will change when we address that TODO.

Comments from Reviewable

Addressed all comments

Review status: all files reviewed at latest revision, 4 unresolved discussions, some commit checks broke.

src/core/ext/filters/client_channel/subchannel.cc, line 39 at r13 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
The two new includes added here are no longer needed.  I think this file can just be reverted.

Done.

src/core/lib/channel/channel_trace.h, line 43 at r13 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
Is there a reasonable way to get these enum values from the proto file (maybe using nanopb) instead of duplicating them here?
This isn't a big deal, so if it's a big pain to set up the nanopb stuff, don't worry about it.  But if it's something you could throw together quickly, that would be great.

I took a stab at this, but I think it's more complexity than it is worth. Maintaining a duplicates struct seems ok in this case.

src/core/lib/channel/channel_trace.h, line 51 at r13 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
Why take a slice here instead of a simple string?  My guess is that most of these messages are not going to be interned, and most callers will need to construct the string before turning it into a slice anyway, so it's not clear what the advantage is of forcing them to create the slice in the first place.

The advantage of the slice would be that it allows for static or copied strings. I imagine some trace events could be string literals: tracer->AddTrace(INFO, "Channel created")
While others will be more cases specific, allocated strings: tracer->AddTrace(some_malloced_str)
Slices give slice_from_{copied|static}_string to deal with this. I am ok changing this to take a string, but then we would have to add notion of ownership, like AddTraceFromStaticString and AddTraceFromCopiedString
An outstanding problem with the slice way of doing this would be that allocating it a string, then passing it to a slice to be copied will add an unneeded allocation. But we could fix that orthogonally

src/core/lib/channel/channel_trace.h, line 73 at r13 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
As per the TODO below, we know that we will ultimately want to have the references be to channelz objects, rather than to ChannelTrace objects.  Once we do that, will we still need to record the type of reference here?  Or will the channelz object encode its own type internally?
To be clear, I see why we need this right now to generate the child refs when we render the json; I'm just curious if this is intended to stay permanently or if it will change when we address that TODO.

We will still need this later (at least the way the proto is designed). ChannelData does not know if it is a channel or a subchannel. So we could either add that bookeeping to the proto, or keep doing it here.

Comments from Reviewable

****************************************************************

libgrpc.so

     VM SIZE                                                                                FILE SIZE
 ++++++++++++++ GROWING                                                                     ++++++++++++++
  +0.9% +5.80Ki [None]                                                                      +79.7Ki  +1.1%
      +0.9% +5.57Ki [Unmapped]                                                                  +79.6Ki  +1.1%
      +5.4%     +64 [None]                                                                            0  [ = ]
      +100%     +40 avl_vtable                                                                      +40  +100%
       +20%     +40 g_mu                                                                              0  [ = ]
      [NEW]     +32 vtable for grpc_core::RefCounted<grpc_core::ChannelTrace>                       +32  [NEW]
      [NEW]     +32 vtable for grpc_core::ChannelTrace                                              +32  [NEW]
      +100%     +16 g_avl                                                                             0  [ = ]
      [NEW]      +8 g_uuid                                                                            0  [ = ]
  [NEW] +2.47Ki src/core/lib/channel/channel_trace.cc                                       +2.47Ki  [NEW]
      [NEW]    +417 grpc_core::ChannelTrace::TraceEvent::RenderTraceEvent(grpc_json*) const        +417  [NEW]
      [NEW]    +308 grpc_core::ChannelTrace::RenderTrace() const                                   +308  [NEW]
      [NEW]    +278 grpc_core::ChannelTrace::AddTraceEventReferencingSubchannel                    +278  [NEW]
      [NEW]    +270 grpc_core::ChannelTrace::AddTraceEventReferencingChannel                       +270  [NEW]
      [NEW]    +223 grpc_core::(anonymous namespace)::fmt_time                                     +223  [NEW]
      [NEW]    +187 grpc_core::ChannelTrace::AddTraceEvent                                         +187  [NEW]
      [NEW]    +177 grpc_core::ChannelTrace::ChannelTrace                                          +177  [NEW]
      [NEW]    +129 grpc_core::ChannelTrace::TraceEvent::TraceEvent                                +129  [NEW]
      [NEW]    +122 grpc_core::ChannelTrace::AddTraceEventHelper                                   +122  [NEW]
      [NEW]    +110 [Unmapped]                                                                     +110  [NEW]
      [NEW]    +105 grpc_core::ChannelTrace::TraceEvent::TraceEvent                                +105  [NEW]
      [NEW]     +98 grpc_core::ChannelTrace::~ChannelTrace                                          +98  [NEW]
      [NEW]     +73 grpc_core::ChannelTrace::TraceEvent::~TraceEvent                                +73  [NEW]
      [NEW]     +14 grpc_core::ChannelTrace::~ChannelTrace                                          +14  [NEW]
      [NEW]      +9 grpc_core::RefCounted<grpc_core::ChannelTrace>::~RefCounted                      +9  [NEW]
      [NEW]      +5 grpc_core::ChannelTrace::GetUuid() const                                         +5  [NEW]
      [NEW]      +2 grpc_core::RefCounted<grpc_core::ChannelTrace>::~RefCounted                      +2  [NEW]
  +9.8%    +512 src/core/lib/surface/channel.cc                                                +512  +9.8%
       +33%    +415 grpc_channel_create_with_builder                                               +415   +33%
       +60%     +69 destroy_channel                                                                 +69   +60%
      +7.9%     +10 [Unmapped]                                                                      +10  +7.9%
      [NEW]      +9 grpc_channel_get_trace                                                           +9  [NEW]
      [NEW]      +9 grpc_channel_get_uuid                                                            +9  [NEW]
  [NEW]    +444 src/core/lib/channel/channel_trace_registry.cc                                 +444  [NEW]
      [NEW]     +99 grpc_channel_trace_registry_register_channel_trace                              +99  [NEW]
      [NEW]     +98 [Unmapped]                                                                      +98  [NEW]
      [NEW]     +67 grpc_channel_trace_registry_unregister_channel_trace                            +67  [NEW]
      [NEW]     +60 grpc_channel_trace_registry_get_channel_trace                                   +60  [NEW]
      [NEW]     +47 grpc_channel_trace_registry_init                                                +47  [NEW]
      [NEW]     +41 grpc_channel_trace_registry_shutdown                                            +41  [NEW]
      [NEW]     +20 compare_intptr                                                                  +20  [NEW]
      [NEW]      +4 copy_intptr                                                                      +4  [NEW]
      [NEW]      +4 copy_channel_trace                                                               +4  [NEW]
      [NEW]      +2 destroy_intptr                                                                   +2  [NEW]
      [NEW]      +2 destroy_channel_trace                                                            +2  [NEW]
  [NEW]    +440 src/core/lib/channel/status_util.cc                                            +440  [NEW]
      [NEW]    +296 grpc_status_code_to_string                                                     +296  [NEW]
      [NEW]    +131 grpc_status_code_from_string                                                   +131  [NEW]
      [NEW]     +13 [Unmapped]                                                                      +13  [NEW]
  +173%    +218 src/core/lib/json/json.cc                                                      +218  +173%
      [NEW]    +105 grpc_json_link_child                                                           +105  [NEW]
      [NEW]     +88 grpc_json_create_child                                                          +88  [NEW]
      +114%     +16 [Unmapped]                                                                      +16  +114%
      +9.6%      +9 grpc_json_destroy                                                                +9  +9.6%

 -------------- SHRINKING                                                                   --------------
  [DEL]    -440 src/core/ext/filters/client_channel/status_util.cc                             -440  [DEL]
      [DEL]    -296 grpc_status_code_to_string                                                     -296  [DEL]
      [DEL]    -131 grpc_status_code_from_string                                                   -131  [DEL]
      [DEL]     -13 [Unmapped]                                                                      -13  [DEL]

  +0.7% +9.41Ki TOTAL                                                                       +83.3Ki  +1.0%

****************************************************************

libgrpc++.so

     VM SIZE              FILE SIZE
 ++++++++++++++ GROWIN ++++++++++++++

 -------------- SHRINK --------------
  [ = ]       0 [None]     -24  -0.0%

  [ = ]       0 TOTAL      -24  -0.0%

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

Reviewed 2 of 27 files at r8, 19 of 19 files at r14.
Review status: all files reviewed at latest revision, 4 unresolved discussions, some commit checks failed.

src/core/ext/filters/client_channel/subchannel.cc, line 38 at r14 (raw file):

#include "src/core/ext/filters/client_channel/uri_parser.h"
#include "src/core/lib/backoff/backoff.h"
#include "src/core/lib/channel/channel_args.h"

I think this include is still needed.

src/core/lib/channel/channel_trace.cc, line 155 at r14 (raw file):

    if (ns_buffer[i] == '0' && ns_buffer[i + 1] == '0' &&
        ns_buffer[i + 2] == '0') {
      ns_buffer[i] = 0;

Please use '\0' instead of 0.
Same on line 158 below.

src/core/lib/channel/channel_trace.cc, line 156 at r14 (raw file):

        ns_buffer[i + 2] == '0') {
      ns_buffer[i] = 0;
      // Specially case in which all fractional digits were 0.

This comment is not grammatically correct.

src/core/lib/channel/channel_trace.h, line 51 at r13 (raw file):
Previously, ncteisen (Noah Eisen) wrote…
The advantage of the slice would be that it allows for static or copied strings. I imagine some trace events could be string literals: tracer->AddTrace(INFO, "Channel created")
While others will be more cases specific, allocated strings: tracer->AddTrace(some_malloced_str)
Slices give slice_from_{copied|static}_string to deal with this. I am ok changing this to take a string, but then we would have to add notion of ownership, like AddTraceFromStaticString and AddTraceFromCopiedString
An outstanding problem with the slice way of doing this would be that allocating it a string, then passing it to a slice to be copied will add an unneeded allocation. But we could fix that orthogonally

While there may be some cases where the string is a literal (like the "channel created" example), I think those will be a small minority.  I expect the majority of cases to be parameterized strings that need to be dynamically allocated, such as "selected <resolver_name> resolver" or "resolved  to: " or "attempting to connect to ".  (in fact, I would argue that in most cases where there is no parameter to the message, it's probably not something that's worth logging in the first place.)
As a result, I think it's fine to treat all passed-in strings as dynamically allocated and have this API take ownership of the string.  In those rare cases where the passed-in string is actually a literal, it's probably not a big deal for the caller to make a copy of the string.
That having been said, it's fine to leave this as-is for now.  We can change this later if it proves to be too inconvenient.

Comments from Reviewable

Addressed all comments.

Review status: all files reviewed at latest revision, 3 unresolved discussions, some commit checks failed.

src/core/ext/filters/client_channel/subchannel.cc, line 38 at r14 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
I think this include is still needed.

Done.

src/core/lib/channel/channel_trace.cc, line 155 at r14 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
Please use '\0' instead of 0.
Same on line 158 below.

Done.

src/core/lib/channel/channel_trace.cc, line 156 at r14 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
This comment is not grammatically correct.

Done.

src/core/lib/channel/channel_trace.h, line 51 at r13 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
While there may be some cases where the string is a literal (like the "channel created" example), I think those will be a small minority.  I expect the majority of cases to be parameterized strings that need to be dynamically allocated, such as "selected <resolver_name> resolver" or "resolved  to: " or "attempting to connect to ".  (in fact, I would argue that in most cases where there is no parameter to the message, it's probably not something that's worth logging in the first place.)
As a result, I think it's fine to treat all passed-in strings as dynamically allocated and have this API take ownership of the string.  In those rare cases where the passed-in string is actually a literal, it's probably not a big deal for the caller to make a copy of the string.
That having been said, it's fine to leave this as-is for now.  We can change this later if it proves to be too inconvenient.

Sounds good. I will leave in for now, but leave a TODO. I plan on following up with a PR that actually adds trace in all of the interesting places we need, and that will be the right time to determine if this API should take a slice or char*

Comments from Reviewable

****************************************************************

libgrpc.so

     VM SIZE                                                                                FILE SIZE
 ++++++++++++++ GROWING                                                                     ++++++++++++++
  +0.9% +5.80Ki [None]                                                                      +70.0Ki  +0.9%
      +0.9% +5.60Ki [Unmapped]                                                                  +69.9Ki  +0.9%
      +100%     +40 avl_vtable                                                                      +40  +100%
       +20%     +40 g_mu                                                                              0  [ = ]
      +2.7%     +32 [None]                                                                            0  [ = ]
      [NEW]     +32 vtable for grpc_core::RefCounted<grpc_core::ChannelTrace>                       +32  [NEW]
      [NEW]     +32 vtable for grpc_core::ChannelTrace                                              +32  [NEW]
      +100%     +16 g_avl                                                                             0  [ = ]
      [NEW]      +8 g_uuid                                                                            0  [ = ]
  [NEW] +2.47Ki src/core/lib/channel/channel_trace.cc                                       +2.47Ki  [NEW]
      [NEW]    +417 grpc_core::ChannelTrace::TraceEvent::RenderTraceEvent(grpc_json*) const        +417  [NEW]
      [NEW]    +308 grpc_core::ChannelTrace::RenderTrace() const                                   +308  [NEW]
      [NEW]    +278 grpc_core::ChannelTrace::AddTraceEventReferencingSubchannel                    +278  [NEW]
      [NEW]    +270 grpc_core::ChannelTrace::AddTraceEventReferencingChannel                       +270  [NEW]
      [NEW]    +223 grpc_core::(anonymous namespace)::fmt_time                                     +223  [NEW]
      [NEW]    +187 grpc_core::ChannelTrace::AddTraceEvent                                         +187  [NEW]
      [NEW]    +177 grpc_core::ChannelTrace::ChannelTrace                                          +177  [NEW]
      [NEW]    +129 grpc_core::ChannelTrace::TraceEvent::TraceEvent                                +129  [NEW]
      [NEW]    +122 grpc_core::ChannelTrace::AddTraceEventHelper                                   +122  [NEW]
      [NEW]    +110 [Unmapped]                                                                     +110  [NEW]
      [NEW]    +105 grpc_core::ChannelTrace::TraceEvent::TraceEvent                                +105  [NEW]
      [NEW]     +98 grpc_core::ChannelTrace::~ChannelTrace                                          +98  [NEW]
      [NEW]     +73 grpc_core::ChannelTrace::TraceEvent::~TraceEvent                                +73  [NEW]
      [NEW]     +14 grpc_core::ChannelTrace::~ChannelTrace                                          +14  [NEW]
      [NEW]      +9 grpc_core::RefCounted<grpc_core::ChannelTrace>::~RefCounted                      +9  [NEW]
      [NEW]      +5 grpc_core::ChannelTrace::GetUuid() const                                         +5  [NEW]
      [NEW]      +2 grpc_core::RefCounted<grpc_core::ChannelTrace>::~RefCounted                      +2  [NEW]
  +9.8%    +512 src/core/lib/surface/channel.cc                                                +512  +9.8%
       +33%    +415 grpc_channel_create_with_builder                                               +415   +33%
       +60%     +69 destroy_channel                                                                 +69   +60%
      +7.9%     +10 [Unmapped]                                                                      +10  +7.9%
      [NEW]      +9 grpc_channel_get_trace                                                           +9  [NEW]
      [NEW]      +9 grpc_channel_get_uuid                                                            +9  [NEW]
  [NEW]    +444 src/core/lib/channel/channel_trace_registry.cc                                 +444  [NEW]
      [NEW]     +99 grpc_channel_trace_registry_register_channel_trace                              +99  [NEW]
      [NEW]     +98 [Unmapped]                                                                      +98  [NEW]
      [NEW]     +67 grpc_channel_trace_registry_unregister_channel_trace                            +67  [NEW]
      [NEW]     +60 grpc_channel_trace_registry_get_channel_trace                                   +60  [NEW]
      [NEW]     +47 grpc_channel_trace_registry_init                                                +47  [NEW]
      [NEW]     +41 grpc_channel_trace_registry_shutdown                                            +41  [NEW]
      [NEW]     +20 compare_intptr                                                                  +20  [NEW]
      [NEW]      +4 copy_intptr                                                                      +4  [NEW]
      [NEW]      +4 copy_channel_trace                                                               +4  [NEW]
      [NEW]      +2 destroy_intptr                                                                   +2  [NEW]
      [NEW]      +2 destroy_channel_trace                                                            +2  [NEW]
  [NEW]    +440 src/core/lib/channel/status_util.cc                                            +440  [NEW]
      [NEW]    +296 grpc_status_code_to_string                                                     +296  [NEW]
      [NEW]    +131 grpc_status_code_from_string                                                   +131  [NEW]
      [NEW]     +13 [Unmapped]                                                                      +13  [NEW]
  +173%    +218 src/core/lib/json/json.cc                                                      +218  +173%
      [NEW]    +105 grpc_json_link_child                                                           +105  [NEW]
      [NEW]     +88 grpc_json_create_child                                                          +88  [NEW]
      +114%     +16 [Unmapped]                                                                      +16  +114%
      +9.6%      +9 grpc_json_destroy                                                                +9  +9.6%

 -------------- SHRINKING                                                                   --------------
  [DEL]    -440 src/core/ext/filters/client_channel/status_util.cc                             -440  [DEL]
      [DEL]    -296 grpc_status_code_to_string                                                     -296  [DEL]
      [DEL]    -131 grpc_status_code_from_string                                                   -131  [DEL]
      [DEL]     -13 [Unmapped]                                                                      -13  [DEL]

  +0.7% +9.41Ki TOTAL                                                                       +73.6Ki  +0.8%

****************************************************************

libgrpc++.so

     VM SIZE              FILE SIZE
 ++++++++++++++ GROWIN ++++++++++++++
  [ = ]       0 [None]     +64  +0.0%

  [ = ]       0 TOTAL      +64  +0.0%

[trickle] No significant performance differences

[microbenchmarks] Performance differences noted:
Benchmark                            cpu_time    real_time
-----------------------------------  ----------  -----------
BM_ErrorStringOnNewError<ErrorNone>  -20%        -20%
BM_ErrorStringRepeatedly<ErrorNone>  -6%         -6%

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

Failures: #14729


Add AZD feature

Purpose
There's now an azd feature for dev containers, which will automatically download the appropriate azd for your architecture (arm/amd) so platform emulation is no longer needed.
This PR updates the dev container to use that feature and also removes some other unnecessary bits.
Does this introduce a breaking change?

[ ] Yes
[X] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[X] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

How to Test

Open in Codespaces
Confirm azd command works
Confirm "play and debug" works

@shreyabatra4 Please review, thanks.


adding the release button

#846
source:
https://docs.microsoft.com/microsoft-365/security/office-365-security/configure-end-user-spam-notifications-in-exchange-online

@nenonix @JohanFreelancer9 - kindly do the copy editor review for this PR. Thanks.

@MSFTTracyP - PR has been copy edited and is ready for final review. This is based on issue #846.
Thank you.
cc: @kenwith


chore(main): release 1.15.1

:robot: I have created a release beep boop
1.15.1 (2024-06-12)
Bug Fixes

logs: properly show failures in parallel runs (#382) (964b5a2)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/wellwelwel/poku/releases/tag/v1.15.1 :sunflower:


Enabling use of Newtonsoft.Json > 11.0.2

As per https://github.com/cake-build/cake/issues/2606

Removed superfluous dependencies in Cake.Core
Updating reference to Newtonsoft.Json in Cake.NuGet to 12.0.2

@pritchums your changes have been merged, thanks for your contribution 👍

Awesome. Many thanks!


.Net 8 rc-2 support

Hi!
We really appreciate your package, we're currently upgrading our stuff to dotnet rc2 and we get the following error:

Tool 'swashbuckle.aspnetcore.cli' (version '6.5.0') was restored. Available commands: swagger

  Restore was successful.
  You must install or update .NET to run this application.

  App: /home/vsts/.nuget/packages/swashbuckle.aspnetcore.cli/6.5.0/tools/net7.0/any/dotnet-swagger.dll
  Architecture: x64
  Framework: 'Microsoft.NETCore.App', version '7.0.0' (x64)
  .NET location: /opt/hostedtoolcache/dotnet/

  The following frameworks were found:
    8.0.0-rc.2.23479.6 at [/opt/hostedtoolcache/dotnet/shared/Microsoft.NETCore.App]

  Learn more:
  https://aka.ms/dotnet/app-launch-failed

  To install missing framework, download:
  https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=7.0.0&arch=x64&rid=linux-x64&os=ubuntu.22.04

Could it be possible to create a beta package that targets .NET 8?
We really appreciate it!

I feel like there's a larger question here.  This repo hasn't seen a commit for 9 months and .NET 8 is a month away.  @domaindrivendev, can you provide some insight into the near-term plans for Swashbuckle and also .NET 8.

I was able to get the CLI to run successfully targeting net8.0 using the .Net 8 rc-2 SDK. swashbuckle.aspnetcore.cli was upgraded for version 6.5.0; it failed when the CLI was version 6.3.1.
However, I am now seeing an issue similar to @Berthelmaster when I target net6.0 (existing apps), and use the CLI, regardless of version.
Error:
" Unhandled exception. System.IO.FileLoadException: Could not load file or assembly 'System.Runtime, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly's manifest
definition does not match the assembly reference. (0x80131040)
File name: 'System.Runtime, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'"
It also seems to ignore the global.json file which I used to downgrade the SDK to version 6.0.414. It is still using the .Net 8 rc-2 SDK and fails accordingly because it is not being used for that build.
global.json
{
   "sdk": {
       "version": "6.0.414"
   }
}

Error:
"C:\Program Files\dotnet\sdk\8.0.100-rc.2.23502.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.DefaultItems.Shared.targets(80,5): error MSB4062: The "CheckIfPackageReferenceShouldBeFrameworkReferen
ce" task could not be loaded from the assembly C:\Program Files\dotnet\sdk\8.0.100-rc.2.23502.2\Sdks\Microsoft.NET.Sdk\targets..\tools\net8.0\Microsoft.NET.Build.Tasks.dll.  The system cannot find the file specified. Confirm that the  declaration is correct, that the asse
mbly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask. [C:\Users[me]]\AppData\Local\Temp\db20ce59-91b4-426a-84c
9-127c9c92f469\restore.csproj] [C:\code[app]\src\api\api.csproj]
Package "swashbuckle.aspnetcore.cli" failed to restore, due to Microsoft.DotNet.ToolPackage.ToolPackageException: The tool package could not be restored.
at Microsoft.DotNet.Tools.Tool.Install.ProjectRestorer.Restore(FilePath project, PackageLocation packageLocation, String verbosity)
at Microsoft.DotNet.ToolPackage.ToolPackageInstaller.InstallPackageToExternalManagedLocation(PackageLocation packageLocation, PackageId packageId, VersionRange versionRange, String targetFramewor
k, String verbosity)
at Microsoft.DotNet.Tools.Tool.Restore.ToolRestoreCommand.InstallPackages(ToolManifestPackage package, Nullable`1 configFile)
Restore failed.
"
Please advise on the availability of a new package with backwards compatibility.

I'm getting a little bit worried, we scheduled to upgrade to dotnet 8 next month, anybody has heard from @domaindrivendev? @theonesuperdaveXTR @psiservices-dbrink what do you plan to do? We're considering migrating away from Swashbuckle :(

@psiservices-dbrink
Yes we do! We use it already for api client generation, so that was also our goto, I have no tried using it to generate swagger files though

I encountered the same problem and used this workaround. Simply set the environment variable DOTNET_ROLL_FORWARD=LatestMajor
I haven't observed any issues related to the workaround so far.

I have also hit an issue trying to run the CLI with the recently released .NET 8 SDK

It looks like @domaindrivendev has abondoned Swashbuckle. I checked his LinkedIn profile to check if he has left Unsplash, but according to his profile he is still working there. I can imagine that focus shifts to another project, but it would be nice to have a statement from him, so either the community can take over or he may resume the development.

By now 8.0.0 has landed and the problem persists.
You must install or update .NET to run this application.

App: /home/benni/.nuget/packages/swashbuckle.aspnetcore.cli/6.5.0/tools/net7.0/any/dotnet-swagger.dll
Architecture: x64
Framework: 'Microsoft.NETCore.App', version '7.0.0' (x64)
.NET location: /usr/share/dotnet/

The following frameworks were found:
  8.0.0 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]

Learn more:
https://aka.ms/dotnet/app-launch-failed

To install missing framework, download:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=7.0.0&arch=x64&rid=linux-x64&os=ubuntu.22.04

Given the lack of other contributions on github, I hope he is alright. Given the lack of alternatives to swashbuckle, this is a rather big problem for the asp.net ecosystem :(

By now 8.0.0 has landed and the problem persists.
You must install or update .NET to run this application.

App: /home/benni/.nuget/packages/swashbuckle.aspnetcore.cli/6.5.0/tools/net7.0/any/dotnet-swagger.dll
Architecture: x64
Framework: 'Microsoft.NETCore.App', version '7.0.0' (x64)
.NET location: /usr/share/dotnet/

The following frameworks were found:
  8.0.0 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]

Learn more:
https://aka.ms/dotnet/app-launch-failed

To install missing framework, download:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=7.0.0&arch=x64&rid=linux-x64&os=ubuntu.22.04

Given the lack of other contributions on github, I hope he is alright. Given the lack of alternatives to swashbuckle, this is a rather big problem for the asp.net ecosystem :(

The main alternative right now would be https://github.com/RicoSuter/NSwag

related to #2707

related to #2759

I have created a fork called DotSwashbuckle for .NET 8 and forward, it fixes some long lasting issues.

Ahh too late, we already switched all our applications to Nswag 😅

We have a number of issues open that are related to adding support for .NET 8, which we plan to do in a future release in the near future.

I'm going to close this in favour of #2792, as going through triaging the open issues I'm spotting a common theme and it's easier to manage one issue. Please track that issue for further updates.
If this issue isn't resolved once we have added support for net8.0, please open a new issue.


Provide before and after methods to JUnit 5 extension?

Hi @Robothy !
Thanks again for providing your great library! 😃
I'm opening a second issue to have separate discussions for different topics 😃
One thing that bothered me, when migrating to your library was the fact that I can't use your extension in the beforeEach or afterEach methods. Would you be interested in taking over something like our custom extension?
As you can see in the test, you can use the extension in the beforeEach method to clean all objects.
Furthermore I find it quite convenient to define the S3 client as a field that can be used in all my methods instead of repeating the AmazonS3 as method parameter in all my test methods.
Of course, it's your code - if it does not suite your style or taste, we can also live with maintaining the class on our side.
Thanks and cheers,
Christopher

@christopher-cudennec  Perhaps LocalS3 could facilitate the injection of S3 client instances into both static and non-static fields within a test class. This would enable us to utilize it in the following manner:
class TestApp {

    @LocalS3
    S3Client client;

    @AfterEach
    void cleanup() {}

    @Test
    void test() {
        client.putObject(....)
    }
}

Yes, that would give us the flexibility we're looking for! 👏
Same goes for the S3 endpoint which we want to re-use in our application as configuration parameters. We usually solve that by ordering the Junit 5 extensions (using @Order + @RegisterExtension) and asking for the actual s3 endpoint. This example should illustrate what I mean:
  @RegisterExtension
  @Order(0)
  static final S3ClassExtension S3 =
      S3ClassExtension.builder().putObject("bucket", "key", "data").build();

  @RegisterExtension
  @Order(1)
  static final DropwizardAppExtension<Config> DW =
      new DropwizardAppExtension<>(
          TestApp.class,
          null,
          randomPorts(),
          config("s3Config.endpoint", S3::getEndpoint),
          config("s3Config.accessKey", "access-key"),
          config("s3Config.secretKey", "secret-key"));

But maybe that should be worth a separate issue. 😃

Hi @christopher-cudennec ,
The local-s3-rest appears to be a better fit for your situation compared to local-s3-jupiter. To implement this, you can declare a static field in LocalS3 type within your test class and initialize the S3Client in a static block. Subsequently, you can employ the client within the JUnit 5 lifecycle method, passing the endpoint to your custom extensions. Here's an example:
public class AppTest{

  static LocalS3 localS3 = LocalS3.builder().build();

  static String s3Endpoint;

  static S3Client client;

  static {
    localS3.start();
    s3Endpoint  = "http://localhost:" + localS3.getPort();
    client = S3Client.builder()
      .endpointOverride(URI.create(s3Endpoint))
      .credentialsProvider(AnonymousCredentialsProvider.create())
      .forcePathStyle(true)
      .region(Region.of("local"))
      .build();
  }

  @RegisterExtension
  CustomExtension customExtension = new CustomExtension(s3Endpoint);

  @BeforeEach
  void beforeEach() {
    client.createBucket(b -> b.bucket("my-bucket"));
  }

  @Test
  void test() {
    client.headBucket(b -> b.bucket("my-bucket"));
  }

  @AfterAll
  static void afterAll() {
    localS3.shutdown();
  }

}
```

Hi @Robothy !
I guess defining it in a static block is almost the same like wrapping it in a custom JUnit extension which is better for reuse. And the result will be pretty close to our own extension that we've already created.
Thanks a lot for your comments and recommendations! 🌻 I will close this issue because we can solve it on our own. If you think you've found something that you can take over to the library, feel free to do so!
Keep up the great work! 🚀
Cheers,
Christopher


Welcome bot has broken link to celebration image

Description
See the screenshot and this comment as an example of the issue - https://github.com/layer5io/meshery-adapter-library/pull/2#issuecomment-705114834
An issue lie somewhere between this config - https://github.com/layer5io/meshery-adapter-library/blob/cdeaac08801c9f128dd88cee2b4e5d5005c2c1a0/.github/config.yml#L20 and the location of the image in the .github/welcome folder
Expected Behavior
See this as an example of what should happen - https://github.com/layer5io/layer5/pull/691#issuecomment-683525292
Screenshots

I'll take a look at this 😃

Thank you, @ocean


Unable to import a file from the combine command on Garmin Connect

Hello, I am trying to combine FIT files (fitactivity --combine -o result.fit part1.fit part2.fit) to import into Garmin Connect a single file.
The problem is that when I import I always get a problem from Garmin.
If I don't combine them I don't have the problem. I therefore assume that it is the file generated that does not correspond to Garmin. Do you know why?

Did you use the latest version of fitactivity (v0.21.2) (try fitactivity -v) or did you build it from latest commit from master branch?  If the answer is yes, here is what I could say.
It's hard to say without having the files to debug since Garmin Connect (GC) does not tells us the reason why it rejects it.
I encountered similar problem before, in my case, it turned out that my files contains Split Summary messages and when they that have the same split_type it needs to be combined, having two Split Summary that have the same split_type type will make the resulting file marked as invalid by GC. It has been fixed in latest version (v0.21.2), so it maybe different problem.
There are many messages with different way how to handle them, unless we know what's in our files, it's hard to make a workaround. I need to look at your files to be able to assist you, if you don't want to upload the files publicly, you can email me at<EMAIL_ADDRESS>

The quick fix maybe we can make a new flag to ignore the optional messages and only include the required messages declared in this specification: https://developer.garmin.com/fit/file-types/activity.

I used version v0.21.2 and as it didn't work I used master for the same result.
Here are the files I'm trying to merge.
I don't think it's a weight problem because even when I only do 2 out of 3 Garmin doesn't accept.
https://drive.google.com/drive/folders/11WIsz2FFZHW34poNqsFhoLBdGOrU1IjT?usp=sharing

I see, let me review the files.

Thank you very much. Will I be able to see the graphs as for a ‘normal’ activity?

I manage to combine the 3 files and upload to GC by removing unknown messages. Even though GC returns error, the file is successfully uploaded. It takes minutes to be able to see the activity after the error and I found it to be unreliable, the page seems to could not be loaded properly as well, previously it can be loaded but now it stucks like this:

I think this is way past the GC limit (a file must be <25mb or < 99.999poins (72hours if one second record option)), reference: File Size Limitation of Manual Uploads to Garmin Connect
Here is the resulting file if you want to try to upload to GC: https://drive.google.com/drive/folders/1wQGAlprR9kZ-vuI9UOK1A-rOuzh576SP?usp=sharing
I'm sorry I don't have a solution for this right now, it takes so long to test uploading to GC and GC might return unpredictable result. My suggestion for next ultra run is maybe to turn-on smart recording on the smartwatch, so the file can be smaller (?)

Thank you very much, the problem is that I clicked too quickly on save and not on resume later. The problem is on my side.
Can I do a douglas pecker to reduce the points?

For your information, Garmin Connect can't display the track but Strava can and yet it's Garmin that sends it to them ;)
There are no graphics, is this linked to the combination?
I don't know the GO but maybe make an option when combining to activate a douglasPecker (https://en.wikipedia.org/wiki/Ramer–Douglas–Peucker_algorithm) to reduce the number of points if that is the problem for some.
If you are interested I have the code in kotlin

Happy to help @ravenfeld

Can I do a douglas pecker to reduce the points?

I didn’t know this algorithm before but it seems promising to reduce the points and we might found new lead regarding this matter by having fewer points. I’ll take a look once I got more spare time. Thanks for referencing it!

If you are interested I have the code in kotlin

Sure, I would be happy to have a code reference, I did some kotlin in the past so I hopefully can still read it :D

What if I put the file in my watch so that it's my watch that sends it?

I think having the file being uploaded means we somehow manage to pass the “wall”, I assume it is the Garmin Connect UI that is unable to display it due to its limitations.

For your information, Garmin Connect can't display the track but Strava can and yet it's Garmin that sends it to them ;)
There are no graphics, is this linked to the combination?

Does the map and graph look good on Strava such as Heart Rate graph, Cadence graph etc? Or it didn’t show at all?

I have update the gdrive link with new file that has been reduced using Douglas Peucker. Total messages is reduced from 757.248 to 498.208 and Garmin Connect accepts it just fine:

It's perfect, although I think your douglas pecker is a bit too aggressive. It cuts the bends a lot, so the track won't be usable if some people want to look at it. Thank you very much for your time. Maybe put an option on combine so people can use this algo.

The previous experiment was to see if Garmin Connect can accept the file if the points is smaller. When I try zooming the map, I can't really see the different at glance. I tried reducing 757.248 to 649.995 by adjusting the epsilon but Garmin Connect UI can't display it. Yes, the epsilon will be configurable, thanks for the suggestion.

OK, thank you very much. We'll have to find the maximum number that Garmin Connect can take, but in any case, good work.

Hi @ravenfeld, let me conclude the issue:

The combined file is unable to  be uploaded to Garmin Connect, based on my experiment, is because it has many points that Garmin Connect is unable to handle. I was able to upload and it was properly displayed by having fewer points.
I have updated the CLI to include reduce feature, it has 3 methods to choose:

Based on GPS points using RDP (ref: https://github.com/muktihari/carto)
Based on distance interval
Based on time interval

The master branch has been updated, so you can try build it from there. Please note that the structure of CLI commands are a bit different, README.md has been updated to accommodate it.
Here is the example for running the program:

Using RDP:

fitactivity combine reduce -o result.fit --rdp 0.001 part1.fit part2.fit part3.fit

Using distance interval (in meters, e.g.: 0.5m):

fitactivity combine reduce -o result.fit --distance 0.5 part1.fit part2.fit part3.fit

Using time interval (in seconds, e.g.: 2s):

fitactivity combine reduce -o result.fit --time 2 part1.fit part2.fit part3.fit

Fyi, you can view the resulting file using my other project https://openivity.github.io, it runs 100% on client-side. It has limitation but I think it is sufficient for simply debugging the map after being reduced.
Anw, I will appreciate any feedback regarding the CLI update. Hopefully it helps.

It's really great what you've done. It suits me perfectly. I'll let you close the exit.


Disable locking?

Is there a way to prevent users from locking branches? I see a permission for being able to unlock "others' branches"--but what if we don't want users to turn locks on in the first place?

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

ID: c8ffea81-86af-46cb-a290-5ce83924f235
Version Independent ID: 2ea32d72-75d8-42f9-bf33-756b1e00b3f2
Content: Lock a branch in your Git repo - Azure Repos
Content Source: docs/repos/git/lock-branches.md
Product: devops
Technology: devops-code-git
GitHub Login: @apawast
Microsoft Alias: sdanie

@DotNetSparky -- Shaun, thank you for your question.  Here are a couple of options where you might consider asking your question:

Azure DevOps Support Bot
Azure DevOps on Stack Overflow

I am closing this issue now.  You are welcome to @ mention me for any followup.
We hope to hear from you again.


feat: added Product Details Page

Related Issue #613
Closes: #613
Describe the changes you've made ✍

Created new component ProductDetails.jsx
Created ProductDetails.css
Changed DetailedProduct Component
Added Route for DetailedProduct inside App.jsx

Screenshots

@DevShobhit , please fix the PR title. Take a look and read at what the bot says !

Rest looks good to me, however, can we add a <Link> to the products on the cards so that they take me to the details page ?

@IAmTamal We can add a button at the bottom of products card. As this would require changing the structure of product card, we can create a new issue for adding button at the bottom of products card and creating Api for fetching product details.
Should I proceed to make changes to product card and create Api for fetching product details with this PR?


updated postman (4.0.5)

Thank you for the contribution. It was merged directly as ff71d41dfdca85d9e7f6dee205ce9d40e2399a5e to keep commit history cleaner. Your contribution is still credited to you.


[Avro] Use "extensions/avro" instead of avro from"core" in Java SDK modules

Make all Beam Java SDK modules, that depend on Avro, use Avro extension instead of Avro from core.
It should not introduce any breaking changes for users.
Closes #24748

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

@aromanenko-dev looking into failing Example check. Sorry for inconvenience (

Run Java_Kafka_IO_Direct PreCommit

Run SQL_Java17 PreCommit

Run Java_GCP_IO_Direct PreCommit

Run SQL PreCommit

Run Java_Kafka_IO_Direct PreCommit

Run SQL PreCommit

Run Java_Pulsar_IO_Direct PreCommit

Run Java_GCP_IO_Direct PreCommit

Run Java PreCommit

Run SQL_Java11 PreCommit

retest this please

Run Java PreCommit

Run Java_Pulsar_IO_Direct PreCommit

Run Java PostCommit

Run Java PreCommit

Run Java PreCommit

Run Java PreCommit

Run Java PreCommit

Run Java_GCP_IO_Direct PreCommit

Run Java PostCommit

Run Spark ValidatesRunner

Run Direct ValidatesRunner

Run Dataflow ValidatesRunner

Run Flink ValidatesRunner

Run Java PostCommit

Run Spark ValidatesRunner

Run Dataflow ValidatesRunner

Run Flink ValidatesRunner

Run Spark Runner Nexmark Tests

Run Dataflow Runner V2 Nexmark Tests

Run Spark StructuredStreaming ValidatesRunner

R: @mosche @reuvenlax @lukecwik
CC: @kennknowles
Please, take a look and let me know if you have any comments/objections and recommendations for testing that should be done before accepting this PR.

@aromanenko-dev Don't forget to enable publishing of the extension
applyJavaNature(
    automaticModuleName: 'org.apache.beam.sdk.extensions.avro',
    disableLintWarnings: ['rawtypes'], // Avro-generated test code has raw-type errors
    publish: false,
    exportJavadoc: false,
)

@mosche

Wondering, does it make sense to also deprecate the Avro stuff in core in the same PR?

I wanted to do this in a separate PR once this one is merged. Do you think it'd be better to do here as well?

I wanted to do this in a separate PR once this one is merged. Do you think it'd be better to do here as well?

@aromanenko-dev I suppose that's fine. Even worst case, if it ends up in another release, there's no harm. The change as is is fairly transparent. 👍 Though it would be good to document usage of the new module in the changelog.

Run Java PreCommit

Run Java_Pulsar_IO_Direct PreCommit

@mosche Thanks, review comments are addressed.

Though, still flagging the coder replacement of CountingSource as potential issue. I can't think of use cases where one would checkpoint this, but who knows ..

We can keep it "as it is" for now but it will be anyway a breaking change once Avro will be dropped from "core". Do you see any other options?

Do you want to move ahead and merge or get more people to ack?

Thanks for review! Before merging, if possible, I'd be happy to have another look on this PR to make sure that we didn't miss something.
Ping @kennknowles @reuvenlax @lukecwik

We can keep it "as it is" for now but it will be anyway a breaking change once Avro will be dropped from "core". Do you see any other options?

@aromanenko-dev You don't need Avro to produce Avro compatible bytes. It's a well defined format with a detailed Spec. Of course this could become a hassle quickly, but luckily this case is trivial. Avro uses varint zigzag encoding for longs, that's just the same Protobuf is using for signed ints. And Avro records are just a concatenation of their fields without any further additions:
Here's an example using Protobufs CodedOutputStream
//import org.apache.beam.vendor.grpc.v1p48p1.com.google.protobuf.CodedOutputStream
CodedOutputStream cos = CodedOutputStream.newInstance(outputStream);
cos.writeSInt64NoTag(mark.getLastEmitted()); // signed int64 with varint zigzag encoding
cos.writeSInt64NoTag(mark.getStartTime().getMillis()); // signed int64 with varint zigzag encoding
cos.flush();

Of course, that would require some additional tests to verify compatibility...

@mosche Imho, I think it's a overkill for this case but you have a point. So, I reverted CountingSource.java back and this issue may be addressed in #25252

Hi @aromanenko-dev and @mosche, just wondering what is the status of this PR now? Because I also get a PR review close to merge (#24274) also made some changes on Avro.

Run Java_GCP_IO_Direct PreCommit

Java_GCP_IO_Direct failing due to testTriggeredFileLoadsWithTempTablesToExistingNullSchemaTable[1]  timeout flaky is known issue #25207

@Abacn Thanks for a ping. I think this PR is almost ready to be merged. In the mean time, the next step will be a deprecation of Avro classes in "sdks/java/core" but before, I think we need to sync them with "extensions/avro". WDYT?
PS: I also opened another PR #25216 to test "extensions/avro" against multiple Avro versions but it's WIP

Run Java PostCommit

@Abacn Thanks for a ping. I think this PR is almost ready to be merged. In the mean time, the next step will be a deprecation of Avro classes in "sdks/java/core" but before, I think we need to sync them with "extensions/avro". WDYT?

Yeah sounds good to me. As part of deprecation, I am thinking about if we can add a checkStyle guard to prevent new changes in beam repo referring to avro in core, like what we are doing for vendored dependencies (e.g. guava, grpc).

@Abacn Interesting about checkStyle, I may try to do something similar for this. Thanks

Run Java_Kafka_IO_Direct PreCommit

Run Java_GCP_IO_Direct PreCommit

Run Java_GCP_IO_Direct PreCommit

Run Portable_Python PreCommit

Run SQL_Java11 PreCommit

Run SQL_Java11 PreCommit

Run SQL_Java17 PreCommit

Run Java_SingleStore_IO_Direct PreCommit

Run Whitespace PreCommit

Java11/Java17 test failures are due to #23210, see investigation done in #25566

@Abacn Do you think we have to wait for a fix before merging this one?

Thanks @aromanenko-dev for pinning. I think we can proceed given that those failures are understood to be not related. I also opened #25566

Run SQL_Java11 PreCommit

Run SQL_Java17 PreCommit

retest this please

Run Java_GCP_IO_Direct PreCommit

Run Java_Kafka_IO_Direct PreCommit

Run Java_HCatalog_IO_Direct PreCommit

I merge this one since failed checks are not related and all others are green.


Check/065: can't resolve WARN for N_o having no kerning, is this a bug?

Observed behaviour
Testing Dosis ( https://github.com/eliheuer/Dosis/commit/fb1e2a004fcb93e5437653dae09a7c1cc8e8dda6 ) with fontbakery I was able to resolve all Check/065 WARNs except one, N_o. I'm not sure why Fontbakery thinks N_o needs kerning, but just as a test I added some and still got the WARN. This makes me think this could be a bug of some kind.
Expected behaviour
No WARN for N_o not having kerning.
See: http://<IP_ADDRESS>/report/b7fce055-e572-4d11-bb46-4d0cf2516011

Isn't that a character, not a ligature?

@eliheuer I am trying to load the fontbakery dragndrop you referenced by URL, but it seems to be offline (or having some sort of trouble to load the page).
In such cases it could be nice to take a screenshot and attach here. Also, this approach would make way the reported issue more future proof.

@felipesanches Noted, I'll include screenshots with issues when possible. It's offline for me
also, here is a screenshot:

@davelab6 I wonder if I'm beyond the limits of my typographic knowledge here. I'm flipping through the appendix of Elements of Typographic Style but not finding anything. So I assume this is a bug?

And here's the ligature glyph in fontforge:

In some languages the word "number" is represented by the letter N followed by a small elevated letter o. In Portuguese, for instance, the 'o' refers to the last letter in the word "número" (meaning "number").
This is similar to how "first" is represented as 1st and in some cases the 'st' is also small and positioned higher than the baseline. In Portuguese we say "primeiro" (meaning "first") and represent it as '1o' (but also with the tiny elevated 'o').

I guess the same applies to Spanish.

One problem though is that (I guess) having an N_o ligature would cause english text like "No way!" to render like "número way!" which seems like a bug in the font.
I need to test it to see if it actually happens though.

Also, the 'o' is commonly underlined. Here are a few examples:

I think the glyph for U+2116 ('NUMERO SIGN') should be used as ligature for the 'N' followed by U+00BA ('MASCULINE ORDINAL INDICATOR') instead of 'N' followed by 'o'.

https://www.fileformat.info/info/unicode/char/2116/index.htm
http://www.fileformat.info/info/unicode/char/ba/index.htm

All the above makes me believe this is not a fontbakery bug.

@felipesanches Thanks for providing all this information, I should be able to resolve this now.

Maybe you can open an issue for the Dosis font project (are you working on a git repo?) and then reference this one for background info

We should remove the ligature, and update FB with a much better explanatory text about the possible ways to resolve

The way fontbakery deals with ligatures (and also caret positions) was improved at #1976 and the warning messages are much clearer now.


bug will occur in 'from' When operation dom

code
html

1

2

3

4

5

6

js
let dom = document.getElementsByClassName('item')

from(dom)
      .subscribe(x => x.parentNode.removeChild(x))

page will remove 1, 3, 5,  remain 2, 4, 6
reason
dom will change in real time when getting HTMLCollection by document.getElementsByClassName
solution

from.ts

export function from<T>(input: ObservableInput<T>, scheduler?: SchedulerLike): Observable<T> {
    input instanceof HTMLCollection && ( input = Array.from(input) )
    ...
}

the solution will influence type judgment

subscribeToArray.ts, fromArray.ts

similar to solution 1

the solution may be influence other operators

let dom = Array.from(document.getElementsByClassName('item'));

from(dom).subscribe(x => {
    const parent = x.parentNode;
    parent && parent.removeChild(x);
});

This is not a bug and this is not specific to RxJS. If you mutate the DOM whilst iterating a collection of nodes, the same behaviour will be effected.
If you intend to mutate the DOM whilst iterating, you'll need to copy the collection to an array - as you've suggested.

This is not a bug and this is not specific to RxJS. If you mutate the DOM whilst iterating a collection of nodes, the same behaviour will be effected.
If you intend to mutate the DOM whilst iterating, you'll need to copy the collection to an array - as you've suggested.

thanks


ShaderBrush#createShader state reads do not invalidate Text composable

Describe the bug
Brush instances created using the abstract ShaderBrush class, does not animate when applied on Text.
Affected platforms
Only tested on;

Desktop (Windows, Linux, macOS)

Versions

Libraries:

Compose Multiplatform version: 1.6.10

To Reproduce
Steps to reproduce the behavior:

Run this code snippet:

https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:compose/foundation/foundation/integration-tests/foundation-demos/src/main/java/androidx/compose/foundation/demos/text/BrushDemo.kt;l=204-233
fun AnimatedBrush() {
    val infiniteTransition = rememberInfiniteTransition()
    val radius by infiniteTransition.animateFloat(
        initialValue = 100f,
        targetValue = 300f,
        animationSpec = infiniteRepeatable(
            animation = tween(durationMillis = 1000, easing = LinearEasing),
            repeatMode = RepeatMode.Reverse
        )
    )
    val brush = remember {
        // postpone the state read to shader creation time which happens during draw.
        ShaderBrush { size ->
            RadialGradientShader(
                center = size.center,
                radius = radius,
                colors = RainbowColors,
                colorStops = RainbowStops,
                tileMode = TileMode.Mirror
            )
        }
    }
    Text(
        text = loremIpsum(wordCount = 29),
        style = TextStyle(
            brush = brush,
            fontSize = 30.sp
        )
    )
}

Expected behavior
Expecting text to have an animated brush coloring.
Additional context
Android handles this by creating the shader in a derivedStateOf. This way any state read that happens in createShader invalidates the derived state and only re-runs the draw phase. Otherwise devs need to change the brush instance for every animation frame which can get very costly due to unnecessary recomposition.
https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/AndroidTextPaint.android.kt;l=111-143

Looks like we need to apply (https://github.com/androidx/androidx/commit/16311966039d5d0cd98652b333059f1741bed564) to SkiaTextPaint where it says // Copied from AndroidTextPaint.

Unfortunately the fix from mentioned commit won't work for CMP because unlike Android we do not control Paint state during paragraph redrawing - it's fulling inside C++/skia. So to apply such changes, currently it requires full re-layout/re-creation of skia's paragraph. Even with a few layers of caching that we currently have, I doubt that it will animate smoothly. To properly do this, global changes in text rendering/layout are required.

😭

Adopted it with re-layouting in https://github.com/JetBrains/compose-multiplatform-core/pull/1395

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Logout button logs out but does not refresh the icon to display Login/Register button

Describe the bug
Logout button logs out but does not refresh the icon to display Login/Register button after you add Area's to Project.
To Reproduce
Steps to reproduce the behavior:

Using this version of ASP.NET Core 2.2 Preview 3
Run this code
a. Create a New Project with individual user account authentication and Scaffold Identity
b. Add A new Area "Customer" and move home controller inside the Area.
c. Move the Views for "Home" under "Customer" area.
d. Run the project and register for a new user. And then hit the logout button.
See error : The logout button will still remain after you have logged out.

This works fine if you have not added Areas.
Expected behavior
Once you hit logout button, it should be modified to Login.

@HaoK

Parking in preview 4 for now, basically need to sync up scaffolding contents with identity ui at some point


table-transformer: Streamlit dashboard to extract table as CSV (with HF Space link)

What does this PR do?
Hi Niels,
This PR contains an app.py that runs in the backend of this HuggingFace Space: https://huggingface.co/spaces/SalML/TableTransformer2CSV

Fixes # (issue)
Before submitting

[ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[ ] Did you read the contributor guideline,
Pull Request section?
[ ] Was this discussed/approved via a Github issue or the forum? Please add a link
to it if that's the case.
[ ] Did you make sure to update the documentation with your changes? Here are the
documentation guidelines, and
here are tips on formatting docstrings.
[ ] Did you write any new necessary tests?

Who can review?
Anyone in the community is free to review the PR once the tests have passed. Feel free to tag
members/contributors who may be interested in your PR.

Moved PR to Transformer-Tutorials as seems to be more relevant repository.


Unable to disable some checks globally

Hi,
I've noticed that at some point in time template {} check was enabled by default.
Nevertheless, we'd like to disable alerts/template check for all our alerting rules.
It looks like the only way to do it is to edit each rule and add pint disable comment which is not very useful for our volume.
Is it possible to add the ability to ignore some checks globally?

This should be doable right now, although undocumented it seems, by adding:
checks {
  disabled = ["alerts/template"]
}

to your config file.

Indeed, I didn't find this in docs, but it works!
@prymitive, thank you!


Align buttons with holds

buttons through QtDesigner not lining up with buttons created in script even though I've forced the scale at both places the holds are appearing just right of where they are meant to be.

At the moment my QtDesigner file actually only holds a QWidget, with a Label in it with a pixmap and some buttons.
When I've added this into my QMainWindow which I initialised inside of my Python script I've just added the label, and the buttons separately into the QMainWindow.
I think I need actually assign my QWidget with the QLabel and QToolbuttons as the central widget to the QMainWindow and I'm hoping this will fix it


saving photo directly to a variable

Hello,
I need to save the photo I took with the external camera in a variable, but I couldn't find a way to do it without saving it to the device's path. Is there a way?

Hiya, do you just want to save the photos temporarily in the app cache instead of the device memory?

Hello,
I figured out how to solve this problem. Thanks!


Theme Check - Update theme-check-common to include doc tag

What are you adding in this PR?

What's next? Any followup issues?

What did you learn?

Before you deploy

[ ] This PR includes a new checks or changes the configuration of a check

[ ] I included a minor bump changeset
[ ] It's in the allChecks array in src/checks/index.ts
[ ] I ran yarn build and committed the updated configuration files

[ ] If applicable, I've updated the theme-app-extension.yml config

[ ] I included a minor bump changeset
[ ] My feature is backward compatible

[ ] I included a patch bump changeset

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#637
#636  👈 (View in Graphite)
#621
main

This stack of pull requests is managed by Graphite. Learn more about stacking.


Bug: Not able to Pull repo , using GCP container registry.

📜 Description
Not able to Pull repo , using GCP container registry.
👟 Reproduction steps
Not able to Pull repo , using GCP container registry.
👍 Expected behavior
Not able to Pull repo , using GCP container registry.
👎 Actual Behavior
Not able to Pull repo , using GCP container registry.
☸ Kubernetes version
EKS
Cloud provider

🌍 Browser
Chrome
🧱 Your Environment
No response
✅ Proposed Solution
No response
👀 Have you spent some time to check if this issue has been raised before?

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

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

AB#10156

This bug has been fixed already so closing it.


MRG, TST: Need to skip properly

Fixes a bug pointed out by @Aniket-Pradhan on Gitter, restores our CI config such that it should catch the problems fixed by #8474, and catch the bugs fixed here.
Locally things pass with MNE_SKIP_TESTING_DATASET_TESTS=true so hopefully all is green here and we can merge and backport.

Could you also verify if you get the same bug for this: mne/conftest.py:459: in src_volume_labels

Could you also verify if you get the same bug for this: mne/conftest.py:459: in src_volume_labels

I do not. And it shouldn't occur because of the:
@pytest.mark.parametrize(params=[testing._pytest_param()])

You see a failure locally?
Once Travis catches up it should show up in https://travis-ci.org/github/mne-tools/mne-python/jobs/741178458

Could you also verify if you get the same bug for this: mne/conftest.py:459: in src_volume_labels

Travis replicated this -- looks like it's because nibabel is missing. Adding a requires_nibabel() should fix this -- I'll push a commit then hopefully all will be green!


Use RestSharp

Use rest sharp instead of home-grown rest client

Encountered difficulty consuming rest sharp in .net standard and .net core projects


Add Plug to Transform Parameters

This, optional, Plug can be used to transform incoming dasherized
parameters to underscored ones that are more amenable to usage in your
application.
Resolves #145

TODO

[ ] Add documentation to README
[ ] Resolve all feedback

Overall a user has to understand, to underscore params, add a plug. To underscore a response object, add a config option...

This asymmetry kind of stinks. Maybe we could optionally include the plug with the config option set?

I'm pretty sure this is in a "done" state now.
I'd like to recommend that a breaking 1.0 release project be opened as a result of this PR. Maybe we should sneak in a few other breaking changes whilst we're at it?

@jherdman Nice work!  Sry for asking, but what is the breaking change here?  This just adds functionality, right?  I most likely missed something.
Also, I think there are a few items we could think about for 1.0.

profile links https://jsonapi.org/format/1.1/.  (~January 2019) albeit non breaking
camelCase member names (if we decide to switch over to).  This is totally up in the air and we could stick with conventions in the Elixir community

Reverted the hard deprecation on QueryParser dasherizing. This wasn't a lot of fun when I tried this branch out in my project.

Initial testing has show that this also underscore values, e.g. if I POST /sources with the payload like this:
{
  "data": {
    "attributes": {
      "math-problem": "1-1=2"

I'll get:
{
  "data": {
    "attributes": {
      "math-problem": "1_1=2"

I've beefed up the tests to account for the above problems, and am successfully using this branch in a project. I'm reasonably sure this is good to go unless there's any more feedback.

@jherdman can you please undo the change LICENSE → LICENSE.md, we do not need to add a .md extension. There's really no reason to make these changes as part of this PR. Please please keep PRs focused on the work you're doing and avoid unnecessary changes 👍

The reason for this change is to include it in the docs. ExDoc gets cranky
otherwise.
Apologies about this PR ballooning.
On Sun., Dec. 30, 2018, 11:04 Sean Callan<EMAIL_ADDRESS>wrote:

@jherdman https://github.com/jherdman can you please undo the change LICENSE
→ LICENSE.md, we do not need to add a .md extension. There's really no
reason to make these changes as part of this PR. Please please keep PRs
focused on the work you're doing and avoid unnecessary changes 👍
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jeregrine/jsonapi/pull/149#issuecomment-450570058,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAM5Arg5eVQPI-4BwTJKrclQuucIwIxks5u-OQHgaJpZM4Zgl0P
.

@doomspork reverted!

@snewcomer any final thoughts before I merge this? I believe we will need @jeregrine to cut a release once we have everything merged and ready.


Wrong Libsodium function in Signature.ed25519PkToCurve25519

First, thanks for the great work on the library.
We had issues with derived public keys that did match what we got from other Libsodium libraries.
Digging deeper (thanks to @andreapizzato) we found that the crypto_sign_ed25519_sk_to_curve25519  has been used to convert public keys instead of crypto_sign_ed25519_sk_to_curve25519
So in the Signature object the ed25519PkToCurve25519 is using the wrong Libsodium function.
actual object Signature {
...
    /**
         * The sodiumJna.crypto_sign_ed25519_pk_to_curve25519() function converts an Ed25519 public key ed25519_pk to an X25519 public key and stores it into x25519_pk.
         */
        actual fun ed25519PkToCurve25519(ed25519PublicKey: UByteArray) : UByteArray {
            val x25519PublicKey = UByteArray(crypto_scalarmult_curve25519_BYTES)
            sodiumJna.crypto_sign_ed25519_sk_to_curve25519(
                x25519PublicKey.asByteArray(),
                ed25519PublicKey.asByteArray()
            )
            return x25519PublicKey
        }

        actual fun ed25519SkToCurve25519(ed25519SecretKey: UByteArray) : UByteArray {
            val x25519SecretKey = UByteArray(crypto_scalarmult_curve25519_BYTES)
            sodiumJna.crypto_sign_ed25519_sk_to_curve25519(
                x25519SecretKey.asByteArray(),
                ed25519SecretKey.asByteArray()
            )
            return x25519SecretKey
        }
    ...
}

Hi @shiundu, thanks for reporting! I'll look into it over the weekend!

Once again, @shiundu and @andreapizzato thanks for reprting the issue and also providing the cause, it really helps. The fix will be available in 0.8.5-SNAPSHOT in a hour if the build completes successfully on CI.

@ionspin Thanks for quick response and for resolving the issue promptly.

Hey @ionspin,
Thanks for the fix,
I don't mean to bother you, I would just like to know why you needed to upgrade the android minimum sdk from 23 to 24?

Hey @shiundu, no worries, I don't remember having a strong reason for picking 24 I think it was mostly updating to a version that hopefully still receives security updates at that point.


Add EST120 QP & HUN102 Question bank

What did this PR accomplish?

Add S1-S2/2019 Scheme EST120 Question Papers ( files moved to assets)
Add S1-S2/2019 Scheme HUN102 Question Bank

Thank you for your contribution!

@Angelrose19  Resolve conflicts

@Angelrose19 grant me the access to edit if you are facing difficulty

Please resolve the conflicts!


Can mobile phone scan code login be supported

If this is an issue with existing content, provide the URL or GitHub path to the topic. Otherwise, use New.
Describe the issue or request. Provide as much detail as possible. For issues, it is helpful to copy the specific section of the topic into the issue.
Thank you for taking the time to let us know about the issue or request. We triage all new issues and requests within 2 business days. We will follow up if we need additional information.

Hey @W123-T , could you please provide some more information / context on the issue?


Studio: Limit box-sizing

In resizer.css:
*, *:before, *:after {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

Can we limit this style to only elements that need this and not global or any descendants?

This is currently only applied as a global to divs, and component-specific style rules should be applied afterwards and overwrite the global rule if necessary.


Initial implementation

static library + pkg-config file
2 metrics: yuv-psnr and y-msssim.
Plain tests to explore their behaviour
Simple average ranking function that weights the capped planes-psnr using the ms-ssim value.

The implementation is looking good so far, left some topic-specific comments under their respective issues at  https://github.com/livepeer/TranscodingVerification/issues/1 and https://github.com/livepeer/TranscodingVerification/issues/5


Generate documentation about Spring Data JDBC in PDF format [DATAJDBC-635]

jabrena opened DATAJDBC-635 and commented
Hi,

Main Spring projects are able to generate the documenation in HTML & PDF format with the exception of Spring Data projects.

ID
DEPENDENCY
AREA
POINT
PAGES
LINK

1
Spring Framework
Core

484
https://docs.spring.io/spring-framework/docs/current/reference/pdf/core.pdf

2
Spring Framework
Data-Access

196
https://docs.spring.io/spring-framework/docs/current/reference/pdf/data-access.pdf

3
Spring Framework
Integration

138
https://docs.spring.io/spring-framework/docs/current/reference/pdf/integration.pdf

4
Spring Framework
Overview

8
https://docs.spring.io/spring-framework/docs/current/reference/pdf/overview.pdf

5
Spring Framework
Testing

186
https://docs.spring.io/spring-framework/docs/current/reference/pdf/testing.pdf

6
Spring Framework
Reactive

178
https://docs.spring.io/spring-framework/docs/current/reference/pdf/web-reactive.pdf

7
Spring Framework
Web

251
https://docs.spring.io/spring-framework/docs/current/reference/pdf/web.pdf

8
Spring Boot

643
https://docs.spring.io/spring-boot/docs/current/reference/pdf/spring-boot-reference.pdf
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/

9
Spring Data
Spring Data JDBC

https://docs.spring.io/spring-data/jdbc/docs/current/reference/html/#reference

10
Spring Cloud

868
https://docs.spring.io/spring-cloud/docs/Hoxton.SR9/reference/pdf/spring-cloud.pdf
https://docs.spring.io/spring-cloud/docs/Hoxton.SR9/reference/htmlsingle/

11
Spring Security

693
https://docs.spring.io/spring-security/site/docs/current/reference/pdf/spring-security-reference.pdf
https://docs.spring.io/spring-security/site/docs/current/reference/html5/

Can you review what is missing in Spring Data JDBC to generate the documentation in PDF format?

Many thanks in advance

Juan Antonio

No further details from DATAJDBC-635

If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.

If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.

Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.

Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.


[Bug]: Web component radio group arrow key bug

Environment
Node version: v18.20.3
Radix Vue version: ^1.8.3
Vue version: "^3.4.27"

Client OS: Macos 14.4.1
Browser: Chromium Engine Version 126.0.6478.57

Link to minimal reproduction
https://stackblitz.com/edit/vitejs-vite-shxgju?file=src%2Fcomponents%2FRadioGroup.vue
Steps to reproduce
see reproduction link, and try the up and down arrow once selecting an item.
Describe the bug
The selection seems to occur multiple times based on the number of radio inputs. Inspecting the code it appears to be something todo with the ref https://github.com/radix-vue/radix-vue/blob/main/packages/radix-vue/src/RadioGroup/RadioGroupItem.vue#L32
Is working fine when not using web components
Expected behavior
Radio group should be selecing up and down based on the arrow keys
Context & Screenshots (if applicable)
https://github.com/radix-vue/radix-vue/assets/15246256/f4a8f402-9999-4982-bdea-9736eb5b9e0c
https://github.com/radix-vue/radix-vue/assets/15246256/c412390a-7cf2-4b2c-b52c-97494742f3fc
Im assuming its something to do with the context of being inside a web component? Just guessing here, Im not to familiar with this project, but love and appreciate all the work that has been done.
I've only tested radio group component, im assuming others are breaking as well

This happens because, when using a web component, the element resides in the shadow DOM. The focusFirst function in RovingFocus/utils.ts relies on document.activeElement, which always returns the RadioGroup element instead of the actual focused radio item. As a result, every time you use the arrow keys, all three items are iterated over, and eventually, the last item receives focus.
To resolve this bug, we need to always pass a rootNode to retrieve its activeElement:
// RovingFocusItem.vue
const elRef = ref()
const rootNode = computed(() => elRef.value?.$el.getRootNode())

// utils.ts
export function focusFirst(candidates: HTMLElement[], preventScroll = false, rootNode = null) {
  const PREVIOUSLY_FOCUSED_ELEMENT = (rootNode ?? document).activeElement
  // remains the same
}

@sunnylost thanks for checking out my issue and giving such a detailed response. Appreciate it! I've submitted a PR