Credential information could not be extracted / Couldn't receive credential from OpenID4VCI offer

I don't think the app is working as you expect.
Steps to reproduce:

Run latest version in Expo (or use Play Store app)
Scan in this QR

This produces the "Credential information could not be extracted" error inside the app.
Note, the QR seems valid as I've managed to scan it into a different wallet app. And I got it from https://launchpad.mattrlabs.com/.
I've also tried many QRs, all produce the same error.
Looking at the expo logs, it says

}
 DEBUG  DEBUG: Connecting to WebSocket wss://mediator.dev.paradym.id/didcomm
 DEBUG  DEBUG: Successfully connected to WebSocket wss://mediator.dev.paradym.id/didcomm
 LOG  START fetching url: https://launchpad.vii.electron.mattrlabs.io/.well-known/openid-credential-issuer
 LOG  success status: 200, body:
{"issuer":"https://launchpad.vii.electron.mattrlabs.io","authorization_endpoint":"https://launchpad.vii.electron.mattrlabs.io/oidc/v1/auth/authorize","token_endpoint":"https://launchpad.vii.electron.mattrlabs.io/oidc/v1/auth/token","jwks_uri":"https://launchpad.vii.electron.mattrlabs.io/oidc/v1/auth/jwks","token_endpoint_auth_methods_supported":["none","client_secret_basic","client_secret_jwt","client_secret_post","private_key_jwt"],"code_challenge_methods_supported":["S256"],"grant_types_supported":["authorization_code","urn:ietf:params:oauth:grant-type:pre-authorized_code"],"response_modes_supported":["form_post","fragment","query"],"response_types_supported":["code id_token","code","id_token","none"],"scopes_supported":["OpenBadgeCredential","PermanentResidentCard","AcademicAward","LearnerProfile"],"token_endpoint_auth_signing_alg_values_supported":["HS256","RS256","PS256","ES256","EdDSA"],"credential_endpoint":"https://launchpad.vii.electron.mattrlabs.io/oidc/v1/auth/credential","credentials_supported":[{"id":"a09382b7-4345-4396-b86b-bcb3ba6e6716","format":"ldp_vc","types":["VerifiableCredential","OpenBadgeCredential"],"cryptographic_binding_methods_supported":["did:key"],"cryptographic_suites_supported":["Ed25519Signature2018"],"display":[{"name":"Example University Degree","description":"JFF Plugfest 3 OpenBadge Credential","background_color":"#464c49","logo":{"url":"https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png"}}]},{"id":"16ca7226-0ee7-4a42-be3b-c186f75f6218","format":"ldp_vc","types":["VerifiableCredential","PermanentResidentCard"],"cryptographic_binding_methods_supported":["did:key"],"cryptographic_suites_supported":["Ed25519Signature2018"],"display":[{"name":"Permanent Resident Card","description":"Government of Kakapo","background_color":"#3a2d2d","logo":{"url":"https://static.mattr.global/credential-assets/government-of-kakapo/web/logo.svg"}}]},{"id":"9a84a5b5-acfc-4fcf-b8a0-b50930ce72c3","format":"ldp_vc","types":["VerifiableCredential","AcademicAward"],"cryptographic_binding_methods_supported":["did:key"],"cryptographic_suites_supported":["Ed25519Signature2018"],"display":[{"name":"Academic Award","description":"Microcredential from the MyCreds Network.","background_color":"#def4f7","logo":{"url":"https://mycreds.ca/wp-content/uploads/2020/10/Mycreds.ca-Logo.svg"}}]},{"id":"7c47194f-f887-4a85-abd2-46f67f1bc335","format":"ldp_vc","types":["VerifiableCredential","LearnerProfile"],"cryptographic_binding_methods_supported":["did:key"],"cryptographic_suites_supported":["Ed25519Signature2018"],"display":[{"name":"Digitary Learner Profile","description":"Example","background_color":"#f5f5f5","logo":{"url":"https://i.imgur.com/o89yUrl.png"}}]},{"id":"613ecbbb-0a4c-4041-bb78-c64943139d5f","format":"jwt_vc_json","types":["VerifiableCredential","OpenBadgeCredential"],"cryptographic_binding_methods_supported":["did:key"],"cryptographic_suites_supported":["EdDSA"],"display":[{"name":"Example University Degree","description":"JFF Plugfest 3 OpenBadge Credential","background_color":"#464c49","logo":{"url":"https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png"}}]},{"id":"c3db5513-ae2b-46e9-8a0d-fbfd0ce52b6a","format":"jwt_vc_json","types":["VerifiableCredential","PermanentResidentCard"],"cryptographic_binding_methods_supported":["did:key"],"cryptographic_suites_supported":["EdDSA"],"display":[{"name":"Permanent Resident Card","description":"Government of Kakapo","background_color":"#3a2d2d","logo":{"url":"https://static.mattr.global/credential-assets/government-of-kakapo/web/logo.svg"}}]},{"id":"e4e8ffec-54e1-412e-82c7-8faaaa34f585","format":"jwt_vc_json","types":["VerifiableCredential","AcademicAward"],"cryptographic_binding_methods_supported":["did:key"],"cryptographic_suites_supported":["EdDSA"],"display":[{"name":"Academic Award","description":"Microcredential from the MyCreds Network.","background_color":"#def4f7","logo":{"url":"https://mycreds.ca/wp-content/uploads/2020/10/Mycreds.ca-Logo.svg"}}]},{"id":"2ae327ed-7b40-483c-a046-86a4dfa633df","format":"jwt_vc_json","types":["VerifiableCredential","LearnerProfile"],"cryptographic_binding_methods_supported":["did:key"],"cryptographic_suites_supported":["EdDSA"],"display":[{"name":"Digitary Learner Profile","description":"Example","background_color":"#f5f5f5","logo":{"url":"https://i.imgur.com/o89yUrl.png"}}]}]}
 LOG  START fetching url: https://launchpad.vii.electron.mattrlabs.io/oidc/v1/auth/token
 LOG  error status: 400, body:
{"error":"invalid_grant","error_description":"grant request is invalid"}
 ERROR  ERROR: Couldn't receive credential from OpenID4VCI offer {
  "error": {
    "name": "Error",
    "stack": "Error: Retrieving an access token from https://launchpad.vii.electron.mattrlabs.io/oidc/v1/auth/token for issuer https://launchpad.vii.electron.mattrlabs.io failed with status: 400\n    at ?anon_0_ (http://<IP_ADDRESS>:8081/index.bundle//&platform=android&dev=true&minify=false&app=id.paradym.wallet.dev&modulesOnly=false&runModule=true:625310:26)\n    at next (native)\n    at fulfilled (http://<IP_ADDRESS>:8081/index.bundle//&platform=android&dev=true&minify=false&app=id.paradym.wallet.dev&modulesOnly=false&runModule=true:625097:30)\n    at tryCallOne (/root/react-native/packages/react-native/ReactAndroid/hermes-engine/.cxx/Release/554c6x4t/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:53:16)\n    at anonymous (/root/react-native/packages/react-native/ReactAndroid/hermes-engine/.cxx/Release/554c6x4t/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:139:27)\n    at apply (native)\n    at anonymous (http://<IP_ADDRESS>:8081/index.bundle//&platform=android&dev=true&minify=false&app=id.paradym.wallet.dev&modulesOnly=false&runModule=true:39248:26)\n    at _callTimer (http://<IP_ADDRESS>:8081/index.bundle//&platform=android&dev=true&minify=false&app=id.paradym.wallet.dev&modulesOnly=false&runModule=true:39127:17)\n    at _callReactNativeMicrotasksPass (http://<IP_ADDRESS>:8081/index.bundle//&platform=android&dev=true&minify=false&app=id.paradym.wallet.dev&modulesOnly=false&runModule=true:39172:17)\n    at callReactNativeMicrotasks (http://<IP_ADDRESS>:8081/index.bundle//&platform=android&dev=true&minify=false&app=id.paradym.wallet.dev&modulesOnly=false&runModule=true:39378:44)\n    at __callReactNativeMicrotasks (http://<IP_ADDRESS>:8081/index.bundle//&platform=android&dev=true&minify=false&app=id.paradym.wallet.dev&modulesOnly=false&runModule=true:3465:46)\n    at anonymous (http://<IP_ADDRESS>:8081/index.bundle//&platform=android&dev=true&minify=false&app=id.paradym.wallet.dev&modulesOnly=false&runModule=true:3239:45)\n    at __guard (http://<IP_ADDRESS>:8081/index.bundle//&platform=android&dev=true&minify=false&app=id.paradym.wallet.dev&modulesOnly=false&runModule=true:3438:15)\n    at flushedQueue (http://<IP_ADDRESS>:8081/index.bundle//&platform=android&dev=true&minify=false&app=id.paradym.wallet.dev&modulesOnly=false&runModule=true:3238:21)\n    at invokeCallbackAndReturnFlushedQueue (http://<IP_ADDRESS>:8081/index.bundle//&platform=android&dev=true&minify=false&app=id.paradym.wallet.dev&modulesOnly=false&runModule=true:3232:33)",
    "message": "Retrieving an access token from https://launchpad.vii.electron.mattrlabs.io/oidc/v1/auth/token for issuer https://launchpad.vii.electron.mattrlabs.io failed with status: 400"
  }
}

Could you try running it from #71?
This should support the latest version of MATTR Launchpad (with Jwt format). We'll merge this soon when some underlying dependencies are updated

Could you try running it from #71?
This should support the latest version of MATTR Launchpad (with Jwt format). We'll merge this soon when some underlying dependencies are updated

this worked, tyvm 🙏

Will close as the specific issue was resolved. Please open another issue if you run into any other problems :)


Pending Installs

Just upgraded to <IP_ADDRESS>6 and noticed that if I have machines pending updates and they are listed on the main page, if I click on them it doesn't show the clients in Pending list and in the top left where it displays the machine name, etc it says the following:    ()

Updated to <IP_ADDRESS>57 and these seem to be working ok now.  Had another issue after upgrading to 2.13 with the menus being blank and found that short tags needed turned on in /etc/php.ini and rebooting the web server.  Maybe it fixed this issue as well or the update did?...not sure.


Upload Page Blobs more efficiently by skipping over holes in sparse files for POSIX systems

This is a draft implementation for https://github.com/Azure/azure-sdk-for-python/issues/9538. It's a proof of concept and surely needs more work and testing to reach the bar.
For a sparse 1 GB file that's mostly empty, this reduces the upload time from ~16s to ~1.5s.

Can one of the admins verify this patch?

/azp run python - storage - ci

@letmaik Can you fix the tests?

What tests? The failures look unrelated. Please also look at my PR description, this has to be taken up by someone who has a deeper understanding of the SDK.

@xiafu-msft  can you take a look


codecov-coverage

Codecov Report
Base: 0.00% // Head: 0.00% // No change to project coverage :thumbsup:

Coverage data is based on head (2b5a17e) compared to base (7a4acf2).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##              main     #13   +/-   ##
=======================================
  Coverage     0.00%   0.00%
  Complexity      56      56
=======================================
  Files            8       8
  Lines          139     139
=======================================
  Misses         139     139

Flag
Coverage Δ

