Two button groups aligns on the same line

Which package is this issue related to?
ffe-buttons
Describe your issue (screenshots welcome!)
Given this HTML...

    <button class="ffe-button ffe-button--primary" type="submit">
        Neste

    </button>

        Avbryt

...this is rendered.

What is the expected behavior?
I expect the button group to be a block-level element, and thus the two should not be aligned.
I report this as a question, as I want opinions on how a button group should behave.
What is the actual behavior?
The two button groups aligns, instead of breaking into separate lines.
Steps to reproduce
The supplied HTML.

I find it odd to have sibling button groups. What is the use case?
The button group is mainly designed to handle the layout of the buttons inside it, not the outside world. That being said it used to be block level, so I suppose this is a regression.

The use case is simply to place one button above the other, while getting the margins supplied by button group.
It seems wrapping each button group in a
 solves the issue. So if we intend for two button groups to align, that's an acceptable solution for us.

Wasn't the whole point of the button group to ensure the buttons aren't aligned vertically on bigger screens?


page rules on off actions

This PR aims to add custom support for sending browser_check and cache_by_device_type to the generated code.

lgtm too! Don't have an approve button though :)


Presentation Server: SSL configuration

In odpi/egeria#3389 we are removing the default behaviour to skip SSL validation within the core egeria code (server, clients, samples)
Once this is merged...
The Presentation Server code currently also skips ssl verification
This should

default to performing full ssl verification
Provide configuration to disable verification if needed
Ensure the relevant docs for deployment explain how to do this, as well as configure TLS similar to https://egeria-project.org/open-metadata-implementation/admin-services/docs/user/omag-server-platform-transport-level-security.html
Ensure any samples (like the egeria tutorial environment) appropriately configures a certificate or skips the check

Note: will likely need to transfer to the egeria-presentation-server repo once code migrates

https://github.com/odpi/egeria-react-ui/pull/87 removes the hard coded security artefacts from the code. Then we need improved p12 certificates and other security artefacts so we can use those rather than the current ones.


Updated/fixed CLI Tutorial aligned to last version

The CLI tutorial was not updated to the last CLI version (0.3 published at //BUILD/) and needed some important fixes.

@natke - Please review and merge asap since the current content is not up-to-date.


Ensure we send an alert on error when processing a ticket

In some scenarios the connection could fail without an alert being sent.
This causes a later assertion failure.
Thanks to Quarkslab for reporting this.

Do we need to do a pass over the state machine code for other potential instances of similar issues when a subroutine is used that calls SSLfatal on error?

I did a global search for "already called" in the "ssl" directory and reviewed every instance of this. I found one of case of this class of error. Fix in #6872.

Pushed. Thanks.


add: draft-notice-trading-en.txt

New draft for trading/demat accounts. An initial draft, rehash of the bank one... not quite there yet, needs review.

I believe this is outdated now, please feel free to reopen if not.


[Language Server] "Unable to resolve module" for app project

Environment data

VS Code version: Version 1.25.1 (1.25.1)
Extension version (available under the Extensions sidebar): 2018.7.0
OS and version: macOS 10.13.6
Python version (& distribution if applicable, e.g. Anaconda): 3.6.3
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): virtualenv
Relevant/affected Python packages and their versions: XXX

Actual behavior
I have a few directories that form my python workspace. Each directory is a separate python project (either app, that's executed, or library, that has setup.py and is installed) with a separate env configured inside vscode. I've turned on new "language server" feature.
Imports from my app are underlined and say "Unable to resolve . Intellisense may be missing." Imports from my libs work fine.
Expected  behavior
I'd like language server to process apps as well (autocomplete, goto, etc.)
Logs
Starting Microsoft Python language server.
[Info  - 10:43:22 PM] Created Microsoft.PythonTools.Interpreter.Ast.AstPythonInterpreter instance from Microsoft.PythonTools.Interpreter.Ast.AstPythonInterpreterFactory
Initializing for /Users/yevhen/.virtualenvs/<app_project>/bin/python

@yevhen-m does everything work as expected when you use Jedi as the intellisense engine? And are you saying you have a env file that sets up your PYTHONPATH to make everything find each other? If so can yu provide your env file?

@brettcannon
Jedi handles my app project correctly.
For instance:
# My workspace consists of dirs: foo and bar; both have separate virtualenvs configured and set inside vscode; foo as an app, without setup.py, not installed into venv.
# Open module foo/module.py
from foo.package.subpackage.<here I get autocompletion>

from foo.another_package.another_subpackage.module import sausage <I can "go to" sausage definition here>

Both use cases do not work with language server enabled.
I dont set PYTHONPATH, everything works itself. Every dir inside my project has a separate virtualenv configured, so maybe jedi uses different envs for differnt dirs. I don't care as long as it works.

I'm also having the same issue.
VS Code version: Version 1.26.0-insider
Extension version (available under the Extensions sidebar): 2018.7.0
OS and version: macOS 10.13.6
Python version (& distribution if applicable, e.g. Anaconda): 2.7.15
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): pyenv
Relevant/affected Python packages and their versions: XXX

All relative imports within my own code (non-3rd party) are marked as unable to resolve module. Jedi handles the code correctly.

@yevhen-m are you using workspaces to open up the foo and bar folders, or is this a single workspace folder you have opened with foo and bar as subdirectories? And can you share your settings.json?
@eikonomega Your problem is different as yours is around relative imports, not from having multiple, differing virtual environments. Would you mind opening a separate issue so it doesn't get lost here while we try to help out @yevhen-m ?

@brettcannon this is a single workspace with multiple folders opened as subdirectories (vis "Add folder to workspace" command), where each folder is a separate project with a separate venv.
 He opened his app project and server could not process it. Initially I reported the same thing, maybe my comments about multiple projects and virtualenvs were misleading.

I use both relative imports and absolutely imports (all my own code), they all are marked "Unable to resolve". jedi works well too.

BTW, how could I prevent language server? I tried to delete ~/.vscode/ms-python/languageServer and switch "python.jediEnabled" config on and off, but it still will re-download.

I have a similar issue with an interesting finding. I have main.py and hi.py in the same folder. When I opened main.py for the first time, the module hi couldn't be resolved. Then I opened the hi.py manually, it can be resolved.
hi.py
def hello():
    print("hello world")

main.py
from hi import hello

def main():
    hello()

if __name__ == '__main__':
    main()

Please note, the new language server doesn't support multiple workspaces.

@DonJayamanne what do you mean? Vscode can open only one workspace at a time, but you can add multiple directories to it.

Hey @brettcannon I don't mind creating a new issue, but I don't think they are different problems.
In my particular example, I was using relative imports, but absolute imports exhibit the same behavior. The commonality is that they are locally developed code.
For instance, if I change the relative import to an absolute one, the problem persists...

And just for kicks, here is my settings.json
{
    "workbench.colorTheme": "Default Light+",
    "gitlens.advanced.messages": {
        "suppressShowKeyBindingsNotice": true
    },
    "python.linting.flake8Enabled": true,
    "python.linting.pylintEnabled": false,
    "gitlens.mode.active": "zen",
    "files.exclude": {
        "**/.git": true,
        "**/.svn": true,
        "**/.hg": true,
        "**/CVS": true,
        "**/.DS_Store": true,
        "**/*.pyc": true
    },
    "editor.formatOnSave": true,
    "python.jediEnabled": false,
    "python.venvFolders": [
        "envs",
        ".pyenv",
        ".direnv"
    ]
}

what do you mean? Vscode can open only one workspace at a time, but you can add multiple directories to it.

What I meant by that was exactly what I wrote. The new language server doesn't YEat sorry multiple work spaces. It's not a limitation of VSCode. It's a limitation of the new language server that were working on for the python extension.
So adding multiple folders won't work properly with the new language server in the python extension.

I'm also having the same issue.

+1

@brettcannon In my case, I have configured the PYTHONPATH with a .env file. With Jedi it works, but with the language server, it doesn't works. Would I open a issue for that?

+1

@gabomgp yes please

@yevhen-m you're correct; Don is using the original terminology where folder were called workspaces and a workspace was a workspace root. Point is the language server does not support a workspace with multiple workspace folders (if you open a single workspace folder then you should be fine).

@brettcannon is language server going to get this support?

I got this down to a minimal set of steps:

Create a project structure like this
 project
     package
         __init__.py
     test.py
     env

package is a package with an empty __init__.py file.
test.py tries to import package.
env is a virtual environment (python3 -m venv env)

Open this folder in fresh install of VSCode 1.25 and vscode-python 2018.7.0 as a single-folder workspace (just Open folder), with Jedi disabled. Set the Python interpreter to the one in the virtual environment.

You'll see the "IntelliSense may be missing" message for the import package line.

To be honest, the virtual environment doesn't make a difference, I just included it because it's one more place to look for the package in addition to the system libs and our own packages, and it isn't working either. I don't think it makes a difference (others have different setups), but I tested this on Debian 9.
As I said in my previous message, adding folders manually in python.autoComplete.extraPaths makes it work.

@yevhen-m that's the plan

Have the same issue. Everything works well with jedi but not with the language server. Setting PYTHONPATH and python.autoComplete.extraPaths didn't make sense.

@PowerSnail
after I clicked through every file in the project, the problem disappeared.

tried that and can confirm it works for me too.

I can't replicate this in the 2018.7.1 release of the extension. I tried the example that @alnvdl provided as well as the one from @need47 and neither of them replicate for me.
@alnvdl @need47 what OS are you running?
@MisLink Sorry, I didn't see your issue about the extension constantly downloading. If you set "python.jediEnabled": true, quit VS Code, and then delete the languageServer directory, it won't be downloaded again.

Windows 7. I guess my situation is that my workspace has multiple folders.

I tried example from @alnvdl and disabled all extensions except python and language pack, and it replicated.

Here is my steps:

create files and dirs as @alnvdl said.
DO NOT touch package/__init__.py
and it replicate.

If I open pakcage/__init__.py all things is fine, but it's difficult to do it for every file in a large project, especially Reload Window command will let them go back to origin.
For situation of @PowerSnail, I don't use pylint but I also disable flake8 and formatter, no help for me sadly.
My config:
// global
"python.formatting.provider": "black",
"python.jediEnabled": true,
"python.linting.pylintEnabled": false,
"python.linting.flake8Enabled": true,
"python.autoComplete.addBrackets": true,
"python.linting.flake8Path": "~/.local/bin/flake8",
"python.formatting.blackPath":
"/Users/guojiaqi/.local/bin/black",
"python.sortImports.args": [
    "-ns",
    "__init__.py"
],

