Angular 9 - Not unmounting

Since upgrade to Angular 9, I've noticed that the angular app in not unmounting correctly.
When the route is changed and no app is replacing the angular app, the angular doesn't disappear. But it gets more weird. The (click) methods are not called.
So some unmounting is happening but the app stays in the DOM.
It seems, I'm not the only one who experiences this problem with Angular 9.

👍 thanks for reporting this. I hope to tackle all Angular 9 issues in the next few weeks.

I was stuck over 2 days in the same situation. I tried several things but none of them worked. I thought it was a problem with angular routing.  Finally, realized only after downgrading to angular @ 8 , That the problem exists only in A9 apps. I have downgraded to A8 and changed the version of     "@angular-devkit/build-angular":  "^0.803.24", It works for me.

I'm not sure when I'll get to Angular 9 support - I am not very strong in Angular and usually ZoneJS + Angular Router kick my ass when it comes to making Angular work with single-spa. I'd very gladly accept pull requests that do this.

A very naive suggestion is to add the following line at the end of the function unmount in single-spa-angular.ts
It seems to remove the DOM at least but I'm not sure what other things might still be there...
getContainerEl(opts.domElementGetter).innerHTML = '';

@richardbladh thanks for jumping in on this issue - you are correct that would sort of work but the problem is that the onDestroy lifecycles would not be called in that situation.
Currently we unmount angular by doing the following:
https://github.com/single-spa/single-spa-angular/blob/5f7b1604d0fbdb42d0dc950538907e5dbfef43dd/src/browser-lib/single-spa-angular.ts#L110
Where bootstrappedModule is the result of calling the bootstrapFunction. I haven't looked into why it's failing with Angular 9, but hopefully we wouldn't have to deviate too far from what we're already doing in the code I linked to above.

