distutils.ccompiler: Make has_function work with more C99 compilers

C99 removed support for implicit function declarations.  This means that just calling a function, without declaring the function first, can result in a compilation error.  Today, has_function works with most compilers because they issue just a warning, create an object file, and attempt a link, which then detects available of the symbol at link time, as intended.  With future compilers, compilation will already fail, and no link test is performed.
The has_function interface provides the caller with a way to supply a list of header files to include.  However, even with today's compilers, this only works if the function does not expect any parameters.  Otherwise, the function call in the C fragment created by has_function will not supply the correct argument list and fail compilation.  Therefore, this change supplies and incorrect prototype without arguments.  This is what autoconf does today in a very similar situation, so it is quite likely that compilers will support this construct in this context in the future.
The includes and include_dirs arguments are deprecated because of the parameter list mismatch issue.
Fixes pypa/setuptools#3648.

I missed that this PR hadn't run CI tests successfully. The tests are failing on Windows. In 2f163270, I've marked the test as failing on Windows. Any chance you can adopt the test to also support Windows?

I was basing my assessment on this run.

@fweimer-rh, do you happen to have a version of this patch that applies to CPython's version of distutils? If not, don't worry. I was mostly wondering if RedHat's planning to patch the distutils from stdlib as well.

We are planning to do that. Considering you probably also plan to do that, maybe we can convince upstream to take the change into Pytho. 3.11.3?


Support for cdylib crates

Is it possible to get coverage report for dynamic libraries? My use case is that I'm building a sqlite extension which I compile into a shared library using:
# Cargo.toml
[lib]
crate-type = ["cdylib"]

I already have a few tests where I test the library from within sqlite by making it load the compiled artifact as an extension. I just tried running cargo llvm-cov on those tests but the resulting coverage is completely empty.

cdylib itself should be supported since cargo-llvm-cov works with PyO3 and proc macros (https://github.com/taiki-e/cargo-llvm-cov/issues/304 https://github.com/taiki-e/cargo-llvm-cov/pull/307)
If it does not work, it is generally the case that the required environment variables are not propagated properly (https://github.com/taiki-e/cargo-llvm-cov/issues/320#issuecomment-1812696139), or you are exiting in an unsupported way (https://github.com/taiki-e/cargo-llvm-cov/issues/235), etc. That said, if the problem occurs only on Windows in particular, it may be a bug on the cargo-llvm-cov side regarding Windows-specific path handling.
In any case, this issue needs a reproduction. It is always difficult to investigate a issue unless I can reproduce it on my end.

This is the smallest example I could create to reproduce the issue.
Steps:

create a new library crate;

set its Cargo.toml to:

[package]
name = "foo"
version = "0.1.0"
edition = "2021"

[lib]
crate-type = ["cdylib"]

[dependencies]
sqlite_nostd = { git = "https://github.com/vlcn-io/sqlite-rs-embedded/", rev = "7a0dd3a", features = ["loadable_extension"] }

[dev-dependencies]
miniserde = "0.1"
rusqlite = { version = "0.31", features = ["load_extension"] }

set its lib.rs to:

#![allow(clippy::missing_safety_doc)]

use core::ffi::{c_char, c_int};

use sqlite_nostd::bindings::*;
use sqlite_nostd::*;

#[no_mangle]
pub unsafe fn sqlite3_foo_init(
    db: *mut sqlite3,
    _err_msg: *mut *mut c_char,
    api: *mut api_routines,
) -> c_int {
    EXTENSION_INIT2(api);

    db.create_function_v2(
        "foo",
        0,
        SQLITE_UTF8 | SQLITE_DIRECTONLY,
        None,
        Some(foo),
        None,
        None,
        None,
    )
    .err()
    .unwrap_or(ResultCode::OK) as c_int
}

#[no_mangle]
pub unsafe extern "C" fn foo(ctx: *mut context, _: c_int, _: *mut *mut value) {
    ctx.result_text_transient("foo");
}

#[cfg(test)]
mod tests {
    use std::env;
    use std::path::PathBuf;
    use std::process::Command;

    use miniserde::json;
    use rusqlite::Connection;

    fn target_dir() -> PathBuf {
        let output = Command::new("cargo")
            .arg("metadata")
            .arg("--format-version=1")
            .output()
            .expect("Failed to execute `cargo metadata`");

        let metadata_str = std::str::from_utf8(&output.stdout).unwrap();

        let metadata = json::from_str::<json::Object>(metadata_str).unwrap();

        match metadata.get("target_directory") {
            Some(json::Value::String(target_dir)) => PathBuf::from(target_dir),
            _ => unreachable!(),
        }
    }

    fn library_name() -> String {
        format!(
            "{prefix}{crate_name}{suffix}",
            prefix = env::consts::DLL_PREFIX,
            crate_name = env!("CARGO_CRATE_NAME"),
            suffix = env::consts::DLL_SUFFIX,
        )
    }

    fn library_path() -> PathBuf {
        target_dir().join("debug").join(library_name())
    }

    fn connection() -> Connection {
        let connection = Connection::open_in_memory().unwrap();
        unsafe { connection.load_extension_enable() }.unwrap();
        unsafe { connection.load_extension(library_path(), None) }.unwrap();
        connection.load_extension_disable().unwrap();
        connection
    }

    #[test]
    fn foo() {
        let connection = connection();

        let result = connection
            .query_row("SELECT foo()", [], |row| row.get::<_, String>(0))
            .unwrap();

        assert_eq!(result, "foo");
    }
}

cargo b;

cargo llvm-cov --html;

I would expect the coverage to include both sqlite3_foo_init and foo, but they're both reported as "uncovered".

Were you able to reproduce the issue?

Thanks for the repro.

4. cargo b;

The first problems is that the libfoo.so built in this step is not instrumented. (In other words, the environment variables necessary to make cdylib instrumentable for coverage are not applied.)
The commands needed to get coverage correctly in complex cases involving multiple cargo commands are documented here and in your case would be:
source <(cargo llvm-cov show-env --export-prefix)
cargo llvm-cov clean --workspace
cargo build
cargo test
cargo llvm-cov report --html

The second problem is that your function uses #[no_mangle]. It seems that due to some kind of rustc bug, coverage of #[no_mangle] is not being measured.
Separate the main processes from the #[no_mangle] function and we can see them being executed:
 #[no_mangle]
 pub unsafe fn sqlite3_foo_init(
+    db: *mut sqlite3,
+    err_msg: *mut *mut c_char,
+    api: *mut api_routines,
+) -> c_int {
+    _sqlite3_foo_init(db, err_msg, api)
+}
+
+unsafe fn _sqlite3_foo_init(
     db: *mut sqlite3,
     _err_msg: *mut *mut c_char,

Oh sorry, I read that section of the README but didn't realize it was relevant for my case.
I just run those commands and it's now working properly, however I noticed that:

I get a warning when running cargo-llvm-cov:

$ cargo llvm-cov report --html
warning: 1 functions have mismatched data

I'm not sure what that means.

In the html report, there are several instances of Unexecuted instantiation, like the following:

Again, I'm not sure how to interpret this since foo_inner is reported as covered.
Lastly, is there a way to also get coverage if a test directly runs sqlite from the cli, like so?
use std::process::Command;

#[test]
fn test_compiled_library_from_sqlite() {
    Command::new("sqlite3")
    //  ... execute functions from the `foo` extension by loading `libfoo.so`
}

I tried doing this but the coverage is blank, which I'm assuming is due to sqlite not being compiled by cargo, even though libfoo.so is.


doc: Add CPU and heap profiling HTTP API doc

What is changed and how it works?

Issue Number: Ref #15732
What's Changed: Rendered

Add CPU and heap profiling HTTP API doc

Check List

No code

Release note
Add cpu and heap profiling HTTP API doc

/merge


[Discussion/DCR] Better management of duplicated files

Note: This focuses on the typescript samples-work-in-progress samples, but can definitely apply repo-wide.
In reviewing PRs and making my own, I noticed that there's a decent number of exact-duplicate files in each sample. A few that come to mind:

/deploymentTemplates/*
/deploymentScripts/webConfigPrep.js
.eslint.js
tsconfig.json
tslint.json

Right now, that's only a few files spread across 4 samples, but that could grow pretty quickly and easily.
Any time a change is made to one, it has to be made with all of them and that can be 1) painful and, 2) easy to miss one. The more we can avoid duplicate code, the better.
Potential Solutions
One solution would be to move the shared files into their own repo and add them in as submodules. However, I could see this being somewhat difficult to manage and unintuitive for users browsing the samples.
I toyed with the idea of using git's subtree and submodule to try and duplicate the files within the same repo, but wasn't able to find a way to do so. If somebody knows how, this might be best.
Instead, I ended up settling on using a git pre-commit hook. It's not ready for production, but the basic idea is this:
./samples/javascript_typescript/typescript-shared-files/ contains all of the shared files.

Dev makes a change to a file within the shared folder
Dev calls git commit and pre-commit hook is fired:

pre-commit:
#!/usr/bin/env bash

# Execute hooks from shared folders
echo -e "Executing custom pre-commit hooks..."
bash ./samples/javascript_typescript/typescript-shared-files/typescriptHook.sh

pre-commit fires a bash script for each language's shared samples folder, copying the changed file into each sample and adding them to the dev's commit.

typescriptHook.sh in ./samples/javascript_typescript/typescript-shared-files/
#!/usr/bin/env bash

sharedDir="$(dirname "$0")"

# Set script dir to working dir
cd $sharedDir

# Stage any changes in sharedDir
git add .

echo -e "Copying shared TypeScript files into each Typescript sample, as necessary"

# Loop through typescript samples directories
for dir in ../*/; do
    # Loop through dir for each sample
    if [ $dir != "../$(basename $sharedDir)/" ]; then
        # Copy each file in shared directory into $dir
        cp -r . $dir
        rm -f $dir/typescriptHook.sh
        # Stage the files moved for commit
        for file in $dir*; do
            git add $dir/$(basename $file)
        done
    fi
done

This approach has a flaw, too:

If a dev makes a change to say, tslint.json in an individual sample, it will get overwritten by the shared one. There's likely some way to programatically avoid this, but the real flaw is that it isn't obvious this will happen prior to commit.

For programatically avoiding this, I found it difficult to notify the user or require their input. If they run git commit from a command prompt, it works fine. If they run it from VS Code's Source Control, I couldn't find a way to force the user to either 1) see the Output window, or 2) pause the script, waiting for user input. Maybe if the pre-commit launches the script in an external shell...

The code can be enhanced as well but really, I'd just like to start a discussion on how best to avoid duplicate code between samples.
Per request of @stevengum, adding @cleemullins and @sgellock to discussion.
[enhancement]

@sgellock, @cleemullins for this repo and the JS SDK, we could auto lint devs' code using the git commit hooks...

I'm not a fan of git submodules.  I do see us duplicating a lot of things within the tree, so I'm open to a solution.

mistakenly closed the issue.

If we can't roll the common code into the sdk, maybe we need another library.  I personally prefer the duplicated code to external dependencies.  Every sample stands alone.  External code file dependencies will add a layer of confusion for beginners.

I took a quick browse of the samples-work-in-progress branch and there's really not that much that's being duplicated, especially with webConfigPrep.js not being needed. Here's all of the duplicates (some I'm not quite sure about without diff-ing):
C#_dotnetcore

properties/launchsettings.json
controllers/botcontroller.cs?
DeploymentTemplates/?
wwwroot/default.htm - except the bot name
Program.cs?

JS

deploymentTemplates/?
.eslintrc.js

TS

deploymentTemplates/?
.eslintrc.js
tsconfig.json
tslint.json

Is it worth coding some pre-commit hooks to manage this, or is that just adding more complexity? If we're doing pre-commit linting, I could see adding this to that.

I have no plans to add complexity to address this at this time. Thanks for cataloging it though.
Get Outlook for iOShttps://aka.ms/o0ukef

From: Michael Richardson<EMAIL_ADDRESS>Sent: Tuesday, April 23, 2019 11:21:10 AM
To: Microsoft/BotBuilder-Samples
Cc: Scott Gellock; State change
Subject: Re: [Microsoft/BotBuilder-Samples] [Discussion/DCR] Better management of duplicated files (#1396)
I took a quick browse of the samples-work-in-progress branch and there's really not that much that's being duplicated, especially with webConfigPrep.js not being needed. Here's all of the duplicates (some I'm not quite sure about without diff-ing):
C#_dotnetcore

properties/launchsettings.json
controllers/botcontroller.cs?
DeploymentTemplates/?
wwwroot/default.htm - except the bot name
Program.cs?

JS

deploymentTemplates/?
.eslintrc.js

TS

deploymentTemplates/?
.eslintrc.js
tsconfig.json
tslint.json

Is it worth coding some pre-commit hooks to manage this, or is that just adding more complexity? If we're doing pre-commit linting, I could see adding this to that.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2FBotBuilder-Samples%2Fissues%2F1396%23issuecomment-485849563&data=02|01|scott.gellock%40microsoft.com|6ce2b6c5e01a48aa27a008d6c7ff50bd|72f988bf86f141af91ab2d7cd011db47|1|0|636916296715632293&sdata=gj2qroUI3Cwy%2BFxbhNYks8pNebHdlPXDXFxP0jI1CLM%3D&reserved=0, or mute the threadhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAAFTC5Y3ORGYZBCM7YSZTALPR4SONANCNFSM4HFBUKUA&data=02|01|scott.gellock%40microsoft.com|6ce2b6c5e01a48aa27a008d6c7ff50bd|72f988bf86f141af91ab2d7cd011db47|1|0|636916296715642288&sdata=UlnUDrp57%2Bi9L%2FvueDPQe2llpgb2BIyyp0329JFSglk%3D&reserved=0.


"Drives" disappear from Sidebar and Quick Access

Description
Some time after launching, seemingly randomly, the "Drives" section of the sidebar and Quick Look area display nothing. (Yes, the drives are actually still mounted.) Opening and closing window doesn't help, but ending the task and relaunching the app does cause drives to reappear.
Steps To Reproduce
Cannot determine steps to reliably reproduce. It happens consistently after some amount of use, but unsure what exactly triggers the bug. Ending Files tasks and relaunching the app temporarily resolves the issue, but it will start misbehaving again.
Requirements

e.g. Fix crash that occurs when...
System drives should always display correctly.

Files Version
<IP_ADDRESS>
Windows Version
10.0.22621.2134
Log File
debug.log

Thanks for the report, I've added this to the project board.

@joe12south does this issue also occur in v2.5.25?

@joe12south


0.12.x Release

Latests releases support extra DNS configuration but isn't the case in 0.12x.
Release 0.12.6 will fix this issue. Thanks!

That's done so thanks @davidmccormick! 10/10


Links tagged to specific versions are broken

Post https://github.com/bank-vaults/bank-vaults.dev/pull/118 the links to files are broken again, due to specific version tagging.
https://bank-vaults.dev/docs/installing/custom-namespace/
v1.20.0 is only available for vault-helm-chart but the tagged files are available for vault-operator's v1.21.0.
Possible fix: Tag specific versions for specific apps, since our specific apps aren't all releasing the same version number at the same time.

Related to https://github.com/bank-vaults/bank-vaults.dev/pull/125


History effect

Add an effect and subscription to manipulate and receive changes from the browser history api

Is this functionality better suited for a Hyperapp router?

I'm using this functionality in a search UI. Whenever results are received I push the state using the HistoryPush effect, this stores the search results, pagination, and filter data in the history. Whenever the user navigates backwards in history the subscription effect is executed and the previous results are shown instantaneously (no need to query the server again). Works like a charm.
I'm not sure how, but I suppose this subscription could be used in a router component

Looks good, my last question is should we also include support for history.replaceState? 🤔

Looks good, my last question is should we also include support for history.replaceState? 🤔

I think we should. I can imagine a use case; whenever we initialise an app the last effect init() dispatches is ReplaceState and we replace an uninitialised app state with an initialised one.
I've had the problem of receiving null from the popstate event. Setting the initial state should solve that.

Released in the latest alpha.


Build failure: bsddb3-6.2.9

