MonitorControl fails to launch, instead displays "Illegal instructions" on STDOUT/STDERR

Before opening the issue, have you...?

[X] Searched for existing issues
[X] Looked through the wiki
[X] Updated MonitorControl to the latest version (if applicable)

Describe the bug
MonitorControl fails to launch when I am connected to three external displays at work, which are described in detail below. Attempting to launch while connected to these displays results in:
robmee01@C02F2508MD6R ~ OSX↑·9|+1
$ /Applications/MonitorControl.app/Contents/MacOS/MonitorControl

Illegal instructions

However, it was working on these same displays connected the same way last week, although I did have to relaunch it a couple of times to get it working.  It works fine when connected to a single Dell UP3216Q at home, so this issues appears to be cause by the monitors that are connected, rather than being a fundamentally broken installation.
Steps to reproduce

(Be me with my setup, apparently :) )
Wonder why TouchBar gestures to change brightness on the external monitor are instead changing the brightness of the native retina display
Notice that MonitorControl's icon is no longer in the menu bar
Attempt to launch it via ⌘+Space, typing MonitorControl, accepting the auto-completion of MonitorControl.app and press return. Nothing happens.
Open a terminal and run open /Applications/MonitorControl.app. Nothing happens.
In the same terminal, run /Applications/MonitorControl.app/Contents/MacOS/MonitorControl

Result:
robmee01@C02F2508MD6R ~ OSX↑·9|+1
$ /Applications/MonitorControl.app/Contents/MacOS/MonitorControl

Illegal instructions

Expected behavior
MonitorControl would launch, as evidenced by all three external displays changing their brightness and the MonitorControl icon appearing in the menu bar, and brightness gestures on my TouchBar triggering brightness changes on the screen with the cursor.
Or, alternatively, displaying an error that only some of my displays can be controlled and others cannot (.. for "reasons").
Anything else?
Output from System Report > Hardware -> Graphics/Displays:
AMD Radeon Pro 5500M:

  Chipset Model:	AMD Radeon Pro 5500M
  Type:	GPU
  Bus:	PCIe
  PCIe Lane Width:	x16
  VRAM (Total):	8 GB
  Vendor:	AMD (0x1002)
  Device ID:	0x7340
  Revision ID:	0x0040
  ROM Revision:	113-D3220E-190
  VBIOS Version:	113-D32206U1-020
  Option ROM Version:	113-D32206U1-020
  EFI Driver Version:	01.A1.190
  Automatic Graphics Switching:	Supported
  gMux Version:	5.0.0
  Metal Family:	Supported, Metal GPUFamily macOS 2
  Displays:
Colour LCD:
  Display Type:	Built-In Retina LCD
  Resolution:	3072x1920 Retina
  Framebuffer Depth:	30-Bit Colour (ARGB2101010)
  Main Display:	Yes
  Mirror:	Off
  Online:	Yes
  Automatically Adjust Brightness:	No
  Connection Type:	Internal
EA275WMi:
  Resolution:	1920x1080 (1080p FHD - Full High Definition)
  UI Looks like:	1920 x 1080 @ 60.00Hz
  Framebuffer Depth:	30-Bit Colour (ARGB2101010)
  Display Serial Number:	5X100126NB
  Mirror:	Off
  Online:	Yes
  Rotation:	Supported
  Adapter Type:	Thunderbolt/DisplayPort
EA274WMi:
  Resolution:	1440 x 2560
  UI Looks like:	1440 x 2560 @ 60.00Hz
  Framebuffer Depth:	30-Bit Colour (ARGB2101010)
  Display Serial Number:	46102290NB
  Mirror:	Off
  Online:	Yes
  Rotation:	270
  Adapter Type:	Apple USB-C Digital AV Adapter
  Adapter Firmware Version:	2.35
S27H85x:
  Resolution:	1920x1080 (1080p FHD - Full High Definition)
  UI Looks like:	1920 x 1080 @ 60.00Hz
  Framebuffer Depth:	30-Bit Colour (ARGB2101010)
  Display Serial Number:	H4ZJ502990
  Mirror:	Off
  Online:	Yes
  Rotation:	Supported
  Connection Type:	Thunderbolt/DisplayPort

Messages from Console.app, filtered by process:MonitorControl while reproducing the issue:
default	10:53:13.673484+0100	MonitorControl	CHECKIN: pid=77982
default	10:53:13.682774+0100	MonitorControl	CHECKEDIN: pid=77982 asn=0x0-0x272272 foreground=0
default	10:53:13.688082+0100	MonitorControl	FRONTLOGGING: version 1
default	10:53:13.688245+0100	MonitorControl	Registered, pid=77982 ASN=0x0,0x272272
default	10:53:13.693197+0100	MonitorControl	BringForward: pid=77982 asn=0x0-0x272272 bringForward=0 foreground=0 uiElement=1 launchedByLS=0 modifiersCount=0 allDisabled=0
default	10:53:13.694221+0100	MonitorControl	Current system appearance, (HLTB: 1), (SLS: 0)
default	10:53:13.697038+0100	MonitorControl	No persisted cache on this platform.
default	10:53:13.698189+0100	MonitorControl	Failed to copy the SysCfgDict MG key with error: 0
default	10:53:13.698163+0100	MonitorControl	Received configuration update from daemon (initial)
default	10:53:13.703017+0100	MonitorControl	Post-registration system appearance: (HLTB: 1)
default	10:53:13.782352+0100	MonitorControl	NSApp cache appearance:
-NSRequiresAquaSystemAppearance: 0
-appearance: (null)
-effectiveAppearance: <NSCompositeAppearance: 0x600001248400
 (
    "<NSAquaAppearance: 0x600001248300>",
    "<NSSystemAppearance: 0x600001240b80>"
)>
default	10:53:13.858629+0100	MonitorControl	 HALPlugInManagement::RegisterPlugIns: skipping in-process plug-ins
error	10:53:13.858654+0100	MonitorControl	AddInstanceForFactory: No factory registered for id <CFUUID 0x600003c48780> F8BB1C28-BAE8-11D6-9C31-00039315CD46
default	10:53:13.909881+0100	MonitorControl	Registering for test daemon availability notify post.
default	10:53:13.910140+0100	MonitorControl	notify_get_state check indicated test daemon not ready.
default	10:53:13.910377+0100	MonitorControl	notify_get_state check indicated test daemon not ready.
default	10:53:13.910523+0100	MonitorControl	notify_get_state check indicated test daemon not ready.
default	10:53:13.911200+0100	MonitorControl	Recieved DFR status change 0. status = 0x1
default	10:53:13.911813+0100	MonitorControl	Recieved DFR status change 1. status = 0x1
default	10:53:13.912894+0100	MonitorControl	SignalReady: pid=77982 asn=0x0-0x272272
default	10:53:13.913444+0100	MonitorControl	SIGNAL: pid=77982 asn=0x0x-0x272272
default	10:53:13.960372+0100	MonitorControl	Reacting to DFR status change 0. status = 0x1
default	10:53:13.963215+0100	MonitorControl	Shortcuts Contextual Actions enabled
default	10:53:13.963563+0100	MonitorControl	Reacting to DFR status change 1. status = 0x1
default	10:53:13.976140+0100	MonitorControl	Register notification block

Environment Information (please complete the following information)
- macOS version: 12.6 Monterey
- Mac model: MacBook pro (16-inch, 2019)
- MonitorControl version: 4.1.0
- Monitor(s):
  - (Built-in Retina Display)
  - Samsung S27H85x connected via USB Type-C to USB Type-C
  - NEC EA274WMi connected via Apple USB Type-C to HDMI dongle
  - NEC EA275WMi connected via USB Type-C to DisplayPort cable
- Apple Silicon/M1 (yes or no): no

Is there a way to reset my preferences, so I can try a "fresh install"?

To remove all saved preferences you can do this command in terminal
defaults delete me.guillaumeb.MonitorControl

Thanks - I'll try that the next time I'm using that problematic setup (likely next week).
Could this issue be caused by the following preference?

Upon startup or wake: Assume last saved settings are valid (recommended)

I tend to pack up my home-working desk to go to the office while the MacBook is suspended (e.g. I pushed the power button, then pressed escape to dismiss the lock screen and turn the displays off, and then closed the lid). When I get to work the first thing I do it connect the power and then the three external displays before unlocking it.

I've had an opportunity to test this changing the preference "Upon startup or wake" from "Assume last saved settings are valid (recommended)" to "Attempt to read display settings": I am no longer experiencing a crash.
Can I suggest making changes to fallback to fallback to some safe setting rather than abruptly exiting with "Illegal instructions"?

Well, abruptly exiting with "Illegal instructions" is not a design choice on our part but obviously a bug somewhere. If there is a crash log we could theoretically pinpoint where/why the crash is happening.

I’m not sure where I would look for a crash log, other than what I provided from console.log.
It doesn’t pop up one of those “App has encountered an error” windows that ask you to report the issue.
I can reproduce this, so if there’s a tool to run it under that captures a core dump (etc) I’m happy to do so.

Hi @meermanr - you should be able to find these under Console / Crash Reports or Spin Reports.

Finally caught a crash, report below:
MonitorControl-2023-01-26-091530.ips.tar.gz
My setup has changed since filing the report - I am now running macOS 13.2 (22D49)

This still happens occasionally on my Apple Silicon M2 Max

Maybe with the latest version (updated Swift compiler and changed some project settings) this is not an issue anymore. If it is, will reopen.


Focus style not applied when clicking in textfield

Tests done with Vaadin 14.3.0 and 14.3.1
Description
When i click in textfield component, the field is not marked as focused.
Expected outcome
A focus halo must be visible when i click in a textfield.
Actual outcome
When i click in a textfield, no focus halo is added.
But when i access the textfield using TAB key, the focus halo is added.
Remarks

The same behaviour occurs with vaadin-combo-box and vaadin-text-area
When using TAB, the CSS attribute focus-ring is added to the component but not when clicked.

Steps to reproduce

Put a vaadin-text-field element in a page.
Click in the text field

Browsers Affected
Tests done with Firefox 78.0.2 (64 bits) and Google Chrome 84.0.4147.89

[x] Chrome
[x] Firefox
[ ] Safari
[ ] Edge
[ ] IE 11
[ ] iOS Safari
[ ] Android Chrome

This is working as intended. There are two different attributes: focused and focus-ring, respectively.
Lumo only applies focus outline to focus-ring by design. This was done by 9544e5e79c26437f8d75f1d396c74ece07005028
You can apply custom CSS using @CssImport to make it work:
@CssImport(value = "./styles/my-text-field.css", themeFor = "vaadin-text-field")

