$:/Bob/AvailableLanguageList is not json but declared as such

I am under linux with node v12.22.5 and I installed bob manually as decsribed with two git clone command and the likes.
I added 4 symlinks to get around the theme/Themes problem. So Bob works OK but for localisation support.
After lauching the server, my http web client display an error message:
$:/Bob/AvailableLanguageList is set as type "application/json" and its content is "ar-PS ca-ES cs-CZ da-DK de-AT de-CH de-DE el-GR en-US es-ES fa-IR fr-FR he-IL hi-IN ia-IA it-IT ja-JP ko-KR nl-NL pa-IN pt-BR pt-PT ru-RU sk-SK sl-SI sv-SE zh-CN zh-HK zh-Hans zh-Hant zh-TW" which is not json at all.
as reported by online json validator https://jsonformatter.org/ we get:
Parse error on line 1:
ar-PS ca-ES cs-CZ da
^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'

I am running (check any that apply, put an x inside the [ ] to check a box, like this: [x]):

[ ] Windows
[ ] OSX
[X] Linux
[ ] Other

and using

[X] The nodejs version
[ ] The single file executable

Before posting I read issue guidelines and:

[X] I am using the newest version
[X] The answer to my question isn't listed in the documentation or this isn't
a question
[X] This is not a duplicate issue
[X] I have not done anything that required me to set acceptance to
I Will Not Get Tech Support For This

I updated Bob so that this is no longer an issue, and it also handles languages correctly.
You have to add them the same way as you add plugins in the $:/ControlPanel -> Bob -> Manage Languages, after you select which languages you want included in the wiki you have to click the Save Language Selection button then reload the page by clicking on the Refresh Page link, after that the languages you selected are under the Plugins tab in the control panel like normal.


How to find out Drupal VM version?

Sorry, I have not found any information about current version in the files.

There's currently no file that stores a version string in it (ala CHANGELOG/etc). You'd either need to be tracking Drupal VM in Git or as a Composer dependency, or you can look at the versions section of the README.txt and roughly match it to a particular version (e.g. https://github.com/geerlingguy/drupal-vm/blob/master/README.md#1---install-vagrant-and-virtualbox).

I'm considering adding a CHANGELOG.md file or some other indicator of project history... I just have avoided it so far due to the extra maintenance overhead (even with scripts, it's an additional step in tagging any new releases...).

It will be fine because the ways which you have been described  are not trivial.

Working on a changelog for the next tagged release...

Thank you.


Latest News Extension Clone

🛠 Fixes Issue
Closes #

#276

👨💻 Changes proposed

Added Well Structured code with simple UI and added into a folder.

✔ Check List (Check all the applicable boxes)

[X] My code follows the code style of this project.
[X] This PR does not contain plagiarized content.
[X] The title of my pull request is a short description of the requested changes.

📷 Screenshots

@gurjeetsinghvirdee  , Check it Kindly.... requested to check readme for deployed links and Extension images .


theme parameter always refers to the default theme in Styles.makeStyles

I am expecting the theme parameter of Styles.makeStyles(fun styles theme -> to refer to the current theme but it is always the default theme.
Am I doing something wrong or is this an error in the library?
Extracts form my code:
let darkTheme = Styles.createMuiTheme([
  theme.palette.type'.dark
  theme.palette.background.paper "#1e1e1e"
])

type CssClasses = { RootDiv: string }

let useStyles = Styles.makeStyles(fun styles theme ->
  {
    RootDiv = styles.create [
      style.backgroundColor theme.palette.background.paper //"#1e1e1e"
    ]
  }
)

let app =
  React.functionComponent(fun (model, dispatch) ->
    let classes = useStyles ()
    Mui.themeProvider [
      themeProvider.theme darkTheme
      themeProvider.children [
        Html.div [
          prop.className classes.RootDiv
          prop.children [
            Html.text "background should be #1e1e1e not white"
          ]
        ]
      ]
    ]
  )

I'm not using this actively, so I'm a bit out of the React hook stuff. I don't remember how that is supposed to work with relation to React.functionComponent and similar. My best suggestion is to ensure that you are using it correctly, and try plain JS to see if you can reproduce the problem there (if so, the problem isn't with Feliz.MaterialUI).

I'm not using this actively, so I'm a bit out of the React hook stuff. I don't remember how that is supposed to work with relation to React.functionComponent and similar. My best suggestion is to ensure that you are using it correctly, and try plain JS to see if you can reproduce the problem there (if so, the problem isn't with Feliz.MaterialUI).

Thank you for your reply.
If I split the app functional component in two functional components then the theme parameter is correct.
let RootDivComponent = React.functionComponent(fun (model, dispatch) ->
  let classes = useStyles ()
  Html.div [
    prop.className classes.RootDiv
    prop.children [
      Html.text "background is now #1e1e1e from darkTheme"
    ]
  ]
)

let app = React.functionComponent(fun (model, dispatch) ->
  Mui.themeProvider [
    themeProvider.theme darkTheme
    themeProvider.children [
      RootDivComponent(model, dispatch)
    ]
  ]
)

However my code used Fable 2. When I upgrade to Fable 3 then I get the warning "Feliz: using React.functionComponent in Fable 3 is obsolete". So now I want to update the components to use the [<ReactComponent>] attribute. However then I cannot use the useStyles hook any more.
As I understand the material-ui documentation at https://material-ui.com/styles/api/#withstyles-styles-options-higher-order-component , they suggest to use withStyles. However I cannot find that function in this repository.
Is there an example how I can use styles in a component?

Thank you for your reply.
If I split the app functional component in two functional components then the theme parameter is correct.
let RootDivComponent = React.functionComponent(fun (model, dispatch) ->
  let classes = useStyles ()
  Html.div [
    prop.className classes.RootDiv
    prop.children [
      Html.text "background is now #1e1e1e from darkTheme"
    ]
  ]
)

let app = React.functionComponent(fun (model, dispatch) ->
  Mui.themeProvider [
    themeProvider.theme darkTheme
    themeProvider.children [
      RootDivComponent(model, dispatch)
    ]
  ]
)

However my code used Fable 2. When I upgrade to Fable 3 then I get the warning "Feliz: using React.functionComponent in Fable 3 is obsolete". So now I want to update the components to use the [<ReactComponent>] attribute. However then I cannot use the useStyles hook any more.
As I understand the material-ui documentation at https://material-ui.com/styles/api/#withstyles-styles-options-higher-order-component , they suggest to use withStyles. However I cannot find that function in this repository.
Is there an example how I can use styles in a component?

I have no examples. Sounds weird that they suggest withStyles; I thought hooks basically replaced higher-order components. In any case, I'm afraid I can't be much help here. Since it works if you split it up, it seems this is not related to Feliz.MaterialUI, but rather to how hooks work with relation to React (and Feliz) components. Feel free to close if you agree, otherwise please clarify my misunderstanding.

I have no examples. Sounds weird that they suggest withStyles; I thought hooks basically replaced higher-order components. In any case, I'm afraid I can't be much help here. Since it works if you split it up, it seems this is not related to Feliz.MaterialUI, but rather to how hooks work with relation to React (and Feliz) components. Feel free to close if you agree, otherwise please clarify my misunderstanding.

It works now. My last error ("Invalid hook call.") was because I defined the component as a variable RootDivComponent = ... instead of a method RootDivComponent () = .... So no error in this repository. You can close this issue.
Here the working solution
open Feliz
open Feliz.MaterialUI

let darkTheme = Styles.createMuiTheme([
  theme.palette.type'.dark
  theme.palette.background.paper "#1e1e1e"
])

type CssClasses = { RootDiv: string }

let useStyles = Styles.makeStyles(fun styles theme ->
  {
    RootDiv = styles.create [
      style.backgroundColor theme.palette.background.paper
    ]
  }
)

[<ReactComponent>]
let RootDivComponent () =
  let classes = useStyles ()
  Html.div [
    prop.className classes.RootDiv
    prop.children [
      Html.text "background is now #1e1e1e from darkTheme"
    ]
  ]

[<ReactComponent>]
let App =
  Mui.themeProvider [
    themeProvider.theme darkTheme
    themeProvider.children [
      RootDivComponent ()
    ]
  ]

It works now. My last error ("Invalid hook call.") was because I defined the component as a variable RootDivComponent = ... instead of a method RootDivComponent () = .... So no error in this repository. You can close this issue.
Here the working solution
open Feliz
open Feliz.MaterialUI

let darkTheme = Styles.createMuiTheme([
  theme.palette.type'.dark
  theme.palette.background.paper "#1e1e1e"
])

type CssClasses = { RootDiv: string }

let useStyles = Styles.makeStyles(fun styles theme ->
  {
    RootDiv = styles.create [
      style.backgroundColor theme.palette.background.paper
    ]
  }
)

[<ReactComponent>]
let RootDivComponent () =
  let classes = useStyles ()
  Html.div [
    prop.className classes.RootDiv
    prop.children [
      Html.text "background is now #1e1e1e from darkTheme"
    ]
  ]

[<ReactComponent>]
let App =
  Mui.themeProvider [
    themeProvider.theme darkTheme
    themeProvider.children [
      RootDivComponent ()
    ]
  ]


Barrows plugin doesn't scale with stretched fixed

Examples attached
fullscreen stretched fixed

normal fixed

This issue is not specific to just barrows, it is everything that uses the minimap location.
Maybe @devLotto can look into it.

This is because the worldToMiniMap method takes into account client.getCanvas().getWidth() even when in fixed mode. I'll make a fix.


ByteArrayInputStream.read() Bug

ByteArrayInputStream.read()  returned as an int in the range 0 to 255.
But TeaVM returned  as an int in the range -128 to 127.

Byte is signed in Java. The returned value is correct. The following code will give you the value you seek (0-255).
  public static int unsignedToBytes(byte b) {
    return b & 0xFF;
  }


API: Extra events like onPreSaveTextDocument?

