Cannot define multiple commands in tasks.json

Hi,
I cannot find a way to define multiple tasks which executes different commands in the .vscode/tasks.json file of my project directory.
From what I understood, I can only declare a single TaskConfiguration within this file. Am I wrong?
To make my problem more understandable, let's say I would like to define 3 tasks with their own set of arguments:

foo: foo --arg
bar1: bar --arg 1
bar2: bar --arg 2

How can I make tasks.json reflect this need?

Let me suggest a simple example to implementation  (tasks.json) ....
{
        // ROOT WITHOUT COMMAND
	"version": "0.1.0",
	"isShellCommand": true,
	"showOutput": "silent",
	"args": [],

	"tasks": [
		{
             //CHILDREN WITH COMMAND ;)
            "taskName": "Build Type Script",
            "suppressTaskName": true,
            "isBuildCommand": true,
			"command": "tsc",
            "args": ["tsc -p ."]
        },
        {
            "taskName": "Open Browser",
            "suppressTaskName": true,
			"command": "live-server",
            "args": ["--open public_html"]
        }
	]
}

AND CTRL+SHIFT+B:
{ "key": "ctrl+shift+b",          "command": "workbench.action.tasks.runTask" }

Hi, I need the feature too :+1: But, priority is low. Because, we can multiple command with the trick: http://qiita.com/usagi/items/5a0f4edc99420173abb3 ( Sorry, its wrote in Japanese. )
The abstract of the trick are:

Use the top-level command to sh or cmd.exe or powershell.exe or any other common shell program.
Set the top-level args to -c ( with sh) or /c ( with cmd.exe ) or -Command ( with powershell.exe ).
Set sub-level args to any your command with \" quoted. ( eg. :  "args" : "\"your-command arg1 arg2 arg3\"" )

Example tasks.json:
{ "version": "0.1.0"
, "command": "sh"
, "isShellCommand": true
, "showOutput": "always"
, "args": [ "-c" ]
, "tasks":
  [ { "taskName": "la"
    , "suppressTaskName": true
    , "args": [ "\"ls -la\"" ]
    }
  , { "taskName": "hoge"
    , "suppressTaskName": true
    , "args": [ "\"echo hoge\"" ]
    }
  , { "taskName": "build"
    , "suppressTaskName": true
    , "args": [ "\"mkdir -k build; cd build; cmake ..; make\"" ]
    }
  , { "taskName": "debug"
    , "suppressTaskName": true
    , "args": [ "\"cd build; gdb bin/my-executable\"" ]
    }
  ]
}

It's can run in the current release version ( 0.10.3 ). :rabbit:

Nice @usagi , this is my solution:
{
	"version": "0.1.0",
	"command": "cmd",
	"isShellCommand": true,
	"showOutput": "silent",
	"args": ["/C"],

	"tasks": [
        {
        "taskName": "Build Type Script",
        "suppressTaskName": true,
        "isBuildCommand": true,
        "args": ["tsc -p ."]
        },
        {
        "taskName": "Open Browser",
        "suppressTaskName": true,
        "isBuildCommand": true,
        "args": ["live-server --open=public_html"]
        }
	]
}

you can shortcut too
{ "key": "ctrl+shift+b",          "command": "workbench.action.tasks.runTask" }

when i hit ctrl+shift+b, subtasks show up:

Bonus:
you can define your own shortcut:
{ "key": "ctrl+shift+alt+o",          "command": "workbench.action.tasks.runTask/taskName" }

This is very important. Say I want a test command and a build command. The test command needs to run mocha and the build command babel or tsc for example. "command" should be allowed for individual tasks in the tasks array.
Nice workaround though!

@felixfbecker It's nice follow-up :+1: We can use "windows", "linux", and "osx" for cross-platform portability.

Another plus one - and in my case, I can't use the workaround since I need a per OS switch and I can't rely on sh or cmd.

@cfjedimaster Why can't you use the workaround exactly?

Because my top level command would be start on Windows and open on OSX. So I can't use just cmd or just start and pass different args.

@cfjedimaster You mean like this?
{
  "osx": {
    "command": "sh",
    "args": ["-c"],
    "tasks": [
      {"name": "run", "args": ["open mysuperawesomefile.txt"]}
    ]
  },
  "windows": {
    "command": "cmd",
    "args": ["/C"],
    "tasks": [
      {"name": "run", "args": ["start mysuperawesomefile.txt"]}
    ]
  }
}

Yes. But to be clear, I wouldn't want to replicate all the tasks for both. Basically, I want to be able to do N tasks per file as the original requestor suggested. For me, 9 of the 10 tasks I want can all be in one definition. One of them is different though and needs to do X for Windows and Y for OSX.

Yeah I know it is a lot of code duplication, which is why they should really implement this feature. But for the time being, it's what works.

@danielschmitz From your example, only the first taskName runs when I press Ctrl+Shift+B. I don't get presented with a list as in your screenshot.
task  does however present me with that list and both my options runs.
{
    "version": "0.1.0",
    "command": "cmd",
    "isShellCommand": true,
    "showOutput": "silent",
    "args": ["/C"],

    "tasks": [
        {
        "taskName": "Build CustApp",
        "suppressTaskName": true,
        "isBuildCommand": true,
        "args": ["${cwd}/Sw/A_XMC/make_all.bat"]
        },
        {
        "taskName": "GTAGS",
        "suppressTaskName": true,
        "isBuildCommand": true,
        "args": ["gtags"]
        }
    ]
}

Sorry @danielschmitz I misread your comment on adding workbench.action.tasks.runTask. Though I created a ticket for the same popup behavior with workbench.action.tasks.build.
https://github.com/Microsoft/vscode/issues/2840

@bbenoist I set up my VS Code tasks to use my Gruntfile.js tasks.
I simply hit F1 and enter task test and it runs my tests. I can do this for any task I have configured.
{
    "version": "0.1.0",
    "command": "grunt",
    "isShellCommand": true,
    "args": [
        "--no-color"
    ],
    "tasks": [
        {
            "taskName": "clean",
            "args": [],
            "isBuildCommand": false,
            "problemMatcher": "$msCompile"
        },
        {
            "taskName": "build",
            "args": [],
            "isBuildCommand": true,
            "problemMatcher": "$tsc"
        },
        {
            "taskName": "tslint",
            "args": [],
            "isBuildCommand": false,
            "problemMatcher": "$msCompile"
        }
    ]
}

@brennanMKE Thanks for the info but I needed to call different executables for different tasks. See @danielschmitz's example implementation for a practical example.  https://github.com/Microsoft/vscode/issues/981#issuecomment-162330360
@danielschmitz @usagi @felixfbecker @cfjedimaster  Thanks everyone for the feedback and suggestions!
FYI, I ended up using Jake to define all my tasks and pushed my concept up to calling a vscode-configure task which makes the Jakefile regenerate its tasks and the appropriate .vscode configuration from the content of the JSON file.
First here is a bit of context about the app I wanted to configure VS Code for:

Native development: C++ and Fortran
Build is CMake-based.
Daily usage of  remote clusters and Vagrant boxes to build and debug.
Cross platform code on both Windows and Linux.

My custom Jakefile allowed me to add the following capabilities to VS Code:

Multiple target configuration management. You can create variants of any property.
Execute task locally, via SSH or via Vagrant SSH and WinRM commands.
Support remote debugging by generating appropriate configuration for webfreaks.debug.
Support Error and Warning locations by generating the appropriate problem matchers. It even works when building via SSH.
Allow configuration inheritance to prevent configuration duplication.
Declare virtual configurations whose purpose is only to be inherited.
Any task can make a reference to a single custom problem matcher.

Unfortunately, I cannot share my work for now because I need a special agreement for this. However, I can show you an example of a JSON configuration which would be compatible with the system I described:
{
  "defaultConfig": "ubuntu-debug",
  "problemMatchers": {
    "gcc": {
      "owner": "gcc",
      "fileLocation": [ "relative", "${workspaceRoot}" ],
      "pattern": {
        "regexp": "^(${sourceDir}\\/)?(.*):(\\d+):\\d+:\\s+(warning|error):\\s+(.*)$",
        "file": 2, "line": 3, "severity": 4, "message": 5
      }
    },
    "gfortran": {
      "owner": "gfortran",
      "fileLocation": [ "relative", "${workspaceRoot}" ],
      "pattern": [
        {
          "regexp": "^(${sourceDir}\\/)?(.*):(\\d+)\\.\\d+:\\s*$",
          "file": 2, "line": 3
        },
        {
          "regexp": "^\\s*(.*)$",
          "code": 1
        },
        { "regexp": "^.*$" },
        {
          "regexp": "(Error|Warning):\\s*(.*)$",
          "severity": 1, "message": 2, "loop": true
        }
      ]
    }
  },
  "configs": {
    "local": {
      "enabled": false,
      "sourceDir": "${workspaceRoot}",
      "cpus": 8,
      "problemMatchers": [ "$msCompile" ]
    },
    "vagrant": {
      "enabled": false,
      "useVagrant": true,
      "sourceDir": "/src",
      "cpus": 1,
      "problemMatchers": [ "gcc", "gfortran" ]
    },
    "debug": {
      "enabled": false,
      "cmake": { "buildType": "Debug" }
    },
    "release": {
      "enabled": false,
      "cmake": { "buildType": "Release" }
    },
    "ubuntu-debug": {
      "enabled": true,
      "buildDir": "/home/vagrant/build-debug",
      "parents": [ "vagrant", "debug" ]
    },
    "ubuntu-release": {
      "enabled": true,
      "buildDir": "/home/vagrant/build-release",
      "parents": [ "vagrant", "release" ]
    },
    "local-debug": {
      "enabled": true,
      "build-dir": "/home/bbenoist/build-debug",
      "parents": [ "local", "debug" ]
    },
    "local-release": {
      "enabled": true,
      "build-dir": "/home/bbenoist/build-release",
      "parents": [ "local", "release" ]
    }
  }
}

Alternatives which would provide all the capabilities listed below in a simpler configuration file are welcome :smiley:

Not 100% related but interested people can take a look at the new Shell extension I made. It's able to run shell commands directly from the editor :rocket:

{
	"version": "0.1.0",
    "command": "sh",
	"isShellCommand": true,
    "showOutput": "silent",
	"args": ["-C" ],

    "tasks": [
        {
             //CHILDREN WITH COMMAND ;)
            "taskName": "Build Type Script",
            "suppressTaskName": true,
            "isBuildCommand": true,
            "command": "tsc",
            "args": ["tsc -p -e ."]
        },
        {
            "taskName": "Webpack",
            "suppressTaskName": true,
            "command": "${workspaceRoot}/node_modules/.bin/webpack",
            	"args": [
                "app.ts",
                "--display-modules",
                "--progress"
            ]
        }
    ],

    "problemMatcher": "$tsc",
	"echoCommand": true,
	"tasks": [
		{
			"args": [
				"-d"
			],
			"suppressTaskName": true,
			"taskName": "webpack dev",
			"isBuildCommand": true
		},
		{
			"args": [
				"-p"
			],
			"suppressTaskName": true,
			"taskName": "webpack dist",
			"isBuildCommand": false
		}
	]
}

When I try to run this task unter osx I get:
Warning: global matchers and tasks can't be mixed. Ignoring global matchers.
running command$ sh -C -d
sh: -d: invalid option
Usage:	sh [GNU long option] [option] ...
	sh [GNU long option] [option] script-file ...
GNU long options:
	--debug
	--debugger
	--dump-po-strings
	--dump-strings
	--help
	--init-file
	--login
	--noediting
	--noprofile
	--norc
	--posix
	--protected
	--rcfile
	--restricted
	--verbose
	--version
	--wordexp
Shell options:
	-irsD or -c command or -O shopt_option		(invocation only)
	-abefhkmnptuvxBCHP or -o option

idea?

I think the schema in this request could solve the problem: https://github.com/Microsoft/vscode/issues/4475
It allows to define multiple commands and it is very easy to transform to the current tasks.json schema.

@danielschmitz Hmm, the pop up seems to work, but that "runTask/<task_name>" doesn't seem to work.  It says "No handler found". I'd like to keybind 2 different task_names.  Can't seem to find any documentation on that "/<task_name>"....

I'm getting questions on this issue for my Status Bar Tasks extension. My extension simply passes whatever is in the arguments directly to Node's child_process module for execution. To make VS Code happy, I have a shell command in the top-level command (aka the @usagi method).
It looks like this slipped for the April iteration. Can we expect this to be fixed in May?

@DanB91 this code  is a suggestion.

It would be also nice to be just able to use the "play" button to start a task instead of navigating trough a menu. Maybe an option for each task , serial , parallel, watch ...

@danielschmitz the suggestion code, with the command property within the tasks themselves, says "Propery 'command' not allowed'.  Plus,without a command property at the top outside of tasks, ctrl+shift+b says there's no tasks found.

I actually used gulp to solve this issue, since while this is a vs code limitation, it also is a single-threaded limitation (cannot have two file-watchers for example). Instead, gulp is file-watching, I simply run the task from vs code so I can see the output and control the task life cycle. Note that I do not filewatch from the task.json and it happens inside the gulp file. Also the gulp file uses the tsconfig for properties, so tsc is configured in the usual manner.
gulpfile.js
var gulp = require('gulp');
var markdown = require('gulp-markdown');
var ts = require('gulp-typescript');

gulp.task('markdown', function() {
    return gulp.src('**/*.md')
        .pipe(markdown())
        .pipe(gulp.dest("build/"));
});

var tsProject = ts.createProject('tsconfig.json');
gulp.task('typescript', function() {
    var tsResult = tsProject.src()
		.pipe(ts(tsProject));

	return tsResult.js.pipe(gulp.dest('build'));
});

gulp.task('default', function() {
    gulp.watch('**/*.md', ['markdown']);
    gulp.watch('**/*.ts', ['typescript']);
});

tasks.json
{
    "version": "0.1.0",
    "command": "gulp",
    "showOutput": "always",
    "isShellCommand": true,
    "tasks": [
        {
            "taskName": "default",
            "isBuildCommand": true,
            "showOutput": "always"
        }
    ]
}

@viperscape This has little to do with being single-threaded, Gulp is just as single-threaded as VS Code itself, and tasks are always run in a seperate process.

@felixfbecker the gulp task is watching two file types simultaneously:
gulp.task('default', function() {
    gulp.watch('**/*.md', ['markdown']);
    gulp.watch('**/*.ts', ['typescript']);
});

Using this example: I'm not sure how you could simulate this using vscode tasks because filewatching is a blocking procedure.

@viperscape this is issue is not about running two tasks in parallel, but defining different commands for different tasks

@felixfbecker I understand, just pointing out that the current work around posted above does not ideally work for blocking commands, thus the gulp solution. I'm eager to do this all within vs code tasks, instead of gulp-- when full support is added. While it's being developed, I thought it was important to point this out, as I assume people might want to run a file watcher on multiple types of files to run separate commands on them; like compiling markdown and typescript. Additionally, if anyone is interested, there is gulp-run which might also fill any gaps in the mean time.

@viperscape Even if VS Code supports multiple commands you will still not be able to run them in parallel...

@danielschmitz I've configured tasks in a similar way to you.  However after I run the live-server task, any subsequent task I run results in the VSCode error "There is an active running task right now. Terminate it first before executing another task".  Obviously live-server continues to run to serve the page.
VSCode appears to only support one running task at a time.  I wonder; are you experiencing the same behaviour? Have some other configuration you haven't listed in this issue log that lets the magic happen?

