Warning: "unsupported string format" when using lift variables in IAM Policies

Description
When using lift variables as an IAM policy Resource, ServerlessFramework shows a warning.
unsupported string format

How to Reproduce
myFunction:
  handler: src/myFunction.handler
  iamRoleStatements:
    - Effect: 'Allow'
      Action:
        - sqs:SendMessage
        - sqs:ListQueues
      Resource:
        - ${construct:myQueue.queueArn}

Warning:
Serverless:   at 'functions.myFunction.iamRoleStatements[0].Resource[0]': unsupported string format

Additional Information
This is because when the config goes into the validation, variables have not fully been resolved and still contain the CDK tokens. Tokens don't match the ajv rules
eg:
[
  {
    Effect: 'Allow',
    Action: [ 'sqs:SendMessage', 'sqs:ListQueues' ],
    Resource: [ '${Token[TOKEN.64]}' ]
  }
]

Related/similar issue: https://github.com/serverless/serverless/issues/8488

Hi @bboure !
As far as i know, iamRoleStatements at the function level is not supported out of the box by Serverless and is provided by a third party plugin.
It seems this plugin is conflicting with Lift probably because it resolves the variable (which gives a CDK token) but Lift never has a chance to transform the CDK token to a proper Cloudformation reference before the schema validation occurs.
Not sure how to fix this but I guess if you bypass schema validation, then it would output a valid Cloudformation template.
Reference links:

plugin hook: https://github.com/functionalone/serverless-iam-roles-per-function/blob/1bb7ca7da33385ac9b38f70aee9dd9c0da052382/src/lib/index.ts#L66
lift hooks: https://github.com/getlift/lift/blob/2ec84f8823514d8d7e0adcd8c3168b9529425495/src/plugin.ts#L103-L114

That's right, it's supported by a third party. I forgot to mention that.
However, the plugin uses "native" validation and type
So, this problem also happens here in the framework provider.iam.role.statements.
I just reproduced it:
provider:
  iam:
    role:
      statements:
        - Effect: 'Allow'
          Action:
            - sqs:deleteMessageBatch
          Resource:
            - ${construct:winningsProcess.queueArn}

Serverless:   at 'provider.iam.role.statements[0].Resource[0]': unsupported string format

I am not sure how to fix that. Right now it's just a warning and cfn compiles just fine when all hooks run.
Maybe a solution (or hack) would be to use custom tokens and token resolvers (not sure if this is possible)
if tokens could be generated to something that match any of the possible values. eg:

arn:lift:Token.63:

- or -
Overwrite #/definitions/awsIamPolicyStatements definition, but that seems a bit dangerous.

Another use case I just stumbled upon is if we want to setup a Lambda Trigger for the dead letter queue. I was trying something along the following lines on serverless.yml:
functions:
 on-dlq-message-received:
   handler: src/events/on-dlq-message-received.handler
   events:
     - sqs: ${construct:bulk-queue.queueArn}-dlq

I did saw a PR regarding attaching a lambda to DLQ, but it seems it is blocked by other reasons. Appending '-dlq' does not feel right though.


Add Vulkan related Timer types.

This adds timers representing Vulkan command buffer timings and
Vulkan debug markers to the capture protos.
Test: Compile
Bug: http://b/176809754

Sure, so similar to kGpuActivity timers (which display Gpu information based on tracepoints), the command buffer and debug marker timers, are timers that should display Gpu related information (this time originating from our new Vulkan layer).
There will be another PR, that extents the CaptureEvenProcessor in order to produce those timers, base on the corresponding CaptureEvents. I am working on that one right now.
Further #1642 adds handling for those new timer types in the GpuTrack. Command buffer timers will basically displayed below the corresponding "hw execution" timers that are based on the tracepoints. The debug markers will be displayed on their own track for now, but combined later.
Further, the debug marker interface allows the game devs. to specify a color. This color should be then also used in our timeline.
If you need any additional input, feel free to set up a meeting to discuss offline.
Also note, we are aware that the way TimerInfo is encoded with its different types is not ideal, and want to work on this (e.g. by introducing "subtypes") in the future. But this is clearly out of scope for this change.

Sure, so similar to kGpuActivity timers (which display Gpu information based on tracepoints), the command buffer and debug marker timers, are timers that should display Gpu related information (this time originating from our new Vulkan layer).
There will be another PR, that extents the CaptureEvenProcessor in order to produce those timers, base on the corresponding CaptureEvents. I am working on that one right now.
Further #1642 adds handling for those new timer types in the GpuTrack. Command buffer timers will basically displayed below the corresponding "hw execution" timers that are based on the tracepoints. The debug markers will be displayed on their own track for now, but combined later.
Further, the debug marker interface allows the game devs. to specify a color. This color should be then also used in our timeline.
If you need any additional input, feel free to set up a meeting to discuss offline.
Also note, we are aware that the way TimerInfo is encoded with its different types is not ideal, and want to work on this (e.g. by introducing "subtypes") in the future. But this is clearly out of scope for this change.


fetch unstubable

I tried my code
let stubFetch;
const fetch = require("node-fetch-commonjs");
stubFetch = sinon.stub(fetch, "default");
stubFetch.returns(Promise.resolve(new Response(undefined, { status: 200 })));
stubFetch.restore();

it doesn't work.
how to stub your code?

I haven't worked with sinon yet, but if you get an error or something I think that might be helpful.
After looking at the documentation of sinonjs and the code of node-fetch rq I have two things in mind that could be tried:

use sinon.stub(fetch, "fetch"); instead
use sinon.stub(fetch); instead


Add SMTP role

Ref #122
This uses ssmtp as a simple mail delivery tool for forwarding mail to an external SMTP server.
/cc @austinpray @nathanielks @rstormsf

Gonna try this out on one of my servers to test

Closing this. Realized this solution isn't enough since email should work out of the box on development too without requiring a 3rd party SMTP service.

and we're back! Going to stick with as anyone can use their Gmail (for example) in development.

:sunglasses:

:+1:


[scope] for iteration scope

>>> let ls = []
>>> for i in range(10):
  >     ls.append(lambda: i)
  >
>>> ls[0]()
 => 9
>>> ls[1]()
 => 9
>>> ls[2]()
 => 9
>>> print(i)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: Undefined variable 'i'.
>>>

In Python, for loops define a global variable which does not get cleaned after iterating. After Python's iteration, every i inside of lambda bodies points to the same value.
In Kuroko, i seems to be a local variable instead of a global one, but every i still got the same value - It works just like Python, which is not a bad thing, but I was expecting every for loop got its own scope / namespace / whatever - is this a feature in Kuroko too?