unit-test
0.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Update Google.Cloud.Logging.Console with GA Microsoft.Extensions.Logging.Console

Now Microsoft.Extensions.Logging.Console is GA, we can productionize our logging formatter.

I'll start working:

[ ] Updating dependencies
[ ] Creating an integration test
[ ] Productionizing the "currently somewhat prototype" code - and particularly thinking about performance
[ ] Writing more unit tests
[ ] Writing documentation

Are we going to increase version in apis.json?
"id": "Google.Cloud.Logging.Console",
 "version": "1.0.0-alpha00",

Not until it's ready to release

I've did quick experiment for performance.
Default Implementation

With System.IO.Pipelines > https://devblogs.microsoft.com/dotnet/system-io-pipelines-high-performance-io-in-net/

There is no difference on allocations. Maybe I miss something.

Implementation

i'll also try with RecyclableMemoryStream
Do I need to create new issue for this?

No need to create an issue for it particularly. I won't be able to review anything until I'm back at work on Monday though.

@jskeet I've updates benchmark test results with proper testing. (above)

Thanks. It's still frustrating to me that we have to create a string at all. But I haven't looked at alternatives yet. (Perhaps try using TextWriter.Write(ReadOnlySpan<char>)?)

I'll try to avoid string 👍 and try ReadOnlySpan

Actually System.IO.Pipe has ReadOnlySequence<byte> to write textWriter.
var reader = pipe.Reader;
reader.TryRead(out var result);
textWriter.WriteLine(result.Buffer);

All 3 implementation together (fastest to slowest):
1- Default Implementation using  TextWriter.Write(ReadOnlySpan<char>) ( .NET Standard 2.1)
ReadOnlySpan<char> readOnlySpan =
             new ReadOnlySpan<char>(Encoding.UTF8.GetChars(output.GetBuffer(), 0, (int)output.Position));
 textWriter.Write(readOnlySpan);

2- System.IO.Pipelines
var reader = pipe.Reader;
reader.TryRead(out var result);
textWriter.WriteLine(result.Buffer);

3- RecyclableMemoryStream +  TextWriter.Write(ReadOnlySpan<char>) ( .NET Standard 2.1)
Implementation almost same with default one except couple of setting value for buffer size etc..
**

Which metric(s) are important to decide? speed, allocation?
Is it ok to create draft PR for default implementation (1)
We need to upgrade .net Standard 2.0 to 2.1 in order to user ReadOnlySpan<char> for write

**

I'm surprised that there's still so much allocation, and I'd like to look at that more - but I'm afraid I won't be able to spend any time reviewing anything around this until the New Year.

Sure. In the mean time I'll have a look better solution.
last thing : what would you focus on this issue? utfjsonwriter also has string operations.
I wish happy new year to you and your family.

I'm afraid I'd need to spend longer looking at it than I have spare time right now just to work out what to focus on... I suggest you just explore the space.

Stumbled onto this issue, is this still something that will be released for 5.0?

@NinoFloris I'm not sure what you mean by "for 5.0" - 5.0 of what package, exactly? I would expect us to release a 1.0.0 of Google.Cloud.Logging.Console when we've found time to finish it.

Right, yeah that would be .net 5.0, considering 6.0 is already running first previews. Initially you noted wanting to wait for 5.0 to be released before productionizing this. Rephrased my question was more, is this tied to the next (asp).net release, or just when ready. When ready it is :)

It doesn't need to target .NET 5.0 or 6.0 - it's only Microsoft.Extensions.Logging.Console that I needed to go GA... and we can take a dependency on that while still only keeping to netstandard2.0.
Basically we're not waiting for anything else to be released - we're just waiting for it to be the most important way of spending our limited time.

I understand, I really just reference these versions because Microsoft does release these things in lockstep, features for extension packages rarely get an accelerated timeline.
Either way, thanks for the heads-up, I'll manage with the existing google cloud logger for now!


Win

@ccordoba12 I tried to build this in my old WindowsXP machine and failed miserably. I am sending this PR only to start a discussion on what needs to be done to get this to build locally so we can perform the manual upload later.
@gillins do you have access to all vcs? Can you try this recipe?

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Yes I have all vcs installed. I remember doing this wasn't easy, but I got there in the end. Can't remember all the exact steps. I might be able to help if you are having problems doing this - although time to for you to upgrade from XP I think!
Just compiled Python 3.5 (VC 2015) fine using the recipe. Took 3 hours. Will run the other vcs and get back to you.
Great to see some progress on this BTW.

I think the recipe still needs some tweaks before being ready to be built, i.e. removing the Python build dep and adding the vc packages.

Yes I agree, but does seem to compile fine for me on all VC versions. Let me know if I can help get these packages ready.

although time to for you to upgrade from XP I think!

Indeed I should... But that was the last time I bought a Windows and I am not looking forward to do that again :smile:

I think the recipe still needs some tweaks before being ready to be built, i.e. removing the Python build dep and adding the vc packages.

Adding the vc packages yes (just did that btw), but we are not ready to remove the python dependency yet.

I remember doing this wasn't easy

Sorry to ask something so hard. I know qt is quite a beast to compile. However, if you succeed we will be able to upload those packages manually and end the jpeg 8 vs 9 grief. (At lest on qt4 land.)
PS: @gillins store those binaries if you succeed and ping me privately over email or gitter later. I will arrange some tests with our stack and I will upload them to the channel.

@conda-forge/qt we are actually getting a few successful Windows builds here! I might merge this and get at least a few of the matrix items uploaded.

@msarahan can you take a look at the OS X failures? It seems to be related with the long prefixes.

Yep, please merge to get those builds uploaded :-)

If re-starting does not get everything build in less the 1-hour limit we will use the local builds.


Summary tables simple

This code adds an option to make summary tables as well or instead of full data extracts

I've made some changes based on last weeks discussion, with one main caveat.
I think we do need to create seperate tables for summarising and for incident level analysis in the nrls and lfpse scripts. this is because we sample the data before converting to the for_release object. I think sampling before converting to the for release object is good (less error prone than if we switched to searching the for_release object).
I think the most sensible move is to create a function to create the for_release object, and separately apply it to the sampled and unsampled data to create the incident level and summary table datasets.
I've had a go at that here.
Happy to discuss more/ try out other options if this doesn't work right.


Add CSP headers

The goal will be to make this a generic HTML server for multiple projects. Let's start with CSP headers that make sense and are easily extensible.

Closed with commit https://github.com/1Copenut/docker-nginx/commit/d4841534ed589f0d35af0b07318906ad568c6b87


Remove distributedMv

This command is dangerous because if the copy half of the operation fails, it may still end up continuing the second half of the operation that deletes the source data. This would result in data loss since the original data would be deleted with no copy created. We will not aim to support this feature in the 2.x line, thus removing the user facing details and entrypoint for this feature.

alluxio-bot, merge this please

alluxio-bot, cherry-pick this to branch-2.10 please


Failed to mmap

I can't install anything with cargo.
$ cargo install --verbose rustfmt
    Updating registry `https://github.com/rust-lang/crates.io-index`
error: failed to fetch `https://github.com/rust-lang/crates.io-index`

Caused by:
  [2/-1] Failed to mmap. Could not write data: Invalid argument

or by putting dependency in Cargo.toml
$ cat Cargo.toml
[package]
name = "test"
version = "0.1.0"
authors = ["test"]

[dependencies]
rustfmt = "0.5"
$ cargo build --verbose
    Updating registry `https://github.com/rust-lang/crates.io-index`
error: Unable to update registry https://github.com/rust-lang/crates.io-index

Caused by:
  failed to fetch `https://github.com/rust-lang/crates.io-index`

Caused by:
  [2/-1] Failed to mmap. Could not write data: Invalid argument

$ rustc --version
rustc 1.9.0 (e4e8b6668 2016-05-18)
$ cargo --version
cargo 0.10.0-nightly (10ddd7d 2016-04-08)

I am running up-to-date Ubuntu 16.04 LTS.

Whoa, haven't seen that one before! Are you perhaps running on a system that's running low on memory? It may be worth running strace as well to take a look at the parameters to the mmap call that's failing.

mmap(NULL, 11, PROT_READ|PROT_WRITE, MAP_SHARED, 5, 0) = -1 EINVAL (Invalid argument)

There is also one thing I forgot to mention and it may be the cause. That Ubuntu is inside VirtualBox 5.0.22 on Windows host. I'm using this setup for years and never had any problems, so I haven't thought about mentioning this in first place.
Definitely RAM usage isn't an issue (host or guest).

Interesting! Could you gist the full syscall log as well? It looks like it's attempting to map whatever file descriptor 5 is, and it may be good to see how that's in play

https://paste.ubuntu.com/17997204/
I guess it's /home/dominik/.cargo/registry/index/github.com-88ac128001ac3a9a/.git/objects/pack/pack_git2_iAED2h/

cc @carlosmn, does this sound familiar in libgit2?
It looks like the relevant syscalls leading up to the failure here are:
open("/home/dominik/.cargo/registry/index/github.com-88ac128001ac3a9a/.git/objects/pack/pack_git2_iAED2h", O_RDWR|O_CREAT|O_EXCL, 0600) = 5
[..]
lseek(5, 10, SEEK_SET)                  = 10
write(5, "P", 1)                        = 1
mmap(NULL, 11, PROT_READ|PROT_WRITE, MAP_SHARED, 5, 0) = -1 EINVAL (Invalid argument)

I think that cargo is using libgit2 0.2.23 right now FWIW

It looks to be the same issue as the one in the git2go tracker. The VirtualBox filesystem does not like something we're doing, but it's not clear what.
It's possible that it doesn't support files with holes even though it doesn't actually complain about them, or maybe it's just with mmap. Someone reported the tests run fine, which is really odd as it's the same code. It probably doesn't help that it seems to be translating unix calls into Windows filesystem calls, which breaks the assumptions we're making in the library.
@miedzinski can you clone fine if you're on VBox but without a shared home dir?