@ZodmanPerth
got this error too.... :(

my personal soluction now is open a console/terminal and run a npm task...

@danielschmitz I sort of do something similar with my  Status Bar Tasks extension. Since it runs tasks using Node's child_process module, I believe it can run simultaneous tasks.

So I added this to my tasks.json:
{
    "version": "0.1.0",
    "command": "sh",
    "isShellCommand": true,
    "showOutput": "always",
    "args": [
        "-/C"
    ],
    "tasks": [
        {
            "taskName": "tsc",
            "suppressTaskName": true,
            "args": [
                "-p \"./src/tsconfig.json\""
            ]
        }
    ]
}

Now when I press ctrl alt B I get this:

What am I missing - how do I bind the task to particular keys?
ideally i want to add another one, to run mocha tests.

All samples with specified file name, Is it possible to pass ${file} which means current file to args of tasks?
Thanks,

Hope this out soon with proper UI with concurrent tasks, visible tasks names, runtime state.

I also belive running tasks with state could be shown on bottom status bar and clickable to open/hide output.

This is the solution for cmake . and make
{
    "version": "0.1.0",
    "command": "sh",
    "args": ["-c", "cmake . && make"],
    "isShellCommand": true,
    "showOutput": "always"
}

@dbaeumer On the backlog for an awfully long time (and related issue: https://github.com/Microsoft/vscode/issues/6496). Is this just not going to happen in the foreseeable future?
I'm getting a little bit of negative feedback (https://github.com/GuardRex/vscode-status-bar-tasks/issues/8) regarding my extension over this problem persisting. My extension is opinionated on this point, where I have it only using what the dev puts into the task arguments as the full command to run for Node's child_process module.
Two devs now have asked me about not doing it that way and figuring out some option that will allow the top-level command to be prefixed to the arguments the way VSC normally runs tasks from the Command Palette.
However, I agree with this issue and those 24 other :+1:'s up there .... we really need a way to tell it to either add the command or don't (e.g., https://github.com/Microsoft/vscode/issues/6496).

@GuardRex I see your frustration around this (and from the others). Believe me.
Since we are a small team of developers, there is only so many feature requests and issues we can work on for one milestone. Every month we pick items from the backlog to plan for the current iteration. Please see https://github.com/Microsoft/vscode/wiki/Issue-Tracking#planning for more information. Nevertheless we always welcome pull requests and are happy to accept them if they meet our quality standards.

@dbaeumer wanted to say thank you to all you guys, despite all current limitations and issues VSCode became my editor of choice, you are doing really great job.

The problem with "use sh as the task runner" is that that won't work for Windows developers.
Or, alternatively, "use cmd as the task runner" won't work with Mac / Linux developers.
Starting out in VSCode, I immediately run into this problem, because I want to build typescript and sass files into my runnable project, and there's no simple way to specify "do A and B when building."
So, I have to install and learn one of the zillions of build tools available in node (like gulp) just to get my very first page off the ground.
This is an extremely poor new-user experience, and for teams of more than one developer, forcing everybody to use the same OS is of course a non-starter.
Therefore, I submit that this should actually be a higher priority problem to fix!

@jwatte You can already specify different commands for different platforms, as mentioned above in this thread and explained at http://code.visualstudio.com/docs/editor/tasks. To just run a typescript and a sass command what you want would look something like this:
{
    "version": "0.1.0",
    "windows": {
        "command": "cmd",
        "args": ["/C", "typescript command && sass command"]
    },
    "linux": {
        "command": "sh",
        "args": ["-c", "typescript command && sass command"]
    },
    "osx": {
        "command": "sh",
        "args": ["-c", "typescript command && sass command"]
    },
    "isShellCommand": true,
    "showOutput": "always"
}

Also as noted above, it's a fair bit of repetition, but it works. An alternative method, to avoid the repetition, would be to use npm's own script-running capabilities. There's no need to go so far as to use gulp or grunt here.

This feature will be nice because if you had a dotnet project and a typescript project at the same root directory, you have to choose between one or another to build.

I would like to be able to build a whole project, in one build command and create 3 files in this example:

Sass core -> master.css
Sass theme -> mytheme.css
TypeScript -> master.js

Sneaky trick, settting space as command works on Windows:
{
    "version": "0.1.0",
    "command": " ",
    "isShellCommand": true,
    "args": [],
    "suppressTaskName": true,
    "tasks": [
        {
            "taskName": "build",
            "args": ["dotnet", "build", "src/Api/"],
            "isBuildCommand": false,
            "isWatching": false,
            "problemMatcher": "$msCompile"
        }
    ]
}

Another thing you can do is put it in a sh file to make it easy:
{
    "version": "0.1.0",
    "command": "sh",
    "linux": {
        "command": "sh",
        "args": [
            "${workspaceRoot}/.vscode/build.sh"
        ]
    },
    "osx": {
        "command": "sh",
        "args": [
            "${workspaceRoot}/.vscode/build.sh"
        ]
    },
    "windows": {
        "command": "sh",
        "args": [
            "'${workspaceRoot}\\.vscode\\build.sh'"
        ]
    }
}

Note: I am not sure if the windows sh works because I have WSL installed or because I installed git with linux commands, or if it just works in windows.
Then in the sh file You could have something like this:
# Build the TypeScript
tsc

# Build the core css
node-sass src/sass/main.scss dist/css/main.css

# Build the theme
node-sass src/sass/themes/material/main.scss dist/css/themes/material.css

@Ciantic Not sure if I'm missing the point here. But why the space? This works for me:
{
    "command": "${workspaceRoot}/Sw/A_XMC/make.bat",
    "isShellCommand": true,
    "showOutput": "always",
    "suppressTaskName": true,
    "tasks": [
        {
            "taskName": "1. Build",
            "args": ["all"],
            "isBuildCommand": true
        },
        {
            "taskName": "2. Rebuild",
            "args": ["rebuild"]
        },
        {
            "taskName": "3. Clean",
            "args": ["clean"]
        }
    ]
}

@csholmq This issue is about defining different commands per task. You are defining make.bat for all tasks.

@felixfbecker Ah, so simple. That's what I missed :)

On Linux, I suggest using env -- foo -arg blah instead of bash -c "foo -arg blah" to get rid of those inconvenient quotes.

I think that the spirit of VSCode tasks is: forget bash scripts, just define here what you want to do (build resources, compile, deploy etc.). It's impossible to achieve this using a common command for everything (unless you use the cmd or sh tricks).
I think that the most flexible solution would be to allow BaseTaskConfiguration inside the TaskDescription.
E.g.
{
    "version": "0.1.0",
    "command": "my_default_command",
    "args": ["--default", "--args"],
    "isShellCommand": true,
    "showOutput": "always",
    "suppressTaskName": true,
    "tasks": [
        {
            "taskName": "run",
            "args": ["main.py"],
			"windows": {
				"command": "python.exe"
			},
			"linux": {
				"command": "python"
			}
        }
    ]
}

Is it possible defining different commands by different file extensions?
[
    {
        "extension" : ".ts",
        "version": "0.1.0",
        "command": "tsc",
        "isShellCommand": true,
        "args": ["./${file}"],
        "showOutput": "silent",
        "problemMatcher": "$tsc"
    },
    {
        "extension" : ".scsc",
        "version": "0.1.0",
        "command": "node-sass",
        "isShellCommand": true,
        "args": ["./${file}"],
    }
]

In fact i need to build the current opened file and i don't want to use gulp and other tools
Thanks

I added support to be able to have different command per tasks. It looks like this:
{
    "version": "0.1.0",
    "tasks": [
        {
            "taskName": "grunt",
            "command": "grunt",
            "args": [
                "compile"
            ]
        },
        {
            "taskName": "gulp",
            "command": "gulp",
            "args": [
                "deploy"
            ]
        }
    ]
}

This thread is very long and quite some comments deal with workarounds to overcome the one command limitation. The new solution will also support OS specific command redefinition per task.
Is there anything that is not covered by this expect the request to have a command per file extension?

@dbaeumer With this new feature, is the top-level command that we current have going away? ... or does it work such that if it sees the command on the task that it ignores the top-level command?

This is perfect for the use cases I've seen in our projects.
On Fri, Jan 20, 2017, 15:35 Luke Latham<EMAIL_ADDRESS>wrote:

@dbaeumer https://github.com/dbaeumer With this new feature, is the
top-level command that we current have going away? ... or does it work such
that if it sees the command on the task that it ignores the top-level
command?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode/issues/981#issuecomment-274185963,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAiaa89zOHNfrGqTpCE4TFWdLt6JEkUzks5rUSiegaJpZM4GuOMJ
.

@GuardRex you can still define a top-level command that tasks inherit. If they define their own it overrides the top level.

@dbaeumer Is it possible to trigger one command based on the files that have changed when in watch mode? Here is an example of what I mean:

{
    "version": "0.1.0",
    "tasks": [
        {
            "taskName": "typescript",
            "command": "tsc",
            "watchFiles": [
                "**/*.ts",
                "tsconfig.json"
            ]
        },
        {
            "taskName": "sass",
            "command": "node-sass",
            "args": [
                "src/scss/master.scss"
            ],
            "watchFiles": [
                "**/*.scss"
            ]
        }
    ]
}

@TheColorRed no this is not planned. For typescript this is better achieved using the tsc -w option. For compilers that don't support this I would recommend using an external task system that supports this (e.g. gulp watch). If we do this in VSCode we would start a node-sass process everytime a *.scss file changes. Not very efficient and it will drain the battery on laptop :-)

@dbaeumer  Will there be command tu see all currently running tasks and to kill individual and/or all of them.

There is also a watch CLI on npm, this is totally possible with the current system.

@dbaeumer That is too bad, I was hoping that a gulp watch like system could be added to this... Many of my gulp files are redundant, so to me it would be more convenient to have it in the json file :-)

@edvinv we rely on the terminal support here. If you start a task in the terminal you will see something like this:

So there is currently no plan to built an extra UI for this.

@TheColorRed IMO such a support should then go into the corresponding language server. I know that for TS we have plans to support compileOnSave and full project compile. Something comparable could be built for saas as well.

@dbaeumer Just tried it in 1.9 and it's working nicely, although I did notice one thing, a "isShellCommand": true at the top level isn't inherited by tasks under it if they have their own command. Adding isShellCommand:true to each task (where required) fixes it.
Not sure if this is intentional; I can see the logic either way though I would have expected it to be inherited.

@stkb actually this is intended. The idea is that as soon as you specify a command on a task level it will not inherit from a global command. I thought that will be easier to explain especially when merging would merge args and options.

@dbaeumer not sure if no one thought about this or if the idea was omitted on purpose, but in the launch.json file there is an option for preLaunchTask. However there isn't a way to run multiple launch tasks that I can see.

@TheColorRed do you mean more than one task on prelaunch? The idea here is that you can have compound tasks in the tasks.json so that the debugger can still refer to one pre launch task.

@dbaeumer what I have in mind is having 2+ pre launch tasks, so for example take this configuration:
launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "preLaunchTask": [
                "Build Server",
                "Build Client"
            ]
        }
    ]
}

This would then build the server and once that is done build the client.
Another thought
Allow for a task to have something like an onComplete event which could trigger another task. So, for example using the above you could do something like this:
launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "preLaunchTask": "Build Server"
        }
    ]
}

This would then trigger the task below as it does now, but then that task has an onComplete which would then trigger the other task. This would helpful in chaining tasks together.
tasks.json
{
    "version": "0.1.0",
    "tasks": [
        {
            "taskName": "Build Server",
            "onComplete": "Build Client"
            // Other settings here
        },
        {
            "taskName": "Build Client"
            // Other settings here
        }
    ]
}

@TheColorRed ok. We have something like this on the plan however the syntax will be different. It will go more like
{
    "tasks": [
        {
            "taskName": "Build Server",
            // More properties
        },
        {
            "taskName": "Build Client",
            // More properties
        },
        {
             "taskName": "Build",
             "dependsOn: ["Build Server", Build Client"]
        }
    ]
}

We are still discussion how to best express sequencing and parallel execution here.

I apologize if I have missed it already, but is there a way to configure tasks.json to run all tasks defined with a single, top level task name? Ideally, I would like to be able to run the default
ctrl + shft+ B
and have it kick off all tasks defined.
E.g:
I have all my scripts defined in my package.json to so they're available across all IDEs.
  "scripts": {
    "typescript": "tsc -w",
    "gulp": "gulp",
    "test": "./node_modules/karma/bin/karma start",
    "build": "webpack --config build/webpack.build.config.js",
    "start": "webpack-dev-server --config build/webpack.dev.config.js"
  },