// workspace
{
    "python.jediEnabled": false,
    "python.pythonPath": "${workspaceFolder}/.venv/bin/python",
    "python.linting.flake8Enabled": false,
    "python.formatting.provider": "none"
}

@MisLink  +1
my os version:  windows 10  17134
vscode version: 1.25.1
vscode-python extention version: 2018.7.1

@MisLink
Yeah, it seems that touching or opening files in the module is the essential step. My pylint problem was accidental.

@brettcannon I'm using Linux, Debian 9. But others are seeing this with Windows and macOS, so I guess that's not the problem.
As I said above, this happens for me even when I clear the settings file of everything. Manually opening every file also solves the issue for me.
I'm also having a weird problem in which I can import a 3rd party library installed in the virtual environment (SQLAlchemy, using the workarounds I described) from one of the my project files and it doesn't complain, but if I do it from another file in the same project, it fails with this error. But let's not get ahead of ourselves, one bug at a time :)

This might be related to #2320 where file watcher ctor throws and some files are subsequently not loaded

I have verified the issue as described by @alnvdl, summarized in this gif:

...and as @MsLink mentioned, the issue is corrected when you visit the init.py file within the packages subfolder.

I can confirm that Python language server is not able to resolve (at least)  my relatives path while jedi has no problem.
I am on windows 10, I tested issue on two independent machines with same behaviour. Presently, I am sticking with jedi as it works better for me.
I do not use any virtual environment  nor multi workspace for this project.

I'm also encountering the same issue

I had similar issue (Ubuntu 18), however in my case problem was fixed by first setting PYTHONPATH in my bash terminal and  exporting it (e.g. export PYTHONPATH=<PATH_TO_PROJECT> and then restarting vscode from that terminal.

+1

I can't reproduce with the latest language server:

If you want to download a development build to test this you can, otherwise this will be available in our next release which should be out hopefully this week.

Hello,
Although the issue is closed, just in case it helps to others, we have been facing the issue regarding only our own modules in our project, due to Jedi being disabled.
The reason was the Visual Studio IntelliCode extension, requiring the Microsoft Python Language Server (preview), so when enabled it disables the user setting "python.jediEnabled". The IntelliCode extension version is 1.0.3.
This extension has been included with the Python Extension Pack (https://github.com/DonJayamanne/python-extension-pack) from version 1.3.0, that in my case has been updated in my VSCode recently.
Our solution has been obviously disable the IntelliCode extension and set again the jediEnabled setting to true again.
Hope it helps someone else.
BR

src/
├── utils/
│   ├── __init__.py
│   ├── module.py

Given that there is a class declaration in  __init__.py: class lazy_property():
from . import lazy_property in module.py gives "No definition found for 'lazy_property'".
Other relative imports related issues were solved after August update but this one is remaining. Version 1.27.0 (1.27.0) and the example above is resolving with Jedi. @brettcannon

@0x1EE7 can you open a new issue?

@brettcannon   .. regarding the directory structure that you used to show its working, you had:
SOME 3.7 BUNK/
  package/
    __init__.py
  example.py

While this may work on 1.27, if you place the python modules under a sub-directory,  for example:
SOME 3.7 BUNK/
  my_modules/
    package/
      __init__.py
  example.py

then I can't get it working either by export of PYTHONPATH in linux console used to start vscode, or setting various variables in the folder .env file.    The only workaround I have managed is by following @alnvdl  -- use the python.autoComplete.extraPaths setting, which in this example I set to:
  "python.autoComplete.extraPaths": [
    "${workspaceFolder}/modules"
  ],

Ideally I would like to be able to set the PYTHONPATH either in the parent console (export PYTHONPATH=<somdir>/my_modules), or, set it via the workspaceFolder env file.   But neither these seem to work, even on 1.26 & 1.27


Smaller font when using a raw block in a show rule

Description
The following code:
#show raw.where(lang: "replaceme"): it => { raw(lang: "typst", it.text) }

#raw(lang: "typst", "hello world!") #raw(lang: "replaceme", "hello world!")

Renders as

But I assume that the font size should stay the same.
Operating system
Linux
Typst version

[X] I am using the latest version of Typst

$ typst --version
typst 0.4.0 (f692a5ef)

The offending line seems to this one
https://github.com/typst/typst/blob/3eb1f31e904151f5bee6300ef8d9dba0bbcce4c5/library/src/text/raw.rs#L218
which sets raw text size to 0.8em (i.e 80% of current size).
For the time being you can circumvent this with using
#show raw.where(lang: "replaceme"): it => text(size: 1.25em,raw(lang: "typst", it.text))
instead. (Since 1/0.8 = 1.25)

It being applied twice is a styling bug that is closely related to #229. This line being there in the first place is a result of monospace fonts being stupidly large in comparison to normal fonts, for reason unbeknownst to me.

I encountered a similar problem when using em instead of pt:
#set page(margin: 1cm)
#set text(size: 14pt)
// #show raw: set text(size: 14pt) // (1) This renders raw bigger (instead of smaller) than normal text

#let frame(title: none, body) = {
  let stroke = black + 1pt
  let radius = 5pt
  let font = (font: "Fira Code", size: 0.71em) // (2) 0.71em gives different sizes as opposed to 10pt
  set text(..font)
  show raw: set text(..font)
  box(stroke: stroke, radius: radius)[
    #if title != none {
        block(
          stroke: stroke,
          inset: 0.5em,
          below: 0em,
          radius: (top-left: radius, bottom-right: radius),
          title,
        )
    }
    #block(
      width: 100%,
      inset: (rest: 0.5em),
      body,
    )
  ]
}

#let include_source_file(file_path, lang: auto) = {
  if lang == auto {
    lang = file_path.split(".").at(-1)
  }
  frame(title: file_path)[
    #raw(read(file_path), lang: lang)
  ]
}

#let file_name = "./simple.ts"

#include_source_file(file_name)

To simplify (no external files):
#let include_source(source, lang, title: none) = {
  frame(title: title)[
    #raw(source, lang: lang)
  ]
}

#let file_name = "./simple.ts"
#let code = "const black = '#000'\nconst white = '#fff'"

// #include_source_file(file_name)
#include_source(code, "ts", title: file_name)

Output:

If I use pt instead of em at (2):

This is the reason I can't use (same) relative font size for everything (title + raw source code).

This is making it impossible to set the font for #raw while simultaneously respecting the current #set text(size: ..) rule.

This is making it impossible to set the font for #raw while simultaneously respecting the current #set text(size: ..) rule.

How so? Can't you just show raw: set text(font: ..)?

What I think I meant is the following:
#let template(body) = {
  set text(size: 24pt)
  show raw: set text(font: "Courier New")
  body
}

#show: template
24pt text

#show raw: set text(size: 0.8em)
`This should be 19.2pt!` \
#text(font: "Courier New", size: 0.8em, "This should be 19.2pt!")

This is observed in Typst 0.10.0. I could be misunderstanding something here, or it could be a problem with show-set rules that results in different behavior now that  #3311 was merged, but I think the two monospace lines of text should have the same size. Which one is correct I'm not exactly sure - maybe the second one, but it should at least be consistent?

Actually, here's a variant of the above that closer describes the problem:
#let template(body) = {
  set text(size: 24pt)
  show raw: set text(font: "Courier New")
  body
}

#show: template
24pt text

#[
  #set text(size: 0.8em)
  `This should be 19.2pt!` \
]
#text(font: "Courier New", size: 0.8em, "This should be 19.2pt!")

The output is the same. The effect is that changing the general text size doesn't make the change to #raw in a likewise fashion.

Okay, I see. show raw: set text(size: ..) with em will not do what you want because it folds together with the built-in rule of the same form and then 0.8em * 0.8em = 0.64em.
I've considered to not fold multiple show-set styles on the element and instead override them. That would fix this. I'm not yet entirely sure whether it's really desirable in all cases though.


Support CSV delimiter other than comma

I would like to populate a table that has a JSONB field and some non-JSONB fields using CSV format.  I run into problems when the JSONB value in the CSV file has more than one key-value pair because I need to separate pairs with a comma.
Example line from CSV file:
foo,"{""a"": 1, ""b"": "x"}"
Is there a way to provide a parameter like in PostgreSQL's COPY command ("copy ... with delimiter '|'...")?