Steps To Reproduce
Steps to reproduce the behavior:
nixos-rebuild switch --upgrade
Build log
building the system configuration...
error:
       … while calling the 'head' builtin

         at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/attrsets.nix:1575:11:

         1574|         || pred here (elemAt values 1) (head values) then
         1575|           head values
             |           ^
         1576|         else

       … while evaluating the attribute 'value'

         at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:809:9:

          808|     in warnDeprecation opt //
          809|       { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          810|         inherit (res.defsFinal') highestPrio;

       (stack trace truncated; use '--show-trace' to show the full trace)

       error: bsddb3-6.2.9 not supported for interpreter python3.11

Notify maintainers
tbh I have no idea what's the issue here so not sure who to tag.
This might be a nixos simple mailserver issue as I have just found an open issue there that seems to be related. The issue was not there when I looked last week, so this issue ticket might be redundant if it is a nixos mailserver issue
https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/issues/293
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
 - system: `"aarch64-linux"`
 - host os: `Linux 6.1.69, NixOS, 24.11 (Vicuna), 24.11pre640871.c00d587b1a1a`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.2`
 - channels(root): `"nixos"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Thisnis fixed with #321940 being merged into master, however if you use the 24.05 branch, that hasn't been backported. You should upgrade your nixpkgs-unstable branch and rebuild to fix this.


Access violation when closing panel

It only happens in some specific panel configurations.
I can consistently trigger it from the default configuration by deleting the following panels: Targets, Scheduler, Disasm, Output/Watch/Memory and then finally trying to delete the main panel:

I'm attaching a test configuration (Added an extension since github requires it before it lets me upload the file)
default.raddbg_user.txt

Fixed in d382053500b28785df55c67527253a20373a1692.


Update README to give full instructions for running

The README now has a more expansive instructions for running the server and client.
I'm not sure how to explain the green/blue colors of the latency plot.

Thanks. I may do some tweaks and take a matching Windows picture.
The blue latency plot is the time from the client to the server (one direction). The green latency plot is the time from the server to the client (one direction). The black latency plot is the total time from the client to the server and back from the server to the client (both directions).

For clarity: Are you going to take the Windows screen shot and make further tweaks to the README? Thanks.

Thanks!


[FLINK-17518] [e2e] Add remote module E2E

This PR adds an E2E test that consists of a complete YAML-based remote module, with:

YAML auto-routable Kafka ingress
YAML generic Kafka egress
Remote functions using the Python SDK

Since the coverage completely subsumes the routable Kafka E2E, the routable Kafka E2E test is removed in favor of this new E2E.
Please see the class-level docs of RemoteModuleE2E for details of the test scenario.
Brief change log

a8b4b7b Preliminary change to the Python SDK build script, to allow it to be run with Maven
470dc52 Make the -Prun-e2e-tests build profile also build the Python SDK. This is required because the remote module E2E test requires the Python SDK wheels built.
ce76abd The test scenario of the new RemoteModuleE2E will result in output records to Kafka  being written with indeterministic order. This commit adds a matcher to the KafkaIOVerifier that matches the consumed outputs with any order.
e535d29 The Python remote functions
1899da4 The actual E2E test implementation
70933fa Removes the routable Kafka E2E

Verifying
Travis should pass, or locally run mvn clean install -Prun-e2e-tests

Thanks for the review @igalshilman!
Changing the script header to #!bin/bash to run it with standard bash shell makes the build script work in the CI as well.
Merging this now ...


Reverse Nodes in k-Groups using CPP

Leetcode problem reverse nodes in k groups in linked list code in C++.

Sure


Explaining lack of tests for edpm_nova_libvirt role

Exceedingly minor change, but it should probably get in for future reference.

recheck

recheck

depending on how things play out that role will probably get deleted sooner rather then later but it does not hurt to document this for now while it exits

recheck


OSX plugin: iTunes status/nowplaying

Inspired by http://hints.macworld.com/article.php?story=20011108211802830, I added a simple status option to the itunes command of the OSX plugin.
Running itunes status or itunes nowplaying will display iTunes status, and if it's currently playing something, the artist and track name.
$ itunes nowplaying                                                                                (master)
iTunes is currently playing
Current track: Cincinnati Pops Orchestra & Erich Kunzel / The Raiders' March from Raiders of the Lost Ark

I'm not sure when it happened, but it looks like status got added to the master branch somewhere along the way.
This can probably be closed.

Since status already exists, I'll close this request.


resolved clarify f_x

[x] Closes #1677

[x] I am familiar with the contributing guidelines

[x] Maintainer: Appropriate GitHub Labels (including remote-data) and Milestone are assigned to the Pull Request and linked Issue.

Thanks @Lakshyadevelops please add your GH name as a contributor here: https://github.com/pvlib/pvlib-python/blob/main/docs/sphinx/source/whatsnew/v0.9.6.rst

Superseded by #1727


Feature request: class attribute on fallback image in picture tag

Hello,
I would like to use custom CSS classes on the fallback image in the picture tag. As far I see it in the code, it's currently not possible to do this. I imagine something like:
<v-lazy-image :src="require('~/assets/images/logos/aws.png')" img-class="img-fluid d-block" use-picture>
    <source :srcset="require('~/assets/images/logos/aws.png?webp')" type="image/webp" />
    <source :srcset="require('~/assets/images/logos/aws.png')" type="image/png" />
</v-lazy-image>

Which will be rendered as:
<picture>
    <source srcset="/_nuxt/assets/images/logos/aws.webp" type="image/webp">
    <source srcset="/_nuxt/assets/images/logos/aws.png" type="image/png">
    <img src="/_nuxt/assets/images/logos/aws.png" class="img-fluid d-block v-lazy-image v-lazy-image-loaded">
</picture>

Would this be possible? Does the solution make sense or will be there any problems in the future?
Thank you in advance!

Hey ! Got anything on this ?

Hey ! Got anything on this ?

Yeah... That's just how Vue 2 works, but maybe can be done via a prop. If you want you can go for a PR :)

Actually, this is fixed and should work in latest version > 2.1.0


Replace Builder

The current mesh builder of the plugin, based on surface tool, is adequate. But it add extra vertices to the mesh and replace it is a good idea.

This cannot be done.


ngf-pattern="'application/pdf'" not working on IE 11

Hi
Requirement to stop any files other than PDF. The code works fine in chrome but i get pattern error in IE11 (edge mode).
I am stuck and everything works if i remove the ngf-pattern from html view. Can anyone advise if i need to so something special for IE 11 ?

What's the mime type of the file in IE11?

Hi Danial
Can you please advise how to fine the mime type. i havnt changed any thing so it must be default.

Hello
The same works after i change the ngf-pattern to ngf-pattern="'.pdf'"

You can print file.type to see its type. Probably IE11 does not have a type for pdf files so ".pdf" seems like a good workaround.


Code sample on UWP Client

Would it be possible to provide a code sample on UWP client to demonstrate how the adaptive card be rendered? Thanks.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8c035094-2d63-5a8c-9dcc-243bffc93619
Version Independent ID: fa889e53-904a-0680-6308-d3162ea22ef5
Content: UWP SDK - Adaptive Cards
Content Source: AdaptiveCards/sdk/rendering-cards/uwp/getting-started.md
Product: adaptive-cards
GitHub Login: @matthidinger
Microsoft Alias: mahiding

Hi @SigmaSolutions please see here for a C# code sample: https://docs.microsoft.com/en-us/adaptive-cards/sdk/rendering-cards/uwp/render-a-card
Let us know if that doesn't answer you question


s3.to_parquet with concurrent_partitioning=True issue

Describe the bug
the first run of the to_parquet command
to_parquet(
    df=df,
    path=f's3://{s3_bucket_forecast_name}/forecast_balance_processed/',
    index=False,
    dataset=True,
    filename_prefix=f'forecast_generated_',
    partition_cols=['date','user_id'],
    concurrent_partitioning=True,
    database=<example_db>,
    table=<example_table>,
    mode='append'
)

has the following error
Traceback (most recent call last):
  File "~\Anaconda3\envs\custom_lib\lib\site-packages\pandas\core\indexes\base.py", line 3080, in get_loc
    return self._engine.get_loc(casted_key)
  File "pandas\_libs\index.pyx", line 70, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\_libs\index.pyx", line 101, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\_libs\hashtable_class_helper.pxi", line 1625, in pandas._libs.hashtable.Int64HashTable.get_item
  File "pandas\_libs\hashtable_class_helper.pxi", line 1632, in pandas._libs.hashtable.Int64HashTable.get_item
KeyError: 0

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "~\Anaconda3\envs\custom_lib\lib\site-packages\awswrangler\_config.py", line 417, in wrapper
    return function(**args)
  File "~\Anaconda3\envs\custom_lib\lib\site-packages\awswrangler\s3\_write_parquet.py", line 548, in to_parquet
    paths, partitions_values = _to_dataset(
  File "~\Anaconda3\envs\custom_lib\lib\site-packages\awswrangler\s3\_write_dataset.py", line 162, in _to_dataset
    paths, partitions_values = _to_partitions(
  File "~\Anaconda3\envs\custom_lib\lib\site-packages\awswrangler\s3\_write_dataset.py", line 68, in _to_partitions
    paths: List[str] = proxy.close()  # blocking
  File "~\Anaconda3\envs\custom_lib\lib\site-packages\awswrangler\s3\_write_concurrent.py", line 54, in close
    self._results += future.result()
  File "~\Anaconda3\envs\custom_lib\lib\concurrent\futures\_base.py", line 437, in result
    return self.__get_result()
  File "~\Anaconda3\envs\custom_lib\lib\concurrent\futures\_base.py", line 389, in __get_result
    raise self._exception
  File "~\Anaconda3\envs\custom_lib\lib\concurrent\futures\thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "~\Anaconda3\envs\custom_lib\lib\site-packages\awswrangler\s3\_write_concurrent.py", line 33, in _caller
    return func(**func_kwargs)
  File "~\Anaconda3\envs\custom_lib\lib\site-packages\awswrangler\s3\_write_parquet.py", line 146, in _to_parquet
    table: pa.Table = pyarrow.Table.from_pandas(df=df, schema=schema, nthreads=cpus, preserve_index=index, safe=True)
  File "pyarrow\table.pxi", line 1553, in pyarrow.lib.Table.from_pandas
  File "~\Anaconda3\envs\custom_lib\lib\site-packages\pyarrow\pandas_compat.py", line 607, in dataframe_to_arrays
    arrays[i] = maybe_fut.result()
  File "~\Anaconda3\envs\custom_lib\lib\concurrent\futures\_base.py", line 437, in result
    return self.__get_result()
  File "~\Anaconda3\envs\custom_lib\lib\concurrent\futures\_base.py", line 389, in __get_result
    raise self._exception
  File "~\Anaconda3\envs\custom_lib\lib\concurrent\futures\thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "~\Anaconda3\envs\custom_lib\lib\site-packages\pyarrow\pandas_compat.py", line 575, in convert_column
    result = pa.array(col, type=type_, from_pandas=True, safe=safe)
  File "pyarrow\array.pxi", line 306, in pyarrow.lib.array
  File "pyarrow\array.pxi", line 39, in pyarrow.lib._sequence_to_array
  File "pyarrow\error.pxi", line 141, in pyarrow.lib.pyarrow_internal_check_status
  File "~\Anaconda3\envs\custom_lib\lib\site-packages\pandas\core\series.py", line 853, in __getitem__
    return self._get_value(key)
  File "~\Anaconda3\envs\custom_lib\lib\site-packages\pandas\core\series.py", line 961, in _get_value
    loc = self.index.get_loc(label)
  File "~\Anaconda3\envs\custom_lib\lib\site-packages\pandas\core\indexes\base.py", line 3082, in get_loc
    raise KeyError(key) from err
KeyError: 0

no problems if we set the concurrent_partitioning=False or from the second run of the very same command.
Environment
we are using awswrangler==2.10.0 and python==3.8
To Reproduce

create a Glue partitioned table called <example_table> and having parquet as data format.
run the following minimal python script:

from datetime import datetime
from awswrangler.s3 import to_parquet
from pandas import read_json
s3_bucket_forecast_name = <bucket_name>

df = read_json('{"user_id":{"0":3050,"1":3050,"2":3050,"3":3050,"4":3050},"date":{"0":902707200000,"1":902793600000,"2":902880000000,"3":902966400000,"4":903052800000},"p10":{"0":56382.7541732031,"1":36138.2557973342,"2":44653.3919849297,"3":44118.3362647918,"4":45940.0631903547},"p50":{"0":79033.6523110692,"1":65850.661638426,"2":79387.5563623706,"3":80947.9655845604,"4":84234.2387350616},"p90":{"0":101684.5504489353,"1":95563.0674795178,"2":114121.7207398115,"3":117777.594904329,"4":122528.4142797684}}')
df['forecast_timestamp'] = datetime.now()

to_parquet(
    df=df,
    path=f's3://{s3_bucket_forecast_name}/forecast_balance_processed/',
    index=False,
    dataset=True,
    filename_prefix=f'forecast_generated_',
    partition_cols=['date','user_id'],
    concurrent_partitioning=True,
    database=<example_db>,
    table=<example_table>,
    mode='append'
)

Thanks for raising this @luca-ferreri, your issue is related to this one. In short, it's a bug with one of our underlying dependencies: pyarrow (see here for more details). We have asked for a fix but still awaiting a response (feel free to +1).
The current workaround is to add a cheap import of pyarrow before running your code:
from datetime import datetime
from awswrangler.s3 import to_parquet
from pandas import read_json, period_range, DataFrame
from pyarrow import table

table(DataFrame({'a': period_range("2012", freq="Y", periods=3)}))

s3_bucket_forecast_name = "my_bucket"
database = "my_db"
table = "my_tbl"

df = read_json('{"user_id":{"0":3050,"1":3050,"2":3050,"3":3050,"4":3050},"date":{"0":902707200000,"1":902793600000,"2":902880000000,"3":902966400000,"4":903052800000},"p10":{"0":56382.7541732031,"1":36138.2557973342,"2":44653.3919849297,"3":44118.3362647918,"4":45940.0631903547},"p50":{"0":79033.6523110692,"1":65850.661638426,"2":79387.5563623706,"3":80947.9655845604,"4":84234.2387350616},"p90":{"0":101684.5504489353,"1":95563.0674795178,"2":114121.7207398115,"3":117777.594904329,"4":122528.4142797684}}')
df['forecast_timestamp'] = datetime.now()

to_parquet(
    df=df,
    path=f's3://{s3_bucket_forecast_name}/forecast_balance_processed/',
    index=False,
    dataset=True,
    filename_prefix='forecast_generated_',
    partition_cols=['date', 'user_id'],
    concurrent_partitioning=True,
    database=database,
    table=table,
    mode='append',
)

Specifically this line:
table(DataFrame({'a': period_range("2012", freq="Y", periods=3)}))

will force an import of data types in the PyArrow library and the rest should work normally.

thank you @jaidisido, the workaround works in my case.


Allow stages to opt out of rbenv tasks

I have a stage which runs against an environment that will not have rbenv installed. Currently, the capistrano-rbenv tasks are being applied to all stages via Capistrano::DSL.stages.
In an attempt to get around this, I created a special role that is only used on my non-rbenv stage, and set :rbenv_roles to exclude it. However, because of capistrano/capistrano#740, even when no host matches, the blocks passed to on in the rbenv Cap tasks still execute, causing my entire Cap run to fail when exit 1 happens.
While the proper fix, IMO, is for the issue in Capistrano to get fixed, capistrano-rbenv could provide a workaround by allowing stages to opt out of having the rbenv tasks added to its run.
Because capistrano-rbenv is not really verifying that rbenv is installed, and is simply checking for the existence of :rbenv_ruby_dir, it's possible to trick the task into thinking it's installed by setting :rbenv_ruby_dir to something like /. This is a pretty bad hack, and quite unintuitive, so I still think a clearer mechanism to opt out is warranted.
Thanks for your time!

I've a somewhat related problem, that I think should be taken into account if someone decide to work on this.
I'm using capistrano-db-tasks, which uses run_locally to grab some configuration from rails. I don't have the same setup locally (~/.rbenv) than on my remote machine (/opt/rbenv/...), which makes the task fails.

This ticket has a workaround, so I'm going to close.
@elthariel: your issue is different, so if you would still like it addressed, please open a new ticket.
Thanks!


discussion: overwrite enr options when enr option does not exist on init

i noticed that if i try to do ./bin/lodestar init --enr.ip <IP_ADDRESS> and i check the enr at enr-viewer.com, it does not show the ip.  should we allow the user to be able to make new enr entries via the enr options overwrites whenever those entries aren't already in the enr?  seems like it could be useful, but i'm also not sure what the original rationale was for not allowing this, so i'm open to hearing about that as well.

oh wait, nevermind, this does work when you pass it into beacon instead of init.  is this something we should also allow in init?  currently, if you do ./binlodestar init --help the enr overwrites show up as options.  either we should remove these enr overwrites for init or add support for them, i suppose.

this might also be part of a larger discussion about whether or not we want to allow the user to overwrite an existing beacon config (i.e. one that has already been initialized).  when i pass any other cli option to init when we already have an existing testnet folder and beacon config, it doesn't overwrite the entry.  maybe this is something we need to talk about supporting in general?  they can always update the file by hand, sure, but seems like it might be potentially convenient to be able to update it via cli regardless of whether there's an existing beacon config or not.

Those are good points, but makes me think: is the init command necessary? Do other clients have a similar command?

fwiw, it doesn't look like lighthouse does it (source: https://lighthouse-book.sigmaprime.io/testnet-validator.html#step-5-start-lighthouse)
Maybe it's good to keep init just if someone wants to have a fresh environment set up that they then want to configure themselves before actually running beacon.  If we were to do away with init, then useres would have to run the beacon node first if they wanted to tweak the config before running (without actually setting up the . folder and beacon.config and all that by hand), which doesn't sound ideal for that scenario.  However, I think that when someone runs beacon it shouldn't be required to have to run init first.
tl;dr it seems to be like init should be optional, but not taken away.

Closing since init command usage has been deprecated


In case of nested struct, if validation failed for inner field how would I get the json tag name for that field

Package version eg. v8, v9:
v9
Issue, Question or Enhancement:
Question :
I have struct Config which consist of Field SliceOfAnotherStruct which contained the slice of pointer to
AnotherStruct.
Now if validation failed for a field in AnotherStruct then validation error return me field name as Config.AnotherStruct[0].Bank
Here how could I get the json tag for field Bank in AnotherStruct
Code sample, to showcase or reproduce:
type Config struct {
	SliceOfAnotherStruct         []*AnotherStruct        `bson:"esignType" json:"esignType" validate:"required,dive,required"`
}

type AnotherStruct struct {
	Name                   string        `bson:"name" json:"name" validate:"required"`
	Cost                   string        `bson:"cost" json:"cost" validate:"required"`
	Bank    string        `bson:"bank" json:"bank" validate:"required"`
	IFSC     string        `bson:"ifsc" json:"ifsc" validate:"required"`
}

The documentation for this was recently updated in this PR
https://godoc.org/gopkg.in/go-playground/validator.v9#Validate.RegisterTagNameFunc
after registering such a function then the json name will be used...it can also be customized any way you wish for BSON name, really anything.
let me know if that helps?


Compute bootstrap only for some metrics

It should be possible to specify in the config file that bootstrap resampling (especially the paired one) is to be computed only for some metrics. The default should be to compute it only for BLEU case-insensitive.
This should make the importing much faster (and the database smaller).
Even better would to let the bootstrap resampling (for metrics and systems for which it was not precomputed so far) be computed lazily: on user request via the web interface.

Closed by #51


refactor: move classes to a more sensible package hierarchy

Checklist

[x] Tick to sign-off your agreement to the Developer Certificate of Origin (DCO) 1.1
[x] Added tests for code changes or test/build only changes
[ ] Updated the change log file (CHANGES.md|CHANGELOG.md) or test/build only changes
[x] Completed the PR template below:

Description
Fixes #96
Approach
Moves/renames:
src/main/java/com/ibm/cloud/cloudant/kafka/
{connect => caching}/CachedClientManager.java
{schema => mappers}/ConnectRecordMapper.java
{schema => mappers}/DocumentToSourceRecord.java
{connect => tasks}/ConnectorConfig.java
{connect => tasks}/SinkConnectorConfig.java
{connect => tasks}/SinkTask.java
{connect => tasks}/SourceChangesConnectorConfig.java
{connect => tasks}/SourceChangesTask.java
{connect => validators}/ConfigValidator.java
{connect => validators}/ListRecommender.java
{connect => validators}/UrlValidator.java

src/test/java/com/ibm/cloud/cloudant/kafka/
{connect => caching}/ClientManagerUtils.java
{schema => mappers}/ConnectRecordMapperTests.java
{schema => mappers}/DocumentHelpers.java
{schema => mappers}/DocumentToSourceRecordTest.java
{connect => tasks}/SinkErrorTest.java
{connect => tasks}/SinkTaskTest.java
{connect => tasks}/SourceChangesAndCloudantSinkTest.java
{connect => tasks}/SourceChangesTaskTest.java
{connect => tasks}/TombstoneTest.java
{connect => }/utils/CloudantDbUtils.java
{connect => }/utils/ConnectorUtils.java
{connect => }/utils/ServiceCallUtils.java

Schema & API Changes

"No change"

Security and Privacy

"No change"

Testing

N/A build or packaging only changes

Monitoring and Logging

"No change"

connect/transforms -> transforms (having seen all the other classes tidied up this extra package level seems unnecessary now)

I have not removed the connect package yet, because that structure resembles the org.apache.kafka.connect.transforms. If that does not have any benefit, I can let it go and have just transforms without connect. Do you have anything in mind that is besides to keep connect.transforms?

If that does not have any benefit, I can let it go and have just transforms without connect. Do you have anything in mind that is besides to keep connect.transforms?

I think we either have the connect package as a "container" for all the other packages or we don't have it at all. Since all the code here is related to the Kafka connect API. I don't think we need an extra package level to indicate that really and AFAIK there is no good reason to have connect.transforms as opposed to just transforms. @tomblench any concerns?

If that does not have any benefit, I can let it go and have just transforms without connect. Do you have anything in mind that is besides to keep connect.transforms?

I think we either have the connect package as a "container" for all the other packages or we don't have it at all since all the code here is related to the Kafka connect API. I don't think we need an extra package level to indicate that really and AFAIK there is no good reason to have connect.transforms as opposed to just transforms. @tomblench any concerns?

Agree that connect.transforms should become transforms and then I think we're all good.


Sidekick Bookmarklet RC

This PR has been auto-generated from https://github.com/adobe/helix-sidekick-extension/.

Changes in this release:

https://github.com/adobe/helix-sidekick-extension/pull/558
https://github.com/adobe/helix-sidekick-extension/pull/555


v1.4 backports 2019-08-15

#8901 -- Dockerfiles: update to golang 1.12.8 (@ianvernon)

Once this PR is merged, you can update the PR labels via:
$ for pr in 8901; do contrib/backporting/set-labels.py $pr done 1.4; done

This change is

test-me-please

never-tell-me-the-odds

Bad gateway reaching quay.io: https://jenkins.cilium.io/job/Cilium-PR-Ginkgo-Tests-Validated/14405/flowGraphTable/

never-tell-me-the-odds

never-tell-me-the-odds

K8s 1.8 health status between nodes check failed: https://jenkins.cilium.io/job/Cilium-PR-Ginkgo-Tests-Validated/14422/testReport/junit/Suite-k8s-1/8/K8sHealthTest_checks_cilium_health_status_between_nodes/

test-me-please

test-me-please

K8s tests failed due to being unable to install kubeadm? : https://jenkins.cilium.io/job/Cilium-PR-Ginkgo-Tests-K8s/2382/
18:52:42      k8s2-1.13: Fetched 1,120 kB in 14s (82.3 kB/s)
18:52:42      k8s2-1.13: Reading package lists...
18:52:43      k8s2-1.13: Reading package lists...
18:52:43      k8s2-1.13: Building dependency tree...
18:52:43      k8s2-1.13: Reading state information...
18:52:44      k8s2-1.13: No apt package "kubeadm", but there is a snap with that name.
18:52:44      k8s2-1.13: Try "snap install kubeadm"
18:52:44      k8s2-1.13: No apt package "kubectl", but there is a snap with that name.
18:52:44      k8s2-1.13: Try "snap install kubectl"
18:52:44      k8s2-1.13: No apt package "kubelet", but there is a snap with that name.
18:52:44      k8s2-1.13: Try "snap install kubelet"
18:52:44      k8s2-1.13: E
18:52:44      k8s2-1.13: :
18:52:44      k8s2-1.13: Unable to locate package kubernetes-cni
18:52:44      k8s2-1.13: E
18:52:44      k8s2-1.13: :
18:52:44      k8s2-1.13: Unable to locate package kubelet
18:52:44      k8s2-1.13: E
18:52:44      k8s2-1.13: :
18:52:44      k8s2-1.13: Unable to locate package kubeadm
18:52:44      k8s2-1.13: E
18:52:44      k8s2-1.13: :
18:52:44      k8s2-1.13: Unable to locate package kubectl
18:52:44  The SSH command responded with a non-zero exit status. Vagrant
18:52:44  assumes that this means the command failed. The output for this command
18:52:44  should be in the log above. Please read the output to determine what
18:52:44  went wrong.

test-missed-k8s


My Allowance Popup small UI issues

The description of the inputfields are not aligned properly:
bad:

good:

another thing is, the inputfield should be everywhere clickable:

As soon as the allowance popup is visible, there is a 0 in the inputfield which is not an placeholder. This should be also changed to an placeholder.

I hope this is ok

Actually there shouldn't be 0. We have to elaborate on this. usually you go to allowance modal through offer modal. The allowance value is actually the value taken from the offer modal for a given token.

at oasisdex.com we still don`t have the whole inputfield clickable.

same should be done with the transfer widget:

fixed by PR: https://github.com/OasisDEX/oasis/pull/361


Option to use \copy instead of COPY FROM

This way one utilise data that exists on the client machine instead.

The runtime arguments allow for the source files to be on a local or remote machine; and Postgres to be local or remote.
Have a look at the required arguments: https://github.com/minus34/gnaf-loader#required-arguments


Added Forager

Skill - Forager
Recover 20% HP each turn if on a Plain, Forest or Mountain.
Technically add an unnecessary call to gBmMapTerrain since that information is also accessed in MakeTerrainHealTargetList, but I belive that maintaining consistent location for new skill is more important than such minuscule optimisation

reviewed with comments in file

Are you referring to the added comment in the file ? If so, I will get them out. I added them out of a desire to not simply drop the id number without precising wich id corresponded to wich tile

I mean you can directly enable your skill rather than comment it out in skills.enum.txt. Directly give it a definition, then kernel may automatically give it a enum.
~//~ SID_Forager

especially once we pass the 255 skill treshold

That's doesn't matter, #if defined(SID_Forager) && (SID_Forager < MAX_SKILL_NUM) may handle on overflow issue to directly not compile them.

This PR will be merged and solved the issue by myself, next time mind the code style

https://github.com/MokhaLeee/fe8u-cskillsys-kernel/commit/75b07bf81ffbcc48b362cfd9d3a6bae2f9247fae


ArmnnConverter Usage error.

Hello
I am tring  converted tf model to armnn format model.
My compiler environment is ubuntu16.04.
My ARM device is Raspberry Pi 4 Model B.
./ArmnnConverter -f tflite-binary -m converted_model-cnn.tflite  -i input_x -s 1 150 40 1 -o labels_softmax -p test.armnn
Error: Failed to parse operator #0 within subgraph #0 error: Target 'shape' input is not a 1D tensor:  at function ParseReshape [/home/liyanan/armnn-pi/armnn/src/armnnTfLiteParser/TfLiteParser.cpp:1984]
Fatal: Failed to load model from file: Buffer #23 has 0 bytes. For tensor: [1,150,40,1] expecting: 24000 bytes and 6000 elements.  at function CreateConstTensor [/home/liyanan/armnn-pi/armnn/src/armnnTfLiteParser/TfLiteParser.cpp:3099]
Cross-compiling Arm NN for the Raspberry Pi and TensorFlow
mkdir armnn-pi && cd armnn-pi
export BASEDIR=pwd
Download the Compute Library, Boost, Protobuf, TensorFlow, ONNX, FlatBuffer, and Arm NN git repositories and source bundles. To download the repositories and bundles, enter the following commands:
git clone https://github.com/Arm-software/ComputeLibrary.git
git clone https://github.com/Arm-software/armnn
wget https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_64_0.tar.bz2
tar xf boost_1_64_0.tar.bz2
git clone -b v3.5.0 https://github.com/google/protobuf.git
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow/
git checkout 590d6eef7e91a6a7392c8ffffb7b58f2e0c8bc6b
git clone https://github.com/onnx/onnx.git
cd onnx
git fetch https://github.com/onnx/onnx.git f612532843bd8e24efeab2815e45b436479cc9ab && git checkout FETCH_HEAD
wget -O flatbuffers-1.10.0.tar.gz https://github.com/google/flatbuffers/archive/v1.10.0.tar.gz
tar xf flatbuffers-1.10.0.tar.gz
cd $BASEDIR/ComputeLibrary
scons extra_cxx_flags="-fPIC -std=c++11" benchmark_tests=0 validation_tests=0  Werror=0 debug=0 asserts=0 neon=1 opencl=1 os=linux arch=armv7a examples=1 embed_kernels=1
cd $BASEDIR/boost_1_64_0/tools/build
./bootstrap.sh
Go to the $BASEDIR/boost_1_64_0/ directory and open the project-config.jam file in a text editor. In the GCC Configuration section, modif the following line:
using gcc : arm : arm-linux-gnueabihf-g++ ;
b2 --build-dir=$BASEDIR/boost_1_64_0/build toolset=gcc-arm link=static cxxflags=-fPIC --with-filesystem --with-test --with-log --with-program_options install --prefix=$BASEDIR/boost
cd $BASEDIR/protobuf
git submodule update --init --recursive
./autogen.sh
./configure --prefix=$BASEDIR/protobuf-host
make
make install
make clean
./configure --prefix=$BASEDIR/protobuf-arm --host=arm-linux CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --with-protoc=$BASEDIR/protobuf-host/bin/protoc
make
make install
cd $BASEDIR/tensorflow
../armnn/scripts/generate_tensorflow_protobuf.sh ../tensorflow-protobuf ../protobuf-host
cd $BASEDIR/onnx
export LD_LIBRARY_PATH=$BASEDIR/protobuf-host/lib:$LD_LIBRARY_PATH
$BASEDIR/protobuf-host/bin/protoc onnx/onnx.proto --proto_path=. --proto_path=$BASEDIR/protobuf-host/include --cpp_out=$BASEDIR/onnx
cd flatbuffers-1.10.0
rm -f CMakeCache.txt
rm -rf build
mkdir build
cd build
cmake ..    We added a patch just 2 weeks ago that should solve your problem.
Let me know if it worked
Jan

OK!  I will tring it again.

 We added a patch just 2 weeks ago that should solve your problem.
Let me know if it worked
Jan

Hello
I use armnn master branch. build armnn error.
build armnn command;
cmake .. -DCMAKE_LINKER=arm-linux-gnueabihf-ld -DCMAKE_C_COMPILER=arm-linux-gnueabihf-gcc -DCMAKE_CXX_COMPILER=arm-linux-gnueabihf-g++ -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-mfpu=neon -DARMCOMPUTE_ROOT=$BASEDIR/ComputeLibrary -DARMCOMPUTE_BUILD_DIR=$BASEDIR/ComputeLibrary/build -DBOOST_ROOT=$BASEDIR/boost -DTF_GENERATED_SOURCES=$BASEDIR/tensorflow-protobuf -DBUILD_TF_PARSER=1  -DBUILD_TF_LITE_PARSER=1 -DTF_LITE_GENERATED_PATH=$BASEDIR/tensorflow/tensorflow/lite/schema -DFLATBUFFERS_ROOT=$BASEDIR/flatbuffers-arm32 -DFLATBUFFERS_LIBRARY=$BASEDIR/flatbuffers-arm32/lib/libflatbuffers.a -DFLATC_DIR=$BASEDIR/flatbuffers/build -DPROTOBUF_ROOT=$BASEDIR/protobuf-arm -DPROTOBUF_LIBRARY_DEBUG=$BASEDIR/protobuf-arm/lib/libprotobuf.so -DPROTOBUF_LIBRARY_RELEASE=$BASEDIR/protobuf-arm/lib/libprotobuf.so -DPROTOBUF_INCLUDE_DIRS=$BASEDIR/protobuf-arm/include -DBUILD_TESTS=1 -DARMCOMPUTENEON=1 -DARMCOMPUTECL=1 -DARMNNREF=1 -DBUILD_ARMNN_SERIALIZER=1 -DBUILD_ARMNN_QUANTIZER=1 -DFLATC=$BASEDIR/flatbuffers/build/flatc
In file included from /home/liyanan/armnn-pi-last/armnn/src/backends/neon/NeonInterceptorScheduler.cpp:6:
/home/liyanan/armnn-pi-last/armnn/src/backends/neon/NeonInterceptorScheduler.hpp:38:41: error: ‘InputTensorMap’ in namespace ‘arm_compute’ does not name a type
const arm_compute::InputTensorMap &inputs,
^~~~~~~~~~~~~~
/home/liyanan/armnn-pi-last/armnn/src/backends/neon/NeonInterceptorScheduler.hpp:39:41: error: ‘OutputTensorMap’ in namespace ‘arm_compute’ does not name a type
const arm_compute::OutputTensorMap &outputs ) override;
^~~~~~~~~~~~~~~
/home/liyanan/armnn-pi-last/armnn/src/backends/neon/NeonInterceptorScheduler.hpp:36:10: error: ‘void armnn::NeonInterceptorScheduler::schedule_op(arm_compute::ICPPKernel*, const arm_compute::IScheduler::Hints&, const int&, const int&)’ marked ‘override’, but does not override
void schedule_op(arm_compute::ICPPKernel kernel,
^~~~~~~~~~~
/home/liyanan/armnn-pi-last/armnn/src/backends/neon/NeonInterceptorScheduler.cpp:57:63: error: ‘InputTensorMap’ in namespace ‘arm_compute’ does not name a type
const arm_compute::InputTensorMap &inputs,
^~~~~~~~~~~~~~
/home/liyanan/armnn-pi-last/armnn/src/backends/neon/NeonInterceptorScheduler.cpp:58:63: error: ‘OutputTensorMap’ in namespace ‘arm_compute’ does not name a type
const arm_compute::OutputTensorMap &outputs )
^~~~~~~~~~~~~~~
/home/liyanan/armnn-pi-last/armnn/src/backends/neon/NeonInterceptorScheduler.cpp: In member function ‘void armnn::NeonInterceptorScheduler::schedule_op(arm_compute::ICPPKernel, const arm_compute::IScheduler::Hints&, const int&, const int&)’:
/home/liyanan/armnn-pi-last/armnn/src/backends/neon/NeonInterceptorScheduler.cpp:62:21: error: ‘class arm_compute::IScheduler’ has no member named ‘schedule_op’; did you mean ‘schedule’?
m_RealScheduler.schedule_op(kernel, hints, inputs, outputs);
^~~~~~~~~~~
schedule
/home/liyanan/armnn-pi-last/armnn/src/backends/cl/workloads/ClResizeWorkload.cpp: In function ‘arm_compute::Status armnn::ClResizeWorkloadValidate(const armnn::TensorInfo&, const armnn::TensorInfo&, const armnn::ResizeDescriptor&)’:
/home/liyanan/armnn-pi-last/armnn/src/backends/cl/workloads/ClResizeWorkload.cpp:41:56: error: ‘ScaleKernelInfo’ is not a member of ‘arm_compute’
arm_compute::ScaleKernelInfo(aclInterpolationPolicy,
^~~~~~~~~~~~~~~
/home/liyanan/armnn-pi-last/armnn/src/backends/cl/workloads/ClResizeWorkload.cpp: In constructor ‘armnn::ClResizeWorkload::ClResizeWorkload(const armnn::ResizeQueueDescriptor&, const armnn::WorkloadInfo&)’:
/home/liyanan/armnn-pi-last/armnn/src/backends/cl/workloads/ClResizeWorkload.cpp:70:42: error: ‘ScaleKernelInfo’ is not a member of ‘arm_compute’
arm_compute::ScaleKernelInfo(aclInterpolationPolicy,
^~~~~~~~~~~~~~~
/home/liyanan/armnn-pi-last/armnn/src/backends/neon/workloads/NeonResizeWorkload.cpp: In function ‘arm_compute::Status armnn::NeonResizeWorkloadValidate(const armnn::TensorInfo&, const armnn::TensorInfo&, const armnn::ResizeDescriptor&)’:
/home/liyanan/armnn-pi-last/armnn/src/backends/neon/workloads/NeonResizeWorkload.cpp:41:56: error: ‘ScaleKernelInfo’ is not a member of ‘arm_compute’
arm_compute::ScaleKernelInfo(aclInterpolationPolicy,
^~~~~~~~~~~~~~~
/home/liyanan/armnn-pi-last/armnn/src/backends/neon/workloads/NeonResizeWorkload.cpp:41:56: note: suggested alternative: ‘NEScaleKernel’
arm_compute::ScaleKernelInfo(aclInterpolationPolicy,
^~~~~~~~~~~~~~~
NEScaleKernel
/home/liyanan/armnn-pi-last/armnn/src/backends/neon/workloads/NeonResizeWorkload.cpp: In constructor ‘armnn::NeonResizeWorkload::NeonResizeWorkload(const armnn::ResizeQueueDescriptor&, const armnn::WorkloadInfo&)’:
/home/liyanan/armnn-pi-last/armnn/src/backends/neon/workloads/NeonResizeWorkload.cpp:72:42: error: ‘ScaleKernelInfo’ is not a member of ‘arm_compute’
arm_compute::ScaleKernelInfo(aclInterpolationPolicy,
^~~~~~~~~~~~~~~
/home/liyanan/armnn-pi-last/armnn/src/backends/neon/workloads/NeonResizeWorkload.cpp:72:42: note: suggested alternative: ‘NEScaleKernel’
arm_compute::ScaleKernelInfo(aclInterpolationPolicy,
^~~~~~~~~~~~~~~
NEScaleKernel
In file included from /home/liyanan/my_git_new/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/8.3.0/vector:69,
from /home/liyanan/armnn-pi-last/armnn/src/armnn/Instrument.hpp:9,
from /home/liyanan/armnn-pi-last/armnn/src/backends/cl/OpenClTimer.hpp:8,
from /home/liyanan/armnn-pi-last/armnn/src/backends/cl/OpenClTimer.cpp:6:
/home/liyanan/my_git_new/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/8.3.0/bits/vector.tcc: In member function ‘void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {std::__cxx11::basic_string<char, std::char_traits, std::allocator >&, double&, armnn::Measurement::Unit}; _Tp = armnn::Measurement; _Alloc = std::allocatorarmnn::Measurement]’:
/home/liyanan/my_git_new/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/8.3.0/bits/vector.tcc:413:7: note: parameter passing for argument of type ‘std::vectorarmnn::Measurement::iterator’ {aka ‘__gnu_cxx::__normal_iterator<armnn::Measurement*, std::vectorarmnn::Measurement >’} changed in GCC 7.1
vector<_Tp, _Alloc>::
^~~~~~~~~~~~~~~~~~~
/home/liyanan/my_git_new/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/8.3.0/bits/vector.tcc: In member function ‘virtual std::vectorarmnn::Measurement armnn::OpenClTimer::GetMeasurements() const’:
/home/liyanan/my_git_new/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/8.3.0/bits/vector.tcc:109:4: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<armnn::Measurement*, std::vectorarmnn::Measurement >’ changed in GCC 7.1
_M_realloc_insert(end(), std::forward<_Args>(__args)...);
^~~~~~~~~~~~~~~~~

Sorry, I should have thought about this. Looks like your acl version doesn't match with armnn. When we release armnn we ensure that the same acl (arm compute library) version works with our version. So armnn_20.05 works with acl_20.05. But when you work with our master branch you'll have to check out a specific commit in acl that works with your current armnn master version. Here is how you can identify the right commit for acl:
In your armnn directory there is a folder called scripts. In scripts there is a script (who would have guessed that) that is called get_compute_library.sh. If you open that up with an editor of your choice, I used nano,
cd <rootdir>/armnn/scripts
nano get_compute_library.sh

you'll see on top of the file something like this:
# For pinning to a revision use this:
DEFAULT_CLFRAMEWORKREVISION="ad7515d231acb075a9585e52f257373b1a1b5d1f"

Copy the sha, in this case ad7515d231acb075a9585e52f257373b1a1b5d1f, then change to your acl directory and checkout the copied sha:
cd <rootdir>/arm_compute <-- I'm just guessing where your compute library is located, you won't be able to copy this command
git checkout ad7515d231acb075a9585e52f257373b1a1b5d1f

Now you can recompile arm compute library and armnn and it should work :+1:

Hello  @janeil01
Thanks! I solved the problem. Thank you for your help. Many thanks!

Sorry, I should have thought about this. Looks like your acl version doesn't match with armnn. When we release armnn we ensure that the same acl (arm compute library) version works with our version. So armnn_20.05 works with acl_20.05. But when you work with our master branch you'll have to check out a specific commit in acl that works with your current armnn master version. Here is how you can identify the right commit for acl:
In your armnn directory there is a folder called scripts. In scripts there is a script (who would have guessed that) that is called get_compute_library.sh. If you open that up with an editor of your choice, I used nano,
cd <rootdir>/armnn/scripts
nano get_compute_library.sh

you'll see on top of the file something like this:
# For pinning to a revision use this:
DEFAULT_CLFRAMEWORKREVISION="ad7515d231acb075a9585e52f257373b1a1b5d1f"

Copy the sha, in this case ad7515d231acb075a9585e52f257373b1a1b5d1f, then change to your acl directory and checkout the copied sha:
cd <rootdir>/arm_compute <-- I'm just guessing where your compute library is located, you won't be able to copy this command
git checkout ad7515d231acb075a9585e52f257373b1a1b5d1f

Now you can recompile arm compute library and armnn and it should work 👍


Windows 10 improvements

Okay, here's another version. I haven't tested everything though.
Thank you guys for this awesome library. I've been looking for something like this for months.  Thanks a lot. I hope didn't break anything in those commits.

Very nice! I added some modifications to you PR, look here: https://github.com/molinch/FFImageLoading/tree/pr/96
@kalarepa @molinch What do you think?

BTW: @molinch Should we implement auto image reload in Xamarin.Forms CachedImage when Transformations list changes? Currently, it doesn't do that.

Sorry, wrong button :)

@daniel-luberda In my opinion altering transformation list is not really useful in a real world app.
Anyway people can still do what you propose via Invalidate methods. Isn't it enough?

In Forms, there's no Invalidate method which reloads transformations (it's really a View derivative which invalidates layout measures).
The only currently available solution is to set source to null first, then reapply the previous source if the same source is used.

I'm talking about ImageServie.Invalidate methods
Le lundi 21 décembre 2015, Daniel Luberda<EMAIL_ADDRESS>a
écrit :

In Forms, there's no Invalidate method which reloads transformations
(it's really a View derivative which invalidates layout measures).
The only currently available solution is to set source to null first,
then reapply the previous source if the same source is used.
—
Reply to this email directly or view it on GitHub
https://github.com/molinch/FFImageLoading/pull/96#issuecomment-166206743
.

So what you propose is just to nullify Source and reload data?

It's another situation. It has nothing to do with cache invalidation.

We have an image with source "something.png" without transformation
We change Transformations to eg. CircleTransformation
Currently image is not reloaded at all
The only current solution to reload it and maintain the same url is to set source to null and reapply the previous one.

Ok! Sorry I misread what you wrote initially.
Fair enough, looks like a good idea.

@molinch Ok :) I'll check on this later.
BTW: https://github.com/molinch/FFImageLoading/commit/85d0234eb0dfd60cb8f306ef942605d77d8c6352
https://github.com/molinch/FFImageLoading/commit/a1e7f976030a940a086adcaab0b7e03710349586
Is it ok to change interface method? Should we leave it?

It's no problem to change IImageLoaderTask interface and ImageLoaderTaskBase.
Anyway all that is hidden to the user, he will go though Fluent API.

I think I broke something. Now when you have multiple FFImages visible on a page and just one of them has Transformations set, those transformations are used for all images.
BTW, https://github.com/molinch/FFImageLoading/commit/0325ab411525015e61e1622c9bb071da2a0fdcba - this is really sweet.

Another thing popped to mind - in LoadFromStreamAsync() (from file ImageLoaderTask.cs.cs - BTW, why double .cs?) you use some trickery in try-catch block, because in C#5 you couldn't await in catch block. Now with C#6 you can. Perhaps it'd be possible to use that new ability and to clean up a little bit.

Yes this was for C#5 support. Now that C#6 is well supported this part can be changed.

I fixed the issue I had.
All that needs adding is this line in FFImage constructor:
Transformations = new List();
So, what about async transformations? Do you think it's currently possible?

I wouldn't change current Transformations implementation, users use a lot of custom transformations and we can't break anything in that matter. What we could do is add another interface ITransformationAsync which support async. Then we could simply try to check the type and handle it with appropriate logic.

All that needs adding is this line in FFImage constructor:
Transformations = new List();

I'll add it.

BTW, why double .cs?
Good catch it's a naming mistake. File should be renamed :)

Renamed: https://github.com/molinch/FFImageLoading/commit/d5f42dbde80115d1ffa7109fa728ac985d95c4fa
Fixed: https://github.com/molinch/FFImageLoading/commit/7f934348ffbefb7f923ed148ff8f9635d84914e6

BTW, why double .cs?) you use some trickery in try-catch block, because in C#5 you couldn't await in catch block. Now with C#6 you can. Perhaps it'd be possible to use that new ability and to clean up a little bit.

I'll create an issue for that

I think this branch could be merged with master. @molinch What do you think?

Yes I agree

I added some updates here: https://github.com/molinch/FFImageLoading/tree/pr/96 (including Xamarin.Forms TransformPlaceholders support. Will you merge it too? Or should I do it?

Thanks for pushing those changes to master. I feel flattered :).

@kalarepa Thanks to you, collaboration is welcomed, especially on Windows which was added recently, It was quite a lot of work, so some things may appear, as always when something is new. I also don't use pure UWP a lot, I prefer Xamarin.Forms, so FFImage control was added in hope someone would test it heavily.


feature: confirm exit on xall

Did you check the docs?

[X] I have read all the noice.nvim docs

Is your feature request related to a problem? Please describe.
Not related to any problem.
Describe the solution you'd like
I find myself accidentally editing no name buffers often. I'd love it if there was a way that when I try to exit neovim with xall if the same confirm dialog was presented to me as it is with qall. Given the confirm option doesn't seem to do anything for xall I'm not sure there is anything that can be done here though.
Describe alternatives you've considered
n/a
Additional context
No response

This isn't a Noice issue. Just don't use :xall?


vrview - Runaway GPU memory leak when displaying a sequence of VR Images

Hi there,
I am encountering a runaway GPU memory leak when displaying a sequence of VR Images in Chrome Browser.
VR Image sequence ( 4096x2048 pixels per image ) is advanced periodically using vrView.setContent() within a single vrview window.
Using Chrome browser Version 57.0.2987.110 (64-bit) on Apple Mac.
Chrome Task Manager, shows GPU is using 2.7GB allocated after displaying (only) 46 VR images, GPU memory is only growing not releasing until system is Out Of Memory.
Please investigate & fix :-)
Thanks

same pb, do you have any idea how it can be fixed?

maybe you have some methold clear all event and buffer, or maybe some to do re-init

try this one https://github.com/googlevr/vrview/pull/142

Hi fix2015,
Tried your patches but this having same issue -

so not resolved.
GPU still using 4.2GB memory after display 120+ VR images.
Thanks for trying...

can you show your code, i will try maybe will fix

we can put in render this code and it will work i hope, but need to see your code

Hi there,
The VR View code I used was from your own link where you said 'try this one #142', that is I specifically used all of the code from this revision when I retested -
vrview-b4977952dddd49c7e48b7088e26394fdcdbcbaf7.zip
My own javascript code for driving my VR Image 'slideshow' is generated dynamically by my server ( in the context of what folder a user is currently looking at ) following is an example -
InJeCtEd.js.txt
Thanks for your support.

try this one https://github.com/googlevr/vrview/pull/142/commits/9c696ba1c076ed98d703570204681954a7237d1e

Hi again,
Ok thanks, I also tried - 'try this one 9c696ba it should help' - but that was no good at all (!), on loading a single VR Image many many javascript console log messages are immediately emitted, the defined HotSpots are not showing at all and the Google Chrome Helper App Process immediately rose to using 18GB memory (!) -

and

What did you Test with your code fix ???

i tested vrview example, and it was good, so it can be not pb in vrview it can be pb with your code, so can you create repository and i will try on my comp

Hi,
Yes the issue might be in my own javascript code but, I did not change my own code between testing of -
vrview-9c696ba1c076ed98d703570204681954a7237d1e.zip
and
vrview-b4977952dddd49c7e48b7088e26394fdcdbcbaf7.zip
I used the following zip file based on - 'try this one 9c696ba it should help' -
vrview.zip

for the last tests I did, that did not work as mentioned ( when Chrome Helper was using 18GB memory )

When I reverted back to the old version from vrview -b4977952dddd49c7e48b7088e26394fdcdbcbaf7.zip - my code was running as before, HotSpots showing ok, but GPU memory gradually rising and not be deallocated, as per the original issue I reported (#135)
Thanks,

how i can run your app?

Hi,
Hmm, not easily, the vrview.zip file I posted in the last message is served by an embedded HTTP Web server that is hosted inside an Android mobile app I write. Even if I give you a copy of the Android app you'd still need to generate or import some VR images using the app before you can then use Chrome Browser running in a PC to access & view the VR images in a VR Web View... I will probably need to work out how to get the vrview.zip file working in a more suitable / generic Web server container like Tomcat.
Alternatively, to reproduce the issue, just cut / paste & edit some of the javascript code from the InJeCtEd.js.txt file posted in a previous message (above) into a HTML file, then provide and reference some suitable VR JPG Images and run it as you would with you own tests - similar to http://googlevr.github.io/vrview/examples/hotspots/index.html - but use a timer to switch between the images ( using vrView.setContent(..) ) in an endless loop, this is when you start to see the GPU memory issue.
I am suspicious that my 'sldeshow' code in InJeCtEd.js.txt may be causing the memory leak by using a timer, see - timer = setInterval( function() { slideShow(); }, sleep ); - so references to memory are held & not being freed by each call to vrView.setContent(..), I should perhaps try using 'promises' instead of a timer eg: - https://developers.google.com/web/fundamentals/getting-started/primers/promises in the hope that the memory does gets freed... But I see the issue as more likely being with vrView.setContent(..) not freeing it own memory each time a new image content is loaded & set.
The GPU memory issue is not readily apparent until you have displayed 50 or more images using vrView.setContent(..), this happens regardless of whether you cycle through the same small set of images eg 3 or 4 images or lots of different images, I need to be able to display hundreds of VR images or more and not have the user run out of memory...
(I am on vacation for the next 2 weeks, so can't work on this until I return.)

I have the same issue. 9c696ba does fix the memory leak however there appear to be a few new bugs introduced in this version.
I create the texture I want to use in the vrview in a canvas. In order to load these textures into the VR view I create a data url with the canvas contents and load that using setContent. This works well using a build from the primary tree master branch (aside from the memory leak, but this occurs in the primary branch even if I load regular images from my server) but does not work with 9c696ba. Is there a better way for me to load data from a canvas?
I also have an issue with 9c696ba when using non power of two textures. Using such a textures causes a loop where the texture is reloaded endlessly.

I have the same issue on both my laptop (Mac + safari), and my iPhone6S Plus (Safari and Chrome). On  the phone, it overloads the browser (both Safari and Chrome) and forces the browser to close on its own after navigation 4 - 6 hotspots.
On the laptop, I can see through the Activity monitor ram usage spike up significantly as I go from one hotspot to another.

I made a gif of the problem. It is probably too large to upload (sorry, if it takes too long to see it. 4mb).
I made a small sample of the project in my blog. Open your Activity Monitor and monitor your ram as you go back and forth between the hotspots... maybe 10-15 times to effectively see the memory leak. On mobile, maybe 4-5 times will cause your browser to reload.
http://aidanco.com/vrview-master/examples/hotspots_insikt/

The memory leak can be stopped by not creating the sphere objects more than once.  Instead, dispose their materials and give them new ones (and recreate their geometry and face uv maps).
https://github.com/tommytee/vrview/blob/gaze/src/embed/sphere-renderer.js#L177
This branch is named gaze and and also contains fixes to make "click by gazing" work. (explained here: https://github.com/googlevr/vrview/issues/145)
Also updated  modules, including Three.js r85
https://github.com/tommytee/vrview/tree/gaze

Here is demo of the testSwitch branch: https://vrview.io/branch/test-switch/examples/hotspots/index.html
the switch on the top left will continuously load content

I tried the branch name 'gaze', it seems to partly fix the memory leak when displaying multiple images, but not when images are internally resized due to not being a power of 2 -
THREE.WebGLRenderer: image is not power of two (5660x2830). Resized to 4096x2048

when this image resizing happens memory is not being released so same memory leak error still persists.

'testSwitch' works ok, memory does not leak as images are already power of 2 so are not resized. You could test this further by changing one of the sample images eg: dolphins.jpg so that it is not power of 2, eg resize to 5000 x 5000 pixels and run your test again.
Thanks for your help.

I resized the images to 5000 x 5000 and i get the memory leak.  Its not as bad but still there.
It appears that the makePowerOfTwo function is causing this. ( https://github.com/mrdoob/three.js/blob/a4922d637762f2abf0ac7282b2bea8538bf1ee3e/src/renderers/webgl/WebGLTextures.js#L46 )
This may relate: https://github.com/mrdoob/three.js/issues/11378
Can you resize your images in advance?  That would be the best option, if possible.

Yes, I will resize images so they are power of 2, this has long been required/recommended with OpenGL, better to do it once beforehand anyway rather than every time when rendering.
Thanks for confirming the ongoing memory leak, seems deallocation/garbage collection is not managed very well in Javascript ?

Quick fix for the three.js bug:
add var POTCanvas here https://github.com/mrdoob/three.js/blob/a4922d637762f2abf0ac7282b2bea8538bf1ee3e/src/renderers/webgl/WebGLTextures.js#L7
Change the makePowerOfTwo function to reuse the canvas
function makePowerOfTwo( image ) {

      if ( image instanceof HTMLImageElement || image instanceof HTMLCanvasElement ) {

	  if ( ! POTCanvas )
		POTCanvas = document.createElementNS( 'http://www.w3.org/1999/xhtml', 'canvas' );

	  POTCanvas.width = _Math.nearestPowerOfTwo( image.width );
	  POTCanvas.height = _Math.nearestPowerOfTwo( image.height );

	  var context = POTCanvas.getContext( '2d' );
	  context.drawImage( image, 0, 0, POTCanvas.width, POTCanvas.height );

	  console.warn( 'THREE.WebGLRenderer: image is not power of two (' + image.width + 'x' + image.height + '). Resized to ' + POTCanvas.width + 'x' + POTCanvas.height, image );

	  return POTCanvas;

	}

	return image;

}

three.js fork with the fix https://github.com/tommytee/three.js/blob/POTCanvas/src/renderers/webgl/WebGLTextures.js
branch is named POTCanvas

Hello,
I appear to be having a very similar problem where the memory increases with each hotspot click, resulting in an eventual crash. With your sphere-renderer.js fix, Do I simply go into the vrview>src>embed>sphere-renderer.js folder and copy and paste the new code above into that file? I looks like making changes to the src folder isn't affecting the experience. Is there something that needs to be done in the build folder as well?
Thank you!

@soulreaver156 you need to make the change to sphere-renderer.js and then you need to build the project in order to get the changes into the embed.js or embed.min.js file.
Check out the README.md for instructions. I believe the command is:
$ npm run build

@lincolnfrog Thank you - that did the trick!


An error occurred while drawing an Image through the ContentDrawScope.drawImage() function

Describe the bug
I'm developing an image zoom library, ZoomImage, which is based on Compose Multiplatform and supports subsampling.
I encountered a weird bug on the Desktop platform, the simple description is that an error always occurs when using the ContentDrawScope.drawImage() function to draw the tiles at the Bottom and End positions, which eventually leads to the loss of all component contents.
Affected platforms

Desktop

This problem is limited to the Desktop platform, everything is normal on the Android platform
Versions

Kotlin version*:  1.9.0
Compose Multiplatform version*:  1.5.3
OS version(s)*: macOS 13.4.1
OS architecture (x86 or arm64): arm64
JDK: 17
Device: MacBook Pro 14 2021

To Reproduce

Clone sample code: https://github.com/panpf/ComposeDesktopTest
Execute the Main function of Main.kt to run the App

Double-click the image to enlarge it, and the ZoomImage library will decode the clear image at the current position and draw it on the surface of the component, so you can see the image gradually change from blurry thumbnail to clearer

Then slide down to the Offset(-144.9, -3677.4) position, and all component contents will disappear.

Until you slide to the bottom of the picture (Offset(-144.9, -5828.0)), the content can no longer be displayed.
At this time, drag the lower right corner of the window and adjust the height of the window until the window size reaches 793x878 and the content at the bottom of the picture can suddenly be displayed again.

Video Reproduce
https://github.com/JetBrains/compose-multiplatform/assets/3250512/4281715d-62da-425a-b18b-a4b0f830d5b6
BUG summary

It is not a problem with a certain image. All images in the example of the https://github.com/panpf/zoomimage project can trigger this BUG.
This BUG will only be triggered when you need to zoom in to a larger multiple and the window size is smaller. The image in the example needs to be 1.4 times or more. You can long press the left button and slide up and down to adjust the zoom factor.
Only the tiles at the Bottom and End positions cannot be drawn. This problem does not occur at the Top, Start and Center positions.
When the BUG is triggered, drag the lower right corner of the window to increase the window size to restore the display.
An error in drawing a tile will cause other tiles and the basemap to disappear.

Hope this helps me solve this problem, thank you!

Probably related : #2807

Thanks for the example! The core issue is the same as in https://github.com/JetBrains/compose-multiplatform/issues/2807, let's keep only 2807.

@panpf Could you provide a minimal reproducer? Upon deeper investigation I'm not convinced this issue is the same as #2807

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


move the NAT diagnosis code from uproxy-probe into this repo

So, I needed a break from Docker stuff and finally made a start on this:
https://github.com/uProxy/uproxy/issues/1509
Having combed through the code, I just copied the doNatProvoking() function -- doUdpTest and  doStunAccessTest are super-low-level functions we can do with standard tools (ping and stunclient respectively). I renamed doNatProvoking -> probe.
Also, a lightweight Chrome and Firefox app called "uprobe" (console output only, I figure we don't use this often enough to justify any much more).
Tested with uProxy itself; pull request to follow.

I almost forgot: not sure yet what to do with the server code in uproxy-probe. No reason it couldn't move in here too, at some point.

:+1: but maybe we should just have a general issue to do a style cleanup.


feat: Allow unauthenticated as well as unauthenticated users to make some actions [DEV-2684]

Task linked: DEV-2684 Credential Service: Allow unauthenticated as well as authenticated users to make API requests


Update artifacts-overview.md

Adjust the description for the build artifacts.  The PDB represents the artifacts for either a .NET based application (written in C# or other .NET language) or a C++ Windows application.  The previous wording implied a .NET application written in C++.

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

A gentle ping on this

@chasewilson Could you review the proposed revision and indicate whether the PR is ready to merge? Thanks!

@ktoliver ping

@ktoliver @RoopeshNair @vijayma ping?

@ktoliver @RoopeshNair @vijayma ping x 3?

@ktoliver @RoopeshNair @vijayma ping x 4?

@chcomley Would you be able to review this PR? Thanks.

#sign-off

@juliakm: I'm sorry - only the author of this article, @chasewilson, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

#sign-off

@juliakm: I'm sorry - only the author of this article, @chasewilson, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

#sign-off


Order matters when using bulk-connect between Vecs?

Related to the code involved in Issue #242:
There is a second, very unintuitive error involved with the Vec()'s being strict connected: the order of the Aggregates being bulk-connected matters.
Once I have addressed specifying the flip on the Vec, and not the elements within the Vec (to solve #242), I run into this:
Error:
regfile.io.read_ports <> register_read.io.rf_read_ports

No error:
register_read.io.rf_read_ports <> regfile.io.read_ports

This is nonsensical. Both sides have inputs and outputs. I tried modifying Aggregate.scala in chisel3.core to attempt to bulkConnect Vec's, and I got it to use a different FIRRTL connector, but the error remained:
firrtl.passes.CheckGenders$WrongGender:  @[core.scala 535:26]: [module BOOMCore]
  Expression regfile.io.read_ports is used as a sink but can only be used as a source.
firrtl.passes.CheckGenders$WrongGender:  @[core.scala 535:26]: [module BOOMCore]
  Expression register_read.io.rf_read_ports is used as a source but can only be used as a sink.

FIRRTL code (after I modified Aggregate.scala):
regfile.io.read_ports <- register_read.io.rf_read_ports @[core.scala 535:26]

The nonsensical thing, IMO, is the name of the operator.  <> suggests commutativity.  Maybe <- would be better.

It is nonsensical because both sides have inputs and outputs. There is no directionality at the Bundle level, only at the element level.

Is it not a FIRRTL issue, then?

There is no good way for me to distinguish what is a FIRRTL issue in handling Chisel code, or a Chisel issue in generating malformed FIRRTL.  I leave that up for someone knowledgeable of both (such as yourself) to decide if it should be moved.

It's not obvious to me either, but can you provide the declarations of the offending signals so @azidar can give some insight?

This is a compatibility layer issue that isn't a problem with chisel3._.


BUG/6-Don't-use-file-storage

I have fixed the the previous code which create exportData.json file while exporting now it set the data as an attachment and did not create a file.

Note: comments haven't been addressed yet, but merging as the bug needs fixing. Will create a separate bug report for the comment raised


Is there a unittest suite for this code?

I may be blind but I could not find actual unit tests, which is surprising for code of this complexity. Can you point me to a unit test suite that I might have missed?
Thank you!

Technically, yes, but unfortunately not in a way that's useful to you. The test suite uses a bunch of google-internal stuff, so the tests get stripped as part of the process that exports this library to GitHub.


Add CircleCI windows build on local runner

The build runs in a Windows docker container on our own Windows server.

Yes, ATM this is community build only.
Still need to figure at an issue with cloning the enterprise repo on the local runner, then we can build enterprise instead (moving forward we will only need the enterprise build for Windows).
After that I will add test runs.


Make tooltip underlines dashed on hover

Description
Make tooltip underlines dashed when mouse hovers over them
Additional context
See this comment

We hope that this is just a change to a single component.

Closed as this hasn't come up in a while.


How to add the remaining of the 135+ countries?

Hello, I want to add all the 135+ countries to the menu. How can I do it?

You can extend the select element here: https://github.com/stripe/stripe-payments-demo/blob/master/public/index.html#L57
Or via an API, e.g. https://github.com/apilayer/restcountries
Please note that this issue tracker is for bugs or issues directly related to this project, and not for general support. Please feel free to reach out to https://support.stripe.com/email and we would be glad to help further!


UI Sanding

Description
Improvements to...

Node tree – making it more obvious what elements belong to a component (purple text)
Project Settings page – better typography, glossy background, better close button, and better text labels
Project sub-menu dropdown – make this go away after the user has selected an item from the menu
Inputs – made the quad-icon not cut-off on the sides, tightened the spacing of the accordions

What is the purpose of this pull request?

[X] New feature
[ ] Documentation update
[X] Bug fix
[ ] Refactor
[ ] Release
[ ] Other

I'm still going to work on this a bit – but just saving this here.


Antrea controller and agent should both be forwards compatible for unknown parameters (or at least self-consistent?)

Describe the bug
We found that antrea-agent crashes if given an unknown parameter.
kubo@T8JVf9xs1Q4co:~$ kubectl logs antrea-agent-cpf55 -n kube-system
I0214 21:41:27.697432       1 log_file.go:99] Set log file max size to 104857600
F0214 21:41:27.701069       1 main.go:52] Failed to complete: yaml: unmarshal errors:
  line 13: field abcd not found in type config.AgentConfig

But Antrea controller manager is actually robust in the face of new parameters.
They should have consistent failure modes, and I think we would suggest that products shipping antrea can rely on older antrea versions not crashing if given new parameters as input, that way we can have older configuration managers for antrea work w/ newer antrea releases.
To Reproduce

edit an antrea-config to have a parameter:

abcd=true

restart antrea-agent (observe it failing)
retstart antrea-controller-manager (observe it working)

UPDATE
@tnqn ... Screenshot attached illustrating the inconsistency.... As we can see antrea-agent is forwards compatible (it allows unknown parameters) but antrea controller does not

@jayunit100 I believe antrea-controller and antrea-agent behaves in the same way regarding to unknown parameters.
# kubectl -n kube-system logs antrea-controller-5f8bd967b5-pw8x2
I0323 12:06:54.541319       1 log_file.go:93] Set log file max size to 104857600
F0323 12:06:54.542086       1 main.go:47] Failed to complete: yaml: unmarshal errors:
  line 77: field foo not found in type controller.ControllerConfig

I'm trying to understand the scenario. By "have older configuration managers for antrea work w/ newer antrea releases", doesn't this mean backward compatible? The configuration is older than antrea version, which seems meaning newer antrea release should work with deprecated parameters. However, "older antrea versions not crashing if given new parameters as input" sounds an opposite scenario.
To clarify Antrea's configuration comapatibility:

antrea-controller and antrea-agent behave in the same way.
antrea-controller and antrea-agent are backwards compatible. A deprecated parameter won't be removed immediately and will be kept several releases for graceful upgrade before eventually removed. So if you mean backwards compatible, there should be no problem, unless there is a bug. Do you have a specific case?
If you mean forwards compatible, could it introduce other issues. For example, a configuration with typo would make the program not work as expected but wouldn't be noticed until searching the log for parameter parsing error. And if a new configuration is not supported in an old version, does users normally expect start failure to alert this or continue running without error?

In my experiment I believe I found that antrea agent blew up if you gave it an unknown parameter in its cofnig but antrea controller did not.
I'd have to confirm this though because it's been a while.
Regarding forward compatibility I think the behavior should be consistent.   I'll reproduce again to remember the context and let you know

attached a screenshot showing the inconsistency.
I think either is OK, forwards compatible is better for people building operators or K8s distributions, bc we can use a potentially old antrea config during an upgrade, without risking bringing down a production system's network policy implementation :).
In either case my thinking is:
For simplicity purposes, lets just pick : Forwards, or non-forwards compatible....
HAving an agent that refuses to come up, but a working controller, doesnt send a clear signal to anyone that theres a global antrea configuration issue.  If we dont want agents-to be forwards compatible, lets make all the antrea containers fail if a forwards compatible unknown abcd: true parameter is in antrea-config.

@tnqn ... Screenshot attached illustrating the inconsistency.... As we can see antrea-agent is forwards compatible (it allows unknown parameters) but antrea controller does not

@jayunit100 According to the screenshot, I guess you actually meant the opposite: antrea-controller is forwards compatible but antrea-agent is not as the latter was in Error state.
But I believe the reason is that you only inserted unknown parameters to antrea-agent.conf but not antrea-controller.conf so antrea-controller's configuration didn't even change, can you check? I'm sure both antrea-agent and antrea-controller will panic if you insert unknown parameters to both configuration sections like below:
apiVersion: v1
kind: ConfigMap
name: antrea-config
namespace: kube-system
data:
  antrea-agent.conf: |
    abcd: true
  antrea-controller.conf: |
    abcd: true

I see what you mean. Thus could be downstream config related .
Let's close this thanks for double checking for me !!!!

BTW, Im going to change the issue title since this was more related to some investigating some.  downstream configuration issues than an upstream one. thanks again folks !


Error: Building package gperf:x64-windows failed with: BUILD_FAILED

`
PS C:\src\td\vcpkg> ./vcpkg.exe install gperf:x64-windows openssl:x64-windows zlib:x64-windows
Computing installation plan...
The following packages will be built and installed:
gperf[core]:x64-windows -> 3.1#2
openssl[core]:x64-windows -> 1.1.1l#4

vcpkg-cmake[core]:x64-windows -> 2021-09-13
vcpkg-cmake-config[core]:x64-windows -> 2021-11-01
zlib[core]:x64-windows -> 1.2.11#13
Additional packages (*) will be modified to complete this operation.
Detecting compiler hash for triplet x64-windows...
-- Using HTTP(S)_PROXY in environment variables.
Restored 0 packages from C:\Users\86198\AppData\Local\vcpkg\archives in 266.5 us. Use --debug to see more details.
Starting package 1/5: gperf:x64-windows
Building package gperf[core]:x64-windows...
-- Using cached gperf-3.1.tar.gz.
-- Cleaning sources at C:/src/td/vcpkg/buildtrees/gperf/src/gperf-3-d4135ad4b1.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source C:/src/td/vcpkg/downloads/gperf-3.1.tar.gz
-- Using source at C:/src/td/vcpkg/buildtrees/gperf/src/gperf-3-d4135ad4b1.clean
-- Found external ninja('1.10.2').
-- Configuring x64-windows
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:127 (message):
Command failed: ninja -v
Working Directory: C:/src/td/vcpkg/buildtrees/gperf/x64-windows-rel/vcpkg-parallel-configure
Error code: 1
See logs for more information:
C:\src\td\vcpkg\buildtrees\gperf\config-x64-windows-out.log

Call Stack (most recent call first):
scripts/cmake/vcpkg_configure_cmake.cmake:345 (vcpkg_execute_required_process)
ports/gperf/portfile.cmake:19 (vcpkg_configure_cmake)
scripts/ports.cmake:142 (include)
Error: Building package gperf:x64-windows failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with git pull and .\vcpkg update.
Then check for known issues at:
https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+gperf
You can submit a new issue at:
https://github.com/microsoft/vcpkg/issues/new?template=report-package-build-failure.md&title=[gperf]+Build+error
including:
package: gperf[core]:x64-windows -> 3.1#2
vcpkg-tool version: 2021-11-24-48b94a6946b8a70abd21529218927fd478d02b6c
vcpkg-scripts version: 163065a35 2021-12-02 (4 hours ago)
Additionally, attach any relevant sections from the log files above.
`
cmake 3.22.0
windows 10
gperf 3.1 https://mirrors.gigenet.com/OSDN//sfnet/e/ez/ezwinports/gperf-3.1-w32-bin.zip

You seems to have ninja in your PATH, but it doesn't work as expected.

Also, ensure that you have English language pack installed for Visual Studio, which is required by vcpkg.

The exact error can be found in the log C:\src\td\vcpkg\buildtrees\gperf\config-x64-windows-out.log.

VS version problem.