There seems to be a different execution of the bootstrap function, looking from debugger the bootstrappedModule has type NgModuleRef$1 in Angular 9, vs. NgModuleRef_ in Angular 8, which is probably due to Ivy's new rendering engine.
Also noteworthy is an error that occurs on line 130 of single-spa-angular.js where the animationEngine is resolved from an injector (opts.bootstrappedModule.injector.get(opts.AnimationEngine). The errors says the injector has already been destroyed (which could be done by line 110 ofc.).

Also noteworthy is an error that occurs on line 130 of single-spa-angular.js where the animationEngine is resolved from an injector (opts.bootstrappedModule.injector.get(opts.AnimationEngine). The errors says the injector has already been destroyed (which could be done by line 110 ofc.).

That is good news - single-spa-angular was working around a bug in the animation engine, but from what you said it appears that that might be fixed as of Angular 9. If so, the single-spa-angular browser lib should continue doing the workaround for old versions of angular, but no longer do it for Angular 9. Related code (click to see full comment):
https://github.com/single-spa/single-spa-angular/blob/5f7b1604d0fbdb42d0dc950538907e5dbfef43dd/src/browser-lib/single-spa-angular.ts#L113

Ok, so I ended up with a temporary solution where I implement OnDestroy in my app component.
Then in the ngOnDestroy method I reuse the domElementGetter-function that I provided in the app registration in single spa to find the root element. Then I just set innerHTML of that element to an empty string.
It works for now as a "solution" for me since it will only affects the Angular application that contains that code (my new Angular 9 app) without affecting my old Angular apps.

It's a bug of the Ivy engine. Reported to Angular team:
https://github.com/angular/angular/issues/36449

Ok, so I ended up with a temporary solution where I implement OnDestroy in my app component.
Then in the ngOnDestroy method I reuse the domElementGetter-function that I provided in the app registration in single spa to find the root element. Then I just set innerHTML of that element to an empty string.
It works for now as a "solution" for me since it will only affects the Angular application that contains that code (my new Angular 9 app) without affecting my old Angular apps.

@richardbladh  Could you provide an example on how you did it? Thank you

In app.component.ts in your Angular 9 app.
export class AppComponent implements OnDestroy {     ngOnDestroy() {         // Fix for Angular 9 + SingleSpa. Remove when the issue is fixed: https://github.com/single-spa/single-spa-angular/issues/130         // Solution (seems to work for now): Cleanup the DOM manually on destroy.         const element = getTheElementFromSomeGlobalRegistryThatYouveSetupWhenYouRegistreredYourApplication();         element.innerHTML = "";     } }

Thank you,
I'm working on a POC and I'm going to use this solution for the moment. I saw that there are also some errors with the AnimationEngine, removing it from the singleSpaAngular bootstrap method "fixed" the unmounting process.

@orosro
if you've encountered any issues you might want to open an issue and the most important to provide a minimal reproducible example. I will try to help you to resolve those issues.

In app.component.ts in your Angular 9 app.
`export class AppComponent implements OnDestroy {
ngOnDestroy() {
    // Fix for Angular 9 + SingleSpa. Remove when the issue is fixed: https://github.com/single-spa/single-spa-angular/issues/130
    // Solution (seems to work for now): Cleanup the DOM manually on destroy.
    const element = getTheElementFromSomeGlobalRegistryThatYouveSetupWhenYouRegistreredYourApplication();
    element.innerHTML = "";
}

}`

@richardbladh Does this assume that the element was placed on the DOM using the DomElementGetter ?

Looks like the fix for this happened in https://github.com/angular/angular/pull/37600 and landed in Angular 10.0.1.

Tried with Angular 10.0.10  still the issue persists

And If it's fixed in  Angular 10.0.1. so is it now to be also fix from single-spa library as well (in any next version) , and If yes so is there any road-map will be helpful if someone can share insides on this.

My understanding is that this issue is not with single-spa itself, but with Angular. Single-spa calls lifecycles.unmount(), which is implemented here in single-spa-angular:
https://github.com/single-spa/single-spa-angular/blob/91b1513fa1db69851acfd8d0b7904cca18a0bbe7/src/src/single-spa-angular.ts#L157
The main thing that occurs in that method is that we call .destroy() on the mounted Angular module:
https://github.com/single-spa/single-spa-angular/blob/91b1513fa1db69851acfd8d0b7904cca18a0bbe7/src/src/single-spa-angular.ts#L197
Additionally, since Ivy had a bug we have a workaround that removes it from the dom:
https://github.com/single-spa/single-spa-angular/blob/91b1513fa1db69851acfd8d0b7904cca18a0bbe7/src/src/single-spa-angular.ts#L202
Ideally we wouldn't have to do any workarounds / hacks, but we can add any things needed to that unmount function that help things unmount.

Already added in  unmount function
singleSpa.unloadApplication(appName);
Also the above function gets executed but the app doesn't fully unload and stay inside the Mounted Apps array
ie. by calling bellow function after unload I can see the app is still there
singleSpa.getMountedApps()

You should not call singleSpa.unloadApplication() unless you want to redownload the source code for the application. This is often used for hot reloading and is not related to unmounting. I think you might be using it by mistake, as it has nothing to do with what is described in this github issue.

Also the above function gets executed but the app doesn't fully unload and stay inside the Mounted Apps array

You have to wait for unloadApplication to finish before you call singleSpa.getMountedApps(). For example:
singleSpa.unloadApplicaton(appName).then(() => {
  console.log(singleSpa.getMountedApps())
})

Hey guys. I want to clarify things. I've checked that the application is removed successfully w/o using any hacks like element.remove(), etc.
P.S. I've checked with<EMAIL_ADDRESS>The fix was published with 10.0.1 version: https://github.com/angular/angular/blob/master/CHANGELOG.md#1001-2020-06-26 (core: cleanup DOM elements when root view is removed).
That means that this function is not needed anymore: https://github.com/single-spa/single-spa-angular/blob/master/src/internals/src/dom.ts#L3-L15
Also it doesn't work correctly when using SystemJS, since ivyEnabled() always returns false (because it throws require is not defined at runtime).

Thanks for the update @arturovt - sounds like we can maybe close this issue?

Yeah, closing it.


Themp731 patch 2

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@49dff46). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master       #3   +/-   ##
=========================================
  Coverage          ?   94.18%
=========================================
  Files             ?        2
  Lines             ?      258
  Branches          ?        0
=========================================
  Hits              ?      243
  Misses            ?       15
  Partials          ?        0

Continue to review full report at Codecov.

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


[FancyZones] Suggestion - Application group

Description
I find that it would be practical to be able to set up application group with a windows position that can be configured in the same way as the application groups set up on the Surface Duo :

All this can be configured with a positioning based on FancyZones as well as an application group icon in the taskbar :

Fancyzone amelioration of #5901

If you'd like to see this feature implemented, add a 👍 reaction to this post.

Duplicated, see #5901


607 store stages using ajax

#607
what I did:

earlier, the stage data was stored using the simple form.
now, these data are stored using ajax.
replace hardcoded routes with routes name.

I have created a new Issue related to the above feedback.

Nice work @Satendra-SR 👍
Minor feedback on user experience though. When updating any stage, the stage collapses and the user has to reopen that stage by clicking on the "pencil" icon. Can that be avoided? We can target it separately. #622

Thanks, @rathorevaibhav.
Surely I will work on those feedbacks.


fix(examples): add Config from fuel-core to prelude

Should fix some build problems on #355. Investigating why CI was green in the first place.
Re @Salka1988

@Br1ght0ne Do you mind giving me a bit more context as to why pub use super::node::service::Config; is needed?

@digorithm Examples are using Config::local_node() and no other imports other than fuels::prelude::*. Config is unavailable from fuels directly, so those tests shouldn't have been green even when initially added.
The book uses use fuels::node::service::{Config, FuelService} when instantiating a client. If importing Config directly through this path is desirable, I can amend the example code.


Customising authentication templates

Django cookie cutter looks to have customised the templates from django allauth (within templates/accounts) presumably to better use crispy forms?
I assume to more precisely customise the rendering of the authentication forms (signup etc) I would alter the included templates in /account as needed?

That's correct.

Thanks - I trying to pricesely control the output of the django allauth forms, to get something like:

However if I just output an individual field from the signup form, eg.
{{ form.password1 }}
I dont' seem to be able to add attributes to the field without overriding the form.
How do you all tailor the rendering of the allauth forms exactly as you want them? In the cookiecutter templates you just use the crispy form filter:  {{ form|crispy }}
But I can't tailor this further unless I can amend the original form. Is it best to do something like?:
 class SignUpForm(allauthSignUpForm):
message = forms.CharField()

def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs):
    self.fields['password1'].label = "Add password"
    self.fields['password1'].help_text = "No less that 8 characters...."

Thanks


Subtasks

In a first step this epic aims to allow management of subtasks on the task details page. This includes showing related tasks and adding subtasks to a specific task.
Showing task relationships in the list view or even using drag & drop to make tasks to into subtasks will be covered in the second step.

Added another 20$.

And 35$ more.

Is this anywhere on the roadmap ? It would be awesome to have !

I merged subtasks into the master branch and added some functionalities to the subtasks list in the detailedView. Most of the changes feel rather hacky but definitely work well. I will probably continue to improve the subtask integration but that's what I've got for now :)
3bcf760286e3fd1a6c40b7cd8928458dfd0a4e38

So you just merged the old PR to master or what exactly did you do? When I click that link, I don't see any branch or PR information and the commit doesn't seem to be in master either.
When you have anything to test, let me know.

It's a link to a commit in my fork where I did the changes. (1.2.4-subtasks)
Besides the merging, I did a lot of changes to the behavior of the subtasks in the detailedView. However, I didn't create a PR because

I plan on doing further changes.
I have no experience in OpenTasks infrastructure and am pretty sure I broke coding guidelines.


feat- Add WhySponsorUs section

Your checklist for this pull request
🚨Please review the guidelines for contributing to this repository.

[x] Make sure you are requesting to pull a topic/feature/bugfix branch (right side). Don't request your default branch!
[x] Make sure you are making a pull request against the default branch (left side). Also you should start your branch off default branch.
[x] Check the commit's or even all commits' message styles matches our requested structure.
[x] Check your code additions will fail neither code linting checks nor unit test.
[x] I have added necessary documentation (if appropriate)

Description
Please describe your pull request.
❤Thank you!
Post merge checklist

[x] Follow steps from the guidelines for contributing to this repository.
[x] If you are a new contributor, ping in the thread and one of the maintainers will add you to all-contributors list.

@Lucif3r-in Padding issue in the card and border radii of card and image are not aligning properly
Look into it


⚠ Processors has degraded performance

In 75022d3, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 83 ms

Resolved: Processors performance has improved in f7b523b.


Simplified commit messages?

Wondering if we can configure aider to only give a short commit message? I do not want to view a full conversation history and diff in the commit message.

Thanks for trying aider and filing this issue.  Duplicate of #352.


Openvpn connect via individual cert to multiple HUBs issue

Hi, there!
Thank you for using SoftEther.
Before you submit an issue, please read the following:
Is this a question?

If the answer is "yes", then please ask your question on www.vpnusers.com.
The issue section on GitHub is reserved for bugs and feature requests.

If the answer is "no", please read the following:

We provide a template which is specifically made for bug reports, in order to be sure that the report includes enough details to be helpful.
Please use or adapt it as needed.

Prerequisites

[ ] Can you reproduce? Yes
[ ] Are you running the latest version of SoftEtherVPN? Yes

SoftEther version: 4.34
Component: [Server, Client, Bridge, etc.] Server, Openvpn client
Operating system: [Windows, Linux, BSD, macOS, etc.] Linux
Architecture: [64 bit, 32 bit] 64 bit
[In case it's a computer with known specs, such as the Raspberry Pi, you can specify it omitting the details.]
Processor: [Specify brand and model. Example: AMD Ryzen 7 1800x] Xeon E3-1246 v3
Description
[Description of the bug]
Error using Open VPN client connecting to non default Softether HUB via individual certificate without login and password
Expected behavior:
[What you expected to happen]
The ability to connect to any virtual hub of Softether VPN server via individual certificate
Actual behavior:
[What actually happened]
If you have multiple hub on the server and want to connect to non default hub via openvpn client with individual certificate, you can't do it, because connection occurs only to the default hub
Steps to reproduce

[First step]
Create hub1 and hub2. In Openvpn \ MS-SSTP settings choose hub1 as default. In hub2 create user Veronica, choose "Individual Certificate Autentification", create Certificate (I was trying with CN Veronica and Veronica@hub2, no matter)
[Second step]
Copy content of cert files in openvpn config file. Try to connect. Connect goes to hub1 and fail.
[And so on...]
If you use windows openvpn client with GUI and use "auth-user-pass" parameter, GUI ask you for username and password, you can set username Veronica@hub2 with empty password and connect would successful.
BUT, if you can't use GUI, for example hardware router, or cli openvpn client, you must use parameter "auth-user-pass [path-to-file-with-login-and-password]". If you specify in this file only login (Veronica@hub2) openvpn client get error and won't even connect. If you specify in this file login and random password (ex: login: Veronica@hub2 pass: 123qwe) openvpn clien connect to hub2, but will not be able to autorize,  because in this case SE server try to use autentification via login and pass, so it cannot recognize this login and pass.
log this case:
The auth type provided is "External server authentication" and the user name is "Veronica". ( Instead of "OpenVPN certificate authentication" normaly)
Connection "CID-12": User authentication failed. The user name that has been provided was "Veronica".

Perhaps the best way to deside this problem so that SE server recognize correct HUB from Common Name of individual Certificate, for example CN: Veronica@hub2

Thank you very much for reporting the issue!
In my opinion we should:

Check whether UV_HUB is set. If it is, use its value as hub name.
Prioritize the specified username over the certificate's Common Name field.

About UV_ environment variables:
https://github.com/SoftEtherVPN/SoftEtherVPN/blob/e0c6813d448177bd15c8bb0fdf0a10d74188ad4a/src/Cedar/Proto_OpenVPN.c#L1060-L1063

Check whether UV_HUB is set. If it is, use its value as hub name.
Prioritize the specified username over the certificate's Common Name field.

In this case SoftetherVPN use value of sertificate CN field as username, not a original User Name field:
Client name: "OpenVPN Client", Version: 4.34, Build: 9745) is attempting to connect to the Virtual Hub. The auth type provided is "OpenVPN certificate authentication" and the user name is "Veronica@hub2"
2020-07-14 21:34:47.254 Connection "CID-59934": User authentication failed. The user name that has been provided was "Veronica@hub2". (But name of created user is Veronica without @hub2, but CN field is Veronica@hub2).
For some reason SoftetherVPN check this certificate CN field after make a decision to send to the default hub, instead of check certificate CN field before being sent to the correct hub based on the user name from CN field

I would indeed expect the CN field to be split into username and hub name rather than it being treated entirely as username.


Add slice parameter type checking to disallow Tensor usage for slices

Added behaviour matching PyTorch when using tensors for slicing
Pls correct me if we are not supposed to support single element tensors when slicing
#6900

too many lines. please read the existing code and put the check in an appropriate place, not just adding plenty of code just for your specific usage. it should not check specifically for tinygrad.Tensor and should allow only the supported slice.

Thanks for your feedback!
I've moved the check under the slice 0-step check and made it more concise and general, as you asked.
Now the error message would look something like this:
TypeError: Unsupported slice for dimension 0. Expected integers or None, got slice(float, int, NoneType).

i think this is fine as we clearly don't support it now, would like to know how other framework handles it and we should look into matching those


Add field to set API token in docs

Reason for change

Make it easy to update the token in the docs so that people don't have to go into the console to set the token.
Testing

Go to docs and set token
check local storage to see that token is set correctly
ensure examples fetch with token

I’m not a big fan of having it at the top of every page, and pushing the content down.
What if we had it be part of the example component? (We could also make that Example heading better too). That way there’s a direct association between that token input, and the component that’ll be using it.

Should this be closed?

Well, we should either do this, or mock resource creation/credential/resizing for docs. Maybe the latter?

On Sep 19, 2019, at 07:00, Sam Slotsky<EMAIL_ADDRESS>wrote:
Should this be closed?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Yeah, we should be mocking them. Every example on the docs site should work without requiring authentication. https://github.com/manifoldco/adrs/blob/master/0028-use-mock-for-docs-to-make-it-stable-in-ui.md


Command Parsing Error where random words are allowed to follow actual commands

While wrong commands such as ihoeihgr lead to Unknown command error, if this is preceded with a valid command like list, there will be no error, for example list hreoiehg.

We stated the above in our UG, not sure if we still need to fix this.


Wrong testcase? Friendly date ranges

friendly(["2016-07-01", "2016-07-04"]) should return ["July 1st","4th"].
friendly(["2016-12-01", "2017-02-03"]) should return ["December 1st","February 3rd"].
friendly(["2016-12-01", "2018-02-03"]) should return ["December 1st, 2016","February 3rd, 2018"].
friendly(["2017-03-01", "2017-05-05"]) should return ["March 1st, 2017","May 5th"]
friendly(["2018-01-13", "2018-01-13"]) should return ["January 13th, 2018"].
friendly(["2022-09-05", "2023-09-04"]) should return ["September 5th, 2022","September 4th"].
friendly(["2022-09-05", "2023-09-05"]) should return ["September 5th, 2022","September 5th, 2023"].

I think there is a fault here, you need the year here in the bold line.
it should return ["December 1st, 2016","February 3rd"]
http://www.freecodecamp.com/challenges/friendly-date-range

@Pwter The instructions state:

if the date range ends in less than a year from when it begins, do not display the ending year.

Happy Coding :smile:

Additionally, if the date range begins in the current year and ends within one year, the year should not be displayed at the beginning of the friendly range.
this is the one mentioning the beginning of the range but thanks!:)