It would be nice to have some extra events I guess. The first one I can think of is onPreSaveTextDocument (or onSaveTextDocument). One that will be invoked right before the document gets saved.
Use Cases
The first one I can think of is my own plugin final-newline that will insert a final newline at the end of the file when the user saves the document. At the moment it is implemented like this: Cmd + s → Save → Insert newline (if necessary) → Save
That last save triggers a new iteration of my plugin which will detect a final newline is already present and will stop the execution. So my loop is triggered twice because the plugin is triggered after the document was saved instead of before.
I think there will be other file manipulation plugins that want to manipulate the file before it gets saved as well.
From Alex:
I agree some sort of onBeforeSave action is indeed needed, we just need more thinking regarding how to expose this without causing any data loss. If we block the save to wait on extensions, I can imagine it possible that the wait could be indefinite, resulting in data loss. Maybe a time ceiling of 10s, after which the file gets saved...
@bpasero What do you think?

The top requested feature for the Go extension is a format-on-save option (https://github.com/Microsoft/vscode-go/issues/14).
This really begs for being invoked on a pre-save event.
Without it, we have to do some sort of double-save with bookkeeping to make sure the first save doesn't re-trigger the post save event.  The best I have managed is this: https://github.com/Microsoft/vscode-go/blob/formatonsave/src/goMain.ts#L99-L118.  However, the double-save flashes the (unsaved) marker in the editor and I'm sure there are other issues with this approach.
It would be great to have a pre-save hook to use instead.

We have a FILE_SAVING event but a) it is not exposed to extensions and b) it currently expects modifications to happen sync and not async, which would be a requirement when we talk from editor to extensions.

fyi @dbaeumer

@bpasero is this something we can work on. I would like to hook up auto fix support for ESLint and doing this before save would really make a good story.

Yeah, stretch for April, otherwise May.

Yeah, stretch for April, otherwise May.

What is happening on this?

So, it was planned for April, and we are July. Is this already included in VSCode 1.3?

@bpasero @dbaeumer Is there plan to implement this? This is blocking the feature of auto-fixing on save for several extensions. :confused:

Thanks so much for your interest in this issue! It is currently assigned to the backlog. Every month we pick items from the backlog to plan for the current iteration. Please see https://github.com/Microsoft/vscode/wiki/Issue-Tracking#planning for more information.
Since we are a small team of developers, there is only so many feature requests and issues we can work on for one milestone. Nevertheless we always welcome pull requests and are happy to accept them if they meet our quality standards.

OK, I'm happy to investigate this in my summer vacation. Before it, I'd like to know, were there any concerns on this since this was dropped from the April/May plan?