For vs code though, I would like to be able to bundle all them up in the tasks.json. Then pop the default build command have it kick off all these tasks:
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "npm",
    "isShellCommand": true,
    "args": [
        "run"
    ],
    "showOutput": "always",
    "tasks": [
        {
            "taskName": "typescript",
            "isBuildCommand": true
        },
        {
            "taskName": "test",
            "isBuildCommand": true
        },
        {
            "taskName": "start",
            "isBuildCommand": true
        },
        {
            "taskName": "gulp",
            "isBuildCommand": true
        }
    ]
}```

Yes, but the syntax will be slightly different. More along something like this:
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "npm",
    "isShellCommand": true,
    "args": [
        "run"
    ],
    "showOutput": "always",
    "runAll": true // <= DOES SOMETHING LIKE THIS EXIST????
    "tasks": [
        {
            "taskName": "typescript",
        },
        {
            "taskName": "test",
        },
        {
            "taskName": "start",
        },
        {
            "taskName": "gulp",
        },
        {
             "taskName": "gulp",
             "dependsOn" : ["gulp", ....],
             "isBuildCommand": true
        }
    ]
}

Major reason being is that I actually want to deprecated isBuildCommand in favour of assigning key bindings to task so that people can use more than one keyboard short cut

Fantastic! Will each of those subtasks be assigned their own dedicated terminal session, or all stdout & stderr redirected to the output?

The plan is to give them all there own terminal.

From the comments above, I am not sure what works and what does not.
This is my tasks.json which consists of 2 tasks to compile client side code and express server code. If I run tsc with the separate tsconfigs on the command line, it works fine.  In VSCODE it appears that only the first task is run. Is there something missing or is it not possible to do this in VSCODE?
{
"version": "0.1.0",
"tasks": [
{
"taskName": "tsc",
"command": "tsc",
"args": ["-w","--listEmittedFiles","-p","tsconfig-client.json"],
"isBuildCommand": true,
"isShellCommand": true,
"isBackground": true,
"suppressTaskName": true,
"problemMatcher": "$tsc-watch"
},
{
"taskName": "tsc",
"command": "tsc",
"args": ["-w","--listEmittedFiles","-p","tsconfig-server.json"],
"isBuildCommand": true,
"isShellCommand": true,
"isBackground": true,
"suppressTaskName": true,
"problemMatcher": "$tsc-watch"
}
]
}

I don't think that's supported ... at least "yet" ... what you'll probably need to do is either ...

Just run them as two separate tasks. Click one ... click the other, or ...
Combine those two into a script ... then trigger the script to run with a single command. I'm just guessing tho, since all of my tasks are single, independent tasks.

@GuardRex just tried it with latest 1.10.1 build, but got error:
Error: the task 'START' doesn't define a command. The task will be ignored. Its definition is: {     "taskName": "START",     "dependsOn": [         "webpack-dev-watch",         "npm-start"     ] }

Problem solved, my tasks.json file has "version": "0.1.0", when i changed version to 2.0.0 it starts working!

@psulek Great catch! I'm glad you let me know ... I have an extension that doesn't support this now, but my users might be demanding that I do support it later.

is there a way to make the tasks running one after the other?
{             "taskName": "Build",             "dependsOn": ["Client Build", "Server Build"]         }
this will client build in parallel of server build and the last build will hide the first build result ("press a key to continue").
I actually created a meta task for test that call all the test tasks on the dotnet projects i need. but the first runs are hidden by the last one until you press enter.

@Jonathan34 I'm sorry. That's not supported by the extension. That's a new feature for VSC, and I haven't had a chance to look at it.

@Jonathan34 yes there is: The dependsOn works like dependent task in any other task runner (for example like gulp). If you want to depend the client build on the server build do:
{
    "version": "2.0.0",
    "tasks": [
        {
            "taskName": "Client Build",
            "command": "gulp",
            "dependsOn": "Server Build",
            "args": ["build"],
            "isShellCommand": true,
            "options": {
                "cwd": "${workspaceRoot}/client"
            }
        },
        {
            "taskName": "Server Build",
            "command": "gulp",
            "args": ["build"],
            "isShellCommand": true,
            "options": {
                "cwd": "${workspaceRoot}/server"
            }
        }
    ]
}

This will execute them in sequence.

@dbaeumer As this is true you cant use it like this:
taskA -> depends on [taskB, taskC] - where taskB and taskC is executed in synchronous way because they are executed in parallel.
You need to do it this way (in current implementation):
taskC -> depends on taskB
taskB -> depends on taskA
And you need to run taskC, which is not equal to run taskA which has deps on [taskB, taskC].

@psulek agree in our scenario.
But the client server build example had an artificial Build task which didn't run a command. Therefore I removed it and made client build depend on server build.
So if you want to run two tasks in parallel you need a artificial task (without a command) to describe this. If you want to run two task in sequence you don't need and artificial task.

@dbaeumer @psulek that should work i will try! thanks
I have another problem with this:
in launch.json (v 0.2.0) i have added some debugging entries with a preLaunchTask.
when i now debug, i get: There is a task {0} running. Can not run pre launch task build.
if i empty the content of the preLaunchTask, it works but the code is not built before.
Could it be that upgrading the tasks,json to v2.0.0 while having a launch,json at version 0.2.0 creates some incompatibilities?
launch.json
"version": "0.2.0",
    "configurations": [{
     {
            "name": ".NET Core Launch (myapp)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "${workspaceRoot}/Services/myapp/src/bin/Debug/netcoreapp1.1/myapp.dll",
            "args": [],
            "cwd": "${workspaceRoot}/Services/myapp/src/bin/Debug/netcoreapp1.1/",
            "stopAtEntry": false,
            "externalConsole": false,
            "env": {
                "ASPNETCORE_ENVIRONMENT": "Local",
                "ASPNETCORE_URLS": "http://*:5000"
            }
     }]

tasks.json
"version": "2.0.0",
    "command": "",
    "isShellCommand": true,
    "args": [],
    "tasks": [{
            "taskName": "build",
            "command": "dotnet",
            "args": [
                "build"
            ],
            "options": {
                "cwd": "${workspaceRoot}"
            },
            "isBuildCommand": true,
            "showOutput": "always",
            "problemMatcher": "$msCompile"
        },
        //... some other tasks here not related to build and a dependency between those.
]}

This is definitely a bug with task version 2.0.0. See https://github.com/Microsoft/vscode/issues/22250

Workaround is to empty the preLaunchTask value to "" and build manually before running the tests.

Team,
Just started using vscode and couldn't make multiple commands work, for e.g below I am trying to run a static html file in chrome and trying to transpile my Sass file:
{
    "version": "0.1.0",
    "isShellCommand": true,
    "showOutput": "silent",
    "args": [],
    "tasks": [
        {
            "taskName": "Run",
            "suppressTaskName": true,
            "isBuildCommand": true,
            "command": "Chrome",
            "osx": {
                "command": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
            },
            "args": [
                "${file}"
            ]
        },
        {
            "taskName": "NodeTranspile",
            "command": "node-sass",
            "suppressTaskName": true,
            "args": [
                "myLoc.scss",
                "myLoc.css"
            ]
        }
    ]
}

OUTPUT:
Error: no valid command name provided.
Am I doing something wrong ?
Thanks much in advance for your time.

@foo-baar Do you have to change "version": "0.1.0", to "version": "2.0.0",? ... I thought someone said that has to be done.

@GuardRex

@foo-baar Old version of VSC? What's it say for the version under Help > About?

Commands per task work even in the old runner, but require 1.9

@dbaeumer Your raised good point to my suspicion: why my vscode was not auto updated or shown me a latest version is available ? Shall it be raised as a separate bug ? (case it's not known issue)

@foo-baar yes, please open a separate issue for that. VS Code should inform you about updates.

Done @dbaeumer, Danke

Having different commands for different tasks is available since 1.9. I am closing the issue. If anyone sees problems with the support available since 1.9 please open a separate issue.

@dbaeumer Hi! Since you closed this ticket (and also closed #7863 as a duplicate of this one), does that mean that vscode now supports concurrent execution of commands?

It does with the new terminal runner you need to opt in using "version": "2.0.0"

@dbaeumer Hey, this is great. Can you advertize this to the world! See my Stack Overflow question:
https://stackoverflow.com/questions/43809502/getting-babel-to-watch-two-folders

@DrYSG we will. We are currently working on making the terminal runner the default and writing corresponding documentation.

@dbaeumer here is a idea (suggestion?) If I have 4 background tasks running, I don't really want to keep swapping the display for each task. I would like to be able to merge a few terminal outputs, and have a header (TASK 1: -> output string , etc. ) so that I can follow a few tasks at at a time and see what they are doing.

@DrYSG you may want to check out my https://github.com/vilic/biu. (Sadly not well-documented)


Create SECURITY.md

DavifM2298.

😎🔥🇮🇩

What's this
On Sun, Apr 14, 2024, 9:13 AM DavidM2298 @.***> wrote:

Closed #120 https://github.com/pi-apps/pi-explorer/pull/120.
—
Reply to this email directly, view it on GitHub
https://github.com/pi-apps/pi-explorer/pull/120#event-12460408901, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AYIGK442FCSQHOTWHUEH5ALY5J6IPAVCNFSM6AAAAABFMPK4U2VHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJSGQ3DANBQHA4TAMI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Machine linux-40 lost external connection device.

Is there an existing issue for this?

[X] I have searched the existing infra issues

Type of Request
infra task
Infrastructure Environment
LUCI, Github, Cocoon scheduler, Autosubmit, etc...
What is happening?
Machine linux-40 lost external connection device.

Steps to reproduce
Step 1:
Step 2:
..
Step n:
Expected results
I expect to see X when Y is finished.

External connection has been restored by rebooting Android device.


Add package to termux-packages

Expected Behavior
Kubecolor works on Android via Termux
Current Behavior
Kubecolor panics (see #69)
Solution is that there is need for an Android-specific release (GOOS=android). So what about adding it to the official termux package list?
Goal is to be able to do:
pkg install kubecolor

Context
Please provide any relevant information about your setup. This is important in case the issue is not reproducible except for under certain conditions.

Operating System: Android w/ Termux
kubectl version: N/A
kubecolor version: 0.2.1

Termux has docs here: https://github.com/termux/termux-packages/blob/master/CONTRIBUTING.md
Could take inspiration from the kubectl build script: https://github.com/termux/termux-packages/tree/master/packages/kubectl

I've created a PR here: https://github.com/termux/termux-packages/pull/19486


Step 5, createNavClickListener in clickListener

at the bottom of the page
val button = view.findViewById<Button>(R.id.navigate_destination_button)
button?.setOnClickListener(
        Navigation.createNavigateOnClickListener(R.id.flow_step_one_dest, null)
)

calling createNavigateOnClickListener in onClickListener isn't equal to previous example with
val button = view.findViewById<Button>(R.id.navigate_destination_button)
button?.setOnClickListener(
        findNavController().navigate(R.id.flow_step_one_dest)
)

should be like
Navigation.createNavigateOnClickListener(R.id.flow_step_one_dest, null)

another point is that setOnClickListener should be with curly braces { }

Thanks for reporting this and the feedback!
I added the explicit null for the argument bundle so that the two would match. You shouldn't need to curly braces since the createNavigateOnClickListener method creates the lambda - see the docs for this.
If you still think this is an issue with the codelab, please re-open this issue with the step number and/or location in the code where you encountered this issue.


ENTESB-17306 Use links to product documentation in Quarkus metadata

@fbolton in the end the implementation is in a single json file for all extensions. This file overrides parts of the upstream metadata by the product values. That's exactly what we need for the support levels and for guide URIs. Could you please throw a quick look at the file?

@ppalaga Right, so we need to maintain the .json file, which contains explicit URLs for all the guides. This looks like a very flexible solution to me, since we can point the guides at any URL we need.
We probably don't have the definitive list of supported Camel Extensions (i.e. supported in the Camel Extensions for Quarkus 2.2 GA release) in our guide yet. I'll check with Gerry to make sure we update the guide to included all of the supported extensions (if necessary).
Anyway, the solution looks good to me. Thanks, Peter!

Right, so we need to maintain the .json file

Yes, just note that product/src/main/generated/camel-quarkus-product.json is generated based on data from product/src/main/resources/camel-quarkus-product-source.json. So strictly speaking we'll maintain camel-quarkus-product-source.json and the script that transforms it into camel-quarkus-product.json

Still no luck with pulling containers from Docker Hub. Merging in spite of that.


Cannot delete unused ACME Client issued cert after switching from Let's Encrypt Staging to Production

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[x] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[x] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Describe the bug
I'm getting a 200 {"result": "not found"} response when trying to delete an unused certificate that was created via the ACME Client. The certificate continues to exist in the Web GUI.
This certificate was created with the ACME client configured to use the Let's Encrypt Staging server. After the cert was successfully issued, I edited the account under https://opnsense/ui/acmeclient/accounts to use the Let's Encrypt production CA instead and issued a new certificate. I then configured the Web GUI to use the production certificate.
To Reproduce
Steps to reproduce the behavior:

Set up the acme plugin with an account, validation method and certificate and use the staging environment to get a test certificate which works fine.
Then change in the settings tab the LE environment to 'Production Environment' and save and apply the new setting.
Then go to the certificates tab and re-issue the same certificate. There should now be two certificates in the system trust store.
Go to System -> Settings -> Administration and set the SSL certificate to the production-based cert. (this step may not be necessary to reproduce the bug but it's what I did)
Restart Web GUI
Go to System -> Trust -> Certificates and try to delete the staging cert.

Expected behavior
The unused staging cert is deleted.
Describe alternatives you considered
Given the similarities between this bug and #1528, I'll bet that if I created a new account under the acme client instead of editing the existing one, that I would be able to delete the staging cert.
Screenshots

Relevant log files
I checked the log files and don't see any new log entries after attempting to delete the cert, even at the debug level.
Additional context
I'm not sure whether the root issue is in the trust store or the ACME client. If it turns out to be a bug in the certificate trust store I can move this issue to the core repo.
Environment
OPNsense 24.7.10_2-amd64

Then go to the certificates tab and re-issue the same certificate. There should now be two certificates in the system trust store.

I cannot reproduce this step. In my test the Staging certificate was just replaced with the Production certificate (as expected, because Acme Client keeps track of the Trust Storage IDs).

I'm getting a 200 {"result": "not found"} response when trying to delete an unused certificate that was created via the ACME Client.

Unfortunately also not reproducable.
Please try again and verify that all required steps are documented. It seems like there is something missing from the documented steps.

In /var/etc/acme-client/certs ... So with that permissions I can't view or delete the new certificates in System -> Trust -> Certificates.

This assumption is wrong. The System Trust Storage will never access this directory.

Renewing the existing certificates with right permissions aren't affected, just new requested ones.

I've just created a new certificate and it works perfectly fine; it was flawslessly imported to System -> Trust -> Certificates.

This assumption is wrong. The System Trust Storage will never access this directory. Instead it only works with the system configuration (config.xml), which is stored elsewhere.

I'm only saying that when I  fixed that permissions fixes the certificate showing and deleting. And I wonder why this permissions are changed for the new certificates?

I've just created a new certificate and it works perfectly fine; it was flawslessly imported to System -> Trust -> Certificates.

Yes it's imported but nothing happens when I press (i) button ->Show certificate info. Also when I mark it and press (Delete) nothing happens again and the certificate was not deleted.

but nothing happens when I press (i) button ->Show certificate info

Thanks, this is reproduable for me. I'll look into it.


Not downloading all the posts on twitter accounts.

Twitter account with about 2000+ posts, Tumblethree won't download or just end the queue citing itself as having already downloading everything even though it also knows there are 8000 posts.

There are a few blogs that display more posts than can be accessed by any app or even a browser.
Then there are their (API) restrictions that don't allow downloading older posts and/or more than a certain amount.
So it probably won't go much further, unless some error messages are logged that indicate an interruption in the download.
This has been the case more or less since the beginning (e.g. #161).


Only upload secondary index directories if they exist in the main data directory.

Only upload secondary index directories if they exist in the main data directory.

This has been confirmed working. Releasing to be ready to push Monday morning. Will, of course, adjust then if there are any comments.


Can’t recover wallets

I got hacked and can’t recover 2 accounts out of 13 I had. When I deleted extension and entered seed phrase to change password etc. 11 accounts showed up but 2 did not. Wanted to see if there was anything that could be done? This is the wallet. 1900 Ada got transferred out but the nfts are still in it.
addr1q9gxkshn3e7k20ugka03yxxayaflxjgchm026jfas9yh74yu5jjyesztg8ww7sl4j9wkudz5lxcs9pevqf2ajgjyvc3slk3sxx

@Cympullmyndyd  Make use of the Nami web app click here  to connect and import

@Cympullmyndyd no, unfortunately once something like this has happened, the damage is done.
Multisigs and other technology like hardware wallets can help prevent hacks from occuring, but once something has been done, it cannot be undone.
Do not fall for scam links.

So sorry about what happened same thing happened to me my wallet got hacked and about 0.9 btc was stolen thanks to Mr John a whitehathacker who helped me recover all of it message him on telegram too t.me/Whitehathacker217


Add purchase and received payment information to wallet / separate area?

The Issue
As both a publisher and consumer of content via the LBRY app, I would like to be able to track what content purchase was associated with my wallet transactions and also what incoming payments are associated with my published items when they are downloaded.
Currently, when you download something that has a key fee, the only trace of it is the fact that it appears in your downloads directory. If you looked at the TX for the purchase, you can't tell which item it was for.  Also, when someone purchases content you have set a key fee for, you can see the key payments coming into your wallet, but again, you can't tell which content it's for.
This would either be shown in the TX history or possibly a new area which just tracks paid download / receiving transactions.
This builds on top of:
https://github.com/lbryio/lbry-app/issues/379
https://github.com/lbryio/lbry/issues/845
and possibly:
https://github.com/lbryio/lbry/issues/803

I think this is basically #803 - we don't have this information right now, it's not a matter of adding it.
You (or someone) could update #803 to specify the additional API changes required to the transaction_XXX methods.


fzf-tmux: empty command

[x ] I have read through the manual page (man fzf)
[x ] I have the latest version of fzf
[x ] I have searched through the existing issues

Info

OS

[ x] Linux
[ ] Mac OS X
[ ] Windows
[ ] Etc.

Shell

[ ] bash
[x ] zsh
[ ] fish

Problem / Steps to reproduce
fzf: 0.42.0 (d471067)
tmux: tmux 3.2a
When executing fzf-tmux:
Line 154 creates empty var tmux_win_opts. Line 155 in fzf-tmux sets tmux_win_opts to \;. On line 166, tmux \; is evaluated which returns empty command and exit code 1.

Thanks for the report. I can reproduce the problem on tmux 3.2.
FYI, this works fine on tmux 3.3.
$ tmux -V
tmux 3.3a

$ tmux \; ; echo $?
0

$ eval 'tmux \;' ; echo $?
0

It should be fixed now. Please let me know if it doesn't work as expected. Thanks.

Works well - thanks!


wallet-api: Add 'Ada' type

In preparation for the multi-currency ledger this commit adds a new type
Ada with operations. It also puts the Value type into its own module
with a new, smaller interface.
For Plutus users, this means that Ada should now be used in most places
where Value was used previously.
For the mockchain this means that Value is the type of currency values
in transactions etc. The biggest change here is caused by the Num
instance for Value which is now missing. Transaction fees are
still paid in Ada.
We can think of Value as a vector space whose dimensions are
currencies. At the moment Value only has a single dimension -- Ada --
and Value and Ada both are just Ints. In a future PR we will change
Value to something like Value = Map Currency Int, allowing us to
represent an arbitrary mix of user-defined currencies. Thanks to the changes
in this commit, changes to the implementation of Value should only affect
the Ledger.Value module.
EDIT. The Value and Ada types are designed to work on-chain and off-chain. That is why they have a *.TH module that exports all operations as TH quotes and does not make use of typeclasses.

Or is the idea that if there is none of currency X in a value you just get that there's zero there?

Yeah I think it makes sense to treat Value like a vector with infinitely many dimensions and we only record the non-zero ones.
Another option would be to say the dimensions of Value are exactly the currencies that exist on the blockchain at the moment. Then Nothing would mean the currency doesn't exist, and Just 0 would mean it exists, but we have 0 of it. But then we would have to pass the set of all known currencies to the validator script which I don't think we should do.

I agree - I don't think we want people to be able to implicitly test whether a currency exists by doing that. Plus, that's time-dependent, because creating a currency happens "when" someone makes the currency-creating transaction, so that's complicated. This way everything behaves the same whether it's before or after the currency exists.
Probably worth a note in the code about this, though.

@nau I changed the types in marlowe to Ada whereever it made sense, does that look OK?


ci: fix mergify

Fixes #
Proposed Changes

:tada: This PR is included in version 2.3.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


swap confirmation popup - vbnt case

Is your feature request related to a problem? Please describe.
when vBNT is one of the tokens the user is swapping (from or to tokens), we would like to update the summary popup and include a link to the blog post explaining more about vBNT.
Describe the solution you'd like
update the confirmation popup with additional text link below the CTA.
only IF vBNT is one of the traded tokens.
text link: Read more about vBNT
clicking the link would open this: https://blog.bancor.network/using-bancor-vortex-46974a1c14f9
https://www.figma.com/file/3yED7o7TgoLwoEjV2EkRLL/Bancor-V2?node-id=2606%3A5275

@ashachaf I had to place the text above the CTA button. Hope thats okay. Placing it below is possible but will require a custom slot for the modal component.
Let me know if this works or if I should place it at the bottom.


Bug: NAT gateway missing from private subnet route tables

I just used this module to create a new VPC with NAT Gateways in each AZ. The problem is that the route tables for the private subnets doesn't have the NAT gateways included. This is most likely related to https://github.com/terraform-aws-modules/terraform-aws-vpc/blob/master/main.tf#L99 where nat_gateway_id =  is missing.

The problem disappeared with my current configuration, so I'm closing this issue.


Multiple sheets

Hi,
Does your brilliant lib handle multiple sheets perchance?

@KrzysztofMadejski you can now stream a specific sheet.

Thank you! Gd luck with your xlsx struggles :-)


Section: Iteration

Ready for review, @eswan18.

I think a non-counting example would be a good supplement to the current examples here:

Perhaps "Keep walking down this road until you hit 5th Street."

This bit is very confusing, imo:

I don't see any benefit in specifying range(1, 10) vs range(10) – in fact, it may be more confusing because students will only see 9 iterations. It would be simplest to go with the latter, even if the generated values are 0-9.

Looks good beyond that

Thanks, made fixes and ready for merge to develop.

Merged


Unpredictable results from the compiler

why does the code below fail with error Test.fst(8,8-8,14): (Error 19) assertion failed; The SMT solver could not prove the query, try to spell your proof in more detail or increase fuel/ifuel (see also Test.fst(8,14-8,27))
module Test
open FStar.Mul

let divides  (divisor :nat) (n:nat) = exists (k:nat). k*divisor=n
let _ = assert(divides 3 6)

but this one passes the type checker
module Test
open FStar.Mul

let divides  (divisor :nat) (n:nat) = exists (k:nat). k*divisor=n
let _ = assert(divides 3 9)

Validity of first-order formulae (i.e., those with quantifiers) is an undecidable problem.
F* and Z3 (its underlying automated theorem prover) use various heuristics to try to find solutions. It's not guaranteed to work in all cases.
In general,  you will have to help F* and Z3 find instantiations to quantifiers: See
https://github.com/FStarLang/FStar/wiki/Quantifiers-and-patterns


unique constraint on the email column of the User model is case sensitive

I am able to create multiple accounts using the same email address by varying the case.

Can SQL Alchemy be configured to treat a column in a case insensitive manner for queries? And/or always normalize the data on read and write operations? Or would I need to do that in all my client code?

Doing this at the database level is possible, but each database does this differently.
Doing it at the SQLAlchemy level is also possible, in a couple of ways. You can create a custom data type, say CaseInsensitiveString that inherits from the SQLAlchemy text type and overloads the comparison operator. There is an example of this done with integers in the documentation: http://docs.sqlalchemy.org/en/latest/core/custom_types.html#types-operators
Another way to do this with SQLAlchemy is to set up an event that is invoked before data is written to the database. At this time you have the opportunity to normalize the data, for example, by making the string lower case.

By the way, to maintain consistency, we also need to lower the email string before query it from the database.


destroying actors from a list

CARLA version: 0.9.15
Platform/OS: Windows
Problem you have experienced: I'm spawning actors that run on autopilot. When spawning I add the corresponding actor to a list to later destroy that actor.
What you expected to happen: The corresponding (or all) actors to be destroyed (removed from the simulation) and the simulation still running
Steps to reproduce:
From my notebook. Everything works fine and my cars get spawned but once I run the last cell with the vehicle.destroy() method everything crashes.
``
import carla
import random
import time
client = carla.Client('localhost', 2000)
client.set_timeout(5.0)
world = client.get_world()
spawn_points = world.get_map().get_spawn_points()
spawned_cars = []
for _ in range(60):
car_blueprint = random.choice(world.get_blueprint_library().filter("vehicle"))
if car_blueprint.has_attribute('color'):
color = random.choice(car_blueprint.get_attribute('color').recommended_values)
car_blueprint.set_attribute('color', color)
car_blueprint.set_attribute('role_name', 'autopilot')
for _ in range(5):
    try:
        spawn_point = random.choice(spawn_points)
        car_actor = world.spawn_actor(car_blueprint, spawn_point)
        car_actor.set_autopilot()
        break
    except:
        time.sleep(0.1)
        continue
spawned_cars.append(car_actor)

for vehicle in spawned_cars:
try:
vehicle.destroy()
except Exception as e:
print("Failed to destroy car:", e)
``

Sorry not sure why the code is formated this poorly.
So in general .destroy() just sometimes crashes my environment

You have to call at least one time tick() after the creation of vehicles in order to be able to destroying them properly.


[Bug]-[11200]:Unable to use IN or ANY clause with prepared statements turned on for MySQL

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
https://discord.com/channels/725602949748752515/760761686549463060/941054952711806976
Steps To Reproduce
Create a select statement using MySQL plugin
Environment
Production
Version
Cloud

slack conversation: https://theappsmith.slack.com/archives/CGBPVEJ5C/p1647957711673979

Stats

Stat
Values

Reach
3500

Effort (months)
0.5

Another user reported this issue here: https://community.appsmith.com/t/using-an-array-in-query/1346/8


[BUG] bonded NIC cluster network doesn't get added to new node if VMs are up

Describe the bug

When you add a node to a cluster with a bonded NIC cluster network
To Reproduce
Steps to reproduce the behavior:

Deploy a single node cluster on a VM with 4 NICs
Setup management network to be bonded on NIC
Create other cluster network and network config with 2 NICs on active-backup bond
Create VM network
Create VMs
Assign them to the network that you created
Make sure that VMs are up
Add new node to cluster with 4 NICs
Wait for node to show up in hosts
Check VM networks and see if it's marked as active

Expected behavior

Host should be added to cluster and network should assign. Another option is to document this.
Support bundle

After adding node.zip
Environment

Harvester ISO version: v1.1-69a1405b-head
Underlying Infrastructure (e.g. Baremetal with Dell PowerEdge R630): Started with 1 node libvirt VM and added another node that was a libvirt VM

Additional context
Add any other context about the problem here.
This seems to be happening because there are active VMs on the networks and there is only one node. I'm not sure about behavior if there were other nodes.
Workarounds

If you add the node and the network goes unavailable. Then you can turn off the VMs, Open up the VM network and hit save

If you turn off the VMs before adding hte node then it will go unavailable and then fix itself and go active

When a new node joining, harvester network controller manager will update the annotation network.harvesterhci.io/matched-nodes, but it's blocked by the webhook.
admission webhook \"validator.harvester-system.harvester-network-webhook\" denied the request: Internal error occurred: could not update vlanConfig config-ext because it's blocked by VM(s) default/opensuse-01, default/opensuse-02 which must be stopped at first, requeuing"
2023-03-20T23:38:19.569975996Z time="2023-03-20T23:38:19Z" level=error msg="error syncing 'harvester-v11-head-add': handler harvester-network-manager-node-controller: failed to update matched node annotation, vc: config-ext, node: harvester-v11-head-add, error: admission webhook \"validator.harvester-system.harvester-network-webhook\" denied the request: Internal error occurred: could not update vlanConfig config-ext because it's blocked by VM(s) default/opensuse-01, default/opensuse-02 which must be stopped at first, requeuing"
2023-03-20T23:38:19.613638259Z time="2023-03-20T23:38:19Z" level=error msg="error syncing 'harvester-v11-head-add': handler harvester-network-manager-node-controller: failed to update matched node annotation, vc: config-ext, node: harvester-v11-head-add, error: admission webhook \"validator.harvester-system.harvester-network-webhook\" denied the request: Internal error occurred: could not update vlanConfig config-ext because it's blocked by VM(s) default/opensuse-01, default/opensuse-02 which must be stopped at first, requeuing"
2023-03-20T23:38:19.650268686Z time="2023-03-20T23:38:19Z" level=error msg="error syncing 'harvester-v11-head-add': handler harvester-network-manager-node-controller: failed to update matched node annotation, vc: config-ext, node: harvester-v11-head-add, error: admission webhook \"validator.harvester-system.harvester-network-webhook\" denied the request: Internal error occurred: could not update vlanConfig config-ext because it's blocked by VM(s) default/opensuse-01, default/opensuse-02 which must be stopped at first, requeuing"
2023-03-20T23:38:19.677776005Z time="2023-03-20T23:38:19Z" level=error msg="error syncing 'harvester-v11-head-add': handler harvester-network-manager-node-controller: failed to update matched node annotation, vc: config-ext, node: harvester-v11-head-add, error: admission webhook \"validator.harvester-system.harvester-network-webhook\" denied the request: Internal error occurred: could not update vlanConfig config-ext because it's blocked by VM(s) default/opensuse-01, default/opensuse-02 which must be stopped at first, requeuing"

@yaocw2020 I think we will need to address the issue probably via:

check if the validated nodes contain any running VMI; if not, should skip the node.
skip validating the calls from the controller, but only when it doesn't contain any side effects/required validations.

Please use the Harvester v1.1.2-rc4 environment to verify the issue.

Tested in v1.1.2-rc4. Verified as fixed.
Verification steps

Deploy a single node cluster on a VM with 4 NICs
Setup management network to be bonded on NIC
Create other cluster network and network config with 2 NICs on active-backup bond
Create VM network
Create VMs
Assign them to the network that you created
Make sure that VMs are up
Add new node to cluster with 4 NICs
Wait for node to show up in hosts
Check VM networks and see if it's marked as active


Event when clicking the Style editor button

Hi,
I would like to be able to do an action when clicking the editor button (the one which enables editing).
I tried this but it did not work,
$(".leaflet-control-styleeditor-interior").on('click', function(){
   alert('hello');
});

How can I do it?
Many thanks.

hey @AlbertoMCS ,
if I understand correctly you are talking about the control icon? in the top right corner? (see here)
if that is correct you should use $('.leaflet-control-styleeditor-interior') I think :)

@fupduck yes, that's exactly the selector I am using, but not luck so far.

@fupduck now is working, many thanks!


[Main Map] Only render clusters at a set zoom level

Updates our cluster rendering logic to render clusters only when the
user is below a certain zoom threshold. When the user zooms in beyond
this threshold, we'll always render individual markers instead.
Fixes #1444

/gcbrun


Upgrade Flux operator to 0.10

Summary by CodeRabbit

New Features

Updated Flux Operator Helm chart to version 0.10.0, introducing new configuration options: extraArgs for additional command-line arguments and logLevel for logging verbosity.

Bug Fixes

Corrected formatting in the annotations section of the Helm chart.

Documentation

Updated README to reflect new version and configuration options.

Chores

Updated FluxCD instance configuration to version 2.4.x with refined deployment specifications for improved functionality.

This upgrade is related to #386 - so it's understood, old versions (like 0.9, not those as old as 0.6) can deploy new Flux releases as they come out, but not until they are packaged by a new release of flux-operator.
So on Monday when flux 2.4.0 had been released but flux-operator 0.10 hadn't been released yet, it wasn't possible to upgrade Flux to 2.4 for flux-operator users yet. But you do not need #387 to merge in order to make use of #386 because the distribution manifests come from a specified OCI repository.
This may have implications for airgap cluster users.


Specify search form requirements

Specification has two parts
a) a list of the fields which will be searchable
b) options for how the search interface will work, e.g.
i) a simple 'all the things you might want to search by are here on this page' interface
ii) a slightly more sophisticated version where there is a very simple name/place/date search, with an advanced search with the rest (perhaps accessed through a 'find' which takes you there if more than a certain number of records are found).
iii) an AI interface which might start with name (ticky box to restrict to testators), county and date, and if limit is reached, offer further options

https://probatesearch.service.gov.uk/#wills starts with surname and date.  The results for pre 1996 are just an image from which you have to pull relevant details to submit your request!
http://www.attrill.info/Attrill Family research Material/index.htmlhttp://www.attrill.info/Attrill Family research Material/Attrill wills &  Probate/Attrill Probate Records.html has an interesting (anarchic) approach.
http://www.gingell.com/familytree/?page=probate just has a list either whole or filtered by single year, which can be ordered by first name, location or effects.

http://www.nationalarchives.gov.uk/help-with-your-research/research-guides/wills-1384-1858/

Recent discussion in busy genealogy Facebook group about the lack of a national Probate  facility that allows search by address.

Search terms https://docs.google.com/document/d/1___qS9PCENrW2oRt4uC22bAfmfxu9MDBENTsHP_MhqI/edit?usp=sharing

It would help to have some examples of the documents being proposed to be indexed so we can see what may be there before going too far in defining the search itself

@Captainkirkdawson the examples transcribed to 'gold standard' for machine learning to take place are in the FreePROBATE folder that I have just given you access too, and the bulk for machine learning to use are in a dropbox account (let me know if you need access).
But other wills are already being proposed for inclusion (via separate project, as it will need human transcription, rather than machine learning / correction).  And we should therefore consider what fields might be needed from those other projects.
My initial thoughts - https://docs.google.com/document/d/1JwVls8udkVw8NFe7c1Y2WQRdsSIjxhVWa1exzP2kv90/edit?usp=sharing

Form sent out in newsletter. Email received via RQG re. https://transcribedwills.co.uk/Will-Finder - suggesting collaborating/partnering.

To review and then let this lead into creating the product specifications

@DeniseColbert did we get much feedback re: the form we sent out in the newsletter? If so, we will need to pencil in a meeting to review it.

Ben has already reviewed, will send link to responses in an email...

Converted to Epic and set up a story for reviewing search form feedback. We can now put this back into an Epic column.


Polydisperse Spheres

Hi!
Did you by any chance implement support for spheres of different sizes?

Hi.
So this version doesn't support polydisperse spheres, but it's certainly possible.
I don't have plans to implement it myself since I don't really work on the sorts of problems this solves anymore, but if you're interested in taking a crack at it the changes would basically involve

taking the diameter property in the packing class, moving it to be a property of each sphere (probably want to use radii since IIRC most calculations involve the sum of two radii which just happens to be a diameter for monodisperse).
Modify references to it accordingly (probably when making constraints & maintaining the near-neighbor lists)
Then provide the radii somehow e.g. as another column after the coordinates or as another file.

Got it, Thanks!
Secondly, do you have a licence in mind for the code?

Secondly, do you have a licence in mind for the code?

Right, apologies as this was made public quite a while back...Fixed :)

Thank you!
On Wed, Mar 24, 2021, 4:37 PM Steven Atkinson @.***>
wrote:

Secondly, do you have a licence in mind for the code?
Right, apologies as this was made public quite a while back...Fixed :)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/sdatkinson/TJ/issues/1#issuecomment-806251835, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZDMP3RJTAOKE7LPMK2XEDTFJZTDANCNFSM4ZLQFCTQ
.


seccomp not working on arch linux / kernel 4.6.2?

I had seccomp working with docker at some point on arch linux, maybe on kernel 4.4.x but somehow it no longer works. I haven't figured out why and I could use some help debugging this.
Additional information you deem important (e.g. issue happens only occasionally):
$ zcat /proc/config.gz | grep seccomp -i
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
CONFIG_SECCOMP=y

One more test:
$ docker run --rm alpine grep Seccomp /proc/self/status
Seccomp:	0

Seccomp needs to be enabled at compile time, otherwise it won't be available. Could you report this in the Archlinux issue tracker? We don't ship packages for Archlinux, so this is something that need to be addressed in their build


Update examples.md

Thanks for the PR. The code formatting is a bit inconsistent, and we're also going to focus on Hooks in future examples, so I'm going to close. Appreciate the effort though!

@gaearon Updated the code and raised the PR again #2900


Adding Java samples for listUsersAsync() and setCustomUserClaimsAsync()

Related to https://github.com/firebase/firebase-admin-java/pull/92
Samples to appear on https://firebase.google.com/docs/auth/admin/custom-claims and https://firebase.google.com/docs/auth/admin/manage-users

SGTM!
On Tue, Nov 28, 2017, 6:33 PM Hiranya Jayathilaka<EMAIL_ADDRESS>wrote:

@hiranya911 commented on this pull request.
In auth/src/main/java/com/google/firebase/quickstart/AuthSnippets.java
https://github.com/firebase/quickstart-java/pull/15#discussion_r153664804
:

public static void setCustomUserClaims(

 String uid) throws InterruptedException, ExecutionException {

// [START set_custom_user_claims]
// Set admin privilege on the user corresponding to uid.
Map<String, Object> claims = new HashMap<>();
claims.put("admin", true);
FirebaseAuth.getInstance().setCustomClaimsAsync(uid, claims).get();
// The new custom claims will propagate to the user's ID token the
// next time a new one is issued.
// [END set_custom_user_claims]

String idToken = "id_token";
// [START verify_custom_claims]
// Verify the ID token first.
FirebaseToken decoded = FirebaseAuth.getInstance().verifyIdTokenAsync(idToken).get();
if (Boolean.TRUE.equals(decoded.getClaims().get("admin"))) {

getClaims() returns a Map<String, Object>. So when querying the map we
need to deal with possible null values (if the key does not exist), and the
returned value not being boolean. Boolean.TRUE.equals() provides a
one-liner that deals with both cases.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/firebase/quickstart-java/pull/15#discussion_r153664804,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIEw6mJV64cRcBn2PbX93g9HB_6mgepRks5s7KZPgaJpZM4QuJak
.


Chore: Improve linting & auto-alphabetize translations

This PR is a proposal and feature of some sort that contains a series of efforts to help ensure consistency across the codebase. See details below:
Linting and Formatting
For consistency and predictable organization of code, this project uses Eslint and Prettier for linting and formatting.
The Setup
The configuration for Eslint and prettier can be found at the root of this project:

Eslint - .eslintrc.js
Prettier - .prettierrc

VSCode is configured to automatically fix fixable linting errors on save. See .vscode/settings.json.
 See more here.
For this project, we are using the clientside commit hooks to automatically lint and alphabetize staged files before they get committed.
Auto-alphabetization of translation files
This is meant to help ensure consistency and ease of reference within the translation files. For this, we are making use of git hooks via a package called husky. Husky allows us to configure a defined pre-commit command which triggers the precommit script within modified packages. The precommit script in packages/frontend/package.json is configured to run lint-staged. Lint-staged allows us run linters on files that have been staged through git.
Within package.json, the block below defines what linters and formatters get applied to what filetype.
 "lint-staged": {
    "*.{js,ts,tsx, jsx}": [
      "eslint --quiet --fix",
      "prettier --write"
    ],
    "src/translations/*.json": "sort-json --ignore-case true"
  }

Two main things are ensured through this configuration:

Staged translation files src/translations/*.json" get sorted in alphabetical order automatically using a package called sort-json
Staged .js and .jsx files get linted for any major linting errors and committing will fail until linting errors are resolved e.g unused vars. We can make the rules as tight or loose as we want through the configuration in .eslintrc.js.
Staged .js and .jsx automatically get formatted using prettier. This too makes use of the configuration found in .prettierrc.

Proposal: Commit messages
Within .husky/commit-msg, there's a script that ensures consistent formatting with commit messages using the commit-msg git hook.
The proposed format is:
git commit -m "{commit type goes here}: {commit information}"

Example:
git commit -m "feat: linting support using eslint"

The image below provides more information on the commit types.

Learn more here. This is not a major thing, however. It just seemed like a somewhat beneficial low-hanging fruit.
Curious mention.
Recently discovered this project :  https://trunk.io
Would love to hear your thoughts.

@worldclassdev Please rebase to fix the failing fossa check


cannot create charger 'keba': listen udp :7090: bind: address already in use)

Hi,
I installed the version 0.114.0 of the evcc adon on Home Assistant 2022.11.5.
When I use evcc as addon in Home Assistant I get the following error:
Using config file: /config/evcc.yaml
starting evcc: 'EVCC_DATABASE_DSN=/data/evcc.db evcc --config /config/evcc.yaml'
[main  ] INFO 2023/03/05 23:51:06 evcc 0.114.0
[main  ] INFO 2023/03/05 23:51:06 using config file: /config/evcc.yaml
[main  ] INFO 2023/03/05 23:51:06 starting ui and api at :7070
[db    ] INFO 2023/03/05 23:51:06 using sqlite database: /data/evcc.db
[mqtt  ] INFO 2023/03/05 23:51:06 connecting evcc-289635650 at tcp://<IP_ADDRESS>:1883
[main  ] FATAL 2023/03/05 23:51:06 could not open port- check that evcc is not already running (cannot create charger 'wallbox5': cannot create charger 'template': cannot create charger 'keba': listen udp :7090: bind: address already in use)
[main  ] FATAL 2023/03/05 23:51:06 will attempt restart in: 5m0s
I used the  evcc.yaml below. This file seems working, if I use the it on a standalone evcc on Ubuntu.
network:
schema: http
host: XXXXXX # .local suffix announces the hostname on MDNS
port: 7070
log: info
levels:
cache: error
plant: XXXXX
interval: 10s # control cycle interval
meters:

name: pv2
type: custom
power: # Leistung (W)
source: mqtt
topic: XXXX
name: grid1
type: custom
power: # Leistung (W)
source: mqtt
topic: XXXX
name: battery3
type: custom
soc: # in %
source: mqtt
topic: XXXX
power: # Leistung (W)
source: mqtt
topic: XXXX

chargers:

type: template
template: keba
host: XXX.XXX.XXX.XXX
name: wallbox5

vehicles:

type: template
template: audi
title: XXXX
user<EMAIL_ADDRESS>password: XXXXXXXXXX
capacity: 14
phases: 3
icon: car
cache: 15m
mode: now
minSoc: 0
targetSoc: 100
minCurrent: 6
maxCurrent: 32
name: ev4

loadpoints:

title: Wallbox
charger: wallbox5
vehicle: ev4
mode: off
phases: 3
mincurrent: 6
maxcurrent: 32
resetOnDisconnect: true

site:
title: My home
meters:
grid: grid1
pv:
- pv2
battery:
- battery3
tariffs:
currency: EUR # (default EUR)
grid:
type: fixed
price: 0.XXXX # [currency]/kWh
feedin:
type: fixed
price: 0.XXXX # [currency]/kWh
mqtt:
broker: XXX.XXX.XXX.XXX:1883
user: XXXX
password: XXXXXXX

Are you already running the Home Assistant Keba Integration? This integration already binds the port 7090/udp which causes evcc to fail binding the port too.

We should add a hint to the ha-addon docu, that not both application could run in parallel.

Thanks, I am aware of this. How do I stop this connection? Does deactivating the binding in HA already givs evcc the chance to connect? I was able to establish a connection (removed the bidning and restartett HA and the wallbox) from evcc within HA and the Keba wallbox. In the webinterfarce of the Keba wallbox I could see that it was charging with minimum speed although in the evcc setting maximum was defined (so somehow evcc must had a connection to the wallbox and something with the settings was not correct). Before playing with evcc the wallbox always did load with 11 kW/h. I will start a new charging process later the day again and post the code and the screens. Unfortunately in the evcc webinterface there was nearly nothing displayed last time - although I did set up the car and the wallbox...

not addon related, open it in : https://github.com/evcc-io/evcc or discuss it in https://github.com/evcc-io/evcc/discussions


Update monitor-instances-health-check.md

added reference to Azure Functions Monitoring - HealthCheck details + added a note mentioning the auth details for azure functions

@msangapu-msft
IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@msangapu-msft
(second request) IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


Precompilation of so many dependencies takes too long

Hi, There is a lot of not always needed assets in the gem, like dozens of language packs.  I know that they are dependencies of gentelella. But I am thinking if it would be possible to config it to use only some of them if not needed. Maybe in the rails initializer? I can contribute if you have no time. But I am not sure which approach should I take.

@blaszczakphoto you're absolutely right, there are indeed tons of dependencies currently imported into the gem and thus the Rails project that are not needed.
I unfortunately am working under a lot of deadlines at the moment, so cannot tackle this myself.  However, I believe there's a relatively simple approach to separating the core requirements from the extraneous and it would be very similar to how https://github.com/jquery-ui-rails/jquery-ui-rails does it.
In a nutshell, jquery-ui-rails let's you import everything with one line:
 *= require jquery-ui

That's essentially what gentelella-rails' current require does.
To start breaking it apart, we need to take inspiration from the jquery-ui-rails project and simply introduce a core js and css that loads the core components necessary for our base functionality and then each individual asset we want to load separately.  A corresponding example from jquery-ui-rails:
//= require jquery-ui/core
//= require jquery-ui/widget
//= require jquery-ui/position
//= require jquery-ui/widgets/datepicker

In this project's case, sometimes we're just making it possible to one individual library, sometimes a collection of libraries that work together.
I would also think that introducing sub-directories where it makes sense for some classes of functionalities, like the various different charts, for example.
So that's the quick 10,000 foot overview of my thoughts on the matter.  If you want to help make this happen, then I'll definitely try to support you along the way.  If you get started, then just think about the specific use-case you're trying to solve.  Figure out what goes in the core and what goes into the includes you most need for your own project.  It is fine to leave the other components out and unfinished by your own effort so that you're not overwhelmed with feeling burdened to do a "project complete" effort.

Thanks for the quick and comprehensive answer. At the moment I decided to compile all dependencies into single file and that speed up compiling assets 5 times.
I will stay with that for now, but surely I will come back to that issue soon. When I will know more about the project and performance


implement width, height, x, y for AppWindowAttributes

This should be quite easy to implement. Do you want to give it a try? I can help finding the appropriate winit and gtk functions.

I kinda already did it for winit but haven't checked gtk-rs yet.

<3 can we also add min sizes and max sizes?

care to drop your code revision here?

I modified AppWindowAttributes to have this fields
pub struct AppWindowAttributes {
    ...
    /// The width of the window
    ///
    /// The default is 800.0
    pub width: f64,

    /// The height of the window
    ///
    /// The default is 600.0
    pub height: f64,

    /// The horizontal position of the window's top left cornet
    ///
    /// The default is 100.0
    pub x: f64,

    /// The vertical position of the window's top left cornet
    ///
    /// The default is 000.0
    pub y: f64,
    ...
}

then I pass width and height to the inner_size field of winit WindowAttribute.
impl From<&AppWindowAttributes> for WindowAttributes {
    fn from(w: &AppWindowAttributes) -> Self {
        Self {
			....
            inner_size: Some(Size::from(LogicalSize::new(w.width, w.height))),
            ..Default::default()
        }
    }
}

and for the x and y position, I just call set_outer_position before returning WinitWindow
fn create_window(&self, attributes: AppWindowAttributes) -> Result<Self::Window> {
		...
        window.set_outer_position(LogicalPosition::new(attributes.x, attributes.y));
        Ok(WinitWindow(window))
    }


News list is not loading

Steps:

Open News tab

Result: I got "Please wait.." the entire time.
Is this problem with external service? If yes maybe a good idea is to use some timeout and fail screen.?

@OlegMakarenko looks like solved. Closing


improve error message or rendering upon empty input table

I have the case where sometimes an input table for datavzrd rendering ends up being empty (usually in minimal testing datasets). This currently leads to an error message like this one:
Error: Given argument mid-domain for domain for column "total perturbation accumulation" of view "spia_table" requires the dataset to only include numerical values in column "total perturbation accumulation".

From this, it is not clear that the actual problem is empty input. Would it be possible to implement either of the following two options:

Simply catch this case and improve the error message, saying that datavzrd cannot really do much with an empty input table.
Catch this and actually do what you can, which would be to render a table with only the heading and no rows.

I'd prefer option 2., as this would lead to consistent behavior / report creating in workflows, even when data doesn't produce any usable results for some of the analyses.
And please let me know if you need more specific details!

Yes i absolutely agree on option two! The error handling needs to check if the dataset is empty and only throw the error you are getting when it is not.
Thanks for the catch! I'll be on it asap!


Add option to bind to an interface

Issue #, if available: N/A
Description of changes: Adds optional parameter which specifies a network interface to bind to. Forcing network traffic to use just that single interface.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

This is a good feature request, but we cannot put a byte cursor in this structure as it gets copied by value across threads.  A likely solution would be to make it a fixed-size array.

Superseded by #647


Lots of null Subreddit fields?

I'm trying to get a subreddit's subscriber count using the .NET Core branch.
var subreddit = await new Reddit().GetSubredditAsync("pics");
Console.WriteLine(subreddit.Subscribers); // null

I'm not understanding why this returns null. I can see the actual number when navigating to https://reddit.com/r/pics/about.json.
The same thing happens with other properties like Created, Description, and ActiveUsers.

What framework are you using (netcore or the full 4.6.2) are you using? Also did you compile it from source or are you using one of the pre-release packages?

Sorry, I should have mentioned that. I'm using 2.0.0-CI00011 from NuGet.
{
  "dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.1"
    },
    "RedditSharp": "2.0.0-CI00011"
  }
}

Ok I found the issue, has to do with removing setters from properties.
@james7132 : Apparently even though PopulateObject is being called inside the constructor, the properties won't get the deserialized data unless they have a setter. I have tried private setters yet which may be a work-around, but I would have thought since it was all in the constructor, it would still be assignable.

Should be fixed as of #64.

Private setters accomplishes the goal pretty much anyway, so probably not worth the effort, thanks for taking that one though.

Thank you @james7132, @CrustyJew!


NIPS23 update

"What if We Enrich day-ahead Solar Irradiance Time Series Forecasting with Spatio-Temporal Context?" is not one papar in NIPS 2023, but one in ICML 2023 workshop
The name of paper "Conformal Scorecasting: Anticipatory Uncertainty Quantification for Distribution Shift in Time Series" should be "Conformal PID Control for Time Series Prediction"
"Sparse Graph Learning from Spatiotemporal Time Series" is one paper in JMLR but not in NIPS

Thanks for the pull request! It seems that the first two papers have changed their titles. I have updated the title of the first paper to "Improving Day-Ahead Solar Irradiance Time Series Forecasting by Leveraging Spatio-Temporal Context". The third paper is on a journal-to-conference track so I will keep it.


AEP Files Parser?

I love this library and I'm using it with NodeJS. I'm wondering if there is any plan for integrating an AEP files parser, to check the layers and composition from After Effects projects?
So far, I only saw one GoLang project (boltframe/aftereffects-aep-parser) that's a bit outdated and is missing a lot of info, and one python project (python-lotthie) that I'm fighting with tons of issues.
Thank you for your hard work!
Have a good day,
Mihai

Hey there,
So far, I have yet to see a reliable solution on nodejs that can do that. The AEP binary file protocol is complex, with some occasional changes introduced by Adobe. And unless there is a dedicated effort behind it, it would become a very unreliable feature.
If you are aware of such solution, please let me know!

Your best chance is saving aexp files.
it’s an XML version of your project so more readable and parse able but still a real pain.

I've been thinking about this in the past, my conclusion was some sort of AE plugin which would export the data you need from a plugin GUI from with AE itself.
Never went much further down that rabbit hole though.

That is the approach to how the bodymovin plugin works, essentially.