This capturing behavior is a tricky one. The scope of the implicitly declared loop variable is the loop as a whole, rather than an individual iteration of the body, so while the variable's scope does not extend after the loop as it would with the function scoping in Python, it does still exhibit the same capturing behavior where each iteration sees the same final variable rather than unique instances.
The reason for this specific scoping decision is that it more closely matches for-loop declarations in languages like C99 (which Kuroko's scoping rules are generally modeled on), and in fact Kuroko has 'legacy' support for C-style for loops in addition to the for ... in ... loops, which demonstrates the mapping pretty well:
for i=0; i<10; i++:
   print(i)

As you note, because we can force a new local in the body, we can provide different captured variables to the lambda in each iteration by forcing an extra assignment - a bit ugly, but quite useful! There's an instance of this in the documentation generator - instead of unpacking in the for, the unpack is done in the body to ensure separately-captured locals in lambdas.
Meshing Python's syntax with block scoping has been a challenge, and Kuroko definitely has some unfortunate quirks like this because of it, but sometimes those quirks have hidden benefits.


Enable leader election

Fixes #113

Here is what we did in capbm v1alpha2 related to this : https://github.com/metal3-io/cluster-api-provider-baremetal/blob/v1alpha2/main.go#L62 and https://github.com/metal3-io/cluster-api-provider-baremetal/blob/v1alpha2/main.go#L73

Another option is to detect if you're running in a cluster and only use leader election if so. That's how operator-sdk's leader election works by default: https://github.com/operator-framework/operator-sdk/blob/418b603/pkg/leader/leader.go#L48-L55

@zaneb This should now be for the v1alpha1 branch, not master (that is v1alpha2)

Closing this issue since it is done in master, and the v1alpha1 branch will be deleted

/close


Fix reliable word in the redisson.org front page

It's misspelled: relable
Not a good work do misspell

Fixed! Thanks for pointing out


SSR does not include all necessary styles

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Current behavior 😯
I am trying to render a Material UI React element to a string. I followed https://mui.com/guides/server-rendering/ and came up with the following:
import React from "react";
import { render } from "react-dom";
import ReactDOMServer from 'react-dom/server';
import { ThemeProvider, createTheme } from "@mui/material/styles";
import CssBaseline from "@mui/material/CssBaseline";
import Typography from '@mui/material/Typography';
import { CacheProvider } from '@emotion/react';
import createCache from '@emotion/cache';
import createEmotionServer from '@emotion/server/create-instance';

const myTheme = createTheme({
  palette: {
    background: {
      default: "red",
    },
  },
});

const cache = createCache({ key: "custom", prepend: true });

const {
  extractCriticalToChunks,
  constructStyleTagsFromChunks,
} = createEmotionServer(cache);

const element = (
  <CacheProvider value={cache}>
    <ThemeProvider theme={myTheme}>
      <CssBaseline />
      <Typography variant="h1" sx={{ color: "yellow" }}>ABC</Typography>
    </ThemeProvider>
  </CacheProvider>
);

const innerHtml = ReactDOMServer.renderToString(element);

const emotionChunks = extractCriticalToChunks(html);
const emotionCss = constructStyleTagsFromChunks(emotionChunks);

const html = `<!DOCTYPE html>

  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>My site</title>
  ${emotionCss}

${innerHtml}

`;

console.log(html);

The output is:
<!DOCTYPE html>

  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>My site</title>

ABC

Note that this does not include the CSS classes MuiTypography-root, MuiTypography-h1, etc.
Expected behavior 🤔
The expected output has global styles, a bit like this:
<!DOCTYPE html>

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

    <meta charset="UTF-8">
    <link rel="preconnect" href="https://fonts.googleapis.com/">
    <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin="">
    <link href="test_files/css2.css" rel="stylesheet">
    <meta name="viewport" content="initial-scale=1, width=device-width">
    <title>Lab 1</title>

    You need to enable JavaScript to run this app.

ABC

Steps to reproduce 🕹
Code is above
Context 🔦
To render components to a string with CSS data.
Your environment 🌎

`npx @mui/envinfo`
  System:
    OS: Linux 5.13 Ubuntu 20.04.3 LTS (Focal Fossa)
    CPU: (12) x64 Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz
    Memory: 47.20 GB / 62.74 GB
    Container: Yes
    Shell: 5.8 - /usr/bin/zsh
  Binaries:
    Node: 16.13.1 - /usr/bin/node
    Yarn: 1.22.17 - /usr/bin/yarn
    npm: 8.1.2 - /usr/bin/npm
  Managers:
    Apt: 2.0.6 - /usr/bin/apt
  Utilities:
    Bazel: 4.2.1 - /usr/bin/bazel
    Make: 4.2.1 - /usr/bin/make
    GCC: 9.3.0 - /usr/bin/gcc
    Git: 2.25.1 - /usr/bin/git
  Servers:
    Apache: 2.4.41 - /usr/sbin/apachectl
  Virtualization:
    Docker: 20.10.7 - /usr/bin/docker
  IDEs:
    Nano: 4.8 - /usr/bin/nano
    VSCode: 1.63.2 - /snap/bin/code
    Vim: 8.1 - /usr/bin/vim
  Languages:
    Bash: 5.0.17 - /usr/bin/bash
    Perl: 5.30.0 - /usr/bin/perl
    Python: 2.7.18 - /usr/bin/python
    Python3: 3.8.10 - /usr/bin/python3
  Browsers:
    Chromium: 97.0.4692.99
    Firefox: 96.0

Please provide a minimal reproduction test case with the latest version. This would help a lot 👷 .
A live example would be perfect. This codesandbox.io template may be a good starting point. Thank you!

I'm also having the same issue after upgrading to React 18. It seems that although ReactDOMServer.renderToStaticMarkup() adds the sx prop CSS class to the HTML element, the actual CSS class is empty. I'm not very well versed in how React+MUI operate under the hood, so I can't give a better explanation, but inspecting the stylesheet on dev tools shows something like what I said happening.
Left is React 17+Chrome with the CSS class, while right is the same element rendered in React 18+Firefox and the class doesn't appear (issue is browser-independent and can be replicated on the reverse

If I can create a minimal repro on codesandbox.io I'll post it here.


Feature/dev 8667

@Atash3000 - please add testing steps here for reviewers.

Here is Testting steps: Open Line chart. Under Data series "Add Special Line".  for the style select "Filled Circles" which is new added one. Once Filled circles selected you can update the size of the circle below on text field. Also select data series to apply circles.


feat: add abstract property to the core property of the component

Since the Transition component is an abstract component, and we use stub to simulate it. If the abstract property is not copied, and if the Transition component is used inside the tested component, the parent-child relationship of the internal component tree will be incorrect.

Hm, ok! Not super clear on this - can you share an example of a test that is incorrect before this change?

@lmiller1990 Here is the example repo: https://github.com/ustbhuangyi/vue-test-utils-demo

I will do a release this weekend


Add credentials to find/install commands

I have a system where I don't have to provide credentials but that system is my development box so I think on a system just pulling from the repo you will always need to provide them.
If somebody can correct me great but this new update agrees with the medium article referenced for this guide.

@samfoley88 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@samfoley88 Thank you for your feedback! The credentials are already provided in the previous steps when registering "PowershellAzureDevopsServices"

Thanks for the response.
They are but they don't get passed through when provided there for the later commands. Running that sequence on a clean Windows install returns an error wihout the credentials and still requires credentials on the later steps as I've updated in the docs.
Not at my computer but will update with the error and version info for replication when I am.
I'd be very happy to be proven wrong on this as it's a big pain!


containerised kubelet going away

https://github.com/kubernetes/kubernetes/pull/74267
Not sure what the best way of dealing with this is.

Do we use the --containerized flag? It doesn't look like it based on https://github.com/linuxkit/kubernetes/blob/master/pkg/kubelet/kubelet.sh#L97

AH ok we may be fine then.

closing for now.


MSBuild task for Typesccript uses file creation time in FindConfigFiles

Depending on the source control system, if the file creation time is not set to the actual development file creation time, the ordering of tsconfig builds can be changed resulting in build failure.
Can we use alphabetical ordering or some other option to ensure ordering is repeatable?

you should use multiple projects if you have this sort of dependency. Project is the build unit for MSBuild, and you can declare dependencies on each other etc..

MSBuild tasks for other project types generally use alphabetical ordering. Is there a scenario where creation time ordering makes sense?

i do not think you should take a dependency on this, and name your projects based on their position in the dependency graph. this breaks parallel build. Instead use ProjectReference entries to declare dependencies. this works all the time, regardless of whether the targets file sorts the files before it calls tsc on them or not.

@mykohsu we don't do any sorting, but process the files in the order we encounter them, either in the project file or on disk... if you need explicit ordering use separate projects as @mhegazy suggested.

@mhegazy I agree. I am going to pitch this internally.
@paulvanbrenk  That's interesting, because I have tested and can confirm the order is based on file creation timestamp. Making a copy of the tsconfig puts it last. I suppose this is down to the file system API.

@mykohsu Well... making a copy will also put it last in the project file, if you switch the order in the project file that'll be the new order they are built in.

@paulvanbrenk I am not making a copy in the project file - just a copy on the file system and replacing the existing file.

What kind of project are you using?

HTML Project with Typescript.


fix(Chatbot/JumpButton): Remove content from DOM when not visible

Users could tab through invisible jump links and chatbots - Eric notes that this is no good. This should remove them appropriately.

Preview: https://virtual-assistant-pr-virtual-assistant-228.surge.sh


the spelling of bytes is not complete

Currently, it looks like this in XMIR:
<o base="bytes" data="bytes">00 00 00 00 00 00 00 03</o>

However, the right format is this:
<o base="org.eolang.bytes" data="bytes">00 00 00 00 00 00 00 03</o>

@yegor256 could you check it in the new version, please?


Jonmv/floating point window size

@baldersheim please review, but do not merge.

Uh, first two commits should have been one.

Yes, working on that, and a thorough unit test/playground.

I have no further, significant changes, though, so may as well merge this now to see how it behaves in real scenarios.


Specific encoding for PowerShell files don't apply

Issue Type: Bug
into settings.json place:
    "[powershell]": {
        "files.encoding": "utf8bom"
    },

create new powershell file and encoding will be utf8 instead of utf8bom
BUT
when I use:
"files.encoding": "utf8bom"
all new files will be with utf8bom
VS Code version: Code 1.55.2 (3c4e3df9e89829dce27b7b5c24508306b151f30d, 2021-04-13T09:35:57.887Z)
OS version: Windows_NT x64 10.0.19042

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-8350U CPU @ 1.70GHz (8 x 1896)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onprotected_video_decode: enabledrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.88GB (1.97GB free)

Process Argv
--crash-reporter-id 257616c8-d4a1-4b1d-b637-c60bf4009459

Screen Reader
no

VM
0%

Extensions (11)

Extension
Author (truncated)
Version

vscode-css-formatter
aes
1.0.1

autoit
Dam
1.0.5

xml
Dot
2.5.1

gitlens
eam
11.4.1

todo-tree
Gru
0.0.211

reg
ion
1.0.3

rainbow-csv
mec
1.8.1

powershell
ms-
2021.2.2

snippet-creator
rya
0.1.3

code-spell-checker
str
1.10.2

errorlens
use
3.2.6

A/B Experiments
vsliv368:30146709
vsreu685:30147344
python383cf:30185419
pythonvspyt678:30270856
pythonvspyt602:30291499
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492:30256859
vstry244:30276681
pythonvsdeb440:30248342
pythonvsded773:30248341
pythonvspyt875:30259475
pythonvspyt639:30291489
pythontb:30283811
pythonvspyt551cf:30291415
vspre833cf:30267465
pythonptprofiler:30281270
vshan820cf:30276953
vscoreces:30290705
pythondataviewer:30285071
vscus158:30286553

I believe this has nothing to do with PowerShell extension. It is VSC thing how to encode new files I believe.

create new powershell file and encoding will be utf8 instead of utf8bom

What file name do you pick?

In vsc I have powershell as my default language for new files. And this happens when I create new empty file, so the default name.

/gifPlease

Here it is

But strange is, that this apply for my old settings.json. Now I am trying some new stuff, and with these new settings, encoding is just fine.
So I have zipped both, the NOT working settings.json and the new WORKING one.
vsc settings.zip

Ok glad you figured it out.

Aaaaah sorry I totally forgot I set:
"files.encoding": "utf8bom"
In the new config. So it is used for ALL new files.
So I have still the same problem as you can see on the GIF uploaded

Please reopen the ticket. The problem is still there.


cargo watch -x run -- --data-dir ./data doesn't work

> cargo watch -x run -- --data-dir ./data
error: Found argument '--data-dir' which wasn't expected, or isn't valid in this context

USAGE:
    cargo watch [FLAGS] [OPTIONS]

For more information try --help

What works is cargo watch -x "run -- --data-dir ./data", but I don't believe it should be necessary.

What would you expect cargo watch -x check -x run -- --data-dir ./data to do? Out of curiosity, not implying you're wrong in any way

The same thing as cargo watch -x "run -- --data-dir ./data" does
I guess, in essence, I'm asking to change:
cargo watch [FLAGS] [OPTIONS]
[...]
-x, --exec <cmd>...

to:
cargo watch [FLAGS] [OPTIONS] [CMD...]
[...]
-x, --exec ...

It's a typical pattern for commands that execute other command.
Eg.
> rustup run stable echo a b c
a b c

works just fine and doesn't need "echo a b c". In fact:
> rustup run stable "echo a b c"
error: command failed: 'echo a b c'
info: caused by: No such file or directory (os error 2)

Yeah, I'm just wondering given how cargo watch can run multiple commands. Would the expectation be entirely that the "rest of the arguments" go to the last-mentioned command?
Also, for shorthand, would it be
cargo watch run -- --foo bar

with -x implied, or should the -x or -s be required like
cargo watch -x run -- --gone fishing
cargo watch -s command -- --and-arg here

Additionally, given cargo watch [FLAGS] [OPTIONS] [CMD...], one might expect this to work:
cargo watch -x run echo -n foo

yet I'm not super sure a) that this can be done (with clap and how it's used here), nor b) that this should be supported.
It's a good idea, but I want to explore more of the edge cases and expectations.

I wasn't aware that many commands can be given. Any combination of commands can be expressed by one shell command.
Eg.
cargo watch -s cargo build --release \; cargo test

should work just fine. cargo-watch will get a command line cargo build --release ; cargo test and will pass it to shell, which should do the right thing. (Same as  rustup run stable echo foo \; echo r does)
From my perspective, -x is just a convenient way to prefix the command with cargo.
I'm quite sure clap allowed taking all leftover arguments after somehow, so maybe structopt can too.

#[macro_use]
extern crate structopt;

use structopt::StructOpt;

#[derive(StructOpt, Debug)]
struct Opt {
    #[structopt(short = "x")]
    flag: bool,
    cmd: Vec<String>,
}

fn main() {
    let opt = Opt::from_args();
    println!("Hello, {:#?}", opt);
}

