Not compatible with 75.0.0-beta.6 (Android)

After updating to the specified version the extension became incompatible.
Play Store, Firefox Beta program.

At the moment only a few selected add-ons from the "Recommended Extensions" programme are allowed in the rewritten version of Firefox for Android, and somewhat ironically this extension was dropped from that programme because at the time, addons.mozilla.org apparently had some technical difficulties with supporting Android-only extensions as "Recommended extensions".

Is this just a temporary Beta thing or will it also affect the stable release? I can survive not having this in Beta (I will just switch to stable) although ironically, I installed it specifically to report and give feedback on pre-release bugs not to be sabotaged by Mozilla with extension whitelists..

Given that this is a simple content script without any UI, I wouldn't expect any major incompatibilities, though I will try to see if there's a way to at least temporarily load the add-on for testing purposes in Nightly or something like that to check it out.

Is this just a temporary Beta thing or will it also affect the stable release?

The latest official announcement was this one, so no idea - I'd be pleasantly surprised if they get to the stage of general add-on availability before pushing the rewrite to the Release channel, but it's equally not inconceivable that general add-on support will be among the features still missing when the transition happens.

If someone really need a workaround, then this add-on functionality can probably be converted to uBO scriptlet. Simpler version based on "Disable Page Visibility API":
https://gist.githubusercontent.com/gwarser/3b47b61863bffcfebe4498c77b2301cd/raw/disable-pageview-api.js

Add above link to userResourcesLocation uBO advanced settings and add youtube.com##+js(disable-pageview-api) filter to "My filters".

(Though that doesn't help against Youtube stopping playback anyway if there's no detected user activity within a certain time frame)

This link to the ublock script is broken.  Could someone paste it here?
I have to keep an old version of Fennec installed just so I can use this add on..

This link to the ublock script is broken.

How?
Host it somewhere else:
/// disable-pageview-api.js
// Based on: https://addons.mozilla.org/firefox/addon/disable-page-visibility/
// License:  http://www.opensource.org/licenses/bsd-license.php
(function(){
// visibilitychange events are captured and stopped
document.addEventListener("visibilitychange", function(e) {
    e.stopImmediatePropagation();
}, true);
// document.visibilityState always returns false
Object.defineProperty(Document.prototype, "hidden", {
    get: function hidden() {
        return false;
    },
    enumerable: true,
    configurable: true
});
// document.visibilityState always returns "visible"
Object.defineProperty(Document.prototype, "visibilityState", {
    get: function visibilityState() {
        return "visible";
    },
    enumerable: true,
    configurable: true
});
})()

At the moment only a few selected add-ons from the "Recommended Extensions" programme are allowed in the rewritten version of Firefox for Android, and somewhat ironically this extension was dropped from that programme because at the time, addons.mozilla.org apparently had some technical difficulties with supporting Android-only extensions as "Recommended extensions".

Have you considered filing a bug in the fenix repo? If it's true that this used to be a recommended extension and was later only dropped for technical reasons, perhaps they'd consider making it one of the whitelisted extensions, especially given the minimal work required to support it.

I have opened an issue 2 months ago in fenix : #10366, they didn't close it and I think that maybe within 1 month, they will decide how to solve the problem about "video play in the background", even if they don't use this Add-on

Unfortunately even with this add-on forcibly installed via web-ext it seems like YouTube still periodically stops when in the background. Seems likely that mozilla-mobile/fenix#9691 is the culprit.

Without this extension, I will use Edge or Chrome.

@aroskuski any instructions to force install this on mobile?

@cen1 web-ext run can temporarily install it over USB debugging using the --target=firefox-android flag, but it will disappear the next time Firefox has to restart (which can be pretty often on Android).  It's really not super useful aside from doing some quick tethered testing.  You can find some documentation on using web-ext here if you really want to to try, but I suspect you'll probably want to wait for a slightly more permanent solution.

If someone really need a workaround, then this add-on functionality can probably be converted to uBO scriptlet. Simpler version based on "Disable Page Visibility API":
https://gist.githubusercontent.com/gwarser/3b47b61863bffcfebe4498c77b2301cd/raw/disable-pageview-api.js

Add above link to userResourcesLocation uBO advanced settings and add youtube.com##+js(disable-pageview-api) filter to "My filters".

This seems to work for about 60 seconds. I'm wondering if my settings are refreshing the page every minute, or if YouTube is set to reload the page after 60 seconds to keep this from working. It would be a way to push people to YouTube Red.

If someone really need a workaround, then this add-on functionality can probably be converted to uBO scriptlet. Simpler version based on "Disable Page Visibility API":
https://gist.githubusercontent.com/gwarser/3b47b61863bffcfebe4498c77b2301cd/raw/disable-pageview-api.js

Add above link to userResourcesLocation uBO advanced settings and add youtube.com##+js(disable-pageview-api) filter to "My filters".

This seems to work for about 60 seconds. I'm wondering if my settings are refreshing the page every minute, or if YouTube is set to reload the page after 60 seconds to keep this from working. It would be a way to push people to YouTube Red.

As I mentioned above, seems like a pretty good chance this is a manifestation of mozilla-mobile/fenix#9691

If someone really need a workaround, then this add-on functionality can probably be converted to uBO scriptlet. Simpler version based on "Disable Page Visibility API":
https://gist.githubusercontent.com/gwarser/3b47b61863bffcfebe4498c77b2301cd/raw/disable-pageview-api.js

Add above link to userResourcesLocation uBO advanced settings and add youtube.com##+js(disable-pageview-api) filter to "My filters".

This seems to work for about 60 seconds. I'm wondering if my settings are refreshing the page every minute, or if YouTube is set to reload the page after 60 seconds to keep this from working. It would be a way to push people to YouTube Red.

Found a workaround using Firefox beta, access about:config and change "dom.suspend_inactive.enabled" to false

Thanks! The combination of the ublock filter and the about:config field worked for me.  Youtube works for an hour with the screen off.  I can finally uninstall Fennec :)

Now apparently officially installable on Nightly (I had suggested to hold off on that until the Firefox could be resolved so users wouldn't end up with an effectively still broken add-on, but whatever – at least this issue is out of the way I guess)


UNC: Unable to Set-Location \

Steps to reproduce
Set-Location \\stallbacka\home\config
# works okay -- $PWD is now \\stallbacka\home\config
Set-Location \

Expected behavior
$PWD should report \\stallbacka\home (the UNC root)

Actual behavior
Set-Location: Cannot find path 'Microsoft.PowerShell.Core\FileSystem::' because it does not exist.

Environment data

Name                           Value
----                           -----
PSVersion                      7.0.3
PSEdition                      Core
GitCommitId                    7.0.3
OS                             Microsoft Windows 10.0.19041
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Interestingly the builtin function cd\ does seem to work. So clearly this is possible, I'm just unsure why the cmdlet itself is not doing the same expected thing here.

I take it back, Set-Location \ is working just fine (the builtin function I mentioned just calls that directly).
Can you try to reproduce on the 7.2 RC version?

The newest prerelease I could find was 7.1.0-rc.2.
Same issue.
I also tried to not import any packages in my $profile. And I tried this on my laptop.

I can only replicate this once I set the location to a UNC path and then \. It sounds like \ has special logic to mean the root of the current "drive" and you cannot connect to \\server or just \\ as they don't exist/not valid.

"I can only replicate this once I set the location to a UNC path and then "
That was kind of the point?
If you set a UNC path as working directory, you can no longer cd .

Thanks for clarifying! Looks like an issue with how the filesystem provider determines the root directory from the current location for UNC paths, then.

Thank you.
I suspect it affects other operations. While moving a bunch of files, I accidentally did move something.ext \ and the file wound up in my home directory rather than the root. But I have not been able to reproduce that. Will file a separate issue once I recall the circumstances. (I was probably targetting a folder off root)

That was kind of the point?

Just merely clarifying that this was key to replicating the issue :) venxx32 was having troubles trying to replicate it and thought it best to mention the UNC part of your example was important.

I can replicate the issue after doing the following:
Get-Item c:\Windows | Set-Location

This was part of a pipeline I have that at the end needs to set to Set-Location to the directory selected.

Issue still exists in 7.4.0.  For some reason, Set-Location treats the Path from the pipeline differently.
This works fine:

This does not:


How use "runFAST.m"

Hello everyone,
I don't quite understand how to use the matlab runFAST.m function.
I would like to know how to modify which parameters to make it work properly.
This is the source code:
function status = runFAST(FASTfilenames, FASTexe, varargin)
% Run a set of FAST simulations using FAST exe.
%
% TODO , parallelization...
%
% INPUTS
%  - FASTfilenames: list of fullpath (relative or absolute) to fst flies
%  - FASTexe:       fullpath (relative or absolute) to an openfast executable
%
% OPTIONAL INPUTS:
%  - varargin is a set of ('key', value) pairs.
%            Look at opts below for the different options, and default values.
%
% OUPUTS:
%  - status: array of status for each simulation
% --- Optional arguments
OptsFields={'flag',};
opts=struct();
% Default values
opts.flag = ''   ; % Extra flag passed as command line argument
% Values input by users % NOTE: inputParser not available in Octave
if mod(length(varargin),2)~=0; error('Varargin should have an even number of values, for key/values pairs'); end
for iVar = 1:2:length(varargin)
i = find( strcmp( OptsFields, varargin{iVar}) == 1);
if ~isempty(i)
opts.(OptsFields{i}) = varargin{iVar + 1};
else
warning('Optional key %s not supported by function %s',varargin{iVar},mfilename)
end
end
% --- Inputs sanity
if ispc()
FASTexe = strrep(FASTexe,'/','');
end
status=zeros(1,length(FASTfilenames));
% --- Creating a list of commands
commands=cell(1,length(FASTfilenames));
for isim = 1:length(FASTfilenames)
FASTfile = FASTfilenames{isim};
if ispc()
FASTfile = strrep(FASTfile,'/','');
end
sCmd= [FASTexe ' ' opts.flag ' ' FASTfile];
commands{isim}=sCmd;
end
% --- Running
status = runCommands(commands);
Thank you for your answers.