@carlosmn I can use all git commands (including clone) on vboxsf. If you are asking about libgit2 (which git binary doesn't use, right?), then you have to wait few hours until I come back home and try it with cargo.

@carlosmn, @alexcrichton, it works flawlessly.
$ cargo install rustfmt
    Updating registry `https://github.com/rust-lang/crates.io-index`
 Downloading rustfmt v0.5.0
# downloading and compiling lots of crates
  Installing /home/libgit/.cargo/bin/rustfmt
  Installing /home/libgit/.cargo/bin/cargo-fmt
$ ~/.cargo/bin/rustfmt -V
0.5.0

This is the same virtual machine, but this time cargo directory is on ext4.

@miedzinski could you try compiling this and see if it runs into the same error when cloning onto a shared directory?
#include <git2.h>
#include <assert.h>

int main() {
  git_repository *repo;
  assert(git_libgit2_init() == 1);
  assert(git_clone(&repo,
                   "https://github.com/rust-lang/crates.io-index",
                   "crates.io-index",
                   NULL) == 0);
}

a.out: test.c:10: main: Assertion `git_clone(&repo, "https://github.com/rust-lang/crates.io-index", "crates.io-index", NULL) == 0' failed.
Built against 0.24.1-2 from Ubuntu repository.

@miedzinski could you try using strace as well to ensure that it's failing with the same mmap error as before?

https://paste.ubuntu.com/18054099/

Hm it's not clear from that gist that it's the same mmap error you're hitting with Cargo. It's also doing a different operation with a clone rather than a fetch, so that may be factoring in as well. It may be worth poking around various incantations to see if it can be reproduced with just libgit2 so we can report the bug upstream.

That error looks like libgit2 was not built with HTTPS support. Trying with git:// might provide more reliable results.
I've opened libgit2/libgit2#3845 to track this upstream, but I'm not sure that there's a fix that doesn't involve a lot of yak shaving so we don't need to read the data back from disk.

Sounds good to me, thanks @carlosmn!

@carlosmn, there is definitely something wrong here. I have changed this code to:
#include <git2.h>
#include <assert.h>

int main() {
  git_repository *repo;
  assert(git_libgit2_init() == 1);
  assert(git_clone(&repo,
                   "git://git@github.com:rust-lang/crates.io-index.git"
                   "crates.io-index",
                   NULL) == 0);
}

and assertion was failing as well. I have tried different URLs (like git@github.com:rust-lang/crates.io-index.git) and after few tries I saw crates.io-index directory (it could have been there since first execution though). And what's weird, I couldn't delete it -- rm was complaining that it can't remove pack_xxx file with error Operation not permitted. I have deleted it straight from Windows, but since then I couldn't make libgit2 to create this directory again.
Like I said few times, official git binary produces valid repositories.
@alexcrichton, is it possible to change cargo directory location? It seems like a good workaround. If not, I can always mount ext4 filesystem on ~/.cargo/.

"git://git@github.com:rust-lang/crates.io-index.git"

That's not going to work, since you're aksing for rust-lang to be the port. You're mixing URLs with scp/rsync syntax.
"Operation not permitted" is another error that seems to come from weird interactions between vboxfs and Windows. I'm not sure where the error comes from in that case.

It seems you are right. I have found which URL produced these files.
#include <git2.h>
#include <assert.h>

int main() {
  git_repository *repo;
  assert(git_libgit2_init() == 1);
  assert(git_clone(&repo,
                   "git://github.com/rust-lang/crates.io-index",
                   "crates.io-index",
                   NULL) == 0);
}

Unlike https version, this creates crates.io-index directory:
$ tree -a crates.io-index/
crates.io-index/
└── .git
    ├── objects
    │   └── pack
    │       └── pack_git2_Hfr6Me
    └── refs
        ├── heads
        └── tags

6 directories, 1 file

But assertion still fails. This time strace shows that unlink call returns Operation not permitted. I can't remove it from inside virtual machine as well.
# rm -rf crates.io-index/
rm: cannot remove 'crates.io-index/.git/objects/pack/pack_git2_Hfr6Me': Operation not permitted

strace ouput: https://paste.ubuntu.com/18115479/

Oh that looks like it's a reproduction, from the strace logs:
umask(02)                               = 0
open("/home/dominik/Projects/crates.io-index/.git/objects/pack/pack_git2_7Ak1Xv", O_RDWR|O_CREAT|O_EXCL, 0600) = 5
[..]
lseek(5, 10, SEEK_SET)                  = 10
write(5, "P", 1)                        = 1
mmap(NULL, 11, PROT_READ|PROT_WRITE, MAP_SHARED, 5, 0) = -1 EINVAL (Invalid argument)

Well, there is problem with chmods on vboxsf, because Windows doesn't support them. Using chmod (root or normal user) has no effect. My entry in /etc/fstab looks like this:
home /home/dominik vboxsf defaults,uid=dominik,gid=dominik,fmask=077,dmask=077 0 0

Which means all files have chmod 700 inside my $HOME directory.

With Rust  1.11 & cargo 1.12, I get what appears to be a related error:
    Updating registry `https://github.com/rust-lang/crates.io-index`
warning: spurious network error (2 tries remaining): [2/-1] Failed to mmap. Could not write data: Invalid argument
warning: spurious network error (1 tries remaining): [2/-1] Failed to mmap. Could not write data: Invalid argument
error: failed to update registry https://github.com/rust-lang/crates.io-index

I have same issue with cargo 1.16 and rust 1.15. The only difference that I'm using KVM+QEMU virtual machine, but with shared home folder as well. My host machine is on Debian, as well as guest.

I think I have hit the same issue on OSX while wanting to be clever and reuse cargo registry between builds on a docker:
docker run \
    -v $(pwd)/build/.cargo:/root/.cargo \
    -v $(pwd):/source jimmycuadra/rust:1.15.0 \
    /bin/bash -c "cargo build --release"

    Updating registry `https://github.com/rust-lang/crates.io-index`
warning: spurious network error (2 tries remaining): [2/-1] Failed to mmap. Could not write data: Invalid argument
warning: spurious network error (1 tries remaining): [2/-1] Failed to mmap. Could not write data: Invalid argument
error: failed to fetch `https://github.com/rust-lang/crates.io-index`

This issue is mostly related to vboxsf filesystem. Consider running cargo with strace (look at @alexcrichton comments above) and report to libgit2/libgit2#3845 if it fails the same way on overlayfs (or whatever docker is using right now) or create new issue.

@Nercury Did you come up with a clever way of re-using registry without triggering this bug?

@jml Sorry, no. My project is very small so this is minor for me.

Following the threads further, @jml's solution was to use a partial cache of the relevant pieces:
# We want to save the whole of /cargo between runs, but if we do that by
# sharing a mountpoint with the local filesystem, we hit a bug in libgit2 vs
# vboxsf:
#
# - https://github.com/rust-lang/cargo/issues/2808
# - https://github.com/libgit2/libgit2/issues/3845
#
# Instead, share the registry/cache, which is where most of the data is.

docker run ... -v $(REGISTRY_CACHE):/cargo/registry/cache ...

@shepmaster I'm not getting any speed improvements using it. The cache folder is also empty. Mind that I only have one dependency which is "Rand" so I wonder if the cache is used for other stuff?

Sorry haven't had a chance to look into this in a while and don't expect to any time soon. I've lost all mental context.

It sounds like there are either workarounds or upstream issues for this, so I'm going to close. Please reopen if I'm incorrect and there's something cargo should be doing here!

Just have met the same bug in WSL ubuntu-20.
A hint for who has the same issue:
Using local docker volume to map .cargo won't trigger this.
docker run ... -v cargo-cache:/root/.cargo

The .cargo will be cached between different containers as expected.

Out of Memory error when building orjson wheel for armv7 Docker on Ubuntu64.
I'm trying to compile Docker image on Ubuntu64 for Home Assistant, but it always fails with an Out of Memory error when it tries to build the armv7 version.
https://github.com/ijl/orjson/issues/358

You should try the workaround I used on my docker image for armv6/armv7
See: https://github.com/rust-lang/cargo/issues/6513#issuecomment-1440029221
Please let us know if works for you

Hi @williamdes thank you. Yes this  work ))

I'd say MAP_SHARED instead of MAP_PRIVATE is a possible if not likely culprit, here.
See: https://github.com/rust-lang/cargo/issues/13570


Refactored Equities

Pandas performance:
%timeit fd.select_equities()
2.16 s ± 6.84 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
%timeit fd.select_equities(country="Germany")
983 ms ± 1.66 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

Reminder to self: SQUASH THE THING!

I went ahead and coverted all data to csv. Here are the results:
 48K    Categories
4.6M    Cryptocurrencies
1.2M    Currencies
 19M    ETFs
687M    Equities
108M    Funds
 36M    Indices
632K    Moneymarkets
1.4M    cryptos.csv
 92K    currencies.csv
 68M    equities.csv
8.3M    etfs.csv
 41M    funds.csv
5.0M    indices.csv
120K    moneymarkets.csv

Did a little fixy-fix:
>>> import financedatabase as fd
>>> equities = fd.Equities()
>>> equities.options(selection='sector', country='united states')
array(['Healthcare', 'Basic Materials', 'Financial Services',
       'Industrials', 'Consumer Defensive', 'Real Estate',
       'Consumer Cyclical', 'Technology', 'Communication Services', nan,
       'Services', 'Utilities', 'Energy', 'Consumer Goods',
       'Industrial Goods', 'Financial', 'Conglomerates'], dtype=object)
>>> equities.options(selection='sector', country='United States')
array(['Healthcare', 'Basic Materials', 'Financial Services',
       'Industrials', 'Consumer Defensive', 'Real Estate',
       'Consumer Cyclical', 'Technology', 'Communication Services', nan,
       'Services', 'Utilities', 'Energy', 'Consumer Goods',
       'Industrial Goods', 'Financial', 'Conglomerates'], dtype=object)
>>>

With:
if capitalize:
    country, sector, industry = country.title(), sector.title(), industry.title()

Because most of the items are always capitalized, I wanted to make sure that when people do not capitalize it still works. I couldn't find a scenario where sector is capitalized but industry or country isn't so all are in this one but it is an argument people can put to False (True by default).

Looks good to me!

One last thing though, we need search to work for multiple queries.

Unfortunately equities is an instance of the Equities class, while search returns a DataFrame object. I think the best way to handle this, is to send search terms as kwargs. For example:
equities.search(summary="tesla", long_name="exploration")

Of course this is not the only solution, I would love to know your thoughts!


Plugin prevents Notepad++ starting up

When the MarkdownViewerPlusPlus plug-in is enabled, NotePad++ does not start up correctly. It appears in Task Manager, but the window does not show. The problem is resolved when MarkdownViewerPlusPlus.dll is moved to the disabled subfolder. Removing all other plugins apart from MarkdownViewerPlusPlus did not fix the problem.
It may just be coincidence, but http://notepad-plus-plus.org is not accessible at the moment.
System details:
Windows 10 Pro 64-bit (1511)
Notepad++ 5.5.1 32-bit
MarkdownViewerPlusPlus 0.7.1

Sorry, typo in the Notepad++ version. Should read 7.5.1

Ok @twomugs, that is something different ^^

I've re enabled the MarkdownViewerPlusPlus plug-in, and notepad++ is starting up ok again now.
I don't know if it was Windows having a bad day, or the npp web site being down, or somthing else.
I guess you can probably close this now.

Oh, ok. Good to know. Thanks for retry and report :)


Add Sigma Prime boot ENR

Adds the Sigma Prime (Lighthouse) boot ENR. Credits to @antondlr for spinning up this node.
There was previously no newline at the end of the file so it looks like I deleted an ENR and added it again.

Oh no, we need to regenerate these with the new Capella fork epoch. Please don't merge yet.