Thanks! But isnt that contradicts with this one?

friendly(["2022-09-05",

"2023-09-04"]) should return ["September 5th, 2022","September 4th"].

@Pwter Actually this: friendly(["2016-12-01", "2017-02-03"]) should follow this:

Additionally, if the date range begins in the current year and ends within one year, the year should not be displayed at the beginning of the friendly range.

Not sure about friendly(["2022-09-05", "2023-09-04"]) though. Am I missing something @FreeCodeCamp/issue-moderators

Additionally, if the date range begins in the current year and ends within one year, the year should not be displayed at the beginning of the friendly range

Is this about the current year as it is 2016 now? I thought it's about the friendly dates.

Current year refers to all 2016 dates

Okey, i found the problem, thanks!


Support filters in set block

As suggested in #486, this adds support for filters in set blocks:
{% set foo | somefilter %}
    this is a test
{% endset %}

note to myself: write some docs for it

rebased to the most recent master


Current state of pi-zero-pytorch repo vs transfusion-pytorch for training experiments

Hi @lucidrains, thank you for your amazing work and contributions!   I am interested in running some open test trainings of these Transfusion-based models you have implemented.  I have been gathering/labelling higher-quality image and video data geared for edge use-cases.  I will share the results, datasets, and checkpoints of these, and am happy to collaborate with everyone.
Whats gaps/TODOs have you identified on the π0 repo?   It would seem your transfusion-pytorch repo is in a slightly more mature state currently, and was planning to start there with image->text pre-training for embedded vision tasks with structured I/O.  I'd like to characterize these models and ramp up the complexity adding modalities (images, video, audio, IMU/proprioception)
In addition to ego-centric embodiment for robotics, also interested in exo-centric IoT/vision devices for public safety, assistive devices, anomaly detection, scene/landmark recognition & navigation, ect. Our hope is that with carefully curated real-world data (and possibly continual learning or KTO), anyone can deploy these mini multimodal models for edge domains with intuitive on-device workflows and user personalization/adaptation, instead of frustrating prompt engineering of internet-trained chat models.
Our background:  I'm from the Jetson team at NVIDIA and jetson-ai-lab.com.  We have previously done optimizations for streaming VLMs, OpenVLA training, HF LeRobot, ect.  I have A100/H100 spot instances for the training and data curation.  I'm good with the workflows/infra and embedded optimizations, and while I conceptually understand the papers, implementing new SOTA transformer architectures is not my forte.  You seem amazingly active across your GitHub, and with your confidence am happy to work together along with the community to help prove these out :+1:

@dusty-nv hey Dustin, thank you for your interest
would you like to chat over Signal more informally? i can give you a rundown of my situation and my plans for the upcoming months for the robotics and RL space.

@dusty-nv nvidia has a robotics team being led by Jim Fan? i'm curious why you would reach out to me, unless if they are to be part of the collaborative group?