[I] 07-22 15:33 dpc@futex ~/l/b/foo (editor)> cargo run -- bar biz \;
   Compiling foo v0.1.0 (file:///home/dpc/lab/brainwiki/foo)
    Finished dev [unoptimized + debuginfo] target(s) in 0.58s
     Running `target/debug/foo bar biz ';'`
Hello, Opt {
    flag: false,
    cmd: [
        "bar",
        "biz",
        ";"
    ]
}
[I] 07-22 15:33 dpc@futex ~/l/b/foo (editor)> cargo run -- -x bar biz \;
    Finished dev [unoptimized + debuginfo] target(s) in 0.02s
     Running `target/debug/foo -x bar biz ';'`
Hello, Opt {
    flag: true,
    cmd: [
        "bar",
        "biz",
        ";"
    ]
}

It should really be cmd: Vec<OsString>,, but that might require some additional work...

Actually:
#[macro_use]
extern crate structopt;

use std::ffi::OsString;
use structopt::StructOpt;

#[derive(StructOpt, Debug)]
struct Opt {
    #[structopt(short = "x")]
    flag: bool,
    #[structopt(parse(from_os_str))]
    cmd: Vec<OsString>,
}

fn main() {
    let opt = Opt::from_args();
    println!("Hello, {:#?}", opt);
}

Sorry, I wasn't saying I wasn't sure whether your original proposal was possible in clap (we don't use structopts, so as cool as it looks, not relevant except in that whatever it does, clap does too). Rather, consider this:
cargo watch -s echo -n foo

Here are three equally possible, depending on implementation, ways this could go:

"ERROR: -n is not an accepted flag"
echo -n foo being run
(at a later stage, assuming -n becomes a flag or option to cargo watch) echo foo being run, and -n being passed to cargo watch.

I believe the expectation of a user would be number 2. Number 1 would probably be acceptable, especially if we could detect that particular case somehow and give an additional error message like "looks like you're trying to pass flags to the command, try quoting or using -- to separate arguments. Number 3 would be very confusing.
What I don't know is whether number 2 would be possible to parse. I suspect not, given that then we'd have ambiguity with this:
cargo watch -s foo -s bar

Is the command being asked to run foo and bar, or foo -s bar? Can't tell.
Alright, so it would probably be that if cargo watch -s echo -n bar we'll do number 1, and an error will be thrown... except if the flag or option being used is one cargo watch supports, in which case number 3 will apply!
We could just say that there's to be no trailing argument accepted of any sort if -- is not passed. How do we tell that? Does clap tell us or can it do it for us?
That would solve that ambiguity, but I'll bet that at some point someone will try without the -- and either be surprised to get an error, or hit just the right command that it will look like it worked but instead silently does something odd.

Also, yes, -x is merely a convenience, and multi-command could be replaced with letting people do their own chaining. For historical and other reasons, mostly that people asked to be able to do that, that's not the case. Removing those features would help in clarifying the situation and avoiding ambiguities in this case, but I'm don't think it's a very good idea to, at least not right now.
I believe I'd need to have a better reason to break the interface, otherwise I'll have people showing up complaining that they upgraded and suddenly all their workflows died and I'd be like "yeah but look, now you can do this particular thing without quotes".

To reiterate: I don't think this is a bad idea. Indeed I think this is a good idea, and I'm kicking myself for not thinking about it before.
But I do want to consider all angles of this, not just "is this doable". (It is!)
There's a cost analysis there. Implementation cost is probably very low. Design cost is moderately low: there's some complexities and ambiguities to be worked through. Then I need to consider support cost (what queries and issues will come from this, and how can I prevent most of them at the earliest, preferably design, stage?), and maintainer cost (will this change have implications and restrictions in how cargo watch can evolve in the future?), and user-friendliness cost (will this make the interface harder or easier to grok and in what ways? both can be true at the same time in different ways, too).

Here are three equally possible, depending on implementation, ways this could go:

That's what -- is for in Unix. :)
Anything after -- is free-running arguments, and not flags etc.
So:
cargo watch -s echo -n foo

is
cargo watch -n foo -s echo

while:
cargo watch -s -- echo -n foo

runs echo -n foo being run
Note, that according to this proposal, -s is a flag and is not taking any arguments, so.
cargo watch -n foo -s echo

and
cargo watch -s -n foo echo

are effective the same, and -s means just "the free-running arguments are to be interpreted as shell command".

and user-friendliness cost

Note: it's not even my idea. It's Unix tradition or something and I am just used to Unix tools working this way.
Anyway, I just wanted to bring it to your attention, and it's not a big deal one way or another.

I just tried it and I think it's implemented incorrectly:
% cargo watch -- cargo check
[Running 'cargo']
Rust's package manager

USAGE:
    cargo [+toolchain] [OPTIONS] [SUBCOMMAND]

OPTIONS:
    -V, --version                  Print version info and exit
        --list                     List installed commands
        --explain <CODE>           Run `rustc --explain CODE`
    -v, --verbose                  Use verbose output (-vv very verbose/build.rs output)
    -q, --quiet                    No output printed to stdout
        --color <WHEN>             Coloring: auto, always, never
        --frozen                   Require Cargo.lock and cache are up to date
        --locked                   Require Cargo.lock is up to date
        --offline                  Run without accessing the network
        --config <KEY=VALUE>...    Override a configuration value (unstable)
    -Z <FLAG>...                   Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for details
    -h, --help                     Prints help information

Some common cargo commands are (see all commands with --list):
    build, b    Compile the current package
    check, c    Analyze the current package and report errors, but don't build object files
    clean       Remove the target directory
    doc         Build this package's and its dependencies' documentation
    new         Create a new cargo package
    init        Create a new cargo package in an existing directory
    run, r      Run a binary or example of the local package
    test, t     Run the tests
    bench       Run the benchmarks
    update      Update dependencies listed in Cargo.lock
    search      Search registry for crates
    publish     Package and upload this package to the registry
    install     Install a Rust binary. Default location is $HOME/.cargo/bin
    uninstall   Uninstall a Rust binary

See 'cargo help <command>' for more information on a specific command.
[Finished running. Exit status: 0]
^C

It seems it's only using the first argument and passing it to sh -c, so there's no real difference to -s :)
 cargo watch -- 'cargo check'
[Running 'cargo check']
    Blocking waiting for file lock on build directory
^C


[Bug] Fix Copy is missing projectid and moudle issue

Problem Summary:
What is changed and how it works?
Proposal: xxx
Feel free to ping committers for the review!
Contribution Checklist

Make sure that the pull request corresponds to a GITHUB issue.

Name the pull request in the form "[Feature] [component] Title of the pull request", where Feature can be replaced by Hotfix, Bug, etc.

Minor fixes should be named following this pattern: [hotfix] [docs] Fix typo in README.md doc.

Purpose of this pull request

@wolfboys  PTAL

LGTM


fix in addElement of a svg

I think there is an error in ChessboardView.j, when you call to the function "addElement" of a svg. If you pass the parameter "sibling" should be enter in insertBefore, not in appendChild.

Hello, thank you for your contribution. It looks like you are correct. However, I haven't found any place in the code where the siblings parameter is used, so I would be more inclined to remove it, also because of the messy function signature of addElemet. Would there be anything against it from your point of view?

There are not anything against it, but for me it is useful because I had programmed some exercises in my app, where I add elements in the svg of the board, and I needed add those elements before a sibling parameter, but I understand you too if you prefer to remove it. Thanks.


Creating buttons in custom actions

Rasa Core version:0.11.3
Python version:
Operating system (windows, osx, ...):
Issue:
As we are mentioning buttons in templates in domain.yml file, Can I create buttons in custom actions?

Yes you can, there's the dispatcher.utter_button_message function that does this. Please ask this type of questions in our forum


Continued loop

Loops properly when value of length isn't in parameters and creates a password.
However, if a value outside of length is selected first. It will require multiple function cycles to produce the password in text area.

return added to stop loop


For #38: Changed CI configurations to oracle JDK 8.

For #38: Changed CI configurations to oracle JDK 8.

Codecov Report

Merging #39 into master will not change coverage.
The diff coverage is n/a.

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

Could not use oracle jdk 8 in all tools; changed wercker  to java:8 image and circleci to maven:3.5.4-jdk-8-alpine

@rultor merge

@rultor merge

@paulodamaso OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@paulodamaso Done! FYI, the full log is here (took me 2min)


How to edit the value programmatically?

I'm having a hard time figuring this out. The only option now is initial value but how can I change the current value on other aspects? Like I wanted to add a reset button to reset the current value and the scroll itself. How to achieve this?

Thank you for writing your opinion!
We added that function to proceed with the 2.2.0 update.
Example :
    _controller.jumpTo(30.0);
    _controller.jumpToItem(30);

Thank you!


Autocomplete does not seem to work under the tests directory.

Hi
Autocomplete for dependencies packages does not work in tests directory.

elm.json
{
    "type": "application",
    "source-directories": [
        "src",
        "tests"
    ],
    "elm-version": "0.19.0",
    "dependencies": {
        "direct": {
            "elm/browser": "1.0.0",
            "elm/core": "1.0.0",
            "elm/html": "1.0.0",
            "elm/random": "1.0.0"
        },
        "indirect": {
            "elm/json": "1.0.0",
            "elm/time": "1.0.0",
            "elm/url": "1.0.0",
            "elm/virtual-dom": "1.0.0"
        }
    },
    "test-dependencies": {
        "direct": {
            "elm-explorations/test": "1.0.0"
        },
        "indirect": {}
    }
}

This is my repository for development.
I use Elm 0.19 and elmjutsu 8.5.0.

Hi @ababup1192, can you check v8.6.1?  Thanks for the screenshot and sample project!

Hi @halohalospecial, Thank you very much for updating!  Autocomplete has been effective successfully.
However, why continue to keep this error?

Hi @ababup1192, saving Tests.elm runs elm make tests/Tests.elm (the active file).  You can enable the Always Compile Main option so that Elmjutsu always runs elm make src/Main.elm instead.
https://github.com/halohalospecial/atom-elmjutsu#always-compile-main

Great! The error has been resolved!


Invalid test case for Gibbs?

I'm currently updating Turing.jl to be compatible with the new version of DynamicPPL.jl and ran into something that seems like a bug.
Currently, we implement the logdensity-evaluation required for MH here:
https://github.com/TuringLang/Turing.jl/blob/d1d4071b603d60d6ba969f3b14bfb347795644b7/src/inference/mh.jl#L251-L263
But now that we have a clear separation between sampling (SamplingContext) and evaluation (DefaultContext), this seems like it should now be:
function (f::MHLogDensityFunction)(x)
    sampler = f.sampler
    vi = f.vi

    x_old, lj_old = vi[sampler], getlogp(vi)
    set_namedtuple!(vi, x)
    f.model(vi, DefaultContext()) # CHANGED
    lj = getlogp(vi)
    vi[sampler] = x_old
    setlogp!(vi, lj_old)

    return lj
end

To ensure that we're only evaluating, not sampling.
But making this change results in the following test-case to fail:
https://github.com/TuringLang/Turing.jl/blob/d1d4071b603d60d6ba969f3b14bfb347795644b7/test/inference/gibbs.jl#L91-L111
It complains that a component of m is missing. The issue is that once z has been sampled, the number of components has changed and so the size of m has changed. Currently this test will pass because MH will just silently sample this component from the prior when evaluating the logpdf of the proposed state.
It's unclear whether:

This was intended in the first place.
If it's even valid to do.

Uh yeah that seems quite wrong. The line you added
f.model(vi, DefaultContext()) # CHANGED

seems correct to me and it should be merged in.
As to the failing test, I am not sure -- I don't recall working with this model but I would expect this behavior to be supported.

@yebai Mentioned that it might "accidentally" end up doing the correct thing, but even so we probably should do this in a separate/explicit way rather than implicit like currently done.

Closed in favour of https://github.com/TuringLang/Turing.jl/issues/1904


Coloring changes in  Roster Table

If displaying stats, uses inverse coloring where applicable.  Otherwise (for ratings), defaults to normal coloring scheme

const inverse = statType === 'stats' ? getCatInverse(props.column.id) : false;
I find this a lot more readable, essentially the if else you had earlier but cleaner


Convert to MongoDB callback API

https://github.com/sillsdev/serval/issues/314
This should help fix the transaction issues the right way.

This change is

src/SIL.Machine.AspNetCore/Services/SmtTransferEngineService.cs line 57 at r1 (raw file):
Previously, ddaspit (Damien Daspit) wrote…
You should use ct to be safe.

Done

src/SIL.Machine.AspNetCore/Services/SmtTransferEngineService.cs line 83 at r1 (raw file):
Previously, ddaspit (Damien Daspit) wrote…
You should use ct to be safe.

done

src/SIL.Machine.AspNetCore/Services/SmtTransferEngineService.cs line 157 at r1 (raw file):
Previously, ddaspit (Damien Daspit) wrote…
You should be able to set the state here, i.e. SmtTransferEngineState state = _stateService.Get(engineId);, and pass the state to the TrainSubroutineAsync call.

It't a bit cleaner - ok.

src/SIL.Machine.AspNetCore/Services/SmtTransferEngineService.cs line 175 at r1 (raw file):
Previously, ddaspit (Damien Daspit) wrote…
I don't think we should make this transaction cancelable, i.e. we should pass in CancellationToken.None.  Once hybridEngine.TrainSegmentAsync has been called, we don't want to be able to cancel the request, since the SMT model has been updated on the disk.

Is that better?

src/SIL.Machine.AspNetCore/Services/NmtEngineService.cs line 59 at r1 (raw file):
Previously, ddaspit (Damien Daspit) wrote…
You should use ct just to be safe.

ok

src/SIL.Machine.AspNetCore/Services/SmtTransferEngineService.cs line 172 at r2 (raw file):
Previously, ddaspit (Damien Daspit) wrote…
The return is unnecessary.

You're right.

Codecov Report
Attention: Patch coverage is 70.14925% with 20 lines in your changes are missing coverage. Please review.

Project coverage is 67.10%. Comparing base (707d7dc) to head (71823cf).

Files
Patch %
Lines

...IL.Machine.AspNetCore/Services/NmtEngineService.cs
0.00%
20 Missing :warning:

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #184   +/-   ##
=======================================
  Coverage   67.09%   67.10%
=======================================
  Files         441      441
  Lines       34826    34849   +23
  Branches     4669     4668    -1
=======================================
+ Hits        23368    23386   +18
- Misses      10365    10370    +5
  Partials     1093     1093

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


PR: correctly handle Kite replacement range, fixing dict completions

Description of Changes

[ ] Added unit test(s) covering the changes (if testable)

[x] Included a screenshot or animation (if affecting the UI, see Licecap)

Kite returns a replacement range with each completion indicating where to insert the completion within the buffer. This is particularly useful for more non-traditional completions, such as Kite's dict completions, where simply matching the preceding identifier is not enough. Kite's dict completions were previously broken in Spyder, but this change fixes them.

Support the textEdit functionality of the LSP spec
Properly respect the filterText when deciding whether completions are still valid.
Update the Kite provider to specify a textEdit instead of insertText, and also not use filterText, since Kite filters internally (and will always do so -- it is part of the API spec).

Should I add any unit tests for this? @andfoy @ccordoba12
Affirmation
By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct: @metalogical

@andfoy I have not tested with other LSP servers. I'm not sure which server uses the textEdit functionality instead of insertText, so it's a little difficult to test. Any suggestions?

I fixed a bug that was caught by tests where when on-the-fly completions are turned off, the completion filtering was broken:

use the old insert logic for the old-style insertText completions
remove textEdit completions from the completion list when doing in-editor filtering, since it's difficult to correctly update the replacement range.

so if on-the-fly completions are turned off, you'll see Kite completions on tab or ctrl-space, but they'll disappear when you continue typing.

@andfoy I looked into the unit tests, and it seems like we already have fairly good coverage on tests that check that the PyLS (insertText) completions continue to work. So this should at least be fairly safe on that front.
We don't have much coverage on Kite completions (with textEdit), but I'm not sure if there's any good way to test that right now with your infrastructure.

We don't have much coverage on Kite completions (with textEdit), but I'm not sure if there's any good way to test that right now with your infrastructure.

Actually, right now we don't have any Kite tests, we can add them later on, so don't worry about that

Hi @metalogical thanks for working on this! Looks awesome :-)
I have one question. I was expecting to get completions without the need of typing the string quotes
dic = {}
dic['one'] = 1
dic['two'] = 2