I've updated our ENR and it's ready to publish!
enr-cli read enr:-Le4QI88slOwzz66Ksq8Vnz324DPb1BzSiY-WYPvnoJIl-lceW9bmSJnwDzgNbCjp5wsBigg76x4tValvGgQPxxSjrMBhGV0aDKQqX6DZjABcAAAAQAAAAAAAIJpZIJ2NIJpcIQ5gR6Wg2lwNpAgAUHQBwEQAAAAAAAAADR-iXNlY3AyNTZrMaEDPMSNdcL92uNIyCsS1
77Z6KTXlbZakQqxv3aQcWawNXeDdWRwgiMohHVkcDaCI4I
ENR Read:
Sequence No:1
NodeId: 07857f43ab2782872258a4309465ccb4ef893c29a72e417667e9044f919754fe
EnodeId: enode://07857f43ab2782872258a4309465ccb4ef893c29a72e417667e9044f919754fe@<IP_ADDRESS>?discport=9000
Libp2p PeerId: 16Uiu2HAmGkCeLewxvqo4aLp3hFmkui9TFhT7W9zHH4GXN5mgY4fg
IP:<IP_ADDRESS>
IP6:2001:41d0:701:1000::347e
UDP Port:9000
UDP6 Port:9090
Eth2 Field:
        Fork digest: a97e8366
        Next fork version: 30017000
        Next fork epoch: 256
        SSZ Bytes: a97e8366300170000001000000000000
Known multiaddrs:
/ip4/<IP_ADDRESS>/udp/9000
/ip6/2001:41d0:701:1000::347e/udp/9090

You might as well merge #63 before this and I'll fix the merge conflict.

This is ready for review!


unit test common graph

Tips

Thanks very much for contributing to Apache DolphinScheduler.
Please review https://dolphinscheduler.apache.org/en-us/community/index.html before opening a pull request.

What is the purpose of the pull request
ut #1465

Codecov Report

Merging #1479 into dev will increase coverage by 0.9%.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             dev   #1479     +/-   ##
=======================================
+ Coverage   0.22%   1.13%   +0.9%
=======================================
  Files        271     271
  Lines      13591   13591
  Branches    2158    2158
=======================================
+ Hits          31     154    +123
+ Misses     13550   13423    -127
- Partials      10      14      +4

Impacted Files
Coverage Δ

.../org/apache/dolphinscheduler/common/graph/DAG.java
87.85% <0%> (+87.85%)
:arrow_up:

Continue to review full report at Codecov.

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


The asn1 Marshal/Unmarshal get confused if I use a type instead the original type

Please answer these questions before submitting your issue. Thanks!

What version of Go are you using (go version)?
1.6

What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/.../golang"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GO15VENDOREXPERIMENT="1"
CC="/usr/local/bin/gcc-5"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fno-common"
CXX="/usr/local/bin/c++-5"
CGO_ENABLED="1"

What did you do?
If I have
id_sha1 = asn1.ObjectIdentifier{1, 3, 14, 3, 2, 26}
type Foo struct {
oid asn1.ObjectIdentifier
}
this works correctly, but if I change it to:

type AlgorithmId asn1.ObjectIdentifier
id_sha1 = AlgorithmId{1, 3, 14, 3, 2, 26}
type Foo struct {
oid AlgorithmId
}
which seems to be the way most of the asn1 documentations are written the asn1 marshaling gets confused.

What did you expect to see?
I would expect the marshaller to be smart enough to recognize that a type is originating from the asn1.ObjectIdentifier and serialize it as such

What did you see instead?
The asn1.ObjectIdentifier is serialized as a binary blob

In Go a new type is a different type, it's not an alias for an existing type.  There isn't any way that the encoding/asn1 package can detect that you are using a type based on ObjectIdentifier, rather than any other []int.  If you need to marshal as an object identifier, you need to use ObjectIdentifier.

Hi Ian,
This is a great golang feature. It seems though that such info should be provided from the reflection. Similarly as there is MapOf, ChanOf, PtrTo etc, maybe it is a good idea if there is Type method ... say BasedOn that returns the type the current one was based on and this could be used in asn1 to detect such cases.
Thanks,
George

From: Ian Lance Taylor<EMAIL_ADDRESS>Sent: Tuesday, May 24, 2016 5:03 PM
To: golang/go
Cc: George; Author
Subject: Re: [golang/go] The asn1 Marshal/Unmarshal get confused if I use a type instead the original type (#15826)
In Go a new type is a different type, it's not an alias for an existing type. There isn't any way that the encoding/asn1 package can detect that you are using a type based on ObjectIdentifier, rather than any other []int. If you need to marshal as an object identifier, you need to use ObjectIdentifier.

You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHubhttps://github.com/golang/go/issues/15826#issuecomment-221437543


"blocking" on getStaticPaths' fallback throwing ambiguous error

Describe the bug
So my netlify site is g2i-pace, and it refuses to build if I want gSP to be blocking. 🤔

To Reproduce
Steps to reproduce:

Create a basic page in a NextJS project with fallback: "blocking" in its exported getStaticPaths function
Build it on netlify with next-on-netlify
Cry

Versions

Next: 10.0.1
next-on-netlify: 2.7.2

hello hello @TejasQ ! thanks for opening and sorry about this :). lol @ step 3. i believe this is the same issue as https://github.com/netlify/next-on-netlify/issues/111 so i'll mark this as duplicate and close. please track it there! #111 is currently in our next 10 milestone https://github.com/netlify/next-on-netlify/milestone/1 so it's a priority!

hello hello @TejasQ ! thanks for opening and sorry about this :). lol @ step 3. i believe this is the same issue as https://github.com/netlify/next-on-netlify/issues/111 so i'll mark this as duplicate and close. please track it there! #111 is currently in our next 10 milestone https://github.com/netlify/next-on-netlify/milestone/1 so it's a priority!


Review notes

I did make a quick review of the proposal. Below are my notes:

"the functionality of the constructed objects" term is unclear:

The term was copied from https://tc39.es/ecma402/#sec-internal-slots, where "constructed objects" refers to the objects created by the constructors listed in that section.
But when the term is used in the newly added sections, there aren't any constructors which it can refer to, which makes "constructed objects" unclear.

Possible solution:

Maybe explicitly list the constructors which apply to the relevant sections?

For example currency codes only apply to Intl.NumberFormat and Intl.DisplayNames objects. But this approach doesn't seem too elegant.

"abstract operation return a List"

Every occurence of "abstract operation return a List" should instead read "abstract operation returns a List", i.e. "returns" instead of "return".

AvailableCurrencies ( )

"unique well-formed" doesn't make clear in which case the returned currencies are.
For example both "usd" and "USD" are well-formed according to IsWellFormedCurrencyCode().

AvailableTimeZones ( region )

Add Oxford comma in "the unique, canonical and case-regularized form" -> "the unique, canonical, and case-regularized form".

AvailableTimeZones ( region )

"If the region is undefined, then it return all the names." could be misread that it doesn't require the result to contain only unique, canonical, and case-regularised names.

We could provide a complete algorithm to make this case more clear:

Let names be a List of all Zone and Link names of the IANA Time Zone Database.
Let result be a new empty List.
For each element name of names, do
Assert: ! IsValidTimeZoneName(name) is true.
Let canonical be ! CanonicalizeTimeZoneName(name).
Append canonical to the end of result.
Sort result in simple lexicographic order.
Return result with all duplicate elements removed.

AvailableTimeZones ( region )

Define behaviour when region is an unsupported region.
For example what is the return value of AvailableTimeZones("ZX"), where "ZX" isn't a registered region subtag, or what is returned for AvailableTimeZones("ZZ"), where "ZZ" is the unknown region placeholder, also what should be returned for larger regions like AvailableTimeZones("019"), where "019" is the region subtag for the Americas?

AvailableUnits ( ) and AvailableNumberingSystems ( )

Spelling mistakes around singular/plural terms throughout these sections, possibly in more places.

Numbering System Identifiers

"Unicode Technical Standard #35, Part 3, Section 1" should be link to the relevant UTS section.
Also all other references to UTS should be linkified.

Intl.supportedValuesOf ( key [ , options ])

region must be validated and canonicalised.
Does it accept only region subtags or can it extract the region subtag from a full-fledged language tag?

Intl.supportedValuesOf ( key [ , options ])

Do we still need the region support for AvailableTimeZones() at all, given that get Intl.Locale.prototype.timeZones from the "Intl Locale Info API" proposal will basically provide the same information?

Intl.supportedValuesOf ( key [ , options ])

Missing full stop in the final step.

CreateSupportedValuesIterator ( list )

The abstract operation should get into its own section and shouldn't be part of "Function Properties of the Intl Object"
Either make it a subsection of Intl.supportedValuesOf(...) or add a new sub-section named "Abstract Operations for Intl" under "The Intl Object".

CreateSupportedValuesIterator ( list )

There needs to be a separate %SupportedValuesIterator% object, otherwise there's no next method to iterate over the elements.
I guess ? Yield(E) should be changed to ! Yield(E) given that there's no way to resume this generator with an abrupt completion. (I have no idea why ECMA-262 always uses fallible ? Yield() for all its iterators, even when the operation is infallible.)

Intl.supportedValuesOf ( key [ , options ])
I have some doubts about returning iterators instead of for example arrays, because:

The motivation for iterators was time zones, which has ~465 elements when called with no region. All other lists, with the exception of currencies, are significantly smaller.
But time zones can't be lazily retrieved from ICU, because we need to canonicalise and sort all entries.
So unless we account for the case where implementations cache the sorted and canonicalised list of time zones, using iterators over arrays doesn't buy us much. Especially because right now we don't yet have any good built-in Iterator support API and I don't see any real progress on https://github.com/tc39/proposal-iterator-helpers in the last 10 months.

Last relevant meeting notes are https://github.com/tc39/notes/blob/master/meetings/2020-07/july-21.md#iterator-helpers-update and https://github.com/tc39/notes/blob/master/meetings/2020-09/sept-21.md#need-another-stage-3-reviewer-for-iterator-helpers where Stage 3 reviewers were requested, but no reviews have been performed as of yet.
So, if we stick with iterators, please at least make sure that the "Iterator Helpers" proposal is still on track.

And if we end up in a place where users always have to perform var array = [...Intl.supportedValuesOf(key)] to get something useful to operate upon, we may have made a design mistake.
The "Usage example" only shows how to use the new API, but not really when to use it. If I had a better feeling when to use this API, I could more easily say which return type is more appropriate.

I do see use cases for time zones and currencies, but other types may not be useful at the moment, because we don't provide means to localise the returned strings. For example currencies can be translated via Intl.DisplayNames and time zones can be translated via Intl.DateTimeFormat (and the "Extend TimeZoneName Option" proposal will even provide better localisations!), but neither calendars, nor collations, nor numbering systems, nor units can be localised right now. Let's say an application wants to provide a date control with a customisable calendar, just providing the BCP47 names to an end user won't be super useful. (Later: I totally forgot about the "Intl.DisplayNames v2" proposal, so "unit" is a better example for missing localisation atm.)

Please note: I can't say with 100% certainty which is the correct way to go forward, I'm just always a bit hesitant when new patterns are added, because that may also shape future APIs and because I think we should aim to have a consistent overall API approach.
Also: The "Intl Locale Info Proposal" proposal uses arrays for its return values, so it might be prudent to align the design decisions across these two proposals.

@anba  really appreciate your review. I will split the issue you list here into separate issue so we can discuss with TG2. I will first address some editorial issue first. I think I will change my position to not propose for Stage 3 advancement now until we all agree with

take out region from timeZone or not
change it back to return array or not