The file should look like this:
:host([focused]) [part="input-field"] {
  box-shadow: 0 0 0 2px var(--lumo-primary-color-50pct);
}

Thanks for the reply.
I had already done it :) , but it's really weird to remove this HTML native behaviour and to have to apply a specific style to achieve this.

I don't understand that choice. If I read the commit you specified ("Updated visual look’n’feel (FFS), remove all box-shadows (excluding focus-ring)"), it was done on purpose.
I'm wondering why when using the -tab- key the focus outline would be displayed whereas it isn't when we click in the field, or vice versa. It is two different behaviours for the same field state (focused). It is not consistent (at least from my point of view).

Ping @jouni, this intention is something worth documenting in the design system documentation.


Mac OS X installer does not document supported versions & fails with unhelpful message on old Mac

Reported by @mcclure on https://github.com/rust-lang/rust/issues/25704

If I go to rust-lang.org, I see a big friendly blue "Install" button labeled with:
Recommended Version:
1.0.0 (Mac installer)
Problem 1: You do not clarify on the web page which versions of Mac the installer runs on (OS version, and if 10.6 or older is supported, 32- or 64- bit).
Problem 2: When I click the "install" button and run the pkg, it quickly halts with this message:

Notice the buttons are grayed out— clicking on them does nothing. This error message makes no sense at all.
For context, I am running 10.6.8 on 64-bit intel (this is fairly old in Mac years, so it would be unsurprising if the Rust binaries do not support it). While the Installer is running, these messages appear in Console.app:

Expected behavior: If the installer fails, it should be with an error message that makes sense. If my operating system version is not supported, I would expect the Rust web page or installer to simply tell me so.

I've just downloaded the 1.1.0 installer as I wanted to give Rust a try, and I've got the same problem as described above. This is also on OS X 10.6.8 with both 64- and 32-bit installers.


Fix Menu on Mobile

While most pages already look better on mobile than the landingpage 😅 , the menu is in a bad state.
A foldable menu with access to the different links (similar to how bootstrap goes about this) and a viewport setting would be great here.

Hi @rradczewski
I gave it a go https://github.com/coderetreat/coderetreat.github.io/pull/66
Let me know what you think! Happy to make any edits.

Made a few changes (e619c227c97deea37d399ecb9edabedd9d3addad, 9e42edce878b070724f4f72773ab26ddcbd83ce9, 2052f18ebfd60e4713e9b1295e2e7505c47ad6d6, 4c509cf74d68b4454bd1f8e596b939c6cbbe53ae) but looks good so far so I'm closing this


🐛 Bug Report: Error while upgrading to 1.24.0 at the beginning of the migration

📜 Description
I am currently running backstage 1.23.3, and i want to update it to 1.24.0, i have noticed the breaking change concerning the backend and trying to do the migration. I have upgraded all the version in package.json using https://backstage.github.io/upgrade-helper/?from=1.23.3&to=1.24.0
and modified my backend index.ts file like so :
import { createBackend } from '@backstage/backend-defaults';

const backend = createBackend();
backend.add(import('@backstage/plugin-app-backend/alpha'));
backend.start();

But i have a console error :
Failed to instantiate service 'core.httpRouter' for 'app' because the factory function threw an error, Error: Failed to instantiate service 'core.auth' for 'app' because the factory function threw an error, Error: ENOENT: no such file or directory, scandir '/Users/xxxx/kry/code/backstage/node_modules/@backstage/backend-defaults/migrations/auth'
and in fact this directory doesn't exist. The backend-defaults module is version 0.2.18.
and i have this error when i go to http://localhost:3000/ :

👍 Expected behavior
It should work as i have followed every steps in https://backstage.io/docs/backend-system/building-backends/migrating/#overview
👎 Actual Behavior with Screenshots
see the description above
👟 Reproduction steps
have a 1.23.3 version and try to update it to 1.24.0
📃 Provide the context for the Bug.
No response
🖥 Your Environment
No response
👀 Have you spent some time to check if this bug has been raised before?

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

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
None

Hmm, I think that it might be better for you to upgrade to the latest version by using yarn backstage-cli versions:bump and go from there. The issue is most likely that by changing the package.json values manually, there's no de-duping of dependencies, which could lead to incompatibilities in the framework.

Yes, I had the same issue while upgrading from 1.23 to 1.24. So I upgraded to 1.29 and followed all the releases notes for migrations.
Here are a few points for your reference:

Few plugins moved to community plugins.
Migrate to the new auth system (remove cookie-auth and s2s auth).
Migrate all backend plugins to use the new auth system.
Remove loggerToWinstonLogger and use LoggerService.
Remove getVoidLogger and use mockService for testing.
Migrate from PluginDatabaseManager to DatabaseService.
Migrate from TaskRunner to SchedulerServiceTaskRunner.
Migrate from PluginEndpointDiscovery to DiscoveryService.
TokenManager to AuthService and HttpAuthService.
Remove getBearerTokenFromAuthorizationHeader and use httpAuth.credentials.
From BackstageIdentityResponse to PolicyQueryUser for permission policy.


Lack of clarity with redirect Uri

A lot of the documentation on AAD authentication such as this page, specifies a redirect uri of https://localhost:{PORT}/authentication/login-callback
However after much time fighting it, I discovered that a pure WASM client side only Blazor app served from a static HTTP source (such as Azure storage static website) won't work with this redirect Uri.
If the Uri is updated to just "https://localhost:{PORT}/" then the login process will complete successfully.
A lot of the documentation is not clear on the purpose of the redirect Uri (other than specifying that it is needed), and in this page in particular there are no details for statically served blazor apps.

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

ID: 92b9c5cb-0e48-25bc-2b7e-e7354bafbe2d
Version Independent ID: b1e8aedc-b46b-41f1-55c1-e293bc6c93db
Content: Secure an ASP.NET Core Blazor WebAssembly standalone app with Azure Active Directory
Content Source: aspnetcore/blazor/security/webassembly/standalone-with-azure-active-directory.md
Product: aspnet-core
Technology: aspnetcore-security
GitHub Login: @guardrex
Microsoft Alias: riande

Hello @ordinaryorange ... We don't cover that specific scenario ... just running locally is all we address, nor can we cover every scenario here ... and I can't even confirm that you are correct about that in the first place. We link out to MS Identity docs for specifics on settings and configuration. For example ...
https://docs.microsoft.com/azure/active-directory/develop/msal-client-application-configuration#redirect-uri
We don't maintain the Microsoft Identity AAD docs here. We're highly compartmentalized ... more so than most people think. If they're deficient in covering something for MS Identity, then you'd need to open an issue for them using the This page feedback on their topic. That's a whole different docs team made up of different folks.
The Blazor security topics in this repo are just here to get devs started with a basic AAD scenario running the app in the debugger. We're even considering dropping some or all of the topics in this node because these were put up at a time when there were NO topics over in MS Identity for Blazor. Now, they have tutorials of their own, so MS is now maintaining duplicate coverage, which is costly 💰. For example ...
https://docs.microsoft.com/azure/active-directory/develop/tutorial-blazor-webassembly
You can try that one to see if they do a better job of covering the redirect URL. If not, I'd recommend telling them (specifically, I think it will be Jean-Marc Prieur) about the lack of coverage (or request to cross-link to helpful coverage). If we do drop coverage here, that tutorial ☝ is the one that we'll point to (and redirect to) as THE tutorial for this experience.
Thanks for writing in on the topic. We take every request very seriously.


@event with multiple function arguments

I've read the documentation about @event and it seems its only for one argument callback. What if I've something like:
this.emit('eventName', 'foo', {});

If you don't want to document this as an event named foo, one other option is to use the @callback tag, which allows you to document an arbitrary number of parameters.

I'll leave a +1 for actually supporting this syntax. Data emitted by events are not limited to one parameter.

Sorry for the misunderstand, what I want to document is an event, not a callback parameter of a function.
Please reconsider reopening the issue.

Single data events are ok for W3C APIs (like browsers), but on Node.js or jQuery styles is acceptable to emit several arguments, +1 to support this syntax.

+1 from me too.

Actually, now that I've figured out how to spell module:MyModule~MyClass#event:myevent (!) providing multiple @param tags within an @event documentation comment appears to work fine.  Well done, whoever did this.

Could you be able to provide us an example how did you do it?

Put the following into a fileev.js and run jsdoc ev.js:
/**
 * @file A file
 *
 * @module ArmActions
 */

/**
 * A thrower.
 *
 * Related event is {@link module:ArmActions~Hurl#event:snowball}.
 *
 * @constructor
 */
function Hurl () { }

/**
 * Throw a snowball.
 *
 * @fires Hurl#snowball
 */
Hurl.prototype.snowball = function() {
    // ...
};

/**
 * Snowball event.
 *
 * @event module:ArmActions~Hurl#snowball
 * @param {boolean} isPacked - Indicates whether the snowball is tightly packed.
 * @param {boolean} [hasRock] - Indicates the thrower is malicious.
 */

Maybe I'm wrong, but seems to me this define an event object, not a Node.js-like event with several parameters...

Then perhaps I'm mis-using the tag; what I'm intending to do is document that a subclass of EventEmitter emits an event named snowball which should be received like this:
hurler.on('snowball', function(isPacked, hasRock) {
  // ...
})

Excepting that the default jsdoc template lists these under an Events block just like Modules and Classes, which seems weird, it does what I want.  I'm only using JavaScript under Node.js so if this is supposed to be used for browser events which are something different then perhaps it would help to give an example of the use you want supported.

Is this still not possible? This is a very essential feature. I can't think of one event-driven module I've written that I could document properly without this. Is jsdoc even meant to be used with node.js?

Any updates on this?

Using multiple @param directives works fine.


naming

The package name and namespace Neo4jClient.Extensions is a bit confusing for noobs as to where the line between the extensions in this package and the Readify client start and end. Also, its not very good for SEO if this library takes off for stack overflow say.
How about a rename of package, assembly and namespaces to Trinity4Neo?
Entymology: Trinity4Neo => Neo4JClient  => The Matrix

btw- I'm cooking a PR in my forked branch cskardon-T-3 which targets the transaction enabled beta neo4jclient. I'd get this merged before doing any rename

Hullo,
I think if you named it Trinity4Neo you'll end up being harder to find via Nuget. At the moment, I think people search for neo4j, and see Neo4jClient then Neo4jClient.Extensions, and probably download from there. I'd worry a rename would lose you nuget download numbers tracking, and make the package initially seem less enticing (as fewer people using it).
That's just my view :/
How has the Tx version being playing with yours?

fair point.
Tx is working but I to be honest my code is hardly exercising much of neo4jclient. still wrestling with angular a lot. the fluent config of this extensions package is looking very nice though.

