"connection refused" mounting with NFS3, when docker-alpine serves as NFS server

I am setting up an NFS server container, on Raspberry-PI. everything seems ok, including showmount, but when i do a straightforward mount, i get connection refused. forcing NFSv3 (mount -o nfsvers=3) succeeds. any insight?
Dockerfile:
FROM            hypriot/rpi-alpine-scratch

MAINTAINER      Ehud Kaldor<EMAIL_ADDRESS>
RUN             apk update && \
                apk add nfs-utils && \
                rm -rf /var/cache/apk/*

EXPOSE          111/tcp 111/udp 2049/udp 34567 34568

#COPY            nfs.conf /etc/conf.d/nfs
COPY            entrypoint.sh /entrypoint.sh

CMD             ["/entrypoint.sh"]

entrypoint.sh:
#!/bin/sh -eu

/usr/sbin/exportfs -r
/sbin/rpcbind --
/usr/sbin/rpc.nfsd -p 34567 |:
/usr/sbin/rpc.mountd -p 34568 -F

/etc/exports:
/my_exports             *(ro,sync,no_subtree_check,insecure,fsid=0)
/my_exports/music       *(rw,sync,no_root_squash,no_subtree_check,insecure,nohide)

run command (/mnt/sda1 is mounted with a directory that contains, amongst others, /music):
docker run -it --rm -p 111:111/tcp -p 111:111/udp -p 2049:2049/tcp -p 34567:34567/tcp -p 34567:34567/udp -p 34568:34568/tcp -p 34568:34568/udp --privileged -v /mnt/sda1:/exports -v /root/docker/file-server/exports:/etc/exports --name file-server2 ehudkaldor/rpi-file-server:0.3
showmount:
> showmount -e AA.BB.CC.DD
Export list for AA.BB.CC.DD:
/my_exports/music *
/my_exports       *

mount (defaults to nfs4):
> sudo mount -v AA.BB.CC.DD:/my_exports/music /mnt
mount.nfs: timeout set for Wed Sep 21 21:35:17 2016
mount.nfs: trying text-based options 'vers=4,addr=AA.BB.CC.DD,clientaddr=AA.BB.CC.EE'
mount.nfs: mount(2): Connection refused
mount.nfs: trying text-based options 'vers=4,addr=AA.BB.CC.DD,clientaddr=AA.BB.CC.EE'
mount.nfs: mount(2): Connection refused
mount.nfs: trying text-based options 'vers=4,addr=AA.BB.CC.DD,clientaddr=AA.BB.CC.EE'
mount.nfs: mount(2): Connection refused

forcing NFSv3:
> sudo mount -v -o nfsvers=3 -o nolock AA.BB.CC.DD:/my_exports /mnt
mount.nfs: timeout set for Wed Sep 21 21:37:00 2016
mount.nfs: trying text-based options 'nfsvers=3,nolock,addr=AA.BB.CC.DD'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying AA.BB.CC.DD prog 100003 vers 3 prot TCP port 34567
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying AA.BB.CC.DD prog 100005 vers 3 prot UDP port 34568

any insight?

update:
tried also with armhf/alpine as the base image, same result

Does this work with ubuntu or debian? I remember having problems with mounting nfs inside containers before. Does dmesg give any hints?
One workaound might be to mount the nfs share on the host and then bind mount it with docker run --volume ...

exec mount nfs in docker container
failed: Connection refused
dmesg:
svc: failed to register lockdv1 RPC service (errno 111)


Dev 785 order reversed on chart

Hey @ShawnStringfield -
Can you catch this branch up to test and remove console logs? Thanks!


[Azure Maps] Use RoutingLanguage for Language options

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.Maps.Routing

/azp run net - maps - tests

/azp run net - maps - tests


Add method to display easy-to-read string for Samples object

Description
when calling the function print on the array .sample(n>1) the output is
cuqi.samples._samples.Samples object at 0x0000013513CFA3C0
It would be more useful to display some meaningful information, such as its dimension.

Hi @taniagoia11 , thanks for raising this issue. I agree it might be more convenient if we display more custom information about the Samples object.


Add pyup.io

Fixes issue #:
The issue tracker does not have an issue for this task.
Description of the changes being introduced by the pull request:
Add a pyup.io configuration file (.pyup.yml), namely to make sure that all of our dev dependencies are pinned to the latest versions.   The configuration file makes sure that dev-requirements.txt is used by pyup.io, which will be triggered soon after this pull request is merged, and followed by a pull request that adds a pyup.io badge to the README.
This pull request also removes the PyCrypto dependency.  Our crypto library dropped multi-library support and no longer uses PyCrypto.
Please verify and check that the pull request fulfills the following
requirements:

[ ] The code follows the Code Style Guidelines
[ ] Tests have been added for the bug fix or new feature
[x] Docs have been added for the bug fix or new feature

Coverage remained the same at 99.293% when pulling 02df40d25867acacc355067a64e15200b64972b6 on vladimir-v-diaz:add_pyup into 11043dce1688d3aa6a4ab3734d7c1e69cde4bb67 on theupdateframework:develop.


Update versioning-basics-best-practices.md

Category

[X] Content fix
[ ] New article
[ ] Example checked item (delete this line)

Related issues:

fixes https://github.com/MicrosoftDocs/microsoft-365-community/issues/175

What's in this Pull Request?

Correct the Typo and add additional content..

Docs Build status updates of commit a40a51f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Community/versioning-basics-best-practices.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Discover doesn't work on alpine

Was too lazy to again go through discover.ml so I simply hacked libffi.config and pinned... In any case the result of discover ends up oddly with:
libffi_available=false
libffi_opt=-I/usr/lib/libffi-3.2.1/include
libffi_lib=-lffi

(pkg-config is available and discovered). Setting libffi_available to true manually lets the build succeed. Here's the layout of the package install if it can help.

That is odd.
The following Dockerfile successfully builds ctypes and runs the tests:
FROM ocaml/opam:alpine-3.4_ocaml-4.03.0

ENV OPAMYES 1

RUN opam depext  ctypes-foreign base-bytes conf-pkg-config ounit lwt
RUN opam install ctypes-foreign base-bytes conf-pkg-config ounit lwt

RUN git clone https://github.com/ocamllabs/ocaml-ctypes.git /home/opam/ocaml-ctypes
WORKDIR /home/opam/ocaml-ctypes
RUN opam config exec -- make all test

CMD ["bash"]

But it does sound like something is wrong with discover.ml.

FROM ocaml/opam:alpine-3.4_ocaml-4.03.0

Sorry forgot to mention this is on arm. Tried with your docker file and  ocaml/opam:alpine-armhf_ocaml-4.02.3 but the build fails because of some problem with depext (tried to install it but it seems it doesn't install /cc @avsm):
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM ocaml/opam:alpine-armhf_ocaml-4.02.3
 ---> 2215fe345726
Step 2 : ENV OPAMYES 1
 ---> Using cache
 ---> a93ac6d1f3c6
Step 3 : RUN opam install depext
 ---> Using cache
 ---> 44dbcc6c03ee
Step 4 : RUN opam depext  ctypes-foreign base-bytes conf-pkg-config ounit lwt
 ---> Running in 80d8d6e546d1
opam: unknown command `depext'.
Usage: opam COMMAND ...
Try `opam --help' for more information.
The command '/bin/sh -c opam depext  ctypes-foreign base-bytes conf-pkg-config ounit lwt' returned a non-zero code: 1

I can reproduce the issue on arm with the following Dockerfile:
FROM ocaml/opam:alpine-armhf_ocaml-4.02.3

ENV OPAMYES 1

RUN opam config exec -- opam-depext ctypes-foreign base-bytes conf-pkg-config
RUN opam install ctypes-foreign base-bytes conf-pkg-config

RUN git clone https://github.com/ocamllabs/ocaml-ctypes.git /home/opam/ocaml-ctypes
WORKDIR /home/opam/ocaml-ctypes

RUN opam config exec --  make libffi.config

CMD ["bash"]

The problem appears to be caused by the lack of libcurses.  The stderr of the test program run by discover.ml is as follows:
/usr/lib/gcc/armv6-alpine-linux-muslgnueabihf/5.3.0/../../../../armv6-alpine-linux-muslgnueabihf/bin/ld: cannot find -lcurses

Adding RUN sudo apk add ncurses-dev to the Dockerfile somewhere before the make step fixes the issue.

sudo apk add ncurses-dev

I confirm this solves the problem.

I'm closing this because there's a workaround and I don't see what else can be done to fix the problem.

I've submitted a fix for this upstream to Alpine https://github.com/alpinelinux/aports/pull/686


Can't download the right .sf2 file from the way mentioned in CMT.ipynb

I failed to download the file in the way mentioned in CMT.ipynb
!gsutil -m cp gs://cmt/loss_8_params.pt /content/video-bgm-generation/exp/
!gsutil -m cp gs://magentadata/soundfonts/SGM-v2.01-Sal-Guit-Bass-V1.3.sf2 /content/video-bgm-generation/

I found loss_8_params.pt from google driver mentioned in README.md, but  I failed to find SGM-v2.01-Sal-Guit-Bass-V1.3.sf2 from google.
Maybe I used the gsutil in the wrong way, do you mind apply a google link of SGM-v2.01-Sal-Guit-Bass-V1.3.sf2 to me, I will appreciate it very much

You can download .sf2 at this link on google drive.


[FEATURE REQ] Groups are not extracted if we use configuration.extractor.yaml

Please describe the feature.
Customer is using configuration.extractor.yaml to extract api/products. But few groups are associated with the products and groups are not extracted. There are no reference in the sample file how to extract the groups. Can you please update the configuration.extractor.yaml to extract the groups?

We will take a look at it. In the meantime feel free to open a PR and we will be more than happy to review and merge as we are currently working on other features.

@bappadityams I went back and did a quick test where I extracted everything and another case where I extracted using configuratin.extractor.yaml. In both bases I am able to see the groups associated with each product. Are you sure you are looking under the right location? In the example below I have a product called starter and as you can see the groups associated with it are getting extracted:


'Site' object has no attribute 'search_advanced' for some mac users

This is an extension of an issue on stackit, a project I built using the Py-StackExchange wrapper.
Our pip install process automatically installs Py-StackExchange, equivalent to running pip install Py-StackExchange at the command line. However, when using our code, this error is produced, but only for some users: AttributeError: 'Site' object has no attribute 'search_advanced'.
At the hackathon where we built stackit, we solved the problem by cloning and modifying Py-StackExchange's setup.py; the modified version is in this gist. That manual installation and modification has worked so far, but is a clunky solution for our users.
I suspect that this has something to do with the Python versions found on each computer, and am perplexed that this functionality would be removed for a user that can ultimately compile and run it in their environment once they've modified setup.py.
Also, this project was a life-saver––heartfelt "thank you" from team Baby Got Stack!

Yes, this problem persists even when manually installing from the code in this Github repo.
I am running out of the stock Terminal on OS X 10.10 Yosemite. I have Python 2.6 and Python 2.7 installed on this machine. Python 2.7.6 is the default.
I'm not sure how to determine whether setup.py modifications are necessary; if I were to take a guess, I'd say that setup.py probably detects Python 2.6 on my machine and installs accordingly, which means it doesn't include the new API methods in the install. What do you think?
I can do some further digging, but this is on my backburner (at least for the next couple of days).
Thanks!


WIP Iam get policy

Hi all,
This is a WIP PR to implement IAM get_policy:
I include the following code, in order to implement "get_policy" method from IAM (I have not modified ..moto/iam/models.py file).
https://github.com/josenrihernand/moto/blob/master/tests/test_iam/test_iam.py#L268#L284
https://github.com/josenrihernand/moto/blob/IAM_get_policy/moto/iam/responses.py#L181#L186
https://github.com/josenrihernand/moto/blob/IAM_get_policy/moto/iam/responses.py#L846#L858
As from the test (of the get_policy method) on my local environment, I can see that I get the value:
groupPolicies = iam_conn_client.list_attached_group_policies(
GroupName = groups["GroupName"]
for attachedPolicy in groupPolicies["AttachedPolicies"]:
currentPolicy = iam_conn_client.get_policy(         ---> get_policy method works.
PolicyArn = attachedPolicy["PolicyArn"]
);
print("Attached Policy: ", attachedPolicy["PolicyArn"]); --> it works.
--> ('Attached Policy: ', 'arn:aws:iam::aws:policy/TestDBPolicy')
print("Current Policy: ", currentPolicy);	--> it also works.
--> ('Current Policy: ', {u'Policy': {u'CreateDate': datetime.datetime(2017, 10, 4, 15, 45, 35, tzinfo=tzutc()), u'DefaultVersionId': ''}, 'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': '20f7279f-99ee-11e1-a4c3-27EXAMPLE804', 'HTTPHeaders': {u'Content-Type': u'text/plain', u'server': u'amazon.com'}}})
However, when I run the method "get_policy_version", it fails with the following error message:
groupPolicies = iam_conn_client.list_attached_group_policies(
GroupName = groups["GroupName"]
policy_version = iam_conn_client.get_policy_version(   ----> get_policy_version fail.
PolicyArn = attachedPolicy["PolicyArn"],
VersionId = currentPolicy["Policy"]["DefaultVersionId"]
);
An error occurred (NoSuchEntity) when calling the GetPolicyVersion operation: Policy version not found
I think the cause is because the get_policy method (I implemented it on my local environment) does not return "DefaultVersionId" value.
So, I  would like to ask you some help on this. Specifically, I don't sure if the method "get_policy" was implemented well.
Could you please check / review / test the code I included to implement get_policy ?
Could you please verify why DefaultVersionId does not return any value (and so the error Policy version not found) ?
I really would appreciate you help ! since I need to implement get_policy on moto library!
Thanks,

In the previous input, instead of:
https://github.com/josenrihernand/moto/blob/master/tests/test_iam/test_iam.py#L268#L284
I meant:
https://github.com/josenrihernand/moto/blob/IAM_get_policy/tests/test_iam/test_iam.py#L286#L301
thanks,

@JackDanger , thanks for take a look on it!
I'm aware that probably you're enough busy, so, I really appreciate you valuable time to take a look into it.
I executed the git commands provided, and got these results / output:
[user@ip-xxx-xx-xx-xxx moto]# pwd
/root/moto-repo/moto
[user@ip-xxx-xx-xx-xxx moto]# git status
On branch IAM_get_policy  (---> This is the branch i created for this issue)
nothing to commit, working directory clean
[user@ip-xxx-xx-xx-xxx moto]# git remote set-url origin https://github.com/spulec/moto.git
[user@ip-xxx-xx-xx-xxx moto]# echo $?
0 ---> this git command works (git remote set-url origin...).
[user@ip-xxx-xx-xx-xxx moto]# git remote set-url josenrihernand git@github.com:josenrihernand/moto.git
fatal: No such remote 'josenrihernand' ---> I got this error message.
After the error message, I executed "git remote -v", and I got this output:
[user@ip-xxx-xx-xx-xxx moto]# git remote -v
origin  https://github.com/spulec/moto.git (fetch)
origin  https://github.com/spulec/moto.git (push)
I did not continue with the next one (git getch origin), because the error message. What should i execute ?
thanks a lot!

Hi @JackDanger
Regarding the previous update, I  executed this:
[user@ip-xxx-xx-xx-xxx moto]# git remote set-url origin https://github.com/spulec/moto.git
[user@ip-xxx-xx-xx-xxx moto]# git remote set-url josenrihernand git@github.com:josenrihernand/moto.git
fatal: No such remote 'josenrihernand'
[user@ip-xxx-xx-xx-xxx moto]# git remote set-url josenrihernand git@github.com:josenrihernand/moto.git
[user@ip-xxx-xx-xx-xxx moto]# git remote add josenrihernand git@github.com:josenrihernand/moto.git
[user@ip-xxx-xx-xx-xxx moto]# git remote -v
josenrihernand  git@github.com:josenrihernand/moto.git (fetch)
josenrihernand  git@github.com:josenrihernand/moto.git (push)
origin  https://github.com/spulec/moto.git (fetch)
origin  https://github.com/spulec/moto.git (push)
[user@ip-xxx-xx-xx-xxx moto]# git fetch origin
remote: Counting objects: 1413, done.
remote: Compressing objects: 100% (37/37), done.
remote: Total 1413 (delta 508), reused 511 (delta 492), pack-reused 884
Receiving objects: 100% (1413/1413), 470.94 KiB | 0 bytes/s, done.
Resolving deltas: 100% (993/993), completed with 142 local objects.
From https://github.com/spulec/moto
f052757..371bb2b  master     -> origin/master
From https://github.com/spulec/moto

[new tag]         1.1.10     -> 1.1.10
[new tag]         1.1.11     -> 1.1.11
[new tag]         1.1.12     -> 1.1.12
[new tag]         1.1.13     -> 1.1.13
[new tag]         1.1.18     -> 1.1.18
[new tag]         1.1.19     -> 1.1.19
[new tag]         1.1.2      -> 1.1.2
[new tag]         1.1.20     -> 1.1.20
[new tag]         1.1.21     -> 1.1.21
[new tag]         1.1.3      -> 1.1.3
[new tag]         1.1.4      -> 1.1.4
[new tag]         1.1.5      -> 1.1.5
[new tag]         1.1.6      -> 1.1.6
[new tag]         1.1.8      -> 1.1.8
[new tag]         1.1.9      -> 1.1.9

[user@ip-xxx-xx-xx-xxx moto]# git rebase origin/master
First, rewinding head to replay your work on top of it...
Applying: New function get_policy and the corresponding template
Using index info to reconstruct a base tree...
M       moto/iam/responses.py
:49: trailing whitespace.
warning: 1 line adds whitespace errors.
Falling back to patching base and 3-way merge...
Auto-merging moto/iam/responses.py
Applying: New function test_get_policy
Using index info to reconstruct a base tree...
M       tests/test_iam/test_iam.py
Falling back to patching base and 3-way merge...
Auto-merging tests/test_iam/test_iam.py
[user@ip-xxx-xx-xx-xxx moto]# git push -f josenrihernand HEAD:IAM_get_policy
Counting objects: 1569, done.
Compressing objects: 100% (505/505), done.
Writing objects: 100% (1423/1423), 367.43 KiB | 0 bytes/s, done.
Total 1423 (delta 1006), reused 1299 (delta 901)
remote: Resolving deltas: 100% (1006/1006), completed with 105 local objects.
To git@github.com:josenrihernand/moto.git

af8a9f6...57af5dc HEAD -> IAM_get_policy (forced update)

I'll appreciate your feedback,
thanks a lot !

Closed with https://github.com/spulec/moto/pull/1759


Introduce a dependency mechanism between versioned and repeatable migrations

Please also see "###### Situation:" below
Which version and edition of Flyway are you using?
Flyway Pro Edition 5.0.7 by Boxfuse
If this is not the latest version, can you reproduce the issue with the latest one as well?
(Many bugs are fixed in newer releases and upgrading will often resolve the issue)
No
Which client are you using? (Command-line, Java API, Maven plugin, Gradle plugin)
Gradle, command line
Which database are you using (type & version)?
PostgreSQL 9.6.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11), 64-bit
What did you do?
./gradlew :commerce:flywayMigrate
What did you expect to see?
A way to call the repeatable migration from inside the numbered migration.
What did you see instead?
The new stored procedure does not exist at the time we run the fix for historical partitions, so it will error out. Because each release is downtime, we want to execute this as one deploy and not two.
Situation:
We keep our stored procedures as repeatable migrations so that we can treat them as code.
We have a new stored procedure CheckPartition() which looks at a given partition and adds the required indices. We add partitions on a daily basis, and we encapsulated the logic to create the correct indices into this partition. The partition is normally called from a trigger on the parent table.
However, due to changes on the table (new columns, etc), this same function needs to be run against all the historical partitions to bring them into line with the current set of indices. We are doing this in a numbered migration as we only want to execute the function on these partitions once. V120__RunCheckPartition.sql
The stored proc and the call to fix historical partitions need to go live in the same deploy, so that all partitions are set correctly.
The problem:
The new stored procedure does not exist at the time we run the fix for historical partitions, so it will error out. Because each release is downtime, we want to execute this as one deploy and not two.
Secondary problem:
We are working on using Flyway with our AWS ephemeral environment. However, there we will always run into the problem that since the DB is totally clean, all numbered migrations run before our stored procedures, so even if we did execute it in two different releases originally, with the AWS environment it will always fail.
Desired solution:
A way to call the repeatable migration from inside the numbered migration.

Thank you for the report. I certainly see your point about the dependency between versioned migrations and repeatable ones and how the order is affected by the time at which they are first run.
For now the easiest workaround is to copy the code from your repeatable migration at the beginning of the versioned one that depends on it. I am however fully aware that this isn't fully satisfactory and a proper way to express dependencies would be much better.
Leave this open for now to consider for 6.0. Suggestions and food for thought welcome.

Hello, this has been marked as Closed, but what is the solution? In Oracle sqlplus there is "@" to reference other scripts, but has this issue been fixed by some general (DB independent) way?

See https://github.com/flyway/flyway/issues/3030 for anything related to migration ordering


Default version selected first in mytool/myworkflows

Bug Report
Expected behaviour
After refreshing, setting default version, or going somewhere else and coming back to your own workflow in mytools/myworkfows, etc, the default version should be the first one that's selected.
e.g. https://staging.dockstore.org/my-workflows/github.com/garyluu/example_cwl_workflow should go to my default version which is "master".  worst case it should stay on the previous branch selected.
Actual behaviour
It goes to some other version (always the same version, not sure exactly why) instead
Steps to reproduce the behaviour

Go to my workflows
Have a workflow with many version
select a version that's not currently selected
set it as default version

The version is now swapped back to the initial version for some reason

Seems functional on staging with
DockstoreAPI - 1.4.5
DockstoreUI - 2.1.5


Project Test Case 9_9

Summary
I'm not sure why this has an error
Screenshots:

u can only queue at the 1st self check out, try setting qmax of remaining to 0

customers shouldnt be queuing beyond the first self-check! if you alr set qmax to 0, maybe you can check if you are updating everything properly. eg if you are incorrectly deducting q number from your other self-checks, this might cause their queue num to be negative (less than 0) which might be why customers are able to queue there

adding on to the above, something that i did when i was stuck on this test case was to try testing a case where there are no human servers and only self check out counters. for example, something like:
0 2 2 0
0.500
0.600
0.700
1.500
1.600
1.700

thank you everyone, i was able to pass test case 9_9 thanks to all of yall :D


Call to requests.request needs explicit timeout

Call to requests.request doesn't explicitly mention timeout, without which could lead to zombie processes as default timeout is infinity (None).

Tiny patch with a worthy contribution. :+1:
Thank you kindly. :)


band! overdraw=true not working

How can I get the object from band!() to draw in front of a line?  The band!() function seems to always place the mesh at the lowest z-level regardless of the order when it's added or if overdraw=true
f = Figure()
a = Axis(f[1,1])
x = collect(0:0.1:100)
lines!(a, x, sin.(x))
band!(a, collect(25:75), ones(51), -ones(51), overdraw=true, color=:black)

One final question, the transparency doesn't seem to be working...
f = Figure()
a = Axis(f[1,1])
x = collect(0:0.1:100)
lines!(a, x, sin.(x))
b=band!(a, collect(25:75), ones(51), -ones(51), overdraw=true, color=(:black,0.2), transparency=true)
translate!(b, 0, 0, 2)

Am I doing this correctly?

OK, I see now, I needed to do this in CairoMakie, now it works!
CairoMakie.activate!()
begin
    f = Figure()
    a = Axis(f[1,1])
    x = collect(0:0.1:100)
    lines!(a, x, sin.(x))
    b=band!(a, collect(25:75), ones(51), -ones(51), color=(:black,0.2))
    translate!(b, 0, 0, 2)
    f
end

I think transparency should be fixed in GLMakie: v0.5.0.. It does work for me at least...
It should also work on previous versions, but may be more finicky


Added settings.skipRender

new settings.skipRender prop to allow nexrender to execute jsx scripts on .aep files without rendering an output. Useful for interrigation projects for things like default text values that can be stored and then manipulated manually for later rendering.

hey @pdkn
thank you for the pull request
could you also add similar flag to the cli, so that it could be used similarly from the binary form: --skip-render, or something along that line

Thanks @inlife, good call - cli is updated

great!

HI, the idea of "skipRender" is great. Especially since the new MediaEncoder now (May update 2020) supports hardware accelerated video encoding to h264 based mp4 files. It's a lot faster than aerender now. I'd rather use a watch folder for rendering now.
However, could it be made possible move the "skipRender" setting to the job description?
I neither use the CLI nor the JavaScript based programmatic approach, but rather just send jobs over to the nexrender-server via the REST API from a Java programm. In that scenario I can't set the skipRender option anywhere, as I understand.
Best regards,
Frank

Alternatively the setting could be added to the nexrender-worker as a startup parameter?

@FRANK-AND-FREE you can set it in job settings description settings.skipRender = true

Hi @pdkn ,
currently I'm not calling the render(job, settings) function, since I'm not using the JavaScript way of nexrender. I'm requesting renders by sending jobs to the nexrender-server via HTTP request (using the REST API).

I think adding skipRender support for the worker as well would be the best approach here. Since it's is more platform-specific option rather than job-specific.

@pdkn would you like to create a pull request for the worker package as well with this improvement?

Also, @FRANK-AND-FREE, could you share with us how would you use MediaEncoder in combo with nexrender? It is a use-case I always wanted to support, would be very interested to get more info/details.
Cheers!

Hi @inlife,
right now I have a Java based server application that fetches user created project data from a Firebase. The server application than takes the project data, transforms it into a nexrender job and posts it via HTTP to the nexrender job server. My job contains a custom ExtendScript file that nexrender will apply to an After Effects template.
I guess my Java application will try to register when a new output folder containing the After Effects project file with script applied by nexrender is available and then copy it over to a flat watch folder for Media Encoder (since Media Encoder doesn't allow for watching subfolders in the nexrender worker folder automatically). My Java application will then try to register when a finished video is availble and upload that to Firestore for the user to access it.
Long story short: I would pretty much try to handle the necessary file operations myself via a Java server application after Nexrender has applied the custom ExtendScript file to my After Effects template.
Neither do I have an idea how well this approach would scale with many nexrender jobs, nor if I come up with better solutions when being hands on ;-). This is just my very first naive idea of how things could work together.

As I think of it, all that's missing for the Media Encoder watch folder to basically work is a flat file structure. Maybe nexrender could provide the option to put job files not in their own subfolder but in the working directory directly (uniquely named)?

I'll need to look at the server logic as haven't got as far as network rendering yet. It's on the list. However I would argue that this isn't either job or platform specific but context specific. i.e I added it as wanted to do do a pass on the .aep templates to run some custom jsx that outputs default values of dynamic content as json. and then do another pass to do the actual render with updated dynamic content. Which would be the same approach when working in the cloud. Therefore, without looking at the server code yet, I'd suggest being able to pass the settings option to it? If that is feasible?

@inlife I'm on a different project at mo so it might take a few weeks to get to this now - just to set expectations in case anyone what's a crack at it themselves in meantime.

It seems to me, this issue grows to become a new feature. The general idea which I gathered from your comments: ability to set render provider for each job
Render provider can have possible values of:

aerender - the default renderer, will use existing after effects binary to render the whole job
media-encoder - option to use media encoder instead of aerender to render the job
none - option to skip rendering altogether, just execute scripting, pre and post actions and exit

Sounds very reasonable. It would be really great to be able to make use of Media Encoder for rendering. It really is a lot faster since the last update.

That would be quite a major feature, and would probably go in the v2.0.0. Meanwhile I'm just gonna add --skip-render option to worker as well, similarly to the cli.

Fantastic! Thank you so much. I will give it a try soon. :-)


react-native support

Hi, does this library support react-native? I am seeing the following error when I try to use it in my app:

TransformError: /Users/prabhaav/Development/betaApp/node_modules/firedux/dist/src/index.js: Couldn't find preset "es2015" relative to directory "/Users/prabhaav/Development/betaApp/node_modules/firedux"

I manually installed babel: npm install babel-cli babel-preset-es2015
Then I see the following error:

Anybody else facing this issue?

Got around above issue with the following fix:

echo node_modules/firebase/lib/firebase-web.js > .babelignore

However, it's now breaking here:

@prabhaav I've not ever used the Firebase client from React Native, so can't tell you whether it  will work, but I've just updated the dependency to not assume existence of Image.


This is a new feature or bug about operator "- -"?

print(3 - - 2)
print(3 + + 2)
"""output
5
5
"""

Can you explain your question a bit more?
The way I understand what I think you are asking is that this isn't a bug at all.
Python will interpret 3--2 as 3 - (-2) subtracting a negative is the same as adding the positive. So this expression evaluates to 3+2. 3++2 evaluates to the exact same thing 3+(+2) or 3+2. so as you can see both are equal to 5

There's already an example in the minor ones section along the similar lines

Given that a is a number, ++a and --a are both valid Python statements but don't behave the same way as compared with similar statements in languages like C, C++, or Java.

>>> a = 5
>>> a
5
>>> ++a
5
>>> --a
5

💡 Explanation:

    There is no ++ operator in Python grammar. It is actually two + operators.
    ++a parses as +(+a) which translates to a. Similarly, the output of the statement --a can be justified.
    This StackOverflow thread discusses the rationale behind the absence of increment and decrement operators in Python.


Feature: Add health endpoint to the portal

Is your feature request related to a problem? Please describe.
To automate the deployement, it could be great to have an health endpoint / metrics endpoint that could be requested.
Describe the solution you'd like
Implement Health and Metrics endpoint on the solution.
Describe alternatives you've considered
N/A
Additional context
N/A

Consider : https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks?view=aspnetcore-6.0

See #367 for the implementation.


Check Binary Tree is Bst or Not

Have you read the Contributing Guidelines on Pull Requests?
(Write your answer here.)
YES
Description
(Write your answer here.)
Checked Binary Tree is BST or not using In-order traversal
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
(Write your answer here.)
#4620

@ankitaggarwal23 @iamrajiv @siddharth25pandey can u please review my PR


Build issue of ps-lite for gflags error

When build ps-lite on Ubuntu 14.04
make -j4
Error appears
/usr/local/lib/libglog.a(libglog_la-utilities.o): In function google::GetStackTrace(void**, int, int)': /home/zixie1991/mygit/ps-lite/glog-0.3.3/src/stacktrace_libunwind-inl.h:65: undefined reference to _Ux86_64_getcontext'
/home/zixie1991/mygit/ps-lite/glog-0.3.3/src/stacktrace_libunwind-inl.h:66: undefined reference to _ULx86_64_init_local' /home/zixie1991/mygit/ps-lite/glog-0.3.3/src/stacktrace_libunwind-inl.h:78: undefined reference to _ULx86_64_step'
/home/zixie1991/mygit/ps-lite/glog-0.3.3/src/stacktrace_libunwind-inl.h:70: undefined reference to `_ULx86_64_get_reg'

it's due to you glog is compiled with the libunwind you installed.
please have a pull and then compile with make -j4 EXTRA_LDFLAGS=-lunwind


task: optimize database event dispatch

Currently, database change event is sent in real-time, which may cause heavy load to the system. We hope that the event can be managed and sent regularly to reduce the load.

[ ] reduce dispatch event send times
[ ] remove unnecessary single stream API

Done by https://github.com/seal-io/walrus/pull/1125.


Generated docstring should not include :type for unannotated parameters

Environment data

Pylance version: 2024.9.102
OS and version: Windows 11
Python version: 3.9.12

Code Snippet
def foo(param1) -> int:
    """"""
    return 1

Repro Steps

Trigger completion within """"""

Expected behavior
No :type for unannotated param1.
Actual behavior
    """Docstring for foo

    :param param1: Description
    :type param1:  """

Would this truly be good/useful behaviour? A codebase not using type-hints might still want to, and often should, document the expected type.

Thanks for posting this comment. We will hold on making this change. For other users, please upvote if you want this to be fixed.


O_VALUE

Hi, this project is awesome and useful. Recently I have used master branch to download raw_data, but the data seems to become inaccurate these days (hash of some images became 404). After changing O_VALUE to "e2f24f9ed0117cf0db2e1ecf375f7e6a", the problems solved. Maybe the O_VALUE should be changed regularly?

Sorry for asking a dummy question, is that there have any possible way to get O_VALUE by user/myself? It seems O_VALUE has changed again ...


Feature request: Keep numbers in sync with sensors

Sorry for pestering you with requests - this is just such a great component. I really appreciate your effort. 😊
Could you make number.treadmill_inclination and number.treadmill_speed automatically update state with the data from sensor.treadmill_inclination and sensor.treadmill_speed? Or is this not good practice?

Ok, let's try to implement synchronization. I had such an idea, but the potential ambiguity of the equipment behavior held me back. If there are people who complain about this functionality, I will bring it out in the integration settings option.
Try version 0.4.


serverConfig and sharedConfig (and appConfig) documents on the server

with APIs to get sharedConfig (and appConfig, future use)

sharedConfig =
{
  inputLanguages: ['en', 'es']
}

key name negotiable, but this setting will be used to let content creators select the language they are inputting news feed items in. Because this feature will eventually be used on the admin as well (keyboards > thumbs), it belongs in sharedConfig

We will need to ensure that we save the sharedConfig locally in global storage and default to the saved version when loading in offline mode.


Make 'list::sort' quick by using natural mergesort

Please see issue #710 for context and analysis.
(Resolves #710)
It would be nice if somebody benchmarked this properly: the old quicksort, this new quicksort on JS and LLVM + with JS native sort, but I can notice the improvement as this version can suddenly quickly sort huge random lists.
Other considerations:

we could do some hybrid sort for smaller lists (and it would probably speed it up!), but I don't want the mental overhead of two different sorting algorithms
I'm pretty limited here by Effekt not allowing mutually recursive subfunctions -- this means that I need to pass compare everywhere manually.
not stacksafe (but works fine for ~5M random elements, so it's good enough for me!)
technically this breaks the previous interface: now the function wants a >= instead of a >
I haven't run all tests locally, perhaps this broke something? EDIT: kinda?
it uses a lot of mutual recursion, but I'm willing to optimise stuff a bit more

It seems that this broke valgrind :)
https://github.com/effekt-lang/effekt/actions/runs/11990743350/job/33428584571#step:11:164

I'm pretty limited here by Effekt not allowing mutually recursive subfunctions -- this means that I need to pass compare everywhere manually.

I'm slightly worried that this can interact pretty weirdly with the recently added SAT: there are about a 100 workers generated in the .ll file and with the weird passing around of compare everywhere across mutually recursive calls...
The following code:
  var list = []
  100000.repeat {
    val n = randomInt(-100000, 100000) // see defn in #710
    list = Cons(n, list)
  }
  println(show(list.sort))

(yes, including the print!)
takes ~42s on LLVM, but ~0.5s on JS!

In a "real" application (and by that I mean AoC), this change saves 25-50% of the run time:
Before
✓ 1: JS [6.44ms]
✓ 2: JS [103.46ms]
✓ 1: LLVM [0.27ms]
✓ 2: LLVM [17.80ms]

After
✓ 1: JS [5.66ms]
✓ 2: JS [80.25ms]
✓ 1: LLVM [0.12ms]
✓ 2: LLVM [8.72ms]

Blocked on resolving the leak on the LLVM backend. ^


Polylines not displayed correctly at long zoom distance on iOS

I have seen this in my app which uses WKWebView and also with the default Materials example when loaded in iOS Safari.
Navigate to the default sandcastle example (https://sandcastle.cesium.com/?src=Materials.html) in Safari on iOS 13.5.1 or 13.4 (perhaps others).
From the "Polyline materials" selection, choose "Polyline Outline".
Observe that the polyline is just a large blocky red line. It is not a while line with red outline as it should be.
Select any of the other 2 polyline types.
Observe that the lines cannot be seen at all.
Re-select "Polyline Outline".
Zoom in tightly on the giant red polyline. At sufficient zoom you will notice that it does correctly render as white with red outline.
Switch to either of the other 2 choices and notice that you can now see the polyline at this tighter zoom. If you zoom out the line will disappear.
Sandcastle example: https://sandcastle.cesium.com/?src=Materials.html
Browser: iOS Safari
Operating System: iOS 13.4 and 13.5.1
I am using 1.67 currently as it does not present this issue. One of my colleagues reported to me that it was the latest he found that still worked.

I have reopened issue #9035.


DNS Over tls with Unbound secure question

Hi, I have a question because I don't quite understand it. If I set up Unbound to use DNS Over TLS, I'm thinking of Swiss data protection quad9 with <IP_ADDRESS>, will all my requests be encrypted over port 853? Because it says that the requests are only encrypted to the upstream server. And actually, Unbound does make requests to the root server? But unfortunately over port 53, which cannot be encrypted. Hence the question of whether it is possible to activate DNS over TLS? With a forward zone. thanks for the answer in advance.
and I don't understand this option here: forward-no-cache: no what does the option do if you use quad9 for example and have set it to no because it says yes if it is set to yes no answers are cached or are answers not cached if it is set to no?
sry, I know it's a problem reporter here on github, but otherwise everything works for me, the only question I have is

So I understand you can't bypass port 53 if unbound stands alone and as far as I know you can't encrypt requests locally but I also said :forward-first: no, I think that means that Unbound tries to answer the request first? this is the last question because you don't need SSL but I have installed with SSL.

No, forward-first is about other configuration and fallback to recursion, I think it is better left off, at its default.
Unbound has a cache so tries to answer from that first, before asking the upstream servers. The local-zone and local-data is also consulted first, before asking the upstream, and before looking at the cache.

OK, thanks, then I have the unbound cache + port 853 from quad9. I think the data protection is very good. You say yourself that you have no requests or that you see the requests and so no third party can read the stuff that I send. Thank you, I'm looking forward to unbound version 1.20.1, good work.


can't work probably with node v4.0+

I have a project are working well on node v0.12. But when i upgrade nodejs version to 4.0 i got segmentation fault
/home/vagrant/tweetnacl-nodewrap/node_modules/segfault-handler/build/Release/segfault-handler.node(+0x1b43)[0x7fa51b7dcb43]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x10340)[0x7fa522415340]
node(_ZN2v88internal20StaticMarkingVisitorINS0_32IncrementalMarkingMarkingVisitorEE18VisitJSArrayBufferEPNS0_3MapEPNS0_10HeapObjectE+0x7e)[0xacc82e]
node(_ZN2v88internal18IncrementalMarking4StepElNS1_16CompletionActionENS1_18ForceMarkingActionENS1_21ForceCompletionActionE+0x2bd)[0xad268d]
node(_ZN2v88internal8NewSpace15SlowAllocateRawEiNS0_19AllocationAlignmentE+0x74)[0xb01774]
node(_ZN2v88internal4Heap11AllocateRawEiNS0_15AllocationSpaceES2_NS0_19AllocationAlignmentE+0x1b9)[0xa64339]
node(_ZN2v88internal4Heap16AllocateJSObjectEPNS0_10JSFunctionENS0_13PretenureFlagEPNS0_14AllocationSiteE+0x6b)[0xab419b]

But the weird are it does not fail immediately, it's just fail when i try to run many test cases (about 3000 cases). And i got fault when i ran about from 2100 to 2300 cases.
NOTE: refer my project here https://www.npmjs.com/package/tweetnacl-nodewrap
Sorry for my english skill.

Exactly which version of Node.js are you using? Because ffi only support Node.js from 4.1 beacuse of buffer issues at Node/v8 side: https://github.com/node-ffi/node-ffi/issues/238

I'm using node v4.0.0

@unbornchikken : just test with node v4.1 it's ok. Thanks. i think we can close this issue.
Thanks so much.


How to integrate custom endpoints and headers to connect to private llm service on cloud ?

I try to modify the llmx by adding my custom
LLM service and install the update project from source using pip install -e . on windows and I have issues to run Lida with the customized llmx. Could you help me please ?

When I do this change, I need also to change data_folder in lida/web/app.py -> data_folder=os.path.join(root_file_path, "files", "data") then when I start lida. The app works with windows file system but the api service visualize don’t return image encoded in base64 but open image in a new window. The image is not embed in ui app. Could you help me build from source lida and llmx on windows using anaconda with python 3.10


does srs has a management UI?

e.g.
like EasyNVR or ZLMediaKit

Nope sadly not.

https://github.com/ossrs/srs-console
支持。


ekump/add test agent to trace utils

WIP: Not ready for review yet.
What does this PR do?
A brief description of the change being made with this pull request.
Motivation
What inspired you to submit this pull request?
Additional Notes
Anything else we should know when reviewing?
How to test the change?
Describe here in detail how the change can be validated.

Codecov Report
Attention: Patch coverage is 96.73913% with 3 lines in your changes missing coverage. Please review.

Project coverage is 70.46%. Comparing base (8a5d447) to head (e7565db).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #498      +/-   ##
==========================================
+ Coverage   70.38%   70.46%   +0.08%
==========================================
  Files         204      205       +1
  Lines       27835    27927      +92
==========================================
+ Hits        19591    19680      +89
- Misses       8244     8247       +3

Components
Coverage Δ

crashtracker
16.70% <ø> (ø)

datadog-alloc
98.76% <ø> (ø)

data-pipeline
51.15% <ø> (ø)

data-pipeline-ffi
0.00% <ø> (ø)

ddcommon
86.12% <ø> (ø)

ddcommon-ffi
74.15% <ø> (ø)

ddtelemetry
59.37% <ø> (ø)

ipc
84.66% <ø> (ø)

profiling
78.63% <ø> (ø)

profiling-ffi
58.19% <ø> (ø)

serverless
0.00% <ø> (ø)

sidecar
36.19% <ø> (ø)

sidecar-ffi
0.00% <ø> (ø)

spawn-worker
54.98% <ø> (ø)

trace-mini-agent
69.70% <ø> (ø)

trace-normalization
97.79% <ø> (ø)

trace-obfuscation
95.75% <ø> (ø)

trace-protobuf
77.16% <ø> (ø)

trace-utils
91.42% <96.73%> (+0.21%)
:arrow_up:


[WIP] Update containers to work with new flow

Overview

Related Issue(s)

Testing

Codecov Report

Merging #445 (f152054) into main (b02abbd) will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##            main    #445   +/-   ##
=====================================
  Coverage   3.69%   3.69%
=====================================
  Files        120     120
  Lines       3925    3925
  Branches     968     968
=====================================
  Hits         145     145
  Misses      2981    2981
  Partials     799     799

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Polyfills test
https://github.com/newrelic/newrelic-browser-agent/actions/runs/4563669840
Smoke test
https://github.com/newrelic/newrelic-browser-agent/actions/runs/4563461953


Trying to build a project with your action, it finishes so fast and no image is created

`  - name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ttl.sh
username: "dummy"
password: "dummy"
  - name: Extract Tag Name
    run: |
      # Extracts only the tag name (e.g., refs/tags/v1.0.0 -> v1.0.0)
      TAG_NAME="${GITHUB_REF#refs/tags/}"
      echo "Tag name is $TAG_NAME"

      # Make TAG_NAME available to later steps
      echo "IMAGE_NAME=bla-bla-$TAG_NAME" >> $GITHUB_ENV

  - name: Build and push Docker images
    uses: iloveitaly/github-action-nixpacks@main
    with:
      push: true
      tags: |
        ttl.sh/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}`

It' doesn't work when no platform is specifed
The script does this:
if [ "${#PLATFORMS[@]}" -gt 1 ]; then
  build_and_push_multiple_architectures
elif [ -n "$PLATFORMS" ]; then
  build_and_push
fi

And with no platform specifed it fells out of both if/elif
As a workaround you can do:
      platforms: "linux/amd64,linux/amd64"

to basically run the same build twice and force build_and_push_multiple_architectures

Thanks a lot, I missed this

This does not work for me since it does not count for tags I provide but it generates in --tag ghcr.io/myrepo:linux-amd64


Fix comment on signalWithStart

https://github.com/uber/cadence/pull/3229

 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.You have signed the CLA already but the status is still pending? Let us recheck it.

Pull Request Test Coverage Report for Build e5001a5c-2f43-4e8a-94f5-4aad3d6f03ba

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 74.647%

Totals

Change from base Build d62ffd02-ef48-4a86-8a44-359585a5f009:
0.0%

Covered Lines:
9045

Relevant Lines:
12117

💛  - Coveralls


Add generated doc example

This PR adds:

a script and supporting templates (based on nbconvert + Pandoc) to generate documents from notebooks;
one generated doc (load-data-via-graph-construction.adoc) which replaces the existing one;
generated docs for all the other notebooks.

@mats @FlorentinD @adamnsch @brs96
I think we can review this focusing on the process and on the output rather than on the writing style (which I started drafting out, but it's easier to work on once the process is established).
I've added the instructions in the TESTING file as they seem to fit there for now, but we may decide to move them somewhere else.

The next step would be the CI check. This can be done in a follow up PR though :) My naive thought would be to call the convert script and check git diff if its different

That's what I'd have in mind too. We could try that first.


ci: add codecov

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@5d54fa9). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #2   +/-   ##
=======================================
  Coverage        ?   81.25%
=======================================
  Files           ?       17
  Lines           ?      496
  Branches        ?        0
=======================================
  Hits            ?      403
  Misses          ?       60
  Partials        ?       33

Continue to review full report at Codecov.

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


Style/DateTime marks usages of DateTime.iso8601

Steps to reproduce the problem
Run rubocop over the following snippet:
DateTime.iso8601(iso_string)

Actual behavior
Rubocop registers a Style/DateTime offense and proposes to use Date or Time instead.
Expected behavior
In my opinion this case should not generate an offense, since neither Date nor Time offer the same format compatibility as DateTime (see "Behavioural comparison" below).
Behavioural comparison
This irb snippet shows the difference between the three classes:
irb(main):001:0> require 'time'
irb(main):002:0> date_string = '2017-01-01'
irb(main):003:0> time_string = '2017-01-01T12:34:56Z'

irb(main):004:0> Time.iso8601(date_string)
ArgumentError: invalid date: "2017-01-01"
irb(main):005:0> Time.iso8601(time_string)
=> 2017-01-01 12:34:56 UTC

irb(main):006:0> Date.iso8601(date_string)
=> #<Date: 2017-01-01 ((2457755j,0s,0n),+0s,2299161j)>
irb(main):007:0> Date.iso8601(time_string)
=> #<Date: 2017-01-01 ((2457755j,0s,0n),+0s,2299161j)>

irb(main):008:0> DateTime.iso8601(date_string)
=> #<DateTime: 2017-01-01T00:00:00+00:00 ((2457755j,0s,0n),+0s,2299161j)>
irb(main):009:0> DateTime.iso8601(time_string)
=> #<DateTime: 2017-01-01T12:34:56+00:00 ((2457755j,45296s,0n),+0s,2299161j)>

While Date will not care whether it gets a long or a short ISO string, it of course ignores the time portion.
The Time class refuses accepting a short ISO string.
Only DateTime will accept both.
RuboCop version
Include the output of rubocop -V. Here's an example:
$ rubocop -V
0.51.0 (using Parser <IP_ADDRESS>, running on ruby 2.4.1 x86_64-linux)

We should not auto-correct this, as it would break compatibility.
I would be rather worried though, if the developer does not know what result they are expecting. Using DateTime and not getting any time part looks like it will lead to a silent (and potentially costly) bug. 🙂

I'm closing this ticket due to no recent activity. Feel free to re-open it if you ever come back to it.


[FLOC-3203] Raise error if we can't compute instance ID

In some circumstances, compute_instance_id can return None. This is not a valid response according to the documentation, and most of our code base assumes that compute_instance_id returns a valid instance ID.
Thus, rather than returning None, we here raise an error.

The motivation for the change seems reasonable.  The resulting failures should at least be a little easier to interpret.  It's a slight bummer that we won't be automatically exercising these new code paths in a demonstration that the failures actually look like what we're hoping they'll now look like.  I think it's at least reasonable to test the loopback case.  The cinder and ebs cases may be too hard to reproduce for it to be worthwhile.  And since we should be able to reason about them via their parallelism with the loopback code maybe that's okay.
So please add a test demonstrating the new exception provides the debugging experience you're seeking, address the other inline comments that you think are worthy, and then merge.  Thanks.

Added loopback test
Did not add ebs or cinder tests (I don't think going down the fake nova client rabbithole is the right thing to do now)


79 replace links that use http

@ahmad-shahid  All changes are OK but PR is blocked because not all the commits were signed...


Angular binding does not work in shady dom.

The angular curly braces delimiter does not seem to work inside of Polymer elements.
Here is some sample code.

    <paper-material elevation="1" ng-repeat="video in videos">{{video.title}}</paper-material>

This should output the videos title in the paper material elemtn, but instead it outputs "{{video.title}}". I have tried changing the angular delimiters to "[[ ]]", but still get the same result. Using "ng-bind" seems to work though.

    <paper-material elevation="1" ng-repeat="video in videos" ng-bind="video.title"></paper-material>

This will output the videos title.
This only seems to happen if the angular controller is declared outside of the polymer element and then the binding used inside an element. This worked before in Polymer 0.5, so I am guessing that it has something to do with shady dom.

I guess you should use some other delimiter like ## ##, because both brackets delimiter are used by Polymer.

The output is the same either way. I wasn't very clear on the output when I posted this, so I will clarify real quick.
When I use curly braces, it outputs the title and the delimiter, so it looks like this:
Video Title{{video.title}}
When I change it to using ## ##, the output looks like this:
Video Title##video.title##
So it still outputs the right value, but it also appends the delimiter and variable.

@Wheately I suspect Shady DOM is the culprit, but I would have thought the symptom would be just a little different. So to check my assumptions, can you create a minimal reproduction I can look at? Either Bower installable, or a .zip with dependencies (dev versions) included. Thanks!

@justinfagnani I created a minimal reproduction, here is the link: https://drive.google.com/file/d/0ByZ5z4vVbzCRYkJldHUxQXQtY1E/view?usp=sharing

@robdodson do you know if this has been fixed since?

I don't know about Angular 1 but Angular 2.x seems to work fine.

Closing per above comment. Please let us know if you are still running into issues with interopability with Angular.


Code in the tutorial not working as instructed

What browsers are you seeing the problem on?
No response
Bug report for the website
I am trying to follow the tutorial at  https://docs.substrate.io/tutorials/v3/proof-of-existence/ and I get the following errors
cargo check -p node-template-runtime                                                         Compiling node-template-runtime v4.0.0-dev (E:\Dev\BlockChain\Substrate\proof-of-existense\substrate-node-template\runtime)
Checking pallet-template v4.0.0-dev (E:\Dev\BlockChain\Substrate\proof-of-existense\substrate-node-template\pallets\template)
error[E0599]: the function or associated item contains_key exists for struct frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery>, but its trait bounds were not satisfied
--> pallets\template\src\lib.rs:61:31
|
61  |         ensure!(!Proofs::::contains_key(&proof), Error::::ProofAlreadyClaimed);
|                               ^^^^^^^^^^^^ function or associated item cannot be called on frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery> due to unsatisfied trait bounds
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\storage\types\mod.rs:89:1
|
89  | pub struct ValueQuery;
| ---------------------- doesn't satisfy _: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\traits\misc.rs:420:1
|
420 | pub struct GetDefault;
| ---------------------- doesn't satisfy _: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
|
= note: the following trait bounds were not satisfied:
frame_support::pallet_prelude::ValueQuery: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
GetDefault: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
error[E0599]: the function or associated item insert exists for struct frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery>, but its trait bounds were not satisfied
--> pallets\template\src\lib.rs:67:22
|
67  |         Proofs::::insert(&proof, (&sender, current_block));
|                      ^^^^^^ function or associated item cannot be called on frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery> due to unsatisfied trait bounds
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\storage\types\mod.rs:89:1
|
89  | pub struct ValueQuery;
| ---------------------- doesn't satisfy _: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\traits\misc.rs:420:1
|
420 | pub struct GetDefault;
| ---------------------- doesn't satisfy _: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
|
= note: the following trait bounds were not satisfied:
frame_support::pallet_prelude::ValueQuery: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
GetDefault: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
error[E0599]: the function or associated item contains_key exists for struct frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery>, but its trait bounds were not satisfied
--> pallets\template\src\lib.rs:86:30
|
86  |         ensure!(Proofs::::contains_key(&proof), Error::::NoSuchProof);
|                              ^^^^^^^^^^^^ function or associated item cannot be called on frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery> due to unsatisfied trait bounds
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\storage\types\mod.rs:89:1
|
89  | pub struct ValueQuery;
| ---------------------- doesn't satisfy _: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\traits\misc.rs:420:1
|
420 | pub struct GetDefault;
| ---------------------- doesn't satisfy _: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
|
= note: the following trait bounds were not satisfied:
frame_support::pallet_prelude::ValueQuery: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
GetDefault: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
error[E0599]: the function or associated item get exists for struct frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery>, but its trait bounds were not satisfied
--> pallets\template\src\lib.rs:89:39
|
89  |         let (owner, _) = Proofs::::get(&proof);
|                                       ^^^ function or associated item cannot be called on frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery> due to unsatisfied trait bounds
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\storage\types\mod.rs:89:1
|
89  | pub struct ValueQuery;
| ---------------------- doesn't satisfy _: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\traits\misc.rs:420:1
|
420 | pub struct GetDefault;
| ---------------------- doesn't satisfy _: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
|
= note: the following trait bounds were not satisfied:
frame_support::pallet_prelude::ValueQuery: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
GetDefault: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
error[E0599]: the function or associated item remove exists for struct frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery>, but its trait bounds were not satisfied
--> pallets\template\src\lib.rs:95:22
|
95  |         Proofs::::remove(&proof);
|                      ^^^^^^ function or associated item cannot be called on frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery> due to unsatisfied trait bounds
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\storage\types\mod.rs:89:1
|
89  | pub struct ValueQuery;
| ---------------------- doesn't satisfy _: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\traits\misc.rs:420:1
|
420 | pub struct GetDefault;
| ---------------------- doesn't satisfy _: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
|
= note: the following trait bounds were not satisfied:
frame_support::pallet_prelude::ValueQuery: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
GetDefault: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
error[E0277]: the trait bound Vec<u8>: MaxEncodedLen is not satisfied
--> pallets\template\src\lib.rs:37:15
|
37 |     #[pallet::pallet]
|               ^^^^^^ the trait MaxEncodedLen is not implemented for Vec<u8>
|
= note: required because of the requirements on the impl of StorageInfoTrait for frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery>
error[E0277]: the trait bound <T as frame_system::Config>::AccountId: std::default::Default is not satisfied
--> pallets\template\src\lib.rs:37:15
|
37 |     #[pallet::pallet]
|               ^^^^^^ the trait std::default::Default is not implemented for <T as frame_system::Config>::AccountId
|
= note: required because of the requirements on the impl of std::default::Default for (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)
= note: required because of the requirements on the impl of frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)> for GetDefault
= note: required because of the requirements on the impl of QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault> for frame_support::pallet_prelude::ValueQuery
= note: required because of the requirements on the impl of StorageInfoTrait for frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery>
help: consider further restricting the associated type
|
37 |     #[pallet::pallet where ::AccountId: std::default::Default]
|                      +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
error[E0277]: the trait bound <T as frame_system::Config>::AccountId: std::default::Default is not satisfied
--> pallets\template\src\lib.rs:41:12
|
41 |     #[pallet::storage]
|               ^^^^^^^ the trait std::default::Default is not implemented for <T as frame_system::Config>::AccountId
|
= note: required because of the requirements on the impl of std::default::Default for (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)
= note: required because of the requirements on the impl of frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)> for GetDefault
= note: required because of the requirements on the impl of QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault> for frame_support::pallet_prelude::ValueQuery
= note: required because of the requirements on the impl of StorageEntryMetadataBuilder for frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery>
Some errors have detailed explanations: E0277, E0599.
For more information about an error, try rustc --explain E0277.
error: could not compile pallet-template due to 8 previous errors
warning: build failed, waiting for other jobs to finish...
error: build failed
PS E:\Dev\BlockChain\Substrate\proof-of-existense\substrate-node-template> cargo check -p node-template-runtime
Compiling node-template-runtime v4.0.0-dev (E:\Dev\BlockChain\Substrate\proof-of-existense\substrate-node-template\runtime)
Checking pallet-template v4.0.0-dev (E:\Dev\BlockChain\Substrate\proof-of-existense\substrate-node-template\pallets\template)
error[E0599]: the function or associated item contains_key exists for struct frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery>, but its trait bounds were not satisfied
--> pallets\template\src\lib.rs:61:31
|
61  |         ensure!(!Proofs::::contains_key(&proof), Error::::ProofAlreadyClaimed);
|                               ^^^^^^^^^^^^ function or associated item cannot be called on frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery> due to unsatisfied trait bounds
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\storage\types\mod.rs:89:1
|
89  | pub struct ValueQuery;
| ---------------------- doesn't satisfy _: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\traits\misc.rs:420:1
|
420 | pub struct GetDefault;
| ---------------------- doesn't satisfy _: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
|
= note: the following trait bounds were not satisfied:
frame_support::pallet_prelude::ValueQuery: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
GetDefault: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
error[E0599]: the function or associated item insert exists for struct frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery>, but its trait bounds were not satisfied
--> pallets\template\src\lib.rs:67:22
|
67  |         Proofs::::insert(&proof, (&sender, current_block));
|                      ^^^^^^ function or associated item cannot be called on frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery> due to unsatisfied trait bounds
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\storage\types\mod.rs:89:1
|
89  | pub struct ValueQuery;
| ---------------------- doesn't satisfy _: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\traits\misc.rs:420:1
|
420 | pub struct GetDefault;
| ---------------------- doesn't satisfy _: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
|
= note: the following trait bounds were not satisfied:
frame_support::pallet_prelude::ValueQuery: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
GetDefault: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
error[E0599]: the function or associated item contains_key exists for struct frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery>, but its trait bounds were not satisfied
--> pallets\template\src\lib.rs:86:30
|
86  |         ensure!(Proofs::::contains_key(&proof), Error::::NoSuchProof);
|                              ^^^^^^^^^^^^ function or associated item cannot be called on frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery> due to unsatisfied trait bounds
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\storage\types\mod.rs:89:1
|
89  | pub struct ValueQuery;
| ---------------------- doesn't satisfy _: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\traits\misc.rs:420:1
|
420 | pub struct GetDefault;
| ---------------------- doesn't satisfy _: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
|
= note: the following trait bounds were not satisfied:
frame_support::pallet_prelude::ValueQuery: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
GetDefault: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
error[E0599]: the function or associated item get exists for struct frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery>, but its trait bounds were not satisfied
--> pallets\template\src\lib.rs:89:39
|
89  |         let (owner, _) = Proofs::::get(&proof);
|                                       ^^^ function or associated item cannot be called on frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery> due to unsatisfied trait bounds
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\storage\types\mod.rs:89:1
|
89  | pub struct ValueQuery;
| ---------------------- doesn't satisfy _: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\traits\misc.rs:420:1
|
420 | pub struct GetDefault;
| ---------------------- doesn't satisfy _: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
|
= note: the following trait bounds were not satisfied:
frame_support::pallet_prelude::ValueQuery: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
GetDefault: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
error[E0599]: the function or associated item remove exists for struct frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery>, but its trait bounds were not satisfied
--> pallets\template\src\lib.rs:95:22
|
95  |         Proofs::::remove(&proof);
|                      ^^^^^^ function or associated item cannot be called on frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery> due to unsatisfied trait bounds
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\storage\types\mod.rs:89:1
|
89  | pub struct ValueQuery;
| ---------------------- doesn't satisfy _: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
|
::: C:\Users\Waleed.cargo\git\checkouts\substrate-7e08433d4c370a21\22d40c7\frame\support\src\traits\misc.rs:420:1
|
420 | pub struct GetDefault;
| ---------------------- doesn't satisfy _: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
|
= note: the following trait bounds were not satisfied:
frame_support::pallet_prelude::ValueQuery: QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault>
GetDefault: frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)>
error[E0277]: the trait bound Vec<u8>: MaxEncodedLen is not satisfied
--> pallets\template\src\lib.rs:37:15
|
37 |     #[pallet::pallet]
|               ^^^^^^ the trait MaxEncodedLen is not implemented for Vec<u8>
|
= note: required because of the requirements on the impl of StorageInfoTrait for frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery>
error[E0277]: the trait bound <T as frame_system::Config>::AccountId: std::default::Default is not satisfied
--> pallets\template\src\lib.rs:37:15
|
37 |     #[pallet::pallet]
|               ^^^^^^ the trait std::default::Default is not implemented for <T as frame_system::Config>::AccountId
|
= note: required because of the requirements on the impl of std::default::Default for (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)
= note: required because of the requirements on the impl of frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)> for GetDefault
= note: required because of the requirements on the impl of QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault> for frame_support::pallet_prelude::ValueQuery
= note: required because of the requirements on the impl of StorageInfoTrait for frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery>
help: consider further restricting the associated type
|
37 |     #[pallet::pallet where ::AccountId: std::default::Default]
|                      +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
error[E0277]: the trait bound <T as frame_system::Config>::AccountId: std::default::Default is not satisfied
--> pallets\template\src\lib.rs:41:12
|
41 |     #[pallet::storage]
|               ^^^^^^^ the trait std::default::Default is not implemented for <T as frame_system::Config>::AccountId
|
= note: required because of the requirements on the impl of std::default::Default for (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)
= note: required because of the requirements on the impl of frame_support::traits::Get<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber)> for GetDefault
= note: required because of the requirements on the impl of QueryKindTrait<(<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), GetDefault> for frame_support::pallet_prelude::ValueQuery
= note: required because of the requirements on the impl of StorageEntryMetadataBuilder for frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery>
Some errors have detailed explanations: E0277, E0599.
For more information about an error, try rustc --explain E0277.
error: could not compile pallet-template due to 8 previous errors
warning: build failed, waiting for other jobs to finish...
error: build failed
Steps to reproduce the problem
Follow the tutorial after cloning git clone https://github.com/substrate-developer-hub/substrate-node-template and then git checkout latest

I encountered the same mistake in this chapter

I tried running it with wsl on windows and it worked, powershell might be causing the issue.


refactor(errormessage): clean up styling

Clean up styles

:tada: This PR is included in version 4.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Feature: callback for field/model initialisation

[x] feature request

It would be nice to have an initialisation callback before fields are populated.
For example:

In the Repeating Type, when model data exists, the FieldGroups are already populated, before the FieldArrayType implementation's ngOnit runs. Having a callback would simplify the code.
https://stackblitz.com/edit/angular-abr1eg?file=src/app/datatable.type.ts

In the Repeating Type to populate buttons.

In the Repeating Type to populate a first row in the model when no model data exists.

Some of this can be done before it is handed over to formly, but I think it also makes sense to have the option to have it as near to the library as possible.

In the Repeating Type, when model data exists, the FieldGroups are already populated, before the FieldArrayType implementation's ngOnit runs. Having a callback would simplify the code.

what would be the diff of using for example onCreate callback rather than ngOnit

In the Repeating Type to populate buttons.

not clear, can you elaborate please.

In the Repeating Type to populate a first row in the model when no model data exists.

you can use defaultValue property

what would be the diff of using for example onCreate callback rather than ngOnit

I searched angular and formly for an onCreate hook, but couldn't find some information. Or is it something you would like to implement. Can you please elaborate.

In the Repeating Type to populate buttons.
not clear, can you elaborate please.

Adding the remove/delete buttons as fields, instead of supplying them in html. Aligning a fieldgroup (container) and additional (outside container) buttons is somehow problematic. This is a minor issue.

you can use defaultValue property

The defaultValue example explains to provide default values in the model is preferred. defaultValue is also OK.
https://stackblitz.com/edit/angular-bh6dx1-grbh18?file=src%2Fapp%2Fapp.component.ts
Tried it and added it at to two different places, but didn't work.
Setting it at the 'repeat' level throws an exception in formly.

Setting it at the 'repeat' level throws an exception in formly.

you've passed an object value instead of array for 'windowsDisks' try with:
    {
      key: 'windowsDisks',
      type: 'repeat',
      defaultValue: [undefined], // used undefined here in order to take the default value from fieldArray
    }

I searched angular and formly for an onCreate hook, but couldn't find some information. Or is it something you would like to implement. Can you please elaborate.

onCreate not yet implemented, I'm just asking the benefit of having a such hook, now I clearly understand your request

https://stackblitz.com/edit/angular-bh6dx1-79gru5?file=src/app/app.component.ts

defaultValue: [undefined], // used undefined here in order to take the default value from fieldArray

Tried your suggestion, but didn't work.
https://stackblitz.com/edit/angular-bh6dx1-ukstmr?file=src/app/app.component.ts
Setting defaultValue at the type level works and solves the model initialisation for me. From this point I am in the need of a "callback" to update the select options to have the "simpler" code as mentioned in the inital issue description.

onCreate not yet implemented, I'm just asking the benefit of having a such hook, now I clearly understand your request

How it is called or implemented is up to you. The code in the derived type should run before FieldType calls the template rendering. Model and field should be set. It should also to be called on every field/model change too.

Here is my proposal

prePopulate: before touching the field.
onPopulate:  defaultOptions, Model, formControl are set (which is suitable to update the child element).
postPopulate: after populate children, if the field doesn't have children it should be the same as onPopulate event.

also please note that these events can be called whenever the field model change not matter the field was initialized or not.

defaultValue should be fixed by #1115

landed as an extension which will allow more extensibility, first you have to create a custom extension and register it in the main module:
export const lifecycleFormlyExtension: FormlyExtension = {
  prePopulate(field: FormlyFieldConfig) {
    if (field.lifecycle && field.lifecycle.prePopulate) {
      field.lifecycle.prePopulate(field);
    }
  },
  onPopulate(field: FormlyFieldConfig) {
    if (field.lifecycle && field.lifecycle.onPopulate) {
      field.lifecycle.onPopulate(field);
    }
  },
  postPopulate(field: FormlyFieldConfig) {
    if (field.lifecycle && field.lifecycle.postPopulate) {
      field.lifecycle.postPopulate(field);
    }
  },
};

@NgModule({
  imports: [
    ...,
    FormlyModule.forRoot({
      ...,
      extensions: [lifecycleFormlyExtension],
    }),
  ],
})
export class AppModule { }

Note: this feature is marked as experimental for now and it may change in the nearest future so play with it and provide us you feedback before it's too late :).

published in v5.0.0-beta.2.
Update: extension require a name:
@NgModule({
  imports: [
    ...,
    FormlyModule.forRoot({
      ...,
      extensions: [{ name: 'custom_name', extension: lifecycleFormlyExtension }],
    }),
  ],
})
export class AppModule { }

@aitboudad Great, your extension works as expected. It can solve to reduce complexities in the custom type's code. Thanks a lot.
To use a field config implementation is not my favored one. To use a custom type the app component (by field config) has to provide code which needs to interact with the behaviour of the custom type or even provide the full code for the custom type's intend.
To overcome this, before handing over the field config to formly an application can call a service which traverses through the field config, modifies the field config for a custom type and also provides the populate code.
The idea of a custom type is to have an interface (by an as simple as possible field config) and a behaviour/semantics. It interacts closely with the formly library and shields of the implementation for it's users (app component) (and even more the implementation of the formly library).
I was hoping more for a coded solution, extending a populate method in the derived custom type:
TypeScript extending example
Are there any drawbacks or implications using such a solution?
The field config implementation can be valuable for specific situations. Would be great to have an additional "coded" solution.
For the time being I will go the above described "using a service" path.

not sure if possible since components are created after postPopulate, the only possible way is to use a static callback.
I'll look into it later

currently there is no easy way to have a such feature in the core, I hope the new ivy would allow more flexibility in angular.

good news, I figure-out that there is a way to create the field component instance too early so there a hope to have a such feature out of the box!

Just wanted to implement my "using a service" and noticed my issue is back open and to read your message, this would be great.
Looking forward for your solution (I will be on holiday till 19.09 and are delighted to test after).

done in beta.5.

@aitboudad thx, works great and reduces initialization code.


Separate implementation of time integration schemes

In GitLab by @ranocha on Jun 10, 2020, 13:25
We want to be able to choose different time integration schemes easily. Useful classes of low-storage schemes seem to be

Williamson 2N (like the classical Kennedy-Carpenter we use right now)
Ketcheson 3S

We could implement these classes in a general way and only adapt the coefficients for each different scheme. Then, we also need to separate the storage necessary for the RK scheme from the DG struct (but be able to change the buffers/caches when AMR is used).

Also, they can be implemented on the common interface, and then you'd be able to swap out between: https://diffeq.sciml.ai/stable/solvers/ode_solve/#Low-Storage-Methods

@ChrisRackauckas That sounds interesting. Is there an example (or specification) available as to which interface we would have to support explicitly to be able to do this?

Yes, that's also on our list (and what I've suggested some months ago). We just need to figure out a convenient way to do the custom operations we currently have between RK steps using (discrete) callbacks, including

adaptive mesh refinement: resizing the solutions/buffers, similar to https://diffeq.sciml.ai/latest/features/callback_functions/#Example-3:-Growing-Cell-Population
intermediate notifications or output of solution files (easy)
CFL-based time step control: https://diffeq.sciml.ai/latest/features/callback_library/#Stepsize-Limiters
something else?

From my point of view, all of that is more or less only some work, not something fundamentally new.

As a first step you can take your methods and implement them as a dispatch like https://github.com/SciML/SimpleDiffEq.jl . I assume you have some cool stuff in your loops given all of the papers I've seen from your adapting to manifolds stuff, so it would be nice to have that kind of stuff on the interface, and we'll add you to that page. Once you're calling into there, yeah you might need to use some callbacks to interface with the other methods. Clima is also making some low-storage methods as well and uses a bunch, so it would be cool to figure out exactly what your strategy is and then try it on a full climate model as well.

There's also

multi-physics coupling (one ODE solver iterating during another's RK stage)
local time stepping
that should go on that list.

What we've implemented in this repo is mostly just the basic stuff, nothing fancy concerning time integration etc. Instead, we're focusing on the spatial part and We would need to be able to fuse some operations to get maximal efficiency, e.g. for low-storage 2N methods, we would like to compute the update of the solution and derivative parts in one pass instead of two. For example, looking at https://github.com/SciML/OrdinaryDiffEq.jl/blob/master/src/perform_step/low_storage_rk_perform_step.jl#L54-L62
  for i in eachindex(A2end)
    if williamson_condition
      f(ArrayFuse(tmp, u, (A2end[i], dt, B2end[i])), u, p, t+c2end[i]*dt)
    else
      @.. tmp = A2end[i]*tmp
      f(k, u, p, t+c2end[i]*dt)
      @.. tmp += dt * k
      @.. u   = u + B2end[i]*tmp
    end

it's okay for us to not use the williamson_condition in but we would like to perform
      @.. tmp += dt * k
      @.. u   = u + B2end[i]*tmp

in one loop instead of going over the arrays two times, i.e. to use something like
for idx in eachindex(u)
  tmp[idx] += dt * k[idx]
  u[idx]   = u[idx] + B2end[i]*tmp[idx]
end

instead of
for idx in eachindex(u)
  tmp[idx] += dt * k[idx]
end
for idx in eachindex(u)
  u[idx]   = u[idx] + B2end[i]*tmp[idx]
end

I know that kernel fusing is on your list, @ChrisRackauckas - basically because of the clima project? But I don't know the current status.

Concerning the manifold stuff, I'm still trying to figure out a nice abstraction that's performant and easy to implement. Currently, I'm mostly using discrete callbacks for relaxation methods etc.

Yeah we might need another hook in there.
For fusing, @kanav99 did a bunch of stuff but I don't think it got documented yet, so we should update the docs first and then link them. There's an "incrementing form" that's allowed for the fusion now.

Okay, sounds interesting. I'm looking forward to that feature. Do you have an idea how to set up local time stepping methods in the DiffEq ecosystem?

Local time stepping? Like, multi-rate?

yes, multi-rate but not for different phyics, but for different grid cell sizes (due to AMR) and the corresponding local CFL estimates

Yes, that's also on our list (and what I've suggested some months ago). We just need to figure out a convenient way to do the custom operations we currently have between RK steps using (discrete) callbacks, including

adaptive mesh refinement: resizing the solutions/buffers, similar to https://diffeq.sciml.ai/latest/features/callback_functions/#Example-3:-Growing-Cell-Population
intermediate notifications or output of solution files: easy using a PresetTimeCallback or PeriodicCallback
CFL-based time step control: https://diffeq.sciml.ai/latest/features/callback_library/#Stepsize-Limiters
steady state approach: https://diffeq.sciml.ai/latest/features/callback_library/#TerminateSteadyState
something else?

From my point of view, all of that is more or less only some work, not something fundamentally new. More difficult are

local time stepping
multiphysics simulations having multiple solvers coupled together: We would need to wrap the DG solvers in some closures to make them work with *DiffEq


M3U8 support (soundcloud)

Songbird version: 0.4.1
Rust version (rustc -V): rustc 1.81.0-nightly (aa1d4f682 2024-07-03)
Serenity/Twilight version: serenity 0.12
Output of ffmpeg -version, yt-dlp --version (if relevant): 2024.07.02
...
Description:
when trying to play a source from soundcloud.com, symphonia throws a no format supported error, even when enabling everything. my best guess is that soundcloud uses opus or something.
...
Steps to reproduce:
...
use voice example
pass in soundcloud link (e.g https://soundcloud.com/upscale-recordings/tomsbattery?)
observe error thrown in logs

We have full support for Opus, because we configure symphonia with a custom codec for that purpose.
The issue here is that the stream you have linked is m3u8, which we don't support:
yt-dlp -j https://soundcloud.com/upscale-recordings/tomsbattery? -f ba[abr>0][vcodec=none]/best --no-playlist | jq '{protocol, url}'
{
  "protocol": "m3u8_native",
  "url": "https://cf-hls-opus-media.sndcdn.com/playlist/594b68d6-a265-4a75-8125-da0c9d40eb14.64.opus/playlist.m3u8?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiKjovL2NmLWhscy1vcHVzLW1lZGlhLnNuZGNkbi5jb20vcGxheWxpc3QvNTk0YjY4ZDYtYTI2NS00YTc1LTgxMjUtZGEwYzlkNDBlYjE0LjY0Lm9wdXMvcGxheWxpc3QubTN1OCoiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MjAxOTgxMDd9fX1dfQ__&Signature=HIOzUklJSPdTda6ZZ~8BZuBd4YsuX0xm4Jh88es7DcClCouT18sox4~6V8pvpRx3J12yRr6HTPzW3hvt-fIInSDYTj5eRTLbkX0bdW1-1GvBgdHcjxhO11k7m8ElERXu~bRWe3Jhb2Nv9wzE3LL7kyto3KzHkdTOnrQfFc5KPVOnj8yCljoYLFdlrg3F4wkKJ6CpFGSPVb2Q88cPb~JfFulsfVqGbwWJml4-OwOcYUIzL4SinCUrMwtIGQesNQinYoVhlra-g5ydPBMPz07pzmIfuh6qg417PFlscRlYRw8ExfdaHYJlXKT9RSzbGWrSy5ODgqrVylcAMfBo6MQQNg__&Key-Pair-Id=APKAI6TU7MMXM5DG6EPQ"
}

Practically speaking, the object that gets downloaded is a playlist which links to a set of smaller opus chunks. Handling playlists like this is probably a significant lift in terms of engineering work.

is there anything i can do to help?

just tried it, seems to work


Last.fm authorization doesn't work

OS: Windows 10 build 14946
Issue Descriptions: After "LOG IN TO LAST.FM" button click I have a message "Last.FM Status: Authorization in Progress" and nothing happens.

Last.FM appears to "yet again" be having some issues.  Please wait for them to fix their API again

I've been experiencing this issue as well for at least the past 5 days. Is this where we can check the API status? Everything seems to be OK other than submissions.

Everything seems to be OK other than submissions.

Last.FM are notoriously bad at updating their API status.


ParticlesMaterial property doesn't have "revert" button

Godot version:
3.1.1
3.2.alpha 35944aebdeb4c3b5869aaeedaaded02397b7ce92
OS/device including version:
5.3.7.arch1-1
Issue description:
The "Orbit Velocity" property of Particles2D -> ParticlesMaterial doesn't have a "revert" button after the property values are changed.
Steps to reproduce:

Add a Particles2D to the SceneTree
In the Inspector panel navigate to Particles2D -> Process Material and add a new ParticlesMaterial
Click on the ParticlesMaterial and navigate to Orbit Velocity
Change any of the property's values

Minimal reproduction project:
particles.zip

Actually a duplicate of #30651


Fix broken compose sequences (including #823)

This fixes the compose sequences broken due to using '(', ')', or '_' which weren't escaped. This also fixes #823. It also add a test to check every compose sequence.
One interesting case is the grave character. It's compose sequence cannot be reached. When looking up the compose sequence in /usr/share/X11/locale/en_US.UTF-8/Compose I noticed it being
<dead_grave> <space>			: "`"	grave # GRAVE ACCENT

This leads me to believe that most compose sequences using grave have problems.
This leads me to the problem of the keymap kmonad expects.
I thought it was us - basic but those sequences are for us - intl (names taken from /usr/share/X11/xkb/symbols/us).
This leads me to mark this pull request as a draft. If you have any ideas of what to do with those compose sequences / difference in mapping assumptions, please tell me.

Since I have now investigated what happens to with the other compose sequences I will mark it ready for review

Interesting. haddock.stackage.org returned 404...

I've seen failures like this a few times, and it's usually only temporary—curious, though, that here it should persist for so long. FTR, I have no problems accessing haddock.stackage.org/snapshots.json via curl…

Ah, but this seems more related to the Haskell foundation now managing stack. I updated the CI to hopefully respect this.

Can this be merged or is there something which needs change?

Can this be merged or is there something which needs change?

I was playing around with this a bit yesterday; looks fine to me.