I intend to address Item 1, 2, 3, 4, 8, 11, and 12 in https://github.com/tc39/proposal-intl-enumeration/pull/25

2. AvailableUnits ( ) and AvailableNumberingSystems ( )

Spelling mistakes around singular/plural terms throughout these sections, possibly in more places.

It will be nice if you can suggest a fix for that.

It will be nice if you can suggest a fix for that.

Sure. For example there's:

"in every rows of Table", which should be "in every row of Table", so singular "row".
"identifies numbering system" → "identifies numbering systems", so plural "systems".
"identifying the numbering system" → "identifying the numbering systems", also plural "systems".
"identifies collation" → "identifies collations", so plural "collations".
"identifying the collation" → "identifying the collations", again plural "collations".
"identifies calendar" &rarr "identifies calendars", plural "calendars".
"identifying the calendar" → "identifying the calendars", plural "calendars".

I believe item 1, 2, 3, 4, 7, 8, 11, and 12 is fixed by #25
split the content of item  6, 9 and 10 to #24
Move the content of the item 13 and 14 to #23
so the only item left is item 5 and let's track it independently in https://github.com/tc39/proposal-intl-enumeration/issues/26
and I will close this issue
@anba- if you see there are anything I missed in the PR 25 or issue 23, 24, 26 please file separated issue so we can address and discuss it independently.


Some binaries fail required validation

Environment

Elixir version (elixir -v):