dic[*]

So if I have the cursor (*) and press tab I just get a tab space and not a completion. Is this expected behavior?

@goanpeca thanks for the review.
There is currently a deficiency in Kite where we cannot parse incomplete subscript expressions, which is why you don't see completions in the dic[*] case.
It's a bit tricky for us to fix this right now, so no word on when there will be a fix, but it's in our queue.
I addressed your other comments.

@metalogical, this has a conflict with master now (probably due to PR #10502). Please solve it so I can merge it.

resolved the conflict, just waiting on CI

The following error is appearing @metalogical
completion = self.currentItem().data(Qt.UserRole)
AttributeError: 'NoneType' object has no attribute 'data'

@ccordoba12 @goanpeca this should be good to go


doc: fixed typo

@kospl please create a branch from your own repository before submitting a PR.

@PopGoesTheWza sounds good, can you update documentation https://github.com/google/clasp#contributing


mobile: adding rich virtual cluster APIs (WIP)

Risk Level: low
Testing: new unit tests
Docs Changes: n/a
Release Notes: will add when we remove the old version
Part of #24976

Hey @Augustyniak I haven't done the cross-language plumbing yet, but if you could take a brief glance and let me know if I missed any fields, that'd be great.
I think for this one I'll add-[let you]-edit-remove, so I'll docs when I land the removal, in case we need to add any other options for the Lyft port.

thanks a million for offering to do the swift - I wasn't sure if that offer was still open in the absence of JP and I'd been staring at mm and m files trying to figure out how many CI passes this was going to take :-)

OK, fixed my typos and given you're OK doing swift (THANK YOU) this is ready for a pass

/wait I think ci regression is real


Add composer version to log. Better error message for timeout

Coverage: 47.668% (-0.2%) from 47.895% when pulling e99bd183df98864a6b34e692b70aa213a042b031 on fix/error-msg-and-log into 4b26323d7b10c9c353285c489c24dd7bb15b6e74 on main.


Correct message wording

Edited error message to make it grammatically correct.

Hi, please also update tests to match new return value of the error. At least Robot tests are checking for returned error value in the page.


Update display with str data

Signed-off-by: shiyu22<EMAIL_ADDRESS>

Codecov Report

Merging #1135 (88086a8) into main (fa819da) will increase coverage by 0.03%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main    #1135      +/-   ##
==========================================
+ Coverage   60.98%   61.01%   +0.03%
==========================================
  Files         226      226
  Lines       10224    10225       +1
  Branches     1717     1717
==========================================
+ Hits         6235     6239       +4
+ Misses       3562     3558       -4
- Partials      427      428       +1

Impacted Files
Coverage Δ

towhee/functional/mixins/display.py
38.42% <100.00%> (+1.21%)
:arrow_up:

towhee/_types/image.py
64.00% <0.00%> (+4.00%)
:arrow_up:

Continue to review full report at Codecov.

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

/lgtm
/approve


create a page for club04

create a page called
forum-cea.html under src/campus-life/clubs-at-cea/
with headers and footers from
src/contact.html
Make sure you change the title in html page to FORUM | CEA

Sorry @mikestratton Leave it this issue to someone else to work on.
You can find other good first issue labelled issues in other repos as well.

#181

#191


Remove KILL_PROCESS_TIMEOUT or make it modifiable

/sbin/my_init should not be killing my process after some hard coded timeout. People are using orchestration tech like kubernetes, which manages these timeouts in an explicit way so things can gracefully terminate. The my_init behaviour of a hardcoded 5s is hidden away in the script and not documented or obvious, and causes problems in these environments.
Can we either remove it completely (preferred), or increase it / make it modifiable with a flag?

It looks like it already is modifiable with an environment variable.  https://github.com/phusion/baseimage-docker/blob/next/image/bin/my_init
The beginning of this script:
KILL_PROCESS_TIMEOUT = os.environ.get('KILL_PROCESS_TIMEOUT', 5)
KILL_ALL_PROCESSES_TIMEOUT = os.environ.get('KILL_ALL_PROCESSES_TIMEOUT', 5)

looks like it's pulling environment variables that you could set in the Dockerfile, but it is a bug that there is no documentation of this feature or how to use it anywhere in the README.  I think the correct way to do this right now is to build your own Dockerfile such as this:
FROM phusion/baseimage

CMD ["/sbin/my_init"]
ENV KILL_PROCESS_TIMEOUT 60
ENV KILL_ALL_PROCESS_TIMEOUT 60