hey @neutmute - give me a shout if you want some time for Angular.
I'm not particularly keen on changing the name, as @cskardon points out, I think most people find the package due to the search proximity to Neo4jClient.

"want some time for Angular" - ha yeah until we get Matrix like brain downloads this is something I have to do myself :)
Pain in the domain in T-00:50:00.

@cskardon  - how long do you think before you will merge the TX branch into master on the neo4jclient?
If it will be a while, I'll drop the to reference to the TX package in my branch of this repo and do a PR on what I have now.

My plan is to merge it soonish, I'm probably aiming for end of this week,
generally it seems to be behaving itself, it's a big pull request and will
make all the other pull requests much harder initially to get in.
On 4 August 2015 at 11:49, neutmute<EMAIL_ADDRESS>wrote:

@cskardon https://github.com/cskardon - how long do you think before
you will merge the TX branch into master on the neo4jclient?
If it will be a while, I'll drop the to reference to the TX package in my
branch of this repo and do a PR on what I have now.
—
Reply to this email directly or view it on GitHub
https://github.com/simonpinn/Neo4jClient.Extension/issues/8#issuecomment-127563304
.

ok cool. will hold off then. yes that PR is a mega one.


WinScrolled is activated only after first resize due to effect of winwidth/winheight

Steps to reproduce

Create init file ('init-winscrolled-winwidth.vim' in this example') with the following contents:

let g:winscrolled_events = []
au WinScrolled * let g:winscrolled_events = g:winscrolled_events + [expand('<amatch>')]

Run vim -u init-winscrolled-winwidth.vim.
Create new window with vertical split (<C-w>v).
Switch back and forth with <C-w>l<C-w>h. This consumes WinScrolled events resulting from initial vertical split.
:echo g:winscrolled_events. It should show ['1001', '1000'].
:set winwidth=10000. Current window should occupy maximum width, i.e. it was resized.
Again switch windows back and forth. Each switch leads to resizing of current window to maximum width.
:echo g:winscrolled_events. It should show ['1001', '1000', '1001', '1000'].
And again switch back and forth. Each switch still resizes window.
:echo g:winscrolled_events. It now shows the same history as after previous echo, but it should have added two more window numbers.

Note: same applies to winheight and horizontal split.
Expected behaviour
WinScrolled event is activated after any window resize, including resulting from winwidth and winheight.
Version of Vim
9.0.813
Environment
OS: EndeavourOS Linux x86_64, 6.0.8-arch1-1
Terminal: st
$TERM: st-256color
Shell: zsh 5.9
Logs and stack traces
No response

There was a discussion about this recently: When to trigger the
WinScrolled event and whether it should be triggered for each window
separately, or once when any window was scrolled or resized.
What currently happens is that after going to another window, the scroll
position and size are compared to the last time WinScrolled was
triggered.  And in your example there are no changes in that window.
The window did resize when it was not the current window.  But that
currently is not reported.
What the behavior should be depends on what users (or plugin writers)
want to use the event for.  I would think that the main reason is to
adjust the contents of some windows to the new layout.  E.g, if you are
showing some table and the space for it has increased, the information
may be made more verbose.  That would work best with one event, even
when more than one window changes.
If we do this way, one event no matter what changes, and the user/plugin
does need to know about a specific window, then winlayout() and
getwininfo() can be used to see what happened: Store the result of
winlayout() every time WinScrolled is triggered, and find the relevant
changes on the next event.
If we do trigger WinScrolled for each window, then a resize will usually
cause at least two events.  I think this is more complicated, because
the relation between the two events is hard to tell.  The plugin may
need to use both and end up doing its work twice.
I might as well make that change now, then you can try it out and
comment.
--
I AM THANKFUL...
...for all the complaining I hear about the government
because it means we have freedom of speech.
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Thank you, Bram, for the insight!

What currently happens is that after going to another window, the scroll position and size are compared to the last time WinScrolled was triggered.

This totally makes sense considering the observations, yes.

Thanks for quick patch!
My use case is an another animation plugin, but which tries to trigger animations on events (not through some mapped commands). It already has animation for cursor movement and scroll, now I am trying to add window close/open/resize support. Granted, it is for Neovim, so it'll take some more work for me to get back with more informative comments about this change.
The approach described in new documentation seems like the one I expected to be true before 9.0.0913 patch: WinScrolled detects scroll or resize in any window, not just current, just like #10628. I'll test more thoroughly later and get back to you.
That said, I'd wish to point some usefulness for WinScrolled and WinResized to be separate. Right now if plugin wants to make some automated task based on whether layout has changed or not, it should listen for WinScrolled, which will give a fairly lot more false positives due to actual scrolling. This comes at a price of increased computations which can be avoided in case of separate events. However, I do understand the idea of keeping implementation simpler, so there is no easy solution here.

I've checked if this issue persists with 9.0.0513 patch (specifically, with current 9.0.0515 version which also should solve #11582). Here is the result:

:echo g:winscrolled_events. It shows ['1001'] instead of previous ['1001', '1000']. This value is updated already after vertical split.

:echo g:winscrolled_events. It now shows ['1001', '1001', '1001', '1001'] instead of previous ['1001', '1000', '1001', '1000']. This output seems correct as three resizing have occurred (after :set winwidth=10000, after first switch, after second switch).

:echo g:winscrolled_events. It now shows ['1001', '1001', '1001', '1001', '1001', '1001'] (plus two times), which also seems to be correct.

So if always having same match is ok (as it seems to be per documentation; "The pattern is matched against the |window-ID| of the first window that scrolled or resized."), I think this particular issue is fixed. Thanks!

That said, I'd wish to point some usefulness for WinScrolled and
WinResized to be separate. Right now if plugin wants to make some
automated task based on whether layout has changed or not, it should
listen for WinScrolled, which will give a fairly lot more false
positives due to actual scrolling. This comes at a price of increased
computations which can be avoided in case of separate events. However, I
do understand the idea of keeping implementation simpler, so there is no
easy solution here.

Scrolling without changing the window width/height is indeed very
common.  And when you get a WinScrolled event, figuring out that the
window widths/heights did not change isn't simple.
When we would have both WinScrolled and WinResized the question comes up
what to do when a window size changed and scrolling happened as a result
of that.  That's also very common.  To avoid surprises both would need
to be fired.  Would that by itself just work well?
An alternative is that we do keep the one WinScrolled event, and then
provide the information about what changed.  The mininal of that would
be to have a flag that is set when a window width or height changed.
Thus you would get a WinScrolled event with a flag that says no window
size changed, only scrolling happened.
A bit more advanced is to make a list of the changes, with one item per
window.  Perhaps something like:
[{winid: 234, width: 0, height: 1, topline: 0, leftcol: 0}]
This would indicate that window 234 had a height increase of 1 and no
other changes.  When scrolling the window it could be:
[{winid: 234, width: 0, height: 0, topline: 1, leftcol: 0}]
When only interested in size changes you would need to go through the
list.  Hmm, we could make a summary, so that you only need to check one
entry:
[
{winid: 0, width: 1, height: 0, topline: 1, leftcol: 0},
{winid: 234, width: 1, height: 0, topline: 0, leftcol: 0},
{winid: 567, width: 0, height: 0, topline: 1, leftcol: 0},
]
I would think this is useful anyway.  There is some overhead in creating
the list with dictionaries, a small price to pay.
Keep in mind that when a sequence of events happen, only the last change
is going to reported.  When "debouncing" the event the information
may need to be added together until it's used.
--
From "know your smileys":
C=}>;*{)) Drunk, devilish chef with a toupee in an updraft,
a mustache, and a double chin
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

When we would have both WinScrolled and WinResized the question comes up what to do when a window size changed and scrolling happened as a result of that.  That's also very common.  To avoid surprises both would need to be fired.  Would that by itself just work well?

Besides possible implementation difficulties  you outlined in this comment, I can't see obvious pitfalls from user-consumer point of view. If scrolled is caused by resize, then: 1) WinResized is fired with information about resized window(s) followed by 2) WinScrolled with information about how scroll(s) happened.

Hmm, we could make a summary, so that you only need to check one
entry:

Yes, this would be useful (as long as summary is always the first entry).
Couple of thoughts out loud on data structures:

Another possibility is to make it a single dictionary with window ids as keys. This has an advantage of allowing more direct access for any particular window of interest.
Extra decision is needed about what to do with new/closed windows. Either not display at all or display a change from/to zero width and height.
More complicated but potentially more useful is to provide not differences themselves, but a pair of "from"-"to" values (except possible summary entry). This will allow users to not care about accumulating all information in case of several events.

When we would have both WinScrolled and WinResized the question comes
up what to do when a window size changed and scrolling happened as a
result of that.  That's also very common.  To avoid surprises both
would need to be fired.  Would that by itself just work well?

Besides possible implementation difficulties  you outlined in this
comment,
I can't see obvious pitfalls from user-consumer point of view. If
scrolled is caused by resize, then: 1) WinResized is fired with
information about resized window(s) followed by 2) WinScrolled with
information about how scroll(s) happened.

Hmm, we could make a summary, so that you only need to check one entry:

Yes, this would be useful (as long as summary is always the first entry).

Yes, the summary would always come first.

Couple of thoughts out loud on data structures:

Another possibility is to make it a single dictionary with window ids
as keys. This has an advantage of allowing more direct access for any
particular window of interest.

It would be a dictionary of dictionaries then.  It's a little bit less
efficient than a list, but if you just need to check one window then
it's indeed easier than going through the list to find it.

Extra decision is needed about what to do with new/closed windows.
Either not display at all or display a change from/to zero width and
height.

You'll get separate events for splits and closing windows.  The
WinScrolled and WinResized events always come later.  And will only
report about windows that exist at that point, thus a closed window by
itself won't trigger the event, but since the size goes elsewhere the
effect on other windows will be reported.
When a split happens, the new window would report it's current size as
the increase in width and height.

More complicated but potentially more useful is to provide not
differences themselves, but a pair of "from"-"to" values (except
possible summary entry). This will allow users to not care about
accumulating all information in case of several events.

That doesn't sound useful, if you have a width increase of 1 then you
can get the current width and you can compute the previous width.  When
triggering the event there is no clue what the consumer of the event has
last seen, it will have to keep that info anyway.
So, if we aim for the best support, while avoiding too much overhead for
the common cases, we could do:
Add the WinResized event, triggered when any window changes width or
height, providing a list of Window IDs that changed:
[1001, 1003, 1006]
The size changes are not here to avoid overhead.
For the WinScrolled event add the information about what changed as a
dictionary of dictionaries.  This does add overhead, we assume that
using this event means the overhead is justified.  You can then also
use the WinScrolled event if you are only interested in resizing but do
want to get the information provided here.
{
  all: {width: 0, height: 2, leftcol: 0, topline: 1, skipcol: 0},
  1003: {width: 0, height: 1, leftcol: 0, topline: 1, skipcol: 0},
  1005: {width: 0, height: -1, leftcol: 0, topline: 0, skipcol: 0},
}