Erlang/OTP 20 [erts-9.2.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Elixir 1.6.1 (compiled with OTP 20)

Database and version (PostgreSQL 9.4, MongoDB 3.2, etc.): postgres (PostgreSQL) 10.2
Ecto version (mix deps): ecto 2.2.8 (Hex package) (mix)
Database adapter and version (mix deps): postgrex 0.13.5 (Hex package) (mix)
Operating system: OS X High Sierra

Current behavior
I have the following schema defined:
defmodule PaintSchemer.Paints.Paint do
  use Ecto.Schema
  import Ecto.Changeset
  alias PaintSchemer.Paints.Paint

  schema "paints" do
    field :color, :binary
    field :name, :string
    belongs_to :manufacturer, PaintSchemer.Paints.Manufacturer
    belongs_to :type, PaintSchemer.Paints.PaintType

    timestamps()
  end

  @doc false
  def changeset(%Paint{} = paint, attrs) do
    paint
    |> cast(attrs, [:name, :color, :type_id, :manufacturer_id])
    |> validate_required([:name, :color, :type_id, :manufacturer_id])
  end
end

With the table created like this:
defmodule PaintSchemer.Repo.Migrations.CreatePaints do
  use Ecto.Migration

  def change do
    create table(:paints) do
      add :name, :string
      add :color, :binary
      add :manufacturer_id, references(:paint_manufacturers, on_delete: :nothing)
      add :type_id, references(:paint_types, on_delete: :nothing)

      timestamps()
    end

    create index(:paints, [:manufacturer_id])
    create index(:paints, [:type_id])
  end
end

I also have some unit tests, that want to create this schema:
@create_attrs %{color: <<12, 12, 12>>, name: "some name"}
  @update_attrs %{color: <<13, 12, 12>>, name: "some updated name"}
  @invalid_attrs %{color: nil, name: nil}

  def fixture(:paint) do
    {:ok, type} = Paints.create_paint_type(%{name: "Some paint type"})
    {:ok, manufacturer} = Paints.create_manufacturer(%{name: "Some manufacturer"})
    {:ok, paint} =
      @create_attrs
      |> Map.merge(%{type_id: type.id, manufacturer_id: manufacturer.id})
      |> Paints.create_paint
    paint
  end

When I run the tests I get the following error:
** (MatchError) no match of right hand side value: {:error, #Ecto.Changeset<action: :insert, changes: %{manufacturer_id: 1594, name: "some name", type_id: 1636}, errors: [color: {"can't be blank", [validation: :required]}], data: #PaintSchemer.Paints.Paint<>, valid?: false>}

When I print out all the data in changeset/2 I can see something like this:
attrs: %{color: "\f\f\f", manufacturer_id: 1615, name: "some name", type_id: 1657}
result: #Ecto.Changeset<
  action: nil,
  changes: %{manufacturer_id: 1615, name: "some name", type_id: 1657},
  errors: [color: {"can't be blank", [validation: :required]}],
  data: #PaintSchemer.Paints.Paint<>,
  valid?: false
>

Funnily enough, if I change the color to e.g. @create_attrs %{color: <<15, 12, 12>>, name: "some name"} everything works fine and I can write to the database.
I can see that the documentation for changeset says If the value of a field is nil or a string made only of whitespace, the changeset is marked as invalid and an error is added. It seems wrong however that :binary is treated the same as a :string, while they may use the same implementation in Elixir, that does not mean they are the same
Expected behavior
I would expect with an arbitrary binary type I can put any binary I want into the database. Why are some binaries better than others? There does not seem to be any explanation for this in the documentation.

It is a bug in validate_required. We use String.trim_leading although that should be used for strings. When you use it in a binary, it is trying to parse the bytes and the byte 12 is an empty character in strings.
My suggestion is to change missing? in Ecto.Changeset to read the type from the changeset and avoid the String.trim check for binaries. The question is if we also consider an empty binary to be missing or not.

Related to this, we may also want to allow counting bytes in validate_length.

I checked the code and think I can fix the bug as you suggested.
Maybe it makes sense to create a second issue for changing the behaviour for validate_length to separate these changes? I'm not sure if these should get mixed up.

Yup. A separate issue sounds good. Especially because we may use a
different solution there.
José Valimwww.plataformatec.com.br
http://www.plataformatec.com.br/Founder and Director of R&D

Regarding validate_length:
I checked the code and tested it. <<12, 12, 12>> has the length of 3 is gets validated successfully with that length.
I also checked validate_length for and there is no String.trim_leading but maybe it should trim to get the same behaviour as validate_length.
So I'm not sure if there is a problem, maybe you can create the issue and specify the problem in detail.


Why save secrets in /run?

 If they would be saved in the home directory like ${XDG_DATA_DIR:-~/.local/share}/secrets there would be no need of systemd services because the secrets will remain there after reboots..

This my understanding. /run is a tmpfs. That means it is stored in ram (but uses swap). This means that secrets aren't loaded onto disk unless you have swap enabled.
The ideal way is to mount it to a ramfs which is similar to tmpfs except that it doesn't use swap. So secrets will never be loaded to disk. However a ramfs needs to be mounted by sudo (not on by default). So I can't do that with home manager.
When I get around to separating service and activation options I am gonna look at a better way of declaring secrets.


Alignment API for Transforms

Objective

Closes #11793
Introduces a general API for aligning local coordinates of Transforms with given vectors.

Solution

We introduce Transform::align, which allows a rotation to be specified by four pieces of alignment data, as explained by the documentation:

/// Rotates this [`Transform`] so that the `main_axis` vector, reinterpreted in local coordinates, points
/// in the given `main_direction`, while `secondary_axis` points towards `secondary_direction`.
///
/// For example, if a spaceship model has its nose pointing in the X-direction in its own local coordinates
/// and its dorsal fin pointing in the Y-direction, then `align(Vec3::X, v, Vec3::Y, w)` will make the spaceship's
/// nose point in the direction of `v`, while the dorsal fin does its best to point in the direction `w`.
///
/// For a visual demonstration, see the 'align' example.
///
/// More precisely, the [`Transform::rotation`] produced will be such that:
/// * applying it to `main_axis` results in `main_direction`
/// * applying it to `secondary_axis` produces a vector that lies in the half-plane generated by `main_direction` and
/// `secondary_direction` (with positive contribution by `secondary_direction`)
///
/// [`Transform::look_to`] is recovered, for instance, when `main_axis` is `Vec3::NEG_Z` (the [`Transform::forward`]
/// direction in the default orientation) and `secondary_axis` is `Vec3::Y` (the [`Transform::up`] direction in the default
/// orientation). (Failure cases may differ somewhat.)
///
/// In some cases a rotation cannot be constructed. Another axis will be picked in those cases:
/// * if `main_axis` or `direction` is zero, `Vec3::X` takes its place
/// * if `secondary_axis` or `secondary_direction` is zero, `Vec3::Y` takes its place
/// * if `main_axis` is parallel with `secondary_axis` or `main_direction` is parallel with `secondary_direction`,
/// a rotation is constructed which takes `main_axis` to `main_direction` but ignores the secondary counterparts
/// (i.e. is otherwise unspecified)
pub fn align(
    &mut self,
    main_axis: Vec3,
    main_direction: Vec3,
    secondary_axis: Vec3,
    secondary_direction: Vec3,
) { //... }

We introduce Transform::aligned_by, the returning-Self version of align:

pub fn aligned_by(
    mut self,
    main_axis: Vec3,
    main_direction: Vec3,
    secondary_axis: Vec3,
    secondary_direction: Vec3,
) -> Self { //... }

We introduce an example (examples/transforms/align.rs) that shows the usage of this API. It is likely to be mathier than most other Transform APIs, so when run, the example demonstrates what the API does in space:

Changelog

Added methods align, aligned_by to Transform.
Added transforms/align.rs to examples.

Discussion
On the form of align
The original issue linked above suggests an API similar to that of the existing Transform::look_to method:
pub fn align_to(&mut self, direction: Vec3, up: Vec3) { //... }

Not allowing an input axis of some sort that is to be aligned with direction would not really solve the problem in the issue, since the user could easily be in a scenario where they have to compose with another rotation on their own (undesirable). This leads to something like:
pub fn align_to(&mut self, axis: Vec3, direction: Vec3, up: Vec3) { //... }

However, this still has two problems:

If the vector that the user wants to align is parallel to the Y-axis, then the API basically does not work (we cannot fully specify a rotation)
More generally, it does not give the user the freedom to specify which direction is to be treated as the local "up" direction, so it fails as a general alignment API

Specifying both leads us to the present situation, with two local axis inputs (main_axis and secondary_axis) and two target directions (main_direction and secondary_direction). This might seem a little cumbersome for general use, but for the time being I stand by the decision not to expand further without prompting from users. I'll expand on this below.
Additional APIs?
Presently, this PR introduces only align and aligned_by. Other potentially useful bundles of API surface arrange into a few different categories:

Inferring direction from position, a la Transform::look_at, which might look something like this:

pub fn align_at(&mut self, axis: Vec3, target: Vec3, up: Vec3) {
    self.align(axis, target - self.translation, Vec3::Y, up);
}

(This is simple but still runs into issues when the user wants to point the local Y-axis somewhere.)

Filling in some data for the user for common use-cases; e.g.:

pub fn align_x(&mut self, direction: Vec3, up: Vec3) {
    self.align(Vec3::X, direction, Vec3::Y, up);
}

(Here, use of the up vector doesn't lose any generality, but it might be less convenient to specify than something else. This does naturally leave open the question of what align_y would look like if we provided it.)
Morally speaking, I do think that the up business is more pertinent when the intention is to work with cameras, which the look_at and look_to APIs seem to cover pretty well. If that's the case, then I'm not sure what the ideal shape for these API functions would be, since it seems like a lot of input would have to be baked into the function definitions. For some cases, this might not be the end of the world:
pub fn align_x_z(&mut self, direction: Vec3, weak_direction: Vec3) {
    self.align(Vec3::X, direction, Vec3::Z, weak_direction);
}

(However, this is not symmetrical in x and z, so you'd still need six API functions just to support the standard positive coordinate axes, and if you support negative axes then things really start to balloon.)
The reasons that these are not actually produced in this PR are as follows:

Without prompting from actual users in the wild, it is unknown to me whether these additional APIs would actually see a lot of use. Extending these to our users in the future would be trivial if we see there is a demand for something specific from the above-mentioned categories.
As discussed above, there are so many permutations of these that could be provided that trying to do so looks like it risks unduly ballooning the API surface for this feature.
Finally, and most importantly, creating these helper functions in user-space is trivial, since they all just involve specializing align to particular inputs; e.g.:

fn align_ship(ship_transform: &mut Transform, nose_direction: Vec3, dorsal_direction: Vec3) {
    ship_transform.align(Ship::NOSE, nose_direction, Ship::DORSAL, dorsal_direction);
}

With that in mind, I would prefer instead to focus on making the documentation and examples for a thin API as clear as possible, so that users can get a grip on the tool and specialize it for their own needs when they feel the desire to do so.
Dir3?
As in the case of Transform::look_to and Transform::look_at, the inputs to this function are, morally speaking, directions rather than vectors (actually, if we're being pedantic, the input is really really a pair of orthonormal frames), so it's worth asking whether we should really be using Dir3 as inputs instead of Vec3. I opted for Vec3 for the following reasons:

Specifying a Dir3 in user-space is just more annoying than providing a Vec3. Even in the most basic cases (e.g. providing a vector literal), you still have to do error handling or call an unsafe unwrap in your function invocations.
The existing API mentioned above uses Vec3, so we are just adhering to the same thing.

Of course, the use of Vec3 has its own downsides; it can be argued that the replacement of zero-vectors with fixed ones (which we do in Transform::align as well as Transform::look_to) more-or-less amounts to failing silently.
Future steps
The question of additional APIs was addressed above. For me, the main thing here to handle more immediately is actually just upstreaming this API (or something similar and slightly mathier) to glam::Quat. The reason that this would be desirable for users is that this API currently only works with Transforms even though all it's actually doing is specifying a rotation. Upstreaming to glam::Quat, properly done, could buy a lot basically for free, since a number of Transform methods take a rotation as an input. Using these together would require a little bit of mathematical savvy, but it opens up some good things (e.g. Transform::rotate_around).

Little bit niche, but definitely useful API.
The explanation can be a bit rough to users, the handle and weak are not my first choice.
I'd leverage the (transform) local and (world) global as well as direction and up that are used in other methods:
local_direction local_up global_direction global_up
Since this is a very 'generic' function, which will be exposed under wrappers, it can use a more explicit name like align_local_to_global.
As for the bloat with various axis combinations, perhaps we can use an enum, similar to EulerRot, which would contain all the main axis (and their negatives) combinations (should be 24?).
AlignAxes {
  XY,
  NXY,
  NXNY,
  XNY,
  ...
}

I like this, nice work! Do you think you could also add a doc-test for align?

Done!

Whats the plan for moving this up into glam?

Great question. Mathematically speaking, the process that we're doing here really consists of two steps:

An orthonormal frame is determined by a nondegenerate ordered pair of vectors (i.e. spanning a plane) by orthogonalizing the second with respect to the first then taking their cross product to give the third vector (with a couple normalizations in there).
Given a pair of orthonormal frames, we find a quaternion that transports one to the other.

Algebraically, number 2 is basically trivial (at least given what's already in glam) — it should amount to calling Quat::from_mat3 a couple times, inverting one of them, and then multiplying the resulting quaternions.
So I think the trick will be finding the right balance in terms of the kinds of things that "belong" in glam; for instance, might it be reasonable for the library to provide a function that constructs a single quaternion from a nondegenerate pair of vectors? Maybe! As I see it, step (1) is where a lot of the ergonomics are, but step (2) is maybe the more natural one mathematically, but I think that slicing it up this way is at least vaguely how I imagine it.
More than anything, I'm concerned about the tension between:

Breaking it up making it harder to use
Not breaking it up packaging a lot of things implicitly together for a "basic" library

But I could be wrong.

I'd prefer if the doc test asserted the invariant presented in the doc for some standard case, but I'm going to approve as is.

Cool! I changed the doctest so that the examples are more like a standard library function — demonstrating some inputs and outputs along with the fallback behavior.

Please do link the glam PR here if you end up making one. I think implementing it on the transform is a good improvement on it's own.

Will do!


Placement configuration param

Add ability to define the "placement" parameter for a JupyterHub notebook service from jupyterhub_config.py configuration

Touches on https://github.com/cassinyio/SwarmSpawner/issues/17

this PR would help me too :)

@hans-permana I'll take a second look at this and amend my PR.

just need to reformat the indentation to make Travis happy.


Updates to Amazon index

My first updated page.
Purpose of this pull request
This pull request (PR) ...updates to index.
Issue number:

Select the type of change:

[ ] Minor Changes - Typos, formatting, slight revisions
[x] Update Content - Revisions and updating sections
[ ] New Content - New features, sections, pages, tutorials
[ ] Site and Tools - Updates, maintenance, and new packages for the site, Gatsby, React, etc

@Melvin-CnC , were you able to preview these changes successfully in your local build (yarn start)? It's throwing an error that should've come up prior to pushing your PR.

Hi @Melvin-CnC , thank you for your hard work on this! I'm going to push all of your changes to production except the one you had in progress (/docs/integrations/security-threat-detection).


Notebooks expect eddb.py to be in enclosing directory.

Notebooks assume the eddb module is in the directory above them. Find a solution that works in IDEs (preferably both VSC and pycharm) and allows the project to be packaged and installed for non-devs.

Removed path modification from notebooks since getting Visual Studio Code to recognize the directory structure. For now, will run notebooks in VSC rather than a browser. In the future, installing the elite-tools package will solve the problem more generally.  For dev work, just stay inside VSC.


Latest Humble release (0.7.5) fails to build

The latest release fails to build for ROS 2 Humble.
I updated my installation with
sudo apt update && sudo apt upgrade
rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y
I get the following error:
/home/kees/ws_dependencies/src/gz_ros2_control/ign_ros2_control/src/ign_ros2_control_plugin.cpp:382:33: error: no matching function for call to ‘hardware_interface::ResourceManager::load_urdf(std::string&, bool, bool)’
  382 |     resource_manager_->load_urdf(urdf_string, false, false);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/ros/humble/include/controller_manager/controller_manager.hpp:44,
                 from /home/kees/ws_dependencies/src/gz_ros2_control/ign_ros2_control/src/ign_ros2_control_plugin.cpp:30:
/opt/ros/humble/include/hardware_interface/resource_manager.hpp:84:8: note: candidate: ‘void hardware_interface::ResourceManager::load_urdf(const string&, bool)’
   84 |   void load_urdf(const std::string & urdf, bool validate_interfaces = true);
      |        ^~~~~~~~~
/opt/ros/humble/include/hardware_interface/resource_manager.hpp:84:8: note:   candidate expects 2 arguments, 3 provided

So there seems to be a mismatch with the hardware interface definition of the latest release of ros2_control.

As you can see in this PR https://github.com/ros-controls/gz_ros2_control/pull/225 where this change was included, the CO is compiling the code (it's red because one test is failing)
There are some new breaking changes in ros2_control which means you need to wait until the next Humble sync (which I think it's out this week) or you compile ros2_control from source

Thanks for the explanation, I'll close the issue.


Allow a numeric version for NuGet v2 [chocolatey powershellgallery resharper]

Closes #2929

Messages

:book:
:sparkles: Thanks for your contribution to Shields, @paulmelnikow!

  Generated by :no_entry_sign: dangerJS against c4a3e13bf4d2ca27d2e511c3fa40e9cc409aca71

Service test failure seems unrelated.


seq2seq.BahdanauAttention raise TypeError: probability_fn is not an instance of str

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): both Windows and Colab
TensorFlow version and how it was installed (source or binary): stable latest, pip
TensorFlow-Addons version and how it was installed (source or binary): stable latest
Python version: 3.10 / 3.9
Is GPU used? (yes/no): yes

Describe the bug
call BahdanauAttention with default probability_fn value ("softmax") raises type error
Tried to debug and found that probability_fn was a function when checking type
Code to reproduce the issue
import tensorflow_addons as tfa
tfa.seq2seq.BahdanauAttention(1, 1, 1, normalize=False, name='BahdanauAttention')

Other info / logs

Do you have a very minimal gist to run to reproduce this?

Yes cause _process_probability_fn was going to transform str back to the function.
Can you send a PR to the specific test to help reproduce this case?
https://github.com/tensorflow/addons/blob/master/tensorflow_addons/seq2seq/tests/attention_wrapper_test.py
@seanpmorgan

Also seeing this issue on google colab.

Python version: 3.9
Tensorflow version: 2.11.0
Tensorflow-addons version: 0.19.0
Is GPU used? (yes/no): yes

@BrandonStudio I skip the type checking by comment out @typechecked at AttentionMechanism and its derived classes

@BrandonStudio Yeah, I modify tensorflow-addons code in local environment.


Bump version to 2.1.3. Enable HTTPS and checksum verification

Use HTTPS download and verify SHA256 checksum to enable a bit more trust on the downloaded content before running the software.

+1
WFM


Remove all traces of Welsh Petitions

Only do the bare minimum of translating to Gaelic as the feature will be disabled for the time being.

 Reset Scottish translations to English

 Reset Scottish translations to English


Registering multiple tasks

I want to deploy the same file to two different locations: Dev and UAT. So I define a task as such:
scp : {
      dev: {
        options : {
          host : 'myip',
          username : 'username',
          password : 'password'
        },
        your_target: {
          files: [{
              cwd: '<% yeoman.exports %>',
              src: 'exports/my.war',
              //filter: 'isFile',
              // path on the server
              dest: '/full/path/to/location/'
          }]
        }
      }
    }

Which doesn't work when I call scp:dev
When I remote the dev object and call scp it works fine.
Is this an issue or am I using incorrectly?

it's doesn't work.
scp = {
dev : {options : {}, upload : {"somethingfiles setting" }},
live : {}
}
grunt scp:dev:upload;


[Errno 28] No Space left on device

Dear all,
First of all thank you very much for creating this repository. This has helped my team and I tremendously.
I have implemented the solution as described in the README using the "standard deployment".
I have made modifications to the state machine. I'm not using the JOB_INPUTS, JOB_OUTPUTS, JOB_OUTPUT_PREFIX... arguments anymore. I am just giving an s3 path for a config file, which the container downloads and executes in a script accordingly. The issue arises when the batch job downloads fasta files from the s3 bucket (1) it seems to be slow, and (2) I get the [Errno 28] No Space left on device

I know that this no longer uses entrypoint.aws.sh for input, output, and avoiding file path clobbering  and I have no problem going back to it, I just wanted to get our set-up working in the new development stack

I had to add the following two arguements to build.sh
--build-arg AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION \
 --build-arg AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI \
and our base docker image also has the following arguments added:
ARG AWS_DEFAULT_REGION
ARG AWS_CONTAINER_CREDENTIALS_RELATIVE_URI

I made sure that the shell scripts we are running in the docker batch job are specifically doing work in /scratch.

I tried playing with the size of the attached EBS volume, although  I was under the impression that it should automagically change it's size with the amazon-ebs-autoscale repository.

Also, any changes I make to the VolumeSize either the /dev/xvdcz or /dev/sdc don't get implemented when the ec2 instance starts running.
I tried to describe changes that I made and some things that I tried out to solve this issue. Any help you could throw my direction would be greatly appreciated.
Thanks in advance
Matt

Just a follow up. It seems that there are some errors in the userdata script in the launch template. could someone verify it does the right thing?
        UserData:
          Fn::Base64: |
            MIME-Version: 1.0
            Content-Type: multipart/mixed; boundary="==BOUNDARY=="

            --==BOUNDARY==
            Content-Type: text/cloud-config; charset="us-ascii"

            packages:
            - jq
            - btrfs-progs
            - python27-pip
            - sed
            - wget
            - git
            - bzip2
            - amazon-ssm-agent

            runcmd:
            - pip install -U awscli boto3
            - start amazon-ssm-agent

            - stop ecs
            - service docker stop

            # install amazon-ebs-autoscale
            - cp -au /var/lib/docker /var/lib/docker.bk
            - rm -rf /var/lib/docker/*
            - EBS_AUTOSCALE_VERSION=$(curl --silent "https://api.github.com/repos/awslabs/amazon-ebs-autoscale/releases/latest" | jq -r .tag_name)
            - cd /opt && git clone https://github.com/awslabs/amazon-ebs-autoscale.git
            - cd /opt/amazon-ebs-autoscale && git checkout $EBS_AUTOSCALE_VERSION
            - sh /opt/amazon-ebs-autoscale/install.sh /var/lib/docker /dev/sdc 2>&1 > /var/log/ebs-autoscale-install.log
            - sed -i 's+OPTIONS=.*+OPTIONS="--storage-driver btrfs"+g' /etc/sysconfig/docker-storage
            - cp -au /var/lib/docker.bk/* /var/lib/docker

            # install miniconda/awscli
            - wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
            - bash Miniconda3-latest-Linux-x86_64.sh -b -f -p /opt/miniconda
            - /opt/miniconda/bin/conda install -c conda-forge -y awscli
            - chown -R ec2-user:ec2-user /opt/miniconda
            - rm Miniconda3-latest-Linux-x86_64.sh

            - service docker start
            - start ecs

            --==BOUNDARY==--

This is also different then what is used in the genomics-workflow repository:
      additions: |-
        - stop ecs
        - service docker stop
        - cp -au /var/lib/docker /var/lib/docker.bk
        - rm -rf /var/lib/docker/*
        - cd /opt && wget $artifactRootUrl/get-amazon-ebs-autoscale.sh
        - sh /opt/get-amazon-ebs-autoscale.sh
        - sh /opt/amazon-ebs-autoscale/install.sh $scratchPath /dev/sdc > /var/log/ebs-autoscale-install.log 2>&1
        - sed -i 's+OPTIONS=.*+OPTIONS="--storage-driver btrfs"+g' /etc/sysconfig/docker-storage
        - cp -au /var/lib/docker.bk/* /var/lib/docker
        - cd /opt && wget $artifactRootUrl/aws-ecs-additions.tgz && tar -xzf aws-ecs-additions.tgz
        - sh /opt/ecs-additions/ecs-additions-step-functions.sh
        - service docker start
        - start ecs

and
UserData:
          Fn::Base64: !Sub
            - |
              MIME-Version: 1.0
              Content-Type: multipart/mixed; boundary="==BOUNDARY=="
              --==BOUNDARY==
              Content-Type: text/cloud-config; charset="us-ascii"
              packages:
              - jq
              - btrfs-progs
              - sed
              - wget
              - git
              - amazon-ssm-agent
              - unzip
              runcmd:
              - curl -s "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "/tmp/awscliv2.zip"
              - unzip -q /tmp/awscliv2.zip -d /tmp
              - /tmp/aws/install
              - export scratchPath="${ScratchMountPoint}"
              - export artifactRootUrl="${ArtifactRootUrl}"
              - start amazon-ssm-agent

I'm getting the following errors when I install by hand:
+ MOUNTPOINT=/scratch
+ SIZE=100
+ DEVICE=
+ FILE_SYSTEM=btrfs
++ dirname /opt/amazon-ebs-autoscale/install.sh
+ BASEDIR=/opt/amazon-ebs-autoscale
+ . /opt/amazon-ebs-autoscale/shared/utils.sh
+ initialize
++ curl -s http://<IP_ADDRESS>/latest/meta-data/placement/availability-zone/
+ export AWS_AZ=eu-west-1a
+ AWS_AZ=eu-west-1a
++ echo eu-west-1a
++ sed -e 's/[a-z]$//'
+ export AWS_REGION=eu-west-1
+ AWS_REGION=eu-west-1
++ curl -s http://<IP_ADDRESS>/latest/meta-data/instance-id
+ export INSTANCE_ID=i-029e03fc7d0eb2f14
+ INSTANCE_ID=i-029e03fc7d0eb2f14
+ export EBS_AUTOSCALE_CONFIG_FILE=/etc/ebs-autoscale.json
+ EBS_AUTOSCALE_CONFIG_FILE=/etc/ebs-autoscale.json
+ PARAMS=
+ ((  2  ))
+ case "$1" in
+ PARAMS=' /var/lib/docker'
+ shift
+ ((  1  ))
+ case "$1" in
+ PARAMS=' /var/lib/docker /dev/sdc'
+ shift
+ ((  0  ))
+ eval set -- ' /var/lib/docker /dev/sdc'
++ set -- /var/lib/docker /dev/sdc
+ '[' '!' -z ' /var/lib/docker /dev/sdc' ']'
+ MOUNTPOINT=/var/lib/docker
+ '[' '!' -z /dev/sdc ']'
+ DEVICE=/dev/sdc
+ mkdir -p /usr/local/amazon-ebs-autoscale/bin /usr/local/amazon-ebs-autoscale/shared
+ cp /opt/amazon-ebs-autoscale/bin/create-ebs-volume /opt/amazon-ebs-autoscale/bin/ebs-autoscale /usr/local/amazon-ebs-autoscale/bin
+ chmod +x /usr/local/amazon-ebs-autoscale/bin/create-ebs-volume /usr/local/amazon-ebs-autoscale/bin/ebs-autoscale
+ ln -sf /usr/local/amazon-ebs-autoscale/bin/create-ebs-volume /usr/local/amazon-ebs-autoscale/bin/ebs-autoscale /usr/local/bin/
+ ln -sf /usr/local/amazon-ebs-autoscale/bin/create-ebs-volume /usr/local/amazon-ebs-autoscale/bin/ebs-autoscale /usr/bin/
+ cp /opt/amazon-ebs-autoscale/shared/utils.sh /usr/local/amazon-ebs-autoscale/shared
+ cp /opt/amazon-ebs-autoscale/config/ebs-autoscale.logrotate /etc/logrotate.d/ebs-autoscale
+ cat /opt/amazon-ebs-autoscale/config/ebs-autoscale.json
+ sed -e s#%%MOUNTPOINT%%#/var/lib/docker#
+ sed -e s#%%FILESYSTEM%%#btrfs#
+ '[' -e /var/lib/docker ']'
+ '[' -d /var/lib/docker ']'
+ '[' -e /var/lib/docker ']'
+ '[' -z /dev/sdc ']'
+ '[' '!' -b /dev/sdc ']'
++ create-ebs-volume --size 100
/usr/bin/create-ebs-volume: line 169: aws: command not found
/usr/bin/create-ebs-volume: line 175: aws: command not found
/usr/bin/create-ebs-volume: line 183: aws: command not found
/usr/bin/create-ebs-volume: line 185: [: : integer expression expected
/usr/bin/create-ebs-volume: line 190: [: : integer expression expected
/usr/bin/create-ebs-volume: line 195: [: : integer expression expected
Error: could not create volume
+ DEVICE='/usr/bin/create-ebs-volume: line 218: aws: command not found'

Any help would be greatly appreciated.

Hi @drdivine ,
If you still have the instance available, can you check /var/log/cloud-init-output.log for any errors that may have occurred while running the LaunchTemplate steps?
This solution and genomics-workfows are related projects and will eventually have aligned codebases. The core steps of the UserData sections are roughly the same:

Install requisite system packages (i.e. jq, btrfs-progs)
Install the AWS CLI
Provision the instance - e.g. get / install amazon-ebs-autoscale, run any orchestrator specific provisioning steps.

Can you provide some additional context for how you ran the manual install of amazon-ebs-autoscale? What AMI did you use? The errors at the bottom indicate that the AWS CLI was not properly installed. Amazon EBS Autoscale uses the AWS CLI to create and attach volumes.


Internal Server Error

I don't know why I am experiencing an internal server error on mailcatcher.I am running ruby on rails on webpack with vue.This was my installation process:
1. Installed mail checker with gem install mailcatcher.
2. I configured mailcatcher in development at environments/development.rb with the following code :
       config.action_mailer.delivery_method = :smtp        config.action_mailer.smtp_settings = { :address => '<IP_ADDRESS>', :port => 1025 }        config.action_mailer.raise_delivery_errors = false      just as the documentation mentioned.
3.And finally  I ran maillcatcher in the terminal.
I am on arch linux running ruby version 3.3.1 and rails version <IP_ADDRESS>

I get the same error.

Have you tried using a lesser version of ruby 3.3.1?

Same experiencing the same error

I'm getting the same error
ruby 3.3.1, Rails <IP_ADDRESS>
Mac OS w/ Apple Silicon

Thank you for the report.
I believe this may be solved by #554. Please try the latest pre-release:
gem install mailcatcher --pre

gem install mailcatcher --pre

This didn't work for me. I'm still getting Internal Server Error.
Ruby 3.3.1, Rails <IP_ADDRESS>
Mac OS w/ Apple Silicon

worked OK for me
note:  I removed the mailcatcher gem first including the compiled binaries
Ruby 3.3.1, Rails <IP_ADDRESS>
Ubuntu-amd64 23.10

This worked ok for me.   Thanks
NOTE: make sure to remove the gem, including the binaries
Ruby 3.3.1  Rails: <IP_ADDRESS>
amd64 Ubuntu 23.10

Please post the log output if you’re still having trouble.


Make the approval system

In our website some organizations will request for registration and soon they will register approved : false will be there in database.
So the admins should be able to see the approval requests. So that they can either accept or decline them. Make two other controller functions which will allow admin to accept the approval or to decline. Keep all these approval thing inside the adminController.js file

I'd like to work on this!

Could you elaborate the workflow? Will this require a new Organisation schema? If yes, which fields would be required?

check issue #43


No TypeScript declarations file

Hello,
I am encountering an issue with storybook-addon-cookie when attempting to use it in a TypeScript project. When I import the module using the following syntax in Storybook's preview.tsx:
import { cookieDecorator } from 'storybook-addon-cookie';

I receive an error:
Cannot find module 'storybook-addon-cookie' or its corresponding type declarations.ts(2307)
Cannot find module 'storybook-addon-cookie' or its corresponding type declarations.
Translation: This could be one of two things - either storybook-addon-cookie doesn't exist on your file system, or I can't find any type declarations for it.

I believe this problem arises due to the absence of TypeScript declarations in your package. Although storybook-addon-cookie appears to be written in TypeScript, it does not ship with the necessary .d.ts files. As a result, TypeScript and supporting IDEs can't recognize the imported module's types.
Ideally, the TypeScript compiler should generate these declaration files during the build process. This can be configured in the tsconfig.json file by setting the "declaration" property to true.
Thank you for your attention to this matter.

@mskrzypek
We apologize for the delayed response.
I have added the settings you mentioned and will now generate the d.ts file.
I just followed the options in the addon-kit provided by storybook, but there was no mention of that option..🤔
I'll try to be more responsive next time.
Thanks so much for bringing this issue to my attention.


Update smdebug to 0.7.0

Issue #, if available:
Description of changes:
Using smdebug built from source. will be replaced with smdebug==0.7.0 once it is released.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Similar issues reported when adding python SDK to Tensorflow 1.15.2
https://github.com/aws/sagemaker-tensorflow-container/pull/295
The error logs look nearly the same


Example shiny app as a sandbox

This PR adds a shiny app in inst/shiny/sandbox which can load any of fdge, fpca, or ffsea as modules.
This is a barebones app with no additional features, merely a prototype for a sandbox in which modules could be loaded. This helped identify some minor issues (e.g. https://github.com/facilebio/FacileAnalysis/pull/49 and something else happening with ffsea which crashes here). This also has some best-practices in terms of cleaning up destroyed modules. I've also used it to prototype the idea of keeping a running list of analyses performed - again, this is just a simple implementation.
Dataset loading is limited to FacileData:::exampleFacileDataSet().

Since it's always easier to show than tell:
https://user-images.githubusercontent.com/9496865/166852690-ca9bf7f8-a7c0-487e-86be-47f172c4b1c0.mov

Still TODO:

[ ] properly namespace or destroy the filteredReactiveFacileDataStoreUI()
[ ] actually store the results so they can be presented / interacted with
[ ] ?

Now with filtering as an "output" that can be fed back in as an "input"
https://user-images.githubusercontent.com/9496865/167791099-128ecc9f-3366-45c7-973c-669079b8e6ee.mov
Still TODO:

[ ] properly namespace (and destroy) the filteredReactiveFacileDataStoreUI() - this may be the reason I'm getting multiple filters (some inaccessible) with the 'add' button but I'll dig further. It may be a bug in the UI, may just be my implementation
[ ] actually store the results so they can be presented / interacted with
[ ] store a provenance chain linking all outputs to their inputs, recursively
[ ] present a network graph of the inputs and outputs - someone may add a filter then pca vs raw with dge then fsea
[ ] find out why debug=TRUE is a necessary condition - filtering UI doesn't show without this
[ ] ?

The doubled filters issue is now resolved and the right number of samples propagates through the filter into the result and retrieval by a later analysis. The filteredReactiveFacileDataStore server logic invoked as part of ReactiveFacileDataStore isn't being destroyed (because it's not an observer in the top scope) so invoking a second filter loads the settings from the first - this could be dealt with via a more consistent module for filtering.


[criterion] Fix extractor

Before submitting a pull request make sure you have:

[x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Bug fix
[x] Improvement
[ ] New extractor
[ ] New feature

Description of your pull request and other information
youtube-dl failed to download videos from criterion.com:
youtube-dl --verbose https://www.criterion.com/films/28986-the-heiress resulted in a RegexNotFoundError: Unable to extract video url error.
python test/test_download.py TestDownload.test_Criterion failed similarly with an youtube_dl.utils.DownloadError: ERROR: Unable to extract video url error.
I rewrote the original extractor to extract information from json data located within a webpage whose url is embedded in the original page. I tried to include more details than the original extractor provided such as resolution and fps while utilizing safe and parsing functions from youtube_dl/utils.py. I also added three tests in addition to the original one.

I added support for hls and dash sources.
python test/test_download.py TestDownload.test_Criterion
[Criterion] 184: Downloading webpage
[Criterion] 265399901: Downloading webpage
[Criterion] 265399901: Downloading MPD manifest
[Criterion] 265399901: Downloading MPD manifest
[Criterion] 265399901: Downloading m3u8 information
[Criterion] 265399901: Downloading m3u8 information
[Criterion] 981267115: Downloading mp4 information
[Criterion] 981267109: Downloading mp4 information
[Criterion] 981267100: Downloading mp4 information
[info] Writing video description metadata as JSON to: test_Criterion_265399901.info.json
.
----------------------------------------------------------------------
Ran 1 test in 4.586s

OK

Prettified the youtube-dl -F output by sorting formats with Vimeo-based preferences.


Add LICENCE file

Why does it matter? You see the OSI approved license in package.json.
This is not even the correct license and has the wrong copyright author in the file.

Separate license file makes it easier to automatically extract licenses in large projects.
Now I see, but I extracted it from your lib/ripemd160.js.

I'll drop this pull-request. Can you create one with the correct license?


port kalman filter

Description
Just delete colcon ignore
Review Procedure

Remarks

Pre-Review Checklist for the PR Author
PR Author should check the checkboxes below when creating the PR.

[ ] Read pull request guidelines
[ ] Code follows coding guidelines
[ ] Assign PR to reviewer

Checklist for the PR Reviewer
Reviewers should check the checkboxes below before approval.

[ ] Commits are properly organized and messages are according to the guideline
[ ] Code follows coding guidelines
[ ] (Optional) Unit tests have been written for new behavior
[ ] PR title describes the changes

Post-Review Checklist for the PR Author
PR Author should check the checkboxes below before merging.

[ ] All open points are addressed and tracked via issues or tickets
[ ] Write release notes

CI Checks

Build and test for PR / build-and-test-pr: Required to pass before the merge.
Build and test for PR / clang-tidy-pr: NOT required to pass before the merge. It is up to the reviewer(s). Found false positives? See the guidelines.
Check spelling: NOT required to pass before the merge. It is up to the reviewer(s). See here if you want to add some words to the spell check dictionary.

typo: Delet -> Delete

Also, since this just removes COLCON_IGNORE, please change the PR title like this.
https://github.com/tier4/AutowareArchitectureProposal.iv/pull/532


2.5.9 -> 2.5.10-rc2 rancher upgrade | Newly added windows 2004 worker node does not get deleted after the upgrade

Rancher Server Setup

Rancher version: v2.5.10-rc2
Installation option (Docker install/Helm Chart): Helm

If Helm Chart, Kubernetes Cluster and version (RKE1, RKE2, k3s, EKS, etc): RKE

Proxy/Cert Details:

Information about the Cluster

Kubernetes version: v1.17.17
Cluster Type (Local/Downstream):

If downstream, what type of cluster? (Custom/Imported or specify provider for Hosted/Infrastructure Provider): Custom Windows

Describe the bug

After the rancher upgrade from 2.5.9 to 2.5.10-rc2 and deleting a newly added windows worker node the node didn't get deleted
To Reproduce

HA rancher

rancher chart version 2.5.9
rke version 1.2.9
helm version 3.3.4

add a custom Windows 2004 cluster

1 linux node with 3 roles assigned
3 windows workers

add a daemonset (so it's running on all nodes) workload (ranchertest/testcontainer-windows2004)
upgrade rancher to 2.5.10-rc2 using helm
add a new windows 2004 worker node to the cluster
delete the newly added node using UI

Result

logs show that the node was deleted but then a machine was created for the node
the node is still present on the UI
the workload still seems to be running on that node
kubectl get nodes returns the node with no roles assigned

Expected Result

the node is deleted
Screenshots

Additional context
tried to reproduce the issue immediately with a new windows worker added, waited for the daemon set to start running on it, and then deleted - the node got deleted properly
successfully deleted a windows worker node which was created before the upgrade - the node got deleted properly
LOGS:
2021/10/06 20:04:04 [INFO] Provisioning cluster [c-cwjnl]
2021/10/06 20:04:04 [INFO] Updating cluster [c-cwjnl]
2021/10/06 20:04:04 [INFO] Deleted cluster node m-5f12ba71fbda [ip-ac1f09c6]
2021/10/06 20:04:09 [INFO] kontainerdriver rancherkubernetesengine listening on address xxxxxxx35927
2021/10/06 20:04:09 [INFO] kontainerdriver rancherkubernetesengine stopped
2021/10/06 20:04:09 [INFO] Updated cluster [c-cwjnl] with node version [1]
2021/10/06 20:04:09 [INFO] Provisioned cluster [c-cwjnl]
2021/10/06 20:04:09 [INFO] checking cluster [c-cwjnl] for worker nodes upgrade
2021/10/06 20:04:58 [INFO] error in remotedialer server [400]: websocket: close 1006 (abnormal closure): unexpected EOF
W1006 20:07:15.201753       7 warnings.go:80] extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
2021/10/06 20:07:22 [INFO] Created machine for node [ip-ac1f09c6]

@sirredbeard - I moved this out of 2.5.12 since it wasn't getting any traction. In fact, I'm not sure if this is even an applicable issue. Does the matrix even recommend the 2004 support still for 2.5x? Is this something we can close or should we leave it in for a future concern given that EOM for 2.5x was Jan 5th, 2022?

Closing as Windows Server version 2004 is EOL.

Reopening to test if this usecase passes using a Windows 2019 Server

I do not see this issue when performing the same steps, but upgrading to 2.5.13-rc1 and using windows-2019.


Azure Function missing swagger actions.

Describe the Bug with repro steps
1.Create a LA in consumption and add http trigger.
2.Add azure function action.
Actual: No Swagger action.

Expected: Swagger action should be present as per old Designer.

Workflow JSON
No response
Screenshots or Videos
No response
Browser
Chrome
Additional context
Environmental Details:
URL: https://aka.ms/emastaging-flowstip1
Version : 2.30410.1.3

Merged into main branch in designer and portal 👍


Drone owner view

Looks good. We may want to add "@csrf_protect" or whatever to the view function. I'm not entirely sure how much it would matter in this case, however.

good catch, I'll add that in when I get started on the backend this weekend since I'm honestly not sure if it will require another review if I push up another change or not


fix: correct release settings

Summary

correct .releaserc settings
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[ ] Refactor (no functionality changes)

Screenshot(s)

Test Steps

Check package on https://www.npmjs.com/package/tonfura-sdk
Reference Document(s)

Ticket(s)
https://tonfura.atlassian.net/browse/TON-322
Mockup
Checklist

[x] Remove unnecessary console or comment
[x] Add unit tests

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add sudo-less postgresql commands

@byteknacker @alayek please check.

Actually I was about to raise the same changes in PR :dart:

lol. sorry @alayek ! :smile:

LGTM :+1:
Tested on my Linux machine and Windows 10.

Well done, thanks a lot for this perfect collaboration. I really wish my company has a team like that...