Hi,
Make sure you can run OpenFAST from a regular terminal before trying this function.
This matlab function is simply attempting to launch a set of system calls. You can see an example here: https://github.com/OpenFAST/matlab-toolbox/blob/main/Utilities/examples/runFAST_example.m.
It is possible that this function does not work well on all platforms.

Hi, Make sure you can run OpenFAST from a regular terminal before trying this function. This matlab function is simply attempting to launch a set of system calls. You can see an example here: https://github.com/OpenFAST/matlab-toolbox/blob/main/Utilities/examples/runFAST_example.m. It is possible that this function does not work well on all platforms.

Thank you very much!This issue has been resolved. But when I run 'runFAST.m', I get this error:
"The expression: u(strmatch('Azimuth',OutList))
in 'ROSCO/Cyclic Pitch controller/extract Azimuth'
has a syntax error
The expression: u(strmatch('BldPitch1',OutList))
in 'ROSCO/Extract Signals/Extract BldPitch1'
has a syntax error"
Here is the source code for  'runFAST.m':
%% runFAST.m
% This script will run a single FAST simulation with the ROSCO Simulink
% controller.  A more in depth version can be found at https://github.com/dzalkind/matlab-toolbox/tree/master/Simulations
clear;
[this_dir,~,~] = fileparts(mfilename('fullpath'));
% Compile FAST for use with simulink & mex using openfast docs
fast.FAST_SFuncDir     = '/Users/dzalkind/Tools/openfast-sim/glue-codes/simulink/src';  %%%% NEED FOR SIMULINK
fast.FAST_InputFile    = '5MW_Land_Simulink.fst';   % FAST input file (ext=.fst)
fast.FAST_directory    = '/Users/dzalkind/Tools/ROSCO/Test_Cases/5MW_Land_Simulink';   % Path to fst directory files
% Simulink Parameters
% Model
simu.SimModel           = fullfile(this_dir,'Simulink','ROSCO');
% Script for loading parameters
simu.ParamScript        = fullfile(this_dir,'Utilities','load_ROSCO_params');
%% Simulink Setup
[ControlScriptPath,ControScript] = fileparts(simu.ParamScript);
addpath(ControlScriptPath);
addpath(fast.FAST_SFuncDir);
addpath('Utilities')
%% Read FAST Files & Load ROSCO Params from DISCON.IN
[Param,Cx] = ReadWrite_FAST(fast);
% Simulation Parameters
simu.TMax   = Param.FP.Val{contains(Param.FP.Label,'TMax')};
simu.dt   = Param.FP.Val{contains(Param.FP.Label,'DT')};
[R,F] = feval(ControScript,Param,simu);
%% Premake OutList for Simulink
OutList = {'Time'};
OutList = [OutList;
Param.IWP.OutList;
Param.EDP.OutList;
Param.ADP.OutList;
Param.SvDP.OutList;
];
for iOut = 2:length(OutList)
OutList{iOut} = OutList{iOut}(2:end-1); %strip "s
end
%% Exectute FAST
% Using Simulink/S_Func
FAST_InputFileName = [fast.FAST_directory,filesep,fast.FAST_InputFile];
TMax               = simu.TMax;
SimulinkModel = simu.SimModel;
Out         = sim(SimulinkModel, 'StopTime', num2str(simu.TMax));
sigsOut     = get(Out,'sigsOut');   %internal control signals
%% Get OutData
SFuncOutStr = '.SFunc';
% Try text first, then binary
[OutData,OutList] = ReadFASTtext([fast.FAST_directory,filesep,fast.FAST_InputFile(1:end-4),SFuncOutStr,'.out']);
if isempty(OutData)
[OutData,OutList] = ReadFASTbinary([fast.FAST_directory,filesep,fast.FAST_InputFile(1:end-4),SFuncOutStr,'.outb']);
end
% Dump data to structure
for i = 1:length(OutList)
simout.(OutList{i}) = OutData(:,i);
end
%% Plot
Pl_FastPlots(simout)
I want to know how to solve it.Thank you for your answers!

Dear @lqw075,
Are output parameters Azimuth and BlPitch1 included in your OutList?  If not, you could add them to the OutListin the ElastoDyn input file.
Best regards,

Dear @lqw075,
Are output parameters Azimuth and BlPitch1 included in your OutList? If not, you could add them to the OutListin the ElastoDyn input file.
Best regards,

Thanks for your reply！
Yes, I checked. They're in the OutList.After modifying the other errors as you see fit, the program runs successfully.But a lot of warnings pop up. I wonder how much impact they have.These warnings can be broadly divided into three categories:
Firstly:
"'input port 1' of 'ROSCO/BldPitch Controller/Mux' is not connected"
Secondly:
"If the inport ROSCO/Cyclic Pitch controller/1P Cyclic Pitch Controller1/PI - Q/Mq of subsystem 'ROSCO/Cyclic Pitch
controller/1P Cyclic Pitch Controller1/PI - Q' involves direct feedback, then an algebraic loop exists, which Simulink
cannot remove. To avoid this warning, consider clearing the 'Minimize algebraic loop occurrences' parameter of the subsystem
or set the Algebraic loop diagnostic to 'none' in the Diagnostics tab of the Configuration Parameters dialog. "
Thirdly:
"FAST_Solution:CalcOutputs_And_SolveForInputs:SolveOption2:RotCalcOutput:BEMT_CalcOutput(node 3, blade
1):UA_CalcOutput:UA_BlendSteady:Temporarily turning off UA due to high angle of attack or low relative velocity. This
warning will not be repeated though the condition may persist. "
Best regards!

Dear @lqw075,
I can't comment on the ROSCO warnings as I'm not familiar with this Simulink model.
Regarding the unsteady airfoil aerodynamics (UA) warning, UA will be disabled if the instantaneous local angle of attack exceeds the value of UACutout specified in the airfoil data table.
Best regards,

Dear @lqw075,
Are output parameters Azimuth and BlPitch1 included in your OutList? If not, you could add them to the OutListin the ElastoDyn input file.
Best regards,

Thanks for your reply！
I have a new problem when I run program “IEA-15-240-RWT-UMaineSemi.fst” in MATLAB.The controller version is "https://github.com/NREL/ROSCO/releases/tag/v2.5.0".This is the source code:
%% runFAST.m
% This script will run a single FAST simulation with the ROSCO Simulink
% controller.  A more in depth version can be found at https://github.com/dzalkind/matlab-toolbox/tree/master/Simulations
clear;
[this_dir,~,~] = fileparts(mfilename('fullpath'));
% Compile FAST for use with simulink & mex using openfast docs
fast.FAST_SFuncDir     ='E:\OPENFAST\IEA-15-240-RWT-1.1.2\ROSCO-2.5.0\ROSCO-2.5.0\Test_Cases\IEA-15-240-RWT-UMaineSemi\f_s'; % '/Users/dzalkind/Tools/openfast-sim/glue-codes/simulink/src';  %%%% NEED FOR SIMULINK
fast.FAST_InputFile    = 'IEA-15-240-RWT-UMaineSemi.fst'; %'5MW_Land_Simulink.fst';   % FAST input file (ext=.fst)
fast.FAST_directory    = 'E:\OPENFAST\IEA-15-240-RWT-1.1.2\ROSCO-2.5.0\ROSCO-2.5.0\Test_Cases\IEA-15-240-RWT-UMaineSemi';%'/Users/dzalkind/Tools/ROSCO/Test_Cases/5MW_Land_Simulink';   % Path to fst directory files
% Simulink Parameters
% Model
%simu.SimModel           = fullfile(this_dir,'Simulink','ROSCO');
simu.SimModel           = 'E:\OPENFAST\IEA-15-240-RWT-1.1.2\ROSCO-2.5.0\ROSCO-2.5.0\Matlab_Toolbox\Simulink\ROSCO';
% Script for loading parameters
%simu.ParamScript        = fullfile(this_dir,'Utilities','load_ROSCO_params');
simu.ParamScript        = 'E:\OPENFAST\IEA-15-240-RWT-1.1.2\ROSCO-2.5.0\ROSCO-2.5.0\Matlab_Toolbox\Utilities\load_ROSCO_params';
%% Simulink Setup
[ControlScriptPath,ControScript] = fileparts(simu.ParamScript);
addpath(ControlScriptPath);
addpath(fast.FAST_SFuncDir);
addpath('Utilities')
%% Read FAST Files & Load ROSCO Params from DISCON.IN
[Param,Cx] = ReadWrite_FAST(fast);
% Simulation Parameters
simu.TMax   = Param.FP.Val{contains(Param.FP.Label,'TMax')};
simu.dt   = Param.FP.Val{contains(Param.FP.Label,'DT')};
[R,F] = feval(ControScript,Param,simu);
%% Premake OutList for Simulink
OutList = {'Time'};
OutList = [OutList;
Param.IWP.OutList;
Param.EDP.OutList;
Param.ADP.OutList;
Param.SvDP.OutList;
];
for iOut = 2:length(OutList)
OutList{iOut} = OutList{iOut}(2:end-1); %strip "s
end
%% Exectute FAST
% Using Simulink/S_Func
FAST_InputFileName = [fast.FAST_directory,filesep,fast.FAST_InputFile];
TMax               = simu.TMax;
SimulinkModel = simu.SimModel;
Out         = sim(SimulinkModel, 'StopTime', num2str(simu.TMax));
sigsOut     = get(Out,'sigsOut');   %internal control signals
%% Get OutData
SFuncOutStr = '.SFunc';
% Try text first, then binary
[OutData,OutList] = ReadFASTtext([fast.FAST_directory,filesep,fast.FAST_InputFile(1:end-4),SFuncOutStr,'.out']);
if isempty(OutData)
[OutData,OutList] = ReadFASTbinary([fast.FAST_directory,filesep,fast.FAST_InputFile(1:end-4),SFuncOutStr,'.outb']);
end
% Dump data to structure
for i = 1:length(OutList)
simout.(OutList{i}) = OutData(:,i);
end
%% Plot
Pl_FastPlots(simout)
Here are the errors:
The expression: u(strmatch('Azimuth',OutList))
in 'ROSCO/Cyclic Pitch controller/extract Azimuth'
has a syntax error
The expression: u(strmatch('BldPitch1',OutList))
in 'ROSCO/Extract Signals/Extract BldPitch1'
has a syntax error
But I checked. They were in the  OutListin of ElastoDyn input file.I would like  to know how to solve this problem.
Best regards,