I am not sure it makes sense to disable this feature entirely, it is the role of the process supervisor to clean up child processes and you can optionally disable supervision entirely (don't use my_init), if you have something else taking care of those concerns.  The process supervisor is actually broken if it never kills child processes.  You could add a flag to disable it, but I would make that a totally separate change because how to implement it inside of my_init probably warrants further discussion.
But moving those existing values to something like "values.yaml" or similar one-stop-shopping place for global configuration variables such as this to live, in the style of helm, is something I could immediately get behind.  Helm is not currently a dependency of this project at all, and it makes sense to keep this image as agnostic of orchestration tools as possible... so maybe not values.yaml, but something almost exactly like it for all configuration variables would be nice to have, and could potentially help to make the documentation smaller.
I am using Kubernetes too, and your criticism of this decision is pretty much spot-on.

Ah it looks like that got changed very recently, https://github.com/phusion/baseimage-docker/commit/d9e762730a1c065cf3eac10d3435664edff44b61 in 0.9.20 version. Not sure this has been released yet though. Documentation update would be great as well.

I don't mind it killing the child process, I just don't want it having a hidden timeout for it. Kubernetes and docker will force kill everything after its own timeout.

I think there is (was?) an issue with grandchild processes not getting cleaned up and turning into zombies if the process supervisor was killed or wasn't keeping track.  Not sure if Docker has evolved a more general solution to this, but it seems likely that the timeout was made short to avoid the case where the process supervisor was forcefully killed and did not have time to clean up child processes.

This was released in 0.9.20 -- prior to that it could not be overridden.

@Theaxiom It appears broken, unfortunately. When I set ENV KILL_PROCESS_TIMEOUT=3600:
Traceback (most recent call last):
  File "/sbin/my_init", line 308, in main
    stop_child_process(args.main_command[0], pid)
  File "/sbin/my_init", line 152, in stop_child_process
    signal.alarm(time_limit)
TypeError: an integer is required (got type str)

os.environ.get('KILL_PROCESS_TIMEOUT', 5) should be int(os.environ.get('KILL_PROCESS_TIMEOUT', 5)) probably.

I made https://github.com/phusion/baseimage-docker/pull/385 to fix it.

Ahh ok, we will have to change it to eval as int.

On Apr 7, 2017, at 3:31 AM, James Ravn<EMAIL_ADDRESS>wrote:
@Theaxiom https://github.com/Theaxiom It appears broken, unfortunately. When I set ENV KILL_PROCESS_TIMEOUT=3600:
Traceback (most recent call last):
File "/sbin/my_init", line 308, in main
stop_child_process(args.main_command[0], pid)
File "/sbin/my_init", line 152, in stop_child_process
signal.alarm(time_limit)
TypeError: an integer is required (got type str)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/phusion/baseimage-docker/issues/384#issuecomment-292503259, or mute the thread https://github.com/notifications/unsubscribe-auth/AADetb5Zuo8Tmkr8dsfF1FGv42tfBVLtks5rthB4gaJpZM4M1nEh.

Thank you, I will get this merged in asap.

This also brings up how we should be pushing next to docker-hub for people who want bleeding edge updates.


Removed entries list

Keeping track of those entries removed (where and why).

Reasons for removal may include:

Not open source
Very early development stage (not at least in beta or tech demo)
Not available anymore (for an extended period, search for it first)

Removed Astral Clades
Not clearly marked as open source (no license information in the source or binary packages).
Also not very advanced and trying to contact the original authors to maybe obtain open source rights seems too time-consuming.

Removed Altera Terra
Not clearly marked as open source (no license information in the source or binary packages).
Also not very advanced and trying to contact the original authors to maybe obtain open source rights seems too time-consuming.

Removed Sworsorc
Is not open source (see copyright header of the source files). Making open source would require consent of all listed people. Seems not very likely.

Temporarily removed Camelia Girls
Source not available. If source becomes available, will add it again.

Removed Moopy in e1b9cb6496af0eb4d636a57a0f55591fcdebb66a
Very early development stage (just start screen and main screen, no logic).

Removed Project Diaspora in 37ff720f0570367d378fa740cf97e6f3686308ae
Closed source. (All rights reserved notice in source files)

Removed Wargame in<PHONE_NUMBER>81a793e79423f6d9c95a872a62f1c1
Unclear license and no apparent contact possibility to the original creators. See also https://github.com/Trilarion/opensourcegames/issues/97

Removed  Solaris in 39c65afbbfc3a6b9d8361beaf6a282e7a41ebb18
Very early development stage (some blender files, no source recognizable).

Removed Open General in 6d23d23b1809975270ab74ab81fc5f84b3429282
Is not open source (see credits file).

Removed Begin2 in 6d23d23b1809975270ab74ab81fc5f84b3429282
No source of the base game available and base game license could not be verified.

Removed Arthur's Knights in 6d23d23b1809975270ab74ab81fc5f84b3429282
License unclear and author not reachable. See also #96

Removed Visions from the Other Side in 878d5365a729da6f1a46a3b373661aee2f1911ba
Source not available. See also #67

Removed Age of Magic in 878d5365a729da6f1a46a3b373661aee2f1911ba
Decided not to make an entry for it, but already had. So it needed to be removed. See also #68

Removed Promisance in 77f8806df845e4b96d804a39acdacc2e8b54f919
Author did not respond to request of making versions >= 4.0 properly open source. Versions < 4.0 are too minor in content. See also #78

Removed sCoreForge Pathfinder Character Creator in 4788b5011e1a126d0327c25de310ed95bd3c0f0d
Could not establish open source license information. See also #94

Removed RuneSword II in 4788b5011e1a126d0327c25de310ed95bd3c0f0d
Could not establish open source license information. See also #79

Removed 8 Kingdoms in 4788b5011e1a126d0327c25de310ed95bd3c0f0d
Could not establish open source license information. See also #80

Removed Drop Shock in 4788b5011e1a126d0327c25de310ed95bd3c0f0d
Could not establish open source license information. See also #83

Removed Eleconics in 4788b5011e1a126d0327c25de310ed95bd3c0f0d
Could not establish open source license information. See also #76

Removed Scoreos in 4788b5011e1a126d0327c25de310ed95bd3c0f0d
Could not establish source base. See also #27

Removed Solar Empire in 4788b5011e1a126d0327c25de310ed95bd3c0f0d
Could not establish open source license information. See also #92

Removed OpenPop in b5ee11116232026df31647cffd8dac0afdef57e3.
Very early development stage (only 2D graphics mockup, no 3D graphics, no game mechanics implementation).

Remove Aeron in cd4eff8047703c7d0df18075b4a9da92aca95f5b.
Only a small very amount of code and commits. Almost no game mechanics implementation.

Removed Unchartered Waters 2 in 7c32a60300909187f80393114c5a6dc1b3d2dd66
Unfortunately right after adding the game and before cloning the repository, the owner removed the repository from Github, so the sources are lost. Maybe the owner saw that I starred the repo (otherwise it would be quite a coincidence).

It get's too tedious keeping this list up to date. I'll stop doing it.


added a clear all task button

It only appears when there is a task and disappears after clearing all tasks

Thanks for your valuable contribution.
Don't forget to star the repo.


I got an error PropTypes.bol is undefined

undefined is not an object  (evaluating '_react.PropTypes.bool')

 keyboardAwareMixin.js:16:41
LoadModuleImplemenation
require.js:192.12
my react native verion
react-native-cli: 2.0.1
react-native: 0.50.1

Please update to the latest version of the library :)


User permissions and role functionality

Includes Josh's work on Bert sample

Model class
Insertion script

Roles can now be changed from either the edit project page or project user profile

On role change, permissions stored in user project instance to allow for flexibility
Able to add and remove inherited permissions from the role

Permissions for adding and editing variables are now functional
Removed project roles page
Added Sample & Results page (details for content in Design Doc)
Permission list in profile page is loaded from DB
Permissions model now has 'assignable' boolean field to allow filtering out create and delete project permissions in querysets
Permissions given "hierarchical" ranking with decimal field for grouping of similar permissions
Setting user project specific permissions has not been implemented yet, will start tomorrow

Resolved conflict in models.py with the same bert_main_sample_data class being in two places
Resolved conflict in views.py with include statements.


Implementation of DICOMs3Client based on DICOMwebProtocol

@pieper @chafey As discussed in #56, it would be great to implement a DICOMs3Client based on DICOMwebProtocol.
In general, I think we should consider the following aspects for the design of an S3 client:

Index of metadata for efficient query: DICOM attributes needed for response payloads of DICOMweb Search Transaction (Study Resource, Series Resource, and Instance Resource)
Offset to pixel data and individual frames for efficient frame retrieval: for natively encoded Pixel Data, the client can just compute the offset of individual frames, but for an encapsulated Pixel Data element, the client would require the Basic Offset Table or Extended Offset Table
Read and write: DICOMweb Store Transaction

(1) I've been thinking that we could put the metadata into the S3 Object Metadata. The PUT request header is limited to 8 KB in size, but that should be sufficient for the metadata. This could also include the offset to the Pixel Data, Float Pixel Data, or Double Float Pixel Data element (see 2).
(2) If the Pixel Data element contains a Basic Offset Table item, then the client could just read its value and cache the offsets locally. Otherwise the client would have to determine the offset of frame items by reading the header of each frame item. That could result in a lot of HTTP calls, so ideally we would make sure that the Basic Offset Table gets included into image data sets.
(3) To support writes (including parallel writes), we shouldn't store any aggregate study- or series-level information such as Number of Study Related Series in the object metadata, but dynamically compute it client-side.
What do you think?

cc @cgorman @cpbridge

It isn't clear to me what you are trying to do here - can you ELI5?  An architecture diagram would help (sorry I am not familiar with this project at all)

As @pieper mentioned, I am working on a DICOMweb based archive format as well as a serverless DICOMweb implementation.  Here are some links:
https://github.com/chafey/dicomweb-archive-direct
https://github.com/chafey/dicomp10-to-dicomweb-js
https://github.com/chafey/dicomweb-dump

@chafey, this would be a python client for fetching data from a serverless DICOMweb implementation (rather than specifying paths directly).

I don't have enough context on the proposal to answer your question intelligently (does it match the existing DICOMweb spec and simply leverage a different form of implementation via static S3 blobs?). @pieper referenced it here: https://github.com/MGHComputationalPathology/dicomweb-client/pull/56#issuecomment-961851001, so perhaps he's best positioned to discuss what he's thinking?

The concept is still coming together, but the general idea is to leverage object storage as much as possible for scalability.  Storing pregenerated DICOMweb responses in object storage enables many access use cases and layering on serverless compute (lambda, dynamodb, object lambda) to implement the other DICOMweb functionality.  This has been a regular topic of the monday morning meetings: https://github.com/chafey/medical-imaging-community

I've only been able to attend a couple meetings thus far due to a standing conflict. That being said, if the proposal ends up being API-compatible with the existing DICOMweb standard (i.e., a new method of implementation), then the existing DICOMwebClient would be sufficient. If not however, a new client would be required.

In terms of this specific issue/request, I suppose another approach could be to implement the existing API, but have it run directly use AWS (S3, maybe other services).  I am not sure if this is really worth it though as we should be able to get most if not all of DICOMweb implemented using servless as described above..

I think the pre-computed metadata works for archives (rarely changing data, like IDC where we plan monthly versions).
@hackermd mentioned he wanted to use this client in a dynamic environment and was concerned about keeping static content in sync.

We do want to trigger rebuilding of the metadata any time the source data changes so that shouldn't be a problem.  Another option is to store DICOM P10 in S3 with wado-uri paths and then implement DICOMweb using serverless on top of it.  It wouldn't be as fast, but it should be just as scalable.

@chafey the DICOMwebClient class is a Python client for interfacing with a DICOMweb server over HTTP. The new DICOMfileClient allows users to access DICOM data sets that are stored locally as DICOM Part10 files via the same Python API (DICOMwebProtocol). As a next step, I would like to extend this concept to DICOM data sets stored in an S2 bucket.