@lucidrains yes, happy to chat on Signal - although I admit, not certain how to find you there (I'll email you my contact info)
And yes, I/we work with the Groot team, Isaac, Metropolis, ROS community, LeRobot, ect on the embedded side.  Our particular remit is to enable everyone and the community with the latest open-source models/workflows/frameworks for edge.  At jetson-containers we have built up a large amount of genAI infra to enable this for ARM64+CUDA built from scratch.
Think of us like a quick-reaction force to ungate people from trying the latest promising open-source stuff, building support for what early-adopters & researchers can get started with today and experiment with for practical automations.  Then that gives teams like Groot the longer-term focus to develop massive-scale foundation models and production-grade solutions to converge around, for example scaling to >30DoF humanoids.
Meanwhile today, ourselves and others are beginning to deploy it for less complex utilitarian scenarios.  Many of us long-time Jetson users have things in mind we already want to use it for - for example, outdoor learning robots with basic manipulation.  In my case I grew up farming, so my personal connection is with agtech (I noticed Dear Alice at the bottom of your readme :smiling_face_with_tear:)

@dusty-nv Groot is a great name for a team! yes i understand your goals now. can chat more through email
re: agtech, indeed, i think it has already begun (weed management with computer vision for instance), but the effects could be broader as solar, energy storage, and AI all come together into something more unified. we'll just have to see how far RL + foundation models can really be pushed.

@lucidrains closing this issue for now -  been proceeding with working on transfusion for now.  I sent a couple emails to your gmail this week - no rush, but if you haven't received them ping me or try<EMAIL_ADDRESS>👍

@dusty-nv hey Dusty, apologies for the late reply. I will get back to your email later today
Transfusion should be good, but just note in this paper they found out that actions requires their own separate parameters, which is why I decided to just rebuild it. I do plan on adding mixture of experts to Transfusion, but that may be in month of December


DRILL-5270: Improve loading of profiles listing in the WebUI

Note: Closed the old PR #755 and #1250 and opening this.
When Drill is displaying profiles stored on the file system (Local or Distributed), it does so by loading the entire list of .sys.drill files in the profile directory, sorting and deserializing. This can get expensive, since only a single CPU thread does this.
As an example, a directory of 120K profiles, the time to just fetch the list of files alone is about 6 seconds. After that, based on the number of profiles being rendered, the time varies. An average of 30ms is needed to deserialize a standard profile, which translates to an additional 3sec for the rendering of default 100 profiles.
A user reported issue confirms just that:
DRILL-5028 Opening profiles page from web ui gets very slow when a lot of history files have been stored in HDFS or Local FS
Additional JIRAs filed ask for managing these profiles
DRILL-2362 Drill should manage Query Profiling archiving
DRILL-2861 enhance drill profile file management
This PR brings the following enhancements to achieve that:

Improve loading times by pinning the deserialized list in memory (TreeSet; for maintaining a memory-efficient sortedness of the profiles). That way, if we do not detect any new profiles in the profileStore (i.e. profile directory) since the last time a web-request for rendering the profiles was made, we can re-serve the same listing and skip making a trip to the filesystem to re-fetch all the profiles.
Leverage Guava Cache to save on deserializing profiles, since the WebServer makes 2 calls to deserialize a file on disk for rendering.

Reload & reconstruction of the profiles in the Tree is done in the event of any of the following states changing:
i. Modification Time of profile dir
ii. Number of profiles in the profile dir
iii. Number of profiles requested exceeds existing the currently available list
Access to the profiles requires a lock to ensure that at any time, only one of the requesting users is able to trigger a reconstruction of the TreeSet. If reconstruction is not required, it uses the existing cache rather than attempting to read the entire profile directory's contents all over again.


MakerSquirrel fails to build an up because of broken windowsSign config

Pre-flight checklist

[x] I have read the contribution documentation for this project.
[x] I agree to follow the code of conduct that this project uses.
[x] I have searched the issue tracker for a bug that matches the one I want to file, without success.

Electron Forge version
7.6.0
Electron version
33.2.1
Operating system
Microsoft Windows 11 Pro N (10.0.22621 N/A Build 22621)
Last known working Electron Forge version
No response
Expected behavior
The executable file has been created and signed.
Actual behavior
MakerSquirrel crashes with exit code<PHONE_NUMBER>
Steps to reproduce

Init an Electron project using the webpack-typescript template:npm init electron-app@latest my-new-app -- --template=webpack-typescript

Install dependencies:npm i

Provide a path to codesign pfx file and password using the windowsSign parameter of MakerSquirrelConfig in the forge.config.ts file:new MakerSquirrel({
  // This works and solve the problem but it's legacy, according to its docs
  // certificateFile: "C:\\Users\\user\\my_codesign_certificate.pfx",
  // certificatePassword: "my-password"
  windowsSign: {
    certificateFile: "C:\\Users\\user\\my_codesign_certificate.pfx",
    certificatePassword: "my-password"
  }
}

Run makers:npm run make

Additional information
Console output as is
PS C:\Users\user\my-app> npm run make

><EMAIL_ADDRESS>make
> electron-forge make

✔ Checking your system
✔ Loading configuration
✔ Resolving make targets
  › Making for the following targets:
✔ Running package command
  ✔ Preparing to package application
  ✔ Running packaging hooks
    ✔ Running generateAssets hook
    ✔ Running prePackage hook
      ✔ [plugin-webpack] Preparing webpack bundles
        ✔ Preparing native dependencies [1s]
        ✔ Building webpack bundles [4s]
  ✔ Packaging application
    ✔ Packaging for x64 on win32 [5s]
  ✔ Running postPackage hook
✔ Running preMake hook
❯ Making distributables
  ✖ Making a squirrel distributable for win32/x64
    › Failed with exit code:<PHONE_NUMBER>
    Output:
    System.AggregateException: One or more errors occurred. ---> System.Exception: Failed to sign, command invoked was:
    'C:\Users\user\my-app\node_modules\electron-winstaller\vendor\signtool.exe sign windows-sign C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll'
    at Squirrel.Update.Program.<signPEFile>d__17.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at Squirrel.Update.Program.<>c__DisplayClass10_0.<<Releasify>b__14>d.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
    at Squirrel.Utility.<>c__DisplayClass13_1`1.<<ForEachAsync>b__1>d.MoveNext()
    --- End of inner exception stack trace ---
    at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
    at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
    at Squirrel.Update.Program.<>c__DisplayClass10_0.<Releasify>b__7(String pkgPath)
    at Squirrel.ReleasePackage.CreateReleasePackage(String outputFile, String packagesRootDir, Func`2 releaseNotesProcessor, Action`1 contentsPostProcessHook)
    at Squirrel.Update.Program.Releasify(String package, String targetDir, String packagesDir, String bootstrapperExe, String backgroundGif, String signingOpts, String baseUrl, String
    setupIcon, Boolean generateMsi, Boolean packageAs64Bit, String frameworkVersion, Boolean generateDeltas)
    at Squirrel.Update.Program.executeCommandLine(String[] args)
    at Squirrel.Update.Program.main(String[] args)
    at Squirrel.Update.Program.Main(String[] args)
    ---> (Inner Exception #0) System.Exception: Failed to sign, command invoked was: 'C:\Users\user\my-app\node_modules\electron-winstaller\vendor\signtool.exe sign windows-sign
    C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll'
    at Squirrel.Update.Program.<signPEFile>d__17.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at Squirrel.Update.Program.<>c__DisplayClass10_0.<<Releasify>b__14>d.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
    at Squirrel.Utility.<>c__DisplayClass13_1`1.<<ForEachAsync>b__1>d.MoveNext()<---
◼ Running postMake hook

An unhandled rejection has occurred inside Forge:
Error: Failed with exit code:<PHONE_NUMBER>
Output:
System.AggregateException: One or more errors occurred. ---> System.Exception: Failed to sign, command invoked was: 'C:\Users\user\my-app\node_modules\electron-winstaller\vendor\signtool.exe sign windows-sign C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll'
   at Squirrel.Update.Program.<signPEFile>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<<Releasify>b__14>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Squirrel.Utility.<>c__DisplayClass13_1`1.<<ForEachAsync>b__1>d.MoveNext()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<Releasify>b__7(String pkgPath)
   at Squirrel.ReleasePackage.CreateReleasePackage(String outputFile, String packagesRootDir, Func`2 releaseNotesProcessor, Action`1 contentsPostProcessHook)
   at Squirrel.Update.Program.Releasify(String package, String targetDir, String packagesDir, String bootstrapperExe, String backgroundGif, String signingOpts, String baseUrl, String setupIcon, Boolean generateMsi, Boolean packageAs64Bit, String frameworkVersion, Boolean generateDeltas)
   at Squirrel.Update.Program.executeCommandLine(String[] args)
   at Squirrel.Update.Program.main(String[] args)
   at Squirrel.Update.Program.Main(String[] args)
---> (Inner Exception #0) System.Exception: Failed to sign, command invoked was: 'C:\Users\user\my-app\node_modules\electron-winstaller\vendor\signtool.exe sign windows-sign C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll'
   at Squirrel.Update.Program.<signPEFile>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<<Releasify>b__14>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Squirrel.Utility.<>c__DisplayClass13_1`1.<<ForEachAsync>b__1>d.MoveNext()<---

An unhandled exception has occurred inside Forge:
Failed with exit code:<PHONE_NUMBER>
Output:
System.AggregateException: One or more errors occurred. ---> System.Exception: Failed to sign, command invoked was: 'C:\Users\user\my-app\node_modules\electron-winstaller\vendor\signtool.exe sign windows-sign C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll'
   at Squirrel.Update.Program.<signPEFile>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<<Releasify>b__14>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Squirrel.Utility.<>c__DisplayClass13_1`1.<<ForEachAsync>b__1>d.MoveNext()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<Releasify>b__7(String pkgPath)
   at Squirrel.ReleasePackage.CreateReleasePackage(String outputFile, String packagesRootDir, Func`2 releaseNotesProcessor, Action`1 contentsPostProcessHook)
   at Squirrel.Update.Program.Releasify(String package, String targetDir, String packagesDir, String bootstrapperExe, String backgroundGif, String signingOpts, String baseUrl, String setupIcon, Boolean generateMsi, Boolean packageAs64Bit, String frameworkVersion, Boolean generateDeltas)
   at Squirrel.Update.Program.executeCommandLine(String[] args)
   at Squirrel.Update.Program.main(String[] args)
   at Squirrel.Update.Program.Main(String[] args)
---> (Inner Exception #0) System.Exception: Failed to sign, command invoked was: 'C:\Users\user\my-app\node_modules\electron-winstaller\vendor\signtool.exe sign windows-sign C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll'
   at Squirrel.Update.Program.<signPEFile>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<<Releasify>b__14>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Squirrel.Utility.<>c__DisplayClass13_1`1.<<ForEachAsync>b__1>d.MoveNext()<---

Error: Failed with exit code:<PHONE_NUMBER>
Output:
System.AggregateException: One or more errors occurred. ---> System.Exception: Failed to sign, command invoked was: 'C:\Users\user\my-app\node_modules\electron-winstaller\vendor\signtool.exe sign windows-sign C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll'
   at Squirrel.Update.Program.<signPEFile>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<<Releasify>b__14>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Squirrel.Utility.<>c__DisplayClass13_1`1.<<ForEachAsync>b__1>d.MoveNext()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<Releasify>b__7(String pkgPath)
   at Squirrel.ReleasePackage.CreateReleasePackage(String outputFile, String packagesRootDir, Func`2 releaseNotesProcessor, Action`1 contentsPostProcessHook)
   at Squirrel.Update.Program.Releasify(String package, String targetDir, String packagesDir, String bootstrapperExe, String backgroundGif, String signingOpts, String baseUrl, String setupIcon, Boolean generateMsi, Boolean packageAs64Bit, String frameworkVersion, Boolean generateDeltas)
   at Squirrel.Update.Program.executeCommandLine(String[] args)
   at Squirrel.Update.Program.main(String[] args)
   at Squirrel.Update.Program.Main(String[] args)
---> (Inner Exception #0) System.Exception: Failed to sign, command invoked was: 'C:\Users\user\my-app\node_modules\electron-winstaller\vendor\signtool.exe sign windows-sign C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll'
   at Squirrel.Update.Program.<signPEFile>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<<Releasify>b__14>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Squirrel.Utility.<>c__DisplayClass13_1`1.<<ForEachAsync>b__1>d.MoveNext()<---

    at ChildProcess.<anonymous> (C:\Users\user\my-app\node_modules\electron-winstaller\src\spawn-promise.ts:51:16)
    at ChildProcess.emit (node:events:514:28)
    at ChildProcess.emit (node:domain:488:12)
    at maybeClose (node:internal/child_process:1105:16)
    at Process.ChildProcess._handle.onexit (node:internal/child_process:305:5)

Console output with DEBUG=electron-forge:*
PS C:\Users\user\my-app> npm run make

><EMAIL_ADDRESS>make
> electron-forge make

✔ Checking your system

electron-forge:check-system checking system, create ~/.skip-forge-system-check to stop doing this +0ms
❯ Loading configuration
  electron-forge:project-resolver searching for project in: C:\Users\user\my-app +0ms
  electron-forge:project-resolver package.json with forge dependency found in C:\Users\user\my-app\package.json +2ms
  electron-forge:plugin:webpack hooking process events +0ms
✔ Loading configuration
❯ Resolving make targets
› Making for the following targets:
✔ Resolving make targets
❯ Running package command
❯ Preparing to package application
  electron-forge:project-resolver searching for project in: C:\Users\user\my-app +2s
  electron-forge:project-resolver package.json with forge dependency found in C:\Users\user\my-app\package.json +1ms
  electron-forge:plugin:webpack hooking process events +12ms
✔ Preparing to package application
❯ Running packaging hooks
❯ Running generateAssets hook
✔ Running generateAssets hook
❯ Running prePackage hook
❯ [plugin-webpack] Preparing webpack bundles
❯ Preparing native dependencies for x64
✔ Preparing native dependencies
❯ Building webpack bundles
  electron-forge:plugin:webpack:webpackconfig Config mode: production +0ms
✔ Building webpack bundles
✔ [plugin-webpack] Preparing webpack bundles
✔ Running prePackage hook
✔ Running packaging hooks
❯ Packaging application
› Determining targets...
  electron-forge:packager packaging with options {
  asar: { unpack: '{**/*.node,**/*.node}' },
  overwrite: true,
  ignore: [Function (anonymous)],
  quiet: true,
  dir: 'C:\\Users\\user\\my-app',
  arch: 'x64',
  platform: 'win32',
  afterFinalizePackageTargets: [ [AsyncFunction (anonymous)] ],
  afterComplete: [ [AsyncFunction (anonymous)] ],
  afterCopy: [ [AsyncFunction (anonymous)] ],
  afterExtract: [ [AsyncFunction (anonymous)] ],
  afterPrune: [ [AsyncFunction (anonymous)] ],
  out: 'C:\\Users\\user\\my-app\\out',
  electronVersion: '33.2.1'
} +0ms
  electron-forge:packager targets: [ { platform: 'win32', arch: 'x64' } ] +6ms
❯ Packaging for x64 on win32
❯ Copying files
❯ Preparing native dependencies
❯ Finalizing package
✔ Copying files
✔ Preparing native dependencies
✔ Finalizing package
✔ Packaging for x64 on win32
✔ Packaging application
❯ Running postPackage hook
  electron-forge:packager outputPaths: [ 'C:\\Users\\user\\my-app\\out\\my-app-win32-x64' ] +5s
✔ Running postPackage hook
✔ Running package command
❯ Running preMake hook
✔ Running preMake hook
❯ Making distributables
❯ Making a squirrel distributable for win32/x64
✖ Making a squirrel distributable for win32/x64 [FAILED: Failed with exit code:<PHONE_NUMBER>
Output:
System.AggregateException: One or more errors occurred. ---> System.Exception: Failed to sign, command invoked was: 'C:\Users\user\my-app\node_modules\electron-winstaller\vendor\signtool.exe sign windows-sign C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll'
   at Squirrel.Update.Program.<signPEFile>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<<Releasify>b__14>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Squirrel.Utility.<>c__DisplayClass13_1`1.<<ForEachAsync>b__1>d.MoveNext()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<Releasify>b__7(String pkgPath)
   at Squirrel.ReleasePackage.CreateReleasePackage(String outputFile, String packagesRootDir, Func`2 releaseNotesProcessor, Action`1 contentsPostProcessHook)
   at Squirrel.Update.Program.Releasify(String package, String targetDir, String packagesDir, String bootstrapperExe, String backgroundGif, String signingOpts, String baseUrl, String setupIcon, Boolean generateMsi, Boolean packageAs64Bit, String frameworkVersion, Boolean generateDeltas)
   at Squirrel.Update.Program.executeCommandLine(String[] args)
   at Squirrel.Update.Program.main(String[] args)
   at Squirrel.Update.Program.Main(String[] args)
---> (Inner Exception #0) System.Exception: Failed to sign, command invoked was: 'C:\Users\user\my-app\node_modules\electron-winstaller\vendor\signtool.exe sign windows-sign C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll'
   at Squirrel.Update.Program.<signPEFile>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<<Releasify>b__14>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Squirrel.Utility.<>c__DisplayClass13_1`1.<<ForEachAsync>b__1>d.MoveNext()<---

]
✖ Making distributables [FAILED: Failed with exit code:<PHONE_NUMBER>
Output:
System.AggregateException: One or more errors occurred. ---> System.Exception: Failed to sign, command invoked was: 'C:\Users\user\my-app\node_modules\electron-winstaller\vendor\signtool.exe sign windows-sign C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll'
   at Squirrel.Update.Program.<signPEFile>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<<Releasify>b__14>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Squirrel.Utility.<>c__DisplayClass13_1`1.<<ForEachAsync>b__1>d.MoveNext()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<Releasify>b__7(String pkgPath)
   at Squirrel.ReleasePackage.CreateReleasePackage(String outputFile, String packagesRootDir, Func`2 releaseNotesProcessor, Action`1 contentsPostProcessHook)
   at Squirrel.Update.Program.Releasify(String package, String targetDir, String packagesDir, String bootstrapperExe, String backgroundGif, String signingOpts, String baseUrl, String setupIcon, Boolean generateMsi, Boolean packageAs64Bit, String frameworkVersion, Boolean generateDeltas)
   at Squirrel.Update.Program.executeCommandLine(String[] args)
   at Squirrel.Update.Program.main(String[] args)
   at Squirrel.Update.Program.Main(String[] args)
---> (Inner Exception #0) System.Exception: Failed to sign, command invoked was: 'C:\Users\user\my-app\node_modules\electron-winstaller\vendor\signtool.exe sign windows-sign C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll'
   at Squirrel.Update.Program.<signPEFile>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<<Releasify>b__14>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Squirrel.Utility.<>c__DisplayClass13_1`1.<<ForEachAsync>b__1>d.MoveNext()<---

]

An unhandled rejection has occurred inside Forge:
Error: Failed with exit code:<PHONE_NUMBER>
Output:
System.AggregateException: One or more errors occurred. ---> System.Exception: Failed to sign, command invoked was: 'C:\Users\user\my-app\node_modules\electron-winstaller\vendor\signtool.exe sign windows-sign C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll'
   at Squirrel.Update.Program.<signPEFile>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<<Releasify>b__14>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Squirrel.Utility.<>c__DisplayClass13_1`1.<<ForEachAsync>b__1>d.MoveNext()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<Releasify>b__7(String pkgPath)
   at Squirrel.ReleasePackage.CreateReleasePackage(String outputFile, String packagesRootDir, Func`2 releaseNotesProcessor, Action`1 contentsPostProcessHook)
   at Squirrel.Update.Program.Releasify(String package, String targetDir, String packagesDir, String bootstrapperExe, String backgroundGif, String signingOpts, String baseUrl, String setupIcon, Boolean generateMsi, Boolean packageAs64Bit, String frameworkVersion, Boolean generateDeltas)
   at Squirrel.Update.Program.executeCommandLine(String[] args)
   at Squirrel.Update.Program.main(String[] args)
   at Squirrel.Update.Program.Main(String[] args)
---> (Inner Exception #0) System.Exception: Failed to sign, command invoked was: 'C:\Users\user\my-app\node_modules\electron-winstaller\vendor\signtool.exe sign windows-sign C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll'
   at Squirrel.Update.Program.<signPEFile>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<<Releasify>b__14>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Squirrel.Utility.<>c__DisplayClass13_1`1.<<ForEachAsync>b__1>d.MoveNext()<---

An unhandled exception has occurred inside Forge:
Failed with exit code:<PHONE_NUMBER>
Output:
System.AggregateException: One or more errors occurred. ---> System.Exception: Failed to sign, command invoked was: 'C:\Users\user\my-app\node_modules\electron-winstaller\vendor\signtool.exe sign windows-sign C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll'
   at Squirrel.Update.Program.<signPEFile>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<<Releasify>b__14>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Squirrel.Utility.<>c__DisplayClass13_1`1.<<ForEachAsync>b__1>d.MoveNext()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<Releasify>b__7(String pkgPath)
   at Squirrel.ReleasePackage.CreateReleasePackage(String outputFile, String packagesRootDir, Func`2 releaseNotesProcessor, Action`1 contentsPostProcessHook)
   at Squirrel.Update.Program.Releasify(String package, String targetDir, String packagesDir, String bootstrapperExe, String backgroundGif, String signingOpts, String baseUrl, String setupIcon, Boolean generateMsi, Boolean packageAs64Bit, String frameworkVersion, Boolean generateDeltas)
   at Squirrel.Update.Program.executeCommandLine(String[] args)
   at Squirrel.Update.Program.main(String[] args)
   at Squirrel.Update.Program.Main(String[] args)
---> (Inner Exception #0) System.Exception: Failed to sign, command invoked was: 'C:\Users\user\my-app\node_modules\electron-winstaller\vendor\signtool.exe sign windows-sign C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll'
   at Squirrel.Update.Program.<signPEFile>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<<Releasify>b__14>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Squirrel.Utility.<>c__DisplayClass13_1`1.<<ForEachAsync>b__1>d.MoveNext()<---

Error: Failed with exit code:<PHONE_NUMBER>
Output:
System.AggregateException: One or more errors occurred. ---> System.Exception: Failed to sign, command invoked was: 'C:\Users\user\my-app\node_modules\electron-winstaller\vendor\signtool.exe sign windows-sign C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll'
   at Squirrel.Update.Program.<signPEFile>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<<Releasify>b__14>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Squirrel.Utility.<>c__DisplayClass13_1`1.<<ForEachAsync>b__1>d.MoveNext()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<Releasify>b__7(String pkgPath)
   at Squirrel.ReleasePackage.CreateReleasePackage(String outputFile, String packagesRootDir, Func`2 releaseNotesProcessor, Action`1 contentsPostProcessHook)
   at Squirrel.Update.Program.Releasify(String package, String targetDir, String packagesDir, String bootstrapperExe, String backgroundGif, String signingOpts, String baseUrl, String setupIcon, Boolean generateMsi, Boolean packageAs64Bit, String frameworkVersion, Boolean generateDeltas)
   at Squirrel.Update.Program.executeCommandLine(String[] args)
   at Squirrel.Update.Program.main(String[] args)
   at Squirrel.Update.Program.Main(String[] args)
---> (Inner Exception #0) System.Exception: Failed to sign, command invoked was: 'C:\Users\user\my-app\node_modules\electron-winstaller\vendor\signtool.exe sign windows-sign C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll'
   at Squirrel.Update.Program.<signPEFile>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Update.Program.<>c__DisplayClass10_0.<<Releasify>b__14>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Squirrel.Utility.<>c__DisplayClass13_1`1.<<ForEachAsync>b__1>d.MoveNext()<---

    at ChildProcess.<anonymous> (C:\Users\user\my-app\node_modules\electron-winstaller\src\spawn-promise.ts:51:16)
    at ChildProcess.emit (node:events:514:28)
    at ChildProcess.emit (node:domain:488:12)
    at maybeClose (node:internal/child_process:1105:16)
    at Process.ChildProcess._handle.onexit (node:internal/child_process:305:5)
  electron-forge:plugin:webpack handling process exit with: { cleanup: true } +42s
  electron-forge:plugin:webpack handling process exit with: { cleanup: true } +2ms

The app project source code that reproduces the error

This indicates signing failed. Usually, this happens if the windowsSign configuration is incorrect.
Unfortunately, it doesn't currently print the exact error message from signtool.exe to the console. You could check if your electron-windows-sign.log contains a useful error message. If not, you could monkey patch this part of the code to understand better what's going on:
https://github.com/electron/windows-sign/blob/c59b1bb4b32353921e6493538a92491847beb777/src/sea.ts#L69-L121
To those scripts, add logging to a log file using fs. (Do not log using console.{log,error}. That will cause other errors that I cannot quite explain yet, see for example https://github.com/electron/windows-sign/pull/48.)

Usually, this happens if the windowsSign configuration is incorrect

As you can see, singing config is straightforward. It's simply impossible that the configuration is incorrect here:
new MakerSquirrel({
  // As easy as pie
  windowsSign: {
    certificateFile: "C:\\Users\\user\\my_codesign_certificate.pfx",
    certificatePassword: "my-password"
  }
}

Here is the output of the electron-windows-sign.log
C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll
Error: Signtool exited with code 1. Stderr: SignTool Error: No certificates were found that met all the given criteria.
. Stdout:
C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll
Error: Signtool exited with code 1. Stderr: SignTool Error: No certificates were found that met all the given criteria.
. Stdout:
C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll
Error: Signtool exited with code 1. Stderr: SignTool Error: No certificates were found that met all the given criteria.
. Stdout:
C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll
Error: Signtool exited with code 1. Stderr: SignTool Error: No certificates were found that met all the given criteria.
. Stdout:
C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll
Error: Signtool exited with code 1. Stderr: SignTool Error: No certificates were found that met all the given criteria.
. Stdout:
C:\Users\user\AppData\Local\SquirrelTemp\tempa\lib\net45\ffmpeg.dll
Error: Signtool exited with code 1. Stderr: SignTool Error: An unexpected internal error has occurred.
. Stdout: Error information: "Error: Store IsDiskFile() failed." (-2147024893/0x80070003)

@nikwen Please, try to run it on your own machine to confirm the bug can be reproduced
Also, could the certificates cause this problem?

Yes, the error message implies there's something wrong with the certificate.

something wrong with the certificate.

I think it's still a bug if it works using the legacy parameters and doesn't using the modern way.
Can confirm this bug with this dummy self-issued certificated with password rsis-debug. How could it cause the problem?


[8pt] HUC 04010201 bug causing hydrotable file size issue

Appears that past several FIM3 versions have an issue with creating a very large hydrotable (~200+ gb). The table is very large because there are thousands of duplicate rows in the SRCs. Underlying root cause appears to be related to input geometry/vectors as there are numerous dem derived reaches and catchments with the same hydroid value.

hydrotable with showing duplicate rows:

Taking notes.
It appears that this bug began sometime after version <IP_ADDRESS> (hydroTable size = 777KB).


Lint staged

You might need to push an empty commit to this repo to get CircleCI to rebuild. I tweaked the settings so that it will build and run tests for forked projects.

Should we go ahead and close this in favor of #11?


Release 0.38.2

Target date is October 31/November 1.

This will be released once #3686 has release notes and is merged.

This will be going out later today if things work out as planned.

Release is underway.

Release is done.


Uncaught TypeError: this.c.setGrammar is not a function

[Enter steps to reproduce below:]

...
...

Atom Version: 1.8.0
System: Microsoft Windows 10 Education
Thrown From: julia-client package, v0.4.7
Stack Trace
Uncaught TypeError: this.c.setGrammar is not a function
At /C:/Users/j/.atom/packages/julia-client/lib/ui/console.coffee:44

TypeError: this.c.setGrammar is not a function
    at Object.module.exports.create (C:\Users\j\.atom\packages\julia-client\lib\ui\console.coffee:44:14)
    at Object.module.exports.activate (C:\Users\j\.atom\packages\julia-client\lib\ui\console.coffee:10:12)
    at file:///C:/Users/j/.atom/packages/julia-client/lib/julia-client.coffee:1:1
    at Object.module.exports.JuliaClient.withInk (file:///C:/Users/j/.atom/packages/julia-client/lib/julia-client.coffee:1:1)
    at file:///C:/Users/j/.atom/packages/julia-client/lib/julia-client.coffee:1:1

Commands
     -3:38.3.0 grammar-selector:show (atom-text-editor.editor.is-focused)
     -3:34.3.0 editor:consolidate-selections (atom-text-editor.editor.mini.is-focused)
     -3:34.3.0 core:cancel (atom-text-editor.editor.mini.is-focused)
  2x -1:02.6.0 grammar-selector:show (atom-text-editor.editor.is-focused)
     -0:20.7.0 settings-view:check-for-package-updates (atom-workspace.workspace.scrollbars-visible-always.theme-one-dark-syntax.theme-one-dark-ui)

Config
{
  "core": {},
  "julia-client": {
    "enableMenu": true,
    "enableToolBar": true,
    "juliaPath": "C:\\programs\\julia64\\usr\\bin\\julia.exe",
    "launchOnStartup": true
  }
}

Installed Packages
# User
ink, v0.4.4
julia-client, v0.4.7
language-julia, v0.6.0
latex-completions, v0.3.1
tool-bar, v1.0.0
uber-juno, v0.1.1

# Dev
No dev packages

Are you still getting that error, @joa-quim?


[build] Drop Dependency on byteorder

Context
We should drop our dependency on the byteorder crate.

Fixed by PR #468.


GC/update scss readme

Update SCSS instructions to match function and file name changes.

Thanks for your contribution!
I'd leave this open until we have properly decided what prefixes (or, if any) we want to use at all, so we can change the documentation later on, as it leaves more parts open.
So, if we have gotten through the next release stages, you are welcomed to make a PR (or update this one) for the documentation!

@gcasalett My sincere apology for not getting to this sooner. We're revamping everything in the PR for 7.0.0 so the docs you're trying to merge won't be valid (and there seems to be a lot of commits associated with this PR that make it difficult to parse through).
Closing this in favor of the approach in https://github.com/mojotech/jeet/pull/505


Bug 2189727: external: fqdn should be persisted

donot change rgw fqdn to ip if provided,
As now the bucket class supports the
entry of fqdn

update crds with new description in EndpointAddress

(cherry picked from commit f66de7b9df94bdf02b6d38b1a9cb1e4e63fdda81)

Description of your changes:
Which issue is resolved by this Pull Request:
Resolves #
Checklist:

[ ] Commit Message Formatting: Commit titles and messages follow guidelines in the developer guide).
[ ] Skip Tests for Docs: If this is only a documentation change, add the label skip-ci on the PR.
[ ] Reviewed the developer guide on Submitting a Pull Request
[ ] Pending release notes updated with breaking and/or notable changes for the next minor release.
[ ] Documentation has been updated, if necessary.
[ ] Unit tests have been added, if necessary.
[ ] Integration tests have been added, if necessary.

The BZ appears only for 4.14, if the backport is needed we will need to clone the BZ for other releases and get it approved.

Moved it back to 4.12, as it was originally an issue opened for 4.12
And or 4.14 anyhow changes will be added

/bugzilla refresh

/approve
/lgtm


[AIRFLOW-1669] Fix Docker import

Dear Airflow maintainers,
We want to fix the Docker import. At the revert of AIRFLOW-1368 something went wrong. Currently master is not building. I've checked, and before AIRFLOW-1368 we've used docker-py (not docker) package. This package exposes the APIClient for the low-level docker communication.
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[x] My PR addresses the following Airflow JIRA issues and references them in the PR title. For example, "[AIRFLOW-XXX] My Airflow PR"

https://issues.apache.org/jira/browse/AIRFLOW-1669

Description

[x] Here are some details about my PR, including screenshots of any UI changes:

Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason:

Commits

[x] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Codecov Report

Merging #2653 into master will increase coverage by 0.09%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #2653      +/-   ##
==========================================
+ Coverage   71.75%   71.85%   +0.09%
==========================================
  Files         152      152
  Lines       11749    11749
==========================================
+ Hits         8431     8442      +11
+ Misses       3318     3307      -11

Impacted Files
Coverage Δ

airflow/operators/docker_operator.py
97.36% <100%> (ø)
:arrow_up:

airflow/jobs.py
78.07% <0%> (+0.45%)
:arrow_up:

airflow/utils/helpers.py
56.32% <0%> (+2.87%)
:arrow_up:

airflow/task_runner/bash_task_runner.py
100% <0%> (+6.66%)
:arrow_up:

Continue to review full report at Codecov.

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

FYI docker-py has been deprecated since November 2016 in favor of docker
https://github.com/docker/docker-py/commit/04e943798691ba2663b91eaedd8ae2410f016d2c

Thanks for mentioning. I did not work with the docker python packages, but the master branch was failing. We need to replace the docker-py with docker properly.


fileUrlToUrl breaks on 404

fileUrlToUrl function should be protected for nonexistent paths.

I hesitated about it... and decided to throw and to use it in a try-catch. Maybe it was a wrong choice. That is right that at least the function docs should mention it, and it does not yet. Why do you think that this function should not throw?

So, I decided to throw as the default behavior, but starting from 1.9.2, you can prevent that using a 3rd argument:
const translatedUrl = fileUrlToUrl(fileUrl, locale, { throwOnError: false })

It will return undefined instead of throwing an error.


Love new release but a seizure warning would be nice

whenever I play .webm files in the popup window it will switch from black to white quickly and this can easily cause seizures.
I suggest you fix this issue quickly.

Do you have a video illustrating the issue?
When I open a webm file on my end it's playing fine without any blinking during the video? 🤔


Bluetooth: Controller: CCM reads data before Radio stores them when DF enabled on PHY 1M

CCM during on-the-fly decryption of a received packet starts operation
when Radio triggers EVETNS_ADDRESS. In case there is possibility a
packet may include Constant Tone Extension, on-the-fly parsing of a
received packet for CTEInfo is enabled.
If there is a PHY 1M enabled the Radio stores received bits with a
delay, that is equal to time required to receive 3 bits. CCM TASKS_CRYPT,
related with packet decryption, should be delayed by the time the Radio
needs to store received data.
The commit provides changes required to delay start of the CCM
TASKS_CRYPT. It uses NRF_RADIO Bit counter feature. The Bit counter is
configured to trigger NRF_RADIO->EVENTS_BCMATCH on reception of 3rd bit.
The event is connected through PPI with CCM TASKS_CRYPT.
The PPI used is shared with Radio Rate override. That is possible because
direction finding feature is not allowed on PHY Coded and CCM needs a delay
only when used PHY 1M.
Fixes: https://github.com/zephyrproject-rtos/zephyr/issues/45883
Signed-off-by: Piotr Pryga<EMAIL_ADDRESS>

Fixed CI issue.


Emoji interface does not work in Touch Bar.

When the emoji button is pressed, the system only reports the recent emojis instead of a full list like the MacBook Pro Touch Bar.

This is what the emoji view should be like
http://i1.wp.com/geekirc.me/wp-content/uploads/2016/10/Touch-Bar-emoji.jpg

We do not make the content of the Touch Bar, this is controlled by macOS. Apple did not yet release the emoji viewer that they demonstrated during the keynote, so you'll have to wait for that.


Add docker-compose file to ease local deployment

Description
This PR adds a docker-compose.dev.yaml file which spins up a dev environment
Motivation
Eases local deployment
Changes:

docker-compose.dev.yaml added
Dockerfile split in 3 parts, vs 2 before, to have one suited for local development

Tests included/Docs Updated?

[ ] Included for each change/fix?
[ ] Passing? (Merge will not be approved unless this is checked)
[x] Docs updated?
[ ] New packages used/requires npm install?
[ ] Toggle added for new features?

@LAShemilt @minottic Should I merge this PR in to master?

Never mind, I just read the other PR. I will merge it and than fix it from master if needed


[script + doc] Update tar.bz2 mime type

Changes

Unify the content type of gzip compressed tars to application/x-gtar-compressed
Unify the content type of bzip2 compressed tars to application/x-bzip-compressed-tar
Add .tgz to useful_types because it being missing when .tar.gz was there annoyed to perfectionist in me

Reasoning
Unfortunately the MIME types used for compressed tars vary quite a lot.
Below this I am trying to detail the pros and cons of the various MIME types I found being used, as well as my reasoning for choosing the ones I ultimately chose.
I looked at the default mime.types files for Debian, Fedora, OpenBSD, and Apache.
I also just googled around for a while and looked at lots of projects, of which I remember far too few to list them here, to get a rough feeling for which MIME types are used how much.
I also looked at xdg-shared-mime-info to see what they use.
Finding projects containing their own tar.bz2 mappings was pretty challenging, so I don't have much data to base my usage guesses on.
I still tried my best regardless, but the result may not be perfect.
Gzip
application/gzip
Pros

The only actually IANA registered type
Used by Fedora

Cons

Does not give any information about the type of the compressed file, which some people argue is more important than the compression used.
Not very widely used for tgz and tar.gz files

application/x-gtar-compressed (Used in this PR)
Pros

Currently used(would't be a change, and thus has no potential to break things)
Used by Debian
Seems to be the most widely used and recognized from what I found(I didn't make a detailed statistic I could use as a source)

Cons

Does not specify the compression algorithm used

application/x-tgz
Pros

Compact
Very Precise

Cons

Not very widely used

application/x-compressed-tar
Pros

Used by XDG

Cons

Does not specify the compression algorithm
From what I found its not very widely used

Bzip2
application/x-bzip2
Pros

None?
This is implicitly used by Fedora and Apache, but I don't think that matters all that much if it isn't even explicit.

Cons

Not very widely used
Doesn't describe the format of the compressed data

application/x-gtar-compressed
Pros

Currently used by lighttpd(Thus wouldn't be a change that could cause breakage)

Cons

Does not describe the compression format used
I could not find any other project using it

application/x-bzip-compressed-tar (Used in this PR)
Pros

Recognized as an alias by XDG
The most widely used type, as far as I can tell

Cons

Does not specify the bzip version

application/x-bzip2-compressed-tar
Pros

The most precise type
Used by XDG

Cons

Not as widely used as application/x-bzip-compressed-tar

Related question and notice
Wiki Page
The mimetype.assign wiki page config sample contains a few minor issues related to compressed tars.
These aren't important enough for me to want to learn to use redmine and create an account to edit the lighttpd wiki because of it.
But I still thought I should mention them somewhere, so here they are.

.gz is above .tar.gz, causing .tar.gz files to be sent as application/x-gzip
.bz2 is above .tar.bz2, causing .tar.bz2 files to be sent as application/x-bzip
.bz2 uses the type application/x-bzip, despite all of the mime.types files I checked, which contain bz2 at all, using application/x-bzip2. Those are Fedora, Apache, and XDG. Lighttpd also uses application/x-bzip2 by default.
.gz uses the MIME type application/x-gzip despite the officially registered application/gzip type now being registered for quite a while, and being more widely supported as far as I can tell
.tgz and .tar.gz use the type application/x-tgz, which seems to be relatively uncommon as far as I can tell.

As a side note, this example already uses application/x-bzip-compressed-tar for bzip compressed tars.
Future PR
The perfectionist in me wanted to check all the default types in configfile.c against the Debian and Fedora mime.types files and add those who are missing from one or both of those to useful_types.
I held back on that, because it would be out of scope for this PR, but I wanted to ask a few things about this:

If I create a PR for that, would that have any chance of being accepted? It would likely only add single-digit mappings.
If I do that, should I add those entries that one distro is missing, or only those both are missing?
Is there any other distro I should check against as well?

Thanks for your attention to detail.
Some feedback:
You use the word "perfectionist" numerous times in your post, yet I am not sure you understand what it means.
If there is something that has a single correct answer and you can point me to the specification, then I will make those changes in lighttpd, if lighttpd is not already doing that single, right thing.
If that is not the case, then "perfection" is at best a misleading way to describe your post.  Maybe you meant "completionist"?

Unfortunately the MIME types used for compressed tars vary quite a lot.

Yep.   So why should I make any changes?  (Serious question.)  Do you have documentation to show that other choices provide better interoperability with existing (historical and current) clients?  You have referenced XDG.
BTW, regarding tests/lighttpd.conf, I'll probably remove the use of mimetype.assign

The perfectionist in me wanted to check all the default types in configfile.c against the Debian and Fedora mime.types files and add those who are missing from one or both of those to useful_types.

The builtin-list of mime-types in configfile.c are not intended to be exhaustive and complete.  They are intended to be common media types for web usage, as documented in the comment above the config_mimetypes_default()
https://github.com/lighttpd/lighttpd1.4/blob/master/src/configfile.c#L947
/* common media types for the web
 *
 * references:
 *
 * lighttpd doc/scripts/create-mime.pl
 * https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types
 * https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types
 * https://docs.w3cub.com/http/basics_of_http/mime_types
 * http://www.iana.org/assignments/media-types/media-types.xhtml
 * https://salsa.debian.org/debian/media-types/-/blob/master/mime.types
 * https://src.fedoraproject.org/rpms/mailcap/tree/rawhide
 *   https://pagure.io/mailcap/blob/master/f/mime.types
 *
 */

If you are suggesting changes, then please document how your suggestions differ from the reference above, and provide references why your suggestions are better.  Specifically, please highlight and provide references documenting where your choices provide better interoperability with existing (historical and current) clients.  (I did not notice any primary sources, though you do provide references to XDG.)
I am not an authority on mime-types and will not engage in any sort of debate on the matter.  I do not claim that my choices are the best, though I have tried to make a solid attempt and have provided references which informed me.

bzip2 compression for web pages from web servers never was a popular choice, and has since been supplanted by brotli and zstd as alternatives to gzip.  Why should I make any changes for bzip2?  bzip2 support in lighttpd mod_deflate is disabled by default and must be selected during build time if still desired.

mimetype.assign wiki page config sample is old, created back in 2007.

.gz is above .tar.gz, causing .tar.gz files to be sent as application/x-gzip
.bz2 is above .tar.bz2, causing .tar.bz2 files to be sent as application/x-bzip

These statements are false.  Did you test this?  Those statements may have been true prior to lighttpd 1.4.46 (released in 2017) with commit:0cc7556ae  The sample has more than 16 entries, and so longest extension match is what is used since lighttpd 1.4.46.

.bz2 uses the type application/x-bzip, despite all of the mime.types files I checked, which contain bz2 at all, using application/x-bzip2. Those are Fedora, Apache, and XDG. Lighttpd also uses application/x-bzip2 by default.

Maybe I'll change that.  Or maybe I'll remove bz2 from the sample config on that wiki page.

.gz uses the MIME type application/x-gzip despite the officially registered application/gzip type now being registered for quite a while, and being more widely supported as far as I can tell
.tgz and .tar.gz use the type application/x-tgz, which seems to be relatively uncommon as far as I can tell.

As noted above, that part of the wiki page was written back in 2007, when the type was application/x-gzip.  I may simply remove most of the sample config in favor of a simpler example.

I updated mimetype.assign wiki page config sample to remove the longer sample mimetype.assign and I updated the wiki page to note that since lighttpd 1.4.46, the in-order matching applies only if mimetype.assign contains 16 or fewer entries.

Future PR
The perfectionist in me wanted to check all the default types in configfile.c against the Debian and Fedora mime.types files and add those who are missing from one or both of those to useful_types. I held back on that, because it would be out of scope for this PR, but I wanted to ask a few things about this:
1. If I create a PR for that, would that have any chance of being accepted? It would likely only add single-digit mappings.

2. If I do that, should I add those entries that one distro is missing, or only those both are missing?

3. Is there any other distro I should check against as well?

If I create a PR for that, would that have any chance of being accepted?

Short answer: no.  As I wrote above, the builtin-list of mime-types in configfile.c are not intended to be exhaustive and complete.  There needs to be a more convincing argument than "completionist" to add entries to the default mimetype.assign in src/configfile.c

Fedora /etc/mime.types uses application/gzip for gz and tgz, so that is why it is so in lighttpd doc/config/conf.d/mime.conf.  Since the built-in default for mimetype.assign in src/configfile.c (which I wrote) defines .tgz, I'll accept that addition to create-mime.conf.pl.
+".tgz"     => "application/x-gtar-compressed",

I will accept this change to create-mime.conf.pl since the original lines appear to be a typo and date back to 2014 according to the git history, and you have referenced that XDG recognizes application/x-bzip-compressed-tar.
-	".tbz"     => "application/x-gtar-compressed",
-	".tar.bz2" => "application/x-gtar-compressed",
+	".tbz"     => "application/x-bzip-compressed-tar",
+	".tar.bz2" => "application/x-bzip-compressed-tar",

Please update this PR to remove changes to tests/lighttpd.conf

You use the word "perfectionist" numerous times in your post, yet I am not sure you understand what it means.

I am aware that "perfectionist" is not the 100% correct word, but since I wasn't able to remember the word I actually meant, still don't, and couldn't easily find it by googling, this was the closest I could get ;)

If you are suggesting changes, then please document how your suggestions differ from the reference above

I believe you misunderstood me here.
I did not mean to suggest any changes to the c code.
What I meant is roughly "Since those types referenced in the c code are already acknowledged as common by lighttpd I want to add those of them that Debian and/or Fedora don't recognize to the useful_types mappings in the pearl script".

These statements are false. Did you test this? Those statements may have been true prior to lighttpd 1.4.46 (released in 2017) with commit:0cc7556ae The sample has more than 16 entries, and so longest extension match is what is used since lighttpd 1.4.46.

My apologies, I was not aware of there being a different matching logic for longer configs, and only tested it with a subset of the example config.

Short answer: no. As I wrote above, the builtin-list of mime-types in configfile.c are not intended to be exhaustive and complete. There needs to be a more convincing argument than "completionist" to add entries to the default mimetype.assign in src/configfile.c

As I already mentioned, I did not mean to suggest adding values to the c code, sorry about that.

Please update this PR to remove changes to tests/lighttpd.conf

Of course.
I'll do that later today when I'm on my PC again.

I rebased this PR on top of the current changes to master.
If you'd like me to either regenerate the file doc/config/conf.d/mime.conf, or get rid of my changes to it please let me know :)

If you'd like me to either regenerate the file doc/config/conf.d/mime.conf, or get rid of my changes to it please let me know :)

Please remove those changes from the PR.  The first line of that file indicates that it is generated from create-mime.conf.pl.  Periodically, I manually regenerate it on a Fedora system.   On the other hand, you manually edited the file in your patch.  Please remove those changes from this PR.

What I meant is roughly "Since those types referenced in the c code are already acknowledged as common by lighttpd I want to add those of them that Debian and/or Fedora don't recognize to the useful_types mappings in the pearl script".
Edit: The reasoning behind this, what I called me being a perfectionist, is "If the default config supports this, shouldn't the default generation mime config do so as well?".

Other than for historical reasons, the entries in %useful contain some entries that might be useful to web servers and might not have extensions (and so would not be listed in /etc/mime.types).  No, this list in create-mime.conf.pl -- a Perl script, not "pearl" as you had written -- should not be expanded without proper reasoning, and "completionist" is an insufficient reason.

You use the word "perfectionist" numerous times in your post, yet I am not sure you understand what it means.

I am aware that "perfectionist" is not the 100% correct word, but since I wasn't able to remember the word I actually meant, still don't, and couldn't easily find it by googling, this was the closest I could get ;)

Please take the feedback that your prose is misleading and distracting from your message.  It also is severely discrediting to your abilities.  None of what you wrote or your behavior describes a perfectionist, so if you do understand what the word means, you should not have used the word even once to describe yourself or your actions in this PR.

a Perl script, not "pearl" as you had written

I'm aware, I wrote that comment on my phone and didn't notice what auto-correct did there.

None of what you wrote or your behavior describes a perfectionist

I googled this again, and still do not agree with this statement.
However I have no desire to argue over the exact meaning of a word which wasn't even central to the message I meant to convey.
Nevermind, after reading everything again to check for errors, I am now doing so below.

Please remove those changes from the PR. The first line of that file indicates that it is generated from create-mime.conf.pl. Periodically, I manually regenerate it on a Fedora system. On the other hand, you manually edited the file in your patch. Please remove those changes from this PR.

I read that header, which is why I asked whether I should regenerate the file, or get rid of my changes.
I will edit my commit again to get rid of my changes as well.

and "completionist" is an insufficient reason.

Looking at multiple dictionary definitions of "completionist" I do not agree at all that this is what applies to this situation.
I may be a completionist in some cases as well, but that does not apply here.
After all my intention was never "to complete the collection to contain everything related", but "to ensure parity with another system as a minimal baseline".
At this point I also wish to note that me being the way I am, to avoid using any specific wording, was only my motivation.
At no point did I intend to make that the reason why this change should be accepted, only why I would possibly spend the effort on a seemingly meaningless task.
My reasoning for why this change might be worth including was instead, that I thought a script that generates a replacement for the built-in defaults generating a config that reduces support in some aspect, on a major distro, might be considered less than ideal.
Anyway, I didn't mean to write that much about the exact meaning of words.
But I just got kind of annoyed when someone criticizing me over the meaning of a word, then uses a word to describe me which I not only consider incorrect, but which also seems to not be applicable to the current situation at all, if I understand the dictionary definition correctly.
Oh, one last note: By perfectionist I do not mean "One who believes being perfect as a person is achievable", but "One who gets annoyed at even minor imperfections".
However from looking at various dictionaries the second definition does not seem to be any less correct or established than the first.
And as I said, that is not the exact word I meant to use, but googling for a few minutes did not result in me finding the word I meant to use, so I believed this to be a close enough fit.

I updated the commit in this PR to no longer contain the changes to doc/config/conf.d/mime.conf.

If that is not the case, then "perfection" is at best a misleading way to describe your post. Maybe you meant "completionist"?

Despite having read your initial comment multiple times, I seem to have failed to respond to this part.
I wish to clarify some things I see here, which weren't what I meant to convey.
By saying something annoys the perfectionist in me, I did not mean to imply that I, anything I do, or this PR are perfect.
In fact I never had the intention to describe this PR as "perfection".
What I meant to convey instead is that the perceived inconsistencies(.tar.gz being mentioned, but .tgz not, the default config supporting file types that the generated config doesn't on Debian or Fedora, and stuff like that) are things I perceive as "imperfections", and which annoy me a lot more than they do other people.
This is how people in most communities I spent significant amounts of time in seemed to have used wording like "I'm a perfectionist about these things", and so I, possibly incorrectly, assumed that this was what would be conveyed when I used similar wording.

I wrote:

Please take the feedback that your prose is misleading and distracting from your message. It also is severely discrediting to your abilities.

Unfortunately, you missed the message and come across to me as extremely immature trying to use lots of words to justify your previous words.  Sometimes you should just take the note.
I wrote that I will accept the suggested to changes to create-mime.conf.pl and provided two reasons why:

.tgz is part of src/configfile.c mimetypes_default which I wrote
The mime type listed in create-mime.conf.pl for .tbz and .tar.bz2 appears to me to be a typo from 2014.

As you noted in your original post, Fedora /etc/mime.types provides .tgz mapping to application/gzip
As I regenerate doc/config/conf.d/mime.conf using create-mime.conf.pl on a Fedora system, the value from Fedora /etc/mime.types is what used for .tgz in doc/config/conf.d/mime.conf, not the .tgz mapping added to %useful in this PR.

Thanks for accepting this PR.


Place holder: 104 support

An an engineer
I want to configure 104 adresses in 61850 SCL files
So I can manage 104 and the IEC61850 mapping in a single file standardised.
Background:
104 is protocol that is in use in many utilities, the result file can be used to configure a 61850 to 104 gateway (e.g. with https://www.lfenergy.org/projects/fledgepower/ ).
How to do so can be found here: IEC/TS 61850-80-1:2016 Annex A
An idea would be to make this a plug-in to only enable for interested users.
Open questions:
What fields can be configured?
How does the engineering workflow run?

It is implemented!


broken link https://qiskit.org/documentation/_autodoc/qiskit.mapper.html

Informations

Qiskit version:
Python version:
Operating system:

What is the current behavior?
Steps to reproduce the problem
What is the expected behavior?
Suggested solutions

this is not working so there is a bug in the code.

Actually seems a combination of two things:

the actual URL may have changed slightly
we are not rendering documentation for private modules (which is actually related to long-standing https://github.com/Qiskit/qiskit-terra/issues/1206) currently - that seems like the bug


Tivimate/VNC

Im getting a parsing error when using Tivimate. When I use VLC I only get a splash screen for upcoming event. Any settings I need to take a look that could need changed?
Thanks

Does it show any errors in the log?

Closing this until there is more detail


question: how to hide "settings" in shared environment

Is it possible to hide the settings area for when Flame is accessible publicly?

There's no option for that, but you can tweak the CSS in order to hide the button :
.Home_SettingsButton__DrUPz {
    display: none !important;
}

You'll still be able to access the app through : https://flame.your.domain/settings/


Self-referenced edge as an arrow around the node

Please describe the feature that you want to propose
at the moment if i want to add an edge connection for the same node( i.e. the connection starts and ends in the same node) it displays this connection as a plain line. how to make this connection go around the node for better visual perception?

Moritz did an example for this sort of case once.
Here's the sandbox.


TypeError: DeconzService.Battery is not a constructor with v1.0.14

Hi there,
after the update to v1.0.14 I got a type error with an accessory.

With the previous version everything works.

I'm having the same issue on version 1.0.14

Same here. Went back to 1.0.13 for now, just to avoid any potential issues.

Which accessory is this?  Please provide the debug dump file.

Which accessory is this? Please provide the debug dump file.
Probably caused when deCONZ reports config.battery as null.

I can't find out which deievice causes the issue, but here i provide the dump file:
homebridge-deconz.json.gz

Thanks.  No null values for config.battery, but I do see the code fails to recognise that a device has a battery when it only has one resource, which is the case for your wireless switches.

Could you please try beta v1.0.15-0?

Looks good, no errors or warnings anymore with v1.0.15-1.
Thank you very much for your work and support!

Published v1.0.15 and unpublished v1.0.14.

Works for me as well, thanks for the fast fix 🙏🏻.


rearrange spellbook

ive seen a few requests to be able to rearrange the spellbook, to which people reply that they cant see a practical use for it or that its a duplicate post, however please hear me out, i think it would be an extremely useful feature for things such as stun alching, both icons could be placed next to each other at the top left of the spellbook, or when doing agility you could place the high alch spell on the left of the spellbook meaning less distance to move the mouse across the screen, making it easier to do.

https://github.com/runelite/runelite/wiki/Rejected-or-Rolled-Back-Features
Spellbook Re-ordering and Hiding: Other 3rd party clients do not have these features and it failed a Jagex poll (see #1038)

Yeah, its not like it would not be nice, we simply dont want to add it at the moment.