Hi,
A similar question has been discussed here: https://github.com/NREL/ROSCO/issues/231
I suspect the issue lies in the around %% Premake OutList for Simulink.  You could check that list in Matlab before Simulink is called..  Unfortunately, it's difficult for us to support this Matlab implementation and the old versions of the ROSCO controller.
Best, Dan

Hi,
A similar question has been discussed here: NREL/ROSCO#231
I suspect the issue lies in the around %% Premake OutList for Simulink. You could check that list in Matlab before Simulink is called.. Unfortunately, it's difficult for us to support this Matlab implementation and the old versions of the ROSCO controller.
Best, Dan

Thanks for your reply! The problem has been solved.
change this
_%% Premake OutList for Simulink
OutList = {'Time'};
OutList = [OutList;
Param.IWP.OutList;
Param.EDP.OutList;
Param.ADP.OutList;
Param.SvDP.OutList;
];
for iOut = 2:length(OutList)
OutList{iOut} = OutList{iOut}(2:end-1); %strip "s
end_
to this
_%% Premake OutList for Simulink
OutList= {'Time'};
OutList2 = {'Time'};
OutList2 = [OutList2;
Param.IWP.OutList;
Param.EDP.OutList;
Param.ADP.OutList;
Param.SvDP.OutList;
];
for iOut = 2:length(OutList2)
OutList = [OutList;OutList2{iOut}(1:end)]; %strip "s
end
for iOut2 = 1:length(OutList)
OutList{iOut2}=strrep(OutList{iOut2},'"','');
end_


Patch seo meta

Generate metadata on category pages
Replace old template tags in markdown

Hello @justinwhall,Thanks again for the PR! We appreciate your contribution and look forward to                                              continued collaboration. Thanks!                                             Team SendGrid DX


Update: astro-syntax.mdx

What kind of changes does this PR include?

Minor content fixes (broken links, typos, etc.)
New or updated content

Description

Closes https://github.com/withastro/docs/issues/3269
What does this PR change? Give us a brief description.
Removed the example where you should wrap elements inside in a fragment in order to avoid errors with the old compiler, there's no need to use fragments to use JSX expressions.

Thanks for getting on this @dreyfus92 🔥
If we wanna do this right, I reckon we also have to update the "Astro syntax vs JSX" section to highlight we don't need this. Happy to contribute as well, but it seems rather straightforward.

We'd likely need @sarah11918 's input on the new addition as well.
Cheers!

I will try to make some changes based on the feedback. Thanks @ohansemmanuel & @sarah11918.

Alright, I think I'm happy with this one! Sorry, @dreyfus92 , I sent you on a bit of a wild path when I said "shouldn't we say when you'd use it?" without noticing that DIRECTLY BELOW we did give an example of that!  :sweat_smile:
So, I just incorporated that into the statment, and I kept "Fragments" in the Astro part, but moved "multiple elements" down into differences between JSX and Astro.
I'm happy with this, so I'm merging it and getting it off our plates as it addresses the initial issue!  :partying_face: If someone finds something horribly wrong with this, then you are welcome to make a new PR.
Thanks everyone for the work on this one!  :raised_hands:


Add LSP for Terraform

Emacs LSP has support for Terraform these days.

Looks good to me. Thanks for the help and quick response!


Switch to log.trace where appropriate

Related to #2057.
Switchs multiple log.info to log.trace so logging output will be reduced.
Currently the LOG_LEVEL is left on trace for production but that can easily be flipped when we want to deploy a quieter version.

I changed the comment, because I don't think we want to close #2057 even with these changes -- we shouldn't have ~100MB log files at the trace level when downloading a ~100MB file


fix vebal rank sorting

#497

Should be fine to use numbers. Did you give it a test?

I took 10 random addresses from https://dune.com/balancer/vebal and ranking position matched. I believe this one is ready for merging


Add warning if changing flutterEmbedding string.

No bug
Pre-launch Checklist

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I signed the [CLA].
[ ] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[ ] I added new tests to check the change I am making, or this PR is [test-exempt].
[ ] I followed the [breaking change policy] and added [Data Driven Fixes] where supported.
[x] All existing and new tests are passing.

I am debating merging on red and ignoring "customer linux customer testing" because this pr adds a comment to android code by definition it can't impact customer code.
WIll try a 4th rerun and then merge.


webpack 4

What does this PR do?
Yes, finally!! This PR updates all the dependencies for webpack 4.
This is breaking because most dependencies were updated to their latest version.
How should it be tested manually?
This "shouldn't be breaking", so just install it on a project you were using the plugin with and it should build and run as usual.
And of course...
npm test
# or
yarn test

Pull Request Test Coverage Report for Build 123

