Add automatic emergency shuttle call

About the PR
This adds a cvar shuttle.auto_call_time which is an integer N, that calls the emergency shuttle automatically without intervention every N minutes. This can be disabled by setting N to 0, but defaults to 90 (minutes).
Note that auto-call will happen regardless of the state of the shuttle console. You can think of this as CentCom SoP "default" to relieve tired crews after a long round. See additional arguments below.
Rounds can be extended by recalling if there is a functional communication console, at which point the next auto-call will happen again after N minutes.
Why
While there are a handful of players who enjoy longer rounds, most players (informal survey conducted by @Emisse) prefer shorter rounds. Adding an automatic shuttle call would strongly signal this preference.
Arguments for shorter rounds:

Players with limited time are more likely to be able to play shorter rounds than longer ones

Many MRP players I've talked to sit out of rounds, or don't ready up, because they want to see who's playing before they commit to a long round. Reducing average round length would encourage more folks with limited time to actually play.

Players with limited time are more likely to play command roles

Many MRP players elect not to chose command roles because heads are expected to be available for the duration of the round. As a result, MRP is frequently missing command, and so inevitably someone has to break into HoP's locker on MRP. Shorter rounds would encourage more time-limited command players to actually play.
I have found that command players typically prefer shorter rounds, but non-command players typically want to stay longer. Command typically defers to those who want to stay, burning out command players.

Dying doesn't keep you out of the game for 3 hours on MRP
Traitors and other antags get re-rolled more often on MRP
Traitors don't have to hang onto an objective for 3 hours waiting for a shuttle on MRP

Arguments for auto-call:

Ends the round if there are no heads (or if the heads are all incapacitated) after 90 minutes
Reduces round-stalling, e.g. a syndicate operative destroying all communications consoles and murder-boning the whole station
This mechanic is well-tested on TG

This change will likely have little impact on LRP, where rounds are already short.
Screenshots
N/A
Changelog
:cl: notafet

add: CentCom now calls the shuttle automatically after a long round.

The interval between auto-calls should be a separate CVar.

Auto-call should also have a unique message to make it clear it's automated.

Happy to make these changes once I get a conceptual approval of the mechanic.

Happy to make these changes once I get a conceptual approval of the mechanic.

consider this your approval as if it wasn't for those two nits i would've just hit merge.

Happy to make these changes once I get a conceptual approval of the mechanic.

consider this your approval as if it wasn't for those two nits i would've just hit merge.

Awesome, thanks, changes coming soon.

Rounds can be extended by recalling if there is a functional communication console, at which point the next auto-call will happen again after N minutes.

I would recommend to do vote and repeat it each N minutes. There will be two option: should round continue or it's time to go home. This way players can decide in OOC if current round and don't relay on a state of communication console.

Updated via force push to topic branch:

Add cvar shuttle.auto_call_extension_time that defaults to 45 minutes
Give auto-calls a different announcement message


Skip Github Actions and jenkins testing for some patches

change files under docs/
change files under ci/jenkins/jobs
change. md files

issue #455

/test-all

/test-all

/test-all

/test-all

/test-e2e


Glitch: Color Values can change when saving and reloading

Color values change when saving
Steps to reproduce the bug

go to piskelapp.com
create a new sprite
select any brush
Paint or draw on the canvas in a way that the colors change frequently from pixel to pixel (at minimum use 2 colors)
Save the piskel to the online gallery, then exit
Re-open the piskel, and the color pallete will multiply to contain colors you never used

Environment details

operating system: Windows 10
browser (or offline application version): Google Chrome

Sprite details

number of frames: 1
sprite resolution: 32 x 32
session duration: 60 seconds