It may be only in your posting of an example here, but I think the quotation marks surrounding your x inside the JSONB are not properly escaped.
On basically that very same note, I think first and foremost any CSV importing feature should implement RFC-compliant escaping (I don't know if PostgREST does it already), so your commas inside the quotation marks surrounding the entire JSONB would be properly ignored.
Nevertheless, I don't object against the choice of arbitrary delimiters for both separation of columns and quoting; I would in fact also appreciate it for CSV output from PostgREST to be speicifiable, maybe through some Prefer header, unless possible in the Accept header.

@SebAlbert could you provide me some small examples to test RFC compliance? I'll turn them into tests for the test suite.
@rrantzau the ability to do the true COPY command depends on https://github.com/nikita-volkov/hasql/issues/1. Thinking about your specific example, maybe the x has too few quotes, what about trying this: foo,"{""a"": 1, ""b"": ""x""}"

Thank you for the replies, it was my mistake!
The following example does work:
psql -U postgres -c "drop table if exists foo.testj cascade"
psql -U postgres -c "create table foo.testj (a int, b text, j jsonb)"
echo 'a,b,j
1,b1,"{""x"": 10, ""y"": ""y1""}"' > ./testj.csv
cat testj.csv
curl "http://localhost:3000/testj" -H "Content-type: text/csv; charset=utf-8" --data-binary @testj.csv
curl "http://localhost:3000/testj?a,b,j" -H "Content-type: text/csv; charset=utf-8"
[{"a":1,"b":"b1","j":{"x": 10, "y": "y1"}}]
psql -U postgres -c "select * from zeit.testj"
 a | b  |          j
---+----+----------------------
 1 | b1 | {"x": 10, "y": "y1"}
(1 row)

Great!

Just some comments, they may or may not be of use: You may want to use the Accept header instead of the Content-type header in order to actually GET csv returned from the server. And you may want to use ?select=a,b,j instead of ?a,b,j


[Question] Why redefine the "getHeaders()" and "getHeader()" in Request.php ?

Hi,
I was looking at the code and i got a question.

The Request class, use the RequestTrait and MessageTrait.
The 2 functions : getHeaders and getHeader are defined in the Request class, to hande the case for the "host" header.
But there is already a getHeaders and getHeader functions in the messageTrait class, and the case about the "host" is already taken care in the initialize() function in the RequestTrait line68.

https://github.com/zendframework/zend-diactoros/blob/master/src/RequestTrait.php#L68
It seems to me the redefinig of the 2 functions in the request class is useless.
It looks like some old code, or am I missing something ?

You're missing something. :smile:
RequestTrait is used by both Request and ServerRequest; the latter does not extend from the former, however, but does use RequestTrait to get common behavior, which includes the initialize() method.
The reason that getHeaders() and getHeader() differ in Request is because that implementation targets clients, where a Host header is required, and the logic in these methods is used to ensure it is populated. While this logic is also in the initialize() method, because a request can be built iteratively, having the logic in these two methods ensures that if we populate the URI later, but not the Host header, we'll still have a Host header to present to the client.
In server-side requests, the header is not required (though its absence is unlikely). Having the logic in the initialize() method ensures it's present if the URI contains it.


Error on fresh setup

HI Ryan,
getting this after cloning, npm i and npm run storybook:
[./node_modules/webpack-hot-middleware/process-update.js] (webpack)-hot-middleware/process-update.js 4.35 KiB {vendors~main} [built]
    + 544 hidden modules

ERROR in ./.storybook/config.js
Module not found: Error: Can't resolve '../dist/collection' in '/Users/matthias/Downloads/stencil-storybook-starter-master/.storybook'
 @ ./.storybook/config.js 9:17-94
 @ multi<EMAIL_ADDRESS><EMAIL_ADDRESS>./.storybook/config.js (webpack)-hot-middleware/client.js?reload=true

ERROR in ./.storybook/config.js
Module not found: Error: Can't resolve '../loader/index.cjs.js' in '/Users/matthias/Downloads/stencil-storybook-starter-master/.storybook'
 @ ./.storybook/config.js 8:10-43
 @ multi<EMAIL_ADDRESS><EMAIL_ADDRESS>./.storybook/config.js (webpack)-hot-middleware/client.js?reload=true
Child HtmlWebpackCompiler:
                          Asset      Size               Chunks  Chunk Names
    __child-HtmlWebpackPlugin_0  29.4 KiB  HtmlWebpackPlugin_0  HtmlWebpackPlugin_0
    Entrypoint HtmlWebpackPlugin_0 = __child-HtmlWebpackPlugin_0
<EMAIL_ADDRESS>1.76 KiB {HtmlWebpackPlugin_0} [built]

WARN Broken build, fix the error below.
WARN You may need to refresh the browser.

webpack building...
 94% after sealℹ ｢atl｣: Checking started in a separate process...              p
ℹ ｢atl｣: Time: 2ms
webpack built 0ac45fa80fd10f75ad41 in 1079ms

Any idea?

I think this might have to do with the fact that the stencil build/watch task runs in parallel with the webpack task. Usually stencil builds quickly so that the artifacts are available by the time webpack is ready. I think you hit a case where webpack is getting there before stencil is done compiling.
I cannot reproduce this on my end, so unfortunately we will need to debug this in tandem. For starters, can you try removing the --parallel in the "storybook" script in package.json.

try building in prod mode once using npm run build --prod. This will generate the required loader folders.
Might be related to this breaking change, also see this issue.

Having somewhat same issue but mine compiles and starts server but then it shows me error in console:
Uncaught ReferenceError: exports is not defined     at Module../dist/cjs/loader.cjs.js (loader.cjs.js:3)     at __webpack_require__ (bootstrap:785)     at fn (bootstrap:150)     at Module.<anonymous> (index.cjs.js:2)     at Module../loader/index.cjs.js (index.cjs.js:3)     at __webpack_require__ (bootstrap:785)     at fn (bootstrap:150)     at Module.<anonymous> (config.js:10)     at Module../.storybook/config.js (config.js:22)     at __webpack_require__ (bootstrap:785)

Any clue what to do @DesignByOnyx ? tried to downgrade stencil to 1.0.7 and that didn't work(right now i'm on 1.8.4 stencil)

Hmm, this issue intrigues me. As @Shackless suggested, try running an initial stencil build before running storybook. This will ensure that the stencil assets exists as storybook starts for the first time. I would really appreciate an example repo so that I can debug this, if anybody can help with that.

Yea, did that initially as --parallel does storybook.run and watch at the same time but as watch(stencil build) has not finished then it will not work. IF initial build is there then stencil builds fast and this all works, my issue was that there was no babel config in .storybook folder


BIGTOP-3679. Building Phoenix for CentOS 7 fails on aarch64.

https://issues.apache.org/jira/browse/BIGTOP-3679
protoc provided by org.openlabtesting.protobuf is not portable enough. We should use our own patched protoc.

tested on my CentOS 7 aarch64 VM.
$ ./gradlew phoenix-clean phoenix-pkg
...
> Task :phoenix-pkg

BUILD SUCCESSFUL in 22m 11s
7 actionable tasks: 7 executed

+1, tested on aarch64 and ppc64le.

Merged into master and branch-3.1. Thanks @iwasakims!


Add configurable logical processor option (e.g. ninja -j 8) to idf.py build (IDFGH-3568)

Hi all, this link suggests to specify the number of logical processors to use in a make or ninja call with a parameter like -j 8 for 8 logical processors. Firstly, that thread is quite old, and I don't think the new CMake system was in place. But I still find compile time is quite long and often requires ~550 C/CXX objects to be built.
Since idf.py wraps these calls, I was wondering if an option could be added to idf.py build (such as idf.py build -j 8) to do this without digging into the ninja calls for example.
Is there already a way to do this? Is there a benefit? I'm still getting my head around it all. In the meantime, is there a way I can do this manually? I can't seem to find where the idf.py calls ninja.
Further, are there more ways to increase compile time on Windows apart from:

Specifying the minimum number of components in the project-level CMakeLists.txt: for e.g.
set(COMPONENTS bootloader esptool_py main); and
Setting the --ccache flag when building?

e.g. of my very simple project's build output:
[512/547] Building C object esp-idf/main/CMakeFiles/__idf_main.dir/main.c.obj

Thanks for raising this feature request.

Hi @thomasnugent,
Without an explicit argument, ninja will default to "number of CPUs" parallel jobs (unlike make which defaults to 1, which is why this advice was more valuable when using make as the build system).
You can run ninja directly by changing to the project build directory and running it instead of idf.py (this will work after the first time idf.py has been run). ie cd build and then ninja -j 8. More details here.
If you see a big performance boost when building with more parallel jobs than the default then we'd certainly be happy to add an option to idf.py to pass this through. If it doesn't seem to help significantly then we'll probably not add it, as there's already a way to get the same behaviour by running ninja directly. (It may not help in the same way, ninja was explicitly designed to be a more efficient build system then make and to perform better on WIndows.)
The options you mention to reduce build times are the best choices. The other thing which can heavily influence build times on Windows is Windows Defender, which can sometimes use >50% of the total CPU just monitoring the build process! The ESP-IDF Tools installer will prompt to optionally add some exception rules to Defender when it runs.
Some questions to try and figure out if there's any other "low hanging fruit" for improving build times:

Approximately how long does a clean build of your project take, and what computer are you building on? (CPU, disk type, etc.)
If you run Windows Task Monitor while building, do you see any idle CPU and do you see any other processes apart from ninja and xtensa-esp32-elf-gcc using high % of CPU? (This is where the Windows Defender service may suddenly show up and hog the CPU.)
If you run ccache -s (for stats), do the stats show an OK "cache hit rate", ie 40% or more? (Meaning that ccache is being used successfully.)

Hi @projectgus, thanks so much for your response!
I couldn't manage to add the correct exclusions on my current Antivirus provider (Kaspersky) -- if anyone has tips for this that would be awesome. I tried adding cmd.exe to trusted apps, and added all esp-idf relevant folders to excluded folders, but had no luck. Windows Defender works much better and build time has halved!
I did find though that the Windows Search feature eats up most of my CPU. Any tips on reducing its impact?
And Windows Defender (specifically the Antimalware Service) still looks like it's using the CPU.

From a fullclean, my program takes 33s to build. That's without specifying set(COMPONENTS bootloader esptool_py main). Cache hit rate looks good now also. These are most of my specs if they give context at all.

Hi @thomasnugent ,
For Windows Search, you can open Windows Search Settings (will show up if you type into the start menu search) and add your project directory to the Excluded Paths list.
Interesting that you're still seeing some overhead from Windows Defender. If the ESP-IDF directory and the ESP-IDF Tools directory are in the exclusions list then I'm not sure there is anything else that will easily reduce the overhead.
33 seconds seems like an OK time for a clean build, by the way. My development machine is Linux and on paper it's about 25% faster CPU (i7-10510U, 25% estimate comes from eyeballing Geekbench numbers). A fullclean build of unmodified ESP-IDF "hello world" example takes me 27s.
You should not need to do this kind of "full build" often, only when changing the project's configuration settings which is hopefully not a frequent thing.

On windows 33 sec is very good time. I have ryzen 5 1600 (6 core), PCIE disk and 32GB ram on linux and full build is not much faster. You have only 6 GB ram and most of it is taken by windows. If i had 33 sec build on windows i wouldnt move to linux. My windows build time was few minutes on laptop some time ago.

Thanks again guys, I've stopped the Windows Search and am really happy with my build time now! This has helped significantly :)
To answer my original question: ninja -j 8 doesn't seem to improve performance compared to using good 'ol idf.py build. Windows Defender exceptions and specifying specific components worked a treat though!

Hi @thomasnugent ,
Good to hear. Do you think this can be closed, then?
Angus

Yep absolutely, thanks @projectgus!


pylint next fixes for core

#32706

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-core

/check-enforcer override


Update REX-Ray CLI output format to be more user friendly

We should make the REX-Ray cli output format more user-friendly. We can start by making a new default format that shows human readable output. We can implement this in a way similar to how docker does this with its tab-delimited format.

This work is being done in PR #579

#579 merged today - much cleaner CLI!
[root@rexray ~]# rexray volume ls
ID                Name        Status     Size
925d79e600000000  test_vol_01  attached   16
925d79e700000001  test_vol_02  available  64
925d79e800000002  test_vol_03  available  32

This also includes #603 and #606


update search-bar UI of search page

Notes for Reviewers
This PR fixes #7172
Signed commits