14 of 14 (100.0%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 120:
0.0%

Covered Lines:
456

Relevant Lines:
456

💛  - Coveralls


Use local variables when rendering templates

As discussed here some erb partials we use reference a lot of instance variables. Consider passing in local variables instead.

I'm actually going to address this in a new commit on #1737.
Your comment about @state changing reminded me that we're instantiating the OutcomePresenter multiple times in the '_result.html.erb' partial (because SmartAnswerPresenter#current_node returns new instances each time). I can avoid the multiple instantiation, the use of instance variables, and (I think) address your concern about @state changing by passing the OutcomePresenter to the '_result.html.erb' partial in the locals hash.

:+1:


Support for OpenAPI v2?

Hi! Thanks for opensourcing it, I'm using it in https://github.com/dimitropoulos/definitely-generated-typed
The trouble is, Kubernetes only has OpenAPI v3 as an option and it generates types that are not really usable (and, crucially, incomplete.  For example note that https://github.com/dimitropoulos/definitely-generated-typed/blob/master/types/kubernetes/versions/v1.20.0/index.ts is missing a type for IngressSpec (https://raw.githubusercontent.com/dimitropoulos/definitely-generated-typed/master/types/kubernetes/versions/v1.20.0/source.json).
It's pretty compact, where I'm grabbing the schema, so hopefully I'm not just doing something wrong: https://github.com/dimitropoulos/definitely-generated-typed/blob/master/generate.ts#L72-L75.
If it's possible to use the openapi v3 parser (as I am) and get these definitions, that'd be enough to get the ball rolling.

Hi!
Thank you. We are very happy to learn that this project is used to power up an ambitious project like definitely-generated-typed. I like the concept of building a central repository with generated types.
We've built @spec2ts/openapi with OpenAPI v3+ compatibility to avoid managing legacy code and avoid having too much edge cases. The future is v3+ 😁 !
However, you can take a look at swagger2openapi. It's a simple library that can convert swagger (2.0) files to OpenAPI (3.0) files.
Could this works for you?

I don't think so, but I'll give it a try.  Gotta be better than nothing.  I'll update you here when I get to it (could be a few days, this is an after-hours side-project, presently).

I think this could do the job. It's a mature library which is used in production by many.
Let me know of the results of your tests. I will try to help if I can.


Add awesome UAB resources

Please add any great resources that UAB offers to graduate students. They can be informatics-related or not!

I which file you want it to be added?


proposal: encoding/json: add a generic Decode function

I believe with generics now in place a new more convenient Decode function could be added to the encoding/json package, amongst other encoding/* packages.
Proposed:
func handler(w http.ResponseWriter, r *http.Request) {
	request, err := json.NewDecoder(r.Body).DecodeInto[MyStruct]()
	if err != nil {
		...
	}
	...
}

Existing:
func handler(w http.ResponseWriter, r *http.Request) {
	var request MyStruct
	err := json.NewDecoder(r.Body).Decode(&request)
	if err != nil {
		...
	}
	...
}

The benefit of this API is not only is it more concise, but it removes the possibility of a json: Unmarshal(nil) error.

I think I remember reading somewhere that the idea of APIs that take a pointer is that you can reuse the MyStruct multiple times to avoid allocations. However, I can't think of a time I ever used the var request MyStruct more than once.
At the moment, you can't have generics on a method, and the design above has DecodeInto being a method on the json.Decoder type which has type parameters.
So I think you'd have to have the type on the json.Decoder type as per this example: https://go.dev/play/p/ts7x6mZP74j
This has the benefit of adding strong typing to the existing json.Decoder package's signature in a backwards compatible way.

Yes that's a good point, you would need a new Decoder type, unless we got https://github.com/golang/go/issues/49085 first.

Actually, my idea doesn't work for the existing API - https://go.dev/play/p/iRU0oLt4wPK

https://go.dev/blog/when-generics

If some operation has to support even types that don’t have methods (so that interface types don’t help), and if the operation is different for each type (so that type parameters aren’t appropriate), use reflection.
An example of this is the encoding/json package. We don’t want to require that every type that we encode have a MarshalJSON method, so we can’t use interface types. But encoding an interface type is nothing like encoding a struct type, so we shouldn’t use type parameters. Instead, the package uses reflection. The code is not simple, but it works.

I'm not sure a generic variant provides sufficient benefit.
Consider these two patterns:
var v T
if err := dec.Decode(&v); err != nil {
    ...
}

versus:
v, err := dec.Decode[T]()
if err != nil {
    ...
}

Both are 4 lines.

I'm not sure a generic variant provides sufficient benefit.
Consider these two patterns:
var v T
if err := dec.Decode(&v); err != nil {
    ...
}

versus:
v, err := dec.Decode[T]()
if err != nil {
    ...
}

Both are 4 lines.

I thinks this is error handling limitation, not generics.

I think we should decline this for the same reason we should decline #57975
This is an unnecessary use of generics.


Remove Confirmation Code Screen

Description

Remove the confirmation code page and directly navigate the register screen to the dashboard.
Remove the confirm_email.dart file, and set the routing accordingly. (Register Page is a dummy right now, we'll make it functional through creating another issue)
Also remove all the functions related to the above file, like ConfirmationCodeTextField(), etc from the app as shown in the screenshot.

Screenshots

Additional data
We can discuss this here further before making a major change.

@anhhao92 firstly you should comment here and get yourselves assigned with the issue.
Then only you can create a PR.

would you please assign this to me

@anhhao92 firstly you should comment here and get yourselves assigned with the issue. Then only you can create a PR.
Could you assign this issue to me

@anhhao92 firstly you should comment here and get yourselves assigned with the issue. Then only you can create a PR.
Could you assign this issue to me

I didn't get you.
And please read the updated guidelines in the readme.

Can i work on this? @Mohitmadhav

@anhhao92 @krish-dev-7 please follow the guidelines given in the README before making any PR.
You can only make a PR after you get assigned.

@anhhao92 firstly you should comment here and get yourselves assigned with the issue. Then only you can create a PR.
Could you assign this issue to me

@anhhao92 you can tag me on other issues to get yourselves assigned.


CoreCLR: Cross-platform P/Invoke

Trinity has a lot of interop interfaces for communication between the managed part (Trinity.Core) and the unmanaged one (Trinity.C). When we first evaluated the cross-platform capabilities, we found that Mono provided two ways to address the platform-specific native calls: the DllMap, and that one can register InternalCall entries into the runtime host, which perfectly matched our current interop model.
On the CoreCLR side, currently it is required that a developer only specifies the name of a library, while the runtime "guesses" the full library name ("name.suffix"). See: https://github.com/dotnet/coreclr/pull/1248
It is unclear whether there will be a feature like discussed here: https://github.com/dotnet/coreclr/issues/930, but currently our best option is to follow the convention and update all our interop routines to point to "Trinity.C", so that it will be "guessed" as "Trinity.C.dll" on Windows and "libTrinity.C.so" on Linux. (I'm not sure whether the runtime will stop guessing because it sees a suffix ".C" here..)

Update: I have confirmed my guess: when I specify library name "Trinity" it guess "Trinity.dll", but if I specify "Trinity.C" it stops guessing, throwing out FileNotFoundException.

Update: auto-release of the native assembly is achieved now. see: https://github.com/Microsoft/GraphEngine/pull/17


Create 1463. CherryPickup2.cpp

Add Leetcode problem 1463. Cherry Pickup II in C++

@kross9924 you have to mention the issue number in the PR Body.


mutable default <class 'official.modeling.optimization.configs.optimizer_config.SGDConfig'> for field sgd is not allowed: use default_factory

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04):  Windows 10
TensorFlow version and how it was installed (source or binary): Tensorflow 2.12.0 - Install by using the pip command
TensorFlow-Addons version and how it was installed (source or binary):  Tensorflow-addons 0.20.0 - Install by using the pip command
Python version: 3.11
Is GPU used? (yes/no): YES

Describe the bug
When I tried to train my model, I get this bug like this:
"mutable default <class 'official.modeling.optimization.configs.optimizer_config.SGDConfig'> for field sgd is not allowed: use default_factory"

Were you able to fix this issue? Thanks


build: update docker deps

Signed-off-by: Lizan Zhou<EMAIL_ADDRESS>

hmm this will break the CI ...

I'm actually trying to fix CI that breaks #110


Branch 1.6

Can one of the admins verify this patch?

i am so sorry,it's a mistake...
发送自 Outlook Mobilehttps://aka.ms/qtex0l
On Tue, Jan 5, 2016 at 11:33 PM -0800, "UCB AMPLab" <notifications<EMAIL_ADDRESS>wrote:
Can one of the admins verify this patch?
―
Reply to this email directly or view it on GitHubhttps://github.com/apache/spark/pull/10616#issuecomment-169258106.


feat: 调整单元格默认 padding, 优化多行文本时的展示效果

👀 PR includes

✨ Feature

[x] New feature

📝 Description

多行文本高度自适应时, 考虑了单元格的 padding, 但默认的 paddingTop 和 paddingBottom 只有 4, 显得有点拥挤, 调整为 8

TODO: 单元格存在 icon 时效果还有优化空间 (预渲染计算宽度时获取不到 icon 宽度), 后续优化

https://github.com/antvis/S2/blob/c354fe212acfeceb3af1fe42f351c719cc5dc4d1/packages/s2-core/src/facet/base-facet.ts#L458
🖼 Screenshot

Before
After

🔗 Related issue link

🔍 Self-Check before the merge

[ ] Add or update relevant docs.
[ ] Add or update relevant demos.
[ ] Add or update test case.
[ ] Add or update relevant TypeScript definitions.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 80.68%. Comparing base (ecdc9c8) to head (4d241cc).
Report is 483 commits behind head on next.

Additional details and impacted files
@@            Coverage Diff             @@
##             next    #2970      +/-   ##
==========================================
+ Coverage   75.77%   80.68%   +4.91%
==========================================
  Files         257      179      -78
  Lines       11994    10437    -1557
  Branches     2464     2375      -89
==========================================
- Hits         9088     8421     -667
+ Misses       1398      563     -835
+ Partials     1508     1453      -55

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

:tada: This PR is included in version @antv/s2-v2.0.0-next.33 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-react-components-v1.1.0-next.1 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[WIP] FRP Transition

Unit tests are now compiling and completing, with twenty failures. I'll be looking at those next.

Cool, no surprises here :+1:


Error unpacking large archive writing file: rardecode: ...

I have problems with unpacking a large rar archive, the archive itself takes about 6GB and unpacked 25GB. The archive contains XML files with a database of Russian addresses.
You can download it from the official site http://fias.nalog.ru or from the direct link http://fias.nalog.ru/Public/Downloads/Actual/fias_xml.rar
The full error text
ERROR: 2017/10/12 00:37:10 unpack.go:12: Error unpack archive: data\AS_HOUSE_20171008_bed24a8e-4646-448d-acb8-8de765818389.XML: writing file: rardecode: decoder expected more data than is in packed file
I'm new to Go, you can tell me what the problem is.

Well if it works with normal rar/unrar then its a problem with my library.
I can have a look at it, but it might take a little while since its a large file.

Okay, I will be waiting. I wonder what the problem is, I was thinking here on my laptop 16GB RAM and the file it's 20GB maybe when unpacking the data is not immediately discarded on the disk but accumulated in the operative memory

Sorry for the delay. It looks to be a bug that I had already fixed in the experimental branch. I've merged it back into the main branch. That seems to have fixed it in my testing.


Update install procedure for statsite

Recent commit to statsite moved it away from Scons to autotools.
fixes #42

Awesome, thanks!


Warning: The X class can not exist in multiple namespaces in the same file, even if one is excluded with preprocessor directives.

Hey guys,
I use Unity 2019.2.18. I have these warning after importing the package.

Is there any information on why this happens and how it would affect a project?

Looks like this happens as a warning for files that contain multiple namespaces or classes that inherit from MonoBehavior or ScriptableObject in them.
It seems that this should not apply to the UniRx "operator" classes which inherit from: OperatorObserverBase<TSource, TResult>.  I wonder if this is a bug on Unity's end since these classes to do not inherit from MonoBehavior or ScriptableObject.
Do you know if this affects the project?
Some info:
https://issuetracker.unity3d.com/issues/cant-add-a-script-as-a-component-when-there-are-two-classes-with-the-same-name-in-the-script-but-in-different-namespaces

I have this issue as well. Did someone manage to fix this?

Some info:
https://issuetracker.unity3d.com/issues/cant-add-a-script-as-a-component-when-there-are-two-classes-with-the-same-name-in-the-script-but-in-different-namespaces

Resolved as "by design":

Currently this is by design. Only have one namespace and type in your file, if it inherits from MonoBehavior or ScriptableObject.
We have notified our documentation team about missing documentation in this area.


ODC - ondemandchina please

Checklist

[x] I'm reporting a new site support request
[x] I've verified that I'm running youtube-dl version 2<IP_ADDRESS>
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that none of provided URLs violate any copyrights
[x] I've searched the bugtracker for similar site support requests including closed ones

Example URLs

Playlist: https://www.ondemandchina.com/drama/the-legendary-tavern/
Single video: https://www.ondemandchina.com/drama/the-legendary-tavern/1
Single video: https://www.ondemandchina.com/drama/the-legendary-tavern/2

Description

No accounts/credentials required.

Has there been any progress on adding support for this yet?


[SPARK-43347][PYTHON][INFRA] Remove Python 3.7 Support

What changes were proposed in this pull request?
This PR aims to remove Python 3.7 Support at Apache Spark 3.5.0.
Why are the changes needed?
Python 3.7 reaches the end of support on 2023-06-27 and SPARK-39861 deprecated Python 3.7 at Apache Spark 3.4.0.

https://www.python.org/downloads/

Does this PR introduce any user-facing change?
Yes, but this change is expected one because SPARK-39861 deprecated Python 3.7 already.
How was this patch tested?
Pass the CIs.

Thank you, @HyukjinKwon !

Thank you, @ueshin .

Rebased to master since https://github.com/apache/spark/pull/41024 is merged.


fix LFS config on git-lfs v3.5.1

fixes #32954. Not sure if it's v3.5.1, the mac, or something else.

Doesn't seem to work in CI. @maxime-desroches can you finish this up?

It does not work on my machine, but in general I don't think it should work without the /info/lfs
See the gitlab docs  and  the example section of the v3.5.1 man page

My gitconfig was the culprit:
[url<EMAIL_ADDRESS>  insteadOf = https://gitlab.com/


ktlint integration does not report most errors

Hopefully I did not miss anything, but then again there is not much documentation to go by.
Expected Behavior
The Detekt Gradle plugin, with the KtLint wrapper extension as a dependency, reports all issues the standalone version of KtLint does.
Observed Behavior
On a small project, KtLint reports about 20 issues, while Detekt reports none.
Steps to Reproduce
Have a Gradle project with
plugins {
    id "io.gitlab.arturbosch.detekt" version "1.2.1"
}

dependencies {
    detektPlugins "io.gitlab.arturbosch.detekt:detekt-formatting:1.2.1"
}

in the build script. Have some issues like

Imports must be ordered in lexicographic order without any empty lines in-between
Missing spacing before ":"
Parameter should be on a separate line (unless all parameters can fit a single line)
Now compare results from running ./gradlew detekt and ktlint.

Context
I only noticed this by accident. So I do not know how long this was the case. I'll see in my other projects if they have the same issue.
Your Environment

Version of detekt used: 1.2.1
Version of Gradle used 5.4.1
Operating System and version: Manjaro Linux and OpenJDK 8 (ask if you need anything specific)

@arturbosch Any updates? 1.6.0 has the same problem for the Unsafe Cast check. It doesn't report about errors

Should be fixed by #2709. #2710 proves that detekt-formatting reports the same issus as KtLint itself.
The detekt Gradle plugin does not consider Gradle build files by default.
Only source sets. Consider adding a custom detekt task for the build files.


Additional fixed checks for the translation terms

Hello,
I'd like to suggest adding some additional reasonable validations for the translated terms, such as the validation of the format parameters.
The following checks I would propose to add:

Check if the white-spaces at the start and the end of the string match the input. Meaning if the neutral language term starts with a line break, the translation should too.
The use-case for me is that in the project I am working I noticed some translations, where the translations have spaces and line breaks at the end, but the neutral language term does not. This is a translation error, but on that is not easily spotted.
Similar to the white-spaces: Check the punctuation at the start and the end of the term. If the neutral language term ends on a colon, the translation should too.

These two checks are very general and I think can be used without many issues for all other users.
Additional checks, such as verifying that the length of the neutral term and the translation doesn't differ too much or that the quotation in the terms match may lead to false positives. Those shouldn't be inserted, unless there is a way to disable specific checks.
For the two checks above I volunteer to implement them and send a PR your way, provided you agree with their usefulness.

Sounds reasonable, if they are both optional (opt in via configuration tab)

I'm on it.

Are you sure this will work for all languages?
I doubt that Chinese always use the same spacing and punctuation than e.g. German or English.
However if it's optional, you can switch it on only if it works for all of your used languages.

I noticed that already. I added some "normalization" for the punctuation checks so it works okay for languages like Chinese. These checks will require some tweaking once user feedback comes in.
My plan is currently to have a global configuration for each rule so it can be enabled and disabled and to allow the rules to be muted using a @MuteRule(...) entry in the comment field, similar to @Invariant.

@tom-englert: I think this issue can be closed now, or am I wrong?


Kubeshark fails when run in a cluster with Windows node pools

Describe the bug
A clear and concise description of what the bug is.
When trying to launch Kubeshark in a cluster that contains windows nodes, kubecost fails to launch at all.
It appears the hub, etc are ignoring taints.
I have tried version 37.0, 41.1 and 41.3
Provide more information
Running in AKS
➜  ~ helm list
NAME     	NAMESPACE	REVISION	UPDATED                             	STATUS  	CHART         	APP VERSION
kubeshark	default  	1       	2023-07-21 15:25:33.784121 +0100 BST	deployed	kubeshark-41.5	41.5

You can easily spot the windows nodes in the list below
kubeshark-front                     0/1     ImagePullBackOff   0          4m2s   <IP_ADDRESS>     aksw2a1600004w                      <none>           <none>
kubeshark-hub                       0/1     ImagePullBackOff   0          4m2s   <IP_ADDRESS>    aksw2a16000009                      <none>           <none>
kubeshark-worker-daemon-set-87x89   0/1     ImagePullBackOff   0          4m2s   <IP_ADDRESS>    aksw2a1600002p                      <none>           <none>
kubeshark-worker-daemon-set-9rd6h   1/1     Running            0          4m2s   <IP_ADDRESS>   aks-lin8amd32-30175775-vmss000000   <none>           <none>
kubeshark-worker-daemon-set-f5gqf   0/1     ImagePullBackOff   0          4m2s   <IP_ADDRESS>    aksw2a1600004s                      <none>           <none>
kubeshark-worker-daemon-set-gpndb   0/1     ImagePullBackOff   0          4m2s   <IP_ADDRESS>   aksw2a1600004g                      <none>           <none>
kubeshark-worker-daemon-set-kkdhf   1/1     Running            0          4m2s   <IP_ADDRESS>   aks-lin8amd32-30175775-vmss000001   <none>           <none>
kubeshark-worker-daemon-set-mjsxk   1/1     Running            0          4m2s   <IP_ADDRESS>   aks-system-25178233-vmss000000      <none>           <none>
kubeshark-worker-daemon-set-nwfhk   0/1     ImagePullBackOff   0          4m1s   <IP_ADDRESS>   aksw2a1600002o                      <none>           <none>
kubeshark-worker-daemon-set-r5fbw   0/1     ImagePullBackOff   0          4m2s   <IP_ADDRESS>   aksw2a1600004w                      <none>           <none>
kubeshark-worker-daemon-set-rc2zz   0/1     Pending            0          4m1s   <none>         <none>                              <none>           <none>
kubeshark-worker-daemon-set-rqkh8   0/1     ImagePullBackOff   0          4m2s   <IP_ADDRESS>   aksw2a16000009                      <none>           <none>
kubeshark-worker-daemon-set-sp7qw   0/1     ImagePullBackOff   0          4m2s   <IP_ADDRESS>   aksw2a16000025                      <none>           <none>
kubeshark-worker-daemon-set-wcfw9   1/1     Running            0          4m2s   <IP_ADDRESS>    aks-lin8amd32-30175775-vmss000002   <none>           <none>
kubeshark-worker-daemon-set-xlgzp   0/1     ImagePullBackOff   0          4m1s   <IP_ADDRESS>   aksw2a1600001y                      <none>           <none>

You can see the taints here:
k get node aksw2a1600001y -o yaml
apiVersion: v1
kind: Node
...
spec:
  providerID: azure:///subscriptions/4869ab18-bf89-4a91-bd9b-a5ba0779c261/resourceGroups/sprd-uk-group-k8s/providers/Microsoft.Compute/virtualMachineScaleSets/aksw2a16/virtualMachines/70
  taints:
  - effect: NoSchedule
    key: nodeos
    value: windows

To Reproduce
Steps to reproduce the behavior:

Deploy an AKS cluster with running windows nodes
Run kubeshark tap gate
See error

Expected behavior
I'd expect it to work
Logs
dump-logs didn't work, but this should help:
kubeshark tap gated --set dump-logs=true
2023-07-21T15:33:37+01:00 INF versionCheck.go:23 > Checking for a newer version...
2023-07-21T15:33:37+01:00 WRN config.go:182 > error="flag \"dump-logs\" not found"
2023-07-21T15:33:37+01:00 INF tapRunner.go:50 > Using Docker: registry=docker.io/kubeshark/ tag=latest
2023-07-21T15:33:37+01:00 WRN tapRunner.go:61 > Storage limit cannot be modified while persistentstorage is set to false!
2023-07-21T15:33:37+01:00 INF tapRunner.go:66 > Kubeshark will store the traffic up to a limit (per node). Oldest TCP/UDP streams will be removed once the limit is reached. limit=200Mi
2023-07-21T15:33:37+01:00 INF common.go:69 > Using kubeconfig: path=/Users/peter.dolkens/.kube/config
2023-07-21T15:33:37+01:00 WRN versionCheck.go:48 > There is a new release! 0.0 -> 41.3 Please upgrade to the latest release, as new releases are not always backward compatible. Run: command="sh <(curl -Ls https://kubeshark.co/install)"
2023-07-21T15:33:37+01:00 INF tapRunner.go:80 > Targeting pods in: namespaces=[""]
2023-07-21T15:33:37+01:00 INF tapRunner.go:141 > Targeted pod: gated-access-deploy-5b4bf9f49-bdqfs
2023-07-21T15:33:37+01:00 INF tapRunner.go:90 > Waiting for the creation of Kubeshark resources...
2023-07-21T15:33:38+01:00 INF helm.go:128 > Downloading Helm chart: repo-path=/Users/peter.dolkens/Library/Caches/helm/repository url=https://github.com/kubeshark/kubeshark.github.io/releases/download/kubeshark-41.5/kubeshark-41.5.tgz
2023-07-21T15:33:39+01:00 INF helm.go:147 > Installing using Helm: kube-version=">= 1.16.0-0" release=kubeshark source=["https://github.com/kubeshark/kubeshark/tree/master/helm-chart"] version=41.5
2023-07-21T15:33:39+01:00 INF helm.go:61 > creating 8 resource(s)
2023-07-21T15:33:40+01:00 INF tapRunner.go:101 > Installed the Helm release: kubeshark
2023-07-21T15:33:40+01:00 INF tapRunner.go:172 > Added: pod=kubeshark-hub
2023-07-21T15:33:40+01:00 INF tapRunner.go:263 > Added: pod=kubeshark-front
2023-07-21T15:33:45+01:00 ERR tapRunner.go:379 > Watching events. event=kubeshark-hub.1773e8982ec414c4 kind=Pod name=kubeshark-hub note="Failed to pull image \"docker.io/kubeshark/hub:latest\": rpc error: code = NotFound desc = failed to pull and unpack image \"docker.io/kubeshark/hub:latest\": no match for platform in manifest: not found" pod=kubeshark-hub reason=Failed
2023-07-21T15:33:45+01:00 WRN tapRunner.go:121 > To re-establish a proxy/port-forward, run: command="kubeshark proxy"

Desktop (please complete the following information):

OS: MacOS

Additional context
Add any other context about the problem here.

I see the --ignoretainted flag added by #1318 appears to resolve this.
For reference, the --ignoreTainted flag specified in the issue fails, but --ignoretainted in lowercase works.
This does seem like odd behavior by default :\

The Kubeshark Worker is currently a Linux specific software since it's a static binary that's built against Linux kernel headers. Maybe through Windows Subsystem for Linux (WSL) for example, we can support Windows as an operating system target in the future.

Thanks @mertyildiran - the issue was that kubeshark was ignoring the taints that we put on the windows nodes to prevent linux pods from attempting to run on them.

Would it make sense to set the nodeSelector to always use Linux for the Dashboard so that teams that do not use taints on their Windows node pools do not have to modify the charts to get this to work out of the box?
  nodeSelector:
    kubernetes.io/os: linux


Creating proposals for keeping transient namespace alive

Describe what this PR does and why we need it:
Proposal for bug

How much security are we gaining by having an ephemeral namespace versus a locked down persistent namespace for APBs?

@eriknelson I like the abstraction behind shouldDeleteNamespace that will help.

@eriknelson if we NEED to remove the namespaces immediately for security purposes, then I would assume the TTL won't really help. I was thinking the TTL would replace the other configs not be a 3rd.


add flyd to implementations.md?

Hi,
flyd [1] claims to be fantasy-land-compatible (have not verified if this is actually the case), perhaps add it to implementations.md ?
[1] https://github.com/paldepind/flyd

It doesn't seem to be compatible with<EMAIL_ADDRESS>(does not use prefixed names for properties for instance).
Although implementations.md contain a lot of libraries that are not compatible with newer versions of FL, I think.

Although implementations.md contains a lot of libraries that are not compatible with newer versions of FL, I think.

Good point. Perhaps we should make it clear that these libraries support early versions of the spec, and request that their authors submit pull requests to update the document if and when a library is updated to work with v2.x.x.

I'm starting to think we should drop implementations.md! 😱  It's going to be a nightmare to keep up to date in the future especially if we're going to move forward at this pace!
Although I'd be more than happy to if someone 'owned' it and took it on themselves to keep it up to date, I don't think asking authors to submit PRs to keep it up to date is going to cut it.

Just one more way we can go is to make this a GitHub wiki document, so authors could easily edit it. Still won't solve the problem of keeping it up to date completely though.

Also we could use npm for this as suggested in https://github.com/fantasyland/fantasy-land/pull/168#issuecomment-248894913
We could recommend authors to add fantasy-land as a keyword if they don't want to add it as a dependency, and then we could use this list https://www.npmjs.com/browse/keyword/fantasy-land

Yes, flyd does not support 1.0. I'd probably not want to change that before Ramda supports 1.0.


Add MaterialColor filtering

Requested by @cairath and Mahskie#0001@discord
Allows to apply MaterialColor to only some building types, or apply it to all but some building types.
It's all managed from MaterialColor/Config/MaterialColorState.json file. Default (apply to everything):
{
  ...

  "TypeFilterInfo": {
    "Inclusive": false,
    "Rules": []
  }
}

If Inclusive is set to false - ALL buildings EXCEPT those listed in the Rules will be colored. For example here everything but the HeadQuarters(PrintingPod) will be tinted:
{
  ...

  "TypeFilterInfo": {
    "Inclusive": false,
    "Rules": [
      "HeadQuarters"
    ]
  }
}

If Inclusive is set to true - ONLY buildings listed in the Rules will be colored. For example here only HeadQuarters(PrintingPod) will tinted:
{
  ...

  "TypeFilterInfo": {
    "Inclusive": true,
    "Rules": [
      "HeadQuarters"
    ]
  }
}

Rules are case-sensitive but partial matches suffice. For example this is basically the same behaviour as above, unless there's other building with name that contains Head string:
{
  ...

  "TypeFilterInfo": {
    "Inclusive": true,
    "Rules": [
      "Head"
    ]
  }
}

Example of only printing pod colored:

Someone please review the code at least briefly if it makes sense and works.

Works perfect for me. Thank you very much. I just added a config option to match the exact building id. If you agree i'll merge the pull request.

I added the exact match in order to allow the exclusion of only one building. For example if I want to exclude only the small battery, I have to add "Battery" to the list, but then all kinds of battery are excluded.

Okay I get it - when big battery is called Battery and small battery is called SmallBattery, excluding Battery without touching the other one is the issue.
As I said before - I'm okay with the merge here.

Thank you for the contribution @fistak


Fresh French Number PR

Fixes #1484
Description
Adds French language support to NumberPrompt. This is already supported in Confirm and Choice prompts, as well as the C# SDK.
Testing

Pull Request Test Coverage Report for Build 99815

3 of 3 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.001%) to 84.402%

Totals

Change from base Build 99772:
0.001%

Covered Lines:
8431

Relevant Lines:
9666

💛  - Coveralls


Implement Timeout()/Temproary() for QuicError

By adding Timeout()/Temparay() to QuicError, we could distinguish QuicError to different types.
Like idioms in golang net, context, http packages.
I'm not familar with quic very well, so I'm not sure current PR code is suitable or not.
Please give comments, thanks!

Codecov Report

Merging #692 into master will decrease coverage by 0.15%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #692      +/-   ##
==========================================
- Coverage    91.4%   91.25%   -0.15%
==========================================
  Files          81       81
  Lines        5579     5588       +9
==========================================
  Hits         5099     5099
- Misses        302      311       +9
  Partials      178      178

Impacted Files
Coverage Δ

qerr/quic_error.go
64% <0%> (-36%)
:arrow_down:

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 d6e2b3a...51e0e35. Read the comment docs.

Thanks for the PR! This is an interesting suggestion that we hadn't thought of so far.
First, let me provide a bit more context (apologies if you already know some of these):
On the IETF side, error codes are currently undergoing some changes, see https://github.com/quicwg/base-drafts/pull/467. Basically, many are going to be removed, so we will probably change that soon.
Second, the qerr package is not meant to be publicly consumed (and will almost certainly move to internal/ soon). However, your PR still makes sense: People can check whether the error returned implements a simple interface with just the Timeout() function (see https://dave.cheney.net/2016/04/27/dont-just-check-errors-handle-them-gracefully, the section named "Assert errors for behaviour, not type").
Now, there's probably two options here. We can either wait what the IETF error space converges to and have another look at whether it makes sense to expose the error type then, or we can introduce Timeout() now. I'm not such a big fan of Temporary(), as currently no error fulfills that category.
@marten-seemann, WDYT?

@lucas-clemente I total agree you points. :)
In fact, I'm managing to integrate my project with quic-go. And I wish that I could assert quic timeout errors here
https://github.com/phuslu/goproxy/blob/b755a53388fed9613da407a34051677ca6d07517/httpproxy/filters/gae/gae.go#L538-L547
That's why I send this PR 😄
And I removed Temporary() now.


APP_NAME/APP_ICON

The ImageJ Launcher sets the APP_NAME and APP_ICON at launch. Should Jaunch really be in the business of doing that? Or should it always be baked into the macOS binary at build time?

The relevant code from the ImageJ Launcher is:
	struct string *env_key, *icon_path;

	/* set the Application's name */
	env_key = string_initf("APP_NAME_%d", (int)getpid());
	setenv(env_key->buffer, "ImageJ", 1);

	/* set the Dock icon */
	string_setf(env_key, "APP_ICON_%d", (int)getpid());
	icon_path = string_init(32);
	append_icon_path(icon_path, main_argv0);
	if (icon_path->length)
		setenv(env_key->buffer, icon_path->buffer, 1);

	string_release(env_key);
	string_release(icon_path);


Refactor/guble 16 remove dependency injection

I only removed KVStore interface now. I will removed them in steps.

Coverage decreased (-0.07%) to 74.768% when pulling 53e80e2955a9d65c24353539925a754a3cb613c8 on refactor/guble-16-remove-dependency-injection into 10421e5c373d30bff5e4b7c31783d6007ba33832 on master.

I have to think about that a little bit..
Can you explain a bit, what's you reason to do the change?
Why do you think it is better this way? What do you think about the remaining dependency injection in service.go?

We discussed previous Friday and you agreed to remove the dependency injection. The system is not fully dependency injected. A dependency injected system should create the objects, in our case we provide the objects created already.
Also the injection hides some behavior I think, and it would be more explicit for an object to receive it's dependencies at construction time. This allows for objects to be used in any circumstances otherwise they can only be used only if passed to the service which does the injection.
I was thinking it's best to use the router as a carry for the dependencies and pass it along at construction time, cause the router is present everywhere anyway.
Also the AccessManager won't have much use outside the router, maybe in special cases, in which case it's still accessible. Otherwise the router is the one that will check for WRITE/READ operations.
Maybe we keep the fetching of messages separated from the router although I don't see why.
We can have the router Subscribe and Fetch methods do a READ operation and HandleMessage would be a WRITE operation.
The Router will be a public interface backed by a private struct.
I think this changes will simplify and make it clearer. We don't need the magic behind injection.

Coverage decreased (-0.04%) to 74.768% when pulling 9a39c6cbf4fc313525131dc532cba98ee4c85e57 on refactor/guble-16-remove-dependency-injection into 77f445149e051d41fa2f455c13e39a79e9568073 on master.

Sorry for my delay on that, but I had to balance the arguments in my head for some hours.
And since I introduced the DI some month ago, while thinking it was elegant, I had more arguments for that way, first. But now I'm with you.
Plus points:

New Modules created by a constructor are fully functional or return an error
I like that the Service get's more focussed on it's core responsibility.
Ant, at the end, the way to supply the router to all instances is simpler and more readable - and this is, what the golang philosophy is all about ;-)

The draw backs:

We have a heavy component (even if abstracted as interface), where all components depend on
We loose the clarity in the signature of modules, on which other modules they depend


malloc hook for darwin malloc_usable_size equivalent

Good catch. Maybe we should also add malloc_good_size ?

sure why not.


Fix lowercase in the 'resource not found page'

Description
Changes proposed in this pull request:

...
...
...

Related issue(s)
Resolves #1090

/retest


Using $and in query string

Steps to reproduce
Maybe I am just being an idiot, but I cannot seem to get the $and to work in the query. I imagine this is less of a bug a more of I don't know the right syntax but I have tried a few.
Calling this endpoint: http://localhost:3030/search/tracks?tags.name.raw[$and]=rock
I've also tried: http://localhost:3030/search/tracks?$and[tags.name.raw]=rock But get an error about it not being an array.
Not sure what I am doing wrong but appreciate your help.
Expected behavior
This should be an anded filter term.
I am console.logging from the hooks, and the server service call gives me this in the hook under
hook.params.query: Hook query { '$and': { 'tags.name.raw': 'rock' } }
But the rest call is giving this:
Hook params { query: { 'tags.name.raw': { '$and': 'rock' } }
Actual behavior
It is not being run in the query at all. Added some debug and the $and filter in parseQuery is not being hit at all.
It does however work if I run it from the server as this:
service
	.find({
		query: {
			$and: [{
				'tags.name.raw': 'rock'
			}]
		}
	})
	.then(results => {
		console.log(JSON.stringify(results));
	});

System configuration
Latest version of feathers-elasticsearch.

Solved
It was the wrong syntax I was using, needs to be this:
http://localhost:3030/search/tracks?$and[][tags.name.raw]=rock


Simplify output buffer coordination during execution

Move partition function configuration to plan fragment, so task always knows
how to partition output.

@dain - resolve the conflicts and update so that travis can run.

Looks good.


[Snyk] Upgrade @equinor/eds-core-react from 0.31.1 to 0.32.3

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade @equinor/eds-core-react from 0.31.1 to 0.32.3.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 9 versions ahead of your current version.
The recommended version was released 22 days ago, on 2023-07-14.

Release notes

Package name: @equinor/eds-core-react

0.32.3 - 2023-07-14[0.32.3] - 2023-07-14
Fixed

🐛 Autocomplete, Tooltip, Popover and Menu inside a Dialog should now render on top by @ oddvernes in #2970

0.32.3-dev20230714 - 2023-07-14

0.32.2 - 2023-07-13[0.32.2] - 2023-07-13
Fixed

🐛 Rollup config: added interop: auto. This fixes an issue with the commonJs build where jest was unable to resolve styled-components in downstream tests

0.32.2-dev-rollup-test.1 - 2023-07-12

0.32.1 - 2023-07-11[0.32.1] - 2023-07-11
Changed

⏪ Added back commonjs build and changed file extension of modules from .mjs to .js due to a compatability issue with React 17.
📌 Restricted styled-components to below version 6 in peerDependencies. this package does not support v6 yet.

0.32.1-dev20230711 - 2023-07-11

0.32.0 - 2023-07-10[0.32.0] - 2023-07-10
Fixed

🐛 Autocomplete: Allow option value of 0 by @ oddvernes in #2957
🐛 Popover, Card: fixed style-syntax that affected users with styled-components v6 in by @ oddvernes in #2953
🐛 Typography: make color a transient prop so it doesn't show up in the dom by @ oddvernes in #2952
💄 Sidebar: Remove visible scrollbar when collapsed by @ oddvernes in #2863

Changed

♻🚸 Dialog: Refactored to use native dialog under the hood by @ oddvernes in #2950
⚡ Tabs: conditionally render tab panels (previously display:none) by @ oddvernes in #2947
⬆ updated dependencies by @ oddvernes in #2925
⬆ Update floating-ui by @ oddvernes in #2922
⬆ Upgrade rollup to v3 by @ oddvernes in #2908
🚸 Scrim/Dialog: trigger dismiss on mousedown to prevent accidental "click outside" by @ oddvernes in #2923
📝 Autocomplete: Improved selectAll story in storybook by @ denektenina in #2883
📝 Storybook, improved documentation: Add null as a possible value for useState hooks that receive HTML elements to avoid type error by @ FredrikMWold in #2891
⬆ Storybook updated to v7 by @ oddvernes in #2866
🚸 SideBar.Accordion: Made the way isExpanded works more intuitive by @ denektenina in #2870

Added

✅ Added test coverage for the new SideBar.Accordion and SideBar.AccordionItem by @ denektenina in #2867

Removed

🔥 Commonjs build was removed from the published package in this release

New Contributors

@ FredrikMWold made their first contribution in #2891
@ yusijs made their first contribution in #2931

Full Changelog: https://github.com/equinor/design-system/compare/eds-core-react<EMAIL_ADDRESS>

0.32.0-dev07102023 - 2023-07-10

0.32.0-dev07072023 - 2023-07-10

0.31.1 - 2023-04-25

    from @equinor/eds-core-react GitHub release notes

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

fixed on https://github.com/equinor/energyvision/commit/ce178b949a399c3a44f57ed7e4325531128e3e07


Convert Table components to CSS modules

Issue Description
To better align with modern CSS practices and modern CSS theming capabilities, we want to update this component to use CSS modules and if applicable, CSS custom properties.
Issue Type

[ ] New Feature
[x] Enhancement
[ ] Bug
[ ] Other

Expected Behavior
Component styles are converted to use CSS modules. If applicable, convert SCSS variables to CSS custom properties.
Current Behavior
Component styles use manual name spaced classes and SCSS variables.

Released in table v1.3.0

Released in terra-table v1.3.0


khepri_fun: Fix extraction of Elixir anonymous functions

... written in the Elixir shell (erl_eval anonymous functions).
In the erl_eval anonymous function's env, the first element in the tuple represents the function bindings. Erlang is using a list, but Elixir is using a map.
erl_eval_fun_to_asm(), which does pattern matching to ensure there is no bindings, expected an empty list. Now it accepts an empty map as well to support the Elixir case.
Note that bindings are still unsupported.
Reported by @mkuratczyk.
Paired with @mkuratczyk.

Pull Request Test Coverage Report for Build 187

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.4%) to 80.968%

Totals

Change from base Build 185:
-0.4%

Covered Lines:
1221

Relevant Lines:
1508

💛  - Coveralls


Threadless mode

For numerous reasons that aren't written down anywhere yet, there is a gradually increasing desire to provide a mode where the library can be used without any background thread running at all.
This helps in at least the following scenarios:

Apps that have fork baked in so deeply it can never be removed, e.g. due to stoneage corners of UNIX that require forking for one reason or another (such as transitioning into a new PID namespace on Linux)
It does not (yet) seem possible to teach Linux scheduler that communicating pairs of threads must be colocated without disabling all load balancing
Fork-safe child context mode, where again there is some impossible-to-unfork code that must be integrated with
Slashing context switches and IPC latency by eliminating the broker thread entirely
Starting 2 threadless brokers running in threads wired up to each other would be highly useful for fast unit tests -- or better yet, no threads at all, just single-stepped brokers under the control of the test
Potentially easier integration with environments like gevent
Several more I've forgotten already, there are a ton of use cases for this

The challenge has always been delivering asynchronous events to a process that otherwise has no dedicated receiver function. For example, a blocked child context has no way to self-destruct if it loses a connection to its parent. So there will always be caveats
This evening's idea is that Latch, otherwise the scariest code in the library, might be a blessing in disguise, since it is not possible to enter a blocking wait from a thread for any Mitogen primitive (receiver or latch or select) without entering Latch._get_sleep.
In other words, there is only a single integration point where the broker loop is required to wake and run while user code is waiting for a result.
Idea is:

Wrap Broker in a lock
Process-global flag (at least initially) enabling threadless mode
Process-global threadless Broker instance
Latch._get_sleep does not in fact sleep, but takes Broker lock and begins to iterate its main loop
On each iteration it tests whether a result has been posted to it or not yet
If result is posted, stop iterating and return result to user.

Add-on ideas:

Make it 'broker threadless', i.e. still multithread-capable, but only one thread at a time iterates the loop. Requires much more fiddly registration for wakeup, i.e. the Latch that is currently iterating the broker must pick another it knows is waiting for a result to continue iteration. But this is just fiddlyness, the overall result should still be vastly improved latency

Interactions with asynchronous connect. Actually it potentially interacts beautifully: user spams a bunch of connect calls that do nothing, gets back a bunch of Context objects, then only after trying to send() on the related stream does the whole mechanism kick in and the connection attempts actually start.

Background thoughts:

Without "multithread capable threadless", how do service pools work? But service pools were always a horrible idea, perhaps there is some better abstraction that allows service dispatch to optionally happen inline on the same stack too

Before attempting this, async connect should be landed first, because it's more important and will likely reveal many edge cases any threadless mode would have to cope with

On UNIX, it is possible to enable SIGIO for the parent file descriptor, allowing some kind of interrupts to remain possible in many cases even if the main thread is blocked on some non-threading related system call
Another option is forking a child that simply watches for the parent descriptor (somehow) to become unreadable, and kills itself in that case.

Plan C looks something like:

Latch grows an optional 'Broker' attribute. Receivers associate their router's broker with the latch during construction
Threadless is toggled via the broker attribute, rather than a global
No check is performed on each iteration for timeout, instead set a timer (#170) to trigger exit via a simple boolean
No check is performed on each iteration for message arrival, instead teach Latch.put to notice threadless, and set/increment some simple variable to trigger exit
For the "completely threadless" variant, it's possible to remove the UNIX self-pipe trick from Broker.defer
Similarly, in both variants, the threadless broker can skip using the self-pipe trick to 'wake' the latch that is currently running it

Interactions:

Log forwarding / module responding etc only works while some user thread is blocked in a wait

On UNIX, it is possible to enable SIGIO for the parent file descriptor, allowing some kind of interrupts to remain possible in many cases even if the main thread is blocked on some non-threading related system call

note to self: page faults jump probably means a memory leak


Fix to autofocus

Jeff, I've noticed that the control would not read small QR code's with a lot of information.
I've added some code to focus the camera before it is send to the Zxing reader.

Awesome, thanks!


proposed recipe implementation, following design doc

Breakdown of proposal according to the requirements outlined in the design doc:
features

YAML recipe indicating one or more instances of a task to be run
YAML file containing the allowed/disallowed flags or values along with any other hard constraints
Set of classes to load/process/serialise these files
Default 'dynamic configuration' dict specified by the run method that is sufficient to construct a command via the build_command method. If a recipe is provided, then it will automatically enrich the default configuration. At any rate, what reaches the build_command method is always a recipe.
When a piece of evidence is submitted, if a recipe is indicated it will be loaded, applied to the default configuration and evaluated against the base_config YAML file.
Recipes have params/flags (traditional parameters and flags) and meta_params. meta_params are things such as the shell to be used or whether the shell parameter should be true, overrides on output directory or evidence output etc..
New job created for artifact extraction, ilutrating how the job could take care of validating the recipe and dispatching a task based on the outcome
Adapted existing artifact extraction task to illustrate how the recipe -> default_values enrichment could be done and the command built based always on a recipe.

Recipe Structure

recipe:
  jobs_whitelist: []
  jobs_blacklist: []
  pattern_files: []
  tasks: #caontaining all task instances for this recipe file
    instances: #optional key, to be included in task recipes with several sets of params
      instance_1:
        meta_params: #shell, shell executable, overrides on output dir, evidence type output etc..
        params: []
        flags: []

# Example time!

jobs_whitelist:
  - ArtifactExtractionJob
tasks:
  Log2timelinetask:
  #Simple configuration with only one task instance to be run per piece of eligible evidence
    meta_params:
      shell_executable: "/bin/bash"
      command_string: 'log2timeline.py'
    params:
      artifact_filters:
        - WindowsAMCacheHveFile
        - WindowsAppCompatCache
        - WindowsUserRegistryFiles
        - WindowsPrefetchFiles
        - WindowsActivitiesCache
        - WindowsMostRecentApplication
        - WindowsUserJumpLists
        - WindowsOpenSavePidlMRU
      volumes: all
      partitions: all
    flags: ['no-vss']

  FileArtifactExtractionTask:
      # slightly more complex task recipe, with several task instances with one one task instance
      #overriding meta_params
      meta_params:
        shell_executable: "/bin/bash"
        evidence_type: "ExportedFileArtifact"
        output_dir: "amcache_hives"
        command_string: 'image_export.py'
      instances:
        amcache_install_win10_180x:
          params:
            custom_artifact_definitions: /data/artifact_definitions/generic.yaml
            artifact_filters: WindowsAMCacheInstallFile
            w: /data/results
        amcache_hive_win10_180x:
          meta_params:
            evidence_type: "ExportedFileArtifact"
            output_dir: "amcache_hives"
          params:
            artifact_filters: WindowsAMCacheHveFile
            w: /data/results

One can specify an instances section in a recipe if a task recipe will contain more than one set of parameters, instead of having (potentially) unique identifiers by recipe entry and the task associated as a field. One can omit the instances key if only one set of parameters is to be used, the ingestion method will put it in place for the user.
meta_params are inherited from to all the task instances, but one can choose to place a meta_params section inside one of the task instances in order to override this choice

Base task config structure

Log2timelineTask:
  required_flags: []
  required_params: ['partitions', 'volumes', 'vss_stores']
  allowed_flags: ['h', 'd', 'data', 'f', 'info', 'no_dependencies_check',
                  'no_vss', 'q', 't', 'troubles', 'use_markdown', 'V',
                  'vss_only', 'z']
  allowed_params: ['artifact_definitions', 'artifact_filters',
      'artifact_filters_file', 'buffer_size', 'credential',
      'custom_artifact_definitions', 'hasher_file_size_limit',
      'hashers', 'logfile', 'parsers', 'partitions', 'preferred_year',
      'process_archives', 'process_memory_limit', 'profilers',
      'profiling_directory', 'profiling_sample_rate', 'queue_size',
      'sigsegv_handler', 'single_process', 'skip_compressed_streams',
      'status_view', 'storage_format', 'task_storage_format',
      'temporary_directory', 'volumes', 'vss_stores', 'worker_memory_limit', 'workers', 'yara_rules']

ArtifactExtractionTask:
  required_flags: []
  required_params: ['partitions', 'volumes', 'vss_stores']
  allowed_flags: ['d', 'h', 'include_duplicates', 'no_vss',
                  'q', 'troubles', 'V', 'vss_only']
  allowed_params: ['artifact_definitions', 'artifact_filters',
      'artifact_filters_file', 'custom_artifact_definitions',
      'data', 'date-filter', 'f', 'logfile', 'names', 'partitions',
      'process_memory_limit', 'signatures', 'volumes', 'vss_stores', 'w', 'x']

Implementation choices

YAML as config format for recipes
Default values implemented as a dict and built in the run method, as several default params such as output_dir etc.. are worked out at runtime
Recipes are loaded by a set of dedicated classes. Very open to opt for straight dicts instead. However, I do see a lot of potential in having all recipe mangling and enriching functions for dynamic expansion and potential cascading recipes in the future.
Recipes are loaded every time they are referenced by an evidence submission. This would allow for modification of recipes without restarting the worked
base_configs are loaded one time as a singleton, as it is reasonable to assume these will be edited much less and mostly put in place when adding or significantly modifying a new task
config validation happens in the TurbiniaJob based task dispatcher. If the config is invalid or doesn't meet the constraints set out in the base_config file, the task will not execute, but the failure will only be logged, no TurbiniaException will be raised.

concerns

Without clarity on how involved the project will want to have parameter validation be, its hard to tell whether having the base_task_configs in a separate centralised file, as opposed to a class variable dict int he task itself.
Choice of YAML. Turbinia can benefit from pure python configs too, as there are many variables that are dynamic (thus the flat dict for default values in the run method of any given task)
the build_command method is implemented in the TurbiniaTask class, and it follows the most typical parameter convention. Is this appropriate, or too specific for a base class?
Should the event of validation failure in any given recipe raise an exception?
I could use some help with the naming of recipe -> task_recipe -> task_recipe_instance. Need a fresh pair of eyes to figure out how confusing that is
Tried to follow code style, may also need some help there.

I agree that we can integrate the task restrictions into the task code and remove sections of it, there is also no need to define both allowed/disallowed and so on. That last comment clarified further what you meant by interface.  What I had in  mind in putting it on a separate file was a scenario where you had multiple deployments and could 'easily' cap/force certain features by changing the configuration.
Good point about the variables used elsewhere in the code. This is something I also observed with parameters that mean the same as other Turbinia variables (output directories, log files and so on).
Another opportunity so simplify the approach would be to load the configuration later on and using straight dicts. There is a case in that the added complexity in Serialising and deserialising recipe objects outweighs the benefits I outlined earlier.
The typos and the JSON reference are remnants of my testing, the change in the 'execute' function where i hardcode the interpreter as well. Those are unintentional..
If you give me your thoughts on the two above points I'll know enough to attempt a refactor before you devote any more effort to reviewing. I am also testing quite a bit on my side and changing my mind on things (having a helper to build the commands, for instance..).
Jorge

I agree that we can integrate the task restrictions into the task code and remove sections of it, there is also no need to define both allowed/disallowed and so on. That last comment clarified further what you meant by interface. What I had in mind in putting it on a separate file was a scenario where you had multiple deployments and could 'easily' cap/force certain features by changing the configuration.

Ah, ok, I see.  Yeah, I think most of the per-deployment config can generally either be done in the config itself, or as other recipe configuration data.  That might not enforce it on the task side, but I think that's ok.  Most of the enforcement I was looking for here is mainly just on the code side itself, and making sure that we had well-defined interfaces for things, and I'm less concerned with restricting the actual usage.

Another opportunity so simplify the approach would be to load the recipe file later on and using straight dicts. There is a case in that the added complexity resulting from Serialising and deserialising recipe objects to pass them around outweighs the benefits I outlined earlier.

I think it's ok to load the recipe from the client and send it along with the request.  We'll want other clients (e.g. dfTimewolf) to be able to send recipes with the request too, so I don't think we're going to be able to get away from serializing/deserializing. Given that the recipe data is also more likely to be edited by users, it is more likely to cause issues loading/parsing, so I'm happy to do that client-side rather than letting it affect the server/worker.

The typos and the JSON reference are remnants of my testing, the change in the 'execute' function where i hardcode the interpreter as well. Those are unintentional..

Cool, no worries :).

If you give me your thoughts on the two above points I'll know enough to attempt a refactor before you devote any more effort to reviewing.

Hopefully I answered what you were looking for, but let me know if you have any more questions.

I am also testing quite a bit on my side and changing my mind on things (having a helper to build the commands, for instance..).

Yeah, I'm not sure whether the command line build helper would be needed if we simplify the flags into a single extra variable per Task (or per binary run by a Task).
Also, it hasn't been reviewed yet, but you might want to check out #488 as it touches some of the same code for how commands are built/run.

Going to drop this old PR in favor of #579 which should be submitted soon.