Example: Below, I drew in only complete black (#000000) and red (#FF0000), but when I exit and reload, the singular black turns into various shades of black.

 I absolutely love this program, but this glitch has made it almost impossible for me to make and edit textures. I've been trying to use a limited palette of pure white, pure black, and a gray that is exactly in the middle. When editing a sprite, it is extremely important for me to be able to easily select, highlight, or replace all of one color. With this glitch, editing sprites goes from simply pressing a few buttons, to spending up to hours manually replacing glitched pixels.

 Because this bug seems affect every export option, also have no way of addressing it. Every time I save the program, some of the colors are inevitably corrupted and my editing process suffers greatly from it. This has really been bothering me, because no other pixel program compares to Piskel in terms of UI, UX, and features. I hope this can be fixed, because if not, I genuinely think I won't be able to use this program to do what I'm trying to do.

Hi,
Piskel relies on the browser to preserve colors when using a few APIs around canvas. I guess that what happens here is that when Chrome is asked to turn the canvas into a PNG image (which is how it gets saved), for some reason it will perform a lossy compression. This is probably hardware dependent. I guess that Chrome delegates this kind of instruction to the graphics card if hardware acceleration is turned on for instance.
The alternative would be to re-implement a save that manually creates a proper PNG (or any other lossless image format). It's bound to be a lot slower, but I guess it can be done and proposed as a setting for users experiencing color corruption such as this.
In the meantime could you:

share which hardware you have, if you know (is it laptop or desktop, dedicated graphics card etc...)
go to chrome://gpu/ and copy the report here
maybe try Firefox to see if you experience similar issues

Also can you confirm this only occurs when saving and not before?

It's possible that we could reuse ArrayBufferSerializers now. When it was initially implemented in 2016, the browser support for those APIs was a bit poor. But now it seems to be better across the board. I wonder if this would solve the issue. I will try to put a modified version of the editor online which can save using arraybuffer.

Interesting!
So for Google Chrome, I have hardware acceleration turned off, so theoretically my GPU (RTX 3070) shouldn't be interfering.
I'm running on a custom-made desktop. Regardless, I will copy the chrome://gpu/ report to its own comment below.
On my desktop, the error did not appear to be present on Firefox or Edge, which is great! I know you don't support Opera, but I wanted to confirm that it wasn't a Chromium error, so I tested it on Opera as well. As far as I can tell, this is exclusively a Google Chrome glitch. I can't replicate it on any other browser. I made a demo file in Firefox, edited it in Edge, and loaded it repeatedly between the two, and did not have the color glitch show up. However, the moment that I loaded the uncorrupted file into Chrome, the color glitch appeared again. Alternatively, when I work on the project in Chrome, save it in Chrome, then open it up in Firefox or Edge, the color glitch is also present. So it looks like any time the canvas is saved or loaded in Chrome, the glitch is present. I think your theory on lossy compression is probably spot-on.
Also, I have been unable to replicate the glitch without saving as of yet. So the TL;DR is:

Error only appears in Chrome
Error only appears when saving/loading in Chrome

Graphics Feature StatusCanvas: Software only, hardware acceleration unavailableCompositing: Software only. Hardware acceleration disabledMultiple Raster Threads: EnabledOut-of-process Rasterization: DisabledOpenGL: DisabledRasterization: Software only. Hardware acceleration disabledSkia Renderer: EnabledVideo Decode: Software only. Hardware acceleration disabledVulkan: DisabledWebGL: Software only, hardware acceleration unavailableWebGL2: Software only, hardware acceleration unavailableProblems DetectedGpu compositing has been disabled, either via blocklist, about:flags or the command line. The browser will fall back to software compositing and hardware acceleration will be unavailable.Disabled Features: gpu_compositingVersion Information

Data exported
2021-07-02T17:31:43.376Z

Chrome version
Chrome/91.0.4472.124

Operating system
Windows NT 10.0.19041

Software rendering list URL
https://chromium.googlesource.com/chromium/src/+/7345a6d1bfcaff81162a957e9b7d52649fe2ac38/gpu/config/software_rendering_list.json

Driver bug list URL
https://chromium.googlesource.com/chromium/src/+/7345a6d1bfcaff81162a957e9b7d52649fe2ac38/gpu/config/gpu_driver_bug_list.json

ANGLE commit id
3d4f87ab5b9b

2D graphics backend
Skia/91 b0b613b2976c90bccfab56f27fd749cf051a5725

Command Line
"C:\Program Files\Google\Chrome\Application\chrome.exe" --flag-switches-begin --flag-switches-end --origin-trial-disabled-features=SecurePaymentConfirmation

Log Messages[7624:21676:0702/102917.012:ERROR:gpu_init.cc(440)] : Passthrough is not supported, GL is swiftshaderGpuProcessHost: The info collection GPU process exited normally. Everything is okay.GpuProcessHost: The info collection GPU process exited normally. Everything is okay.

This is a bug I have just experienced, not by downloading and then re-uploading the sprite, but during editing: the sprite will suddenly become corrupted/compressed into dozens of shades of every color unexpectedly.
It is absolutely infuriating to me - I tried to download the sprite I was working on, opened gimp, converted it to indexed colors then re-uploaded it back to Piskel and it is still affected.
Coincidentally, I use the latest version of Brave which runs on the same engine as Google Chrome.
If this is a problem with the browser and not Piskel per se I would like to enable or disable whatever is causing this, this didn't happen before.

This bug kept happening again and again with me on the online, browser version of Piskel. I downloaded the current offline version, chose a color and completely recolored my sprite but it has happened frequently over my last project.
I'm using Firefox and I have no idea what to do.


add: Basic UI for Login and

nice

seems fine just tailwind needed

make sure to use pre-commit and format scripts

can you try running a github actions build

seems fine, hopefully works, as cannot see github actions


Can't connect to dedicated server running on my own computer

so I have a server that is currently full with 16 people however I can not join my own server.
It is running on the same machine that I am playing on it with so that may be an issue not sure.

How did you get more than 1 person to be able to join it?

How did you get more than 1 person to be able to join it?

idk bro just hit start

I mean it's sad I don't even get to play with them 😭

experiencing this issue, but because when i try to connect it times out.

when i try to connect it times out.

the issue with mine is that it doesn't even show up on the browser

when i try to connect it times out.

the issue with mine is that it doesn't even show up on the browser

you didn't port forward right

when i try to connect it times out.

the issue with mine is that it doesn't even show up on the browser

you didn't port forward right

I mean it works I have 16/16 people but here is my port forwards

I mean I think this is what the wiki wanted

I also can't connect to my own server, apparently there's already a few people in there, but I can't join, the connection times out.

did you try; +net_usesocketsforloopback 1
or other workaround: open console on your game and connect to <IP_ADDRESS> or your LAN IP (dont forget :port)

For me I can only connect to my server if I do lan:ip from the main menu. Before we go to the northstar multiplayer. You have to enable allowing people without authentication to enter your server in the server configs.


Simplify parseTxn and add the hash column

This simplifies the function quite a bit by removing quite a few lines. It should also be less error prone, as constant columns don't need to be repeated anymore. Actually, I'm not even sure if it's required to have all columns repeated constantly, but I left them in there in order not to change the function's output.
I also added the hash column while I was at it, which was asked in #125.
I'm not entirely sure if everything still works as expected, I guess I could try by exporting one year of a big account and making sure that the result is the same.

Ah I see, the fee should only be calculated when it was paid by the owner, I'm going to change this a bit.

@danielcolinjames Not sure if I'm a fan of that feePaid key, tell me what you think.

Not sure why I didn't catch this earlier, maybe different Node versions or different operating systems handle this differently. But yeah, I forgot to update the { feePaid = false, ...parsed } when I figured out that the function can return an array.
Basically, it tried to deconstruct an array, which transformed it ([a, b]) to an object ({ 0: a, 1: b }), and then Array.isArray did not work anymore either.


GPII-1336: update schemaMiddleware to work with more than just POST data...

See GPII-1336 for details.

Re the 5000 lines of tests/static/js/ajv.bundle.js - do we need to have this committed, or couldn't we generate it using a postinstall build task?

As this is getting a bit long, I wanted to summarize what's left:

Reviewing the new documentation format.
Updating the error map format to include more information about the failing rule.

I also still want to create a client-side component that uses the gpii-handlebars binder and renderer to display summary and inline feedback, but I am debating whether to do that now or evolve a proof-of-concept in working on another package.

@amb26 left a top-level comment above about removing the static "browserified" version of AJV from our codebase.
I experimented briefly with grunt-browserify, which would have avoided having to install browserify globally.  However, the "alias" syntax required to tell browserify to expose the correct top-level Ajv variable did not seem to work, and grunt-browserify in general seems somewhat abandoned.
I discovered that that AJV team have already provided a bundling task as part of their package.json, which presumably is part of their browser testing. I used the grunt-exec plugin to launch their bundling task . This requires browserify to be installed globally, but is otherwise reasonable.
I have updated the README to reflect the new process and the requirement to have browserify installed globally.
The new process works on both OS X and Windows and the legacy checked-in copy of AJV has been removed.

As far as I can see, the last remaining work from my end is three-fold:

Finish the client-side validator and tests.
Move newer blocks of comments to the docs and review those following the recent cleanup.
Add summaries with links plus JSDocs hints to the code itself.

I finished overhauling the validator and parser.  The client-side validator now works with the schema router, which delivers dereferenced schemas to it.  Thus it no longer uses the client-side dereferencer at all.  The server-side validator and router both use a common server-side component for the dereferencing.  As suggested, schema content is dereferenced once on startup, and thus listening to onSchemasDereferenced event is a safe way to tell that we are ready to begin resolving errors.
We should review the open concerns here in our next pairing session.

@amb26 This is the next one in line after gpii-express.
There are a lot of commits related to upstream updates to gpii-express, the biggest recent changes to this package itself are the validator and parser updates referenced above.

Apparently I can't leave replies any more.  Anyway, to continue the discussion about the commented-out tests above:
I followed the suggested approach for the parser-update-failure-tests.js.  It still succeeds individually, but fails when run either before or after the rest of the tests.  Please assist.

Wrong button.

@amb26, I have gone through looking at all of your comments with no reply.  I believe I have addressed all of the open issues.  I uncommented the "lone wolf" test that fails when run in combination with other tests.  You should be able to see the error.  As far as I can see, that's the only outstanding issue here.

The last failing test is now working thanks to recent input from Antranig.  This awaits only the upstream merge of gpii-express.

The recent changes to the binder required some reworking of the tests.  This is ready to review again.

As discussed, there is an outstanding TODO: regarding waiting for a client-side fixture to be ready.  We now have a new approach (using executeAsyncScript and the new gpii-webdriver), I will take care of this while pushing through the latest updates this week.

Just to confirm, this is also ready for review, but ideally should be merged after its dependencies, namely:

gpii-binder
gpii-express
gpii-handlebars
gpii-webdriver

When we get around to this, we should review all-tests.js together.  All of the tests required from all-tests.js pass individually, but fail when run together.  I suspect a similar problem in gpii-express-user as well.

@amb26, once the gpii-pouchdb pull is merged, it would be good to revisit this one.  It's one of the very oldest, and seemed to be trending towards completion when last we left it.  I will start working on the test stability in advance of that.

@amb26, after painstaking troubleshooting, I have confirmed that the test failures only occur when running the tests using npm test, and only with npm version 3.10.10.  The tests definitely pass when using a 4.x version of npm, and pass with yarn as well.  As I have no idea how to localize the problem beyond that, I hope it's acceptable to document the incompatibility and let time take care of the rest.  The tests pass in Vagrant, which is configured to use yarn.

I get the following failure when running the tests by any means:
$ yarn test
yarn test v0.19.1
$ node node_modules/.bin/istanbul cover tests/all-tests.js
E:\source\gits\gpii-json-schema\node_modules\.bin\istanbul:2
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
          ^^^^^^^
SyntaxError: missing ) after argument list
    at Object.exports.runInThisContext (vm.js:76:16)
    at Module._compile (module.js:542:28)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:394:7)
    at startup (bootstrap_node.js:149:9)
    at bootstrap_node.js:509:3
error Command failed with exit code 1.

OK, I fixed the problem that was preventing the launch of istanbul, but that only cleared the way to hit the next problem.
I'm currently encountering "address in use" errors not seen on linux or OS X, but only when running the browser tests (they use the same harness as the node tests).  I will continue investigating and comment here when I have more information.

The "address in use" errors were a red herring (although they did encourage me to do a bit of review and refactoring of the test environments, which isn't a bad thing).  It turns out that my problem was that chromedriver wasn't in the path on my windows VM.  @amb26, as far as I can see, this is ready for review again.

I've installed chromedriver using npm install -g chromedriver, and verified that it is on the PATH by running "chromedriver" from the command line. Unfortunately for some reason it is still not being picked up by the tests. I get the following error:
13:16:57.354:  jq: Test concluded - Module "Testing 'evolved' error messages..." Test name "Testing preserving a message in an underlying schema...": 1/1 passed
 - PASS
13:16:57.667:  jq: FAIL: Module "chrome: Testing client-side validation..." Test name "chrome: Validate the simplest valid 'base' record...." - Message: Died on
 test #1     at Object.asyncTest (E:\Source\gits\gpii-json-schema\node_modules\infusion\tests\lib\qunit\js\qunit.js:405:9)
    at E:\Source\gits\gpii-json-schema\node_modules\infusion\tests\test-core\utils\js\IoCTestUtils.js:651:29
    at Object.fluid.each (E:\Source\gits\gpii-json-schema\node_modules\infusion\src\framework\core\js\Fluid.js:513:17)
    at Object.fluid.test.processTestCase (E:\Source\gits\gpii-json-schema\node_modules\infusion\tests\test-core\utils\js\IoCTestUtils.js:625:15)
    at E:\Source\gits\gpii-json-schema\node_modules\infusion\tests\test-core\utils\js\IoCTestUtils.js:674:24
    at Object.fluid.each (E:\Source\gits\gpii-json-schema\node_modules\infusion\src\framework\core\js\Fluid.js:513:17)
    at Object.fluid.test.processTestCaseHolder (E:\Source\gits\gpii-json-schema\node_modules\infusion\tests\test-core\utils\js\IoCTestUtils. .... [output suppre
ssed at 1024 chars - for more output, increase fluid.logObjectRenderChars]
13:16:57.671:  jq: Source: Error: The ChromeDriver could not be found on the current PATH. Please download the latest version of the ChromeDriver from http://ch
romedriver.storage.googleapis.com/index.html and ensure it can be found on your PATH.
    at Error (native)
    at ServiceBuilder (E:\Source\gits\gpii-json-schema\node_modules\selenium-webdriver\chrome.js:191:13)
    at getDefaultService (E:\Source\gits\gpii-json-schema\node_modules\selenium-webdriver\chrome.js:280:22)
    at Function.createSession (E:\Source\gits\gpii-json-schema\node_modules\selenium-webdriver\chrome.js:700:44)
    at createDriver (E:\Source\gits\gpii-json-schema\node_modules\selenium-webdriver\index.js:167:33)
    at Builder.build (E:\Source\gits\gpii-json-schema\node_modules\selenium-webdriver\index.js:639:16)
    at gpii.webdriver.init (E:\Source\gits\gpii-json-schema\node_modules\gpii-webdriver\src\js\webdriver.js:53:35)
    at togo (E:\Source\gits\gpii-json-schema\node_modules\infusion\src\framework\core\js\FluidIoC.js:1794:33)
    at Object.fire  .... [output suppressed at 1024 chars - for more output, increase fluid.logObjectRenderChars]
13:16:57.675:  Express server listening on port 6985
13:16:57.675:  Express started...
13:16:57.783:  jq: Test concluded - Module "chrome: Testing client-side validation..." Test name "chrome: Validate the simplest valid 'base' record....": 0/1 pa
ssed - FAIL
13:16:58.104:  jq: FAIL: Module "chrome: Testing client-side validation..." Test name "chrome: Validate the simplest valid 'derived' record...." - Message: Died
 on test #1     at Object.asyncTest (E:\Source\gits\gpii-json-schema\node_modules\infusion\tests\lib\qunit\js\qunit.js:405:9)
    at E:\Source\gits\gpii-json-schema\node_modules\infusion\tests\test-core\utils\js\IoCTestUtils.js:651:29
    at Object.fluid.each (E:\Source\gits\gpii-json-schema\node_modules\infusion\src\framework\core\js\Fluid.js:513:17)
    at Object.fluid.test.processTestCase (E:\Source\gits\gpii-json-schema\node_modules\infusion\tests\test-core\utils\js\IoCTestUtils.js:625:15)
    at E:\Source\gits\gpii-json-schema\node_modules\infusion\tests\test-core\utils\js\IoCTestUtils.js:674:24
    at Object.fluid.each (E:\Source\gits\gpii-json-schema\node_modules\infusion\src\framework\core\js\Fluid.js:513:17)
    at Object.fluid.test.processTestCaseHolder (E:\Source\gits\gpii-json-schema\node_modules\infusion\tests\test-core\utils\js\IoCTestUti .... [output suppresse
d at 1024 chars - for more output, increase fluid.logObjectRenderChars]
13:16:58.107:  jq: Source: Error: The ChromeDriver could not be found on the current PATH. Please download the latest version of the ChromeDriver from http://ch
romedriver.storage.googleapis.com/index.html and ensure it can be found on your PATH.
    at Error (native)
    at ServiceBuilder (E:\Source\gits\gpii-json-schema\node_modules\selenium-webdriver\chrome.js:191:13)
    at getDefaultService (E:\Source\gits\gpii-json-schema\node_modules\selenium-webdriver\chrome.js:280:22)
    at Function.createSession (E:\Source\gits\gpii-json-schema\node_modules\selenium-webdriver\chrome.js:700:44)
    at createDriver (E:\Source\gits\gpii-json-schema\node_modules\selenium-webdriver\index.js:167:33)
    at Builder.build (E:\Source\gits\gpii-json-schema\node_modules\selenium-webdriver\index.js:639:16)
    at gpii.webdriver.init (E:\Source\gits\gpii-json-schema\node_modules\gpii-webdriver\src\js\webdriver.js:53:35)
    at togo (E:\Source\gits\gpii-json-schema\node_modules\infusion\src\framework\core\js\FluidIoC.js:1794:33)
    at Object.fire  .... [output suppressed at 1024 chars - for more output, increase fluid.logObjectRenderChars]
13:16:58.111:  FATAL ERROR: Uncaught exception: listen EADDRINUSE :::6985

Looks like selenium-webdriver's detection of chromedriver is bullshit - it looks explicitly for "chromedriver.exe" in the path - https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/chrome.js#L189 - whereas npm install -g chromedriver only places "chromedriver" and "chromedriver.cmd" on the PATH

I've filed https://github.com/giggio/node-chromedriver/issues/90 against node-chromedriver. I suggest we just add a brief note in the README under the "chromedriver" heading that this npm module is not to be used and that the user must manually follow the install instructions at https://sites.google.com/a/chromium.org/chromedriver/getting-started to download this to their PATH

I have updated the README with caveats about the chromedriver install.  Thankfully this is no longer needed on the Vagrant linux box, which now finally has its own package.

I also removed the dev dependency on the chromedriver npm package.


Feature/nl format

@zmoon  @angehung5  Since we have over 40 NL options and growing, need to organize better.  I also added some python/README changes for running global data and an example slurm script to help.   Please let me know ASAP what you think so we can update develop going forward.

I changed the required cpu time and mem in the slurm script and readme based on my slurm settings on Hopper. Time might be a little off since I set ntask=12, but mem should be accurate (could be less depending on the case but it would be safer to put 60G).

1:16

@angehung5 OK, thank you.  Is this for running both the python global process script and canopy-app for those times?

1:16

@angehung5 OK, thank you. Is this for running both the python global process script and canopy-app for those times?

global process script only.

1:16

@angehung5 OK, thank you. Is this for running both the python global process script and canopy-app for those times?

global process script only.

@angehung5 Right, then the memory suggestion is not correct, and would need to be largely increased for canopy-app too.

Closing this PR due to updated new PR from @angehung5 built on latest commit.


Might be useful to have examples folder

It would be nice to have an examples folder with a real redux app with all the various ways this can be used and best practices, Esp async stuff.
My use case is that I'm trying to understand a codebase I've inherited and am not sure if this is a standard practice or not:
import { Site } from '../../model/Site';
import { loadSites as eventApiLoadSites } from '../../rest-api/Event-api';
import { Dispatch } from 'redux';
import { actionCreatorFactory, AnyAction } from 'typescript-fsa';
import wrapAsyncWorker from './wrapAsyncWorker';

const actionCreator = actionCreatorFactory();

export const LoadSites = actionCreator.async<null, Site[]>('LoadSites');

const loadSitesWorker =
  wrapAsyncWorker(LoadSites, (): Promise<Site[]> => eventApiLoadSites());

export const loadSites = () => {
  return (dispatch: Dispatch<AnyAction>) => loadSitesWorker(dispatch, null);
};

loadSites() is passed to an argument to store.dispatch and is giving me typing errors:
TypeScript error: Argument of type '(dispatch: Dispatch<AnyAction>) => Promise<Site[]>' is not assignable to parameter of type 'AnyAction'.

There are some examples in the readme. I'd happily accept a PR if you have something to add 🙂.
As for async stuff: usually you would first pick a Redux middleware for it, like redux-saga, or redux-thunk, or redux-promise. Then either dispatch async actions manually before and after an async process, or introduce a helper that wraps these processes. There are already packages that integrate typescript-fsa with redux-saga or redux-thunk.
From the code you posted I'd guess that it's using redux-promise or similar. Make sure that the middleware is applied to the store. It should augment the type of store.dispatch.


scipy.signal.resample ignores t parameter

The resample function does not take into account the t optional parameter during the Fourier transform, as if it assumed that t is evenly spaced. When this is not the case, the returned resampled_t is erroneous.
If t must be evenly spaced, this should be checked by the function or writen in the documentation.
Reproducing code example:

import numpy as np
from scipy import signal
import matplotlib.pyplot as plt

rate = 100
t = np.arange(rate) / float(rate)
t[1] = t[1]/4
x = np.sin(2 * np.pi * t)
resampled_x, resampled_t = signal.resample(x, rate, t=t)
fig, ax = plt.subplots()
plt.plot(t, x)
plt.plot(resampled_t, resampled_x)
plt.show()

Scipy/Numpy/Python version information:

1.3.0 1.16.4 sys.version_info(major=3, minor=6, micro=8, releaselevel='final', serial=0)

The resample function does not take into account the t optional parameter during the Fourier transform, as if it assumed that t is evenly spaced.

It is assumed that t is evenly spaced.

If t must be evenly spaced, this should be checked by the function or writen in the documentation.

Yes, this could be made clearer in the docstring.

@30blay would you be up for making a pull request to update the documentation to make it clearer how t is used?

Yes!


Document performance considerations in scenery docs

We have recently identified several issues involving a11y performance. Critical ones should be taken care of immediately, but we might not might not get to others for a little while. For these, we want to have a section in the scenery documentation that lists these issues and when a dev might encounter them. We are most interested in collecting this for any folks outside of PhET that may be interested in Scenery a11y.

https://github.com/phetsims/scenery/issues/955 (textContent vs innerHTML)
https://github.com/phetsims/scenery/issues/663 (batch PDOM changes)
https://github.com/phetsims/scenery/issues/956 (setTextContent and setAttributeToElement)

#956 is the most important for PhET, we will do that first. The other two might be quick or happen as part of #956 so there is a chance they could be quickly resolved too.

Added, closing.


Hub loader doesn't use wiener_win_len argument value

I'm not sure if this is intentional or not but the wiener_win_len argument is not used by the hub_loader in the following code.
    # otherwise we load the separator from torchhub
    else:
        hub_loader = getattr(openunmix, model_str_or_path)
        separator = hub_loader(
            targets=targets,
            device=device,
            pretrained=True,
            niter=niter,
            residual=residual,
            filterbank=filterbank,
        )

To Reproduce
Call the command line with default and different --wiener-win-len value such as 600 and the outputs will be identical.

@papahabla goot catch. Are you able to provide a PR to fix this?


Electons Token

I'm submitting a ...
[ X] bug report
[ ] feature request
[ ] question about the decisions made in the repository
[X ] question about how to use this project

Summary
Build fail because of duplicate entry. I didnt

Other information (e.g. detailed explanation, stack traces, related issues, suggestions how to fix, links for us to have context, eg. StackOverflow, personal fork, etc.)

please include PR. duplicate token can be fixed with this: https://github.com/solana-labs/token-list#duplicate-token


Login - Focus remains on last digit after login with wrong link and requesting new code

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open iOS or Android App
On the login screen, enter a new account email
Open the validate email and copy the link
Modify the last part of the link to make 'wrong link'
Navigate to this 'wrong link'
Checked that "Magic code is incorrect" is displayed
Request a new magic link

Expected Result:
Wrong magic code cleared and focus moved to first digit
Actual Result:
Wrong magic code cleared and focus moved to last digit
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[ ] Android / Chrome
[x] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.56-8
Reproducible in staging?: Yes
Reproducible in production?: No
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/78819774/632fa611-5d8a-407b-8645-47fc3527a55b
https://github.com/Expensify/App/assets/78819774/5cedf79c-7d48-4ba9-a3f8-bd5505791f5f
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

Was able to reproduce this one

Not consistently reproducible. Appears to be the result of some race condition maybe?

Got a fix

PR is up and ready for review

QA'd this and it's fixed on staging by the revert


Updating Data Classification Swaggers.

This PR updates Data Classification swagger files and examples. This is not a breaking change, as reference to these files was not present in the readme.me file, hence clients were not generated yet.
Latest improvements:
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and have all been fixed in this PR.
[x] The OpenAPI Hub was used for checking validation status and next steps.

ARM API Review Checklist

[x] Service team MUST add the "WaitForARMFeedback" label if the management plane API changes fall into one of the below categories.
adding/removing APIs.
adding/removing properties.
adding/removing API-version.
adding a new service in Azure.

Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs.

[ ] If you are blocked on ARM review and want to get the PR merged urgently, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.
Please follow the link to find more details on API review process.

Automation for azure-sdk-for-js

Automation for azure-sdk-for-ruby

Can one of the admins verify this patch?

Automation for azure-sdk-for-python

Automation for azure-sdk-for-node

Automation for azure-sdk-for-java

@veronicagg Automation for azure-sdk-for-java is failing since I added  - ./Microsoft.Sql/preview/2017-03-01-preview/sensitivityLabels.json under package-pure-2017-03-preview in the readme.md file.

@bashahee there's probably a class name that's duplicated in that version when you add the file, so it's colliding on SDK generation - "Duplicate File Generation".
@anuchandy could you help with Java SDK generation for ./Microsoft.Sql/preview/2017-03-01-preview/sensitivityLabels.json under package-pure-2017-03-preview ?

@jaredmoo do you want to look at/approve this PR?
@bashahee have the changes and new files been reviewed by ARM team?
Apart from Java generation, rest looks good to me.

@veronicagg I am not introducing new APIs, these APIs are already in production. I am updating swagger files in order to generate SDK clients, as part of my work on implementing PowerShell Cmdlets.
No source code was changed, apart from modifying examples.

@veronicagg Can this PR be merged now?

@bashahee Identified an issue in java codegen and created an issue here https://github.com/Azure/autorest.java/issues/323.
However fixing it requires some time, meantime to unblock your PR, I've updated readme Java section and opened this PR https://github.com/bashahee/azure-rest-api-specs/pull/1, could you merge it?

@bashahee I was waiting on the java code gen issue, please take a look at the PR suggested by @anuchandy , if it makes sense to you to do the rename to avoid collisions, please merge that in, and I'll approve/merge this PR. Thanks!

@AutorestCI regenerate azure-sdk-for-go


Multiple photos attachment

Great work.
Is it possible to attach multiple photos to the same feature point?
if not yet when this feature will be available? I  think this is essential for most of crowdsource activities.
thank you

Currently, only one photo is supported per feature.
The Story Map Crowdsource Beta was developed as a proof of concept for collecting crowdsource information in story maps. This app will not receive any new features, only minor big fixes until it is retired later this year. More information available here: http://storymaps.arcgis.com/en/faq/#question60
Esri has other, full-featured crowdsourcing apps that may already support your use case including: Crowdsource Reporter, GeoForm, and Survey123


Feature/tutorial

Creating a PR so that this can get reviewed. I'd really like to get it in before PyCon proper starts so that if I point anyone at Vumi there is a nice tutorial to look at.

@shaunsephton Slightly uniquer commit messages might be cool. :)

Left some small comments, otherwise happy for this to land. Looking forward to the next installment :)


Return logger_id

From @martindsouza on March 26, 2013 19:24
For APEX Error handler it would be nice to return the logger_id when logging an error so that we can reference the ID in the error message and search quickly on it.
Copied from original issue: tmuth/Logger---A-PL-SQL-Logging-Utility#14

For now, marked as closed since logger.ok_to_log and logger.ins_logger_logs feature should take care of any custom inserts.


Cannot figure out why split a batch into two halves

Let's see the two lines in https://github.com/kshmelkov/incremental_detectors/blob/master/network.py#L36-L37
Why does it split the batch into two halves one for logits and another for logits_for_distiallation?

Sorry It was my bad. I figure it out you merge the rois and proposals in https://github.com/kshmelkov/incremental_detectors/blob/master/network.py#L127


Rule request: require-default-props

I'd like a rule that requires an explicit defaultProp to be present for every non-required prop (in propTypes or otherwise).

It would be great if this rule could take into account references to objects in other modules. e.g.
// Component-shape.js
export default {
  foo: React.PropTypes.string,
  bar: React.PropTypes.string.isRequired,
}

// Component.js
import ComponentShape from './Component-shape.js';

const propTypes = ComponentShape;

export default function Component({ foo, bar }) {
  return <div>{foo}{bar}</div>;
}

Component.propTypes = propTypes;

should warn about foo but not bar, since bar is required.

I would like to work on this if no one is on it already!

It would be great if that rule allowed an option for non-required booleans to be excluded. Because if they are not provided, it will be a falsy value.

Falsy, but not false. Relying on falsiness can result in implicit coercions that can cause hard-to-find bugs. If an option for that were added, it'd need to be off by default, but I'm -1 on adding that option.

I agree that it should be off by default but I still this as a nice option.
If it isn't provided, it's undefined. If it is provided, it has to be true or false or the propType will complain. So I think we're fine in terms of implicit coercions.

The implicit coercion would be in the component code itself, where it expects a boolean but sometimes gets undefined.

@vitorbal are you actually working on this? would be a killer feature!

Sorry, was a bit bogged own with other tasks in my pipeline ⏳ I'm still interested in pursuing this though, will try to make some time for it these next couple of weeks.

Quick update: I've been slowly chipping away at this and covering all the different cases it would have to support. I will probably have a PR up as an RFC by next week.

Okay, I finally managed to wrap up most of this rule, I think. The only thing missing is support for Flowtype. @ljharb @yannickcr How important would you say is flowtype support? Could I tackle that as a separate PR, for example?

I think it's critical that it not break on code that has flow syntax, at the very least, but I'm not sure how critical it is that the initial PR support flow. It'd probably be ideal to include it at the outset, though.

@ljharb fair enough, thanks for the feedback. In that case, I'll start working on adding Flow support as well.

@yannickcr How to configure this rule in eslintrc ? There is no rule options given in the documentations. Also how to use this rule with react/prop-types ? thanks

@agupta-q4 the rule does not have any extra configuration besides just being turned "on" or "off". Is there any specific configuration that you are looking for?

@vitorbal Thanks for the heads up ! :) yes you are right, I didn't understood it at first hand. actually  whenever I try to add object type in propTypes definition, this rule says forbidden. so in react I added something like below to overcome this warning:
LoginForm.propTypes = {
  formState: PropTypes.shape({
    emailid: PropTypes.string.isRequired,
    password: PropTypes.string.isRequiredform
  }).isRequired
}

now it is working fine.
also do you have any idea what is rule options for following two newly added rules:
"react/require-default-props"
"react/no-array-index-key"

Thanks.

This rule should accept a list of props that are excluded from the check.
i.e. it is perfectly fine to have children undefined while validating for node when defined. Writing defaultProps = { children: undefined } every time is redundant and annoying.
Similarly, we have a custom of merging given className using classnames every time: className={classNames(this.props.className, styles.self)} and having className undefined is just fine for classnames lib. Adding defaultProps = { className: undefined } to every single component is equally redundant and annoying.

No, it's not perfectly fine - children needs a defaultProp too. It serves as documentation, and ensures that the author didn't make a mistake.
Separately, having a className prop is not a great idea at all anyways: https://brigade.engineering/don-t-pass-css-classes-between-components-e9f7ab192785 but if you have it, you need the defaultProp there too.
You're free not to use the rule, of course, if you don't like the rigor it provides.

I don't agree on misusing defaultProps as documentation. propTypes serves a better job at this, telling not only whether the property is being accepted, but what type(s) it should be and is it required. One could of course pull default value from defaultProps - falling back to undefined as the component does. And className argument is bogus - it assumes that you are dealing with people who do not know what they are doing.
Back on topic - if the rule accepted excludes, we would both be happy. I would exclude children, and you would be free to not use excludes and have all the rigor you want. One size does not fit all.

Anyway, here's a fork with support for ignore option: https://github.com/smokku/eslint-plugin-react
"react/require-default-props": [
  "error",
  {
    "ignore": ["children"]
  }
]

If anyone is interested, just put "eslint-plugin-react": "git://github.com/smokku/eslint-plugin-react", to your package.json.

If you'd like to open a separate issue requesting that feature, we can discuss it.
The benefit of having even an explicit undefined over an implicit one is the same as the universal "explicit > implicit" - developers working on that component can know, with certainty, what the value of the prop is.
(The className argument is not bogus; and in fact when developing you should assume that nobody knows what you're doing - always err on the side of safety)


Polling techniques seems a bit inaccurate for sysfs

    def poll(self, timeout=None):
        if not isinstance(timeout, (int, float, type(None))):
            raise TypeError("Invalid timeout type, should be integer, float, or None.")

        # Setup poll
        p = select.poll()
        p.register(self._fd, select.POLLPRI | select.POLLERR)

        # Scale timeout to milliseconds
        if isinstance(timeout, (int, float)) and timeout > 0:
            timeout *= 1000

        # Poll
        events = p.poll(timeout)

        # If GPIO edge interrupt occurred
        if events:
            # Rewind
            try:
                os.lseek(self._fd, 0, os.SEEK_SET)
            except OSError as e:
                raise GPIOError(e.errno, "Rewinding GPIO: " + e.strerror)

            return True

        return False

minor -> the timeout should be divided by 1000 not multiplied to convert sec to millisec as select.poll.poll is expecting in second
major:
the events are returned as a bitmap that needs to be deciphered probably in a if else kind of state (as we are having or on 2 events). if an error occurs we should return false.
Not sure about this: but i think this part of the code should use https://man7.org/linux/man-pages/man7/inotify.7.html. to detect changes to the files and based on the edge set, it should return true or false. if we can discuss this and come to a solution, will like to code contribute this part.

I recommend using character device GPIOs instead, as sysfs GPIOs have been deprecated for some time now.
Regarding the minor point, the polling object returned by select.poll() expects milliseconds for timeout: https://docs.python.org/3/library/select.html#select.poll.poll .
Regarding your major point, the kernel always sets both POLLPRI and POLLERR when polling sysfs (kernfs) files: https://elixir.bootlin.com/linux/v6.5.5/source/fs/kernfs/file.c#L883 .
As for inotify, in the man page you listed -- "Furthermore, various pseudo-filesystems such as /proc, /sys, and /dev/pts are not monitorable with inotify."


"stolen" plaza stand old owner characters

When you take a location with Dagmer or Euron you can't trigger it properly

I tried this with Euron, and it worked fine for me: I could stand any kneeled character (with the right cost) using Plaza as a Greyjoy player. So I think the situation that induced the bug is more complicated than it seems. Do you have a sequence of actions that cause the bug to appear?

closing old unreproducible bug report, please reopen if you encounter this again in the wild!


ASP.NET Core MVC Razor Issue

In my ASP.NET Core web app, in the default _LoginPartial view, if I put just a true keyword in the if statement below it ignores the entire if{...} block. NOTE:  My real scenario is a bit more complex but for the sake of reporting the issue, I've simplified the scenario here. In the real scenario, I want to replace hard coded true with User.IsInRole("AdminRole") to display the if block contents only if the logged-in user is in AdminRole. But even the following simple scenario is not working:
_LoginPartial view:

@saf-itpro there must be some other issue happening when you log in. I tried the same thing on File => new Web Application and did the following in the _LoginPartial.cshtml:

With this, when I log in I get the following:

Which is expected.

@NTaylorMullen You are correct. Hello UserName was hiding behind an image. After reading your response, I searched for it and found it out behind the image. Thank you for taking your time to help. I'm closing the issue.

@saf-itpro Glad I could help :+1:


Importing raw css content to angular component

Given:
// main.ts
import './app.css';
// app.component.ts
@Component({
    selector: 'my-app',
    template: require('./app.component.html'),
    styles: [require('./app.component.css')],
})
export class AppComponent {
    name = 'Angular';
}

To achieve my goal, need to satisfy following conditions:
1. global css file app.css with common stuff
2. css component files which will be embedded to component class styles: [require('./app.component.css')],
3. css component files must be stored near app.component.ts (e.g. app.component.css)
1. Brute solution
CSSPlugin({ write: true }),

Condition 2 is not satisfied
Hot reload for css doesn't work

CSSPlugin({ write: false }),

Condition 1 is not satisfied
require('./app.component.css') is not returns raw content

2. Chain solution
[
    /\.component\.css$/,
    RawPlugin({}),
],
[
    /\.css$/,
    CSSPlugin({ write: true }),
],

Hot reload for css doesn't work
When I changing app.component.css I see in console Source changed for app.css (which is not true)

Ok for the hot reload can you remove write:true completely, and tell me what's the issue that you are having.
2) If you want to have raw CSS data use RawPlugin but not the CSS plugin

Let me clarify, I have requirements point 1-3 (see above), how to solve it?
I have solutions:

Brute solution
Chain solution

Which have restrictions.

So what I am thinking about.

Hot reload for Raw Plugin
Api (server) for explicitly call client's refresh (hot and full)

Coming soon, swamped with work

in 1.3.71 you can use a custom emitter
fuseBox.devServer(">index.ts", {
    port: 8083,
    emitter: (self, fileInfo) => {
        self.socketServer.send("source-changed", fileInfo);
    }
});

fileInfo looks like:
{ type: "js",  content: file.contents, path: file.info.fuseBoxPath }

Documentation comes later.
I am closing it right now, and splitting it into separate issues.

After playing with new version, I came to a conclusion the best way is both features (Hot reload in Raw Plugin and Custom emitter) must be used together.

Maybe I will create pull request...

Go ahead man! I am down for improvements

this is just beautiful!!!


Incompatible with RLCraft 2.7

Sponge Version:  1.12.2-2838-7.1.7-RC3924
Forge Version:  <IP_ADDRESS>38
Total Economy Version:  1.8.1
Description of issue
When used with the RLCraft modpack, breaking stone and wood log will get you no drops.
Issue was observed while jobs and database are disabled.
Console errors
No logs in console when breaking logs or stone.
Steps to reproduce
1- Boot an RLCraft server
2- Level up your harvesting and mining skills to 4
3- Use flint axe on a tree to get logs
or use a flint pick on stone to get rock
=> no logs nor rocks are dropped
Related Configuration Files
https://gist.github.com/LemADEC/a6c7a588a3bdcf84f6dfa998fbce76ca

Hi,
please attach more information about your server setup. What other mods are installed? Do you use other plugins as well? Does this issue persist when no other mods and plugins are installed?
I would also like to ask you to attach your server log files so we can take a look at whether or not there's something reported in there that may be the cause or a related symptom.

That's an intermittent issue, unrelated to TotalEconomy.


expose the debugProfileBuildsEnabled flag as a service extension

expose the debugProfileBuildsEnabled flag as a service extension

This will make the flag available for clients to dynamically enable and disable, and will be useful for users when investigating perf issues.

Looks like 2 test failures:
04:46 +3037 ~25 -1: /tmp/flutter sdk/packages/flutter/test/foundation/service_extensions_test.dart: Service extensions - debugProfileBuilds [E]
  Expected: {'enabled': 'true'}
    Actual: {'enabled': 'false'}
     Which: was 'false' instead of 'true' at location ['enabled']

  package:test                                   expect
  foundation/service_extensions_test.dart 307:5  main.<fn>
  ===== asynchronous gap ===========================
  dart:async                                     _AsyncAwaitCompleter.completeError
  foundation/service_extensions_test.dart        main.<fn>
  ===== asynchronous gap ===========================
  dart:async                                     _asyncThenWrapperHelper
  foundation/service_extensions_test.dart        main.<fn>

/tmp/flutter sdk/packages/flutter/test/foundation/service_extensions_test.dart: Service extensions - posttest [E]
  Expected: <37>
    Actual: <38>

  package:test                                   expect
  foundation/service_extensions_test.dart 538:5  main.<fn>
  ===== asynchronous gap ===========================
  dart:async                                     _AsyncAwaitCompleter.completeError
  foundation/service_extensions_test.dart        main.<fn>

@jacob314 @Hixie

ptal - some updates

Looks like some checks are failing with your latest patch.

Yup, thanks:
info • Unnecessary new keyword • packages/flutter/lib/src/widgets/binding.dart:304:23 • unnecessary_new

will update -


Why is accumulate_grad_batches set to 1 for first epoch when the argument is provided as int?

🚀 Feature
Is there any reasons why is it set to 1 for first epoch?
I think it should be set to the number users specify because of a lot of confusing.
Alternatives
Change the key of schedule dict to 0 in training_tricks.py:
def configure_accumulated_gradients(self, accumulate_grad_batches):
    if isinstance(accumulate_grad_batches, dict):
        self.accumulation_scheduler = GradientAccumulationScheduler(accumulate_grad_batches)
    elif isinstance(accumulate_grad_batches, int):
        schedule = {1: accumulate_grad_batches}  # => schedule = {0: accumulate_grad_batches}
        self.accumulation_scheduler = GradientAccumulationScheduler(schedule)
    else:
        raise TypeError("Gradient accumulation supports only int and dict types")

I think you misunderstand.
This value there means from accumulate from epoch 0 on by this many batches.
https://pytorch-lightning.readthedocs.io/en/0.8.5/api/pytorch_lightning.trainer.html#accumulate-grad-batches
I don't see an error in the code.

By default, if nothing specified by user, the dict will be {0: 1}

If users specify the accumulate_grad_batches argument as int, schedule becomes {0: 1, 1:n}: https://github.com/PyTorchLightning/pytorch-lightning/blob/1d565e175d98103c2ebd6164e681f76143501da9/pytorch_lightning/callbacks/gradient_accumulation_scheduler.py#L43-L50
It means the accumulation will be done from the second epoch.
I've checked it using debugger and trainer.accumulate_grad_batches is set  to 1 in the first epoch.

I'm sorry, I still don't get it. I cannot reproduce this. Here is what I tried in console:
>>> x = Trainer(accumulate_grad_batches=3)
>>> x.accumulation_scheduler.scheduling
{0: 3}

ohhh I missed it, I saw the wrong versions sorry.
It is ta bug on previous version, so upgrading 0.8.4 -> 0.8.5 will help 😄 .

I found it this PR fixed this issue: https://github.com/PyTorchLightning/pytorch-lightning/pull/2513/files
plz close here 🙏

I should have known.. I already forgot about this bugfix. Glad you found it.


Label color not depending on slice

The label color is common for all slices.
But this may lead to situations where the label ist not readable.
Example: Brown slice, black color.
I suggest a delegate message that requests the label color per slice index.

workaround pod 'XYDoughnutChart', :git => 'https://github.com/siberianisaev/XYDoughnutChart.git'

Could be something like this.
New delegate method:
- (UIColor * _Nonnull)doughnutChart:(XYDoughnutChart * _Nonnull)doughnutChart textColorForSliceAtIndexPath:(XYDoughnutIndexPath * _Nonnull)indexPath;
will be removed:
@property(nonatomic, strong, nullable) UIColor *labelColor;
and this one method will be modified:
- (SliceLayer *)createSliceLayer      :(XYDoughnutIndexPath *)indexPath { .......     textLayer.foregroundColor = [self.delegate doughnutChart:self textColorForSliceAtIndexPath:indexPath].CGColor;


@1.7.0 - puppeteer 19.5.0

close #228

Coverage: 99.242%. Remained the same when pulling a541f495f925546287a9e7312e1c360a39df423b on rc-1.7.0 into 7ac270852852ac280bd5de4cf83520e332211402 on master.


⚠ Samsung has degraded performance

In e9faee0, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2749 ms

Resolved: Samsung performance has improved in 4029461.


Link error (multiple definition...) in simple project

Description
I used Eclipse 2020 CDT on a Windows host, using the cross tool chain "gcc-arm-9.2-2019.12-mingw-w64-i686-arm-none-linux-gnueabihf" to compile for RaspberryPi as a target.
Set up a managed build project with above mentioned compiler set up as cross compiler.
This generally works for other projects.
So now I added the doctest folder to the project (by copy) and added it to the known include paths.
I made 2 source files: main.cpp, which contains nothing but #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN and including doctest.h, and, in subfolder "tests", a file Test01.cpp, which contains only the include to doctest, not the macro, as described in the tutorial.
I then added one testcase, which prints one std::cout line,
with one subcase, which does the same, while doing one REQUIRES on a constant, and one CHECK, checking one local static function call for a result.
I then built the project, generating a bunch of linker errors, e.g. for "multiple definition" of:

doctest::is_running_in_test';: in function doctest::detail::my_memcpy
doctest::detail::g_oss[abi:cxx11]'; in function __tls_init'
doctest::detail::rawMemoryToString

... and a couple pages more of that
Steps to reproduce
main.cpp:
#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
#include "doctest.h"

Test01.cpp:
#include "doctest.h"

#include <iostream>
using namespace std;

static const int xyz = 123;

static int func(int i)
{	return xyz * i;
}

TEST_CASE("testcase01")
{
	cout << "testcase" << endl;

	SUBCASE("subcaseA")
	{
		cout << "subcase" << endl;

		REQUIRE( xyz == 123 );
		CHECK( func(2) == 2*123 );
	}
}

Extra information
I searched the net and found some people with that problem.
It seems to be very dependent on the exact compiler tool chain being used, incl. specific target, and how the linking works exactly.

doctest version: v2.4.5
Operating System: Windows 10 (cross compile host), Linux for ARMv7, hardfloat (target)
Compiler+version: gcc-arm-9.2-2019.12-mingw-w64-i686-arm-none-linux-gnueabihf
this toolchain

Strange... I'm not sure how to help you with this. Make sure that you aren't compiling main.cpp more than once (or that you aren't linking the object file from it more than once) - perhaps you should inspect the verbose output of the build and see which object files are being compiled and what is being linked - with the full commands.


Make CreateList cop not safe

Fix #1087
Mark CreateList as not safe cop.

Before submitting the PR make sure the following are checked:

[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[ ] Added tests.
[x] Updated documentation.
[x] Added an entry to the CHANGELOG.md if the new code introduces user-observable changes.
[x] The build (bundle exec rake) passes (be sure to run this locally, since it may produce updated documentation that you will need to commit).

If you have modified an existing cop's configuration options:

[x] Set VersionChanged in config/default.yml to the next major version.

How is it possible to detect when content is something that needs to be called x times vs not?
detecting the usage of the block variable is what is currently implemented, but there are tons of possibility other than the one I provider above
if you use rand, or [].sample, or even a method next_position that return a different output at each call
What is your plan match to detect successfully every single possibility?


create a folder for a team when a teamleader user is created by admin

hello all , this is not a issue but i just wanted a small guide in how to  use this package to create a folder for a team when a teamleader user is created by admin , and only the team users can access their folder ?? it can be a little complicated , but any help i would be thankful for ! :)

Duplicate of #322 .


Websockets improvements and fixes

This fixes #188

More convenience methods
Fixed some errors
No need to write delay between connection and subscribing

Hey @BaldyAsh, I got the pending transactions socket working, and it lists ALL pending transactions.
Is there a specific method that will get pending transactions for ONE specific address?
I've already tried both of these:
try! socketProvider!.setFilterAndGetChanges(method: .newFilter, address: EthereumAddress(address)!, fromBlock: .earliest, toBlock: .latest, topics: nil)

try! socketProvider!.subscribeOnLogs(addresses: [EthereumAddress(address)!], topics: nil)

Hi @barrasso . Seems it isn't possible with Infura. Its eth_newPendingTransactionFilter and newPendingTransactions subscription do not use additional parameters. Some contracts have logs that indicate that the contract had received some tx and you can use them to get txs notifications

OK @BaldyAsh. Is there a way to get a balance update for a given address?
I see there is a way to get this with parity_subscribe like so:
// subscribe to eth_getBalance
>{"jsonrpc":"2.0", "id":1, "method":"parity_subscribe", "params":["eth_getBalance",["0x004702bdcC3C7dbFfd943136107E70B827028600", "latest"]]}

@barrasso Infura supports parity_subscribe only on the Kovan network


kontena registry create uses the wrong API when checking for existing registry service

      registry = client(token).get("services/#{current_grid}/registry") rescue nil
      exit_with_error('Registry already exists') if registry

The URL is missing the stack, the response is always HTTP 404, and this check never fires:
[API Client Request]: GET http://localhost:9292/v1/services/development/registry | Headers: {Accept: application/json, Authorization: Bearer}
[API Client Error]:
D, [2017-01-25T14:56:52.444247 #4024] DEBUG -- CLIENT: Request GET /v1/services/development/registry: 404 Not Found:
D, [2017-01-25T14:56:52.444363 #4024] DEBUG -- CLIENT: JSON parse exception: 743: unexpected token at '' : 743: unexpected token at ''

Instead it fails on the POST later on:
D, [2017-01-25T14:56:52.800295 #4024] DEBUG -- CLIENT: Request POST /v1/grids/development/stacks: 422 Unprocessable Entity: {"error":{"name":"registry already exists"}}
bundler: failed to load command: bin/kontena (bin/kontena)
Kontena::Errors::StandardError: {"name"=>"registry already exists"}

This is mostly cosmetic, and harmless, the resulting error just looks different:
 [error] {"name"=>"registry already exists"}

We could probably just remove the starting check?

rescue nil wins again

The check for the registry service might actually be a feature, not a bug, since it will prevent the kontena registry create command from creating a new registry stack if there already is an existing pre-1.0 registry service in the grid?

Marking as invalid because it seems like the check for the legacy registry service before creating the registry stack is a useful feature, not a bug. Ping @jakolehm?


[Stable/GoCD] GoCD Server Fails to StartUp once the Pod is killed due to some issue

Is this a BUG REPORT or FEATURE REQUEST? (choose one):
BUG REPORT
Version of Helm and Kubernetes:
Helm Version
Client: &version.Version{SemVer:"v2.8.2", GitCommit:"a80231648a1473929271764b920a8e346f6de844", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.8.2", GitCommit:"a80231648a1473929271764b920a8e346f6de844", GitTreeState:"clean"}
kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.7", GitCommit:"dd5e1a2978fd0b97d9b78e1564398aeea7e7fe92", GitTreeState:"clean", BuildDate:"2018-04-19T00:05:56Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.0", GitCommit:"6e937839ac04a38cac63e6a7a306c5d035fe7b0a", GitTreeState:"clean", BuildDate:"2017-09-28T22:46:41Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Which chart:
GoCD
What happened:
After successful installation of GoCD using helm chart, if the server pod dies due to some issue (example OOM), the server pod fails to start up due to conflict while preconfiguring the server again.
What you expected to happen:
The server pod should be brought up again successfully by the server deployment
How to reproduce it (as minimally and precisely as possible):

Install GoCD Helm Chart
Delete GoCD Server Pod manually.

Fixed as part of https://github.com/helm/charts/pull/6229


Versioning support

Hello! First of all, thanks for the tool and the interesting preprint. I am using PILOT in my project. However, this week, I was quite surprised to notice that my code from your previous tutorial no longer works if I install a newer version of the tool. I could have fixed the specific version in dependencies to solve this problem, but unfortunately, the version in setup.py was not changed along with the new API. Could you update the version along with the changes?

Hello. Thank you for bringing this to our attention. We fixed it.


AWS: aws_handle_regions fix

Fixes #800
This PR adds the ability to have custom return values for aws_handle_regions(), besides an empty list []. This is important for functions like get_ecs_clusters() that normally do no return a simple list.

@marco-lancini Are you able to try this branch?

@marco-lancini Are you able to try this branch?

Thanks @ramonpetgrave64. Trying it now

@ramonpetgrave64 this indeed solves the issue, thanks!

This is good to merge from my side

This is good to merge from my side

I was out for a couple days. We'll merge today.


Refresh Issues

Hi mate,
i have an issue when change items insiede virtual-scroll. First time it's work ok, then i change the [items] collection with a new array of object but only two items are designed. I tried call refresh() method but it's don't work.

The problem is in calculateItems()
   let indexByScrollTop = el.scrollTop / this.scrollHeight * d.itemCount / d.itemsPerRow;
el.scrollTop is wrong. Have you any idea?

@matte00, This issue was fixed with #22. Please make sure you are using the latest version, as of today it is 0.1.3.

@ManpreetSingh80, please share more details about the issue with array update. I have done couple of updates the component recently. Please check those updates and if there are issues please revert.

I have update the demo with two buttons to switch array at run time.

Please check the demo page


Refactoring $.each(type

Continue refactoring the 'each' content to reduce code repetition, to produce consistent outcomes, and make it easier to implement changes.
Using GCTEach.typename functions.

Completed List of $.each(type now going through GCTEach.type

Activity
Newsfeed
Member
Wire
blog
Group
Event
Opportunity
Doc

When discussion is finalized it can be done as well.


MF appId - Implementation

MF appId - Implementation

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

Replaced with PR#99 due to authoring issues.


Add r_language_server

Add 'r_language_server' in a self-contained way. All credit goes to @aspeddro for getting me started with his fork, and to @josefhajnala for languageserversetup.
There might be a more elegant way to do this (because as the saying goes, "I have no idea what I'm doing"), but it seems to work for me here. The initial install can be quite long because the dependencies of languageserver are brought along if they are not already present on the system.

Cool! I'm running into errors locally, seemingly because it tries to write to the final destination directory before it's created:
        R version 4.1.2 (2021-11-01) -- "Bird Hippie"
        Copyright (C) 2021 The R Foundation for Statistical Computing
        Platform: aarch64-apple-darwin20.6.0 (64-bit)

        R is free software and comes with ABSOLUTELY NO WARRANTY.
        You are welcome to redistribute it under certain conditions.
        Type 'license()' or 'licence()' for distribution details.

          Natural language support but running in an English locale

        R is a collaborative project with many contributors.
        Type 'contributors()' for more information and
        'citation()' on how to cite R or R packages in publications.

        Type 'demo()' for some demos, 'help()' for on-line help, or
        'help.start()' for an HTML browser interface to help.
        Type 'q()' to quit R.

        > options(langserver_library = "/Users/williamboman/.local/share/nvim/lsp_servers/r_language_server");rlsLib = getOption("langserver_library");install.packages("languageserversetup", lib = rlsLib);loadNamespace("languageserversetup", lib.loc = rlsLib);languageserversetup::languageserver_install(
        Warning in install.packages("languageserversetup", lib = rlsLib) :
          'lib = "/Users/williamboman/.local/share/nvim/lsp_servers/r_language_server"' is not writable
        Error in install.packages("languageserversetup", lib = rlsLib) :
          unable to install packages
        Execution halted

The default behavior is that all installations run in a temporary directory (accessed via ctx.install_dir in the ServerInstallerFunction), and upon successful completion are moved to the final installation directory. Would it be possible to do the same here?

And if I manually create the final directory myself, it seems to get stuck on:
        > options(langserver_library = "/Users/williamboman/.local/share/nvim/lsp_servers/r_language_server");rlsLib = getOption("langserver_library");install.packages("languageserversetup", lib = rlsLib);loadNamespace("languageserversetup", lib.loc = rlsLib);languageserversetup::languageserver_install(
        Error in contrib.url(repos, type) :
          trying to use CRAN without setting a mirror
        Calls: install.packages -> startsWith -> contrib.url
        Execution halted

Indeed, I also encountered problems after the push... Sorry about that.
By default, R packages are already installed in a temporary folder, which is usually /tmp/. I think I can use another location as the temporary install directory from the R side, but I need a bit of help with the lua side of things...
Here, I considered root_dir to be the target install directory (ie where all the LSPs end up being installed). However, should root_dir point to the temporary install directory instead? And/or what would be the best way to pass install_dir (ie, the temporary directory) to the installer function, ie to process.spawn('R', ... ) ?

Here, I considered root_dir to be the target install directory (ie where all the LSPs end up being installed). However, should root_dir point to the temporary install directory instead? And/or what would be the best way to pass install_dir (ie, the temporary directory) to the installer function, ie to process.spawn('R', ... ) ?

Yeah this code has gotten a bit messy over time. What root_dir refers to is the final installation dir of the server - the only assumption that can be made is that after successful completion of the installation steps, this directory will exist containing the installation artifacts. This is generally useful if you need to persist this directory in some build artifact.
To access the temporary directory in which the installation actually takes place, you can do so by accessing the install_dir in the installer context, like so:
function (_, callback, ctx)
    process.spawn('R', {
       -- Maybe it'd make sense to run the R program with the working directory set to the temporary install dir?
       -- I assume that the R program could then just use the `.` path as the installation target - effectively targeting the working directory
       cwd = ctx.install_dir,
       ...
    }, callback)
end

@meriops I opened a PR to your branch in your fork here, with some stylistic suggestions.

@meriops I see that the languageserversetup::languageserver_install() function takes a Ncpus argument which defaults to max(1L, getOption("Ncpus")). Would it make sense to configure this as well, or does the getOption("Ncpus") take care of that automatically?

It takes about 40 minutes to compile this on an old, low end, MacBook. Mac M1 (ARM) doesn't seem to work (I believe due to https://github.com/r-lib/fs/issues/348).

@meriops I see that the languageserversetup::languageserver_install() function takes a Ncpus argument which defaults to max(1L, getOption("Ncpus")). Would it make sense to configure this as well, or does the getOption("Ncpus") take care of that automatically?

I believe many R users installing packages from sources would have Ncpus configured in their R startup files, so I would leave that out.

It takes about 40 minutes to compile this on an old, low end, MacBook. Mac M1 (ARM) doesn't seem to work (I believe due to r-lib/fs#348).

Sorry about this, I don't have access to a mac to check. If only the base set of R packages was previously installed on the machine, then the first install can be quite long because the languageserver package is pulling a few "heavy" dependencies (fs being one of those). The fs issue you mention seemed to be fixed (https://github.com/r-lib/fs/pull/365) but not yet merged.

Hi @meriops, do you have a similar issue in installing r_language_server
The install-github.me service is deprecated, please stop using it.                                                                                Downloading GitHub repo REditorSupport/languageserver@master
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
/usr/bin/gtar: .: Cannot getcwd: No such file or directory
/usr/bin/gtar: Error is not recoverable: exiting now
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
Error: Failed to install 'languageserver' from GitHub:
  Does not appear to be an R package (no DESCRIPTION)
In addition: Warning message:
In utils::untar(tarfile, ...) :
  ‘/usr/bin/gtar -xf '/home/user/RtmpcxzwqS/file119de930707d94.tar.gz' -C '/home/user/RtmpcxzwqS/remotes119de94f8d94a'’ returned error code 2
Execution halted
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory

``

@yech1990 Indeed, I had that at some point. The install of r_language_server here is set so that if some required packages are already present in R/library, they are not installed again. But it turns out that some of these packages (for me it was desc and a couple others ; a grep on the R/library folder will tell you) still had the install-github.me URL hard-coded. I simply removed and reinstalled them.
@williamboman To avoid this altogether, we might set fullReinstall = TRUE and strictLibrary = TRUE in the install script here. I initially set those to FALSE in the hope of speeding up the install of r_language_server.

Thank you very much @meriops. Is there a option to set fullReinstall = TRUE without forking the plugin?

thank you for the information. I still have the some problem in one of the machine, even if "fullReinstall" is True.

William: indeed, it's already set. I got confused for a minute.
y9c: the problem seems to be related to the tar utility which cannot find the parent directory (ie the Rtmp folder was removed along the way for some reason) and/or the remotes R package (see issue 350 there for a somewhat similar situation), rather than to lsp-installer or r_language_server.

@yech1990 Indeed, I had that at some point. The install of r_language_server here is set so that if some required packages are already present in R/library, they are not installed again. But it turns out that some of these packages (for me it was desc and a couple others ; a grep on the R/library folder will tell you) still had the install-github.me URL hard-coded. I simply removed and reinstalled them.

It is probably due to the older version of languageserversetup hosted on CRAN. I modified install script to use latest (<IP_ADDRESS>0) branch on GitHub and the installation just work fine. @williamboman do you want me open a PR?

It is probably due to the older version of languageserversetup hosted on CRAN. I modified install script to use latest (<IP_ADDRESS>0) branch on GitHub and the installation just work fine. @williamboman do you want me open a PR?

Sure! I can't say I'm following exactly what the problem is, but PRs are always welcomed!


Add baseName to NativeBinarySpec

Following a recent question from the forum and based on personal experience, it should be easy to modify the output file name for each binary.
Expected Behavior
The proposed fix would be to add a baseName or similar behavior to change the name of the binary. This solution should also be back port to JVM model by adding such feature at the BinarySpec level.
Current Behavior
Current solution is to modify the output file path (which differ per binary type). Several problem exists with this solution such as dealing with extension (executable on Linux doesn't have one) and the different naming for getter/setter of the output file property.
Context
This is a common pattern done in the native.

Just a remark: Why baseName (or a surrogate)  is not part of
BinaryNamingScheme since this interface concentrate most of Binary path
and naming?
Le 31/10/2016 à 20:37, Daniel Lacasse a écrit :

Following a recent question from the forum and based on personal
experience, it should be easy to modify the output file name for each
binary.
  Expected Behavior

The proposed fix would be to add a baseName or similar behavior to
change the name of the binary. This solution should also be back port
to JVM model by adding such feature at the BinarySpec level.
  Current Behavior

Current solution is to modify the output file path (which differ per
binary type). Several problem exists with this solution such as
dealing with extension (executable on Linux doesn't have one) and the
different naming for getter/setter of the output file property.
  Context

This is a common pattern done in the native.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/gradle/gradle/issues/777, or mute the thread
https://github.com/notifications/unsubscribe-auth/AG7RgS6TdO1OyyFMeyibUPBp81mcTBZ1ks5q5kNggaJpZM4KlalU.

My bad for not responding earlier. We will consider this when we tackle this issue.

@lacasseio Hi, is there any news on this issue?

Unfortunately, we don't have much news on this issue, @zosrothko. We are currently ramping up a native continuous native effort in Gradle and this issue will be visited once we get to the binary configurability.

Issue moved to gradle/gradle-native #500 via ZenHub


5.0.0 - Remove NODE_ENV, allow output overrides, external build configs

Summary of changes:

Remove NODE_ENV from the API. We rely totally on the build commands now, i.e., febs dev, febs prod.
Refactor the build configs out to external repository.  This is in preparation for future work around build profiles.
Updates to Readme around different ways of setting output path.
Remove extraneous unit tests.

https://github.com/rei/febs/pull/95

A couple more updates coming...

OK, I think this ready for final review!

         /|\
       /__| )
     /____| ))
   /______| )))
 /________|  )))
         _|____))
 \======| o o /
~~~~~~~~~~~~~~~~~~~, Good stuff - Ship it!

Planning on merging this today, let me know if anyone needs more review time.


added search function

I have created a search function. When the list is open (expanded) the button turn into an input field and search for fonts based on typing.
Example:

Hi @zilahir, thanks for the PR!
A search functionality is a cool idea. I'd prefer it if the behavior was a bit different, though. I think the way browsers allow you to jump to an option when using a <select> tag (just start typing when the list is open and it will jump to the matching item, see this example) is pretty nice and more intuitive. That way, we wouldn't need a search input field in the font picker, and the isSearch prop could be omitted. This would also simplify the implementation.
What do you think? Let me know if you'd like to have a go at this or whether I should update the code :)

hey @samuelmeuli thanks for you reply!
I'll take this, don't worry. Gonna need a bit of a time though, but i'll try to pull this of asap. :)

Awesome, thanks!


Fixed displaying of empty table in Service Dialog

In Service Dialog editor, with Tag Control element selected:
After choosing Category, table is displayed, but after selecting default value (<Choose>), table stays with empty body.
This PR fixes the issue.
+ also removed %fieldset tag around table (see screenshots):
Before:

After:

@martinpovolny @h-kataria please review

@martinpovolny @h-kataria please review


add zh_CN

Add language translation for zh_CN

Hi,
Thank you,
I can see that the translation is not totally done,
Are you still working on it ?

yes

Ok, I will wait the final translation for merge that PR.
Thank you

Successful

Thank you, i will review it in a few hours and come back to you

ok

Thank you !


Fix arrow pointing animation

About the PR

Title
Why / Balance

Fixes https://github.com/space-wizards/space-station-14/issues/30126
It brokey
Technical details

previously it used the arrow entity and player xform in https://github.com/space-wizards/space-station-14/pull/30010, in the migration to transformSystem it said that was illegal so I changed it to player entity and player xform, turns out that brokey it so I'll just get the arrow's xform
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

https://github.com/user-attachments/assets/9020a3e2-962c-4ff5-a960-2d718554eeb6
Changelog

wasn't really brokey for that long

I thought something felt off last night. That you for the fix!

I thought something felt off last night. Thank you for the fix!


Add spacing after newline on editor warning tooltip

While making https://github.com/godotengine/godot/pull/64702, something very minute to most bothered me...
Adds 4 spaces after every newline that isn't followed up by a bullet point, so that the tooltip looks much tidier.

Before
After

Because of the simple implementation, it may not look as nice if a different font were to be used, but even then, it shouldn't be by much.

While at it, might be worth adding another newline after Node configuration warning:, as it looks weird touching the first bullet point when further bullet points are spaced with a separation line.

Tested... Unfortunately, "\t" is ignored because the default tooltip is composed by a PopupPanel & Label, and the latter doesn't support tabulation.

and the latter doesn't support tabulation

This may be worth implementing in a separate pull request, as it can be useful when working with a fixed-width font.

@akien-mga Updated tooltip to display an extra newline after "Node configuration warning", but only if there's more than one warning:


cmake: require gtest 1.11

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

Project coverage is 64.04%. Comparing base (0c10a02) to head (df741b8).

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1104   +/-   ##
=======================================
  Coverage   64.04%   64.04%
=======================================
  Files          20       20
  Lines        2578     2578
  Branches      887      900   +13
=======================================
  Hits         1651     1651
  Misses        662      662
  Partials      265      265


[ROCM] Implement device_assert functionality.

Triton firstly prints assert message into stderr stream with the same (refactored) helper function as device_print and then ends the thread execution.
Also got back fix in python/triton/compiler/compiler.py lost after one of IFU.

@jayfurmanek please add python/test/unit/language/test_subprocess.py test to CI since it is passing now