[x] Yes, I signed my commits.

🚀 Preview for commit 4cb498a84fc2ef6c14eba2b6765d65c3fb744b99 at: https://63f7bdc6321059009b3ae858--meshery-docs-preview.netlify.app

Issue closed.


Add note about composer requirements

Add a note about the  fxp/composer-asset-plugin:1.0.0 dependency.

Thanks!


labels(classes)

I would like to color the embedding(similar to what you did), with the Cora labels. I was wondering if you can provide the labels as well? or direct us to where it can be found :-)
Thanks,
Rojin

See https://github.com/tkipf/gcn :)


major fix for hip_net.go ConfigLoopsHip, other fixes

adds to std Axon events, and PlusPhase:Start must go before axon version.  also nuked old hip dir, moved md to HIP.md, use new emer fun to make rep idxs small for big hip layers so raster plot is usable, etc.

discussed with Alan..


Old posts are not visible

Usually I read steemit by TAGs ( created/TAG, trending/TAG )
I found old posts are not visible.
(You need to scroll down down down to list up older posts)
However the date when old posts invisible differs.
Some tags only list 80 posts of the latest 7 days,
The others 5000 posts, almost a year ago.
Can I see the whole posts from the first one by TAG?
I want to make a list of the whole posts for the TAG I like.
I'm also wondering why the dates differ by TAGs?
Expected behavior
All the posts are visible from the first one.
Actual behavior
Old posts prior to a certain time are not visible.
The time differs by TAGs.
How to reproduce

Scroll down the created/TAG steemit web page.
Use steem.api.getDiscussionByCreated API to get posts.
I called this API continuously with the query set start_author, start_permlink with the last one.

Thank you...

I'm not sure, but I think there may be a limit to the number of posts returned. So if the # of posts with a given tag is less than that limit, you'll get everything. If the # of posts is greater than the limit, you'll receive the posts up to that limit.
More & more, I've been thinking about just how invisible older posts are in Steemit. It's a problem, imo.

This is still an issue for tags/categories that doesn't have much traffic, even on steemit.com. The weird thing is that the tag gridcoinstats that I use for my page only returns one post from last year, even though I've posted several posts since then in that category.
https://steemit.com/created/gridcoinstats

Are there any news or workarounds regarding this issue?
I am trying to build an application, but this limitation is killing me. Trimming my apps post on a daily basis. I would love to at least see some sort of documentation explaining this, and maybe information on the minimum required to avoid the post from disappearing.

Hi, probably you should find API address or check steemit.com code,  I know steem-js library could be a lot better...
https://github.com/steemit/condenser

@BartolomeoItaliano I wouldn't know where to look in steemit condenser code. Looks very confusing at first glance...

If I find time, I will do it for you.

@antonchanning,
I believe the bug is in the API itself. Also, there is no need to go into the condenser source code to see how steemit brings the feed data. You can easily check this using the network tab of Google Chrome dev tools.
There you will find the api call that lists the posts (search for api). This is what makes me think the bug is on the API itself.
I would love to see some workaround for this or getting some attention from the devs on this serious issue

I guess we have no workaround for this?

@cryptouru If the bug is in the API backend, then perhaps an issue needs to be raised against its code base? Or if one already has, maybe it can be linked to from here so those interested can follow its progress?

It just occurred to me that appbase may come with a solution for this, I'll recommend trying your tag on steemitstage.com I'm looking into it now, but I have limited time for investigation

Sounds like the issue might be deep in the core then? I do remember back when the it seemed to stop working on steemit. At first I thought it was a deliberate change, but that really doesn't make sense the more I think about it...

@antonchanning
The issue is indeed in the core of the API. As it happens even when browsing steemit or busy. It's none 'API wrapper' dependant :(


Race condition in IndexUtils#zipWithRowIndex

I got a ConcurrentModificationException from the zipWithRowIndex method, specifically from the tmp.sort(...) method.
Unfortunately I was not able to reproduce this behaviour.

Seems to be fixed with https://github.com/stratosphere/incubator-systemml/commit/fcfe90ba7bb978abeed5891bf04ce0df1537e253


Throw error for invalid CLI config

Summary
Fixes #2599
Preview:

Test plan
Needs tests.

I'm assuming most of the time it will be only a single invalid option. Do you think we could use levenshtein to figure out what the user intended?
https://www.npmjs.com/package/levenshtein
Unrecognized option "vebose". Did you mean "verbose"?

I can experiment with levenshtein, seems legit for the use case

Current coverage is 68.54% (diff: 90.00%)

Merging #2613 into master will increase coverage by 0.23%

@@             master      #2613   diff @@
==========================================
  Files           137        138     +1
  Lines          4992       5014    +22
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           3410       3437    +27
+ Misses         1582       1577     -5
  Partials          0          0

Powered by Codecov. Last update 63bf0a8...8f8eab6

Can we move the "Did you mean" into jest-validate? @vjeux was asking for it for prettier.

I can do that

Currently blocked by https://github.com/facebook/jest/pull/2630

Please rebase!

Rebased.

nice work!


What's the relationship between visibility and intersection?

The explainer doc cites the motivation of V2 to be combating click-jacking and UI redress, in the scenario that a malicious site author tricks the user into clicking on a third-party iframe which then unwittingly accepts the click as being in good faith.
This sounds like a great problem to solve.  However, I don't think I understand its relation to IntersectionObserver.  It doesn't seem inherently related to the question of "Does this element intersect the viewport?" - rather I think the author's question is "I just received some interaction - can I trust it was received in good-faith?"
For this question, I think IO is not well-suited since it doesn't have any inherent ties to user interaction.  This IO approach requires the iframed content author to monitor events and maintain state in order to correctly accept or reject interaction.  Upon every significant user interaction, they must run a check against their stored state to approve or deny the interaction.  This check must be run not only against JS event handlers, but also any default actions that are "dangerous" for their content (e.g. form submission, link navigation) -- probably introducing new active event listeners and preventDefault() calls.  They must be cautious to ensure all new/changed functionality in the iframed content correctly verifies against the stored state.
I think there are other non-IO approaches we could consider that would require less work from the developer, reduce the potential for mistakes, and be more ergonomic.  Brainstorming a couple rough starts:

Provide a new property on Event that indicates whether the target passes the visibility test.  This would eliminate the need to maintain state.
Similarly, could instead have the property reflect only whether the hosting iframe passes the visibility test rather than the specific element target.
Provide a means for the iframed document to request event firing and default actions only when the visibility test passes.  This would both eliminate the need to maintain state, as well as eliminate the need to check trustworthiness in script.
Provide an option on event registration to only call that specific handler when the visibility test passes.  e.g. payBtn.addEventListener("click", payMoney, {requireVisibilityInMilliseconds: 200})
Provide a document.isVisible() or document.isVisible(element) API, which can be called on demand to check visibility.
Build this as a separate API, VisibilityObserver.  Many of the scenarios cited ("like" button, payment widget) probably have no interest in intersection testing but do want to protect against click-jacking.  Receiving events as the user scrolls the "like" buttons in and out of view is unproductive for this purpose - I only want to know when the isVisible flag changes.

As a side benefit in 1-5, if no "delay" is required the visibility test could optionally be performed only on-demand when interaction occurs rather than constantly monitoring state.  If delay is required then the UA would need to monitor state, but at least the content author would be relieved of that task.
If I've missed a key point that makes intersection a key factor in this problem, I think it would be good to add a note in the explainer on "Why IntersectionObserver?" to explain the relationship between click-jacking and intersection.
On the other hand, I can imagine how a visibility flag on IO might be useful for ad tracking ("Has the ad been in the viewport AND fully visible for at least 500ms?").  If this is actually a key scenario that we are seeking to solve simultaneously then it should be detailed in the explainer, so we are validating proposed solutions against the needs of the full set of target scenarios.