Another vote for this - we can't support format-on-type in Dart Code currently because the analyser doesn't support partial formatting (I can't think of a clever way I could massage a full-document format in a way to make this work) so format-on-save would be the next best thing.
Bonus points if we can hook additional edits into this (eg. sorting imports) at the same time!

@bpasero Is the save participant API fit for async operations? I have the following API in mind but it requires that I can participant to save in an async way

interface TextDocumentWillSaveEvent {
  document: TextDocument;
  pushEdits(edits: TextEdit[] | Thenable<TextEdit[]>): void;
}

onWillSaveTextDocument: Event<TextDocumentWillSaveEvent>

So the idea is that the event allows you to push text edits that will be applied to the document before saving. When multiple will-save-listeners exist edits will be applied in sequences like
1. `onWillSaveTextDocument` fires
2. will-save-listener A called - makes changes using `pushEdits`
3. `onDidChangeTextDocument` fires
4. will-save-listener B called - makes changes using `pushEdits`
5. `onDidChangeTextDocument` fires

@jrieken the save participant today is sync (see https://github.com/Microsoft/vscode/blob/master/src/vs/workbench/parts/files/common/editors/textFileEditorModel.ts#L433) but I should be able to make it async I think.
The tricky part is that on shutdown a user might decide to "Save All" from the confirm dialog and shutdown phase is a timing sensitive area (e.g. when you are also restarting the OS).  I think a timeout would make sense in general anyway because we never know how long an extension might need to do the participant.
Today the only use case for the save participant is the "Trim Trailing Whitespace" command (https://github.com/Microsoft/vscode/blob/master/src/vs/workbench/parts/files/common/editors/saveParticipant.ts#L50).  I am fine to push either all extension and timeout logic into that guy or starting a new static registry (though that might be overkill).

Upon more thinking about this, I think we should not apply edits directly on the model but let the extensions return edit operations they want to apply. Imagine this:

user has auto save enabled
user types and suddenly auto save kicks in which triggers a long running save participant operation
user continues to type
the long running save participant operation returns edits for a model that is no longer valid because it was changed meanwhile

Here is what I suggest:

user types and suddenly auto save kicks in with save participants
we collect all edit operations from all extensions and our trim trailing whitespace command
the workbench file model makes a decision if these edits can be applied or not: if the model changed meanwhile, the edits will be dropped because it means the model is dirty again and the next save will trigger another round of save participants
if the model was not changed, the workbench file model applies these edits before saving

Btw I would also suggest to let the "trim trailing whitespace" be a real extension so that we have a good use case for exercising the API. That would simplify the current vs/workbench/parts/files/common/editors/saveParticipant by just letting it collect all edits from all extensions that want to participate.

I think we should not apply edits directly on the model but

Yes - that why I have proposed the API as pushEdits. In the extension API you cannot modify a document unless you have an editor or a way to pass on TextEdits.

@jrieken tricky part is how to give multiple extensions a consistent view of the model? because if we ask the extensions for edits in a sequence, a previous extension could change the model in a way that the current extension produces wrong edits.
It would be nice if we could clone a model once we start asking extensions for edits, apply the edits on the clone to be able to give extensions a consistent view of the model and then return a merged set of edits to apply.

multiple extensions a consistent view of the model

I think you don't. When the first listener make edits, the second listeners will see the n+1 state of the document and so on. I don't see us merging text edits from different listeners as they are likely to overlap and conflict and many ways.

I'm sorry, I had worked for other things while had been waiting for some response to my previous comment.
I had sneaked a bit; I understood this is harder than the first look.

EventEmitter works in synchronous, but most use cases of onWillSaveTextDocument event are asynchronous. This is a mismatch.
If a sync event executes multiple async jobs, the most lightweight job will complete edits at first, and then the heaviest job will repeat to try editing to resolve conflicts. This is bad.

My idea is API which is similar to event.waitUntil of Service Worker.
interface TextDocumentWillSaveEvent {
  document: TextDocument;
  token: CancellationToken;
  waitUntil(promise: Thenable<any>): void;
}

onWillSaveTextDocument: Event<TextDocumentWillSaveEvent>

If promises are registered, EventEmitter pauses the event emitting loop until the promises get done.
VSCode saves the document after the event emitting loop. This prevents the repeat of the heaviest job.
Maybe VSCode can manage the set of extension's info and the promises. As a result, VSCode can show "'foo' is spending time in the pre-save process. [Cancel][Skip][Wait]"-like messages.

[Cancel] cancels the save action.
[Skip] cancels the promises and does the save action.
[Wait] leaves the process until the next timeout.

If promises are registered, EventEmitter pauses the event emitting loop until the promises get done.

Exactly - that's what I am trying to say all the time ;-) Also, I do like waitUntil name.

I know that you're already working on this, but I wanna expose an issue I have, and I think I will still have after this feature addition.
I have a little extension that adds me a custom header at top of my code.
This header is just composed by multiple comment lines, but left padded by spaces, and it adds an empty line at the top of my file.
https://github.com/kube/vscode-kube-header/blob/master/src/extension.ts
It's pretty simple, but my issue is that code formatters (like Go-format or TypeScript formatter) removes spaces and/or empty lines.
So my extension replaces a broken header by a new one.
I added a hook on save (as you can see in link), to refresh the header.
But, I really need to have this to be executed AFTER the Go-extension formatter. (Or it would be useless)
Would it be possible to add an order or priority parameter, or dependencies, or something to permit to be sure that a hook is executed AFTER or BEFORE some others.

@kube - but won't this custom header get mangled on the next manual save anyway since goformat will run on every save?

@kumarharsh That's exactly why I wanna be able to define onWillSaveTextDocument handlers order.
onSave: GoFormat > UpdateHeader
is what I want as it will fix what GoFormat just broke.
onSave: UpdateHeader > GoFormat
would be useless, as GoFormat will break what UpdateHeader just did.
I need a way to set priority or dependency of tasks, Idk what solution would be the best though.

@kube For me it sound like you should talk to the Go Format folks. If they think it's the correct behaviour nothing stops them of using the same or a higher priority. I am not convinced that priorities are the right thing as implementors are naturally bias towards their work.

@SamVerschueren I believe this is interesting for your final-newline extension. Further ideas? Feedback?

When the first listener make edits, the second listeners will see the n+1 state of the document and so on.

This sums it up quite well I believe.
I like the idea of just returning TextEdit objects that are applied by VS Code internally to the document and not applying the edits yourself.
Also 👎 on order or priority. Like mentioned before, every extension author will manipulate the order for their own benefit and for their own use case.
What will the maximum time be that can be spend in the pre-save phase?

Just something that came in my mind and might be nice (but optional). VS Code could do some housekeeping regarding the time spend in the pre-save event of an extension. It could then sort them and invoke the fast-running pre-save actions first.

What will the maximum time be that can be spend in the pre-save phase?

We have not made a final decision. My ideas is to wait a short time (~1sec) and then to continue with saving. Unsure if should try to apply late text edits - it would trigger another [dirty,pre-save,save]-cycle (hopefully not endlessly 🙈). There is also the idea of using a different strategy for save-on-shutdown because in those we or the OS are less patient.

It could then sort them and invoke the fast-running pre-save actions first.

Yeah, that's a cool idea. I'll give it some though.

There is also the idea of using a different strategy for save-on-shutdown

Maybe just don't invoke pre save actions on shutdown? I think it's more important to save the work of the user then applying extension edits.
Or a different strategy. Save the document to disk first (make sure nothing gets lost), and then try to apply all the pre-save events (best-effort) and save it again.

Our current thinking is to not run any save participant when VS Code is shutting down.

What I don't understand, is how will extensions be aware of others extensions that will be executed onSave ?

@kube It's uncommon to expose other listeners during event dispatch and I don't understand the use-case for that

but what I don't understand, is how will extensions be aware of others extensions that will be executed onSave ?

Not... That's the whole thing. It should be independent of other extensions. Like @jrieken said before, the thing you are doing is either (a) a bug on the GoFormat extension or (b) something uncommon to do.

Ok, I understand that.
The thing is, from a user point of view, if I want to apply a pipeline of modifications in a certain order, like some function composition, doing:
editA . editB

is not the necessarily the same as
editB . editA

I understand that it's not the good way to permit extension authors to self-define their extension priority, but what happens if a user needs to specify it? (As in my case)
I'm pretty sure that I won't be the only one facing this problem once the onWillSaveTextDocument will be available for everyone.

You can only control that when you make both edits yourself - otherwise there is no way to know what another extension is going to change. There is always a chance of having extensions that conflict with each other and ultimately its the user that decides by installing/uninstalling extensions.
On the happy side, note that work on 'format on save' (#12449) started and that the current sequence is 'trim trailing whitespace', 'run formatter', 'onWillSave-listeners'. That means you are lucky wrt gofmt but again there is no guarantee a listener won't undo the changes your extension just made.

It could then sort them and invoke the fast-running pre-save actions first.

@SamVerschueren Not so sure anymore as this is a little unfair. There might be extensions that do  honest time consuming work, like building an AST, shelling out to another process etc and we shouldn't punish them for that.
I am leaning towards something like this: Have a total budget for all listeners (the second mentioned above), monitor each listener and if they behave bad (throwing n-times, spending multiples of the overall budget) we 'uninstall' them and inform the user. It's some sort of natural selection of listeners :-)

@SamVerschueren
Or a different strategy. Save the document to disk first (make sure nothing gets lost), and then try to apply all the pre-save events (best-effort) and save it again.

Saving twice could cause issues (or duplicate effort) for tools that watch the filesystem and do some processing when contents change? (Even though most things that watch the fs probably have some threshold, they're probably not set with "slow" language services in mind).

@DanTup Good point!
@jrieken Yes it was just something that came up in my mind that I wanted to share. You have a valid point there. Your solution would be nice though! Keeping track of extensions that misbehave and disable/uninstall them.

@bpasero Thinking of adding source or reason property to the event. Is it possible to expose the different save reasons to the participants? Like explicit (cmd+s, menu item), focuson, window change, auto? Given we need that information in our participants it's likely consumers of this API need it as well

@jrieken I think that is easy to add because a user can only have 1 auto save method enabled. If the participant checks for the isAutoSaved property, I think all the info is there:

false: it can only be a manual save
true: go to configuration service and ask for the auto save setting (or use the ITextFileService#getAutoSaveConfiguration() for convenience (https://github.com/Microsoft/vscode/blob/master/src/vs/workbench/parts/files/common/files.ts#L400)

false: it can only be a manual save

Actually not. I see isAutoSaved as false when using save on focus out. Which I like btw because it  makes a nice format on focus lost experience

@jrieken ah yes, I can look into adding this info and then ping you how to expose it to the participant. it needs to be wired in from some places

k

@jrieken there is now a new SaveReason enum carried all the way to the participant (https://github.com/Microsoft/vscode/blob/master/src/vs/workbench/parts/files/common/editors/textFileEditorModel.ts#L453) if you wanna pick it up.
Technically there can still be saves happening via API and currently I treat those as manual saves to distinguish from the auto saves (after delay, after focus change, after window change). One examples of where a save can kick in is when you start a debug session and debug triggers a save of all dirty files first. I think it is fair in that case to run the participants because it is an explicit user interaction to start debug.

That is how it looks
	/**
	 * Represents reasons why a text document is saved.
	 */
	export enum TextDocumentSaveReason {

		/**
		 * Explicitly triggered, e.g. by the user pressing save or by an API call.
		 */
		Explicit = 1,

		/**
		 * Automatic after a delay.
		 */
		Auto = 2,

		/**
		 * When the editor lost focus.
		 */
		FocusOut = 3
	}

	/**
	 * An event that is fired when a [document](#TextDocument) will be saved.
	 *
	 * To make modifications to the document before it is being saved, call the
	 * [`waitUntil`](#TextDocumentWillSaveEvent.waitUntil)-function with a thenable
	 * that resolves to an array of [text edits](#TextEdit).
	 */
	export interface TextDocumentWillSaveEvent {

		/**
		 * The document that will be saved.
		 */
		document: vscode.TextDocument;

		/**
		 * The reason why save was triggered.
		 */
		reason: TextDocumentSaveReason;

		/**
		 * Allows to pause the event loop and to apply [pre-save-edits](#TextEdit).
		 * Edits of subsequent calls to this function will be applied in order. The
		 * edits will be *ignored* if concurrent modifications of the document happened.
		 *
		 * *Note:* This function can only be called during event dispatch and not
		 * in an asynchronous manner:
		 *
		 * ```ts
		 * workspace.onWillSaveTextDocument(event => {
			// async, will *throw* an error
		 	setTimeout(() => event.waitUntil(promise));

		 	// sync, OK
		 *	event.waitUntil(promise);
		 * })
		 * ```
		 *
		 * @param thenable A thenable that resolves to [pre-save-edits](#TextEdit).
		 */
		waitUntil(thenable: Thenable<vscode.TextEdit[]>): void;

		/**
		 * Allows to pause the event loop until the provided thenable resolved.
		 *
		 * *Note:* This function can only be called during event dispatch.
		 *
		 * @param thenable A thenable that delays saving.
		 */
		waitUntil(thenable: Thenable<any>): void;
	}

Great work guys! :beers:


Site does not support all device screen widths

As with most sites employing fixed-width responsive designs, the new groovy site isn't friendly to all devices.  For example, on an iPad mini retina in portrait orientation, the site is rendered too wide for the device rather than flowing text to the browser's actual width.  Consequently, the reader is constantly having to move the page from left to right and back again just to finish reading a sentence.
This would not be a problem if normal pinch-zooming, or double-tap zooming worked, but they don't.

Please reopen at apache/groovy-website if still a problem.


remove this project from checkmarx scanning (no source code)

What this PR does / why we need it:
Which issue(s) this PR fixes:
Change pipeline definition so that this project is excluded from checkmarx scans as ist contains no source code
Special notes for your reviewer:
Release note:

This PR proposes changes that would break the pipeline definition:
<invalid YAML>: while scanning for the next token
found character '\t' that cannot start any token
  in "<unicode string>", line 40, column 1:
    		  component_labels:
    ^

This PR proposes changes that would break the pipeline definition:
<invalid YAML>: while scanning for the next token
found character '\t' that cannot start any token
  in "<unicode string>", line 40, column 1:
    		  component_labels:
    ^

This PR proposes changes that would break the pipeline definition:
<invalid YAML>: while scanning for the next token
found character '\t' that cannot start any token
  in "<unicode string>", line 40, column 1:
    		  component_labels:
    ^

The pipeline-definition has been fixed.

/help

/cherry-pick rel-v3.4.13-bootstrap


Set selected date is not working

set selected date is not working in the "Dynamic Setters Test" demo if the selected date is not in current month

@don59 works for me, it selects the date, but you have to manually go to the month where you selected the date. Closing for now, feel free to open if you still see the same bug.

@quentin this work also for me but, with setSelectedDate  the date is selected, but the calendar dont display the month from this newdate...
if you have to use setSelectedDate it's to help the user to prevent from being obliged to go to the month manually.
Is there a method to display the month of selectedDate ?

@quentin, @ don59 ok i wrote a function :
    private void goToMonthOfDate(Calendar actualDate,Calendar newDate) {
        if(newDate.after(actualDate)) {
            int nb=(newDate.get(Calendar.YEAR) - actualDate.get(Calendar.YEAR))*12 +
newDate.get(Calendar.MONTH) - dateActive.get(Calendar.MONTH);
            for(int i=0;i<nb;i++) {
                MC.goToNext();
            }
        }
        else {
            int nb=(actualDate.get(Calendar.YEAR)-newDate.get(Calendar.YEAR))*12+actualDate.get(Calendar.MONTH)-newDate.get(Calendar.MONTH);
            for(int i=0;i<nb;i++) {
                MC.goToPrevious();
            }
        }
    }


Support getting Paste

Wonders if we can support getting paste like another Ptyhon client did.
https://github.com/r4sas/PBinCLI/tree/master?tab=readme-ov-file#receiving

I will have some time in the next few days to work on this.

Since 2.x series you can use privatebin show


Config reset

Issue Description:
When I try to edit the config and restart the server, it just resets it with default settings. To be exact I'm trying to enable some spawners that are disabled by default.
Affected Versions:

EnderIO: EnderIO-1.12.2-5.0.50
EnderCore: EnderCore-1.12.2-0.5.76
Minecraft: 1.12.2
Forge: <IP_ADDRESS>54
Server: Mohist-dde44c8 1.12.2

latest.log

https://github.com/SleepyTrousers/EnderIO/blob/fd60c87e6e374d3defa5df08819abdefcc1fab66/enderio-machines/src/main/resources/assets/enderio/config/recipes/spawner.xml#L4-L24

When you make your changes, please note that the 'recipe' you want to change starts with with <recipe ...> and ends with </recipe>.  If you are changing vanilla mobs you will need to copy lines 33-88 to a user file.
In the examples folder there should be cheaty_spawners.xml which does most of what you want.  You may want to tweak some of the numbers, especially with power.  It's an example file.
In later versions (yours is 9 versions behind the latest) the default recipe files were replaced with PDFs to make it clear you aren't supposed to change them.

Thanks


Pin package:ffi in plugin_ffi template

Closes https://github.com/flutter/flutter/issues/97717

Oops, it showed all green here on the automated checks.
@zanderso do the automated checks not stay red if the tree is red?

@dcharkes Sorry, I didn't see the sequence of events, but everything appears to be in a good state right now.


how to implement in Load balancer for recovery?

in Recovery part, there is step -- "Tell the load balancer to stop sending query traffic to the server that was down".
now i am already setup all of components with nginx, but how to implement this step?
any body can give me help? many thanks!

One way would be to update the config file for nginx, and then issue a nginx -s reload to reload the config with the old backend removed/disabled.
This falls under the category of "operator intervention required", and is not directly related to the relay.
Hopefully what I said will get you started in the right direction. If you need any further help with nginx, there are definitely better places to ask than here. :-)

@joelegasse is it possible to do health check in nginx for the server node,,nginx check some port in node and then know if server works or not?

Do influxdb-relay works if we only have 1 influxbd server ?
Because that 1 server sometimes go down, and results in data loss.

@luvpreetsingh I think your assumption about High Availability(HA) is totally wrong, Influx-relay is only for HA setup where you have 2 influx servers running on different machines(obvi different IPs) and you send the data to influx-relay, It takes care of inserting to both the servers.
One drawback is it wont handle the failover case, If any one influx server goes down and comes up after sometime it wont have the data in downtime interval. Hope you got it.


A Curve trait for general interoperation — Part I

Objective
This PR implements part of the Curve RFC. See that document for motivation, objectives, etc.
Solution
For purposes of reviewability, this PR excludes the entire part of the RFC related to taking multiple samples, resampling, and interpolation generally. (This means the entire cores submodule is also excluded.) On the other hand, the entire Interval type and all of the functional Curve adaptors are included.
Testing
Test modules are included and can be run locally (but they are also included in CI).

I think with the most recent round of changes, I've addressed the existing comments to my satisfaction. Of course, more are always welcome. :)

Thank you to everyone involved with the authoring or reviewing of this PR! This work is relatively important and needs release notes! Head over to https://github.com/bevyengine/bevy-website/issues/1669 if you'd like to help out.


git.bat not picked up on dbt deps

ref. https://github.com/fishtown-analytics/dbt/pull/1110
> dbt deps
Encountered an error:
Could not find command, ensure it is in the user's PATH: "git"

I have reasons to wrap my executables. On Windows I wrap my executables in .bat scripts (to get a similar effect to .sh). But then Popen( ['git'] ) doesn't work. Popen( ['git.bat']) works.
So the platform-independent way to get git to work is to use  shutil.which to get the full path to the exe. Popen([ which('git') ], ) works.

@majidaldo Just to clarify, you're encountering an error when you run dbt deps?

@majidaldo Just to clarify, you're encountering an error when you run dbt deps?

Ok! And if I understand your original message, are you saying that you're able to resolve the dbt deps error by changing line 420 below from cmd to shutil.which(cmd)?
https://github.com/fishtown-analytics/dbt/blob/42a85ac39f34b058678fd0c03ff8e8d2835d2808/core/dbt/clients/system.py#L419-L424

Ok! And if I understand your original message, are you saying that you're able to resolve the dbt deps error by changing line 420 below from cmd to shutil.which(cmd)?
https://github.com/fishtown-analytics/dbt/blob/42a85ac39f34b058678fd0c03ff8e8d2835d2808/core/dbt/clients/system.py#L419-L424

...well, depend on how you guys want to structure subprocess calls. The way you have it is that cmd is a list of strings (shell=False). So you'd only need to change the first element in the list: cmd --> [which(cmd[0])] + list(cmd[1:]).

...well, depend on how you guys want to structure subprocess calls. The way you have it is that cmd is a list of strings (shell=False). So you'd only need to change the first element in the list: cmd --> [which(cmd[0])] + list(cmd[1:]).

FYI, with shell=True, your wouldn't have to use which. You'd have to consider security implications but I think it's safe here.

FYI, with shell=True, your wouldn't have to use which. You'd have to consider security implications but I think it's safe here.

Ok, this one is a little bit beyond me. @kwigley When you have a moment, could I ask for your sense-check here?

bump. this should be straightforward.

@majidaldo Is this a fix you'd be interested in contributing? I'd welcome a PR for it, if you don't mind explaining the system/security implications of the proposed changes.


Merge develop in regions

This should also fix the broken links of the regions documentation merge job.

https://ci.openmicroscopy.org/view/Failing/job/OMERO-REGIONS-merge-docs/21/ being green, merging this.


J316 panic

➜  ~ sudo speakersafetyd
INFO [speakersafetyd] Starting up
INFO [speakersafetyd] Config base: "/usr/local/share/speakersafetyd"
INFO [speakersafetyd] Machine: apple,j316
INFO [speakersafetyd] Config file: "/usr/local/share/speakersafetyd/apple/j316.conf"
INFO [speakersafetyd] Device: hw:AppleJ316
INFO [speakersafetyd::uclamp] Set task uclamp to 0:64
INFO [speakersafetyd] Found 6 speakers
INFO [speakersafetyd] Opening control device
INFO [speakersafetyd] Startup mode: Cold boot
INFO [speakersafetyd::types] Speaker [Left Woofer 1]:
thread 'main' panicked at src/helpers.rs:172:13:
Could not lock elem Left Woofer 1 VSENSE Switch. alsa-lib error: Error("snd_ctl_elem_lock", EBUSY)
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
WARN [speakersafetyd] Panic!
➜  ~ sudo speakersafetyd
INFO [speakersafetyd] Starting up
INFO [speakersafetyd] Config base: "/usr/local/share/speakersafetyd"
INFO [speakersafetyd] Machine: apple,j316
INFO [speakersafetyd] Config file: "/usr/local/share/speakersafetyd/apple/j316.conf"
INFO [speakersafetyd] Device: hw:AppleJ316
INFO [speakersafetyd::uclamp] Set task uclamp to 0:64
INFO [speakersafetyd] Found 6 speakers
INFO [speakersafetyd] Opening control device
INFO [speakersafetyd] Startup mode: Warm boot
INFO [speakersafetyd::types] Speaker [Left Woofer 1]:
thread 'main' panicked at src/helpers.rs:172:13:
Could not lock elem Left Woofer 1 VSENSE Switch. alsa-lib error: Error("snd_ctl_elem_lock", EBUSY)
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
WARN [speakersafetyd] Panic!
Speakers didn't activate after upgrading to the recent patch. So I tried to to activate speakersafetyd by my own. But it seems to crash while locking the Left Woofer. Can you help me with that?

Looks like this a self-managed system. Due to a bug in lsp-plugins speaker enablement needs out of tree patches to ensure speakers are only enabled on systems with fix lsp-plugins.
See the speakers/enablement-READ-COMMIT-MESSAGE branch in the linux repo.

Hmm i installed it quite a while ago woth fedora installer.
I just do dnf upgrade --refresh regularly to update the system but nothing else.

Reinstalled fedora with installer


Imported entire planet - When complete, container was gone - Tried to restart and it re-started the import process

Used the following to import - Created a VMWare snapshot just before the end, so I can revert back
It appears to have finished all the processes...got all the "....." at the end. Came back and the container was gone. The data was mounted properly and everything took about 1tb of space to import the entire planet.
When I start this command again, thinking it would look in the postegresql database, it starts the import again.
docker run -d -it --rm --shm-size=64g \ -e PBF_PATH=/nominatim/data/planet-latest.osm.pbf \ -e IMPORT_US_POSTCODES=true \ -e IMPORT_GB_POSTCODES=true \ -e IMPORT_TIGER_ADDRESSES=true \ -e REPLICATION_URL=https://planet.openstreetmap.org/replication/ \ -e THREADS=30 \ -e IMPORT_WIKIPEDIA=true \ -e NOMINATIM_FLATNODE_FILE=/nominatim/flatnode/flatnode.file \ -v /home/paul/planet_nominatim/:/nominatim/data \ -v /home/paul/nom_data/postgresql:/var/lib/postgresql/12/main \ -v /home/paul/nom_data/flatnode:/nominatim/flatnode \ -p 8080:8080 --name nominatim mediagis/nominatim:4.0
Any ideas how I can try to start without having it do a re-import?

leave out the --rm, i dont know why they put it in the example, it got me too.

It should work anyway since the data is in the volume. It appears thought that that didn't work.
What is the content of /home/paul/nom_data/postgresql on the host machine?

The postgresql directory was populated... This is the second time this happened to me- I had a fully functioning Nominatim server from the docker instructions... Stopped it, restarted it, and it started the entire import process again. This was on a planet file.
I cannot go through this again, so I'm doing a non docker version of it now, as much as I like the concept behind this.
Probably would be a good idea to have a flag to disallow import - I did take a snapshot on the VM and tried it multiple times with no luck. It just keeps on trying to re-import it -
The other issue is why we are passing the --rm flag? Not sure I understand that logic either.

I deleted the VM - 3 Days of processing and it seemed to complete successfully, but because of the command to destroy the container, i couldn't see for sure. Oh well - Would like an option to not import or at least continue where we left off - All the ranks were done ... all the indexes .. all the dots... Kept monitoring it.

We only start another import when the file /var/lib/postgresql/12/main/import-finished is not present, see: https://github.com/mediagis/nominatim-docker/blob/7ff024e0cdd8b7ab92c679ddb61c6675763037e8/4.0/start.sh#L20
So after the import we just create the file and check on the next startup if it still exists. So what you could do is check if that file exists in /home/paul/nom_data/postgresql/


CloudPrivateIPConfig CRD definition and project dependencies

This PR adds the CloudPrivateIPConfig CRD definition and initializes the project repo, essentially importing all vendor files required for controller-gen to generate the necessary client-go building blocks.
The commits that are interesting for review are:

Adding CRD definition for cloud private IP config
Adding codegen script for CRD definitions - which is quite a blatant copy of https://github.com/openshift/ovn-kubernetes/blob/master/go-controller/hack/update-codegen.sh

I have written the controllers for this CRD, but I will post that in a later PR once this gets merged as to make the review process easier.
/assign @squeed @abhat @tssurya @danwinship

ci/prow/unit — Job succeeded.

:1st_place_medal:

So if we take Azure as an example, on the enhancement you mentioned a couple of other fields like rg_name, nic and "unique name" that we expect the cloud network config controller to find out/create before...will that be done as a part of the controller's processing of CR?

Yes. The CNCC will find out all of that out based on the v1.Node object retrieved from the node name passed through the spec. v1.Node contains a .spec.ProviderID field which has all the relevant information needed to retrieve the VM from the cloud API.

OK, it seems this is the wrong place for openshift CRDs. I am thus closing this PR and creating one in openshift/api
/close


Bugfix/Expose previously unexposed component props that are being used

Before submitting the PR:

[x] Does your PR reference an issue?
[x] Did you update and run tests before submission using npm run test?
[x] Does your branch follow our naming convention? If not, please amend the branch name using branch -m new-branch-name
[ ] Did you update documentation related to your new feature or changes?

What does your PR address?
Fixes #800
Exposes previously unexposed component props that are being used

@endigo9740

Failed test src/lib/components/SvgIcon/SvgIcon.test.ts > SggIcon.svelte > Renders with all props. Test was failing in the dev branch that I forked from. This failure is not caused by the current PR.
npm run lint and npm run format ended up changing several files that I did not intend to change. Basically existing code that did not follow the styleguide.
I haven't updated the docs to include the newly exposed props. Let me know if that is required.

@AgarwalPragy I'm sure you mean well here, but we have a pretty hard requirement for upfront discussion before changes are made. Much less sweeping changes like this. Please see our contribution guidelines here:
https://www.skeleton.dev/docs/contributions/requirements
Items 1-3 state this very plainly.
So far we've not been able to reproduce the issue you've raised. You were asked provided a minimal reproduction, but instead provided steps to reproduce. So given this it won't be until tomorrow before I can this. Then, and only after then, will we begin fielding solutions or changes.
Please keep this in mind when submitting additional tickets or PRs.

After reviewing a bit further - there's changes to disabled props and the app.html formatting which are way outside of scope of the original issue. I'm going to close this PR.
Going forward the process should be this:

Report an issue - include detailed steps to product, provide a reproduction repo if possible (or asked)
We'll test and try to reproduce, if we can't we'll ask for more info, if we can we'll discuss a fix
Then, and only then, should a PR be made that addresses that issue in the agreed upon manner

Thanks for your understanding.

@endigo9740 My bad. I've created a minimal reproduction here: https://github.com/AgarwalPragy/exposed-props
I agree, it would've been better had I discussed before creating the PR.
Nevertheless, I think that the changes to disabled props should be part of this PR, as this PR focusses on explicitly exposing any used props.
The changes in app.html was because of npm run format and npm run lint that are required according to your contribution guidelines :)


[BACKLOG-17375] - creating SubtransExecutor utility for sending rows …

…through a transformation

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -fn -f pom.xml clean install && mvn -B -f pom.xml site

Cleanup Commands
mvn -B -f pom.xml build-helper:remove-project-artifact

Changed files
  engine/src/main/java/org/pentaho/di/trans/SubtransExecutor.java
  engine/src/test/java/org/pentaho/di/trans/SubtransExecutorTest.java
  engine/src/test/resources/org/pentaho/di/trans/subtrans-executor-parent.ktr
  engine/src/test/resources/org/pentaho/di/trans/subtrans-executor-sub.ktr

Unit test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.job.entries.sql.JobEntrySQL

Instruction Change: -3.28%:small_red_triangle_down:
Line Change: -3.87%:small_red_triangle_down:

org.pentaho.di.job.entries.waitforsql.JobEntryWaitForSQL

Branch Change:  + .66%
Complexity Change:  + .93%
Instruction Change:  + .13%

org.pentaho.di.trans.step.StepMeta

Branch Change: -.68%:small_red_triangle_down:
Complexity Change: -.58%:small_red_triangle_down:
Instruction Change: -.19%:small_red_triangle_down:
Line Change: -.26%:small_red_triangle_down:

org.pentaho.di.trans.steps.checksum.CheckSumMeta

Instruction Change:  + .11%

org.pentaho.di.trans.steps.datagrid.DataGridMeta

Branch Change:  + 1.92%
Complexity Change:  + 1.69%
Instruction Change:  + .09%

org.pentaho.di.trans.steps.groupby.GroupBy

Branch Change:  + 9.84%
Complexity Change:  + 9.15%
Instruction Change:  + 7.26%
Line Change:  + 5.76%
Method Change:  + 8.70%

org.pentaho.di.trans.steps.groupby.GroupByMeta

Branch Change:  + 4.17%
Complexity Change:  + 5.26%
Instruction Change:  + 1.39%
Line Change:  + 1.48%
Method Change:  + 4.44%

org.pentaho.di.trans.steps.ifnull.IfNullMeta

Branch Change:  + 2.00%
Complexity Change:  + 1.89%
Instruction Change:  + .17%

org.pentaho.di.trans.steps.ldapoutput.LDAPOutputMeta

Instruction Change: -.06%:small_red_triangle_down:

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change:  + 3.53%
Complexity Change:  + 4.05%
Instruction Change:  + .35%
Line Change:  + .97%

org.pentaho.di.trans.steps.replacestring.ReplaceStringMeta

Instruction Change:  + .07%

org.pentaho.di.trans.steps.rowgenerator.RowGeneratorMeta

Instruction Change: -.08%:small_red_triangle_down:

org.pentaho.di.trans.steps.rowsfromresult.RowsFromResult

Branch Change:  + 50.00%
Complexity Change:  + 57.14%
Instruction Change:  + 77.91%
Line Change:  + 88.24%
Method Change:  + 100.00%

org.pentaho.di.trans.steps.rowsfromresult.RowsFromResultData

Complexity Change:  + 100.00%
Instruction Change:  + 100.00%
Line Change:  + 100.00%
Method Change:  + 100.00%

org.pentaho.di.trans.steps.rowsfromresult.RowsFromResultMeta

Complexity Change:  + 7.14%
Instruction Change:  + 2.67%
Line Change:  + 2.15%
Method Change:  + 9.09%

org.pentaho.di.trans.steps.singlethreader.SingleThreaderMeta

Instruction Change:  + .10%

org.pentaho.di.trans.steps.sort.SortRowsMeta

Instruction Change: -.08%:small_red_triangle_down:

org.pentaho.di.trans.steps.synchronizeaftermerge.SynchronizeAfterMergeMeta

Instruction Change:  + .04%

org.pentaho.di.trans.steps.tableoutput.TableOutputMeta

Branch Change: -.91%:small_red_triangle_down:
Complexity Change: -.82%:small_red_triangle_down:

org.pentaho.di.trans.steps.textfileinput.TextFileInputMeta

Branch Change: -.53%:small_red_triangle_down:

org.pentaho.di.trans.steps.uniquerows.UniqueRowsMeta

Instruction Change:  + .18%

org.pentaho.di.trans.steps.writetolog.WriteToLog

Branch Change:  + 44.44%
Complexity Change:  + 33.33%
Instruction Change:  + 67.42%
Line Change:  + 67.14%
Method Change:  + 100.00%

org.pentaho.di.trans.steps.writetolog.WriteToLog.new Object() {...}

Complexity Change:  + 100.00%
Instruction Change:  + 87.04%
Line Change:  + 100.00%
Method Change:  + 100.00%

org.pentaho.di.trans.steps.writetolog.WriteToLogData

Complexity Change:  + 100.00%
Instruction Change:  + 100.00%
Line Change:  + 100.00%
Method Change:  + 100.00%

org.pentaho.di.trans.steps.writetolog.WriteToLogMeta

Branch Change:  + 2.50%
Complexity Change:  + 6.25%
Instruction Change:  + 2.01%
Line Change:  + 1.97%
Method Change:  + 7.14%

org.pentaho.di.trans.SubtransExecutor

Branch New Coverage: 25.00%
Complexity New Coverage: 45.45%
Instruction New Coverage: 64.56%
Line New Coverage: 71.15%
Method New Coverage: 100.00%

org.pentaho.di.trans.Trans

Branch Change:  + .68%
Complexity Change:  + 1.21%
Instruction Change:  + .61%
Line Change:  + .69%
Method Change:  + 1.80%

org.pentaho.di.trans.TransHopMeta

Branch Change:  + 16.67%
Complexity Change:  + 10.71%
Instruction Change:  + 17.44%
Line Change:  + 21.43%
Method Change:  + 12.50%

org.pentaho.di.trans.TransMeta

Branch Change:  + 1.50%
Complexity Change:  + 1.19%
Instruction Change:  + 1.64%
Line Change:  + 1.97%
Method Change:  + 2.21%

org.pentaho.di.www.TransformationMap

Branch Change:  + 9.09%
Complexity Change:  + 6.15%
Instruction Change:  + 10.03%
Line Change:  + 10.00%

org.pentaho.di.trans.steps.googleanalytics.GaInputStepMeta

Instruction Change: -.07%:small_red_triangle_down:

org.pentaho.di.trans.steps.gpload.GPLoadMeta

Instruction Change:  + .09%

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -fn -f pom.xml clean install && mvn -B -f pom.xml site

Cleanup Commands
mvn -B -f pom.xml build-helper:remove-project-artifact

Changed files
  engine/src/main/java/org/pentaho/di/trans/SubtransExecutor.java
  engine/src/test/java/org/pentaho/di/trans/SubtransExecutorTest.java
  engine/src/test/resources/org/pentaho/di/trans/subtrans-executor-parent.ktr
  engine/src/test/resources/org/pentaho/di/trans/subtrans-executor-sub.ktr

Unit test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.core.injection.bean.BeanInjector

Branch Change: -.84%:small_red_triangle_down:
Complexity Change: -1.39%:small_red_triangle_down:

org.pentaho.di.core.lifecycle.KettleLifecycleSupport

Branch Change: -8.33%:small_red_triangle_down:
Complexity Change: -9.09%:small_red_triangle_down:

org.pentaho.di.job.entries.evaluatetablecontent.JobEntryEvalTableContent

Branch Change: -1.01%:small_red_triangle_down:
Complexity Change: -1.06%:small_red_triangle_down:
Instruction Change: -.17%:small_red_triangle_down:

org.pentaho.di.job.entries.getpop.MailConnectionMeta

Branch Change: -1.00%:small_red_triangle_down:
Complexity Change: -1.41%:small_red_triangle_down:
Instruction Change: -.30%:small_red_triangle_down:

org.pentaho.di.job.entries.waitforsql.JobEntryWaitForSQL

Branch Change: -.66%:small_red_triangle_down:
Complexity Change: -.93%:small_red_triangle_down:
Instruction Change: -.13%:small_red_triangle_down:

org.pentaho.di.trans.step.StepMeta

Branch Change: -.68%:small_red_triangle_down:
Complexity Change: -.58%:small_red_triangle_down:
Instruction Change: -.19%:small_red_triangle_down:
Line Change: -.26%:small_red_triangle_down:

org.pentaho.di.trans.steps.checksum.CheckSumMeta

Instruction Change:  + .11%

org.pentaho.di.trans.steps.constant.ConstantMeta

Instruction Change: -.10%:small_red_triangle_down:

org.pentaho.di.trans.steps.csvinput.CsvInputMeta

Instruction Change: -.05%:small_red_triangle_down:

org.pentaho.di.trans.steps.datagrid.DataGridMeta

Instruction Change: -.09%:small_red_triangle_down:

org.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta

Branch Change: -.31%:small_red_triangle_down:
Instruction Change: -.06%:small_red_triangle_down:
Line Change:  + .23%
Method Change:  + 1.02%

org.pentaho.di.trans.steps.excelwriter.ExcelWriterStepMeta

Branch Change:  + 1.28%
Complexity Change:  + .78%
Instruction Change:  + .04%

org.pentaho.di.trans.steps.groupby.GroupBy

Branch Change:  + 9.84%
Complexity Change:  + 9.15%
Instruction Change:  + 7.26%
Line Change:  + 5.76%
Method Change:  + 8.70%

org.pentaho.di.trans.steps.groupby.GroupByMeta

Complexity Change:  + 1.05%
Instruction Change:  + 1.39%
Line Change:  + 1.48%
Method Change:  + 4.44%

org.pentaho.di.trans.steps.insertupdate.InsertUpdateMeta

Instruction Change: -.05%:small_red_triangle_down:

org.pentaho.di.trans.steps.ldapinput.LDAPInputMeta

Branch Change:  + 1.61%
Complexity Change:  + .97%
Instruction Change:  + .09%

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change:  + 1.18%
Complexity Change:  + 1.35%

org.pentaho.di.trans.steps.replacestring.ReplaceStringMeta

Instruction Change: -.07%:small_red_triangle_down:

org.pentaho.di.trans.steps.rowgenerator.RowGeneratorMeta

Instruction Change: -.08%:small_red_triangle_down:

org.pentaho.di.trans.steps.rowsfromresult.RowsFromResult

Branch Change:  + 50.00%
Complexity Change:  + 57.14%
Instruction Change:  + 77.91%
Line Change:  + 88.24%
Method Change:  + 100.00%

org.pentaho.di.trans.steps.rowsfromresult.RowsFromResultData

Complexity Change:  + 100.00%
Instruction Change:  + 100.00%
Line Change:  + 100.00%
Method Change:  + 100.00%

org.pentaho.di.trans.steps.rowsfromresult.RowsFromResultMeta

Complexity Change:  + 7.14%
Instruction Change:  + 2.67%
Line Change:  + 2.15%
Method Change:  + 9.09%

org.pentaho.di.trans.steps.setvalueconstant.SetValueConstantMeta

Instruction Change:  + .14%

org.pentaho.di.trans.steps.singlethreader.SingleThreaderMeta

Instruction Change: -.10%:small_red_triangle_down:

org.pentaho.di.trans.steps.sort.SortRowsMeta

Instruction Change:  + .08%

org.pentaho.di.trans.steps.tableoutput.TableOutputMeta

Branch Change: -.91%:small_red_triangle_down:
Complexity Change: -.82%:small_red_triangle_down:

org.pentaho.di.trans.steps.textfileinput.TextFileInputMeta

Branch Change:  + .53%

org.pentaho.di.trans.steps.uniquerows.UniqueRowsMeta

Instruction Change: -.18%:small_red_triangle_down:

org.pentaho.di.trans.steps.writetolog.WriteToLog

Branch Change:  + 44.44%
Complexity Change:  + 33.33%
Instruction Change:  + 67.42%
Line Change:  + 67.14%
Method Change:  + 100.00%

org.pentaho.di.trans.steps.writetolog.WriteToLog.new Object() {...}

Complexity Change:  + 100.00%
Instruction Change:  + 87.04%
Line Change:  + 100.00%
Method Change:  + 100.00%

org.pentaho.di.trans.steps.writetolog.WriteToLogData

Complexity Change:  + 100.00%
Instruction Change:  + 100.00%
Line Change:  + 100.00%
Method Change:  + 100.00%

org.pentaho.di.trans.steps.writetolog.WriteToLogMeta

Branch Change:  + 2.50%
Complexity Change:  + 6.25%
Instruction Change:  + 2.01%
Line Change:  + 1.97%
Method Change:  + 7.14%

org.pentaho.di.trans.SubtransExecutor

Branch New Coverage: 25.00%
Complexity New Coverage: 45.45%
Instruction New Coverage: 64.56%
Line New Coverage: 71.15%
Method New Coverage: 100.00%

org.pentaho.di.trans.Trans

Branch Change:  + .68%
Complexity Change:  + 1.21%
Instruction Change:  + .61%
Line Change:  + .69%
Method Change:  + 1.80%

org.pentaho.di.trans.TransHopMeta

Branch Change:  + 16.67%
Complexity Change:  + 10.71%
Instruction Change:  + 17.44%
Line Change:  + 21.43%
Method Change:  + 12.50%

org.pentaho.di.trans.TransMeta

Branch Change:  + 1.50%
Complexity Change:  + 1.19%
Instruction Change:  + 1.64%
Line Change:  + 1.97%
Method Change:  + 2.21%

org.pentaho.di.trans.steps.googleanalytics.GaInputStepMeta

Instruction Change:  + .07%

org.pentaho.di.ui.repository.pur.repositoryexplorer.model.UIEERepositoryUser

Branch Change:  + 8.33%
Complexity Change:  + 6.67%
Instruction Change:  + .85%
Line Change:  + 3.03%

org.pentaho.di.trans.steps.salesforceinsert.SalesforceInsertMeta

Instruction Change: -.15%:small_red_triangle_down:


Copying content will result in a blank page

Describe the bug
Copying content will result in a blank page
To Reproduce

Go to 'https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb'
Copy the any contents of the ipynb file

Expected behavior
context is copied
Screenshots

Desktop (please complete the following information):

OS: Windows11 home
Browser edge

@wadeKings can you please try to download the file using the button like below?

otherwise, this doesn't look like an issue with the repository but more an issue with github if I understand correctly?


[share_plus] fixed message sharing for file selection

Fixed issue related to message when sharing the files

Closing due to no activity.


Fix ros config set for list values

https://github.com/rancher/os/issues/716

Still trying to figure out why this build is failing


[Federation] Running Federation E2E tests locally with multiple clusters fails if the user's context is not set to the E2E test host cluster context

 Issue by perotinus
Friday May 12, 2017 at 22:06 GMT
Originally opened as https://github.com/kubernetes/kubernetes/issues/45751

I was running into an issue running the Federation e2e tests with >1 cluster: when starting to run the tests, the test script would fail to list the nodes in the cluster hosting the federation with an "x509 invalid certificate" error. It worked fine with one cluster, however. @madhusudancs and I debugged this, and realized that the e2e script was using my local context to try to interact with the host cluster's API server. Because my E2E_ZONES environment variable had the clusters in "host non-host" order, the scripts to bring up the clusters would set the context to "non-host" on my machine, which meant that the script was using the wrong credentials to access the host cluster. I was able to fix this by setting my context to "host".
Ideally, the scripts should not be affected by the local kubecontext state in this way, and should always use the correct credentials regardless of the state of the local kubecontext.

 Comment by perotinus
Friday May 12, 2017 at 22:07 GMT

/assign @madhusudancs

 Comment by madhusudancs
Friday May 12, 2017 at 23:02 GMT

/sig federation

cc @perotinus


Repository purpose

Just curious what the purpose of this repository is for bitcoinjs?
It seems you have made a few performance improvements to some of the hash functions,  why not contribute them back to upstream?

@dcousens AFAIR, I just extract code for hashing from sha.js/ripemd160
functions in this repository is sometimes faster only because they hash only 1 buffer
it was experiment project (see https://github.com/cryptocoinjs/secp256k1-node/pull/86)
and I still not sure about purpose of this repo in bitcoinjs

Still in use / worth keeping / worth integrating somewhere else?

secp256k1-node doesn't use this package/code
If you want move this package from bitcoinjs org, I'm ready move it to my account.

@fanatid if you're OK with that?
Was just checking tests on travis and didn't know what this repository was.

@dcousens I'm ok with this, just create transfer request because I haven't enough rights for this.


Convert to Python 3

Is your feature request related to a problem? Please describe.
The current code is based on python 2.7. Eventually, this will become deprecated and we should move to Python 3.
Describe the solution you'd like
Upgrade the code and libraries to Python 3 and perform thorough testing.

OK I have started a branch on my fork about this to do some testing. Some initial notes;
Libraries:

Kazoo is Python 3 compatible (I checked their repository and code, there are open bugs for testing with Py3)
Flask is Python 3
PyJWT is compatible (there is no mention of in-compatibility and they seem to have tests for Py3)

These are the external libraries that seem to be broadly compatible. I am going to test further.

The code compiles and runs on Python 3. I have run a docker container for Zookeeper and running Flask locally. It seems to work no problems. I plan to look further.


Default to standard code behaviour when outside a container

I belive the verification if the user is on the host or inside a container should happen before the install prompt. Since the installation is checked with flatpak-spawn, it will fail on the host even if VSCode flatpak is already installed.
After this verification is done, we can check for the install, and later check if we should execute the VSCode flatpak on the host simply with flatpak run.

Is this MR still active?
I have a working branch at<PHONE_NUMBER>f80290a641902a40145840d9337f49 that I believe correctly implements the requested changes. I could make an MR for that, but I don't want to steal @crispyricepc's thunder :-)

Lol I completely forgot about this. Feel free to close

Haha, okay. I am not entirely sure if @owtaylor is still working on this repo though?...


IDE act: Alternative solutions

This would be useful in the following examples:

A one-line method can be correct with or without brackets.
A user can run a file in two ways through the IDE.

Not needed so far. Might reappear in the future after discussion what "alternative solutions" are
Perhaps split the issue into handling individual listeners.


Docs: Updates Components mdx files and General Adjusts

What's the purpose of this pull request?
This is a follow up task after new Nextra documentation pages added on this PR: https://github.com/vtex/faststore/pull/1561
For it to proper function, we need to:

Updates documentation styles and components now using new Nextra Doc pages
Migrate components docs (.mdx files) that where reversed here

Components Docs Migration
Atoms

[x] Badge
[x] Button
[x] Checkbox
[x] Input
[x] Label
[x] Link
[x] List
[x] Overlay
[x] Price
[x] Radio
[x] Select
[x] SROnly

Molecules

[x] BuyButton
[x] CheckboxField
[x] DiscountBadge
[x] IconButton  *
[x] InputField
[x] LinkButton
[x] RadioField
[x] SelectField
[x] Table *
[x] Tag
[x] Toggle
[x] ToggleField

*= should not delete apps/docs .mdx files

this documentation is not about faststore ui, but all faststore framework: ui, sdk, api... so this home page doesn't make sense.


App identifier dosent match identifier in log_prediction

Good evening!
I recently tried to push model predictions into an application and discovered that identifiers I specified in log_prediction function did not match identifiers that appeared in the application. I use python3.9 and tangram==0.7.0.
Here are screenshots:

Python code

Event in the app. Here it says that prediction identifier is the same as in python code, but actual identifier for this prediction is 3237cbe3097c87f5e73b7ce796f38be7, as stated in the its link. And if I want to use log_true_value for this prediction, I have to use 3237cbe3097c87f5e73b7ce796f38be7 but not the original id

Hi @komatded, what you see in the URL for a prediction is what we call the prediction's id, which is unique and automatically generated. It is intentionally different from the identifier for that prediction. The id is always unique, but it's possible, though discouraged, for you to log multiple predictions with the same identifier. Does that make sense?
I just tried the example in languages/python/examples/advanced which logs a single prediction and true value to the app running locally, and was able to successfully associate the true value with the prediction using the identifier. Perhaps there is something different in your setup? Can you provide some more detailed steps to reproduce your problem? Thank you! :)

Hi @nitsky, thank you for your response!
I apologize for disturbing in vain :) Looks like I found what the problem was - in my train and test datasets target's column data type was integer, so I thought that I should also pass integer as true_value in log_true_value... now when I've passed it as a string everything worked fine!
Sorry, for bothering! I guess now this issue can be closed

@komatded if the value is an integer you should not be required to pass it as a string. Is your model doing regression or classification?


Can't finish compilation on Debian 10

After a successfull CMake configuration I have errors while trying to compile:
[ 23%] Built target vkcube
[ 47%] Built target vkcubepp
[ 52%] Building C object vulkaninfo/CMakeFiles/vulkaninfo.dir/vulkaninfo.c.o
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c: In function ‘AppGpuInit’:
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:1098:23: error: ‘VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT’ undeclared (first use in this function); did you mean ‘VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT’?
             {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:1098:23: note: each undeclared identifier is reported only once for each function it appears in
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:1099:33: error: ‘VkPhysicalDeviceYcbcrImageArraysFeaturesEXT’ undeclared (first use in this function); did you mean ‘VkPhysicalDeviceMemoryPriorityFeaturesEXT’?
              .mem_size = sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT)},
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                 VkPhysicalDeviceMemoryPriorityFeaturesEXT
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:1100:23: error: ‘VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT’ undeclared (first use in this function); did you mean ‘VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT’?
             {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT,
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:1101:33: error: ‘VkPhysicalDeviceHostQueryResetFeaturesEXT’ undeclared (first use in this function); did you mean ‘VkPhysicalDeviceBufferAddressFeaturesEXT’?
              .mem_size = sizeof(VkPhysicalDeviceHostQueryResetFeaturesEXT)}};
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                 VkPhysicalDeviceBufferAddressFeaturesEXT
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c: In function ‘AppDumpSurfaceCapabilities’:
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:2082:43: error: ‘VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR’ undeclared (first use in this function); did you mean ‘VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR’?
                 } else if (work->sType == VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR &&
                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                           VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:2082:40: warning: comparison between pointer and integer
                 } else if (work->sType == VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR &&
                                        ^~
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:2083:50: error: ‘VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME’ undeclared (first use in this function); did you mean ‘VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME’?
                            CheckExtensionEnabled(VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME, gpu->inst->inst_extensions,
                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                  VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:2083:50: warning: passing argument 1 of ‘CheckExtensionEnabled’ from incompatible pointer type [-Wincompatible-pointer-types]
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:582:47: note: expected ‘const char *’ but argument is of type ‘struct pNextChainBuildingBlockInfo *’
 static bool CheckExtensionEnabled(const char *extension_to_check, const char **extension_list, uint32_t extension_count) {
                                   ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:2085:21: error: unknown type name ‘VkSurfaceProtectedCapabilitiesKHR’; did you mean ‘VkSurfaceCapabilitiesKHR’?
                     VkSurfaceProtectedCapabilitiesKHR *protected_surface_capabilities = (VkSurfaceProtectedCapabilitiesKHR *)place;
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     VkSurfaceCapabilitiesKHR
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:2085:90: error: ‘VkSurfaceProtectedCapabilitiesKHR’ undeclared (first use in this function); did you mean ‘VkSurfaceCapabilitiesKHR’?
 kSurfaceProtectedCapabilitiesKHR *protected_surface_capabilities = (VkSurfaceProtectedCapabilitiesKHR *)place;
                                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                     VkSurfaceCapabilitiesKHR
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:2085:125: error: expected expression before ‘)’ token
 R *protected_surface_capabilities = (VkSurfaceProtectedCapabilitiesKHR *)place;
                                                                         ^

/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:2085:124: error: invalid operands to binary * (have ‘struct pNextChainBuildingBlockInfo *’ and ‘struct pNextChainBuildingBlockInfo *’)
 R *protected_surface_capabilities = (VkSurfaceProtectedCapabilitiesKHR *)place;
                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^

/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:2085:89: warning: initialization of ‘int *’ from incompatible pointer type ‘struct pNextChainBuildingBlockInfo *’ [-Wincompatible-pointer-types]
 VkSurfaceProtectedCapabilitiesKHR *protected_surface_capabilities = (VkSurfaceProtectedCapabilitiesKHR *)place;
                                                                     ^

/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:2091:63: error: request for member ‘supportsProtected’ in something not a structure or union
                                 protected_surface_capabilities->supportsProtected);
                                                               ^~
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:2089:33: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 3 has type ‘struct pNextChainBuildingBlockInfo *’ [-Wformat=]
                                 "\t\t\t\t\t\t\tsupportsProtected = %" PRIuLEAST32
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:2091:33:
                                 protected_surface_capabilities->supportsProtected);
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:36:
/usr/include/inttypes.h:109:23: note: format string is defined here
 # define PRIuLEAST32 "u"
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:2095:106: error: request for member ‘supportsProtected’ in something not a structure or union
 portsProtected = %" PRIuLEAST32 "\n", protected_surface_capabilities->supportsProtected);
                                                                     ^~

/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:2095:32: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 2 has type ‘struct pNextChainBuildingBlockInfo *’ [-Wformat=]
                         printf("\tsupportsProtected = %" PRIuLEAST32 "\n", protected_surface_capabilities->supportsProtected);
                                ^~~~~~~~~~~~~~~~~~~~~~~~~                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:36:
/usr/include/inttypes.h:109:23: note: format string is defined here
 # define PRIuLEAST32 "u"
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c: In function ‘AppGpuDumpFeatures’:
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3221:44: error: ‘VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT’ undeclared (first use in this function); did you mean ‘VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT’?
             } else if (structure->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT &&
                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3221:41: warning: comparison between pointer and integer
             } else if (structure->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT &&
                                         ^~
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3222:61: error: ‘VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME’ undeclared (first use in this function); did you mean ‘VK_EXT_HDR_METADATA_EXTENSION_NAME’?
                        CheckPhysicalDeviceExtensionIncluded(VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME, gpu->device_extensions,
                                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                             VK_EXT_HDR_METADATA_EXTENSION_NAME
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3222:61: warning: passing argument 1 of ‘CheckPhysicalDeviceExtensionIncluded’ from incompatible pointer type [-Wincompatible-pointer-types]
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:591:62: note: expected ‘const char *’ but argument is of type ‘struct pNextChainBuildingBlockInfo *’
 static bool CheckPhysicalDeviceExtensionIncluded(const char *extension_to_check, VkExtensionProperties *extension_list,
                                                  ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3224:17: error: unknown type name ‘VkPhysicalDeviceYcbcrImageArraysFeaturesEXT’; did you mean ‘VkPhysicalDeviceMemoryPriorityFeaturesEXT’?
                 VkPhysicalDeviceYcbcrImageArraysFeaturesEXT *ycbcr_image_arrays_features =
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 VkPhysicalDeviceMemoryPriorityFeaturesEXT
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3225:22: error: ‘VkPhysicalDeviceYcbcrImageArraysFeaturesEXT’ undeclared (first use in this function); did you mean ‘VkPhysicalDeviceMemoryPriorityFeaturesEXT’?
                     (VkPhysicalDeviceYcbcrImageArraysFeaturesEXT *)structure;
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      VkPhysicalDeviceMemoryPriorityFeaturesEXT
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3225:67: error: expected expression before ‘)’ token
                     (VkPhysicalDeviceYcbcrImageArraysFeaturesEXT *)structure;
                                                                   ^
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3225:66: error: invalid operands to binary * (have ‘struct pNextChainBuildingBlockInfo *’ and ‘struct pNextChainBuildingBlockInfo *’)
                     (VkPhysicalDeviceYcbcrImageArraysFeaturesEXT *)structure;
                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3225:21: warning: initialization of ‘int *’ from incompatible pointer type ‘struct pNextChainBuildingBlockInfo *’ [-Wincompatible-pointer-types]
                     (VkPhysicalDeviceYcbcrImageArraysFeaturesEXT *)structure;
                     ^
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3231:56: error: request for member ‘ycbcrImageArrays’ in something not a structure or union
                             ycbcr_image_arrays_features->ycbcrImageArrays);
                                                        ^~
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3229:29: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 3 has type ‘struct pNextChainBuildingBlockInfo *’ [-Wformat=]
                             "\t\t\t\t\t\tycbcrImageArrays = %" PRIuLEAST32
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3231:29:
                             ycbcr_image_arrays_features->ycbcrImageArrays);
                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:36:
/usr/include/inttypes.h:109:23: note: format string is defined here
 # define PRIuLEAST32 "u"
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3236:98: error: request for member ‘ycbcrImageArrays’ in something not a structure or union
 tycbcrImageArrays = %" PRIuLEAST32 "\n", ycbcr_image_arrays_features->ycbcrImageArrays);
                                                                     ^~

/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3236:28: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 2 has type ‘struct pNextChainBuildingBlockInfo *’ [-Wformat=]
                     printf("\tycbcrImageArrays = %" PRIuLEAST32 "\n", ycbcr_image_arrays_features->ycbcrImageArrays);
                            ^~~~~~~~~~~~~~~~~~~~~~~~                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:36:
/usr/include/inttypes.h:109:23: note: format string is defined here
 # define PRIuLEAST32 "u"
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3238:44: error: ‘VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT’ undeclared (first use in this function); did you mean ‘VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT’?
             } else if (structure->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT &&
                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3238:41: warning: comparison between pointer and integer
             } else if (structure->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT &&
                                         ^~
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3239:61: error: ‘VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME’ undeclared (first use in this function); did you mean ‘VK_EXT_DEBUG_REPORT_EXTENSION_NAME’?
                        CheckPhysicalDeviceExtensionIncluded(VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, gpu->device_extensions,
                                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                             VK_EXT_DEBUG_REPORT_EXTENSION_NAME
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3239:61: warning: passing argument 1 of ‘CheckPhysicalDeviceExtensionIncluded’ from incompatible pointer type [-Wincompatible-pointer-types]
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:591:62: note: expected ‘const char *’ but argument is of type ‘struct pNextChainBuildingBlockInfo *’
 static bool CheckPhysicalDeviceExtensionIncluded(const char *extension_to_check, VkExtensionProperties *extension_list,
                                                  ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3241:17: error: unknown type name ‘VkPhysicalDeviceHostQueryResetFeaturesEXT’; did you mean ‘VkPhysicalDeviceBufferAddressFeaturesEXT’?
                 VkPhysicalDeviceHostQueryResetFeaturesEXT *host_query_reset_features =
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 VkPhysicalDeviceBufferAddressFeaturesEXT
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3242:22: error: ‘VkPhysicalDeviceHostQueryResetFeaturesEXT’ undeclared (first use in this function); did you mean ‘VkPhysicalDeviceBufferAddressFeaturesEXT’?
                     (VkPhysicalDeviceHostQueryResetFeaturesEXT *)structure;
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      VkPhysicalDeviceBufferAddressFeaturesEXT
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3242:65: error: expected expression before ‘)’ token
                     (VkPhysicalDeviceHostQueryResetFeaturesEXT *)structure;
                                                                 ^
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3242:64: error: invalid operands to binary * (have ‘struct pNextChainBuildingBlockInfo *’ and ‘struct pNextChainBuildingBlockInfo *’)
                     (VkPhysicalDeviceHostQueryResetFeaturesEXT *)structure;
                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3242:21: warning: initialization of ‘int *’ from incompatible pointer type ‘struct pNextChainBuildingBlockInfo *’ [-Wincompatible-pointer-types]
                     (VkPhysicalDeviceHostQueryResetFeaturesEXT *)structure;
                     ^
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3248:54: error: request for member ‘hostQueryReset’ in something not a structure or union
                             host_query_reset_features->hostQueryReset);
                                                      ^~
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3246:29: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 3 has type ‘struct pNextChainBuildingBlockInfo *’ [-Wformat=]
                             "\t\t\t\t\t\thostQueryReset = %" PRIuLEAST32
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3248:29:
                             host_query_reset_features->hostQueryReset);
                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:36:
/usr/include/inttypes.h:109:23: note: format string is defined here
 # define PRIuLEAST32 "u"
/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3253:94: error: request for member ‘hostQueryReset’ in something not a structure or union
 f("\thostQueryReset = %" PRIuLEAST32 "\n", host_query_reset_features->hostQueryReset);
                                                                     ^~

/storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:3253:28: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 2 has type ‘struct pNextChainBuildingBlockInfo *’ [-Wformat=]
                     printf("\thostQueryReset = %" PRIuLEAST32 "\n", host_query_reset_features->hostQueryReset);
                            ^~~~~~~~~~~~~~~~~~~~~~                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /storage3/Game Development/Repositories/Vulkan/Vulkan-Tools/vulkaninfo/vulkaninfo.c:36:
/usr/include/inttypes.h:109:23: note: format string is defined here
 # define PRIuLEAST32 "u"
make[2]: *** [vulkaninfo/CMakeFiles/vulkaninfo.dir/build.make:63: vulkaninfo/CMakeFiles/vulkaninfo.dir/vulkaninfo.c.o

I even tried to look up for VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT but based on this https://github.com/KhronosGroup/Vulkan-Docs/blob/35e7bee5f0f50b7c1634cd205ded035acea43ad9/appendices/VK_EXT_ycbcr_image_arrays.txt, it seems to be a Vulkan extension, but why wasn't it defined in vulkan.h header? I suppose Debian is providing me outdated Vulkan drivers that aren't compatible with Vulkan-Tools.
Is this expected behavior? If not, maybe you can point me a fix or suggest me a Linux OS which is fully supported by Vulkan. I already moved from Debian 9 (Stable) to 10 (Testing) just to be able to get the latest Vulkan drivers.
Information about my system
OS: Debian 10 buster
Kernel: x86_64 Linux 4.19.0-5-amd64
CPU: AMD Ryzen 7 1700 Eight-Core @ 16x 3GHz
GPU: Radeon RX 590 Series (POLARIS10, DRM 3.27.0, 4.19.0-5-amd64, LLVM 7.0.1)

Cheers!

... it seems to be a Vulkan extension, but why wasn't it defined in vulkan.h header? I suppose Debian is providing me outdated Vulkan drivers that aren't compatible with Vulkan-Tools.

The Vulkan headers are updated on a nearly weekly cadence, so few distros are going to keep pace.
See the BUILD.md file in this repository to learn how to build with the necessary versions of the dependencies.  In general, this repo doesn't rely on using the Vulkan headers installed on your system for this very reason.  Instead, it points to a newer version that is obtained separately, as explained in the instructions.
The headers can get "ahead" of any driver that you might get via a distro or an IHV because, as you surmised, the headers can contain definitions for brand-new extensions.   Applications check for the existence of an extension in an implementation (driver) before using it.

@VictorQueiroz did Karl's comment help?
If there is no further update by EOD today, I'll assume that the issue was resolved and close this issue.

@karl-lunarg @jeremy-lunarg Thank you very much for your help. It actually clarified a lot of things for me.


Cancel DeferredCancellation when destroyed

This will automatically cancel the associated Cancellation when the DeferredCancellation object is destroyed.
An exception object is only created when needed to avoid creating a backtrace on the normal case when the object is destroyed after all listeners have unsubscribed because the operation completed.
Related to issue #381.

The drawback of this obviously is that the exception stacktrace is not correct when using throwIfRequested or subscribing after the cancellation.
I wonder whether we can weakreference the cancellation instead? (i.e. create in getCancellation if not existing)
Then, if the weakreference does not exist, i.e. the cancellation object is referenced nowhere else, there's no exception created.
I don't know how important the correct stacktrace is, but if it's possible without much drawback, then I'd prefer having it.
Obviously, in case the getCancellation() itself only happens after cancelling, there's not much left we can do...

How much does the stack trace matter if it only leads to the __destruct anyway?

If this happens in a gc destruct, yes, then it's pretty worthless :-) Hence I'm asking how important it is.

I don't see how your weak reference idea should work. getCancellation should always be called on a DeferredCancellation object.

That is right … but if the Cancellation object is out of scope (and destroyed before the deferred cancellation in cycle collector because newer) - that can be checked for and the exception object then not created.


Support for Pyinstaller

Hi,
Really cool auto update framework! I have a python project that is frozen using py2app for mac and pyinstaller for windows:

Does esky support Pyinstaller? If not, is it hard to extend it it to support Pyinstaller? I am not familiar with pyinstaller so if you can point me to any resources on how I could look into extending it, that would be awesome.

The biggest reason we chose pyinstaller over py2exe is because of lack of code signing support in py2exe. Esky would be easier choice if there was another easy way to make a py2exe executable code signed but I am not aware of it. If you are aware of how I could make this work, some pointers there would be appreciated.

Thanks!

For all long-standing bystanders to this discussion, the chosen day has arrived. Meet updater4pyi, a well-documented open-source nearly-pure-Python solution for auto-updating cross-platform-portable Python applications frozen with PyInstaller. (github's been holding out on us, folks.)
There appear to be at least two – but probably more, as of your reading this – open-source projects already leveraging updater4pyi in a meaningful way: MCEdit-Unified and bibolamazi. Regardless of whether you care about Minecraft or not (admits it!), the hook-updater4pyi.py script shipped with MCEdit-Unified should give you a giddy inkling of updater4pyi's ease of use. [Hint: it's easy to use.]
While I personally have yet to use updater4pyi, I'm greedily contemplating it. Because let's face it: esky-based PyInstaller support is just not in the cards, folks.

You can also check out my auto update framework. PyiUpdater currently still in beta. Only supports onefile mode with pyinstaller, but has the ability to also update support files.

Thanks for reaching out.  Unfortunately this project is no longer actively maintained, so I'm going to move it into archive mode:
https://rfk.id.au/blog/entry/archiving-open-source-projects/