The "all" entry must have a non-zero height when any window changed
height.  Since it would be zero if we add all height changes together,
add the absolute values.
--
From "know your smileys":
<|-) Chinese
<|-( Chinese and doesn't like these kind of jokes
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

And will only report about windows that exist at that point, thus a closed window by itself won't trigger the event, but since the size goes elsewhere the effect on other windows will be reported.
When a split happens, the new window would report it's current size as the increase in width and height.

That is exactly what I had in mind.

From a user point of view I am not sure that asymmetry between WinResized and WinScrolled provided information is useful/justified. For me a more straightforward design would be:

WinResized is fired if any present window in current tabpage is resized. That is, if any window had a change in height or width. It provides somewhere the information about change in a form of dictionary of dictionaries:

{
  1003: {height: 0, width:  1},
  1005: {height: 0, width: -1},
}

WinScrolled is fired if any present window in current tabpage is scrolled. That is, if any window had a change in leftcol, topline, or skipcol. It provides somewhere the information about change in a form of dictionary of dictionaries:

{
  1003: {leftcol:  0, topline:  1, skipcol: 0},
  1005: {leftcol: -1, topline: -1, skipcol: 0},
}

This way summaries don't seem to add much and all information is given only when it is needed.
Of course, this is purely from a user point of view. I can't say I have strong knowledge about implementation.

I don't care about asymmetry.  Providing a list is just much more efficient, and usually I would expect the window ID to be the only thing that matters, the size change itself might not be needed.  It's easy to keep the previous size when interested in only one window, and if the difference matters then WinScrolled can be used (at the cost of getting the event much more often).

Sure, this also makes sense. It would make even more sense if array was supplied for a more common event (WinScrolled) and dictionary of dictionaries for the other (WinResized), but it comes with a cost of not providing actual scroll data on event.


What about max width?

Thanks for the plugin!
I understand the importance of minimum width, however I find that setting max width is as important. I don't like that my notes spread to the full width of my monitor, I always feel like a cat watching a tennis game 🤣
In other words there should be just one setting: width. I don't know what this obvious thing is not in the base functionality of Obsidian itself. I hope it can be done using plugins.

@doitian yeah, thanks, that's what I use myself. But once again, it doesn't have max width setting. Which makes texts to jump and re-layout.

I do not know how to handle the ugly gaps after setting width or max-width. You'd better use a window management tool to resize your obsidian to proper width.

Ugly gaps? Well, okay. But it's still much better than things like this:

which just renders text barely readable.
Also, note the bold selection in the text which is in the middle of the page and which indicates the place I was reading the text. Now if I open another note, that guy just jumps to the next line, and I lose the position where I was reading:

So I was talking about Obsidian issue with text layout inconsistency. Which is of much higher priority than "ugly gaps"

There's an option Editor ➤ Display ➤ Readable line length. The default line length is 40rem, which can be customized by theme or css snippet:
body {
  --line-width: 42rem;
}


Add spacing for navigation badges on RTL mode

Before:

After:

you are on fire today
thanks

Saw that issue while fixing the navbar stuff 😅

Thanks again, Dennis

Saw that issue while fixing the navbar stuff 😅
yeah I know.
if you have extra time to spare please fix this issue with pagination icons on rtl too
https://github.com/laravel-filament/filament/pull/1935
currrently I dont fluent in filament code base and tailwindcss, so I can not fix that with tailwind...


inline reply does not fire as expected

Hello experts,
I am probably asking a very basic question here.
I have found out that action buttons with ther callback='mycallback' fire in push.on('mycallback', data => {});.
My question here is how to get an action button with inline=true to fire.
I get the notification just fine, can click the button with the label "replyLabel" payload but nothing appears to happen once I click the send button.
If I then send a Notification without inline: true, I can access the text I typed.
The problem, therefore, appears to be that while inline:false opens the app and allows me to access the data, inline:true only allows me to enter text but does not open the app and thus allow me to access the data I need.
Any help would be greatly appreciated!

Sorry to be a jerk but I'm now closing issues that don't follow the issue submission guidelines. This plugin takes a lot of work to maintain and I can't afford the time required to solicit the required info from everyone.
I'm closing this issue but please feel free to re-open the issue if you provide the requested details from the new issue submission guidelines.
https://github.com/phonegap/phonegap-plugin-push/blob/master/.github/ISSUE_TEMPLATE.md

Sorry about that, guess I'll read the guidelines next. Still, thank you very much for maintaining the plugin. I like it very much.
Greetings
Viele Grüße,
Stefan Prahl
Am 26. Sep. 2018, 22:12, um 22:12, Simon MacDonald<EMAIL_ADDRESS>schrieb:

Closed #2555.
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/phonegap/phonegap-plugin-push/issues/2555#event-1869406490


WFP Callout Drive rKernel Debugging over time leads to install errors and anomalies

I have been running into some issues with the most recent Windows 10 update (July 2018) and Kernel Debugging tools from the 10.0.14393.0 WDK.  Originally, prior to the update and/or my (nth) debugging iteration (probably in the 100’s) when I install (right click the inf file and install) the newly installed driver no longer shows up when one uses an elevated command prompt and types “pnptuil -e”.  This used to be the case, but at this point it appears to require one to actually start the driver service before it shows up.  Taking the DDProxy example, this shows similar behavior patterns and no longer shows up under the device manager (i.e. enable show hidden) even when started.
Is there a known “limit” of how many times one can install and uninstall (i.e. pnputil -d oem#.inf) a driver and/or if one gets a BSOD and resets before allowing the full dump file to be generated?  As well, it seems the longer one installs/uninstalls drivers on the host kernel debug machine the longer it takes to boot.   I am posting this in this area because it seems there should be more “troubleshooting” oriented information for callout drivers.  I have developed layer 2 NDIS drivers and never experienced this issues…only with WFP Callouts.  Can one no longer see a WFP callout in the device manager (if so perhaps this portion of the online documentation should be updated)?

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

ID: 9d0041dc-cda6-1301-029f-d952084aa661
Version Independent ID: b2a4b4d0-6b88-1b6c-c957-d6c00bf34279
Content: Installation of Callout Drivers
Content Source: windows-driver-docs-pr/network/installation-of-callout-drivers.md
Product: windows-hardware
GitHub Login: @tedhudek
Microsoft Alias: windowsdriverdev

Hi @NoelStephens , that's a good question. Let me ask the feature team to see what I can find out. You are right in that the driver developer docs aren't oriented towards troubleshooting, which is why we don't have dedicated troubleshooting pages in general, but if I can make the page clearer to help with development then I'd be more than happy to.

OK, I have an answer about the device manager question. Starting in Windows 8 and later, callout drivers are not visible in Device Manger by design because the PnP manager doesn't create a device representation for them any more. I've updated the doc to reflect this information. If a callout does show in in Device Manger, it is likely because of an error in the INF file.
As for your questions about troubleshooting the pnputil command, I'm sorry but I don't have an answer for you there. I'd recommend checking out the WFP section of the Windows Hardware WDK and Driver Development forum. Or, perhaps the community at OSR's ntdev List could help. They're quite responsive and knowlegeable about such issues.
Thanks again for the questions and for your interest in improving the docs.


Add tap / target count on pages

Migrated from GitLab: https://gitlab.com/meltano/hub/-/issues/47
Originally created by @tayloramurphy on 2021-05-12 21:48:19

Now that we're adding more taps and targets having a count would be very useful on https://hub.meltano.com/singer/taps/

View 2 previous comments from the original issue on GitLab


az aks get-credentials corrupts kube config file when cluster with same name is re-created.

Describe the bug
If AKS cluster created, kubectl credentials obtained then cluster deleted and created again. az aks get-credentials will corrupt kubectl config file by creating duplicate records in config file for clusters and users lists.
To Reproduce
Create cluster:
az group create --name myAKSCluster --location eastus
az aks create --resource-group myAKSCluster --name myAKSCluster --node-count 1 --enable-addons monitoring --generate-ssh-keys

Get credentials:
az aks get-credentials --resource-group myAKSCluster --name myAKSCluster

Test kubectl
kubectl get nodes

Delete cluster:
az group delete --name myAKSCluster --yes

Create cluster with same name again:
az group create --name myAKSCluster --location eastus
az aks create --resource-group myAKSCluster --name myAKSCluster --node-count 1 --enable-addons monitoring --generate-ssh-keys

Get credentials:
az aks get-credentials --resource-group myAKSCluster --name myAKSCluster

Test kubectl
kubectl get nodes

Result:
kubectl get nodes
error: Error loading config file "/Users/user/.kube/config": error converting *[]NamedCluster into *map[string]*api.Cluster: duplicate name "myAKSCluster" in list: [{myAKSCluster {https://myaksclust-myakscluster-104af6-eb4c3d33.hcp.eastus.azmk8s.io:443 false  [45

Content of ~/.kube/config
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: ...
    server: https://myaksclust-myakscluster-104af6-eb4c3d33.hcp.eastus.azmk8s.io:443
  name: myAKSCluster
- cluster:
    certificate-authority-data: ...
    server: https://myaksclust-myakscluster-104af6-d618edc6.hcp.eastus.azmk8s.io:443
  name: myAKSCluster
contexts:
- context:
    cluster: myAKSCluster
    user: clusterUser_myAKSCluster_myAKSCluster
  name: myAKSCluster
current-context: myAKSCluster
kind: Config
preferences: {}
users:
- name: clusterUser_myAKSCluster_myAKSCluster
  user:
    client-certificate-data: ...
    client-key-data: ...
    token: ...
- name: clusterUser_myAKSCluster_myAKSCluster
  user:
    client-certificate-data: ....
    client-key-data: ...
    token: ...

Expected behavior
kubectl should work, upon credentials merge items in lists of users/clusters with the same name should be replaced. Or these should be a replace flag...
Environment summary
Installed via brew on mac os. Version:
az --version
azure-cli (2.0.43)

acr (2.1.2)
acs (2.2.2)
advisor (0.6.0)
ams (0.2.1)
appservice (0.2.1)
backup (1.2.0)
batch (3.3.1)
batchai (0.4.0)
billing (0.2.0)
cdn (0.1.0)
cloud (2.1.0)
cognitiveservices (0.2.0)
command-modules-nspkg (2.0.2)
configure (2.0.18)
consumption (0.4.0)
container (0.3.2)
core (2.0.43)
cosmosdb (0.2.0)
dla (0.2.0)
dls (0.1.0)
dms (0.1.0)
eventgrid (0.2.0)
eventhubs (0.2.1)
extension (0.2.1)
feedback (2.1.4)
find (0.2.12)
interactive (0.3.27)
iot (0.2.0)
keyvault (2.2.1)
lab (0.1.0)
maps (0.3.1)
monitor (0.2.1)
network (2.2.2)
nspkg (3.0.3)
policyinsights (0.1.0)
profile (2.1.1)
rdbms (0.3.0)
redis (0.3.0)
reservations (0.3.1)
resource (2.1.1)
role (2.1.2)
search (0.1.0)
servicebus (0.2.1)
servicefabric (0.1.0)
sql (2.1.1)
storage (2.1.1)
vm (2.2.0)

Python location '/usr/local/opt/python/bin/python3.7'
Extensions directory '/Users/apopovich/.azure/cliextensions'

Python (Darwin) 3.7.0 (default, Jul 23 2018, 20:22:55)
[Clang 9.1.0 (clang-9<IP_ADDRESS>)]

Legal docs and information: aka.ms/AzureCliLegal

Additional context
As a workaround I have to unset existing users/cluster items using kubectl config unset command before getting credentials.

Going deeper, this code is the one causing problems, I guess. When the key is clusters the code will enter the if on  this line but will not fall on the if on this line cause some infos of the cluster changed, since it's a different cluster, appending two clusters with the same name here.
It will only fall into the two if statements, if the clusters are the same, which is not the case.

Quick info here. I was working on fixing this problem and, when I download the source code on the dev branch, everything works properly. The version of the cli that everything works fine is 2.0.52 , the one I was getting the error is 2.0.29 :)

@Guilhermeslucas glad you figured it out. Since you have verified that this is not an issue in the latest CLI, I will go ahead and close this.

I am now getting this issue


Intergrate Alonzo era

Closes https://github.com/input-output-hk/ouroboros-network/issues/2871

Just a heads up: it's not immediately obvious to me why cabal in the CI builds is failing to satisfy cardano-ledger-alonzo.

I've fixed one issue that was failing CI BUT we still hit
cabal: Could not resolve dependencies:
[__0] trying: cardano-ledger-alonzo-<IP_ADDRESS> (user goal)
[__1] next goal: ouroboros-consensus-cardano (user goal)

for few builds.
What is surprising is the fact that some builds manage to fetch the dependency just fine, where other struggle.

The translation from Byron to Shelley required "extra" information, as does Mary to Alonzo. It was piped through via the shelleyLedgerGenesis field of the Shelley ledger config.
https://github.com/input-output-hk/ouroboros-network/blob/2c63c74f1134ec2fe1a0a9dec6d84645b46ba3bf/ouroboros-consensus-cardano/src/Ouroboros/Consensus/Cardano/CanHardFork.hs#L434-L459
That route is what hardForkEraTranslation/EraTranslation already supports, and I think it would work for Mary-Alonzo too.
I wonder if the SL.AdditionalGenesisConfig would also suffice as a new argument to ShelleyBasedLedgerConfig.
https://github.com/input-output-hk/ouroboros-network/blob/77c4e0eebb99e3e02db704c3c1ab0e5c307ca4aa/ouroboros-consensus-shelley/src/Ouroboros/Consensus/Shelley/Ledger/Ledger.hs#L101-L106


Readme edits

Update the Heard mark.
Add TOC.
Update Example as head.

close this one as it has so many conflicts.


wallet skeleton. replace flow switch default case catching

[x] Wallet placeholders for actions/reducers/sagas/routes/etc
[x] Use new way to catch switch errors in flow (https://github.com/facebook/flow/blob/360d6dc429fb76ddfee26c691d06f70c8ac5c809/website/en/docs/tips/switch-statement-exhaustiveness.md)
[x] Cleanup some old feature flags
[x] Add wallets to admin feature flags
[x] Comment out crashing call to getConfig

@keybase/react-hackers this is ready


fix for spelling/grammar

Codecov Report

Merging #26 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #26   +/-   ##
=======================================
  Coverage   78.79%   78.79%
=======================================
  Files           8        8
  Lines         816      816
=======================================
  Hits          643      643
  Misses        173      173

Continue to review full report at Codecov.

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

thank you @robled


Specification for a 4th user role

From today's meeting, there needs to be one more role value for the graduate student. Overall, there will be 4 roles, corresponding to:

Site administrators, which corresponds to the module's two professors. Site administrators should be able to access all assessments
Graduate students, who are responsible for manual marking of assessments. Graduate students should be able to access only assessments belonging to students assigned to them
Avengers/TAs, who will be able to access only assessments belonging to their studio group
Students

Implementation-wise, it is possible to give graduate students an identical 'role' value as avengers/TAs. The difference being only the students they are assigned---graduate students are assigned (associated) all the students they are responsible for grading, and avengers/TAs are assigned (associated) the students in their studio group.
More importantly, we need to take note that the information about these groupings will come from IVLE groups. Therefore, a process of parsing IVLE 'group' information into the backend database, as well as a way to update these relationships (as in, to update per fixed amount of time, or on student login, or on graduate student/avenger login) should be implemented.

So we are sure that all of them has an associated IVLE account, correct?
Since we removed email+password authentication method in #48

Yep, if they do not have IVLE accounts already we can just sign them up with guest accounts.

I think we solved this one by giving every Avenger the right to grade every mission. Seemed to work. Any objections to this?

For now, I guess this is resolved pending the refactoring of the authorization system.
One thing to note about allowing all avengers to grade: Without implementation of pagination, retrieving all submissions could be very huge. Last semester, in the 2nd half of the semester, this data could easily reach >4MB, I think at the end of the semester it reached 6MB. It's definitely too huge.

Yes, will see if the GRADING team can take a look at the pagination issue.


Run history randomly remains blank despite backend response

Describe the Bug with repro steps
Go to workflow overview, especially shortly after the app restarted. The run history remains blank. Taking a network trace and hitting refresh, we can see the backend has responded with some runs, but still the portal is not showing the run history.

Workflow JSON
No response
Screenshots or Videos
No response
Browser
Edge
Additional context
Did not attach the network trace as it can contain sensitive security information.

Internal PR here to completely rewrite this blade: https://msazure.visualstudio.com/One/_git/AzureUX-LogicAppsPortal/pullrequest/7923960?_a=files
Should really help with performance.
https://share.cleanshot.com/2RsxGgr7


Make other executable extension selectable in game-details filepicker

Executables with extensions different from .exe currently aren't selectable in the file-picker. This PR adds following extensions to file-picker filter: bat, sh and bash.

There is one big problem in selecting other files. Hydra won't be able to get the executable name to observe its process and count the playtime

Would explicitly forbidding running games as background jobs in the documentation be a good solution?
Also, windows executables should be able to do something like linux bg jobs.
Launchers, for example, frequently give user an option to close themselves for performance boost when a game starts


🐛 BUG: documentation build not working in CI

Issue: mike deploy not working in github actions

Currently working well!


Add UptimeRobot plugin

Signed-off-by: Simon Knittel<EMAIL_ADDRESS>Hey, I just made a Pull Request!
This pull requests adds a plugin for UptimeRobot. It closes #5465

You are able to view the current status and the uptime history of the monitors which you've added to your account on UptimeRobot's website.
You are able to add multiple API keys in order to retrieve the monitors from different accounts. This could be useful for fragmented/big companies since UptimeRobot doesn't provide something like team-wide or company-wide accounts/groups.

The full documentation including installation and usage instructions with screenshots can be previewed here (I didn't want to clutter this PR description with screenshots :smile:): https://github.com/simonknittel/backstage/tree/uptimerobot/plugins/uptimerobot
Future plans:

Add more tests
Provide an interface to create new monitors from within Backstage's interface
Add other monitoring features of UptimeRobot like response times and maintenance windows.

Disclaimer: I'm not affiliated with UptimeRobot as company.
:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[x] Added or updated documentation
[x] Tests for new functionality and regression tests for bug fixes
[x] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

Tugboat has finished building the preview for this pull request!
Link:

https://pr5524-9elrnnnmagz9woh1874odrdl7u58rjka.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/608aa6858e7af6d3aecbee1b

Hey again! I feel I kind of lost track of this one a bit, and I see you've put in a lot of work. There are two small conflicts now to resolve unfortunately. And a four-day weekend starts in Sweden now so I may be a bit delayed in getting this in, but bear with us!

Hey again! I feel I kind of lost track of this one a bit, and I see you've put in a lot of work. There are two small conflicts now to resolve unfortunately. And a four-day weekend starts in Sweden now so I may be a bit delayed in getting this in, but bear with us!

Don't worry! I still have to work on this caching mechanisms which I haven't done yet.


Separate generics and generic constraints

Suggestion
🔍 Search Terms
Generic
Constraints
✅ Viability Checklist
My suggestion meets these guidelines:

[ ] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion
It should be possible to specify explicitly which generics are constraints and which are not.
📃 Motivating Example
With this notation (to be defined), you can define explicitly which generics must be given by the consumer of your type, while also being able to define separately constraints.
💻 Use Cases
Meta programming, configuration.
Considering a function to create a bunch of Store objects with proper typing passed down:
type Store<T extends any> = {}

const createStore = <T extends any>() => ({} as Store<T>)

const createStores = <T extends { [x: string]: {} }, K extends (keyof T)[] = (keyof T)[]>(...keys: K) => (
  keys.reduce((acc, key) => ({ ...acc, [key]: createStore<T[typeof key]>() }), {} as { [X in K[number]]: Store<T[X]> })
)

for which T is a map of "store name → model type" defining an app most complete store configuration, such as:
type Config = {
  'userIds': string
  'friendsCount': number
}

hopefully it should be used like:
const stores = createStores<Config>("userIds")

To be noted:

we explicitly ignore the "friendsCount" since we don't want it
The type of "stores" should be { friendsCount: Store<number> } ("userIds" is ignored since not part of K)

Why it doesn't work

if you pass T, you must pass K.
if you set default of K to be (keyof T)[], keys of return type will always contain all the keys of T (rather than K[number])

Workaround
The cleanest I've succeed in doing so far is separating the 2 generics and cast after that:
type CreateStores<T extends { [x: string]: {} }> = <K extends (keyof T)[] = (keyof T)[]>(...keys: K) => {
  [X in K[number]]: Store<T[X]>
}

const stores = (createStores as CreateStores<Config>)("userIds")

Playground Link
Proposal
I don't have much ideas, but probably chaining 2 sets of <> could help such as (I've added \n to see clearly the notation):
const createStores =
  <T extends { [x: string]: {} }> // the generic types to provide
  <K extends (keyof T)[] = (keyof T)[]> // the function's signature constraints
  (...keys: K) => (
    keys.reduce((acc, key) => ({ ...acc, [key]: createStore<T[typeof key]>() }), {} as { [X in K[number]]: Store<T[X]> })
  )

Looks like #26242, where you want K's default to be infer (or whatever the sigil is)

Indeed that's it thanks @jcalz !


Steam login - feature

Hi, I'm working on a digital products store using Medusa.
I'd like to add Steam login/signup.
I've seen there is node-steam-openid, and I was thinking of integrating this on this plugin. But honestly, I don't have the necessary knowledge yet.
I think it's not difficult to do, is it possible to add it as a feature here?
EDIT: there also is passport-steam, which makes it very easy considering current implementation of the others, like facebook.
I know it's pretty niche, so, if it's not possible, what's the general approach I should use to do it myself?
I know how to install and set up plugins regularly, but I don't know how to do that for a plugin of which I have the source code in my disk, and I'd like tinkering with.
Thanks in advance.

should we close this one in the mean time?


About entering text beneath profile picture...

What entry / box do I need to enter the text into?

can't find either

Fixed with commit 4942a25
Sometimes whatsapp web updates their classnames. Then they need to be updated in the script aswell. I added extended comments on how to find the right classnames.


WIP Split big variable file in smaller more managable ones, Update Nextcloud

ignore python virtualenv
Update nextcloud

What this PR does / why we need it:
Split the group variables in smaller more manageable files.
Update nextcloud.
Which issue (if any) this PR fixes:
Fixes #
Any other useful info:

Can you elaborate a bit more on what you are trying to accomplish by splitting the  all.yml? irrc the all.yml is more for showing off a complete list of variables available/fallback 🤔. Configuration changes should be applied to  inventories/mynas/group_vars/nas.yml as they will have priority. See Controlling how Ansible behaves: precedence rules

Precedence categories
Ansible offers four sources for controlling its behavior. In order of precedence from lowest (most easily overridden) to highest (overrides all others), the categories are
  Configuration settings

   Command-line options

   Playbook keywords

   Variables

Each category overrides any information from all lower-precedence categories. For example, a playbook keyword will override any configuration setting.
Within each precedence category, specific rules apply. However, generally speaking, ‘last defined’ wins and overrides any previous definitions.

By setting our variables in inventories/mynas/group_vars/nas.yml this allows us to set up all our custom changes to roles that need them and still use the defaults for others if we want to enable them as ansible will still fallback on either the group_vars/all.yml or the roles/defaults/main.yml
Also updating Nextcloud changes should be a seperate pull request.


incorrect formatting when url contains multiple parameters

when url formatting applied, resulting string doesn't contain parameters which were specified after first ampersand.

It work for me if I use this url http://example.com?foo=bar&baz=quux

When I echo this url the formatting is broken (the last characters are not detected as part of the url)
http://localhost:3000/dump/355136053206986-null/ملف جديد?u=c6QqgwJzro3BhokNi&t=7vgv_K446-VYqDL7PL2AnQNgQ09uNtmLZVurTaduLbU

it work for me, in devel branch without any error but on 0.8.8 I've got unclosed html entity error.

I'm using the devel version 0.9

here a screenshot see last characters are not detected as part of the url

It's because url is split into two lines. I don't know why in your case you have 2 lines that are blue. All parameters should be white in this case. I'll try to come up with formatting for urls so they will work even if they are split into multiple lines.

Thank you for looking at this.
Just a little bit more context (sorry i've not provided it in the beginning):  i tested this with 0.8.8. I did echo(url, {raw: false}) of a url with parameters and it was broken.
Here is the url example:
http://test.myhost.com/requestDetails/spawn?typeFilter=t1,t2,t3,t4&nanosecondFilter=10000&data=9c51a787-ecc1-4f1a-bb4b-6b744cead65e-46262&env=test&region=us-east-1
I will try to migrate to the dev branch and see if the issue is still there.

the url don't work.

I've created formatting for url with exclamation mark, so your url will look like: [[!;;]<URL>]
I'll try to replace all urls with formatting so they always have full url.

Now urls keep href even if they are split, and [[!;;]<URL>] is used internaly by terminal.


Release Automation

Release Automation
First pass at automation of current crate release workflow. This script uses a 'release plan' that simply consists of a file with crate names and bump level (minor or patch).
For example:
ockam_core minor
ockam_node patch
ockam_vault minor
ockam minor

When this plan is given to release.sh, the following occurs:

Changes since the last released are gathered from git into a Changelog-INCOMING.md for each updated crate. This file has the correct version and date populated, as well as section headers. All that a maintainer needs to do is place the git log message content into one of the categories, then cut and paste into the real Changelog.md

The version of the crate is incremented using cargo bump.

The README.md of the crate is updated to the correct version.

For all other Ockam crates, dependencies on the releasing crate are updated.

Lockfiles are regenerated for all changed crates.

All crates are checked via cargo check  and  will fail on problems

Runs a final gradle test_rust.

Thanks! Corrected all.


Fix #2444 by having a special case for py 2.7

As Python 2.7 is still marked as supported by NLTK, version 3.4.5 shouldn't break compatibility.
This fixes #2444 which is one instance of regression that I was faced with. AFAIK, there are no other regressions.

Failed tests are identical to tag 3.4.5 https://travis-ci.org/nltk/nltk/jobs/574281125

Thanks @sildar

@stevenbird Will there be a new release including this fix?


Is there a high risk sign-in event?

From my understanding "High" is only a user-risk condition covered under identity protection and not conditional access. This article confuses this.

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

ID: 82f158b6-b241-4d78-b609-b01fd05526dc
Version Independent ID: 2b62c21c-f501-20f8-56be-fdb8b3cea978
Content: What are conditions in Azure Active Directory Conditional Access?
Content Source: articles/active-directory/conditional-access/conditions.md
Service: active-directory
Sub-service: conditional-access
GitHub Login: @MicrosoftGuyJFlo
Microsoft Alias: joflore

@Mark7even Thank you for your feedback . We will investigate and update this thread.

@Mark7even The Sign-in risk is also a condition covered under conditional access which can be set as follows in a CA policy that you can apply to any application as needed.

The sign-in risk presented here is same as the one which is calculated by the Identity Protection for AAD premium editions or risky sign-in report  for AAD free and Basic editions. The risk-type and risk level information is included in the AAD premium which provides enhanced reports.

Every sign-in attempt by any user in Azure AD generates a sign-in log in the Azure Identity back-end which is evaluated for different kinds of risks and is categorized accordingly. The Conditional access policy takes into consideration if the current sign-in attempt by the user falls in any of the risk Level categories (high, medium, low , no risk) whenever a user logs in or not and accordingly applies the policy. I hope this clarifies your confusion. We will close this issue now. Should you have any further queries feel free to tag me or the author @MicrosoftGuyJFlo to your reply and we will be happy to help. alternatively you can also open a new issue and we will gladly help you out with the same.
Thank you,.


[deb] libappindicator is deprecated, please switch to AyatanaIndicator

libappindicator1 is deprecated (details here), and should be replaced with libayatana-appindicator3.
The former is unavailable in Debian Bullseye (as well as unstable), and makes installation impossible:
$ LANG=en_EN.utf-8 sudo apt install notion-app-enhanced
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 notion-app-enhanced : Depends: libappindicator3-1 but it is not installable
E: Unable to correct problems, you have held broken packages.

This bug is probably coming from Electron, so it should be linked to the corresponding upstream issue.
See how this was handled in Signal-Desktop: https://github.com/signalapp/Signal-Desktop/issues/4761

Is there any update? This package is not installable on Debian.

A new version containing this and other fixes will be released very soon, just wait a little bit longer.


Mapper convertToDatabaseValues for unique fields on validation

related to this issue: https://github.com/vlucas/spot2/issues/115

Thanks for this!
Did you base this work off the current master branch? Looks like it has some conflicts - I can't merge it as-is.

upstreamed

Thanks. 👍

Would you mind to tag the new version?


3 db contexts

Hello,
May I ask is there any reason to use three different db contexts instead of one?

I would like to use IdSrv.EF in my project, and also I would like to keep it maintainable for future changes in IdSrv. So I inherits each of these 3 db contexts and create manual EF migrations in my derived db contexts.
In this case after any future changes in IdServ's entites I shoud execute Add-Migration for all three db contexts in my project. For me is better to have only one db context.
Could I propose PR to do something like already done here DbContextUserAccountRepository.cs to cover my case? or even maybe create an interfaces for the db contexts and pass through the interfaces to ClientStore's constructor instead of passing through concrete db context?

Because not everyone needs or wants all three.

Could it be changed in the same way as in MembershipReboot.Ef using repositories and extensions for DBModelBuilder?

What specifically did you have in mind?

It would be nice to have an option to use it in one context without changing 3 db contexts by default.

Well, if you can prototype an approach that allows both, then we're open to PRs.

What do you think about PR #71 is it okay?

Ok, I took a look and it seems fine -- I suppose you're doing your own single DbContext in your own code somewhere?

Ok, I merged the PR. Thanks.


Make SpotlightView/Targetclickable

Can you make spotlightview or the target clickable? I know we can make a custom view and set clickable there but it would be great to make the target itself clickable to make the user tap on the target to move forward

The target is a clipped area.
so if you want to click the clipped area, i think you could set a listener on your view targeting.

I´m trying the same thing right now. The whole SpotView has the click event, there is no easy way to detect onclick only on the target area.
Any ideas are welcome

sorry, i was wrong.
To work it around, you have to use an customTarget and set an listener on the view on the CustomTarget.
I will try to improve this, but I can tell when so far, sorry.

Is this now clickable a target or shape in the current version?


Update to Thinbsgoard 1.3.1

Hi,
I tried TB samples running against current version of Thingsboard and I found (and solved) a few problems:

Hidden excepction -> I added: e.printStackTrace();
NullPointerException when deviceAttributes was missing -> I added: if ( != null)...
In TB 1.3.1 device needs a type and additionalInfo has different structure so I changed JSON.

I focused only to demo-loader and demo-data since I want to use this mechanism to transfer application setup between developer's installation(s) and test/integration environments. (If you have better idea how to do it, please tell me).
I'm still not able to compile spark-kafka-streaming-integration:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.0.0:shade (default) on project spark-kafka-streaming-integration: Error creating shaded jar: Invalid signature file digest for Manifest main attributes -> [Help 1]
Ales

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.atmej seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Thank you!


any/all short circuiting

Description
List comprehension can postpone the evaluation of any/all, which can hurt performance for larger iterables. Surprisingly, this was not yet included here as rule.
Example:
def hi():
    print('hi')
    return True

>>> any(hi() for num in [1, 2, 3, 4])
hi

>>> any([hi() for num in [1, 2, 3, 4]])
hi
hi
hi
hi

From this answer
Proposal
Extend the current set of rules with C418 and C419 (any, all), similar to C403 and C404

Thanks for the suggestion.
In the past I removed some rules that suggested using generators over comprehensions, because the increase in laziness is not always a 100% compatible change: https://github.com/adamchainz/flake8-comprehensions/blob/main/HISTORY.rst#340-2021-03-18 . In the case of any/all, any side effects from the comprehension would be lost. I prefer to have rules don't have any false positives.
Also generator expressions are not always faster. For small-ish collections, list comprehensions often win.
I'd be open to having a set of default-disabled rules that one opts into though. Perhaps there could be a setting ("suggest-generators" or something) that users add with the understanding that semantics could change...
Thoughts?

Thanks for the useful pointers.
The scope of C407 used to be much broader, considering all builtins - frequently resulting in false positives. For any/all, there are clear cases where the generator expression is preferable.
The choice for generator or comprehension should indeed be made consciously (and flake8-comprehensions should help with pointing that out). Opting-in and having a proper disclaimer seems like a great solution.
Notes on performance, for future reference:

A fully exhausted generator is slower than an equivalent comprehension. However, any and all will terminate early when the first True or False value respectively is encountered. As a rough estimate, if a fully exhausted generator is 50% slower (reasonable based on benchmarks), compared to an equivalent comprehension, then on average, a generator may be preferable when an early termination value is expected before 2/3rds of the sequence is processed. Note that the generator variant is more memory efficient.

@adamchainz Here is some performance bench-marking specifically for any / all: https://www.katrin-affolter.ch/Programming/performance_of_all_and_any

FYI for any who wants to use this rule, it's implemented in flake8-pie as PIE802.

Thanks @Skylion007 , since i'ts implemented elsewhere I think we can close this. I think I'll avoid adding rules that change laziness to this plugin, it'll just be easier to maintain and understand.

Actually there's a PR open, I think we cxan review and add this.

There is one counter example here, but the potential speedups are potentially worth it: https://github.com/charliermarsh/ruff/issues/3259#issuecomment-1454335988

The counterexample isn't for any/all ?


Hardwired artifacts - http_proxy support

Is this a BUG REPORT or FEATURE REQUEST?: FEATURE REQUEST
What happened:
When trying to execute workflows that use hardwired artifacts like git/http - workflow always times out, if the host is behind http_proxy.
What you expected to happen:
Successfully created workflow that would download some artifact from internet.
How to reproduce it (as minimally and precisely as possible):
Put your host behind http_proxy and try running example: input-artifact-git.yaml or input-artifact-http.yaml.
Anything else we need to know?:
The workaround for this is to set environment variables http_proxy/https_proxy in the container like:
container:
      image: golang:1.8
      command: [sh, -c]
      env:
       - name: http_proxy
         value: http://<proxy_server>:<port>
       - name: https_proxy
         value: http://<proxy_server>:<port>
      args: ["
        echo $http_proxy;
        echo $https_proxy;
        git clone https://github.com/argoproj/argo.git
      "]

and download (for example the argo repo) as an argument in the started container.
Environment:

Argo version:

$ argo version
argo: v2.1.1
  BuildDate: 2018-05-29T20:39:36Z
  GitCommit: ac241c95c13f08e868cd6f5ee32c9ce273e239ff
  GitTreeState: clean
  GitTag: v2.1.1
  GoVersion: go1.9.3
  Compiler: gc
  Platform: linux/amd64

Kubernetes version :

$ kubectl version -o yaml
clientVersion:
  buildDate: 2018-01-18T10:09:24Z
  compiler: gc
  gitCommit: 5fa2db2bd46ac79e5e00a4e6ed24191080aa463b
  gitTreeState: clean
  gitVersion: v1.9.2
  goVersion: go1.9.2
  major: "1"
  minor: "9"
  platform: linux/amd64
serverVersion:
  buildDate: 2018-01-18T09:42:01Z
  compiler: gc
  gitCommit: 5fa2db2bd46ac79e5e00a4e6ed24191080aa463b
  gitTreeState: clean
  gitVersion: v1.9.2
  goVersion: go1.9.2
  major: "1"
  minor: "9"
  platform: linux/amd64

Other debugging information (if applicable):

workflow result: "failed to load artifacts: fatal: unable to access 'https://github.com/argoproj/argo.git/': Failed to connect to github.com port 443: Connection timed out"

$ argo get <workflowname>
Name:                input-artifact-git-zbgns
Namespace:           default
ServiceAccount:      default
Status:              Pending
Created:             Thu Aug 23 00:41:36 -0700 (now)

executor logs:

$ kubectl logs <failedpodname> -c init
time="2018-08-23T07:41:38Z" level=info msg="Executor (version: v2.1.1) initialized with template:\narchiveLocation:\n  s3:\n    accessKeySecret:\n      key: accesskey\n      name: minio-minio-user\n    bucket: my-bucket\n    endpoint: minio-minio-svc.default:9000\n    insecure: true\n    key: input-artifact-git-zbgns/input-artifact-git-zbgns\n    secretKeySecret:\n      key: secretkey\n      name: minio-minio-user\ncontainer:\n  args:\n  - cd /src && git status && ls -l\n  command:\n  - sh\n  - -c\n  image: golang:1.8\n  name: \"\"\n  resources: {}\ninputs:\n  artifacts:\n  - git:\n      repo: https://github.com/argoproj/argo.git\n      revision: master\n    name: argo-source\n    path: /src\nmetadata: {}\nname: git-clone\noutputs: {}\n"
time="2018-08-23T07:41:38Z" level=info msg="Start loading input artifacts..."
time="2018-08-23T07:41:38Z" level=info msg="Downloading artifact: argo-source"
time="2018-08-23T07:41:38Z" level=info msg="git clone https://github.com/argoproj/argo.git /argo/inputs/artifacts/argo-source.tmp"

$ kubectl logs <failedpodname> -c wait
Error from server (BadRequest): container "wait" in pod "input-artifact-git-zbgns" is waiting to start: PodInitializing

workflow-controller logs:

$ kubectl logs -n kube-system $(kubectl get pods -l app=workflow-controller -n kube-system -o name)
time="2018-08-23T07:41:36Z" level=info msg="Processing workflow" namespace=default workflow=input-artifact-git-zbgns
time="2018-08-23T07:41:36Z" level=info msg="Updated phase  -> Running" namespace=default workflow=input-artifact-git-zbgns
time="2018-08-23T07:41:36Z" level=info msg="Created pod: input-artifact-git-zbgns (input-artifact-git-zbgns)" namespace=default workflow=input-artifact-git-zbgns
time="2018-08-23T07:41:36Z" level=info msg="Pod node input-artifact-git-zbgns (input-artifact-git-zbgns) initialized Running" namespace=default workflow=input-artifact-git-zbgns
time="2018-08-23T07:41:36Z" level=info msg="Workflow update successful" namespace=default workflow=input-artifact-git-zbgns
time="2018-08-23T07:41:37Z" level=info msg="Processing workflow" namespace=default workflow=input-artifact-git-zbgns
time="2018-08-23T07:41:37Z" level=info msg="Checking for deleted pods" namespace=default workflow=input-artifact-git-zbgns
time="2018-08-23T07:44:00Z" level=info msg="Alloc=5385 TotalAlloc=216208 Sys=23662 NumGC=831 Goroutines=50"
time="2018-08-23T07:45:13Z" level=info msg="Processing workflow" namespace=default workflow=input-artifact-git-zbgns
time="2018-08-23T07:45:13Z" level=info msg="Updating node input-artifact-git-zbgns (input-artifact-git-zbgns) message: failed to load artifacts: fatal: unable to access 'https://github.com/argoproj/argo.git/
': Failed to connect to github.com port 443: Connection timed out"
time="2018-08-23T07:45:13Z" level=info msg="Updating node input-artifact-git-zbgns (input-artifact-git-zbgns) status Running -> Error"
time="2018-08-23T07:45:13Z" level=info msg="Updated phase Running -> Error" namespace=default workflow=input-artifact-git-zbgns
time="2018-08-23T07:45:13Z" level=info msg="Updated message  -> failed to load artifacts: fatal: unable to access 'https://github.com/argoproj/argo.git/': Failed to connect to github.com port 443: Connection
 timed out" namespace=default workflow=input-artifact-git-zbgns
time="2018-08-23T07:45:13Z" level=info msg="Marking workflow completed" namespace=default workflow=input-artifact-git-zbgns
time="2018-08-23T07:45:13Z" level=info msg="Workflow update successful" namespace=default workflow=input-artifact-git-zbgns
time="2018-08-23T07:45:14Z" level=info msg="Labeled pod default/input-artifact-git-zbgns completed"

After discussion with @jessesuen, he agrees that git artifact options could be improved to give users the ability to set various git flags so that can be supported in a generic way, with for example 'http.proxy'.

Is there any news on this topic?

Bump

This can be done with podSpecPatch on the init or wait container these days or with a configuration in the workflow-controller-configmap.yaml on the executor
Related https://github.com/argoproj/argo-workflows/pull/12383 / https://github.com/argoproj/argo-workflows/issues/12313


Use cert manager to provide certficates to devices outside of the cluster

Hi,
I have a question about cert manager. Suppose we have a gRPC service that is responsible to install, rotate, get certificates on a network device (server side) (something like this protocol: https://github.com/openconfig/gnoi/blob/master/cert/cert.proto). The client will be running in k8s cluster and it is responsible to generate a certificate and call an rpc in the server side to perform an operation (e.g. installing the certificate on a target). For now, assume the client is responsible to generate the certificate. Can we use cert-manager to achieve the goal? I mean if the certificate is accessible that we can send it over a gRPC channel outside of the cluster? What are the best practices to manage certificates outside of k8s cluster when we also need to manage certificates for communication between microservices in a k8s cluster.

I'd recommend creating some kind of controller that watches for cert-manager Certificate and Secret resources, calling the appropriate gRPC endpoint when you observe the certificate changing.
We don't currently provide any sort of hook to 'notify' applications of this, as it is a non-trivial problem (e.g. what happens if your webhook service is unavailable at the time? Do we retry? What guarantees do we provide here?).
Creating your own extension to handle this would be the recommended approach, and something like kubebuilder would be a great way to get started 😄

If you are also running something in the cluster already that is responsible for requesting certificates and pushing them to your service, you may also want to consider using the CertificateRequest API to submit a CSR to one of your configured issuers - this would mean you don't have to store the private key and certificate in a Secret resource before pushing it to the gRPC service.

Thanks for your reply. It would be helpful
On Wed, Oct 16, 2019 at 5:02 PM James Munnelly<EMAIL_ADDRESS>wrote:

If you are also running something in the cluster already that is
responsible for requesting certificates and pushing them to your service,
you may also want to consider using the CertificateRequest API
https://github.com/jetstack/cert-manager/blob/master/design/20190708.certificate-request-crd.md
to submit a CSR to one of your configured issuers - this would mean you
don't have to store the private key and certificate in a Secret resource
before pushing it to the gRPC service.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jetstack/cert-manager/issues/2169?email_source=notifications&email_token=ACPCVXFXSTUIQOCJQDCYFYLQO56MRA5CNFSM4I6ZBHQKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBN5R3A#issuecomment-542890220,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACPCVXDFCCWAJ4FTMCMGKGDQO56MRANCNFSM4I6ZBHQA
.


Issue #570 Solved

Description 📜
Solved Issue #570. I have created a tutorial and documentation for Advanced Python Function Zip
Fixes #570

Type of change 📝

[x] Documentation (Content Creation in the form of codes or tutorials)

Domain of Contribution 📊

[x] Python_Domain

Checklist ✅

[x] I follow Contributing Guidelines & Code of conduct of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I'm GWOC'21 contributor

Screenshots / Gif (Optional) 📸

@kumarankm @adityabisoi what to do now

Looks fine! Good job 👍🏻
@adityabisoi have a look at it
Close your previous pull request @Ajinkyap331

Ok Thanks

Can you update ## Learning path in readme as well

@adityabisoi what number should I give it

@Ajinkyap331 The continuous one in this case 9

ok @kumarankm

@kumarankm @adityabisoi  Done

@kumarankm @adityabisoi Done

Solve the conflicts. Send me the screenshot of your conflict file @Ajinkyap331
I will say how to

@kumarankm The conflict is in Readme.md (index)

@Ajinkyap331 Watch this video you could come to know how to solve
https://youtu.be/vexdS7ubtvQ

Done @kumarankm. And Thank You so much

@adityabisoi  Please review it

Thank you @kumarankm.


vscodium: allow using vscode extensions

The extensions are in /share/vscode/extensions even for vscodium, and that
seems fine/convenient.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Notify maintainers
cc @Synthetica9

Wouldn't that break things if you were to have both vscode and vscodium
installed at the same time? (can't that atm)
On Wed, 25 Dec 2019, 14:06 Arnout Engelen<EMAIL_ADDRESS>wrote:

The extensions are in /share/vscode/extensions even for vscodium, and that
seems fine/convenient.
Things done

Tested using sandboxing (nix.useSandbox
http://nixos.org/nixos/manual/options.html#opt-nix.useSandbox on
NixOS, or option sandbox in nix.conf
http://nixos.org/nix/manual/#sec-conf-file on non-NixOS linux)
Built on platform(s)

NixOS
macOS
other Linux distributions

Tested via one or more NixOS test(s) if existing and applicable for
the change (look inside nixos/tests
https://github.com/NixOS/nixpkgs/blob/master/nixos/tests)
Tested compilation of all pkgs that depend on this change using nix-shell
-p nixpkgs-review --run "nixpkgs-review wip"
Tested execution of all binary files (usually in ./result/bin/)
Determined the impact on package closure size (by running nix
path-info -S before and after)
Ensured that relevant documentation is up to date
Fits CONTRIBUTING.md
https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md.

Notify maintainers
cc @Synthetica9 https://github.com/Synthetica9
You can view, comment on, or merge this pull request online at:
https://github.com/NixOS/nixpkgs/pull/76494
Commit Summary

Allow using vscode extensions in vscodium

File Changes

M pkgs/applications/editors/vscode/with-extensions.nix
https://github.com/NixOS/nixpkgs/pull/76494/files#diff-0 (2)

Patch Links:

https://github.com/NixOS/nixpkgs/pull/76494.patch
https://github.com/NixOS/nixpkgs/pull/76494.diff

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/pull/76494?email_source=notifications&email_token=ABV7PJ3RF4UAUZWVED4OWKLQ2NLG7A5CNFSM4J7E3IAKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4ICTN7OA,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABV7PJYQ53I23XPOR26Y2PTQ2NLG7ANCNFSM4J7E3IAA
.

It seems to work for me. I have configured it in /etc/nixos/configuration.nix as:
(nixpkgs-vscode.vscode-with-extensions.override {
      vscodeExtensions = with nixpkgs-vscode.vscode-extensions; [
        scala-lang.scala
        scalameta.metals
      ];
    })
    (nixpkgs-vscode.vscode-with-extensions.override {
      vscode = nixpkgs-vscode.vscodium;
      vscodeExtensions = with nixpkgs-vscode.vscode-extensions; [
        scala-lang.scala
        scalameta.metals
      ];
    })

Perhaps that's not the expected way to do it?

I also just checked this and everything seems to work for me for vscode and vscodium.
This kind of fixes #70624, even though at least some more documentation would be nice.

Turns out there was already a PR fixing this - #71251 - that is now merged. Thanks @hyperfekt !


Add lifecycle configuration to delete objects under a certain size to remove destroyed states

Describe the Feature
It's nice to look at the s3 state bucket to see which components and root dirs contain resources
After destroying root components and resources, the state file object continues to exist in s3. The state object has very few characters in there. It would be nice to expire these objects when they are less than a certain number of bytes.
Expected Behavior
Expire s3 state objects when the objects are less than N bytes
Use Case
See above
Describe Ideal Solution
Lifecycle rule
Alternatives Considered
N/A
Additional Context

https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html

It's kinda sketchy to do this, but I would like to see it if it's possible... We do enable versioning by default, right? So that should give us some confidence that this won't just outright destroy state that is actually being used. That said, I could see this being a problem... added some labels to see if anyone wants to implement and then we can discuss more once it's in a PR.


Show error from API call if pipeline update fails

@james2791 I made a draft PR to demo the pipeline update error handling change - seems pretty small?

Thanks @david-poirier 👍
I'm actually looping this + some other error diagnostic changes to this PR, which will standardise the logging that gets added on those conditions!


Callback/Controller function called multiple times

routie('', function(){
	console.log('called')
})
routie('foobar', function(){
	return false
})

console:
called
called
However, this code:
routie({
  '': function(){
  	console.log('called')
  },
  'foobar': function(){
  	return false
  }
})

console:
called
So the second sniped works fine, first one does not...
Chrome  43.0.2357.81 m
Win7 SP1 64

Okay, so today I finally decide to stop using this project, because it's keep calling controller function multiple time under different circumstances that described above.... Very bad indeed.

@mateuszjarzewski I guess you are using the library wrong. If you have a look at the source https://github.com/jgallen23/routie/blob/master/lib/routie.js#L104-L109 you can see how you are suppose to implement your routes.
If you pass both route name and callback to routie(name, callback) routie will actually force a reload. But if you pass an object with all your routes at once, it will iterate over it, add alla handlers and then reload.

@jalet and then we have another problem - You wont be able to decide several routes multiple times. Example
    routie({
                '/foo': function(){
                    console.log('foo');
                }
            });
    routie({
                '/bar': function(){
                    console.log('bar');
                }
            });

and If You come to page with url like http://baz.com/#/foo then in console You'll see

foo
foo

@jgallen23 its cool library, very light, but it lacks of public methods like "addRouter" / "removeRouter", what do You think?

@k-vladyslav I agree with you, addRoute(); delRoute() would be nice addiotions

@mateuszjarzewski This issue seems to be a duplicate of #30. I'm going to close it but feel free to continue the conversation there. @jalet If you would like to see this functionality please open a separate issue or submit a pull request. Actually, pull request #24 seems similar to this, perhaps that might be of use to you.


The table with the route stats is no longer there in 1.5 onwards

The old hawtio 1.4.x with the old look and feel had a very good page where you can see an overview of all your routes and a selected set of route attributes, such as number of messages completed / failed / avg time etc.
That page is no longer there in 1.5 or 2.x.
See the 2 screenshots.
You can reproduce this by grabbing the CiA2 source code at
https://github.com/camelinaction/camelinaction2
And then
cd chapter16/metrics
mvn hawtio:run

The hawtio version for the maven plugin can be adjusted in the pom.xml file

Fixed.
Commit: https://github.com/hawtio/hawtio-integration/commit/cd9cbfb04ca2d73e733260dd1ea1e91e59f86f60


Prompted to Reload Project after Adding Pre or Post Deploy Script

(after reloading ADS I can no longer repro 😞)

Previously, when adding pre or post deploy script, I saw the above message. Will keep trying to see if I can get a repro.
Mac (x64), SDK-style sqlproj

Ok, I have a consistent initial repro:

Reload ADS with sqlproj in workspace
Right click on project and click "Edit .sqlproj"
Now do anything that modifies the project, such as adding a folder

Doing these steps I'm seeing the toast notification pop up for that and any subsequent modifications.

yes for that case it's expected for the notification to popup since there's a file watcher when the .sqlproj is opened using the "Edit .sqlproj File" command that only gets disposed when the file is closed. This was intended for when users to get prompted to reload the project if they edit their .sqlproj, with the expectation that they'll close the file when they're done editing.
Think this is too much and should be removed? The user could also use the refresh button to reload their project if we got rid of this file watcher and notification

Is there a reason you wouldn't refresh any time you detected a change automatically?

Hmm not sure why we didn't do that originally. Maybe it was to make it more similar to SSDT, which detects if the .sqlproj has been changed and prompts the user if they want to reload or not. If not, then the next save will overwrite the .sqlproj with the project state in SSDT.


Cannot download live streams while it's happening.

Checklist

[x] I'm reporting a broken site support issue
[ x] I've verified that I'm running youtube-dl version 2<IP_ADDRESS>
[ x] I've checked that all provided URLs are alive and playable in a browser
[ x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[ x] I've searched the bugtracker for similar bug reports including closed ones
[ x] I've read bugs section in FAQ

Verbose log

PASTE VERBOSE LOG HERE

Description

whenever I try to download live-stream that's happening it says downloading but doesn't actually save. After the broadcast it done and the channel deletes the stream's recording or makes it private it obviously cannot download it, but even though it started before the stream ended, nothing is saved. YT-DL does save the thumbnail though,
I searched the past issues and can't find that on there. I'm running on Windows if that makes a differnce

Bump?


Internationalization?

This captcha offers multi language support?

Yes!
For the front-end, we have an example at https://github.com/emotionLoop/visualCaptcha-frontend-core#localization
For the back-end, it'll depend a lot on your implementation, but making the names in the images.json and audios.json files dynamic (or loading different files as per a variable, somehow) will do it.
Let us know if you need more assistance!