I disagree that modifying the event handler registration interface is more ergonomic than maintaining a "visible since" state variable. It's a much more invasive spec change, and it requires modifying every event registration in user code.
Anyways, IntersectionObserver is already used in ~20% of all page loads in Chrome:
https://www.chromestatus.com/metrics/feature/timeline/popularity/1368
The API is very well know to developers, and V2 is a pretty small iterative change, so I don't really think ergonomics is much of an issue.
I strongly dislike #5, since it implies/encourages polling.
The reason why I think IntersectionObserver is a good fit is that it only makes sense to measure visibility when the target element is scrolled into the viewport. If VisibilityObserver were implemented as a separate class (#6), then the implementation would presumably first do an intersection test to determine whether it's actually necessary to determine visibility. That's redundant with what IntersectionObserver already does.
The code in the demo/ part of the repository demonstrates, I think, how easy it is to use the current proposal in the context of an iframe handling an input event:
https://github.com/szager-chromium/IntersectionObserver/blob/89e207c8b3ef82d26aac2cf6b313a8cf0399e87f/demo/cashbomb/cashbomb.html#L109


Utilities config not supported in environments

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/3299
Originally created by @pnadolny13 on 2022-03-01 21:59:19

What is the current bug behavior?
What is happening now?
I can use the config key to set values for a utility in my main meltano.yml which get loaded to my environment variables but when I try to do this in a meltano environment the keys are not loaded to environment variables.
Are only certain plugin types supported within environments? extractors/loaders/transformers all work fine for me but not utilities.
What is the expected correct behavior?
What should be happening?
I should be able to override configs for utilities in my environments configurations.
Steps to reproduce
How one can reproduce the issue?
Add utility, add utility to environment, set any config in the top level utility and another in the environment level config. Run invoke with --log-level=debug and see that only the top level config is being set as an environment variable.
Relevant logs and/or screenshots
Please use code blocks (```) to format console output
Possible fixes
If you can, link to the line of code that might be responsible for the problem or suggest a fix
Further regression test
Ensure we automatically catch similar issues in the future

[ ] Write additional adequate test cases and submit test results
[ ] Test results should be reviewed by a person from the team

View 12 previous comments from the original issue on GitLab


Awesome extension, but it does not work with symlinks.

Amazing extension. Congratulations! However, I cannot organize my snippets in the sidebar within the extension tab when referring to the snippets file through a symlink. Just a heads-up. If there is any solution, please let me know.

Thank you for your report! I released v0.3.12 to fix this. 🎉

Awesome!!  Looks amazing! Thank you very much ^^


Incorporate alts to google default creds

This change is

****************************************************************

libgrpc.so

     VM SIZE                                                                                FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +0.1%    +480 [None]                                                                               +3.84Ki  +0.0%
      +0.1%    +440 [Unmapped]                                                                           +3.80Ki  +0.0%
      [NEW]     +24 google_default_credentials_vtable                                                        +24  [NEW]
      [NEW]     +16 google_default_create_security_connector(grpc_channel_credentials*, grpc_call_creden     +16  [NEW]
   +11%    +352 src/core/lib/security/credentials/google_default/google_default_credentials.cc          +352   +11%
      [NEW]    +174 google_default_create_security_connector                                                +174  [NEW]
      +9.4%    +152 grpc_google_default_credentials_create                                                  +152  +9.4%
      [NEW]     +23 google_default_credentials_destruct                                                      +23  [NEW]
      +4.7%      +3 [Unmapped]                                                                                +3  +4.7%
  +0.4%     +64 src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc                           +64  +0.4%
      +2.4%     +48 grpc_core::(anonymous namespace)::GrpcLb::CreateOrUpdateRoundRobinPolicyLocked() [cl     +48  +2.4%
      +2.3%     +24 grpc_core::(anonymous namespace)::GrpcLb::ProcessChannelArgsLocked                       +24  +2.3%

  +0.1%    +896 TOTAL                                                                                +4.24Ki  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

****************************************************************

libgrpc.so

     VM SIZE                                                                                FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +0.1%    +480 [None]                                                                               +3.84Ki  +0.0%
      +0.1%    +440 [Unmapped]                                                                           +3.80Ki  +0.0%
      [NEW]     +24 google_default_credentials_vtable                                                        +24  [NEW]
      [NEW]     +16 google_default_create_security_connector(grpc_channel_credentials*, grpc_call_creden     +16  [NEW]
   +11%    +352 src/core/lib/security/credentials/google_default/google_default_credentials.cc          +352   +11%
      [NEW]    +174 google_default_create_security_connector                                                +174  [NEW]
      +9.4%    +152 grpc_google_default_credentials_create                                                  +152  +9.4%
      [NEW]     +23 google_default_credentials_destruct                                                      +23  [NEW]
      +4.7%      +3 [Unmapped]                                                                                +3  +4.7%
  +0.4%     +64 src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc                           +64  +0.4%
      +2.4%     +48 grpc_core::(anonymous namespace)::GrpcLb::CreateOrUpdateRoundRobinPolicyLocked() [cl     +48  +2.4%
      +2.3%     +24 grpc_core::(anonymous namespace)::GrpcLb::ProcessChannelArgsLocked                       +24  +2.3%

  +0.1%    +896 TOTAL                                                                                +4.24Ki  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

****************************************************************

libgrpc.so

     VM SIZE                                                                                FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +0.1%    +480 [None]                                                                               +3.91Ki  +0.0%
      +0.1%    +440 [Unmapped]                                                                           +3.87Ki  +0.0%
      [NEW]     +24 google_default_credentials_vtable                                                        +24  [NEW]
      [NEW]     +16 google_default_create_security_connector(grpc_channel_credentials*, grpc_call_creden     +16  [NEW]
   +11%    +352 src/core/lib/security/credentials/google_default/google_default_credentials.cc          +352   +11%
      [NEW]    +174 google_default_create_security_connector                                                +174  [NEW]
      +9.4%    +152 grpc_google_default_credentials_create                                                  +152  +9.4%
      [NEW]     +23 google_default_credentials_destruct                                                      +23  [NEW]
      +4.7%      +3 [Unmapped]                                                                                +3  +4.7%
  +0.4%     +64 src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc                           +64  +0.4%
      +2.4%     +48 grpc_core::(anonymous namespace)::GrpcLb::CreateOrUpdateRoundRobinPolicyLocked() [cl     +48  +2.4%
      +2.3%     +24 grpc_core::(anonymous namespace)::GrpcLb::ProcessChannelArgsLocked                       +24  +2.3%

  +0.1%    +896 TOTAL                                                                                +4.31Ki  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[microbenchmarks] No significant performance differences

[microbenchmarks] No significant performance differences

[microbenchmarks] No significant performance differences

****************************************************************

libgrpc.so

     VM SIZE                                                                                FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +0.1%    +480 [None]                                                                               +3.91Ki  +0.0%
      +0.1%    +440 [Unmapped]                                                                           +3.87Ki  +0.0%
      [NEW]     +24 google_default_credentials_vtable                                                        +24  [NEW]
      [NEW]     +16 google_default_create_security_connector(grpc_channel_credentials*, grpc_call_creden     +16  [NEW]
   +11%    +352 src/core/lib/security/credentials/google_default/google_default_credentials.cc          +352   +11%
      [NEW]    +174 google_default_create_security_connector                                                +174  [NEW]
      +9.4%    +152 grpc_google_default_credentials_create                                                  +152  +9.4%
      [NEW]     +23 google_default_credentials_destruct                                                      +23  [NEW]
      +4.7%      +3 [Unmapped]                                                                                +3  +4.7%
  +0.4%     +64 src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc                           +64  +0.4%
      +2.4%     +48 grpc_core::(anonymous namespace)::GrpcLb::CreateOrUpdateRoundRobinPolicyLocked() [cl     +48  +2.4%
      +2.3%     +24 grpc_core::(anonymous namespace)::GrpcLb::ProcessChannelArgsLocked                       +24  +2.3%

  +0.1%    +896 TOTAL                                                                                +4.31Ki  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[microbenchmarks] No significant performance differences

Reviewed 2 of 3 files at r1, 1 of 2 files at r3, 2 of 2 files at r4.
Review status: all files reviewed at latest revision, 1 unresolved discussion, some commit checks failed.

include/grpc/impl/codegen/grpc_types.h, line 297 at r4 (raw file):
Previously, AspirinSJL (Juanli Shen) wrote…
Nit: Please state explicitly what value means true.

I think it would be fine to just say that the value is boolean.

include/grpc/impl/codegen/grpc_types.h, line 298 at r4 (raw file):

/** Channel arg indicating if a target is grpclb loadbalancer. The
 * type of this arg is an integer and the value is treated as a bool. */
#define GRPC_ARG_TARGET_IS_GRPCLB_LOAD_BALANCER \

These args are only used internally, so I don't think they need to be defined in grpc_types.h.  Instead, I suggest moving them to grpclb.h.

include/grpc/impl/codegen/grpc_types.h, line 298 at r4 (raw file):

/** Channel arg indicating if a target is grpclb loadbalancer. The
 * type of this arg is an integer and the value is treated as a bool. */
#define GRPC_ARG_TARGET_IS_GRPCLB_LOAD_BALANCER \

Note that the term "target" is misleading here, because this isn't about the target name; it's about the resulting address(es).  I think we should use "address" instead.

src/core/lib/security/credentials/google_default/google_default_credentials.cc, line 50 at r4 (raw file):

/* -- Default credentials. -- */

static grpc_channel_credentials* default_credentials = nullptr;

Global variables should start with a g_ prefix.
(This is a pre-existing issue, not something new with this PR, but we might as well fix it while we're here.)

src/core/lib/security/credentials/google_default/google_default_credentials.cc, line 79 at r4 (raw file):

  grpc_google_default_channel_credentials* c =
      reinterpret_cast<grpc_google_default_channel_credentials*>(creds);
  bool is_grpclb_load_balancer =

Suggest using grpc_channel_arg_get_bool() for these:
https://github.com/grpc/grpc/blob/master/src/core/lib/channel/channel_args.h#L119
For example:
bool is_grpclb_load_balancer = grpc_channel_arg_get_bool(
    grpc_channel_args_find(args, GRPC_ARG_TARGET_IS_GRPCLB_LOAD_BALANCER),
    false);

src/core/lib/security/credentials/google_default/google_default_credentials.cc, line 95 at r4 (raw file):

                    : c->ssl_creds->vtable->create_security_connector(
                          c->ssl_creds, call_creds, target, args, sc, new_args);
  static const char* args_to_remove[] = {

I don't think it's necessary to remove these.  It should be fine to let them propagate to the subchannel.

src/core/lib/security/credentials/google_default/google_default_credentials.cc, line 338 at r4 (raw file):

      if (alts_creds != nullptr) {
        creds->alts_creds = grpc_channel_credentials_ref(
            grpc_composite_channel_credentials_create(alts_creds, call_creds,

Instead of making both the SSL and ALTS credentials composite credentials that include the call creds and then choosing between them, why not do the composition with the call creds at the google default creds level?  In other words, first create the google default creds that contains the SSL and ALTS creds, and then compose the google default creds with the call creds.

Comments from Reviewable

Review status: 1 of 6 files reviewed at latest revision, 7 unresolved discussions.

include/grpc/impl/codegen/grpc_types.h, line 298 at r4 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
These args are only used internally, so I don't think they need to be defined in grpc_types.h.  Instead, I suggest moving them to grpclb.h.

I did not find grpclb.h. Do you mean grpclb_channel.h?

include/grpc/impl/codegen/grpc_types.h, line 298 at r4 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
Note that the term "target" is misleading here, because this isn't about the target name; it's about the resulting address(es).  I think we should use "address" instead.

Done.

src/core/lib/security/credentials/google_default/google_default_credentials.cc, line 50 at r4 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
Global variables should start with a g_ prefix.
(This is a pre-existing issue, not something new with this PR, but we might as well fix it while we're here.)

Done

src/core/lib/security/credentials/google_default/google_default_credentials.cc, line 79 at r4 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
Suggest using grpc_channel_arg_get_bool() for these:
https://github.com/grpc/grpc/blob/master/src/core/lib/channel/channel_args.h#L119
For example:
bool is_grpclb_load_balancer = grpc_channel_arg_get_bool(
    grpc_channel_args_find(args, GRPC_ARG_TARGET_IS_GRPCLB_LOAD_BALANCER),
    false);

Done

src/core/lib/security/credentials/google_default/google_default_credentials.cc, line 95 at r4 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
I don't think it's necessary to remove these.  It should be fine to let them propagate to the subchannel.

I think we had a discussion on this issue before. If we do not remove these channel args,  the sub-channels  to backends and fallback addresses will have different channel args. And if at some point, we want to switch into and out of fallback mode, we need to re-connect to all of the backends. How do you think?

src/core/lib/security/credentials/google_default/google_default_credentials.cc, line 338 at r4 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
Instead of making both the SSL and ALTS credentials composite credentials that include the call creds and then choosing between them, why not do the composition with the call creds at the google default creds level?  In other words, first create the google default creds that contains the SSL and ALTS creds, and then compose the google default creds with the call creds.

Great suggestion. The code is revised.

Comments from Reviewable

****************************************************************

libgrpc.so

     VM SIZE                                                                                FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +0.1%    +448 [None]                                                                               +3.66Ki  +0.0%
      +0.1%    +376 [Unmapped]                                                                           +3.62Ki  +0.0%
      +2.6%     +32 [None]                                                                                0  [ = ]
      [NEW]     +24 google_default_credentials_vtable                                                        +24  [NEW]
      [NEW]     +16 google_default_create_security_connector(grpc_channel_credentials*, grpc_call_creden     +16  [NEW]
      [NEW]      +8 g_default_credentials                                                                      0  [ = ]
      +400%      +4 g_compute_engine_detection_done                                                            0  [ = ]
   +11%    +352 src/core/lib/security/credentials/google_default/google_default_credentials.cc          +352   +11%
      [NEW]    +182 google_default_create_security_connector                                                +182  [NEW]
      +8.4%    +136 grpc_google_default_credentials_create                                                  +136  +8.4%
      [NEW]     +23 google_default_credentials_destruct                                                      +23  [NEW]
       +17%     +11 [Unmapped]                                                                               +11   +17%
  +0.4%     +64 src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc                           +64  +0.4%
      +2.4%     +48 grpc_core::(anonymous namespace)::GrpcLb::CreateOrUpdateRoundRobinPolicyLocked() [cl     +48  +2.4%
      +2.3%     +24 grpc_core::(anonymous namespace)::GrpcLb::ProcessChannelArgsLocked                       +24  +2.3%

  +0.1%    +864 TOTAL                                                                                +4.07Ki  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

Reviewed 5 of 5 files at r5.
Review status: all files reviewed at latest revision, 4 unresolved discussions.

include/grpc/impl/codegen/grpc_types.h, line 298 at r4 (raw file):
Previously, yihuazhang (yihuaz) wrote…
Done.

Please also change the string values.

include/grpc/impl/codegen/grpc_types.h, line 298 at r4 (raw file):
Previously, yihuazhang (yihuaz) wrote…
I did not find grpclb.h. Do you mean grpclb_channel.h?

Go ahead and create a new grpclb.h in the grpclb directory.

src/core/lib/security/credentials/google_default/google_default_credentials.cc, line 95 at r4 (raw file):
Previously, yihuazhang (yihuaz) wrote…
I think we had a discussion on this issue before. If we do not remove these channel args,  the sub-channels  to backends and fallback addresses will have different channel args. And if at some point, we want to switch into and out of fallback mode, we need to re-connect to all of the backends. How do you think?

You're right -- thanks for reminding me of this.  Please add a comment explaining this.

src/core/lib/security/credentials/google_default/google_default_credentials.cc, line 328 at r5 (raw file):

      grpc_alts_credentials_options_destroy(options);
      /* Add a global reference so that it can be cached and re-served. */
      g_default_credentials = grpc_channel_credentials_ref(

Might be a bit more readable to call grpc_channel_credentials_ref() when we set result rather than doing it here.

Comments from Reviewable

[microbenchmarks] No significant performance differences

****************************************************************

libgrpc.so

     VM SIZE                                                                                FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +0.1%    +448 [None]                                                                               +3.70Ki  +0.0%
      +0.1%    +376 [Unmapped]                                                                           +3.66Ki  +0.0%
      +2.6%     +32 [None]                                                                                0  [ = ]
      [NEW]     +24 google_default_credentials_vtable                                                        +24  [NEW]
      [NEW]     +16 google_default_create_security_connector(grpc_channel_credentials*, grpc_call_creden     +16  [NEW]
      [NEW]      +8 g_default_credentials                                                                      0  [ = ]
      +400%      +4 g_compute_engine_detection_done                                                            0  [ = ]
   +11%    +352 src/core/lib/security/credentials/google_default/google_default_credentials.cc          +352   +11%
      [NEW]    +182 google_default_create_security_connector                                                +182  [NEW]
      +8.4%    +136 grpc_google_default_credentials_create                                                  +136  +8.4%
      [NEW]     +23 google_default_credentials_destruct                                                      +23  [NEW]
       +17%     +11 [Unmapped]                                                                               +11   +17%
  +0.4%     +64 src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc                           +64  +0.4%
      +2.4%     +48 grpc_core::(anonymous namespace)::GrpcLb::CreateOrUpdateRoundRobinPolicyLocked() [cl     +48  +2.4%
      +2.3%     +24 grpc_core::(anonymous namespace)::GrpcLb::ProcessChannelArgsLocked                       +24  +2.3%

  +0.1%    +864 TOTAL                                                                                +4.11Ki  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

Review status: all files reviewed at latest revision, 5 unresolved discussions, some commit checks failed.

include/grpc/impl/codegen/grpc_types.h, line 298 at r4 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
Go ahead and create a new grpclb.h in the grpclb directory.

Done.

include/grpc/impl/codegen/grpc_types.h, line 298 at r4 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
Please also change the string values.

Oops, my bad. The code is revised.

src/core/lib/security/credentials/google_default/google_default_credentials.cc, line 95 at r4 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
You're right -- thanks for reminding me of this.  Please add a comment explaining this.

Done

src/core/lib/security/credentials/google_default/google_default_credentials.cc, line 328 at r5 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
Might be a bit more readable to call grpc_channel_credentials_ref() when we set result rather than doing it here.

Done.

Comments from Reviewable

****************************************************************

libgrpc.so

     VM SIZE                                                                                FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +0.1%    +448 [None]                                                                               +3.70Ki  +0.0%
      +0.1%    +376 [Unmapped]                                                                           +3.66Ki  +0.0%
      +2.6%     +32 [None]                                                                                0  [ = ]
      [NEW]     +24 google_default_credentials_vtable                                                        +24  [NEW]
      [NEW]     +16 google_default_create_security_connector(grpc_channel_credentials*, grpc_call_creden     +16  [NEW]
      [NEW]      +8 g_default_credentials                                                                      0  [ = ]
      +400%      +4 g_compute_engine_detection_done                                                            0  [ = ]
   +11%    +352 src/core/lib/security/credentials/google_default/google_default_credentials.cc          +352   +11%
      [NEW]    +182 google_default_create_security_connector                                                +182  [NEW]
      +8.4%    +136 grpc_google_default_credentials_create                                                  +136  +8.4%
      [NEW]     +23 google_default_credentials_destruct                                                      +23  [NEW]
       +17%     +11 [Unmapped]                                                                               +11   +17%
  +0.4%     +64 src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc                           +64  +0.4%
      +2.4%     +48 grpc_core::(anonymous namespace)::GrpcLb::CreateOrUpdateRoundRobinPolicyLocked() [cl     +48  +2.4%
      +2.3%     +24 grpc_core::(anonymous namespace)::GrpcLb::ProcessChannelArgsLocked                       +24  +2.3%

  +0.1%    +864 TOTAL                                                                                +4.11Ki  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

[trickle] No significant performance differences

Looks great, other than a couple of typos in a comment.  Let's see how the tests look before merging.

Reviewed 12 of 12 files at r6.
Review status: all files reviewed at latest revision, 1 unresolved discussion, some commit checks failed.

src/core/lib/security/credentials/google_default/google_default_credentials.cc, line 97 at r6 (raw file):

   * to ensure backends and fallback adresses will have the same set of channel
   * args. By doing that, it guarantees the connections to backends will not be
   * teared down and re-connected when swiching in and out of fallback mode.

s/teared/torn/
s/swiching/switching/

Comments from Reviewable

[trickle] No significant performance differences

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

[microbenchmarks] No significant performance differences

Thanks Mark and Juanli for the review. Before it gets merged, I would like to run some tests on VMs regarding this implementation. I will remove the DO_NOT_MERGE label once it is ready to get merged.

[microbenchmarks] No significant performance differences

[microbenchmarks] No significant performance differences

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

[trickle] No significant performance differences

Review status: 5 of 22 files reviewed at latest revision, 3 unresolved discussions, some commit checks failed.

src/core/lib/security/credentials/google_default/google_default_credentials.cc, line 338 at r4 (raw file):
Previously, yihuazhang (yihuaz) wrote…
Great suggestion. The code is revised.

Keep in mind that in the future, ALTS will not need to use call credential. It will be either (SSL + call credential) or ALTS.
Of course, you can still do (SSL + ALTS) then composite with call credential for now. Later we re-factor once ALTS does not to use call credential.

Comments from Reviewable

****************************************************************

libgrpc.so

     VM SIZE                                                                                FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +0.1%    +448 [None]                                                                               +7.72Ki  +0.1%
      +0.1%    +376 [Unmapped]                                                                           +7.68Ki  +0.1%
      +2.6%     +32 [None]                                                                                0  [ = ]
      [NEW]     +24 google_default_credentials_vtable                                                        +24  [NEW]
      [NEW]     +16 google_default_create_security_connector(grpc_channel_credentials*, grpc_call_creden     +16  [NEW]
      [NEW]      +8 g_default_credentials                                                                      0  [ = ]
      +400%      +4 g_compute_engine_detection_done                                                            0  [ = ]
   +11%    +352 src/core/lib/security/credentials/google_default/google_default_credentials.cc          +352   +11%
      [NEW]    +182 google_default_create_security_connector                                                +182  [NEW]
      +8.4%    +136 grpc_google_default_credentials_create                                                  +136  +8.4%
      [NEW]     +23 google_default_credentials_destruct                                                      +23  [NEW]
       +17%     +11 [Unmapped]                                                                               +11   +17%
  +0.4%     +64 src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc                           +64  +0.4%
      +2.4%     +48 grpc_core::(anonymous namespace)::GrpcLb::CreateOrUpdateRoundRobinPolicyLocked() [cl     +48  +2.4%
      +2.3%     +24 grpc_core::(anonymous namespace)::GrpcLb::ProcessChannelArgsLocked                       +24  +2.3%

  +0.1%    +864 TOTAL                                                                                +8.12Ki  +0.1%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

Review status: 5 of 14 files reviewed at latest revision, 3 unresolved discussions, some commit checks failed.

src/core/lib/security/credentials/google_default/google_default_credentials.cc, line 338 at r4 (raw file):
Previously, jiangtaoli2016 (Jiangtao Li) wrote…
Keep in mind that in the future, ALTS will not need to use call credential. It will be either (SSL + call credential) or ALTS.
Of course, you can still do (SSL + ALTS) then composite with call credential for now. Later we re-factor once ALTS does not to use call credential.

Good point, Jiangtao. Once ALTS does not need call credentials, I think we can do either of the following two ways 1) keep the current format and when creating a security connector for a google default credential, we pass null to call creds if ALTS is selected. 2) change the format of google credentials to be (SSL+call credentials) and ALTS.

Comments from Reviewable

[microbenchmarks] No significant performance differences

[microbenchmarks] No significant performance differences

Reviewed 1 of 17 files at r7, 8 of 16 files at r8.
Review status: all files reviewed at latest revision, 2 unresolved discussions, some commit checks failed.

src/core/lib/security/credentials/google_default/google_default_credentials.cc, line 338 at r4 (raw file):
Previously, yihuazhang (yihuaz) wrote…
Good point, Jiangtao. Once ALTS does not need call credentials, I think we can do either of the following two ways 1) keep the current format and when creating a security connector for a google default credential, we pass null to call creds if ALTS is selected. 2) change the format of google credentials to be (SSL+call credentials) and ALTS.

I would vote for option 2 when the time comes.  But I agree that the way you have this is good for now.

Comments from Reviewable

The PR passed internal tests. Merging now.


Add a working binder env

The localtileserver works nicely locally. However, I have not been able to make it work in a cloud environment. I have tested it multiple cloud env without success, such as https://binder.pangeo.io, https://mybinder.org, https://streamlit.io/cloud and Google Colab. Below is the environment.yml I used to create the env. It would be nice to have a working env that users can launch a notebook to test localtileserver with a simple click.
name: tileserver
channels:
  - conda-forge
dependencies:
  - gdal=3.2.2
  - pip
  - pip:
      - geopandas
      - leafmap
      - localtileserver

I'm not sure if this is something that can be addressed by localtileserver... I've been meaning to outline this issue and see if there are ways around it.
In brief, localtileserver works by launching a webserver on a local port (local to wherever Python is running). If you are running Jupyter(lab) in a remote environment, then its not going to be possible to access the port on which localtileserver is running from the Jupyter front end without some hackery or magic. The ipywidgets comm models are what are supposed to be used in place of serving data over an arbitrary port like this.
The TileLayer in ipyleaflet or folium both expect a slippy maps tile URL in the form https://.../z/x/y.png. In order to make this all work in a remote Jupyter environment, we would have to create a whole new widget model on top of the ipywidgets.TileLayer model and an underlying TileLayer in LeafletJS itself to pull tiles not from a URL but from a memory object or something.
This would get very complicated really quickly... localtileserver is a little hobby project of mine and I'm not sure if I will have the availability to add support for this
I'm going to ping @martinRenou here to see if:

Would there be any interest from the ipyleaflet team to implement something like this? At least adding a TileLayer that can load tiles from an object in memory rather than a URL.
Do you have any further insight on how to approach this problem?

Otherwise, what you can do is have your tile server running on another remote server with a publically visible URL. This is exactly what my team and I have built in ResonantGeoData and is demonstrated in this PR: https://github.com/ResonantGeoData/ResonantGeoData/pull/603

Thanks for the insight. It makes a lot of sense. This feature is just my wish-list. No worries if it can't be implmented.
Just curious, what kind of memory object could potentially make this work? Would the ipyleaflet LocalTileLayer be useful in this case? I would be happy to look into it if there is a path forward.

Ahhh, LocalTileLayer is interesting... I was not aware of that and I'll look into seeing if I might actually be able to get this to work with LocalTileLayer

I don't think LocalTileLayer would even work in a remote Jupyter(lab) environment as-is. It simpy sets the file path as the URL of the tile layer:
https://github.com/jupyter-widgets/ipyleaflet/blob/f47ace2a2a3c5b27ca1c0079d8e07bc9ab22e601/js/src/layers/LocalTileLayer.js#L19
The client web browser would not be able to access that.

Just curious, what kind of memory object could potentially make this work?

We would have to make an ipywidget/comm that could pass the bytes of a PNG image. Then I'd have to refactor localtileserver a bit to have a version that doesn't run on in a webserver but just has a get_tile(x, y, z) mehtod that is called by the ipywidget model.

Would the following code be relevant?
https://github.com/giswqs/leafmap/blob/master/leafmap/leafmap.py#L1400
image = Image.open(url)
f = BytesIO()
image.save(f, ext)
data = data.decode("ascii")
url = "data:image/{};base64,".format(ext) + data

Yep, that's what we'd do, but we'd need ipyleaflet to be able to take each one of those as tiles in the TileLayer

This looks promising as a way to proxy the local web server over to Jupyter on MyBinder: https://jupyter-server-proxy.readthedocs.io/en/latest/index.html

Jupyter ServerProxy seems interesting. I will look into it.

FYI, https://github.com/banesullivan/localtileserver/discussions/32 does provide a work around by using a remotely hosted instance

Thank you very much for implementing this.


feat: private chart sync support given in chart repo

Description

Currently we only provide chart sync support for public repos, this pr brings a new feature for private repo chart sync support.

After:-

Related github issue:- https://github.com/devtron-labs/devtron/issues/1906
How Has This Been Tested?

[x] Tested locally while port forwarding.
[x] Tested by deploying on demo
[x] Tested on deploying on my azure personal virtual machine.

Checklist:

[x] The title of the PR states what changed and the related issues number (used for the release note).
[ ] Does this PR requires documentation updates?
[ ] I've updated documentation as required by this PR.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have tested it for all user roles.
[ ] I have added all the required unit/api test cases.

Does this PR introduce a user-facing change?

closing due to corrupt code


feat(ingest/snowflake): Initialize the spacy Spanish or English model…

… depending on the value of language indicated in the ingestion.
Pending acceptance of https://github.com/datahub-project/datahub/pull/7783.

Hey @olgapenedo  - did you get time to go through review comments ? Especially this and this are important so that performance of classification API is not affected.


Integrating Tacotron and LPCNet: Training tacotron with .f32 features

In the ReadMe, it's mentioned

Convert the data generated at the last step which has .f32 extension to what could be loaded with numpy. I merge it to the Tacotron feeder here and here with the following code.

> mel_target = np.fromfile(os.path.join(self._mel_dir, meta[0]), dtype='float32')
> mel_target = np.resize(mel_target, (-1, self._hparams.num_mels))

But, meta[0] will have speech-audio-xxxx.npy files while self._mel_dir would have speech-mel-xxxx.npy files. So, the above code snippet is trying to search for speech (npy or f32) files inside mel_dir. Is there any thing wrong in the above code snippet.
One more doubt: Where should I copy the .f32 file generated in previous step, in Mels or in wavs or in Linear folder so that we can train Tacotron with these features generated.
Also, In this case, should I use

python train.py --model='Tacotron-2'

which trains entire tacotron+wavenet
or use

python train.py --model='Tacotron'

which trains only Tacotron.
Thanks

about meta[0].
If you use tacotron2 preprocessing, you will get three folders(audio, melsprectrum and linear spectrum) and a txt file used to provide the info. Because I do not need audio file in tacotron2 traning, so I make a soft link of  audio folder to the f32 folder. Meanwhile, I can training tacotron2 with mels conventionally. Of course, I should modify the first column(meta[0]) to the real name of f32 file. You can modify it to your actual path of f32 according to your situation.
2 only train tacotron. you have another vocoder LPCNet instead of wavenet.

So while training tacatron2 , i should replace/softlink the f32 to audio folder of training_data( after preprocessing) and train.txt first column(meta[0]) should be actual name of f32 files right?
if above is taken care don't think we need this step right?

mel_target = np.fromfile(os.path.join(self._mel_dir, meta[0]), dtype='float32')

only below steps should be fine

mel_target = np.load(os.path.join(self._mel_dir, meta[1]))
mel_target = np.resize(mel_target, (-1, self._hparams.num_mels))

of course, you can do that as long as your path is the f32.file .

Hi, the feature extracted with feature_extract.sh script is saved as .f32 file and then  it's used to train Tacotron2 . But Normally Tacotron2 was used to predict mel spectrogram. Here, T2 + LPCNet ,is the predict target of T2 is changed or just replace mel spectrogram with .f32 feature?

@superhg2012 replace the f32 created to audio folder..
check this diff based on Mlwoo changes.
https://github.com/alokprasad/LPCTron/blob/master/Tacotron-2/Tacotron2-lpcnet_changes.diff

@alokprasad thanks a lot !! #

@alokprasad can you post your  samples?

@superhg2012
Please find the recording,,( They are not good)
I think we should retrain lpcnet with f32 generated from tactron2
https://vocaroo.com/i/s1Dx9nbKFeuY
https://vocaroo.com/i/s1VRBWayVzrD

@alokprasad  I can not reach the link you posted,  please refer to [#1], (https://github.com/MlWoo/LPCNet/issues/1) posted audio sample, it seems than the author did not use GTA training mode.

@alokprasad You have a lot work to do because you should calculate the length of audio according to the number of frames and add the tail to the audio. We did not use GTA mode because the job is trivial.
LPCNet is sensitive to pitch params. I think gta mode will lead one deviation of baseline to another if t2 is not trained well.

@MlWoo do you mean that each Audio file should be of same length or it should in integral multiple of frames?

@alokprasad more work. LPCnet will cut off the silence of audio in default, you should modify LPCnet code to cooperate with gta result of T2.

@MlWoo Can you point to code in LPCNet , where the modification need to be done.

@MlWoo i saw that https://github.com/mozilla/LPCNet/commit/554b6df65eca11f572e4a7d3b266f54a37a4a17f there is silence removal here, and this is needed only to
during training of LPCnet .
Should i remove this code and Train LPCNet.

@MlWoo Can we add this in Tacotron training
https://github.com/gooofy/zamia-tts/commit/66bd10d4c34f215eaf37fba7e712047291002ace

@alokprasad Tacotron training with silence removal is maybe a good idea when training English.  It is bad idea  while training Chinese(mandarin) because the very short silence is benefiticial to the prosody.  I am not very sure about that is good to English cauz' I am not a native English speaker. Removing the long silence at the beginning and end of an audio is necessary when training Tacotron2.

@superhg2012 replace the f32 created to audio folder..
check this diff based on Mlwoo changes.
https://github.com/alokprasad/LPCTron/blob/master/Tacotron-2/Tacotron2-lpcnet_changes.diff

I see you save audio (by preprocess) to meta[0], so  you use audio as mel_target to train Tacotron2?

Hi, the feature extracted with feature_extract.sh script is saved as .f32 file and then it's used to train Tacotron2 . But Normally Tacotron2 was used to predict mel spectrogram. Here, T2 + LPCNet ,is the predict target of T2 is changed or just replace mel spectrogram with .f32 feature?

Is the way to train T2? I don't understand well.

Hi, the feature extracted with feature_extract.sh script is saved as .f32 file and then it's used to train Tacotron2 . But Normally Tacotron2 was used to predict mel spectrogram. Here, T2 + LPCNet ,is the predict target of T2 is changed or just replace mel spectrogram with .f32 feature?

Is the way to train T2? I don't understand well.

I see, we use f32 to train T2 instead mel feature

@MlWoo i saw that mozilla@554b6df there is silence removal here, and this is needed only to
during training of LPCnet .
Should i remove this code and Train LPCNet.

I have confuse about the trm

@MlWoo i saw that mozilla@554b6df there is silence removal here, and this is needed only to
during training of LPCnet .
Should i remove this code and Train LPCNet.

@alokprasad
I use your LPCTron code, andthe ouput vocie is bad, Is the Hparmas effect?
And by the way, Do we need create mel and linear spectrum in Tacotron preprocess, I don't find we use mel or linear train when we use Tacotron+LPCNet.

@superhg2012 Is the audio quality of TTS + LPCNet good? how did you make it?

@byuns9334 I don't get good quality with T2 + LPCNet(20dim). But, I get better quality with T1 and LPCNet(55 dim).
@lmingde  I put the dumped f32 files into the audio dir,when train T2, the f32 files in audio dir will be feeded as mel_target for training.

@superhg2012 i guess T1 and T2 are same except Vocoder part , which anyways we are using LPCNET.
Can you share the changes for T1 with LPCNET.

@alokprasad  about LPCNet model training with 55 dim features is better than 20 dim. About T1, no special changes, just train with 55 dim features.

nb_features is already 55 , so u mean to say no changes in lpcnet just train lpcnet.
https://github.com/mozilla/LPCNet/blob/master/src/train_lpcnet.py
For T1
Instead of num_mels = 20 you mean num_mels = 55?

yes, just try it.
when test synthesis... make without taco=1 flag
make clean & make test_lpcnet

@MlWoo Hi, may I know that, in the training stage when feeding a batch of samples to Tacotron, what padding values are used to ensure the f32 features (whatever 20 or 55 dims) having the same length? I noticed that -0.1 is used in alokprasad's LPCTron implementation.

@wangfn I have forgotten it. no worries, just mask the padding value when calculating the loss.

@MlWoo Thanks a lot, indeed masking the padding values is the solution.

@byuns9334 I don't get good quality with T2 + LPCNet(20dim). But, I get better quality with T1 and LPCNet(55 dim).
@lmingde I put the dumped f32 files into the audio dir,when train T2, the f32 files in audio dir will be feeded as mel_target for training.

@superhg2012 what changes is required for LPCNET for 20 to 55 dim? i thin it uses 55 but only 20 are needed.Any changes in Tactron2 training if we change dims in LPCNET

Hello all,
I've been working on the tacotron+LPCNet integration but the synthesis is very noisy/robotic. Per the readme I run make dump_data to get the LPCNet training material, then make clean and make dump_data taco=1 and make test_lpcnet taco=1 for the tacotron training and synthesis.
I trained both models on the LJSpeech dataset and ended up with this alignment:

and with these synthesis results
x-special/nautilus-clipboard
copy
file:///home/cjai/sample.zip
I've heard some great results from others so I am wondering where I went wrong.
Thanks!


Always choose the production image as the recommended version

Change-type: patch

Windows tests failed with buildUrl(...).then is not a function. Any idea why?

I've got no idea on that error, I can't see why this PR would affect it (and definitely not windows-only)

It looks like the tests were broken by https://github.com/resin-io/resin-sdk/pull/324 @pimterry, as that PR failed with the same message as this when I retried it in https://ci.appveyor.com/project/resin-io/resin-sdk/build/1.0.1150/job/n961n0qw6yaopuy6

That PR is only changed Travis's config, so I can't believe it's the cause of Appveyor's failures. I'll take a closer look now though.

You're right, when I initially looked I didn't see an appveyor.yml and thought it must be because it was defaulting to travis.yml, but it looks like something else has changed - actually I just checked and I'm pretty sure it's got to be due to coffee-script 1.12.5: http://coffeescript.org/#changelog

Eugh, ok, that makes sense. Explains why Travis passes too - it's using the yarn-locked versions.
(As an aside, I'd really like to make these consistent, and preferably find a way to ensure dependencies don't shift under the feet of downstream users either. Might be worth looking at shrinkwrap again. Issue: https://github.com/resin-io/resin-sdk/issues/326)

Ok, I've added a test for the sorting @pimterry and as part of it I had to make the sorting be consistent - I think these changes need to be copied into the ui for the host update code though (although it might be worth taking the opportunity to deduplicate)

The HUP code is very similar but slightly different, thus the duplication

@Page- This actually breaks the tests - we've got some tests for the sorting logic itself here: https://github.com/resin-io/resin-sdk/blob/master/tests/util.spec.coffee#L156. Those need updating with this new change.
The travis build not failing from those is a bug that actually did come from that Travis PR, I've got a fix up at https://github.com/resin-io/resin-sdk/pull/328. Should be a quick review and merge there, and then we can rebase this on top to check this is all working correctly..

Ok, I'll fix those @pimterry

@pimterry I was able to fix it, and it was painfully hard to find :(  Apparently I put the require for osVersionRCompare in the nodejs only branch by accident, so it wasn't there in the browser env

Once you merge this, it'd be really useful if you could test the auto publish code too. Just push a tagged commit to master which adds the version number to package.json and the changelog, and it should get automatically picked up, built, and pushed to npm. Once I'm sure that's working versionbot can take over that step too, but I'd rather do it by hand until we've seen it all working happily at least once!

I pushed a tagged commit @pimterry


ERROR: django-push-notifications 1.6.1 has requirement apns2<0.6.0,>=0.3.0, but you'll have apns2 0.7.1 which is incompatible.

Hi,
first of all thank you for your efforts do create and share this app :)
When I try to upgrade my pip packages, I obtain:
ERROR: django-push-notifications 1.6.1 has requirement apns2<0.6.0,>=0.3.0, but you'll have apns2 0.7.1 which is incompatible.

$ pip list --outdated --format=columns
Package    Version Latest Type
---------- ------- ------ -----
apns2      0.5.0   0.7.1  wheel
h2         2.6.2   3.1.1  wheel
hyperframe 3.2.0   5.2.0  wheel

Can you upgrade django-push-notifications to be compatible with latest version of dependencies please?

What version of python are you on?  It seems here that >3.5 you should be good.

@rocchidavide I just ran into this today, I'll eat my words! Is there a reason  apn2  is stuck at hyperframe 3.2.0? That release is about 4 years old looking at the release page.

apns2 is problematic as whole, because it depends on hyper which is dead. https://github.com/Pr0Ger/PyAPNs2/issues/126 (and for example https://github.com/zulip/zulip/pull/18733).


crash after startup

Please see stack trace:
[2016-07-29 03:08:21] [#] -- Level: 12
[2016-07-29 03:08:21] [#] -- Experience: 70360
[2016-07-29 03:08:21] [#] -- Experience until next level: 4640
[2016-07-29 03:08:21] [#] -- Pokemon Captured: 177
[2016-07-29 03:08:21] [#] -- Pokestops Visited: 143
[2016-07-29 03:08:21] [x] Initial Transfer.
[2016-07-29 03:08:21] [x] Will NOT transfer anything above CP 500 or these ['']
Traceback (most recent call last):
File "./pokecli.py", line 240, in
main()
File "./pokecli.py", line 228, in main
bot.start()
File "/root/OpenPoGoBot/pokemongo_bot/init.py", line 55, in start
self._setup_api()
File "/root/OpenPoGoBot/pokemongo_bot/init.py", line 250, in _setup_api
worker.work()
File "/root/OpenPoGoBot/pokemongo_bot/cell_workers/initial_transfer_worker.py", line 23, in work
pokemon_groups = self._initial_transfer_get_groups()
File "/root/OpenPoGoBot/pokemongo_bot/cell_workers/initial_transfer_worker.py", line 57, in _initial_transfer_get_groups
inventory_dict = inventory_req['responses']['GET_INVENTORY']['inventory_delta']['inventory_items']
KeyError: 'GET_INVENTORY'

been seeing this issue all day, seems to be random. Just try to restart a few times and it'l work work eventually.

Sometimes the payload is not being returned by the API. I have been looking at this issue as it's system everywhere the API is used, we should get these error and respond in a better way to  sleep then reconnect IMHO.

This error should be fixed in #112, please test that branch.

Closed by #112.


Cassette stripping timing units from 0 values making the properties invalid

Cassette is stripping timing units from 0 values making the properties invalid
so transition: all 2s 0s ease gets squished to:
transition: all 2s 0 ease
Chrome sees the latter as invalid as even 0 timing values need a unit specified for transitions

If anyone is after a workaround you can change the 0 values to 0.0001ms


Weird when editing text which is partial selected

Prerequisites
I don't think the prerequistes is needed this time.
Description
Pretty difficult to describe, this is a demo picture.
Steps to Reproduce

Type some text in the editor, for example aaaaabbbbb.
Select the left part of the text like aaaaa.
Type a letter x.

Expected behavior: the text becomes xbbbbb and no charcters are selected.
Actual behavior: the text becomes xbbbbb but the middle 4 b are selected.
Reproduces how often: Many times, but not every time.
Versions
1.19.0

Thank you for contributing!
We require the issue template to be filled out on all new issues and pull requests. We do this so that we can be certain we have all the information we need to address your submission efficiently. This allows the maintainers to spend more time fixing bugs, implementing enhancements, and reviewing and merging pull requests. Please open a new issue and fill out the template for us.
Thanks for understanding and meeting us half way :grinning:


Update status 'dot' characters for utf terminal

Use different characters for success, failure, error, and pending status dots:

Success - filled circle
Failure - filled square
Error   - heavy asterisk
Pending - dotted circle

●●◼◼✱✱◌◌
2 successes / 2 failures / 2 errors / 2 pending : 0.0 seconds

Neat. :+1: