sum.golang.org: /latest is slow to return updated tree state

Go version
n/a
Output of go env in your module/workspace:
n/a

What did you do?
Request https://sum.golang.org/latest periodically to stay up to date with the sumdb tree state.
Some context:
I wrote a tool that tracks sum.golang.org, let's you subscribe to module paths/versions, and sends email notifications when they appear. See https://www.gopherwatch.org/ for the online service, and https://github.com/mjl-/gopherwatch for the code.
What did you see happen?
https://sum.golang.org/latest is returning the same tree state for a while, typically around 10 to 20 minutes. It seems heavily cached.
What did you expect to see?
I hoped to get updates through /latest more quickly. Another endpoint to get newly added records from could also work (perhaps even streaming, though that's more than my use case needs).
I have taken the cachedness of responses from /latest as a signal that you don't want the internet to make requests too often. So gopherwatch is currently requesting /latest every 10 to 15 minutes.
Gopherwatch does have an endpoint at /forward that requests latest additions from index.golang.org, looks up the most recent moduleversion on sum.golang.org to get its tree state, and then forwards the log. So it's possible to get updates more quickly, but involves more requests. It's only done when manually requested.
CC @FiloSottile per thread on slack

It sounds reasonable to me to have https://sum.golang.org/latest cached similarly to index.golang.org responses, if at all. Forcing monitors (who are the only ones interested in /latest) to use index.golang.org and /lookup is roundabout and inefficient.

What is wrong with using index.golang.org/index if the goal is to discover newly added module/version? The index service and its internal implementation is built exactly for the purpose.
If it is for efficient module checksum verification, /lookup endpoint also includes a signed, encoded tree description that contains the entry too, so in practice, /latest doesn't need to be too perfectly fresh to support the primary use case (i.e. go command). (https://go.dev/ref/mod#checksum-database)

A sumdb monitor that wants to verify the sumdb will generally not trust index.golang.org/index to return every module version (otherwise why have the Merkle tree at all). Using index.golang.org is just a hack to get a fresh tree head by fetching the index with a recent timestamp, taking the most recent module to /lookup, and extracting a tree head from there. It's a pretty roundabout way to do what /latest is supposed to do.
The go command uses /latest? For what? I would have said that sumdb monitoring is its primary (only?) use case.

I mean this rather longer ttl for /latest works for our primary use case (go command) since go command doesn't rely on /latest.

Well by that argument anything works for the primary use case, including not having /latest at all.
I'm a bit confused how uncached index.golang.org/index + /lookup could be less of a hotspot than uncached /latest, but I don't know enough about the backend.
The delay is a UX issue, not a dealbreaker, AFAIK.

I'm a bit confused how uncached index.golang.org/index + /lookup could be less of a hotspot than uncached /latest, but I don't know enough about the backend.

Hmm, you are right. I imagined index.golang.org/index would have a more efficient serving path since it's already being used by many other services, but it's nothing special than a secondary index lookup. @suzmue said it may be possible to shorten the TTL. We will investigate it.

TTL shortened. (Thanks @suzmue )

Thanks! I seem to be getting a new tree state every five minutes now (noticed it a few days ago), certainly an improvement.


Apply Mermaid diagram for project settings UI

[x] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)

Proposed changes
Currently, the preview of README.md on the Project settings UI doesn't support the Mermaid diagram. Therefore, I added the code to apply the Mermaid diagram in this pull request.
Checklist

[x] I have read the contribution guidelines
[ ] For non-bugfix PRs, I have discussed this change on the forum/slack team.
[x] I have run grunt to verify the unit tests pass
[ ] I have added suitable unit tests to cover the new/changed functionality

Coverage: 68.583%. Remained the same when pulling 4477b9ac185be86bf4c7e439dc25b6a3e46883c7 on kazuhitoyokoi:dev-fixmermaid into 90d1bb0ae44831bd6583c472470dec870268b165 on node-red:dev.


add a line about license and reuse

There is a license file in the repo but I was asked about license and reuse and hope this will make it more visible and clearer.

Good point. Moving it to the bottom ...


RTP packetization should copy payload

Later operations are done in place (like SRTP), and
we don't want to put the burden on the user for copying.
Resolves #183

Pull Request Test Coverage Report for Build 973

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage remained the same at 50.847%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/rtp/codecs/opus_packet.go
0
1
0.0%

Files with Coverage Reduction
New Missed Lines
%

internal/dtls/dtls.go
1
18.38%

Totals

Change from base Build 971:
0.0%

Covered Lines:
3360

Relevant Lines:
6608

💛  - Coveralls


replaces $cork (|^) with an actually hygienic expansion

This works without any problems on a fake-zod -- is there any reason that it's not a desirable change?
closes urbit/urbit#616

"Hygienic" is a little strong here.  The existing |^ is hygienic as well.
I'm not a huge fan of |^ in general.  But it scares me slightly to change
semantics.  And if what you changed |^ to is all that |^ does, do we need
|^?  Discuss...
On Fri, Feb 3, 2017 at 11:43 AM, Joe Bryan<EMAIL_ADDRESS>wrote:

This works without any problems on a fake-zod -- is there any reason that
it's not a desirable change?
closes urbit/urbit#616 https://github.com/urbit/urbit/issues/616
You can view, comment on, or merge this pull request online at:
https://github.com/urbit/arvo/pull/343
Commit Summary

replaces $cork (|^) with an actually hygienic expansion

File Changes

M sys/hoon.hoon
https://github.com/urbit/arvo/pull/343/files#diff-0 (2)

Patch Links:

https://github.com/urbit/arvo/pull/343.patch
https://github.com/urbit/arvo/pull/343.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/urbit/arvo/pull/343, or mute the thread
https://github.com/notifications/unsubscribe-auth/AALyAcKiypVYp563D1OzmzFGQXXqm0lEks5rY4NegaJpZM4L2umr
.

I don't think it's a strong claim -- the current implementation clobbers an extant $ arm ... I guess "unhygienic" is imprecise, but it's certainly a foot-gun.
I'm not at all attached to the twig itself: => or =< with |% seems plenty readable to me ...

It's a little easier to just change this, but I only see ~ 30 instances of |^, so it'd be easy enough to remove altogether.

"Hygienic" is accurate in the English sense of the word, but not quite in
the Lisp sense of the word.
It is a small foot-gun.  The thing is, I'm kind of not sure what to do
about it at the moment, and my general inclination is to keep the language
relatively frozen, especially when our automated testing is as weak as it
is.  I would like to get to the point where we can revise these things in a
more systematic way.
On Fri, Feb 3, 2017 at 12:35 PM, Joe Bryan<EMAIL_ADDRESS>wrote:

It's a little easier to just change this, but I only see ~ 30 instances of
|^, so it'd be easy enough to remove altogether.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/urbit/arvo/pull/343#issuecomment-277355551, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AALyAUyihzfFx2XXcjhbJu8YEwqQ4x0Cks5rY4-vgaJpZM4L2umr
.

Fair enough, I'm just prowling for easy wins ...

It's hygienic in spirit, $ is a special arm name that a bunch of other | runes also implicitly create. That said, only 30 uses* sounds like an entirely legitimate reason to either remove it outright, or convert a bunch of existing =< |% to it instead(which wouldn't break anything, it's just slightly awkward when the $ content is itself a gate). I think last time this came up breaking user code was a concern, but now that we have a separate master with significant zuse restructuring the change would have little further effect.
*and little prototyping/learning value, which is why it's important to keep e.g. !; around despite little representation in checked-in code

Just noting that we still haven't decided what to do about this one.

A less disruptive option would be to use this instead of ++expr:
|.  ;~  gunk
  loaf
  %+  sear
    |=  a/(map term foot)
    ?:((~(has by a) %$) ~ `a)
  wisp
==

I endorse this prospective patch. :-)  It doesn't change the long-term
debate, it just fixes the immediate glitch.
On Fri, Feb 24, 2017 at 5:02 PM, Joe Bryan<EMAIL_ADDRESS>wrote:

A less disruptive option would be to use this instead of ++expr:
|.  ;~  gunk
loaf
%+  sear
|=  a/(map term foot)
?:((~(has by a) %$) ~ `a)
wisp
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/urbit/arvo/pull/343#issuecomment-282445863, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AALyAVx5IQ0P7JK7xhxHjK8AVQJpHn5Iks5rf32lgaJpZM4L2umr
.

This doesn't really feel like a syntax error, but I suppose either way it's
a corner case.
On Friday, 24 February 2017, cgyarvin<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','notifications@github.com');>> wrote:

I endorse this prospective patch. :-) It doesn't change the long-term
debate, it just fixes the immediate glitch.
On Fri, Feb 24, 2017 at 5:02 PM, Joe Bryan<EMAIL_ADDRESS>wrote:

A less disruptive option would be to use this instead of ++expr:
|. ;~ gunk
loaf
%+ sear
|= a/(map term foot)
?:((~(has by a) %$) ~ `a)
wisp
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/urbit/arvo/pull/343#issuecomment-282445863, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AALyAVx5I
Q0P7JK7xhxHjK8AVQJpHn5Iks5rf32lgaJpZM4L2umr>
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/urbit/arvo/pull/343#issuecomment-282446017, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABxXhizrxFrwfuAa0RYXTGLHVksbZ_41ks5rf33-gaJpZM4L2umr
.

Closing as superseded by #364.


Adds support for serving statichit content out of a directory

This does some fairly expensive computations when producing the directory paths. This is intentional,
to make sure requests aren't escaping the specified directory and out elsewhere. This cleans out abusive
requests such as get /../../etc/hosts etc.
The idea is that rather than having to specify every individual file that the server should service, you can specify a
directory and every file (and subdirectory thereunder) can now be served.

[approve ci]

@zwoop You should really add labels to the PRs.

As a side note for the curious reader, if this is acceptable by the community, I'd like to add support for the HTTPD mime.types file, allowing the mime type to be defined by the suffix of the filename.

[approve ci ubuntu]

Cherry-picked to v9.2.x


update lib/pq version to v1.10.6

Updated the lib/pq version, since the old lib/pq version is not supporting SCRAM-SHA-256 authentication (feature made available from Postgres 10 onwards)

Don't object to this, but unfortunately the linting is not happy.
Most of the linting issues were fixed with https://github.com/ajvb/kala/pull/257 but that PR has other elements which I had questions on.  You can either wait for it or cherry-pick those points.

Don't object to this, but unfortunately the linting is not happy.
Most of the linting issues were fixed with #257 but that PR has other elements which I had questions on. You can either wait for it or cherry-pick those points.

No problem, let's wait for the other PR
Thanks

Heads up, the other PR was merged.


ASP.NET Core Swagger ControllerBase-classes

Needing more fine-grained control over how the URLs for Swagger and Swagger UI are accessed, I separated the functionality in the middlewares and reused this functionality also in custom ControllerBase-classes.
So now users can implement Swagger and SwaggerUI via ASP.NET Core Controllers by inheriting SwaggerControllerBase and SwaggerUIControllerBase. This enables scenarios such as adding the [Authorize]-attribute, caching-attributes or other fine-grained controls.
I've added a test-project in the code for this specific functionality.
Also, I've updated the documentation around these new functionalities in the README.
Although I did my best to keep the tone of the existing code and content in the project and in the documentation, I'd be very happy for feedback on any tweaks required.

This level of control/customization isn't something that I'm interested in supporting at this point. Thx

This level of control/customization isn't something that I'm interested in supporting at this point. Thx


Fix compatibility with latest ttrpc and pin ttrpc version to 0.8.2

Looks like new version of ttrpc introduces some backward incompatible changes (https://github.com/containerd/ttrpc-rust/pull/235), this PR makes a few fixes in shim and shim-protos crates.
cc: @Mossaka
ref: https://github.com/containerd/rust-extensions/pull/317
Signed-off-by: Maksym Pavlenko<EMAIL_ADDRESS>

LGTM

I don't make sure if other libs is updated, we can build the same binary(same sha256). We should add some like go.sum to make sure we can  replicate.


Files and folder just wont delete sometimes

Description
When trying to delete content in the recycle bin it just wont. I press delete, it will ask for conformation, shows the status center for a few seconds then just doesn't delete the content. I have had this happen for other file operations like move but happends rarely.
Steps To Reproduce
No response
Expected behavior
It should delete the files.
Files Version
1.9.25
Windows Version
10.0.19043.1165
Relevant Assets
debug_fulltrust.log
debug.log

When this happens how do you fix it? Do you have to restart the app or you just try to press delete again and it works?
If you have to restart the app, the next time it happens could you try to minimize/restore it and try to delete again?

I tried restarting the app but ended up just using file explorer. I'll looking at task manager when it happens again.

Ive had this problem too and am currently unable to reproduce it in any meaningful way, ill try to as I keep encountering it.


How to print toml::value returned from toml::parse() with fmt::print() properly?

Problem Description
It is related to the issue: https://github.com/fmtlib/fmt/issues/2894
According to vitaut's comment:

{fmt} doesn't provide formatters for toml11 types. You should check which formatter is being used and address your question to its author.

What should I do?

First of all, since I'm not an author of {fmt}, I don't know much about the implementation detail of the library. But I took a glance at the code and found that the example code shown in your link seems to use fallback_formatter that internally calls operator<<(ostream&, T). If I'm not mistaken, it does not set std::setw. Since operator<<(ostream&, toml::value) reads width setting in ostream, if width is not set, it does nothing.
There are several options:

implementing {fmt} formatter that parses width specifier and pass it to setw or toml::format. I think this is the most appropriate (but could be painful) way.
wrapping a toml::value by a struct that has width and define operator<< to use width internally. This is easy but makes code messy.

{fmt} documentation explains how to write a formatter: https://fmt.dev/latest/api.html#format-api.
The second option will look like:
#define FMT_DEPRECATED_OSTREAM
#include <fmt/format.h>
#include <fmt/ostream.h>
#include <toml.hpp>
#include <iostream>

struct width_setter
{
    width_setter(std::size_t w, const toml::value& v): width_(w), data_(v) {}
    std::size_t width_;
    toml::value const& data_;
};

template <typename charT, typename traits>
std::basic_ostream<charT, traits>&
operator<<(std::basic_ostream<charT, traits>& os, const width_setter& w)
{
    os << std::setw(w.width_) << w.data_;
    return os;
}

int main(int argc, char **argv)
{
    if(argc != 2)
    {
        fmt::print("usage: ./toml11fmt example.toml\n");
        return 1;
    }
    const auto data = toml::parse(std::string(argv[1]));

    std::cout << std::setw(80) << data << std::endl;
    fmt::print(std::cout, "{}", width_setter(80, data));
    return 0;
}


sort on headers in Grafana only sorts current page, not on all data

Describe the bug
sort on headers in Grafana only sorts current page, not on all data
Expected behavior
click-to-sort on headers in Grafana should sorts on all data
Reproduce by
click-to-sort on headers in Grafana
Environment

TeslaMate version: 1.20 dev
Type of installation: Docker
OS TeslaMate is installed on: Debian on GCP f1-micro instance
User OS & Browser: unknown
Others:

Iooks as if this is fixed with Grafana update to v7.2. I tested this today in the 1.20 dev version 24-9-2020


Switching tabs hotkeys suggestion

Grabber, as a kind of booru-browser, have tabs system.
But I figured out that standard way of switching tabs via "Ctrl + Page Up" or "Ctrl + Page Down" isn't working here. So it would be very useful to add these hotkeys to Grabber.
All web browsers and many other tab-related software uses these hotkeys.

:+1:

Ctrl + Page Up: previous tab
Ctrl + Page Down: next tab

That's right.


[RIP-10]  Add test cases for  TopicStatsTable.java

What is the purpose of the change
Add test cases for  TopicStatsTable.java
Brief changelog
XX
Verifying this change
XXXX
Follow this checklist to help us incorporate your contribution quickly and easily. Notice, it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR.

[x] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Coverage increased (+0.2%) to 44.972% when pulling f827424131772fd8cb7fccec76b9aae8a19a00ad on radishlee:develop_TopicStatsTableTest into 6c17951c97a2333cc84f5c1455cf6f1d02a4d2c4 on apache:develop.

forget to add license


rpi32 build error

Environment

VerneMQ Version:  1.3.0
OS: Raspbian 9 Stretch
Erlang/OTP version (if building from source):
18.3

I have tried building Vernemq using different versions of Erlang/OTP and Vernemq, but none seem to build.
This is the error I get:
`fatal: Not a git repository (or any of the parent directories): .git
/home/pi/vernemq1.3/vernemq-1.3.0/rebar3 as rpi32 release --overlay_vars vars.config
===> Verifying dependencies...
===> Compiling vmq_ql
===> Running neotoma...
===> Getting log of git dependency failed in /home/pi/vernemq1.3/vernemq-1.3.0. Falling back to version 0.0.0
ln: target '_build/default/lib/' is not a directory: No such file or directory
===> Hook for compile failed!
Makefile:56: recipe for target 'rel' failed
make: *** [rel] Error 1
`
Can anyone point me in a direction so I can successfully compile on a Raspberry pi 3 running Rasbian.

Please include minimal steps to reproduce the issue, if possible.

@rastomatti thanks for coming here!
RPI, ARM needs a couple of tricks to run VerneMQ, due to LevelDB. Many people have managed to run it, but with different levels of pain for different releases of VerneMQ. I can't say atm whether it shoud be possible or not for the current release.
Have you seen https://github.com/erlio/vernemq/issues/498?
-> @larshesel you had a fix for the RPI32 build  there but we didn't merge that, it seems?

Thanks for your reply, @ioolkos !
I am going to use Vernemq as a part of a bachlor-project, so any assistance would be greatly appriciated.
I have read post #498 , and unfortunatly I still could not build it on my RPI.
@larshesel , In this post you have made a branch called fix-rpi-build. Is this merged into master?
Thanks for any help. :)

Hi again,
I have successfully built vernemq for the raspberry pi now. Previously I thought I built the fix-rpi32-build branch, but it was the master I previously built from.
When cloning the correct branch, I successfully built Vernemq. Note that I needed OTP 18.3 for it to build.
I will close the issue, but I sugest to merge this branch into master.
Thanks alot!

@rastomatti OK, great. Thanks for letting us know! we'll investigate if the fix-rpi32 branch can and should be merged.


NativeMenuItemSeparator does not work in exported managed menu on Windows

When using  and then  to place it in Windows, the horizontal line is not shown. Instead a greyed out menu item named "Avalonia.Controls.NativeMenuItemSeparator" is shown.
To Reproduce
Steps to reproduce the behavior:

Clone Avalonia repo from github on a Windows machine.
Checkout branch 'origin/releases/11.0.0.-preview4'
Build in Visual Studio 2022 17.4.1
Run 'ControlCatalog.NetCore'
Select the 'Menu' page sample
Expand the top leftmost item 'File'.

Expected behavior
I expected a horizontal line for the separator.
Screenshots

Desktop (please complete the following information):

OS: Windows 11
Version 11.0.0-preview4

Looking into this further, the code was broadly the same as the code in this PR before #8732 which removed this line as it was marked [Obsolete].
https://github.com/AvaloniaUI/Avalonia/commit/00c08235cc698d1842693e2a1850d32319f6f3e3#diff-2ab349e1a3f8df96884580b65454a784da493eac9d69ac68ecc8d159a7555bf0L14
And the previous code was added by @kekekeks in this commit:
https://github.com/AvaloniaUI/Avalonia/commit/465273c883125861d0dcb692e3d12d8f8d70d34e#diff-3e3821b2fbb03908d076a3f3d10c710ce1af457ffa658badfb90c5f42f6f8e74R8
@kekekeks given that setting the header to "-" is a hack, and that removing it makes native menu separators break, what is the correct fix?

@grokys we can revert change in this file. Or we can merge https://github.com/AvaloniaUI/Avalonia/pull/9655.
Either way it is a hack, and new PR being bigger one. But I think if we inherit separator from NativeMenuItem for now, it should be easily possible to remove ReflectionBinding from the templates as well.
Alternatively, we can change NativeMenuBar items generator to generate MenuItem/Separator with all the bindings from the code.

But I think if we inherit separator from NativeMenuItem for now, it should be easily possible to remove ReflectionBinding from the templates as well.

That's what #9655 does, right? Probably we should merge that PR then as anything is better than the current broken state, and if it allows us to remove ReflectionBinding, even better.


Admin - Home Dashboard

Add UI for Admin Home Dashboard
No data

Data

@muchinon I will like to take on this issue

#149 @muchinon I completed my task and raised a pull request


404 Not Found

When i open http://site.com/web/, i receive 404 Not Found message from FastRoute.
But the console script seems ok and works fine

The URL should be http://localhost:8000/, not http://localhost:8000/web/


Feature Request: Add tap action to buttons

Can you add the tap action to the button/slider? Instead of pulling up more info for lights, it would be great to assign toggle and then more info can be on double tap or hold...depending on what user wants. Thanks.

This is definitely something that is missing and I will add that in a future release.

Tap on this area should toggle the switch/slider by default, yeah.

I'd like to see this feature also.
Though, I still want to access the more info dialog (or link to another vertical stack)
Would it be possible to also  have an option to do that?
As an example, if this image was exclusively a light slider:

maybe the link could occupy the same space as the power or X buttons.

This is now a new feature in the new beta!
https://github.com/Clooos/Bubble-Card/releases/tag/v0.0.1-beta.7

This is now a new feature in the new beta! https://github.com/Clooos/Bubble-Card/releases/tag/v0.0.1-beta.7

Any chance we could get this in the UI editor, similar to how Mushroom cards work? Thank you!


Termux script and Better Formatting

Added a script for termux for easier Installation
Update README.md Installation Instructions

Cool, thank you for this.
merging..


Add SX Network Mainnet

Fixes # .
Changes proposed in this pull request:

add SX Network mainnet

@ChaituVR are there any other changes you'd need to get this merged?

Hey @dankostiuk looks good, can you update the branch plz

Sorry for not noticing this @dankostiuk Can you plz update the branch again, or click on Allow update from maintainers so i can update when we merge this😅


Discrepancy in Reproducing Results with llama-7B on TriviaQA Dataset

I am currently attempting to replicate the results presented in your paper using the llama-7B model on the iti_trivia_qa_val. However, I am encountering a significant discrepancy between my replicated results and those reported in your paper.
In my approach, I used the 'value' from the 'answer' field in the dataset as the Best Answer, the contents of 'aliases' as the Correct Answers, and 'false_answer' as the Incorrect Answers. Based on these, I calculated the following metrics:

MC1: 0.3598
MC2: 0.6605
These values are notably lower than the 0.896 reported in your study.

Could you please provide some insight into the specific metric calculation methods used in your paper? I am keen to understand if there are any differences in our approaches that could account for this discrepancy. Additionally, any guidance on accurately replicating your results would be highly appreciated.

Thank you for your response. I would like to clarify that I am also using the indicator of log prob on sampled correct answer > log prob on incorrect answer, similar to the MC1 metric used in the TruthfulQA.
However, I believe there might be a difference in how we are sampling the correct answers. In my approach, I used the 'value' field from the 'answer' column in the dataset you provided (iti_trivia_qa_val) as the correct answers. Could you please guide me on the appropriate method to sample correct answers in order to replicate the results presented in your paper?

Could you explain how you are currently calculating MC1 and MC2? For MC1, for example, it should be only 1 correct answer compared to multiple incorrect but for trivia qa there is just one provided incorrect answer.
Yes, we also sample a correct answer from ['answer']['aliases'] and compare the log prob to the incorrect answer. Perhaps sampling is an issue? Note, we also use an instruction prompt with few-shot demonstrations as suggested in the original LLaMA paper. Perhaps this may be helpful:
prefix = 'Answer these questions:\n'
if num_few_shot > 0:
    rand_idxs = np.random.choice(len(trivia_qa), num_few_shot, replace=False).tolist()
    for i in rand_idxs:
        ans_idx = np.random.choice(len(trivia_qa[i]['answer']['aliases']), 1)[0]
        prefix += 'Q: ' + trivia_qa[i]['question'] + '?\nA: ' + trivia_qa[i]['answer']['aliases'][ans_idx] + '\n\n'

prompt = prefix + 'Q: ' + question + '?\nA: '

XianfengJiao

How many shots did you use for the few-shot demonstrations for TriviaQA and natural questions? Thanks in advance.

Both were using zero-shot.


dom touchmove event is broken by the plugin

Hello,
Thanks a lot for this plugin! It works well except one important issue : touchmove never calls touchend once we lift our finger from the screen. This makes the next touchmove to not start on DOM side. We have to tap once (and so get a touchend event) to be able to receive the next touchmove event.
This is what happens when we try to move a finger across the screen:

DOM touchstart is called
ForceTouchRecognizer is called
DOM touchmove is called

Then we lift our finger up, and that's it. No touchend event.
If we try to do another move gesture, this is what happens:

ForceTouchRecognizer is called

And that's it.
No touchstart, no touchmove or touchend.
If we tap once, , we correctly get a touchstart, then a touchend. After this tap, we can once again repeat the initial sequence.
We use your plugin on top of Cocoon.io (built on Cordova). I do not know if this is specific to Cocoon.io webview or if it is a general issue, even with Phonegap. However it is fairly easy to test for you I guess.
Could you take a look at it please ? We have a deadline pretty soon and Apple asked us if we'll make use of 3dtouch in our game, we'd love to say yes to them as you can imagine :)
Regards.

Hi,
So you're using the watchForceTouches feature, right? I recently found this JS lib that does a similar thing. Can you give it a go and let me know if that solves your issue? If it does then I will deprecate the implementation here and point folks to that lib.
Thanks,
Eddy

Unfortunatly this lib is pure JS, so it doesn't work for us. Neitheir it implements 3dtouchs to the current webview (so only WKWebview is supported) nor it allows to configure quickstart menu on the home button.
Your implementation seems to be the only available at this moment for Cordova apps and it works great if not for this bug.

I'm testing this plugin on iPhone 6s and app was build with Xcode 7, still following code ```
ThreeDeeTouch.isAvailable(function (avail) {
// 'avail' is a boolean
alert("avail? " + avail)
});
returns me false.

@array-addu Please don't hijack issues of others.

@JiDW Can you post me the JS code to track touchmove (etc) events?

Hello,
Thanks for your help! I tried a lot of things yesterday but knowing nothing about Objective-C is a big issue to find the bug :)
I tried to set "cancelsTouchesInView" without success. Here is a commit on my fork for testing purpose:
https://github.com/JiDW/cordova-plugin-3dtouch/commit/03efc33f6ba2d4ac2a49921b3b05b0fd9f3c02ce
To answer your question:
Let's create a page and add a canvas on it. Then add event listeners on this element.
canvas.addEventListener("touchstart", function(event){
	console.log("CANVAS: Touch start event fired");
});
canvas.addEventListener("touchmove", function(event){
	console.log("CANVAS: Touch move event fired");
});
canvas.addEventListener("touchend", function(event){
	console.log("CANVAS: Touch end event fired");
});
canvas.addEventListener("touchmove", function(event){
	console.log("CANVAS: Touch cancel event fired");
});

Then call your plugin inside the deviceready cordova event:
ThreeDeeTouch.isAvailable(function (avail){
	//if(avail) <= Put in comment just to show that the same bug occurs even when 3dtouch isnt available
	ThreeDeeTouch.watchForceTouches(function(result) {
		console.log("3DTOUCH-JS: hard press event fired");
	});
});

And that's it. Just launch this code and try to move your finger on the canvas element.
The first time it will work like a charm except that there will be no "touchend" event if touchmove is called at least one time.
The second time, only the iOS events and the  ThreeDeeTouch.watchForceTouches will be called, not the javascript native events.
This behavior will continue until you make a quick tap, without touchmove. This will allow the javascript to be called again until the next touchmove.
My guess is that once iOS recognize the forceTouchRecognizer gesture, it mess with javascript in some way. Tapping quickly on the canvas allows to fire an event that isn't recognized by the plugin and momentarily restore the state of the event listener.
It's just a guess however.
Finally, I still don't know if this happen in every webview.
I do not know how to create a cordova+native webview app to test this, I use a compiler (Cocoon.io to do so). It has its own webview engine.
If this issue isn't reproductible on a standard phoneGap app, I will contact the devs at Ludei that develops Cocoon. However, I wouldn't be surprised to foud out that this can happens everywhere..
Here is a video of the bug (sorry for the potatoe quality) : https://www.youtube.com/watch?v=2pJ6yqAgGG0

Hi,
Thanks for being so thorough. I've created a new Cordova CLI app and added this plugin and cordova-plugin-console to see the log output. I encourage you to do the same and replace the contents of index.html by this:
<!DOCTYPE html>

  <meta name="format-detection" content="telephone=no">
  <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
  <link rel="stylesheet" type="text/css" href="css/index.css">

Connecting to Device

Device is Ready

    <button onclick="watchForceTouches()">watchForceTouches</button>

    <canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000"></canvas>

After watchForceTouches was pressed I force-pressed inside the canvas element:
2016-03-10 19:39:17.721 HelloCordova[506:155498] CANVAS: Touch start event fired
2016-03-10 19:39:18.007 HelloCordova[506:155498] 3DTOUCH-JS: hard press event fired
2016-03-10 19:39:18.174 HelloCordova[506:155498] CANVAS: Touch end event fired

Then I force-pressed inside the canvas again, but moved my finger a bit as well:
2016-03-10 19:43:01.342 HelloCordova[506:155498] CANVAS: Touch start event fired
2016-03-10 19:43:01.572 HelloCordova[506:155498] CANVAS: Touch move event fired
2016-03-10 19:43:01.572 HelloCordova[506:155498] CANVAS: Touch cancel event fired
2016-03-10 19:43:01.588 HelloCordova[506:155498] CANVAS: Touch move event fired
2016-03-10 19:43:01.589 HelloCordova[506:155498] CANVAS: Touch cancel event fired
2016-03-10 19:43:01.605 HelloCordova[506:155498] CANVAS: Touch move event fired
2016-03-10 19:43:01.606 HelloCordova[506:155498] CANVAS: Touch cancel event fired
2016-03-10 19:43:01.623 HelloCordova[506:155498] CANVAS: Touch move event fired
2016-03-10 19:43:01.623 HelloCordova[506:155498] CANVAS: Touch cancel event fired
2016-03-10 19:43:01.638 HelloCordova[506:155498] CANVAS: Touch move event fired
2016-03-10 19:43:01.639 HelloCordova[506:155498] CANVAS: Touch cancel event fired
2016-03-10 19:43:01.708 HelloCordova[506:155498] 3DTOUCH-JS: hard press event fired
2016-03-10 19:43:02.021 HelloCordova[506:155498] CANVAS: Touch move event fired
2016-03-10 19:43:02.022 HelloCordova[506:155498] CANVAS: Touch cancel event fired
2016-03-10 19:43:02.038 HelloCordova[506:155498] CANVAS: Touch move event fired
2016-03-10 19:43:02.039 HelloCordova[506:155498] CANVAS: Touch cancel event fired
2016-03-10 19:43:02.056 HelloCordova[506:155498] CANVAS: Touch end event fired

Looks good, right?

This case would work for me too. What happens for you when you try to move your finger a bit a second time, just after the first one ?
Thanks!


Disable OneDrive's "Start back up" in File Explorer on Windows 11

This shows up on windows 11 in the file explorer path while browsing certain folders such as documents.

The responsible reg value is located here:
Path: Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StorageProvider\OneDrive
Name: StorageProviderKnownFolderSyncInfoSourceFactory
And once overwritten with any value, this "feature" is immediately disabled. However, after a reboot (if one drive starts) it will enable it again.
I followed the instructions of this answer and set a deny permission for "set value" on the key and this worked like a charm.
Would be a nice feature to add to your awesome tool!

Heya,
This definitely seems like something I can look into adding. We'll have to see if this'll continue to work in the future. Microsoft can be quite stubborn in their habit of force-enabling stuff like this to continue to push their product.

After looking into this a bit more I have decided not to include this feature for now. Messing with permissions of keys in the registry can cause unintended consequences that I'd rather avoid with this script.
I am definitely open to revisit this if and when a better way is found or introduced to disable this element.


fail to install torch-scatter

📚 Installation

When I type pip install torch-scatter in the cmd, it shows the following error  'cl.exe' failed with 0x000007b code.
Collecting torch-scatter
  Using cached https://files.pythonhosted.org/packages/d4/83/67eeea00c2db1959e2ff95d8680dbd756977bfab254bda8658f09dc3bc11/torch_scatter-1.1.2.tar.gz
Building wheels for collected packages: torch-scatter
  Building wheel for torch-scatter (setup.py) ... error
  Complete output from command d:\python36\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\xxx\\AppData\\Local\\Temp\\pip-install-fcm_sykj\\torch-scatter\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d C:\Users\xxx\AppData\Local\Temp\pip-wheel-f40r_y33 --python-tag cp36:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build\lib.win-amd64-3.6
  creating build\lib.win-amd64-3.6\test
  copying test\test_backward.py -> build\lib.win-amd64-3.6\test
  copying test\test_forward.py -> build\lib.win-amd64-3.6\test
  copying test\test_multi_gpu.py -> build\lib.win-amd64-3.6\test
  copying test\test_std.py -> build\lib.win-amd64-3.6\test
  copying test\utils.py -> build\lib.win-amd64-3.6\test
  copying test\__init__.py -> build\lib.win-amd64-3.6\test
  creating build\lib.win-amd64-3.6\torch_scatter
  copying torch_scatter\add.py -> build\lib.win-amd64-3.6\torch_scatter
  copying torch_scatter\div.py -> build\lib.win-amd64-3.6\torch_scatter
  copying torch_scatter\max.py -> build\lib.win-amd64-3.6\torch_scatter
  copying torch_scatter\mean.py -> build\lib.win-amd64-3.6\torch_scatter
  copying torch_scatter\min.py -> build\lib.win-amd64-3.6\torch_scatter
  copying torch_scatter\mul.py -> build\lib.win-amd64-3.6\torch_scatter
  copying torch_scatter\std.py -> build\lib.win-amd64-3.6\torch_scatter
  copying torch_scatter\sub.py -> build\lib.win-amd64-3.6\torch_scatter
  copying torch_scatter\__init__.py -> build\lib.win-amd64-3.6\torch_scatter
  creating build\lib.win-amd64-3.6\torch_scatter\utils
  copying torch_scatter\utils\ext.py -> build\lib.win-amd64-3.6\torch_scatter\utils
  copying torch_scatter\utils\gen.py -> build\lib.win-amd64-3.6\torch_scatter\utils
  copying torch_scatter\utils\__init__.py -> build\lib.win-amd64-3.6\torch_scatter\utils
  running build_ext
  d:\python36\lib\site-packages\torch\utils\cpp_extension.py:184: UserWarning: Error checking compiler version for cl: Command 'cl' returned non-zero exit status<PHONE_NUMBER>.
    warnings.warn('Error checking compiler version for {}: {}'.format(compiler, error))
  building 'torch_scatter.scatter_cpu' extension
  creating build\temp.win-amd64-3.6
  creating build\temp.win-amd64-3.6\Release
  creating build\temp.win-amd64-3.6\Release\cpu
  cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Id:\python36\lib\site-packages\torch\lib\include -Id:\python36\lib\site-packages\torch\lib\include\torch\csrc\api\include -Id:\python36\lib\site-packages\torch\lib\include\TH -Id:\python36\lib\site-packages\torch\lib\include\THC -Id:\python36\include -Id:\python36\include /EHsc /Tpcpu/scatter.cpp /Fobuild\temp.win-amd64-3.6\Release\cpu/scatter.obj -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=scatter_cpu -D_GLIBCXX_USE_CXX11_ABI=0
  error: command 'cl.exe' failed: No such file or directory

  ----------------------------------------
  Failed building wheel for torch-scatter
  Running setup.py clean for torch-scatter
Failed to build torch-scatter

Environment

OS: win10
Python version: python 3.6
PyTorch version: 1.0.1
CUDA/cuDNN version: 9.0/7.0
GCC version: 6.3.0
How you tried to install PyTorch Geometric and its extensions (pip, source): pip
Any other relevant information: I dont use anaconda

Additional context

First, I think it is a problem about environment variable. But when I add D:\Microsoft Visual Studio 14.0\VC\bin to the PATH in order to use cl.exe, it still failed to install torch-scatter.
I am not a C/C++ coder. Hope can get some useful information here.

Hi, what is the error message after you add cl.exe to the PATH?

Thank you for your quick reply. When I remove D:\Microsoft Visual Studio 14.0\VC\bin from PATH and type pip install torch-scatter in the cmd prompt, it opens a new dialog telling me that it cannot excute the code because it cannot find the mspdb140.dll file. After I close the dialog , the original cmd prompt shows the following output.
 Running setup.py clean for torch-scatter
Failed to build torch-scatter
Installing collected packages: torch-scatter
  Running setup.py install for torch-scatter ... error
    Complete output from command d:\python36\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\mario\\AppData\\Local\\Temp\\pip-install-pz5b47kj\\torch-scatter\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\mario\AppData\Local\Temp\pip-record-0czsx4eo\install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.6
    creating build\lib.win-amd64-3.6\test
    copying test\test_backward.py -> build\lib.win-amd64-3.6\test
    copying test\test_forward.py -> build\lib.win-amd64-3.6\test
    copying test\test_multi_gpu.py -> build\lib.win-amd64-3.6\test
    copying test\test_std.py -> build\lib.win-amd64-3.6\test
    copying test\utils.py -> build\lib.win-amd64-3.6\test
    copying test\__init__.py -> build\lib.win-amd64-3.6\test
    creating build\lib.win-amd64-3.6\torch_scatter
    copying torch_scatter\add.py -> build\lib.win-amd64-3.6\torch_scatter
    copying torch_scatter\div.py -> build\lib.win-amd64-3.6\torch_scatter
    copying torch_scatter\max.py -> build\lib.win-amd64-3.6\torch_scatter
    copying torch_scatter\mean.py -> build\lib.win-amd64-3.6\torch_scatter
    copying torch_scatter\min.py -> build\lib.win-amd64-3.6\torch_scatter
    copying torch_scatter\mul.py -> build\lib.win-amd64-3.6\torch_scatter
    copying torch_scatter\std.py -> build\lib.win-amd64-3.6\torch_scatter
    copying torch_scatter\sub.py -> build\lib.win-amd64-3.6\torch_scatter
    copying torch_scatter\__init__.py -> build\lib.win-amd64-3.6\torch_scatter
    creating build\lib.win-amd64-3.6\torch_scatter\utils
    copying torch_scatter\utils\ext.py -> build\lib.win-amd64-3.6\torch_scatter\utils
    copying torch_scatter\utils\gen.py -> build\lib.win-amd64-3.6\torch_scatter\utils
    copying torch_scatter\utils\__init__.py -> build\lib.win-amd64-3.6\torch_scatter\utils
    running build_ext
    d:\python36\lib\site-packages\torch\utils\cpp_extension.py:184: UserWarning: Error checking compiler version for cl: Command 'cl' returned non-zero exit status<PHONE_NUMBER>.
      warnings.warn('Error checking compiler version for {}: {}'.format(compiler, error))
    building 'torch_scatter.scatter_cpu' extension
    creating build\temp.win-amd64-3.6
    creating build\temp.win-amd64-3.6\Release
    creating build\temp.win-amd64-3.6\Release\cpu
    cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Id:\python36\lib\site-packages\torch\lib\include -Id:\python36\lib\site-packages\torch\lib\include\torch\csrc\api\include -Id:\python36\lib\site-packages\torch\lib\include\TH -Id:\python36\lib\site-packages\torch\lib\include\THC -Id:\python36\include -Id:\python36\include /EHsc /Tpcpu/scatter.cpp /Fobuild\temp.win-amd64-3.6\Release\cpu/scatter.obj -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=scatter_cpu -D_GLIBCXX_USE_CXX11_ABI=0
    error: command 'cl.exe' failed: No such file or directory

After I add it to PATH, the output is what I show in the last comment (https://github.com/rusty1s/pytorch_geometric/issues/226#issue-435398041).

Thank you for your quick reply. When I remove D:\Microsoft Visual Studio 14.0\VC\bin from PATH and type pip install torch-scatter in the cmd prompt, it opens a new dialog telling me that it cannot excute the code because it cannot find the mspdb140.dll file. After I close the dialog , the original cmd prompt shows the following output.
 Running setup.py clean for torch-scatter
Failed to build torch-scatter
Installing collected packages: torch-scatter
  Running setup.py install for torch-scatter ... error
    Complete output from command d:\python36\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\xxx\\AppData\\Local\\Temp\\pip-install-pz5b47kj\\torch-scatter\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\xxx\AppData\Local\Temp\pip-record-0czsx4eo\install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.6
    creating build\lib.win-amd64-3.6\test
    copying test\test_backward.py -> build\lib.win-amd64-3.6\test
    copying test\test_forward.py -> build\lib.win-amd64-3.6\test
    copying test\test_multi_gpu.py -> build\lib.win-amd64-3.6\test
    copying test\test_std.py -> build\lib.win-amd64-3.6\test
    copying test\utils.py -> build\lib.win-amd64-3.6\test
    copying test\__init__.py -> build\lib.win-amd64-3.6\test
    creating build\lib.win-amd64-3.6\torch_scatter
    copying torch_scatter\add.py -> build\lib.win-amd64-3.6\torch_scatter
    copying torch_scatter\div.py -> build\lib.win-amd64-3.6\torch_scatter
    copying torch_scatter\max.py -> build\lib.win-amd64-3.6\torch_scatter
    copying torch_scatter\mean.py -> build\lib.win-amd64-3.6\torch_scatter
    copying torch_scatter\min.py -> build\lib.win-amd64-3.6\torch_scatter
    copying torch_scatter\mul.py -> build\lib.win-amd64-3.6\torch_scatter
    copying torch_scatter\std.py -> build\lib.win-amd64-3.6\torch_scatter
    copying torch_scatter\sub.py -> build\lib.win-amd64-3.6\torch_scatter
    copying torch_scatter\__init__.py -> build\lib.win-amd64-3.6\torch_scatter
    creating build\lib.win-amd64-3.6\torch_scatter\utils
    copying torch_scatter\utils\ext.py -> build\lib.win-amd64-3.6\torch_scatter\utils
    copying torch_scatter\utils\gen.py -> build\lib.win-amd64-3.6\torch_scatter\utils
    copying torch_scatter\utils\__init__.py -> build\lib.win-amd64-3.6\torch_scatter\utils
    running build_ext
    d:\python36\lib\site-packages\torch\utils\cpp_extension.py:184: UserWarning: Error checking compiler version for cl: Command 'cl' returned non-zero exit status<PHONE_NUMBER>.
      warnings.warn('Error checking compiler version for {}: {}'.format(compiler, error))
    building 'torch_scatter.scatter_cpu' extension
    creating build\temp.win-amd64-3.6
    creating build\temp.win-amd64-3.6\Release
    creating build\temp.win-amd64-3.6\Release\cpu
    cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Id:\python36\lib\site-packages\torch\lib\include -Id:\python36\lib\site-packages\torch\lib\include\torch\csrc\api\include -Id:\python36\lib\site-packages\torch\lib\include\TH -Id:\python36\lib\site-packages\torch\lib\include\THC -Id:\python36\include -Id:\python36\include /EHsc /Tpcpu/scatter.cpp /Fobuild\temp.win-amd64-3.6\Release\cpu/scatter.obj -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=scatter_cpu -D_GLIBCXX_USE_CXX11_ABI=0
    error: command 'cl.exe' failed: No such file or directory

After I add it to PATH, the output is what I show in the last comment (https://github.com/rusty1s/pytorch_geometric/issues/226#issue-435398041).

So it seems it still can not find your compiler. Please verify that cl.exe is executable from the command line.

#error -- unsupported GNU version! gcc versions later than 6 are not supported!
^~~~~
error: command '/usr/local/cuda/bin/nvcc' failed with exit status 1

As the error suggest, try downgrading your GCC, e.g., to version 5.4.0.

You can type "pip install torch-scatter==1.1.2" in cmd to install the package of torch-scatter.

I also have a problem with "ERROR: failed building wheel for torch-scatter",  the message is like this:
ERROR: Complete output from command 'c:\users\wxd\anaconda3\python.exe' -u -c 'import setuptools, tokenize;file='"'"'C:\Users\wxd\AppData\Local\Temp\pip-install-hrj8b7ua\torch-scatter\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\wxd\AppData\Local\Temp\pip-wheel-o3ees3c9' --python-tag cp35:
ERROR: running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-3.5
creating build\lib.win-amd64-3.5\test
copying test\test_backward.py -> build\lib.win-amd64-3.5\test
copying test\test_forward.py -> build\lib.win-amd64-3.5\test
copying test\test_max_min.py -> build\lib.win-amd64-3.5\test
copying test\test_multi_gpu.py -> build\lib.win-amd64-3.5\test
copying test\test_std.py -> build\lib.win-amd64-3.5\test
copying test\utils.py -> build\lib.win-amd64-3.5\test
copying test_init_.py -> build\lib.win-amd64-3.5\test
creating build\lib.win-amd64-3.5\torch_scatter
copying torch_scatter\add.py -> build\lib.win-amd64-3.5\torch_scatter
copying torch_scatter\div.py -> build\lib.win-amd64-3.5\torch_scatter
copying torch_scatter\max.py -> build\lib.win-amd64-3.5\torch_scatter
copying torch_scatter\mean.py -> build\lib.win-amd64-3.5\torch_scatter
copying torch_scatter\min.py -> build\lib.win-amd64-3.5\torch_scatter
copying torch_scatter\mul.py -> build\lib.win-amd64-3.5\torch_scatter
copying torch_scatter\std.py -> build\lib.win-amd64-3.5\torch_scatter
copying torch_scatter\sub.py -> build\lib.win-amd64-3.5\torch_scatter
copying torch_scatter_init_.py -> build\lib.win-amd64-3.5\torch_scatter
creating build\lib.win-amd64-3.5\torch_scatter\utils
copying torch_scatter\utils\ext.py -> build\lib.win-amd64-3.5\torch_scatter\utils
copying torch_scatter\utils\gen.py -> build\lib.win-amd64-3.5\torch_scatter\utils
copying torch_scatter\utils_init_.py -> build\lib.win-amd64-3.5\torch_scatter\utils
running build_ext
c:\users\wxd\anaconda3\lib\site-packages\torch\utils\cpp_extension.py:184: UserWarning: Error checking compiler version for g++: Command 'g++' returned non-zero exit status 1
warnings.warn('Error checking compiler version for {}: {}'.format(compiler, error))
building 'torch_scatter.scatter_cpu' extension
creating build\temp.win-amd64-3.5
creating build\temp.win-amd64-3.5\Release
creating build\temp.win-amd64-3.5\Release\cpu

other error information:
c:\users\wxd\anaconda3\lib\site-packages\torch\utils\cpp_extension.py:184: UserWarning: Error checking compiler version for g++: Command 'g++' returned non-zero exit status 1
warnings.warn('Error checking compiler version for {}: {}'.format(compiler, error))
c:\users\wxd\anaconda3\lib\site-packages\torch\include/torch/csrc/jit/ir.h:1077:20: error: function 'torch::jit::Value* torch::jit::Graph::insertGetAttr(torch::jit::Value*, const string&)' definition is marked dllimport
Maybe there is some trouble with my g++?
platform information:
OS:windows 10
python version:  python 3.5
torch verison: pytorch 1.1
cuda version: cuda 9.0
gcc version: gcc 5.3.0
relevant information: I use Anaconda
I will be appeciate if you can help me

This could indeed be the problem. It may help to see if gcc 5.4.0 fixes your problems.

This could indeed be the problem. It may help to see if gcc 5.4.0 fixes your problems.
Edit: I see that you are on Windows. The MSVC compiler should work just fine there.

OK,I will try using GCC 5.4.0 on my Anaconda,  thank U~

I change OS to ubuntu16.04 bacause anaconda does not have gcc 5.4.0 for win...Installation is OK, but when I run my code, there is some other problems
in the file .../torch_scatter/utils/ext.py and the code is import torch_scatter.scatter_cuda, and there is an error
:Import error ,scatter_cuda.cpython-37m-x86_64-linux-gnu.so:undined symbol: __cudaPopCallConfiguration

Seems related to point 7 in the FAQ.

emmmmm, I try the command, but the results are same and both of them show cuda  9.0.176, :(

Thanks for your help~

Please uninstall torch-scatter, reinstall it and show me the installation log. There must have been an error there.

Created temporary directory: /tmp/pip-ephem-wheel-cache-0x7o1yj_
Created temporary directory: /tmp/pip-req-tracker-756yuiai
Created requirements tracker '/tmp/pip-req-tracker-756yuiai'
Created temporary directory: /tmp/pip-install-8z4jmdcj
Collecting torch-scatter
1 location(s) to search for versions of torch-scatter:

https://pypi.org/simple/torch-scatter/
Getting page https://pypi.org/simple/torch-scatter/
Starting new HTTPS connection (1): pypi.org:443
https://pypi.org:443 "GET /simple/torch-scatter/ HTTP/1.1" 200 1104
Analyzing links from page https://pypi.org/simple/torch-scatter/
Found link https://files.pythonhosted.org/packages/29/96/566ac314e796d4b07209a3b88cc7a8d2e8582d55819e33f72e6c0e8d8216/torch_scatter-0.3.0.tar.gz#sha256=9e5e5a6efa4ef45f584e8611f83690d799370dd122b862646751ae112b685b50 (from https://pypi.org/simple/torch-scatter/), version: 0.3.0
Found link https://files.pythonhosted.org/packages/6a/b0/ecffacddf573c147c70c6e43ce05d24f007155ce3fb436959d3d2a24da46/torch_scatter-1.0.2.tar.gz#sha256=ccda794c25265b3450206b7fb0bf74f16a0b45f3f72d9547a42e44648a32faee (from https://pypi.org/simple/torch-scatter/), version: 1.0.2
Found link https://files.pythonhosted.org/packages/08/09/07b106f3e74246f4ecf6517013a053b6dd7486c4f889d81f39adc662431f/torch_scatter-1.0.3.tar.gz#sha256=e626993194819ba65cdf89a52fbbb7780569d9e157bc63dbef13ead6b7a33930 (from https://pypi.org/simple/torch-scatter/), version: 1.0.3
Found link https://files.pythonhosted.org/packages/2d/70/df2bc259d9606f00854ca43b6839f9047ec44900563435e0067584c93864/torch_scatter-1.0.4.tar.gz#sha256=ec004d687e47da9d5477407849d815629fc8b571ee87aeeebf6af8ed6f16defc (from https://pypi.org/simple/torch-scatter/), version: 1.0.4
Found link https://files.pythonhosted.org/packages/2f/97/c50a6aeaedc6924180c6f5810d2a7405ce11aa9b82ba4284badad549d665/torch_scatter-1.1.0.tar.gz#sha256=e534cc2ecb2f9d9b559b1513cd411737d26ea5585d1d65ff571fec55f42a49de (from https://pypi.org/simple/torch-scatter/), version: 1.1.0
Found link https://files.pythonhosted.org/packages/91/5f/eb1d3ef3810cb1165859d40db4d9ee6d7f1dfef97d7e5c34010055f43d95/torch_scatter-1.1.1.tar.gz#sha256=9db7f2c0a5cddf6cfde633e33db7c2c94eaab163e9f8edb46460d6414cc97917 (from https://pypi.org/simple/torch-scatter/), version: 1.1.1
Found link https://files.pythonhosted.org/packages/d4/83/67eeea00c2db1959e2ff95d8680dbd756977bfab254bda8658f09dc3bc11/torch_scatter-1.1.2.tar.gz#sha256=766c2476f5da5ffc25fa8e249ccf50f594031cdce3922abb23559e8e3b14337a (from https://pypi.org/simple/torch-scatter/), version: 1.1.2
Found link https://files.pythonhosted.org/packages/07/c0/f7ac424496f4a3bcb31aa993fba29077a6d42fc2624c66e90b58a566a98e/torch_scatter-1.2.0.tar.gz#sha256=3a0259105d07d264c740eec8e4267260a5c144cf55472abd26022fff4fd73281 (from https://pypi.org/simple/torch-scatter/), version: 1.2.0
Found link https://files.pythonhosted.org/packages/24/b7/680c3b392a4b55a0ebfb480aabb0d5c188e94bb21790104175c8cd614947/torch_scatter-1.3.0.tar.gz#sha256=bf7d561b8ef12b39a99f5797c90b989a0ce2c3ee4de74dff3b170f2d8566e1d4 (from https://pypi.org/simple/torch-scatter/), version: 1.3.0
Found link https://files.pythonhosted.org/packages/35/d4/750403a8aa32cdb3d2d05849c6a10e4e0604de5e0cc94b81a0d0d69a75f3/torch_scatter-1.3.1.tar.gz#sha256=54cbad248350165ddc921ded3fe7a69be5d30c6536273a1a3282e375289f86ec (from https://pypi.org/simple/torch-scatter/), version: 1.3.1
Using version 1.3.1 (newest of versions: 0.3.0, 1.0.2, 1.0.3, 1.0.4, 1.1.0, 1.1.1, 1.1.2, 1.2.0, 1.3.0, 1.3.1)
Created temporary directory: /tmp/pip-unpack-j6jrnevc
Starting new HTTPS connection (1): files.pythonhosted.org:443
https://files.pythonhosted.org:443 "GET /packages/35/d4/750403a8aa32cdb3d2d05849c6a10e4e0604de5e0cc94b81a0d0d69a75f3/torch_scatter-1.3.1.tar.gz HTTP/1.1" 200 12787
Downloading https://files.pythonhosted.org/packages/35/d4/750403a8aa32cdb3d2d05849c6a10e4e0604de5e0cc94b81a0d0d69a75f3/torch_scatter-1.3.1.tar.gz
Downloading from URL https://files.pythonhosted.org/packages/35/d4/750403a8aa32cdb3d2d05849c6a10e4e0604de5e0cc94b81a0d0d69a75f3/torch_scatter-1.3.1.tar.gz#sha256=54cbad248350165ddc921ded3fe7a69be5d30c6536273a1a3282e375289f86ec (from https://pypi.org/simple/torch-scatter/)
Added torch-scatter from https://files.pythonhosted.org/packages/35/d4/750403a8aa32cdb3d2d05849c6a10e4e0604de5e0cc94b81a0d0d69a75f3/torch_scatter-1.3.1.tar.gz#sha256=54cbad248350165ddc921ded3fe7a69be5d30c6536273a1a3282e375289f86ec to build tracker '/tmp/pip-req-tracker-756yuiai'
Running setup.py (path:/tmp/pip-install-8z4jmdcj/torch-scatter/setup.py) egg_info for package torch-scatter
Running command python setup.py egg_info
running egg_info
creating pip-egg-info/torch_scatter.egg-info
writing pip-egg-info/torch_scatter.egg-info/PKG-INFO
writing dependency_links to pip-egg-info/torch_scatter.egg-info/dependency_links.txt
writing top-level names to pip-egg-info/torch_scatter.egg-info/top_level.txt
writing manifest file 'pip-egg-info/torch_scatter.egg-info/SOURCES.txt'
reading manifest file 'pip-egg-info/torch_scatter.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'pip-egg-info/torch_scatter.egg-info/SOURCES.txt'
Source in /tmp/pip-install-8z4jmdcj/torch-scatter has version 1.3.1, which satisfies requirement torch-scatter from https://files.pythonhosted.org/packages/35/d4/750403a8aa32cdb3d2d05849c6a10e4e0604de5e0cc94b81a0d0d69a75f3/torch_scatter-1.3.1.tar.gz#sha256=54cbad248350165ddc921ded3fe7a69be5d30c6536273a1a3282e375289f86ec
Removed torch-scatter from https://files.pythonhosted.org/packages/35/d4/750403a8aa32cdb3d2d05849c6a10e4e0604de5e0cc94b81a0d0d69a75f3/torch_scatter-1.3.1.tar.gz#sha256=54cbad248350165ddc921ded3fe7a69be5d30c6536273a1a3282e375289f86ec from build tracker '/tmp/pip-req-tracker-756yuiai'
Building wheels for collected packages: torch-scatter
Created temporary directory: /tmp/pip-wheel-hu2op3fx
Building wheel for torch-scatter (setup.py) ...   Destination directory: /tmp/pip-wheel-hu2op3fx
Running command /raid/baoke/anaconda3/envs/open-mmlab/bin/python -u -c 'import setuptools, tokenize;file='"'"'/tmp/pip-install-8z4jmdcj/torch-scatter/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-hu2op3fx --python-tag cp37
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.7
creating build/lib.linux-x86_64-3.7/torch_scatter
copying torch_scatter/add.py -> build/lib.linux-x86_64-3.7/torch_scatter
copying torch_scatter/mul.py -> build/lib.linux-x86_64-3.7/torch_scatter
copying torch_scatter/std.py -> build/lib.linux-x86_64-3.7/torch_scatter
copying torch_scatter/div.py -> build/lib.linux-x86_64-3.7/torch_scatter
copying torch_scatter/init.py -> build/lib.linux-x86_64-3.7/torch_scatter
copying torch_scatter/max.py -> build/lib.linux-x86_64-3.7/torch_scatter
copying torch_scatter/mean.py -> build/lib.linux-x86_64-3.7/torch_scatter
copying torch_scatter/min.py -> build/lib.linux-x86_64-3.7/torch_scatter
copying torch_scatter/sub.py -> build/lib.linux-x86_64-3.7/torch_scatter
creating build/lib.linux-x86_64-3.7/test
copying test/test_max_min.py -> build/lib.linux-x86_64-3.7/test
copying test/test_multi_gpu.py -> build/lib.linux-x86_64-3.7/test
copying test/test_std.py -> build/lib.linux-x86_64-3.7/test
copying test/init.py -> build/lib.linux-x86_64-3.7/test
copying test/test_forward.py -> build/lib.linux-x86_64-3.7/test
copying test/utils.py -> build/lib.linux-x86_64-3.7/test
copying test/test_backward.py -> build/lib.linux-x86_64-3.7/test
creating build/lib.linux-x86_64-3.7/torch_scatter/utils
copying torch_scatter/utils/init.py -> build/lib.linux-x86_64-3.7/torch_scatter/utils
copying torch_scatter/utils/ext.py -> build/lib.linux-x86_64-3.7/torch_scatter/utils
copying torch_scatter/utils/gen.py -> build/lib.linux-x86_64-3.7/torch_scatter/utils
running build_ext
building 'torch_scatter.scatter_cpu' extension
creating build/temp.linux-x86_64-3.7
creating build/temp.linux-x86_64-3.7/cpu
gcc -pthread -B /raid/baoke/anaconda3/envs/open-mmlab/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/raid/baoke/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/include -I/raid/baoke/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/raid/baoke/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/include/TH -I/raid/baoke/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/include/THC -I/raid/baoke/anaconda3/envs/open-mmlab/include/python3.7m -c cpu/scatter.cpp -o build/temp.linux-x86_64-3.7/cpu/scatter.o -Wno-unused-variable -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=scatter_cpu -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
g++ -pthread -shared -B /raid/baoke/anaconda3/envs/open-mmlab/compiler_compat -L/raid/baoke/anaconda3/envs/open-mmlab/lib -Wl,-rpath=/raid/baoke/anaconda3/envs/open-mmlab/lib -Wl,--no-as-needed -Wl,--sysroot=/ build/temp.linux-x86_64-3.7/cpu/scatter.o -o build/lib.linux-x86_64-3.7/torch_scatter/scatter_cpu.cpython-37m-x86_64-linux-gnu.so
building 'torch_scatter.scatter_cuda' extension
creating build/temp.linux-x86_64-3.7/cuda
gcc -pthread -B /raid/baoke/anaconda3/envs/open-mmlab/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/raid/baoke/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/include -I/raid/baoke/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/raid/baoke/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/include/TH -I/raid/baoke/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda/include -I/raid/baoke/anaconda3/envs/open-mmlab/include/python3.7m -c cuda/scatter.cpp -o build/temp.linux-x86_64-3.7/cuda/scatter.o -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=scatter_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
/usr/local/cuda/bin/nvcc -I/raid/baoke/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/include -I/raid/baoke/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/raid/baoke/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/include/TH -I/raid/baoke/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda/include -I/raid/baoke/anaconda3/envs/open-mmlab/include/python3.7m -c cuda/scatter_kernel.cu -o build/temp.linux-x86_64-3.7/cuda/scatter_kernel.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --compiler-options '-fPIC' -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=scatter_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++11
g++ -pthread -shared -B /raid/baoke/anaconda3/envs/open-mmlab/compiler_compat -L/raid/baoke/anaconda3/envs/open-mmlab/lib -Wl,-rpath=/raid/baoke/anaconda3/envs/open-mmlab/lib -Wl,--no-as-needed -Wl,--sysroot=/ build/temp.linux-x86_64-3.7/cuda/scatter.o build/temp.linux-x86_64-3.7/cuda/scatter_kernel.o -L/usr/local/cuda/lib64 -lcudart -o build/lib.linux-x86_64-3.7/torch_scatter/scatter_cuda.cpython-37m-x86_64-linux-gnu.so
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/wheel
creating build/bdist.linux-x86_64/wheel/torch_scatter
copying build/lib.linux-x86_64-3.7/torch_scatter/add.py -> build/bdist.linux-x86_64/wheel/torch_scatter
copying build/lib.linux-x86_64-3.7/torch_scatter/mul.py -> build/bdist.linux-x86_64/wheel/torch_scatter
copying build/lib.linux-x86_64-3.7/torch_scatter/std.py -> build/bdist.linux-x86_64/wheel/torch_scatter
copying build/lib.linux-x86_64-3.7/torch_scatter/scatter_cpu.cpython-37m-x86_64-linux-gnu.so -> build/bdist.linux-x86_64/wheel/torch_scatter
creating build/bdist.linux-x86_64/wheel/torch_scatter/utils
copying build/lib.linux-x86_64-3.7/torch_scatter/utils/init.py -> build/bdist.linux-x86_64/wheel/torch_scatter/utils
copying build/lib.linux-x86_64-3.7/torch_scatter/utils/ext.py -> build/bdist.linux-x86_64/wheel/torch_scatter/utils
copying build/lib.linux-x86_64-3.7/torch_scatter/utils/gen.py -> build/bdist.linux-x86_64/wheel/torch_scatter/utils
copying build/lib.linux-x86_64-3.7/torch_scatter/div.py -> build/bdist.linux-x86_64/wheel/torch_scatter
copying build/lib.linux-x86_64-3.7/torch_scatter/init.py -> build/bdist.linux-x86_64/wheel/torch_scatter
copying build/lib.linux-x86_64-3.7/torch_scatter/max.py -> build/bdist.linux-x86_64/wheel/torch_scatter
copying build/lib.linux-x86_64-3.7/torch_scatter/mean.py -> build/bdist.linux-x86_64/wheel/torch_scatter
copying build/lib.linux-x86_64-3.7/torch_scatter/min.py -> build/bdist.linux-x86_64/wheel/torch_scatter
copying build/lib.linux-x86_64-3.7/torch_scatter/sub.py -> build/bdist.linux-x86_64/wheel/torch_scatter
copying build/lib.linux-x86_64-3.7/torch_scatter/scatter_cuda.cpython-37m-x86_64-linux-gnu.so -> build/bdist.linux-x86_64/wheel/torch_scatter
creating build/bdist.linux-x86_64/wheel/test
copying build/lib.linux-x86_64-3.7/test/test_max_min.py -> build/bdist.linux-x86_64/wheel/test
copying build/lib.linux-x86_64-3.7/test/test_multi_gpu.py -> build/bdist.linux-x86_64/wheel/test
copying build/lib.linux-x86_64-3.7/test/test_std.py -> build/bdist.linux-x86_64/wheel/test
copying build/lib.linux-x86_64-3.7/test/init.py -> build/bdist.linux-x86_64/wheel/test
copying build/lib.linux-x86_64-3.7/test/test_forward.py -> build/bdist.linux-x86_64/wheel/test
copying build/lib.linux-x86_64-3.7/test/utils.py -> build/bdist.linux-x86_64/wheel/test
copying build/lib.linux-x86_64-3.7/test/test_backward.py -> build/bdist.linux-x86_64/wheel/test
running install_egg_info
running egg_info
writing torch_scatter.egg-info/PKG-INFO
writing dependency_links to torch_scatter.egg-info/dependency_links.txt
writing top-level names to torch_scatter.egg-info/top_level.txt
reading manifest file 'torch_scatter.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'torch_scatter.egg-info/SOURCES.txt'
Copying torch_scatter.egg-info to build/bdist.linux-x86_64/wheel/torch_scatter-1.3.1-py3.7.egg-info
running install_scripts
adding license file "LICENSE" (matched pattern "LICEN[CS]E*")
creating build/bdist.linux-x86_64/wheel/torch_scatter-1.3.1.dist-info/WHEEL
creating '/tmp/pip-wheel-hu2op3fx/torch_scatter-1.3.1-cp37-cp37m-linux_x86_64.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
adding 'test/init.py'
adding 'test/test_backward.py'
adding 'test/test_forward.py'
adding 'test/test_max_min.py'
adding 'test/test_multi_gpu.py'
adding 'test/test_std.py'
adding 'test/utils.py'
adding 'torch_scatter/init.py'
adding 'torch_scatter/add.py'
adding 'torch_scatter/div.py'
adding 'torch_scatter/max.py'
adding 'torch_scatter/mean.py'
adding 'torch_scatter/min.py'
adding 'torch_scatter/mul.py'
adding 'torch_scatter/scatter_cpu.cpython-37m-x86_64-linux-gnu.so'
adding 'torch_scatter/scatter_cuda.cpython-37m-x86_64-linux-gnu.so'
adding 'torch_scatter/std.py'
adding 'torch_scatter/sub.py'
adding 'torch_scatter/utils/init.py'
adding 'torch_scatter/utils/ext.py'
adding 'torch_scatter/utils/gen.py'
adding 'torch_scatter-1.3.1.dist-info/LICENSE'
adding 'torch_scatter-1.3.1.dist-info/METADATA'
adding 'torch_scatter-1.3.1.dist-info/WHEEL'
adding 'torch_scatter-1.3.1.dist-info/top_level.txt'
adding 'torch_scatter-1.3.1.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel
done
Stored in directory: /tmp/pip-ephem-wheel-cache-0x7o1yj_/wheels/7f/21/0b/c42fa9353ceec5e87464599e470a03e4250ec667b4a392fa7d
Removing source in /tmp/pip-install-8z4jmdcj/torch-scatter
Successfully built torch-scatter
Installing collected packages: torch-scatter

Successfully installed torch-scatter-1.3.1
Cleaning up...
Removed build tracker '/tmp/pip-req-tracker-756yuiai'
1 location(s) to search for versions of pip:

https://pypi.org/simple/pip/
Getting page https://pypi.org/simple/pip/
Starting new HTTPS connection (1): pypi.org:443

the rest information is all links , so I don't paste here

Looks good to me, so I am not really sure what‘s the cause of this issue :( I guess running the test suite of torch-scatter fails?


Update pre-download popup

Hi, I noticed a typo (imporant) in the pre-download popup which users see when they download data. I've corrected it in 46d4b1e, but then worked to rephrase the whole text a bit in a985867:
Before:

It is imporant for crediting data publishers and for reputation of the data users to cite data correctly. You will receive the recommended GBIF citation, including DOI, together with your requested data. By citing data correctly you will comply to best practice in transparent science.
Note that if you are analysing the data you will download, please consider placing the download DOI into your Materials and methods section.

After:

To promote transparent science and credit data publishers it is important to cite data correctly. You can do so by including the recommended GBIF citation in your work, which you will receive together with your requested data.
If you are analysing the data you will download, please consider referencing this citation by including it in your Materials and methods section.

Rationale:

Put transparent science first, credit data publishers second, which makes a bit more sense from the perspective of the data user. I dropped the "reputation of data user" as this is part of transparent science.
Then lead directly to how you can do that: by including recommended GBIF citation in your work.
And then where you'll be able to find that citation (in the download)
In the last sentence I keep the focus on analysing data, but rephrased it to include a reference to the citation, and not the DOI. It's a bit confusing why you would need to cite elsewhere and only include the DOI here.
I also linked to the citation-guidelines page for more info. You might change that to a) open this link in a new window so they user is not taken out of the download flow or b) remove it.
I dropped the DOI mention from the text, as a recommended GBIF citation implies a DOI (it's very clearly indicated on https://www.gbif.org/citation-guidelines). If the user copy/pastes the recommended citation from his/her download the DOI should make it.
The total text is shorter, which should increase the chance of people reading it. 😄

Also, do we use z or s in analysing, digitising, etc.? Is it written somewhere which English you use for the website?

Awesome!


Localized Phone Label (iOS)

Bug Report
Problem
What is expected to happen?
Imported contact with custom label should display 'label'
What does actually happen?
Imported contact with custom label displayed as '$!!$'
Information

Look at the label 'school'
Testing.vcf.zip
Stackoverflow Thread on similar issue
Command or Code

Environment, Platform, Device

iOS 13
Version information

Outsystems Contacts Cordova
Checklist

[x] I searched for existing GitHub issues
[x] I updated all Cordova tooling to most recent version
[x] I included all the necessary information above

We are archiving this repository following Apache Cordova's Deprecation Policy. We will not continue to work on this repository. Therefore all issues and pull requests are being closed. Thanks for your contribution.


Separate MQTT discovery from MQTT control topics

For example, my homeassistant instance has the discovery topic at homeassistant/discovery/#
But I would like hass.agent to have it's control topics at something like hassagent/#.
At present it stashes its state and control topics under homeassistant/discovery/#.

Hi @ruifung,
Is homeassistant/discovery/# something you configured yourself? Because by default, hass.agent publishes to for instance homeassistant/switch/{pc_name}/{switch_name}/config and subsequently homeassistant/switch/{pc_name}/{switch_name}/state.
So as it is, everything's already categorized as entity type, device name and entity name.
I can see how moving the state topics to hass.agent's own root path would tidy things up a bit, but it would also take some work on my end to make that work. Are there any other reasons you'd like this?

Yeah, it's something I configured myself on my installation.
And yeah, it's mainly to tidy things up a bit, and for ACL reasons I suppose since I have rather fine grained ACL on my MQTT broker.
Since in my setup, almost all MQTT clients have limited access to only the topics they require.
I.e. if they publish a HASS discovery entry, it's write-only to the discovery topics, and readwrite to their own topics.

Sounds like you have an impressive configuration :) Very neat.
I'll see what I can do!

I'm closing most feature requests from github's issue list. They're not ignored, just moved to the HASS.Agent Issue Tracker (you can find your link in a comment above).
That tracker allows me to organise better through what's pending, being done, being released, etc. - instead of one long list, which is beginning to stress me out :p
I will however post a reply here when I've implemented your request, and feel free to still post here when you have any questions/additions.


feat: Add the ability to filter verifications by os

Sometimes it's desirable to run different verifications per operating
system. You can see this in this tools own markdown files with the
assorted windows variants of the tests. This will add support for
limiting a verification to a specfic OS.
Fixes: #115

Amazing work! Thanks you!


Ontology recommendations

Here are a few recommendations my team and I have proposed for the CHEBI ontology:

benzopyrroles (22728) should be a subclass of pyrroles (26455)
Entities that are subclasses of group and molecular entity: 144321, 156504, 74635, 167175, 167174, 167178
64898
anionic amino-acid residue should be a subclass of amino acid residue (33708)

Hi,
Benzopyrroles cannot be classified as pyrroles since they are bicyclic compounds whereas pyrroles are monocyclic. A different type of relationship will need to be added to ChEBI to capture this type of relationship (For example has_substructure pyrolle).
I have fixed the above entries that were in two hierarchies (group and molecular entity).
I have added a conjugate acid/base relationship to capture the relation between amino acid residue and anion amino-acid residue.


PIGPIO and UART

Hi,
I'm doing a project using Rpi-0w. The Rpi reads two Hx711 with serial communication. I modified the code from the example provided by pigpio. The Rpi went well if I only read the two load cells for over 5 hours. At the same time, I use UART from Rpi to read the messages from another device. The Rpi also went well if I only read the UART messages for over 5 hours.
However, if I have the two modules (UART reading and HX711 reading) work at the same time, the system works fine at the first hour, but the UART gets much noise data after that, which makes the UART communication not be able to get the data in an ideal frequency. However, I cannot find any errors from the system. Can you provide any suggestions for debugging this issue? I really have no idea where the error comes from.
Thanks and regards,
Chen

@caseypen , Sorry for the late response but this description didn't provide anything specific enough to act upon.  If you believe there is an issue with pigpio library you will need to provide some code to demonstrate the issue.

Closing due to inactivity.


Add support for a @passed flag on properties?

This would allow for the separation of internal properties from passed properties, which could be useful in a documentation context (especially as far as the "public" API of a component is concerned).
Alternatively we could just add an extra flag in the UI for passed props, maybe with a filter rather than a completely separate section, so they could be toggled similarly to protected, private, inhereted, deprecated.
This is a "someday maybe later" kind of thing.

Research indicates any custom flag you add to yuidoc blocks still get parsed and added to the meta, so we just need to update fountainhead's templates to support these custom attrs


How to Build a Clock with JavaScript and SVG

Brief Summary:
JavaScript is a programming language that allows you to program complex features on web pages. Scalable Vector Graphics (SVG) is an Extensible Markup Language (XML)-based vector image format for two-dimensional graphics with support for interactivity and animation. Using SVG (Scalar Vector Graphics) to build a clock on the web becomes easier using javascript.
Key Takeaways:

Learn JavaScript Basics
Learn how to configure real-time on the browser using JavaScript
Readers will understand how to use SVG on the web

References:
https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics
https://www.w3schools.com/graphics/svg_intro.asp

Good topic @Olanetsoft. This is approved, but I'm going to close this issue until you've worked through your other open issue. We're requesting that students focus on seeing content through from topic suggestion to draft submission before suggesting new topics. Once you've submitted a final draft of your TypeScript article, you may request for this issue to be reopened. Thank you.

Good topic @Olanetsoft. This is approved, but I'm going to close this issue until you've worked through your other open issue. We're requesting that students focus on seeing content through from topic suggestion to draft submission before suggesting new topics. Once you've submitted a final draft of your TypeScript article, you may request for this issue to be reopened. Thank you.

@ninjaginja Kindly help to reopen this, my article on typeScript has been merged successfully.

@Olanetsoft
Per the recent message posted in our EngEd Slack channel, we are pausing acceptance of new articles until further notice while we work through the backlog of submitted drafts. We will notify you when we are ready to accept new topic suggestions. Thank you for your patience.

okay, 😊 Thank you for the feedback.


[Question] How to use retry unavailable fragments for aria2c?

I did see that [aria2c] Support retry/abort unavailable fragments is added.
So my question is how do I use retry unavailable fragments for aria2c?
Would something like this work:
yt-dlp 'URL' --fragment-retries infinite --external-downloader aria2c

Or do I need to add a command to
--external-downloader-args aria2c: ?

yt-dlp 'URL' --fragment-retries infinite --external-downloader aria2c

This works although I don't recommend using infinite retries

yt-dlp 'URL' --fragment-retries infinite --external-downloader aria2c

This works although I don't recommend using infinite retries

Thank you
And
Could you explain why?
Would not better if all segments would be downloaded?

Yes, but some videos may have actually missing fragments. With infinite retries, the download will never finish in that case.

Yes, but some videos may have actually missing fragments. With infinite retries, the download will never finish in that case.

I understand 🤔 thanks again 🙂

Yes, but some videos may have actually missing fragments. With infinite retries, the download will never finish in that case.

Does aria2c retry downloading fragments at the end of the download or when a error occurs?

@erickyun aria2c doesnt itself have the option to retry the fragments afaik. So yt-dlp checks if aria returns an error, and then retries the download. So yes, the retry will only happen at the end of download

@pukkandan ok I understand so yt-dlp makes aria2c download again all segments only a error occured thank you again. 🙂

download again all segments

The already downloaded segments are automatically skipped

download again all segments

The already downloaded segments are automatically skipped

@pukkandan sorry my bad English I did mean only every segment with a error

just clarifying in case you misunderstood :D

just clarifying in case you misunderstood :D

🙂👍thanks


Implement calculation of suggestions for any text position

Makes calculation of suggestions in middle of command less expensive.
Also changes nodes in context from Map to List - there were never used as map, so extra overhead was not needed.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: boq sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@Dinnerbone done


InstallTrigger is obsolete and will be removed

Firefox complains that InstallTrigger is obsolete and will be removed (iziToast.min.js:6:404
Keep up the good work ;-) Izitoast is awesome

any news?


Revert "test: Add Error Log Exceptions"

This reverts commit b73c5b19cdf8583dfded17db75cad79c0e62c972.
Rationale:

The reverted commit on v1.10[1] was a backport of a master commit[2], itself building upon another master commit[3], both adding level=error checking to the CI.
[3] was not backported to v1.10, hence conflicts from backporting [2] to v1.10 were manually fixed, resulting in [1]'s description not matching its contents and also losing proper history tracing due to [3] not being present in the tree.
[1] introduced issue #18285 in v1.10 CI tests.
It also appears [2] was not intended for backport in the first place.
Due to all of these, we revert [1] in v1.10.

[1] b73c5b19cdf8583dfded17db75cad79c0e62c972
[2] 82d44229e61d066b37d13ca34d0e30e5e2b0e9b0
[3] 11fb42adc2c53f38b66bc5f1271d370b6c1e8f9a
Note: a more thorough discussion can be found at https://github.com/cilium/cilium/issues/18285#issuecomment-1009970348

Worth running CI for this revert? I would say no considering the issue, if you agree then we can mark as ready to merge.


ec2: improve describe_instances() filters

Extend Filters= support in ec2.describe_instances() so that it now supports product-code and product-code.type filters, with the following restriction:

All codes registered in amis.json in an image's product_codes property are treated as "marketplace" codes, i.e. it is not possible to specify an image with "devpay" codes.

The latent formatting support clearly intended these to be used as marketplace codes, and that's the use case I require, so this scratches my itch as-is.

Confirmed working, thanks!


Drush not working via SSH

When I connect to the PHP container via SSH (in Windows) using the config mentioned in #38, drush does not work.
02c4fa62db6c:/var/www/html$ drush
-bash: drush: command not found

What am I doing wrong?

What tag are you on? Should work with the latest, without stability tag, e.g. 7.1, 7.0

I am using one of the ones provided in the default docker-compose.yml on GitHub, namely 7.1-2.1.0

Try 7.1, this should be fixed

OK, it works when I use the following for the sshd container:
image: wodby/drupal-php:7.1
Do you also plan to add it to the versions with stability tags? If so, this ticket may stay open. I let you decide.

D4D 2.2.0 includes this fix.


Generating hash for ring_hash policy

This change is

Interop tests had ssl errors during install (will log an issue if it persists)


Overcloud image has missing kernel_id and ramdisk_id properties

There seems to be an issue with the value of the file path of kernel and ramdisk images
(undercloud) [stack@undercloud repos]$ openstack overcloud image upload --update-existing --image-path /home/stack/
Image "/var/lib/ironic/images/overcloud-full.vmlinuz" is up-to-date, skipping.
Image "/var/lib/ironic/images/overcloud-full.initrd" is up-to-date, skipping.
Image "/var/lib/ironic/images/overcloud-full.raw" is up-to-date, skipping.
> /usr/lib/python3.6/site-packages/tripleoclient/v1/overcloud_image.py(207)get_image_property()
-> if os.path.exists(path):
(Pdb) path
'file:///var/lib/ironic/images/overcloud-full.vmlinuz'
(Pdb) os.path.exists(path)
False
(Pdb) os.path.exists("/var/lib/ironic/images/overcloud-full.vmlinuz")
True
(Pdb)

The os module fails to check whether the file exists or not when it the path has "file://" prepended to it and returns None which further sets the img_kernel_id & img_ramdisk_id vars to None.

Thank you for your contribution!
This GitHub repository is just a mirror of https://opendev.org/openstack/python-tripleoclient, where development really happens. Pull requests proposed on GitHub are automatically closed.
If you are interested in pushing this code upstream, please note that OpenStack development uses Gerrit for change proposal and code review.
If you have never contributed to OpenStack before, please see:
https://docs.openstack.org/contributors/code-and-documentation/quick-start.html
Feel free to reach out to the First Contact SIG by sending an email to the openstack-discuss list with the tag '[First Contact]' in the subject line. To email the mailing list, you must first subscribe which can be done here:
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-discuss


Add internal blog page

This PR add the ability for a markdown page to added so that gatsby can then create an internal blog page. It is currently a WIP due to design decisions.
Currently a blog page is generate in two ways. Both ways can be linked to from the existing blog posts page.
Method 1:
The gatsby-plugin-mdx automatically creates pages for any .mdx files within the repository. When the v0.16.0 file is added the plugin will automatically create a page for it. Currently that page that is automatically generated with the site sidebar attached. I tried to explore options of disabling the sidebar for a specific page but did not see an obvious answer. I believe this file could be excluded so redundant pages are not generated if method 2 is decided. If having the sidebar present is not an issue this would be the easiest way to go.
Note: Ignore the blog title, this can be adjusted for the final product.

Method 2:
Create pages automatically using {mdx.slug}.js. This method allows us to build a react page with the mdx data. The drawback is this creates pages for every mdx node type in the filesystem. I searched for ways to exclude files but again did not come up with a straight forward answer. The file syntax of {type.field} limits us to defining what node type we want.

Extraneous pages being generated because they are all node type of mdx

There may be an easier way to do this but I have hit a bit of a blocker

Method 1 seems good to me - having the sidebar seems better than not having the sidebar right?


Fixed quote types inconsistency in a warning message

While reading the source code I've noticed that this could produce such text:
Given action an action
which is really unnatural to say. So I've refactored it a little to be more human-friendly and produce either:

Given action "SOME_TYPE"
or Given an action

Also - if you dont like this String(variable) casting approach I may revert this change and amend my PR. But personally I think its more obvious in what it does (casting) + its shorter by 3 chars :P

We require that all actions have a type field, so I'm actually not sure how that could happen. I would just remove the default text instead.

Yeah, I was kinda wondering why this fallback is there as Ive remember about the check you have mentioned, but thought this could be intended for some reason. Maybe its there because theoretically combineReducers outcome could be used outside of redux? And the check you have mentioned is in the dispatch itself.
At first I thought this test is testing exactly this, but now I see that 'an action' in the test refers to this part.
That being said if you decide I should drop this fallback entirely I think this safe-guard should be dropped, as we would treat then .type to be available always in the reducer.
Let me know what you decide and I'll update my PR accordingly.

@timdorr ping ;)
this is a silly PR really, but would like to have it stop hanging as open in my PR tab, I understand though if you are too busy right now


Ignore bookmarks with missing UUIDs in sync

Task/Issue URL: https://app.asana.com/0/0/1204699272468090/f
Description:
When UUID is missing, throw an error in Syncable initializer. The error is silenced up the call chain
and the broken bookmark ends up not being included in sync.

Steps to test this PR:
See https://github.com/duckduckgo/BrowserServicesKit/pull/373 for details

Copy Testing:

[ ] Use of correct apostrophes in new copy, ie ’ rather than '

Orientation Testing:

[ ] Portrait
[ ] Landscape

Device Testing:

[ ] iPhone SE (1st Gen)
[ ] iPhone 8
[ ] iPhone X
[ ] iPhone 14 Pro
[ ] iPad

OS Testing:

[ ] iOS 14
[ ] iOS 15
[ ] iOS 16

Theme Testing:

[ ] Light theme
[ ] Dark theme

Internal references:
Software Engineering Expectations
Technical Design Template

Merging this without approval as it was tested against develop branch in https://github.com/duckduckgo/BrowserServicesKit/pull/373 anyway.


No module named plumbum?

I check it is installed in the thirdParty/miniconda/lib/python2.7/site-packages/.  I think following line should solve this issue.
sys.path.insert(0,lib_path + "/thirdParty/miniconda/lib/python2.7/site-packages");

Plumbum is still being installed in 2.7 version, but seem to be working even when called with version 3.


Windows Flood Ping not working

Made a new issue so we can track them better.
fping doesn't appear to be working on windows.
We are using the binary from here - https://www.softpedia.com/get/Network-Tools/IP-Tools/Fping.shtml
It's added to the path on the machine. I can ping my phone directly with it from the command line.
The google sheet IP start and end addresses have been updated and are correct for our network (<IP_ADDRESS>,<IP_ADDRESS>).
The current errors looks like this

Do you have an example of what the fping command that AdvantageTrack looks like, so I can test it directly in the command line?

After some more digging, it seems like there are multiple projects called "fping". I tested the one linked below, and its behavior matches what I'd expect on Linux and macOS.
https://github.com/badafans/fping-windows
It includes a dll for Cygwin which generates a warning message, but everything seems to be working properly. I just pushed a commit that improves the filtering of output from fping so that the warning doesn't cause problems. If you need to do more testing, below are the command line arguments that AdvantageTrack uses (it would include a longer list of IP addresses of course).
fping -C 1 -r 0 -t 500 -q <IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS>

Pulled the latest updates, and switched to the linked fping.
The sample fping command now works fine but the webpage now shows the "monitor" as red and the server doesn't seem to be giving any errors. Fully restarted the machine, server, webpage, etc after the update.

I managed to reproduce the problem; the Python process hangs while waiting for fping to exit and so it never gets the output or continues to cycle. The issue seems to be that the pipe buffer from subprocess is filling up (some odd difference between Windows and UNIX?). I pushed a change so that Python reads the data continuously and it fixed the issue for me.

Everything seems to be working now with the update. Thanks for the help, this is an awesome project.


ISPN-7188 Remove uneeded logging from EntryWrappingInterceptor

https://issues.jboss.org/browse/ISPN-7188

Looks good. Pulling.

Integrated in master. Thanks @gustavonalle !


Inconsistent handling of syslog drain URLs

We think we have found a bug on how syslog drain urls are handled in Doppler, more specifically in sink_manager.go:
For new app services the parsed URL is used to register a new sink whereas for a removed app service the unparsed URL is used to find the corresponding sink.
This will of course fail if the drain URL contains any character sequence that would be unescaped. E.g., creating a user provided service with
cf cups bogus -l https://acme.org/foo%3Dbar

and binding an app with
cf bs myapp bogus

will eventually create a sink that is keyed with https://acme.org/foo=bar. This is due to the fact that the URL is run through a blacklist check.
Unbinding the app will make the sink manager try to remove a sink that is keyed by the original URL which then silently fails.
Best regards
Michael Altenhofen
SAP SE

@altenhof Nice catch.
We've fixed this in 10fc21c695efa2abb6d342b9e73f6c9e0d920c90.


feat(cli): use code view instead of preview in "edit this page" links

Description
In "Edit this page" links in the docs, link to "code" version of the page instead of the "preview" version, which imo is a better ux for mdx.

Great add!


OTLP Exporter Configuration - missing some metrics environment variables

https://opentelemetry.io/docs/languages/sdk-configuration/otlp-exporter/ documents OTLP environment variables but is missing the variables from the Metrics SDK spec https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md

OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE
OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION

+CC @open-telemetry/collector-approvers

@theletterf I think you meant to ping a different handle? I don't think this has to do with the Collector

@mx-psi You're right! Would spec-semconv be the most appropriate here, @svrnm ?

I would say @open-telemetry/spec-sponsors ?

The general thinking behind this page (when I first wrote it, that is) is that it documents some of the most-used env vars. But it hasn't really changed since then, and this was before metrics stabilized. So I'm in favor of just adding these.

Sorry, what is the ask from spec-sponsors? This just looks like a doc gap, and can be fixed by doc owners.

From my point of view, Spec sponsors like other approvers&maintainers are doc owners

Sorry, what is the ask from spec-sponsors? This just looks like a doc gap, and can be fixed by doc owners.

From my point of view, Spec sponsors like other approvers&maintainers are doc owners

I see. Sorry I wasn't seeing it that way. I assumed that docs are owned by docs team and content is sourced from the spec repo. I think Spec sponsors' responsibility is to make any changes/clarifications to the spec itself. Since this issue is simply missing some configuration in the docs page, I was wondering, what help is needed from spec-sponsors. Doc owners can just make the change to the doc.
(I am not opposed to making spec-sponsors as doc owners. Its best to call it out explicitly if that is the expectation)

Sorry, what is the ask from spec-sponsors? This just looks like a doc gap, and can be fixed by doc owners.

From my point of view, Spec sponsors like other approvers&maintainers are doc owners

I see. Sorry I wasn't seeing it that way. I assumed that docs are owned by docs team and content is sourced from the spec repo. I think Spec sponsors' responsibility is to make any changes/clarifications to the spec itself. Since this issue is simply missing some configuration in the docs page, I was wondering, what help is needed from spec-sponsors. Doc owners can just make the change to the doc.
(I am not opposed to making spec-sponsors as doc owners. Its best to call it out explicitly if that is the expectation)

Yeah, my assumption here was implicit, we might want to clarify that, but that's a separate issue, not related to this discussion.

Yes that is separately clarifiable.
For this issue, I support what Carter suggested: https://github.com/open-telemetry/opentelemetry.io/issues/5095#issuecomment-2331539329 but it'd be good to call out that ENV vars are optional and languages may/may not have it to avoid surprises. (I believe this was also reported by some users in the past, but I cannot find the tracking issue now.)

related : https://github.com/open-telemetry/opentelemetry-specification/issues/3929

https://github.com/open-telemetry/opentelemetry.io/pull/4099/files can be extended to cover this page as well https://opentelemetry.io/docs/languages/sdk-configuration/otlp-exporter/ to close my concern!


[stable/nginx-ingress] match minReplicas to the documentation

Signed-off-by: Heechul Ryu<EMAIL_ADDRESS>
Is this a new chart

NOTE: We're experiencing a high volume of PRs to this repo and reviews will be delayed. Please host your own chart repository and submit your repository to the Helm Hub instead of this repo to make them discoverable to the community. Here is how to submit new chart repositories to the Helm Hub.

What this PR does / why we need it: change minReplicas to 2 as documented
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/mychartname])

/ok-to-test

/lgtm


Test form validation

Description
Test that form validates and doesn't submit with invalid form.
Related issues
Closes #147
Type of change

[x] New feature (non-breaking change which adds functionality)

Changes Made

Test that required (integer) field validates and renders hint message if invalid value
Test that invalid form doesn't submit
Added longer timeout for autocomplete field test. Default timeout caused issues occasionally

Testing

[x] Integration Tests
[x] E2E

The integration test looks good to me, but I think we might need to test the validation on submit also ? Because some forms does not validate on blur.
For example, in DAC form, Contacts is a required field and it only shows error on submit.


Diagrams

[x] Class diagram
[x] Sequence diagram

According to your class diagram #11, you never use the Amazon SDK ?

Already fixed, closing this issue.