Maybe you could start by taking a similar approach, just use S3 ListObjects API and parse each one to build the master list.  After that is done, you can figure out how to optimize it (e.g. cache offsets/tags in the metadata as you suggested using an object lambda?)

Maybe you could start by taking a similar approach, just use S3 ListObjects API and parse each one to build the master list. After that is done, you can figure out how to optimize it (e.g. cache offsets/tags in the metadata as you suggested using an object lambda?)

The main question to me is to which extent the data should be pre-indexed versus indexed dynamically by the client.
The DICOMfileClient internally uses a SQLite database to index the DICOM metadata and caches the index on disk along with the files. This index operation is potentially extension, but the advantage is that the DICOMfileClient does not depend on a particular directory structure or file naming convention. In that sense it is truly serverless.

I was hoping that we could provide the same functionality for S3 buckets via the DICOMs3Client, i.e., allow a Python program to point it to any bucket that contains DICOM data sets and then query, retrieve, and store data via the Python DICOMwebProtocol interface.  The DICOMs3Client would use the S3 API under the covers, but expose the data using DICOMweb semantics.

Better to pre-index it since S3 is a shared resource and building the index is expensive.  Ideally this architecture would be portable to other languages so an index that is universally understandable would be good.  Alternatively, you could package sqllite in a WASM module and create bindings for each language.  Just thinking out loud here...

Also - if you have < 100,000 studies you could simply store the contents of the index in a JSON file and build the indexes on the fly in memory

Better to pre-index it since S3 is a shared resource and building the index is expensive. Ideally this architecture would be portable to other languages so an index that is universally understandable would be good. Alternatively, you could package sqllite in a WASM module and create bindings for each language. Just thinking out loud here...

In principle, the DICOM standard already provides such indices via DICOMDIR files. They are not pleasant to work with, but are very compact and already supported by most DICOM libraries.
The Study Resource, Series Resource, and Instance Resource are (more or less) a JSON representation of DICOMDIR files.
Either way, I agree that it would be highly desirable to be able to share the indices between applications. We could just add methods to DICOMfileClient and DICOMs3Client to marshal and unmarshal the index to/from JSON (or binary DICOMDIR).
That would even be very useful for DICOMweb origin servers, because they could then also just be pointed to an S3 bucket and could import the index into their database without having to re-import all the data!

@chafey, could you elaborate on the motivation (either here on in Monday's meeting) for not leveraging a database for metadata? I completely understand how serving of pixel data could fully utilize a PACS resources. Is the assumption that QIDO requests (could) do the same?

Databases are typically the performance and scalability choke point for medical image archives.  You want to avoid them when possible and minimize them when you can't avoid them completely.  For smallish archives (< 100,000 studies), they are not needed at all as the entire data set can easily fit in memory and you can implement the queries using simple scans (e.g. iterate over the series in a study to implement QIDO-RS StudySeries queries) or an in memory index (e.g. a map of patientIds to implement QIDO-RS Search Studies queries).  Any queries that are constrained to a single study can be done entirely in memory without a database.  The only time you need an index is when doing Study level queries for large archives and something like redis or no-sql are far better options than a RDBMS

For smallish archives (< 100,000 studies), they are not needed at all as the entire data set can easily fit in memory

That is a big assumption. In pathology, not even a single study may fit in memory!

That is a big assumption. In pathology, not even a single study may fit in memory!

This discussion is on metadata

That is a big assumption. In pathology, not even a single study may fit in memory!
Or do you just refer to the indexed metadata?

I am just referring to metadata

Databases are typically the performance and scalability choke point for medical image archives. You want to avoid them when possible and minimize them when you can't avoid them completely. For smallish archives (< 100,000 studies), they are not needed at all as the entire data set can easily fit in memory and you can implement the queries using simple scans (e.g. iterate over the series in a study to implement QIDO-RS StudySeries queries) or an in memory index (e.g. a map of patientIds to implement QIDO-RS Search Studies queries). Any queries that are constrained to a single study can be done entirely in memory without a database. The only time you need an index is when doing Study level queries for large archives and something like redis or no-sql are far better options than a RDBMS

A few questions:

Is the DB bottleneck from QIDO-RS queries or metadata needed for series/study retrieval? If it's the latter, would this bottleneck disappear if the data were pre-computed?
Does this bottleneck remain in a scalable, sharded DB or is this something that is limited to a more vanilla clinical deployment?
If the metadata were held in memory client side, how would the client become aware of the latest studies? Synchronization seems like it could be tough.

I'm wondering if an easier solution would be to lean on a vanilla datastore, either database or redis, for DICOM metadata (e.g., QIDO-RS queries) and pre-compute the instances/series/studies (or a subset with lambdas for aggregation/de-aggregation). I'd be curious to see whether any clinical or research workflow could strain such a setup.

Many PACS systems store everything they need to respond to QIDO-RS/CFIND in an RDBMS.  This is problematic because the DB becomes very large and also a chokepoint for data ingestion (each SOP Instance is an insert possibly causing rebalancing of indexes).  The strategy I have used to reach incredibly high scale is to store the metadata on disk and read from it to handle queries below the study level - this can  be done via pre-generation of metadata as we are discussing with the dicomweb-static project.  When you take that approach, you just need to provide indexes for study level attributes (patient name, patient id, study date, etc) and can use any technology you want (RDBMS, NoSQL, Reddis, etc) as the problem is much simpler.
The strategy is independent of DB technology - object storage is always cheaper than DB and performs well enough for the target use cases.  The other advantage is you can do all sorts of analytics on the storage tier with map reduce without having to ETL/Sync it to another reporting db.
Synchronization from server to client is a solved problem - there are many solutions for this (basically use pub/sub to distribute data store changes to clients over WebSockets and such)

Many PACS systems store everything they need to respond to QIDO-RS/CFIND in an RDBMS. This is problematic because the DB becomes very large and also a chokepoint for data ingestion (each SOP Instance is an insert possibly causing rebalancing of indexes). The strategy I have used to reach incredibly high scale is to store the metadata on disk and read from it to handle queries below the study level - this can be done via pre-generation of metadata as we are discussing with the dicomweb-static project.

I am fully on board with storing instance metadata as documents and keeping those in memory for fast queries. We've run into several issues with RDBMS-based implementations when storing many instances via the DICOMweb Store Transaction.
The main question to me is whether those documents should be cached (relative to the full instances) and whether other applications (in particular serverless clients such as the DICOMs3Client) should be able to leverage them, too.
That's basically what DICOMDIR files of the DICOM File Service are intended for. Unfortunately, they are a pain to work with and difficult to update (binary offsets) and I am wondering whether we want the DICOMweb response JSON documents to serve as a DICOMDIR alternative.

Many PACS systems store everything they need to respond to QIDO-RS/CFIND in an RDBMS. This is problematic because the DB becomes very large and also a chokepoint for data ingestion (each SOP Instance is an insert possibly causing rebalancing of indexes). The strategy I have used to reach incredibly high scale is to store the metadata on disk and read from it to handle queries below the study level - this can be done via pre-generation of metadata as we are discussing with the dicomweb-static project. When you take that approach, you just need to provide indexes for study level attributes (patient name, patient id, study date, etc) and can use any technology you want (RDBMS, NoSQL, Reddis, etc) as the problem is much simpler.
The strategy is independent of DB technology - object storage is always cheaper than DB and performs well enough for the target use cases. The other advantage is you can do all sorts of analytics on the storage tier with map reduce without having to ETL/Sync it to another reporting db.
Synchronization from server to client is a solved problem - there are many solutions for this (basically use pub/sub to distribute data store changes to clients over WebSockets and such)

Let's try to find some time to discuss on Monday if the agenda isn't already spoken for.


JsonRpcProcessor ignores JsonSerializerSettings on response serialization

I think there is a bug in JsonRpcProcessor.ProcessSync() method since the serialization of the response of a request ignores completely the settings (a JsonSerializerSettings instance) argument.
https://github.com/Astn/JSON-RPC.NET/blob/177be604e532fe2c1e11fec9d4c8447138f7f741/Json-Rpc/JsonRpcProcessor.cs#L139-L146

++++

https://www.newtonsoft.com/json/help/html/DefaultSettings.htm

FIX https://www.newtonsoft.com/json/help/html/DefaultSettings.htm

The problem is not with the default settings, the problem is that the code that was referenced in this issue ignores the argument settings of JsonRpcProcessor.ProcessSync(...).

Merged


Send the correct 'Host' header when upgrading.

Related: #98
Motivation:
HttpSessionChannelFactory keeps the cached map from SessionProtocol to
Bootstrap. The cached Bootstrap configures its new Channels to send the
name of the target host with an H1C-to-H2C upgrade request.
Unfortunately, The cached Bootstrap does not determine the target host
name dynamically but just uses the initially specified one, and this
makes a client send a wrong 'Host' header when a pool creates a new
connection with a different target host name and with the same
SessionProtocol.
Modifications:

HttpConfigurator doesn't require a 'host' parameter anymore. It
retrieves the target host name by intercepting the 'connect()'
operation.
Add HttpHostHeaderUtil that creates 'Host' header value correctly

Use HttpHostHeaderUtil.hostHeader() in HttpConfigurator and
HttpSessionHandler to reduce code duplication

Miscellaneous:

Replace HttpRemoteInvoker.poolKey() with direct constructor call
Fix the API documentation of ServiceInvocationContext.host()
Reorganize the methods and inner classes in HttpConfigurator
Remove ByteBufOverHttpCodec which is not used anymore

Result:

Armeria client sends the correct 'Host' header when it sends a upgrade
request.
Description of ServiceInvocationContext.host() is not misleading
anymore.

@anuraaga PTAL

Just one nit

@anuraaga Addressed the nit


Need more info on how to do the training?

I am trying to train for tamil fonts.
created this repo.
https://github.com/nithyadurai87/pottan-ocr-tamil
https://github.com/nithyadurai87/pottan-ocr-tamil/blob/master/config.yaml
added this file.
It seems the install step for training needs GPU, CUDA etc.
when installing them and enabling the NVDIA driver, my ubuntu got crashed.
reinstalled ubuntu.
Is there any way to train on cloud?
You used  Floydhub.
Requesting you to add tutorial on how to train using floudhub.
Thanks.

Hi @nithyadurai87,
Regarding your questions:

Ubuntu crashing while installing Nvidia driver.
Sorry, I can't comment anything about this now. Because, I didn't had owned a real Nvidia GPU till now, I usually uses cloud services which provides ready to use containers for ML development.

Is there any way to train on cloud?
Yes. There are many ways, there are many cloud providers which provides GPU containers for ML workloads. Google colab, Floydhub, Paperspace, GPUEater etc are few of them.

Requesting you to add tutorial on how to train using floudhub

A Floydhub project is a self contained source tree. That means, If you can see a Floydhub project, you will be able to replicate it yourself on Floydhub.
Please take a look at https://www.floydhub.com/harish2704/projects/testbed/6 which is a initial training session of pottan OCR, ( That is, other training sessions uses data generated by this training session and thus we can say other sessions depends on this training session )
As you can see this image,  the command used to run this training session is floyd run --gpu --env pytorch-0.3 --data harish2704/datasets/pottan-ocr/1:/basedeps --data harish2704/datasets/pottan-ocr/2:/datadeps 'bash bootstrap.sh'
As you can clearly see from the command, the bootstrap script can be accessed here https://www.floydhub.com/harish2704/projects/testbed/6/code/bootstrap.sh which actually contains some shell commands to automatically install and setup required dependencies.

Also, if you are a hacker, I would suggest to try Google colab, which is a free service provided by google.
You can run tasks continuously for 12 hour on google cloud in a single stretch. After that you may have to restart the job, but that will be more than enough for this project. Because, the latest trained model is a product of 1:30 - 2:00 hour training on V100 GPU

I also forgot to mention that, there is a branch called  floyd_hub available in this repo.
I kept that branch to keep any modifications specific to Floydhub training.


fix(academy): major complete cleanup of typos and code bugs

Sorry for this PR being so massive. You don't really need to read it, there might be a few changes that are not really consistent and I wasn't refactoring everything to the same language style but it is a huge improvement over the current state.

This started by following @gullmar 's onboarding feedback doc (which is excellent!). I marked the fixed parts green and partially fixed have extra green.
While doing that, I was horrified that I still found a lot of typos. I thought we already proofreaded everything... So I started fixing them as well and then went into the rabbit hole and actually went through all files in the Academy. I'm using Grammarly extension in VS Code. Most of the fixes are clear typos or stylistic issues but there are also more language-style changes. I was not consistent in those and later stopped doing it even if Grammarly suggested. There are probably tons of wrongly placed commas but I gave up on those later as well.

I would probably leave the stylistic part once we refactor the Academy structure. We should unify the voice & tone as well.

I'm not afraid to go through the changes, but the diff isn't readable much through the vale comments right now, so I'll wait for @TC-MO. TIL vale exists! 👀 😮

Vale is cool, but I think I need to work setup here, as it seems to be showing me max of ~8 errors, but when parsed through CLI not as GH Action it shows 140+ errors, will try to fix them ASAP

I would do the Vale in a separate PR. My changes were minimally stylistical so the Vale issues are related to the previous content (and I totally agree that the voice & tone was not good, too hyped, so it needs fixing!). And the sooner we get all the typos and code bugs merged, the better.

Welp I went ahead and fixed Vale so it should be a bit clearer now what are the issues and it will show only errors now (tho it is still necessary to go over logs of the GH Action if more than 10 errors are present in PR., but this is GitHub limitation as far as I'm aware)
and went ahead and fixed all vale issues that were present in this PR


Possible S3 stream bug, confirmation needed

I have the following piece of code, reading a csv file from AWS S3.
          let writeStream = fs.createWriteStream('test.txt');
            const readStream = s3.getObject(req).createReadStream();
            readStream.on('error', function (error) {
                console.error(`Error trying to read the stream ${error}`);
            }).on('data', function (data) {
                receivedBytes += data.length
            }).on('finish', function () {
                console.log(`Received bytes ${receivedBytes}, expected 1000001`)
            });

             await csv().fromStream(readStream).pipe(writeStream)

When i run this with the csv() code commented out, receivedBytes is 1000001 and works flawlessly. As soon as i attach the csv loader to the stream, i can never get 1000001. I get varying byte sizes but most commonly 974433. This messes up some post processing out with your module.
Is this intended functionality or a bug?

Hi,
The parser does not affect the upper stream in any normal case.
The only possibility is the parser has met some errors in csv stream while parsing and emitted an "error" which could stop the whole stream pipe -- this is not the functionality of the parser but how node.js stream works...
Would you try to listen to error event from the parser and see if any errors emitted?
~Keyang

So I've discovered that whatever preprocessing happens before preFileLine causes the amount of bytes to be inconsistent/missing so I've had to write my own parser. Thank you though for replying.

@Keyang  i have similar issue,
in OS X, everything works fine,
but on centOS, i pipe directly from S3 to csvtojson (the file is about 24M), i see that about 1M records are missing,
& when i did S3 to filesystem & to csvtojson that works,

@ajmalmsali Could you please paste some code snippet that causes this issue?


Update to version 0.7.0

Great progress!

Thanks for the review Bas! Do you have time to look at some of the Codacy issues (the one failing test)? There are about 50 new issues and most of them can be solved easily.

I think we should just use our admin powers to ignore issues on codacy, or somehow add some of the issues it raises to the ignore list. Most of them aren't really an issue or worth fixing.

Has #261 been fixed yet? It would be good to get that one done before this release I think.

I fixed most of the codacy errors. Some ideas/remarks/questions:

I disabled the too_complex pattern and the too_many_branches patterns because that are often hard to solve. However I think the checks are good indicators of code that is hard to read so I feel conflicted about disabling them.
While looking through some files I notice many functions miss a docstring. See functions in dcs.py, geotop.py and regis.py. I think we should enforce docstrings.
@bdestombe: {} is preferred over dict() according to the codacy style checker. I already fixed this but I think it is good to know for future commits.
@dbrakenhoff: can you check this codacy error, maybe replace pass with ...:

nlmod/util.py
Medium icon Medium Code Style
Unnecessary pass statement

pass

@dbrakenhoff: can you check this codacy error, I cannot figure out if we can ignore this:

nlmod/dims/base.py
Minor icon Minor Code Style
bad operand type for unary ~: NoneType (invalid-unary-operand-type)

data[lay, mask] = data[lay, ~mask][i]

@dbrakenhoff: probably the same as the previous one:

nlmod/dims/base.py
Minor icon Minor Code Style
bad operand type for unary ~: NoneType (invalid-unary-operand-type)

data[mask] = data[~mask, i]

@rubencalje: can you check this codacy error (and add a docstring for the dataframe_to_flopy_timeseries function?):

nlmod/dims/time.py
Minor icon Minor Code Style
Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)

def dataframe_to_flopy_timeseries(

@rubencalje: can you check this codacy error? Should we add skimage as a dependency?

nlmod/read/rws.py
Minor icon Minor Code Style
Import outside toplevel (skimage.morphology.reconstruction) (import-outside-toplevel)

from skimage.morphology import reconstruction

Suddenly a new check: too-many_statements appeared. I decided to ignore that one

The ~ issues can be ignored. I'm not sure how to avoid the check being triggered for these cases.


Implement the native ad unit format to enable inline ads

First of all, thanks for providing this plugin!
It would be great if I had the possibility to place ad units inline with app content. This would enable me to place ads in a scrollable content, e.g. a long article or a list of items.
Google AdMob provides the native ad format for this scenario:
https://support.google.com/admob/answer/7187428

Please take a look at this  #110.
I will pin it so It is easier to find.


(refactor): update the disk-loss docs

Signed-off-by: shubhamchaudhary<EMAIL_ADDRESS>
Updated the disk-loss experiment

added auxiliaryAppInfo field in engine manifest
added chaosType field in engine manifest

Lets order the mandatory ENVs before the optional ones


Bump vscode version to 1.70.0

Update VS Code version to 1.70.0 following latest upstream source refresh.

No longer needed since vscode merge reverted and we can fix in that PR


Cannot import axios into razzle project using Typescript

❓Question
I'm using Typescript and I am wanting to import axios.
Whenever I add an import, the build process complains about a TypeError inside the process/browser.js module.
I am struggling to make sense of this.
If anyone is able to assist on where to start, should I look into the Babel project itself for the type definition?
Or abandon using Axios all together (highly undesired)
Thank you in advance.
[
  './node_modules/process/browser.js\n' +
    'Module build failed (from ./node_modules/razzle/config/babel-loader/razzle-babel-loader.js):\n' +
    'TypeError: /Volumes/code/name-of-project/node_modules/process/browser.js: Property left of AssignmentExpression expected node to be of a type ["LVal"] but instead got "BooleanLiteral"\n' +
    '    at Object.validate (/Volumes/code/name-of-project/node_modules/@babel/types/lib/definitions/utils.js:130:11)\n' +
    '    at validateField (/Volumes/code/name-of-project/node_modules/@babel/types/lib/validators/validate.js:24:9)\n' +
    '    at validate (/Volumes/code/name-of-project/node_modules/@babel/types/lib/validators/validate.js:17:3)\n' +
    '    at NodePath._replaceWith (/Volumes/code/name-of-project/node_modules/@babel/traverse/lib/path/replacement.js:170:5)\n' +
    '    at NodePath.replaceWith (/Volumes/code/name-of-project/node_modules/@babel/traverse/lib/path/replacement.js:152:8)\n' +
    '    at replaceAndEvaluateNode (/Volumes/code/name-of-project/node_modules/babel-plugin-transform-define/lib/index.js:37:12)\n' +
    '    at processNode (/Volumes/code/name-of-project/node_modules/babel-plugin-transform-define/lib/index.js:62:5)\n' +
    '    at PluginPass.MemberExpression (/Volumes/code/name-of-project/node_modules/babel-plugin-transform-define/lib/index.js:99:9)\n' +
    '    at newFn (/Volumes/code/name-of-project/node_modules/@babel/traverse/lib/visitors.js:177:21)\n' +
    '    at NodePath._call (/Volumes/code/name-of-project/node_modules/@babel/traverse/lib/path/context.js:53:20)\n' +
    '    at NodePath.call (/Volumes/code/name-of-project/node_modules/@babel/traverse/lib/path/context.js:40:17)\n' +
    '    at NodePath.visit (/Volumes/code/name-of-project/node_modules/@babel/traverse/lib/path/context.js:90:31)\n' +
    '    at TraversalContext.visitQueue (/Volumes/code/name-of-project/node_modules/@babel/traverse/lib/context.js:103:16)\n' +
    '    at TraversalContext.visitSingle (/Volumes/code/name-of-project/node_modules/@babel/traverse/lib/context.js:77:19)\n' +
    '    at TraversalContext.visit (/Volumes/code/name-of-project/node_modules/@babel/traverse/lib/context.js:131:19)\n' +
    '    at Function.traverse.node (/Volumes/code/name-of-project/node_modules/@babel/traverse/lib/index.js:82:17)\n' +
    ' @ ./node_modules/axios/lib/defaults.js 1:0-37\n' +
    ' @ ./node_modules/axios/lib/axios.js\n' +
    ' @ ./node_modules/axios/index.js\n' +
    ' @ ./src/web/func/GetDataFromAPI.ts\n' +
    ' @ ./src/web/page/Home.tsx\n' +
    ' @ ./src/web/layout/App.tsx\n' +
    ' @ ./src/web/entry/app.ts'
]

What I can't make sense of is that Axios doesn't use process.browser anywhere inside it's source.
If I comment out the line process.browser = true in node_modules/process/browser.js the build completes, but I still cannot work why.

Interestingly https://github.com/jaredpalmer/razzle/blob/ddefcf8ad81a8589b633b7fb1e95a1363bf69383/packages/razzle/config/babel-loader/razzle-babel-loader.js#L200
If I comment out this line, the project builds successfully

process.browser = true becomes true = true I think this is a axios issue , should not set process.browser

Hm, the babel loader needs work too. But still should not be set by axios.

that's the interesting part @fivethreeo.
Axios doesn't. The only thing I can find mentioning browser is the
{
"browser": { "./lib/adapters/http.js": "./lib/adapters/xhr.js"
}

entry in package.json
So I am assuming that at some point this entry in package.json causes the process shim to be included, but I am very confused as to what is actually going on

Yeah, some polyfilling going on somewhere.

I wish next.js babel loader and babel preset was its own packages then razzle could just use those.

From what I can find, the issue this that process.browser is being replaced with a 'true' value by razzle babel loader.
It seems to have been introduced here: https://github.com/jaredpalmer/razzle/commit/6d91a4ec2d9b5a9e5f01e22a4fce21ab1a0adcce#r57070802
Which is fine is most cases where it's use as a value
if (process.browser) {
   //do something
}

becomes
if (true) {

}

However, when you look at the process module (https://github.com/defunctzombie/node-process/blob/77caa43cdaee4ea710aa14d11cea1705293c0ef3/browser.js#L156)
These lines
process.title = 'browser';
process.browser = true;
process.env = {};

become
process.title = 'browser';
true = true;
process.env = {};

causing the assignment TypeError;
I'm thinking I might close this, create a sample repo and lodge a bug report instead. Is that the best course of action?

Closing this issue.
I ended up ignoring the process module in babel by adding the following modifyWebpackConfig callback
module.exports = ({options: {webpackOptions}, paths}) => {
    if (webpackOptions.babelRule)
        webpackOptions.babelRule.exclude = [`${paths.appNodeModules}/process`];
    return webpackOptions;
}


Crashes in my modpack

https://bytebin.lucko.me/NnHosStUDI

I am also experiencing this. It keeps bringing up "error code: 1," were you ever able to figure it out?


No such image when deploying new stacks

when deploying new stack using a image from private repository other than dockerhub I get following error.
root@master:# docker service ps elasticsearch_elasticsearch
ID             NAME                                                        IMAGE                                                  NODE   DESIRED STATE   CURRENT STATE             ERROR                              P
ORTS
p8a1xq2xijfc   elasticsearch_elasticsearch.k393ta6f6qexan0pjgh7p8jcj       docker.elastic.co/elasticsearch/elasticsearch:7.11.0   dev1   Ready           Preparing 1 second ago
qk5nmnu7s3be    \_ elasticsearch_elasticsearch.k393ta6f6qexan0pjgh7p8jcj   docker.elastic.co/elasticsearch/elasticsearch:7.11.0   dev1   Shutdown        Rejected 8 seconds ago    "No such image: docker.elastic…"
m016msww009a    \_ elasticsearch_elasticsearch.k393ta6f6qexan0pjgh7p8jcj   docker.elastic.co/elasticsearch/elasticsearch:7.11.0   dev1   Shutdown        Rejected 19 seconds ago   "No such image: docker.elastic…"
kdk2afm66174    \_ elasticsearch_elasticsearch.k393ta6f6qexan0pjgh7p8jcj   docker.elastic.co/elasticsearch/elasticsearch:7.11.0   dev1   Shutdown        Rejected 28 seconds ago   "No such image: docker.elastic…"
ieta4bf5jzaq    \_ elasticsearch_elasticsearch.k393ta6f6qexan0pjgh7p8jcj   docker.elastic.co/elasticsearch/elasticsearch:7.11.0   dev1   Shutdown        Rejected 39 seconds ago   "No such image: docker.elastic…"

This error will not appear if I manually pull the image on that server using docker pull.
This issue  also appears when using  docker stack deploy ... but not when using
docker stack deploy --with-registry-auth...
So I suggest adding --with-registry-auth by default when deploying stacks, or updating services.

If an image is from a private repo and you want to use it in portainer, you need to add the credentials to Portainer

@itsconquest  It would be awesome, if portainer could also use the login credentials from the  swarm master node.
Best implementation would be to use credentials saved in portainer, and if it's not available, deploy the stack with "--with-registry-auth" by default.

@mesudip Portainer should use the credentials stored in Portainer, assuming that you created the registry inside Portainer before creating the stack.

I can confirm this is also happening here.
I have our private registry configured in Portainer using registry credentials with enough roles to pull any image from the registry.
If the image is not already pulled in the server, Portainer will throw "No such image" when trying to deploy a stack (standalone services too) using images from such repository.
I then connect to the server, pull the image from the registry manually (using the same credentials given to Portainer) and voilá, Portainer now finds the image

@mesudip Portainer should use the credentials stored in Portainer, assuming that you created the registry inside Portainer before creating the stack.

It doesn't seem to be the case in my env, the registry was added to Portainer and yet I get "No such image" when deploying a stack or a service through Portainer.
Works fine with docker stack deploy --with-registry-auth though (all the hosts have the credentials defined in their Docker credentials file.

This should have been solved by https://github.com/portainer/portainer/issues/4393, which is available as a preview version.
Please give it a try by using the image portainerci/portainer:pr5131 and let us know how it's working.
Note that this is a development build and should not be used in a production environment.

I experience the same issue. In docker swarm, when the stack already works, I try execute the webhook to restart the service. And sometimes it works as expected, but sometimes on some nodes the newer version of the app is restarted properly, but on some nodes it gets 'No such image'. At the same time the credentials in Portainer are valid (otherwise how it would then pull the image for other nodes?). And if I pull the image manually on the failed node, it is pulled with no issues.

This issue is so old and keeps bothering me even now. It's kind of annoying and defeats the purpose of CICD and automation. Too much man-hours wasted in trying to restart/update the services like my old scooter :P I am trying to understand the root cause of this issue. Is it with Portainer ? or docker daemon ? or with nodes ? I am ready to contribute finding and fixing this issue.

I have this also poping up right now in version 2.19.2. I have setup the credetials for a private repo, but under unknown circumstances to me I cannot deploy stacks sometimes because "No such image" error message occurs when I access images in private repos.


Jaipur Call Girls ✅ Verified ✅ 93I579IO9O🫥Jaipur Escorts Service In Jaipur

Jaipur Call Girls ✅ Verified ✅ 93I579IO9O🫥Jaipur Escorts Service In Jaipur Call Girls in Jagatpura Bani Park Escorts pink city
Jaipur Call Girls ✅ Verified ✅ 93I579IO9O🫥Jaipur Escorts Service In Jaipur Call Girls in Jagatpura Bani Park Escorts pink city

Jaipur Call Girls ✅ Verified ✅ 93I579IO9O🫥Jaipur Escorts Service In Jaipur Call Girls in Jagatpura Bani Park Escorts pink city
Jaipur Call Girls ✅ Verified ✅ 93I579IO9O🫥Jaipur Escorts Service In Jaipur Call Girls in Jagatpura Bani Park Escorts pink city


Fix #218

Note: the patch for fix_stage_name is not fully tested.

Unable to repro though...
Merging as it doesn't harm.


GPS API and Aux Command Support

Allows user to supply raw PWM to all 14 outputs
Adds plumbing for a GPS receiver but doesn't actually implement one.

What is the timeline of this branch? https://github.com/rosflight/rosflight/commit/8289ced2836c56a1a3c9b1a03313ee51a762273c was comitted to master, but relies on this PR.

I'm so sorry.  I did not mean to merge GPS into rosflight master.
I'm going to remove the GPS functionality because it has a subtle bug, but leave the API.  That way they are synced up.

@dpkoch, could you look through this as soon as you can?

Thanks!


Generated project's readme still says "ISC license"

This line needs to be templated with the name of the license:
"Free software: ISC license"

I'll fix this one.


Remove control using react-dom's unmountComponentAtNode method on parent's unrendering

Hi! Thanks for creating this library!
I'm submitting this PR to fix a small bug which I believe causes a memory leak when maps using the control component are unmounted and then remounted by React. I've got an example of the bug in an app set up here:
https://github.com/kellyi/react-container/tree/research/react-leaflet-control-bug

The gist is that when one toggles a map component on and off, any components added via react-leaflet-control seem not to be removed automatically through regular React rendering, so that when you remove the component containing the map, then add it again, the control component will get created anew each time. Here's what the React developer tools look like when I remove the map component without the change:

And here's what happens after a few toggles:

(To see that bug in action, run the demo app above and comment out this line: https://github.com/kellyi/react-container/blob/research/react-leaflet-control-bug/app/src/ControlSubclass.jsx#L6)
The fix I've made it to call unmountComponentAtNode explicitly in the react-leaflet-control component's componentWillUnmount lifecycle method. Since the component originally gets mounted to a div using the react-dom render method, React's render method doesn't seem to clean it up automatically and so the change removes it from the tree explicitly. In the demo app, that means that when you toggle the map off, the DemoControl component gets removed, too:

Let me know if this would would benefit from additional changes. Thanks again for creating this library!

Will be merged and released sometime between 10pm and 10am edt

Release in v1.1.2


Local package default.nix file should add an includeDevDependencies when using nix-shell

Realized this is why the .env attribute exists...


Upgrade sass-loader to 7.0.1 & stop bringing node-sass bin to each user

Issue: #3425
This update allows us to stop making users download a large node-sass binary even if they don't use sass/scss at all.
See also: https://github.com/webpack-contrib/sass-loader/issues/532

I'm OK with this..


Various fixes

Use "managed identity" instead of "managed service identity"
Use capital "App Configuration" instead of "app configuration"
Update the next step section of a few tutorial docs, which had incorrect text.

Add @yegu-ms for review
cc: @lisaguthrie

Hi @zhenlan
Microsoft authors and contributors need to make content contributions through the private repository so the content can be staged and validated by the current validation rules.
After you review staging and fix all validation issues, you can add the sign-off comment to let PR reviewers know that the updates are ready to be merged.
For more information, see Should I work in a private or a public repo?
If you need help getting set up to work in the private repo, see Set up Git repository locally for documentation.
Once you are working in the private repo, if your update is tied to a specific date and/or time, you'll need to sign off only when the PR is ready to be merged and published. In either repo, we can't hold PRs to merge on a specific date.
Would you create a pull request in the private repo to make these updates? We'll close this PR. Thank you.


Do not redact emails, report to a signup channel so admins can invite.

If you are using a free account, you cannot script user.admin.invite.  Instead, report the email addresses to a signup channel so that admins can copy/paste the invite.

Use a bot integration to do it instead, and you don't have to do this.


add option usePackageJson to disable artifacts renaming

electron-builder pass all required options — don't waste time and don't add complexity to read package.json.

LGTM. A fix after #37. Don't break anything, but allows to speed up app building.


Readme and Metadata updates

(Includes #16)

Hopefully we can squeeze this in before #17

bors r+

bors r+