Merge Linuxbrew/brew into Homebrew/brew

We aim to merge Linuxbrew/brew into Homebrew/brew by the end of 2018. Linux users will use Homebrew/brew. Linuxbrew/brew will remain as a fork to be used for development.

[x] Submit relocatable kegs (keg_relocate.rb) to Homebrew/brew

[x] Submit patchelf to Homebrew/core https://github.com/Homebrew/brew/pull/4382

[x] Submit Superenv (extend/ENV/super.rb) to Homebrew/brew https://github.com/Homebrew/brew/pull/4185
[x] Ensure Homebrew/brew on Linux can brew readall Homebrew/homebrew-core and/or Linuxbrew/homebrew-core (probably both)

[x] Figure out a solution for MacOS.version

[ ] Submit remaining patches to Homebrew/brew or revert in Linuxbrew/brew (to be determined)
[ ] Merge Linuxbrew/homebrew-test-bot into Homebrew/homebrew-test-bot
[ ] Document what Linux platforms Homebrew/brew officially supports
[ ] Document Linux behaviour in documentation (manpage)

This list is not comprehensive and will be expanded as items arise.
Once these tasks are complete, we'll migrate from Linuxbrew/brew to Homebrew/brew in this order:

Move Linuxbrew CI to using Homebrew/brew
Move Linuxbrew master branch users to using Homebrew/brew's master branch
Move Linuxbrew stable/tag users to using Homebrew/brew's master branch

Suggestion for ordering this migration:

Move Linuxbrew CI to using Homebrew/brew
Move Linuxbrew master branch users to using Homebrew/brew's master branch
Move Linuxbrew stable/tag users to using Homebrew/brew's master branch

Additional tasks:

Document what Linux platforms Homebrew/brew officially supports (likely a single distro and a lower level than Linuxbrew/brew). Instead or as well: consider what the bug reporting/fixing flow is going to look like
Document Linux behaviour in documentation e.g. manpage
Figure out a solution for MacOS.version
Ensure Homebrew/brew on Linux can brew readall Homebrew/homebrew-core and/or Linuxbrew/homebrew-core (probably both)

Document what Linux platforms Homebrew/brew officially supports (likely a single distro and a lower level than Linuxbrew/brew)

Linuxbrew builds its bottles on the most recent Ubuntu LTS platform, which is currently Ubuntu 16.04 LTS (Xenial Xerus) and in April will become Ubuntu 18.04 LTS (Bionic Beaver). Other distributions that I'd like to support are Debian, Fedora, and CentOS. The popularity of distribution and version being run on Google Analytics in the last 30 days, in order of popularity, are Ubuntu 16.04, Ubuntu 17.10, Fedora Core 27, Debian 8, Ubuntu 14.04, Ubuntu 12.04, CentOS 7, and Debian 9.

Rank
Distribution
Total Events
Unique Events

1.
Ubuntu 16.04.3 LTS
10,034(19.35%)
9,702(19.77%)

2.
Ubuntu 16.04.3 LTS, custom-prefix
7,264(14.01%)
6,959(14.18%)

3.
Ubuntu 17.10
5,833(11.25%)
5,595(11.40%)

4.
4.13.9-300.fc27.x86_64
1,397(2.69%)
1,305(2.66%)

5.
Debian GNU/Linux 8.10 (jessie), custom-prefix
1,030(1.99%)
887(1.81%)

6.
Ubuntu 14.04.5 LTS
843(1.63%)
812(1.65%)

7.
4.4.0-111-generic, CI
823(1.59%)
823(1.68%)

8.
Ubuntu 16.04.2 LTS
767(1.48%)
738(1.50%)

9.
"CentOS Linux release 7.4.1708 (Core) "
745(1.44%)
728(1.48%)

10.
Debian GNU/Linux 9.3 (stretch)
690(1.33%)
672(1.37%)

Figure out a solution for MacOS.version
Ensure Homebrew/brew on Linux can brew readall Homebrew/homebrew-core and/or Linuxbrew/homebrew-core (probably both)

Current Homebrew/brew on Linux cannot tap Homebrew/core due to…
undefined method `full_version' for OS::Mac:Module
undefined method `version' for OS::Mac::Xcode:Module
undefined method `version' for OS::Mac:Module

@MikeMcQuaid How do you feel about defining these three methods as Version::NULL on Linux?

@MikeMcQuaid How do you feel about defining these three methods as Version::NULL on Linux?

@sjackman That seems reasonable 👍 .

Linuxbrew builds its bottles on the most recent Ubuntu LTS platform, which is currently Ubuntu 16.04 LTS (Xenial Xerus) and in April will become Ubuntu 18.04 LTS (Bionic Beaver).

Cool. I think we should stick with the latest Ubuntu LTS and ensure that our Linux brew tests job is running there, if possible.

Cool. I think we should stick with the latest Ubuntu LTS and ensure that our Linux brew tests job is running there, if possible.

Use Docker on TravisCI? I haven't used it yet, but seems supported. https://docs.travis-ci.com/user/docker/ Docker support on CircleCI 2.0 is first class.

@sjackman That seems reasonable 👍 .

I'll submit a PR. There's also MacOS.prefer_64_bit?. That's the last one. Shall I rename this method to OS.prefer_64_bit? and submit PRs to Homebrew/brew and Homebrew/homebrew-core? I'll keep the old name as a deprecated alias.

I've submitted PR Homebrew/brew#3820. There's also MacOS.prefer_64_bit?. That's the last one. Shall I rename this method to OS.prefer_64_bit? and submit PRs to Homebrew/brew and Homebrew/homebrew-core? I'll keep the old name as a deprecated alias.

prefer_64_bit? has always felt a bit weird as a name to me. What about just OS.64_bit? or OS.is_64_bit? CC @ilovezfs in case you have other good naming thoughts.

Use Docker on TravisCI? I haven't used it yet, but seems supported (https://docs.travis-ci.com/user/docker/). Docker support on CircleCI 2.0 is first class.

What's the distro that the base Travis CI image is running?

I guess OS.64_bit? seems fine. Apple is dropping 32-bit support altogether so we may also want a OS.64_bit_only? if that helps inform your naming thoughts at all.

I liked OS.64_bit?

What's the distro that the base Travis CI image is running?

Ubuntu 12.04 LTS (Trusty Tahr), which is six years old now.

I'm confused. https://docs.travis-ci.com/user/reference/overview/
Sudo-enabled #

A sudo enabled, full virtual machine per build, that runs Linux, either Ubuntu Precise 12.04 or Ubuntu Trusty 14.04.
Container-based #

A fast boot time environment in which sudo commands are not available. Running Linux Ubuntu Trusty 14.04

You're right. I had forgotten that TravisCI offers both Precise and Trusty. Ubuntu 14.04 LTS (Trusty Tahr) is four years old. Ubuntu 18.04 LTS (Bionic Beaver) will be released in April.

Here's the list of essential (required) Debian packages. It's pretty safe to assume that these packages will be available on most Linux systems.
See https://www.reddit.com/r/debian/comments/6lnakq/what_are_the_essential_packages/
base-files              libattr1                libuuid1
base-passwd             libblkid1               login
bash                    libc-bin                lsb-base
bsdutils                libc6                   mawk
coreutils               libcomerr2              mount
dash                    libfdisk1               multiarch-support
debconf                 libgcc1                 ncurses-base
debianutils             liblzma5                ncurses-bin
diffutils               libmount1               passwd
dpkg                    libpam-modules          perl-base
e2fslibs                libpam-modules-bin      sed
e2fsprogs               libpam-runtime          sensible-utils
findutils               libpam0g                sysvinit-utils
gcc-6-base              libpcre3                tar
grep                    libselinux1             tzdata
gzip                    libsepol1               util-linux
hostname                libsmartcols1           zlib1g
init-system-helpers     libss2
libacl1                 libtinfo5

Is there anything that an outsider could do to help this merger? The todo list at the top seems like it may be out of date (e.g. "Figure out a solution for MacOS.version" seems to be resolved by a comment here and "Document what Linux platforms Homebrew/brew officially supports" seems to be resolved by another comment) so if anyone has a more up-to-date list of issues, I'd be happy to try and tackle some.

I think we need to rework that list a little bit :)

@jamescostian At this point, Homebrew/brew should be usable with Linuxbrew/core, so end-user testing would be helpful. Install Linuxbrew, and then change ~/.linuxbrew/Homebrew to use the Homebrew/brew remote rather than the default Linuxbrew/brew. If you run into any problems or have questions / need help, open a new issue at Linuxbrew/brew.

@sjackman That's pretty exciting. What are the main things that remain unmerged?

It is pretty exciting! For example brew install brewsci/bio/miniasm works 💯 using Homebrew/brew, and pours the bottle!
Here's most of the remaining differences.

HOMEBREW_BOTTLE_DEFAULT_DOMAIN is https://linuxbrew.bintray.com on Linux
Default core tap is https://github.com/Linuxbrew/homebrew-core on Linux
Find the host's GNU compiler e.g. /usr/bin/gcc-5 or /usr/bin/gcc44
Various fixes to stdenv for Linux (though superenv is the default)
Linuxbrew's bottles are built for glibc 2.23, so install the brewed glibc and gcc if the host's glibc is older than 2.23
depends_on :java installs the formula jdk on Linux
depends_on :x11 installs the formula linuxbrew/xorg/xorg on Linux
Ignore keg_only when :provided_by_macos, :provided_by_osx, :shadowed_by_macos on Linux
brew linkage checks for undesirable linking to host libraries on Linux
Default installation prefix is /home/linuxbrew/.linuxbrew on Linux
Treat cellar :any_skip_relocation as cellar :any on Linux, since relocation is always needed
Print a dot each minute during brew uses. This may no longer be necessary.
Environment variable HOMEBREW_ARCH specifies the value of cc -march=…, useful when installing formulae on one machine to NFS, but then running those executables on a machine with an older CPU, e.g. HOMEBREW_ARCH=core2. Particularly useful for HPC systems with a newer head job submission node, but older compute nodes.

HOMEBREW_BOTTLE_DEFAULT_DOMAIN is https://linuxbrew.bintray.com on Linux
Default core tap is https://github.com/Linuxbrew/homebrew-core on Linux
Find the host's GNU compiler e.g. /usr/bin/gcc-5 or /usr/bin/gcc44
Various fixes to stdenv for Linux (though superenv is the default)
Linuxbrew's bottles are built for glibc 2.23, so install the brewed glibc and gcc if the host's glibc is older than 2.23
depends_on :java installs the formula jdk on Linux
depends_on :x11 installs the formula linuxbrew/xorg/xorg on Linux
Ignore keg_only when :provided_by_macos, :provided_by_osx, :shadowed_by_macos on Linux
brew linkage checks for undesirable linking to host libraries on Linux
Default installation prefix is /home/linuxbrew/.linuxbrew on Linux
Treat cellar :any_skip_relocation as cellar :any on Linux, since relocation is always needed
Environment variable HOMEBREW_ARCH specifies the value of cc -march=…, useful when installing formulae on one machine to NFS, but then running those executables on a machine with an older CPU, e.g. HOMEBREW_ARCH=core2. Particularly useful for HPC systems with a newer head job submission node, but older compute nodes.

These all seem reasonable and mergeable 👍

Print a dot each minute during brew uses. This may no longer be necessary.

I think we've handled this with brew test-bot now for Travis CI. It's also a bunch faster with the newer Ruby we're on now.

depends_on :x11 installs the formula linuxbrew/xorg/xorg on Linux

I do not do that anymore in core. This got broken at one point, so I am using depends on "linuxbrew/xorg/xorg". I also noticed that it is often overkill to depend on the full xorg formula and went for a more fine-grained selection of dependencies.

Thanks for the information, Michka! That should reduce a big part of the diff in superenv.

Various fixes to stdenv for Linux (though superenv is the default)

Sounds like from https://github.com/Homebrew/brew/pull/4831#issuecomment-418878342 this can be removed for now.

depends_on :java installs the formula jdk on Linux
depends_on :x11 installs the formula linuxbrew/xorg/xorg on Linux

It would be interesting to explore whether openjdk and even xorg can be usefully built and used on macOS. It would be neat to make two big, open source cask dependencies not require manual installation.

Various fixes to stdenv for Linux (though superenv is the default)

Sounds like from https://github.com/Homebrew/brew/pull/4831#issuecomment-418878342 this can be removed for now.

Some fixes will be necessary, but I've struck out this item for now. It's not a priority, since Superenv is the default, and works great.

depends_on :java installs the formula jdk on Linux
depends_on :x11 installs the formula linuxbrew/xorg/xorg on Linux

It would be interesting to explore whether openjdk and even xorg can be usefully built and used on macOS. It would be neat to make two big, open source cask dependencies not require manual installation.
That would be pretty cool. I'm not myself the person to take up the torch of creating those formulae. It'd be awesome if someone did pick it up.

Some fixes will be necessary, but I've struck out this item for now. It's not a priority, since Superenv is the default, and works great.

👍

That would be pretty cool. I'm not myself the person to take up the torch of creating those formulae. It'd be awesome if someone did pick it up.

Agreed and same here 😁 (for now at least).

That would be pretty cool. I'm not myself the person to take up the torch of creating those formulae. It'd be awesome if someone did pick it up.

I'm looking into making an openjdk formula, but it seems that the build process requires an existing Java compiler on the PATH in order to work (a bootstrap JDK).

What is the status of https://github.com/Linuxbrew/homebrew-core/pull/8977? I have an OpenJDK formula in the works, but I see there's already a PR in progress.

I still need to review it. If you have some comments for that new formula, they are welcome of course :)

No, nothing in particular. I was just curious on which, if either, approach (from ojdkbuild or building ourselves) was preferable. It would save me some time so I could start working towards making the xorg formulas build from scratch. 😄

I could start working towards making the xorg formulas build from scratch

They build from scratch just fine. Some need to be update to account for a recent switch to real superenv, but otherwise...

PR https://github.com/Linuxbrew/homebrew-core/pull/8977 installs prebuilt binaries of OpenJDK for Linux, which is okay in Linuxbrew/core, but not okay for Homebrew/core. The maintainers of Homebrew/core have expressed that they would like an openjdk formula that builds it from source. Would you be interested in submitting your formula upstream to Homebrew/core? Do you use or have access to a macOS machine?

If so, the formula submitted upstream to Homebrew/core would need to support only macOS. Linuxbrew/core is a fork of Homebrew/core, and the formula here in Linuxbrew/core would support both macOS and Linux.

Would you be interested in submitting your formula upstream to Homebrew/core? Do you use or have access to a macOS machine?

Yes, in that case, I'll take it over to the Homebrew/core side then.

Excellent! That's great, Caleb.

Is there much more to do here for this to be merged?

The substantial portions of the merger are complete. Homebrew/brew is now quite usable on Linux! Linuxbrew/test-bot ought to be merged into Homebrew/test-bot. Linuxbrew developers and beta testers need to give Homebrew/brew on Linux a spin. Then it'll be rolled out to CI on Brewsci/bio and Linuxbrew/core. Then it'll be rolled out to users with homebrew.devcmdrun=1, and finally to all users.

The substantial portions of the merger are complete.

What portions are left?

Linuxbrew developers and beta testers need to give Homebrew/brew on Linux a spin. Then it'll be rolled out to CI on Brewsci/bio and Linuxbrew/core. Then it'll be rolled out to users with homebrew.devcmdrun=1, and finally to all user

Cool, sounds good. Would be good to have this on CI within a few weeks if we want to hit the goal of rolling out to all users by the end of the year.

What portions are left?

Patches related to the :java and :x11 requirements, which may no longer be needed, since Requirements were largely phased out.
Fixes for Stdenv, which have not yet been ported to Homebrew/brew. They're not a priority for me, since we've been using Superenv for a couple of years now.
A fix to prevent using brewed glibc 2.23 on systems with Linux kernel < 2.6.32, because glibc 2.23 requires Linux kernel ≥ 2.6.32. These systems cannot use bottles and must build everything from source using their host's glibc. These systems are not supported.
A patch to prefer gcc-5 over larger versions as the default compiler, because bottles are built using GCC 5 on Ubuntu 16.
A patch to automatically symlink /usr/bin/gcc to $HOMEBREW_PREFIX/bin/gcc-X (where X is its version), which should no longer be needed.
A workaround to install bottles that were built during a period ~1.5 years ago with a bug that caused the placeholder token @@HOMEBREW_REPOSITORY@@ to be used when it should be @@HOMEBREW_PREFIX@@, due to building bottles on CI before migrating the directory structure to $HOMEBREW_REPOSITORY=$HOMEBREW_PREFIX/Homebrew. This fix may still be needed. I'm unsure how many bottles remain that were built during this time period
A patch block implies a build dependency on gpatch.
A random fix for utils/lock.sh for systems that do not support file descriptors above 200.
Other miscellaneous patches, which with any luck are no longer needed.

Fixes for Linuxbrew/core CI

Fixes for brew bottle --keep-old to deal with the case when the value detected for cellar on macOS is different than the value detected on Linux.
Add a --tap option to brew pull to handle the case that brew pull --tap=homebrew/core https://github.com/Linuxbrew/homebrew-core/pull/123 is for the tap homebrew/core, not linuxbrew/core as implied by the pull URL.
Support for building bottles from a pull request whose head is a merge commit, when Homebrew/core is merged into Linuxbrew/core and submitted to a PR.

My plan is to merge chunks on an as-needed basis from hereon.

Release without support for HOMEBREW_ARCH have broken my installation :(

Hi, Arseny. That HOMEBREW_ARCH feature has been removed from Linuxbrew as part of the merging of Linuxbrew/brew into Homebrew/brew, because Homebrew did not have this feature, and due to bit rot, it hadn't actually been working in a while (specifically, it was implemented for --env=std, but never for --env=super, and Linuxbrew switched to --env=super over a year ago`). I recommend installing packages on a machine that has the oldest CPU architecture that you are using.

@MikeMcQuaid Here's the list of supported distributions of Linux. Your thoughts? Shall I open a PR to create docs/Linux.md?
Homebrew on Linux requires…

GCC 4.4 or newer, 4.7 or newer recommended
Linux 2.6.32 or newer
Glibc 2.12 or newer, 2.23 or newer recommended
64-bit x86** or 32-bit ARM (Raspberry Pi)

These distributions of Linux are supported.

Ubuntu 16 or newer
Debian 9 or newer
Linux Mint 17 or newer
Fedora 24 or newer
CentOS 7 or newer
Red Hat 7 or newer

Older distributions work, but are not actively supported.

Ubuntu 12 or newer
Debian 7 or newer
CentOS 6 or newer

Installing Linuxbrew in its default location of /home/linuxbrew/.linuxbrew is strongly recommended to make use of precompiled binary packages and avoid compiling from source.


When app crashes, give user options to recover

When app crashes, give user last resort options to clear database / delete date, but make very clear that these actions are destructive.
Note: Rough wireframe, not final colors etc:

@Kriesse what's the color of the yellow background there?

oh hold on, looks like --color-yellow-disabled http://datproject.github.io/design/ :sparkles:


tagui step with datatable.csv

The invocation of a sub-flow in combination with a datatable csv to iterate over yields:
ERROR - file not found for step tagui mySubFlow.tag data.csv
ERROR - automation aborted due to above
Note that my flows are not in the same directory as tagui.cmd
I have tried with absolute path for both the sub-flow and the csv file but still get the 'file not found' error.
Is this not supported?

Hi Olivier, sorry I was away the past few months - https://github.com/tebelorg/RPA-Python/issues/144
That's correct, using datatable this way as part of tagui step is not supported. What the tagui step does is it expands a TagUI flow into the same position in the parent flow.
Datatables and variables inside can still be used iteratively, but the datatable has to be specified from the initial tagui command from the command line.
In other words, you can't do a nested loops of 2 different datatables. You might be able to use run step to run the tagui command as a separate process with its own datatable.
But most likely you will run into issues unless you create separate TagUI installations and Chrome user directories so that the 2 tagui processes don't overwrite into each other.
Closing issue for now, but please lemme know if you have any questions on this topic.


build: send double delete to GCE to kill instances

I heard that if you send back-to-back Instances.Delete requests to GCE, it's treated as a hard delete instead of a graceful shutdown.
Let's validate whether that's true.
/cc @adg

Obsolete. I think we both fixed this, and no longer use GCE VMs as much as we used to. We also did the "basepin" thing so they start faster.


statically link compiled binaries for release

Address https://github.com/GoogleContainerTools/kpt/issues/3524 and https://github.com/GoogleContainerTools/kpt/issues/3528
Ref: https://github.com/goreleaser/goreleaser/pull/226/files
This seemed to fix the issue for me on my locally built container images.

cc @rquitales @mortent

Have we tested that the statically linked binaries can run inside an Alpine container?

Have we tested that the statically linked binaries can run inside an Alpine container?

I locally build a statically linked binary and then built the kpt container image using this Dockerfile and it was able to run the kpt binary in that locally built container image.
Here is exactly the commands I ran:
$ go install --ldflags="-s -w -X github.com/GoogleContainerTools/kpt/run.version=foo -linkmode external -extldflags \"-static\"" .
# github.com/GoogleContainerTools/kpt
...

$ kpt version
foo

$ which kpt | xargs ldd
        not a dynamic executable

$ cp $HOME/go/bin/kpt ./release/images

$ docker build -f release/images/Dockerfile -t local-image release/images
Sending build context to Docker daemon  61.38MB
Step 1/4 : FROM alpine:3.13
 ---> 6b5c5e00213a
Step 2/4 : RUN apk update && apk upgrade &&     apk add --no-cache git less mandoc diffutils bash openssh docker-cli &&     rm -rf /var/lib/apt/lists/* &&     rm /var/cache/apk/*
 ---> Using cache
 ---> 4b9668f21634
Step 3/4 : COPY kpt /usr/local/bin/kpt
 ---> 10921ed87a57
Step 4/4 : ENTRYPOINT ["kpt"]
 ---> Running in e7caddbc8690
Removing intermediate container e7caddbc8690
 ---> 0c02bd5e0f19
Successfully built 0c02bd5e0f19
Successfully tagged my-image:latest

$ docker run -it --rm my-image:latest version
foo

Have we tested that the statically linked binaries can run inside an Alpine container?

@mortent I also ran the changes @natasha41575 made with make release-dry-run to replicate the Kpt release pipeline. That built the alpine images correctly.

Sounds good.


'Attached Container' instead of 'SAS-Attached Service' under 'Local & Attached'

Storage Explorer Version: 1.8.1_20190523.2
Platform/OS: Linux Ubuntu/macOS High Sierra/Windows 10
Architecture: ia32/x64
Regression From: 1.8.1 release
Steps to reproduce:

Expand 'Local & Attached' -> 'Storage Accounts'.

Expect Experience:
There shows 'SAS-Attached Service'.
Actual Experience:
There shows 'Attached Container'.

I believe this is by design as we will soon support RBAC attach.  Matthew can confirm if he has already checked in the code.

Yes. I checked in the name change.


New moon fts image from user-contrib (Martin.Federspiel at gmx.de)

From xephem site: Here alternative version of moon.fts that was made using strips of LRO images with low sun angles. It is a much better match to what you see when viewing a given location while it is near the terminator. Thanks to Martin Federspiel, Martin.Federspiel at gmx.de.

Second commit - gsc23 fix, mentioned some time ago on mailing list


Overfitting

First of all I take this opportunity to thank you about your library. It's been great and of great help!
2nd. I'm getting overfiitting. Around 5000 epochs the Current Error starts to rise so training the net is not useful anymore and unless I put a max iterations it will keep on forever.
My question is... is there an easy way of using early stop or another anti-overfitting/regularization technique? (Although the library is very well documented I cannot find anything of the sort).
Thank you again.

That's great to hear, and all feedback is very welcome!
As a first step, have you tried applying dropout? From my personal experience, when using dropout, I would stick with a momentum learning algorithm.
If that fails, it is not uncommon to keep track of previous fitness scores and weights, in order to pick the best weight set.

Thank you for the quick response.
Great, I haven't noticed the dropout option before, my bad. I'll give it a try.
Thank you!

Ok, it did helped a lot... before I reached to 0.24 MSE before it started growing again and with 50% dropout I reach 0.17...
Anyway I did change the library to apply an early stop techinique as well. Your code is very well written and it was easy to read.

That's good news. As far as I recall, the suggested dropout factor is even higher than 0.5
Adding an early stopping technique to the library sounds interesting. If you feel up for it, you are very welcome to open a pull request and I will review it

I used 0.5 because I found a similar paper of a guy that did that but I'll make a monte carlo now because I have some time left.
I have my hand in tomorrow, after that I'll make a pull request to add the early stop, sounds good!


How

I have download it，but I can‘t find the setup installer

Yeah there is no .lvproj and therefore no build spec.  @eatondan was that intended?


Fetching submission context from cloudflare fails

When fetching your presentation_submission context ( https://identity.foundation/presentation-exchange/submission/v1 ) from our server, the request fails, as it gets stuck in the cloudflare bot filter.
Could you consider not hosting the context on cloudflare, but on a more machine accessible location?

I'm pretty sure all DIF specs are published via GitPages, and I'm not sure how we would publish @Context files otherwise... could we get more debugging info? maybe a curl output or some kind of log?
@OR13 - would you recommend pre-loading/document-loader best practice in this case, or some kind of caching proxy?

It fails on preload into cache. Workaround would be to hard code the context into cache, but i think a context should still be resolvable in any case.
curl -v https://identity.foundation/presentation-exchange/submission/v1
* Expire in 0 ms for 6 (transfer 0x5593b8220c10)
* Expire in 1 ms for 1 (transfer 0x5593b8220c10)
* Expire in 0 ms for 1 (transfer 0x5593b8220c10)
... x100
* Expire in 3 ms for 1 (transfer 0x5593b8220c10)
* Expire in 3 ms for 1 (transfer 0x5593b8220c10)
* Expire in 4 ms for 1 (transfer 0x5593b8220c10)
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Expire in 149994 ms for 3 (transfer 0x5593b8220c10)
* Expire in 200 ms for 4 (transfer 0x5593b8220c10)
* Connected to identity.foundation (<IP_ADDRESS>) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: C=US; ST=California; L=San Francisco; O=Cloudflare, Inc.; CN=sni.cloudflaressl.com
*  start date: Jun  6 00:00:00 2022 GMT
*  expire date: Jun  5 23:59:59 2023 GMT
*  subjectAltName: host "identity.foundation" matched cert's "identity.foundation"
*  issuer: C=US; O=Cloudflare, Inc.; CN=Cloudflare Inc ECC CA-3
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x5593b8220c10)
> GET /presentation-exchange/submission/v1 HTTP/2
> Host: identity.foundation
> User-Agent: curl/7.64.0
> Accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
* Connection state changed (MAX_CONCURRENT_STREAMS == 256)!
< HTTP/2 403
< date: Thu, 16 Mar 2023 17:50:43 GMT
< content-type: text/html; charset=UTF-8
< cross-origin-embedder-policy: require-corp
< cross-origin-opener-policy: same-origin
< cross-origin-resource-policy: same-origin
< permissions-policy: accelerometer=(),autoplay=(),camera=(),clipboard-read=(),clipboard-write=(),fullscreen=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
< referrer-policy: same-origin
< x-frame-options: SAMEORIGIN
< cache-control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< expires: Thu, 01 Jan 1970 00:00:01 GMT
< server-timing: cf-q-config;dur=7.9999990703072e-06
< report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=DvrQ5viNYkpk4JkJ34VE0UJRHQaXfy3ei7dTK%2FkW%2BK%2FFxnl9nXvj7TBxErw6h4NTs0uAfJ0vF4pgE82M4DOGHqC19QClhdxaxydyLE0rtQ0Tl7pGikUh2ZDy2nW4T2rHQ%2BvGBSVM"}],"group":"cf-nel","max_age":604800}
< nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
< server: cloudflare
< cf-ray: 7a8ed710df548ff4-FRA
< alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
<
<!DOCTYPE html>

    <title>Just a moment...</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    <meta name="robots" content="noindex,nofollow">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <link href="/cdn-cgi/styles/challenges.css" rel="stylesheet">

            identity.foundation

            Checking if the site connection is secure

                        Enable JavaScript and cookies to continue

            identity.foundation needs to review the security of your connection before proceeding.

        <form id="challenge-form" action="/presentation-exchange/submission/v1?__cf_chl_f_tk=LouclF6vdo7g4k0MZH835oiC_kFjIdV_1woJiiQi8MQ-1678989043-0-gaNycGzNCPs" method="POST" enctype="application/x-www-form-urlencoded">
            <input type="hidden" name="md" value="GyKw0c7phPrzTI8UQAHW06wiJY5as6DuYjatWGOSHGE-1678989043-0-AZL-luTdYTnPL9s1A_YfD3TgitLYT_J9yvtJVzAuCRt_-cjVUlAVPTaLwB7De82BigmgDcybF5CKhfmd81r1RYYZegfDNdyK3g1kPr8yeI060WYwDIPCYSUuOOP2MT_aZ_aJxLOB51COI4V7QHK7UemcLIGaW6HC7XgTVafYxIzeLjGDMtwmj0TQG63BBez18u5ZJv89X39NNN-v5HJNiHTdPqg-fVQ2TshOylV-iOh9YRivw_4Um9Az9zchn-flqbUKacSLDdj9cZ2vjrEbjq-cCRKw7HpkigTuk9mrC9VBGknqUDf8Gph4AHz5pIyj2T6H3j57EAL48bf4gWCVu_l5JJzuEbur_H1GHex9jNeJau98o2H0T_eQHm2DTJKGcbCaSi1xo3kMhGy7RWBDXoz8FkJs0ifyw-D_1TRLrx-C6UNlQRtYXa2Bi-KqBHa5UcC1wBmmNR6CDhEY7Q6CbdECv0h8R6ZW4iB8eFCCPuKeKX0abZrT-OHQ6ZByaUruvOEcAQgK6JRdjIdD6ybH3B-nNSz4pvUBOBrVjeCK2f1SNjftWbOdNyfXtE17XLM_qZI8809en8ZhdIu-KKfnS9w8v_Ty4IF7NpG2yBxpMBnB4x9nnvuiKR6NyitVbohcLQrvBETG_w_vVf7LsxBZoIsvcNU1Jz9Q7kuck_-WsiJwm70gK5pERIskhYrPYNbX3duO_JDWU4SU6p9OS5JIRlpqFNBUuF2cmdol__WOAtkuTmUoDYSxdjATC43x96C11q-qH2Gw96wpudnur3KlDclcZoa03bb2Wo-du6S6Fba0nxMR0s5i381T4s88RjdwTl_tgN5jPmp3SIQypva0YeXHTuUXpkpfp0kEmwZGwVdUuKtFRB4xEqrDMVH1ZVTGhtZ1XJJfAej62DibNmX03YLuqMTwbgrIOmW2cWrly5_CC2uvzF9yftOaC7mtjTYyOQgouykz_rw0EpKzjFqITJlgJRtFahhgs55fc1HsxNGc5lzNcvIk7ckdGpFrQwnX8YsJYqrID6mJIHd9H0I4Ctku07VKmjVAdErzmURg2qnlbZz35pFCjo7oHWPrrLssczF4I7ydH71Xo1rnrRoPWgHFIByr3urbo7Kp-hfqqJKDXisW6ZkCeGlbcMi5bghBz1FKlodNEbSxaaWzE-A8JXw4WYobYKheYhUQeCBv62fVj3jaVguEKwOlClEL5XcgsZqBWNXV9m5TirEfk0cyuULDXE0ffqMkdaUEzep6HRZWp5PydlO7MtTjejF92CxNoKe9YZCsBe8rc1NdaNZMo3YuayEdOU2Kt4XQNHdy61BlzWibAwMuf0usuT9MTZqIin9jDQIt9KYi8NjzfUKb_dVRnrdu5TOgAem-Gre3xV-i5x-gkDH8SIKrc1tkLiMENh847hELy6CbT-MhpcOy_0UgCDwnE_Hztirua0fp9HnE30bLCkhnnnj4hGRvu5SXkHlBMG_nA_JA9klaOlqgbhAKtVEr01ClWJ7byJIFSok71fhzjJTZGSBcPzFNoPBWwwHX-yJsmRralyeya-kG7X9Ke9rTBaR2oSnCFPHEXvdTqLQabkEPMGG4eYRs2N9TJ4pCT6XNArpsyEB_RTjaiOM_RxnW0_zoH-fdd6gCiAQOi0sj3BMVM5QYp5bkA5C5gmuk3b-cDov6t5z45TckIhs-TWmiJFncpPBgYbsywPfF3KWhvbgjmW3ADUxjs6-EDl8z4-aYLeDSQnQzC5e8EByyNwUBLkOerlMnnuzrRKXj8FMtou5Xu04F9l1HO6DXbmQjqgQBKlXNrnfaxxNb9i5a4yvczWIrBQP6aki66NsYFtvzjjZw3FiH0-XSKrqyYnZN2CHBNRj-3w-Oa1gy-LtIBoysHI_EzoINa31Pq5k5fzF2CsihwkXdtKuc4fBhhotZiBG5lavXvJrMnX78bgB-TtPUaEFlBP5lfQEMdqEi0bevsZEaRw1s25rnHDH-FjROf0FSPB4BzjpYJHs9qneqzmsojYSX4JOpeMO12M0fShtu-iJKsJbasbJHiDcRQgt2ddYIT6gVwcL1lwmKvRJaq7eq_vwXsd3EaKcMP1noa6MKHfCbw4tQIVtePO1WTzjXEbGyn1NeUHmLFqaAJpI0E9AShWhTHIxfJYiPK0-s6mQR9YLdJAaVwyUFly9QANaE3aXAlMyhmihxWQxDK1RpJiM9iDdvQR2LtRJJVJbpg-jCnVdhSTi9V114OlBbkw">
        </form>

Ray ID: 7a8ed710df548ff4

Performance & security by Cloudflare

* Connection #0 to host identity.foundation left intact

On my machine:
❯ curl -v https://identity.foundation/presentation-exchange/submission/v1
*   Trying 2606:4700:3031::ac43:8ca4:443...
* Connected to identity.foundation (2606:4700:3031::ac43:8ca4) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/cert.pem
*  CApath: none
* (304) (OUT), TLS handshake, Client hello (1):
* (304) (IN), TLS handshake, Server hello (2):
* (304) (IN), TLS handshake, Unknown (8):
* (304) (IN), TLS handshake, Certificate (11):
* (304) (IN), TLS handshake, CERT verify (15):
* (304) (IN), TLS handshake, Finished (20):
* (304) (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / AEAD-CHACHA20-POLY1305-SHA256
* ALPN, server accepted to use h2
* Server certificate:
*  subject: C=US; ST=California; L=San Francisco; O=Cloudflare, Inc.; CN=sni.cloudflaressl.com
*  start date: Jun  6 00:00:00 2022 GMT
*  expire date: Jun  5 23:59:59 2023 GMT
*  subjectAltName: host "identity.foundation" matched cert's "identity.foundation"
*  issuer: C=US; O=Cloudflare, Inc.; CN=Cloudflare Inc ECC CA-3
*  SSL certificate verify ok.
* Using HTTP2, server supports multiplexing
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x14c80ec00)
> GET /presentation-exchange/submission/v1 HTTP/2
> Host: identity.foundation
> user-agent: curl/7.79.1
> accept: */*
>
* Connection state changed (MAX_CONCURRENT_STREAMS == 256)!
< HTTP/2 301
< date: Thu, 16 Mar 2023 18:44:55 GMT
< content-type: text/html
< location: https://identity.foundation/presentation-exchange/submission/v1/
< access-control-allow-origin: *
< expires: Thu, 16 Mar 2023 18:54:55 GMT
< cache-control: max-age=600
< x-proxy-cache: MISS
< x-github-request-id: 3EFC:4AF0:122A965:18974DB:641363A7
< accept-ranges: bytes
< via: 1.1 varnish
< age: 0
< x-served-by: cache-dfw-kdfw8210032-DFW
< x-cache: MISS
< x-cache-hits: 0
< x-timer: S1678992296.933003,VS0,VE41
< vary: Accept-Encoding
< x-fastly-request-id:<PHONE_NUMBER>b637f4165dd0dc4ff369ee00d8ef50
< cf-cache-status: DYNAMIC
< server-timing: cf-q-config;dur=5.9999999848515e-06
< report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=IX4fSKGC5d0dtnnF1bKlGlpk39AjHspaeb9HKw0uk832YvUedvVRna7t5Tq%2FtYx1ZSdpAE63%2BEZx3mwoW27Ub%2F%2Fr2WKT%2F4H9jMwoKPjEwZjSyYM0XcPgY%2BYDWYSM%2BXz47MLnBwy2NuUdqtxms66m9yJg"}],"group":"cf-nel","max_age":604800}
< nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
< server: cloudflare
< cf-ray: 7a8f26797bfc2e73-DFW
< alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
<

<title>301 Moved Permanently</title>

301 Moved Permanently

nginx

* Connection #0 to host identity.foundation left intact

At any rate, I am not DIF tech support, I can't help resolve GitHub Pages hosting, or DIF Cloudflare account related issues.

True that. This is why i'm a big fan of ld context on IPFS ;)
https://github.com/digitalbazaar/jsonld.js/issues/512

Haha, of course not, Orie, was just wondering if you had guidance on the resolvability requirements and/or preloading of such things.
curling from here in Germany gets me a response that looks just like Orie's (i.e., 301), not like OP's, although in a browser the same URL returns:

Maybe as a quick fix I could just upload this particular document to public IPFS for you? :D

Maybe DIF should tack on an IPNS verificationMethod to its did:web... 💃

Maybe as a quick fix I could just upload this particular document to public IPFS for you? :D

Nice Idea :D i already did and replaced the URL with ipfs://QmRSE16DGVRzNdzEeoA14nsG9iLZzHUz9sbYPqaZncCEJ1
Works/verifies like a charm now :)

Maybe DIF should tack on an IPNS verificationMethod to its did:web... woman_dancing

As mentioned above, we are about to switching to reference contexts via IPFS mostly as this mitigates any issues with versioning, availability and integrity
https://github.com/european-epc-competence-center/vc-verifier/blob/main/api/src/services/documentLoader/index.ts#L53

I made a small PR to the (i guess) most used JSON-LD library by digitalbazaar, for those interested in the topic :)
https://github.com/digitalbazaar/jsonld.js/pull/513

This is a DIF-wide issue; need to determine where to track.

TODO: someone with permissions move this to spec-up repo


Data table cells are not scaling

Do you want to request a feature or report a bug?
Bug
Bug Report
In version 1.0.0-beta.6 the cells of the data table were scaling if the value was too large. With the new update, they are not scaling anymore.
Screenshots or link to CodePen/Plunker/JSfiddle
http://plnkr.co/edit/0nxFILC6fYpiAdyMB2b9?p=preview
What is the expected behavior?
If a value is too large, the cell should become larger.
What is the motivation / use case for changing the behavior?
For a good looking and structural table, a scaling cell is needed.
Which version of Angular and Material, and which browser and OS does this issue affect?
Angular: 4.3.6
Material: 2.0.0-beta.10
Covalent: 1.0.0-beta.7
OS: Windwos 7
Browser: Chrome 60
Did this work in previous versions of Angular / Material?
Yes with:
Material: 2.0.0-beta.8
Covalent: 1.0.0-beta.6

I think it is the same as https://github.com/Teradata/covalent/issues/868

Closing in favor of #868 since its a dup


198236 trib to Kitwanga River

[x] discuss downstream crossings not assessed
[x] elev_min in text should be elev_site

because this is a steeper site with gradient at time of reporting in 2023 logged as > than the steelhead rearing cutoff (see methods) it is showing as haveing no upstream ST habitat.  However, our measurements of gradient indicate it is under 7.5% which closer aligns to the current modelling.
We should highjack the cost estimate and summary tables so that there is a cost estiate and the reporting reflects taht the stream could support these species

fixed this issue by changing upstream_habitat_length_m to 2400 in habitat_confirmations_priorities.csv.
The amount of st_rearing_km in bcfishpass is 2.4km which is used to get upstream_habitat_length_m(https://github.com/NewGraphEnvironment/fish_passage_skeena_2022_reporting/blob/main/scripts/01_prep_inputs/0100-extract-inputs.R#L688)
Then habitat_confirmations_priorities.csv is used to build cost estimate tables here https://github.com/NewGraphEnvironment/fish_passage_skeena_2022_reporting/blob/main/scripts/tables.R#L1146C1-L1161C162


Modify reader API to fit the custom parsing type.

Modify reader API to fit the custom parsing type.
Modify tests.

This task was finished.


v6.0.2

[x] I have followed (at least) the PR section of the contributing guide.

Would be awesome to merge #43537 to fix this crash in our prod website #14422

Would be awesome to merge https://github.com/mui/material-ui/pull/43537 to fix this crash in our prod website https://github.com/mui/material-ui/pull/14422

Done, @brijeshb42 can you update the branch?

Already updated.

User blocked, same behavior in https://github.com/microsoft/PowerToys/pull/33136#pullrequestreview-2213955666 🤷♂


add await for Pipeline class

TLDR:
without the fix this example:
my_key: str = "test_1"
async with redis_client.pipeline() as pipe:
    await pipe.watch(my_key)
    pipe.multi()
    await pipe.set(my_key, 0)
    await pipe.execute()

fails with something like this:
....
  File "aioredis/client.py", line 879, in initialize
AttributeError: 'Pipeline' object has no attribute 'single_connection_client'

Little bit more details:
The pipeline (pipe) is redis-py's implementation of redis transaction (https://redis.io/topics/transactions).
In terms of aioredis implementation:
Pipeline is a child class of Redis class
When you try run pipe.set() you actually run method from parent (Redis)
inside of this parent's method (pipe.set()) special function execute_command() is executed
This execute_command() is overridden in child Pipeline and looks something like this:
def execute_command(bla):
        if bla:
            return self.immediate_execute_command()
        return self.pipeline_execute_command()

The problem, is that immediate_execute_command is async function (async def ...) and pipeline_execute_command is NOT (def ...).
Developers didn't wanted to have inconsistancy in returns (sometimes awaitable, sometimes just value), so decided to make pipeline_execute_command to return self, so when you execute await pipe.set() you actually execute await. But await is not defined in child class (Pipeline), therefor parent's (Redis's) method executed, which in turn executes self.initialize() which reference self.single_connection_client which is not defined in child subclass (Pipeline).

@stanislau-arkhipenka is this a duplicate of #1027?

@Andrew-Chen-Wang yeap, seems this solves pretty much same issue.
In #1027 author sets single_connection_client to False, so no attribute error will occure, when initialze is called. I don't particularry like it as Pipeline should not have a context on connection, as it operates only with connection pool.
Nevertheless both solutions will work :)

@stanislau-arkhipenka, I think your solution is better myself. Perhaps you can use the test from my https://github.com/aio-libs/aioredis-py/pull/1027 PR to cover the code?

Awesome. Thanks for checking out each other's PR. @stanislau-arkhipenka adding the other PR's test would be great!

Also added other PR to CONTRIBUTORS as I basically ctrl+c ctrl+v the test


Compile prop accessors to delegates for faster read of values

More complicated than it looks.

Can't do it properly without making new generic type arguments on Accessor. Not worth it right now especially since these happen in the context of a db query.


adds QuoteNumber param to getQuotes

@Arcath @SidneyAllen
GET https://.../Quotes/{identifier} only works with uuid quote ID unlike PurchaseOrders which accepts either PO Number or uuid.
QuoteNumber must instead be used as parameter GET https://.../Quotes?QuoteNumber=QU-0001.
https://developer.xero.com/documentation/api/quotes
https://developer.xero.com/documentation/api/purchase-orders
This PR removes getQuoteByNumber and adds QuoteNumber as a parameter to getQuotes.

Thanks, I'd assumed quotes worked the same as purchase orders.


Update index.md

Hi Huang, this its the change for question 3 that you can accept.

Hi Huang, this its the change for question 3 that you can accept.


Calling 'stand' and 'look to' causes Wheatley to hang rather than ring

This appears to be a bug with the WaitForUserRhythm class, since this bug only happened after it was made the default.

Is this just when Wheatley rings all the bells? Because I've found a cause of that one

It happened when Wheatley was ringing 9/10 to Maximus - but it's happened reliably every time I've rung with it.
It seems to me that this is being caused by some state not getting reset properly when Look to is called on the WaitForUserRhythm.  However, that code is your stamping ground - do you want to be assigned this issue?


How can we test the App with dependency injection?

Hi,
I've been impressed with the ASP.NET Integration Tests which allow you to have a web server in memory to test against.  I was wondering if it is possible that something like that exists here?
I'm hoping for the ability to create an instance of the function (maybe from a factory so singletons can be re-used) and then triggering the function somehow, maybe by sending http requests to the function app similar to the ability to locally send http requests to functions that are not http triggered functions.
I want to test the dependency injection loads my function properly, as well as the function working as intended.  I'm not too bothered about testing it on the infrastructure (like deploying it and seeing if it works).
Thanks
Chris

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

ID: 5786402e-9d88-5de0-607a-1c2a143af006
Version Independent ID: 15368d1c-b22e-7eb2-413f-cc0d41d2b909
Content: Use dependency injection in .NET Azure Functions
Content Source: articles/azure-functions/functions-dotnet-dependency-injection.md
Service: azure-functions
GitHub Login: @craigshoemaker
Microsoft Alias: cshoe

Hi @chris31389 - Thank you for your feedback! We will review and update as appropriate.

@mike-urnun-msft Hi, have you managed to have a look at this request?

We do this today internally: https://github.com/Azure/azure-functions-host/blob/dev/test/WebJobs.Script.Tests.Integration/TestFunctionHost.cs.
@jeffhollan took this and broke it out into a separate repo here: https://github.com/jeffhollan/functions-test-helper. But I'm not sure that this has been kept up-to-date and may not function exactly like our host.
Internally we've talked about releasing and maintaining this, but it hasn't happened yet. I've gone ahead and created an issue to track this. https://github.com/Azure/azure-functions-host/issues/4862
In the meantime, your best bet is to use Jeff's repo or our internal one as a guide to get this set up yourself.

Thanks @brettsam! We will now proceed to close this thread. If there are further questions regarding this matter, please refer to the resources that Brett shared above.


Way to read HTTP Request prior to sending

Using CustomizableOperation in theory we can access the HTTP Request, both for reading, or mutation prior to "send"ing the operation.
However a minimal example shows that the request object doesn't actually have the full request that will be sent to the AWS endpoint.
Here is a minimal example I used:
async fn helloworld() -> Result<(), Error> {
    let shared_config = aws_config::from_env().load().await;
    let client = Client::new(&shared_config);
    let req = client.head_bucket()
        .bucket("example-bucket")
        .customize().await?;
    println!("{:#?}", req.request());
    let resp = req.send().await?;
    println!("{:#?}", resp);
    Ok(())
}

and here is the output of printing the request object:
Request {
    method: HEAD,
    uri: /,
    version: HTTP/1.1,
    headers: {},
    body: SdkBody {
        inner: Once(
            Some(
                b"",
            ),
        ),
        retryable: true,
    },
}

I believe that is because the actual endpoint, URI, headers, etc. are filled in later by the various Services and Layers here:
https://github.com/awslabs/smithy-rs/blob/d75382789a3d58e6c832d59dd0cc7cce90477a58/rust-runtime/aws-smithy-client/src/lib.rs#L180-L193
Is there a way to read the full request headers, method, URI, and body prior to sending the request?

Is there a way to read the full request headers, method, URI, and body prior to sending the request?

There will be quite soon. We're going to release an update that changes the internal implementation of the client to easily enable this use case.
Until then, you'd have to write a custom middleware to do this. You'd need to familiarize yourself with the low-level smithy client builder. We don't have guides on this other than the docs in that module.
May I ask what your use case is? Why is it important for you to inspect the request before sending it?

There will be quite soon. We're going to release an update that changes the internal implementation of the client to easily enable this use case.

Awesome! great news, thank you.

May I ask what your use case is? Why is it important for you to inspect the request before sending it?

I'd like to use the high level types and convenience builders of the SDK within a wasm environment that does not have access to networking and pass the HTTP request as an object to the host environment such that the host can accept/deny a request prior to sending it. The idea is to allow users to write rust code that gets executed in a wasm environment and declaratively describes the HTTP request that is to be made.

I think with our new implementation of the client (not yet released), we'd want to handle this with a custom connector that would delegate to the "host environment".
The new Connector trait is defined thusly:
use std::fmt;
use std::future::Future as StdFuture;

pub type HttpRequest = http::Request<SdkBody>;
pub type HttpResponse = http::Response<SdkBody>;
pub type BoxError = Box<dyn std::error::Error + Send + Sync>;
pub type BoxFuture<T> = Pin<Box<dyn StdFuture<Output = Result<T, BoxError>> + Send>>;

pub trait Connector: Send + Sync + fmt::Debug {
    fn call(&self, request: HttpRequest) -> BoxFuture<HttpResponse>;
}

That way, you can still benefit from retries, timeouts, and more. Think about how you might adapt your "host environment connection" to that interface and keep an eye out for the next version of the SDKs.


Remove all class attributes from CookieConsentType and put it inside the template.

I just wanted to change (interchange) the classes of the two (simplyfied) buttons. Since these are coded inside the options array of the form inside the builder I had to write a FormTypeExtension:
<?php

namespace App\Form\Extension;

use ConnectHolland\CookieConsentBundle\Form\CookieConsentType;
use Symfony\Component\Form\AbstractTypeExtension;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\FormBuilderInterface;

class CookieConsentTypeExtension extends AbstractTypeExtension
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->remove('use_only_functional_cookies');
        $builder->remove('use_all_cookies');

        $builder->add('use_only_functional_cookies', SubmitType::class, ['label' => 'ch_cookie_consent.use_only_functional_cookies', 'attr' => ['class' => 'btn ch-cookie-consent__btn ch-cookie-consent__btn--secondary']]);
        $builder->add('use_all_cookies', SubmitType::class, ['label' => 'ch_cookie_consent.use_all_cookies', 'attr' => ['class' => 'btn ch-cookie-consent__btn']]);
    }

    public static function getExtendedTypes(): iterable
    {
        return [CookieConsentType::class];
    }
}

Not that this was hard or so - but I think, it would be much cleaner when classes are set ONLY inside the templates for easy overwriting. Not in two different places.
If you want I can open a pull request for that. If it's welcome?

Ah I see. Inside the template it would be kind of messy to conditionaly attach it inside the for loop.
Hm, what do you think?


Allow input widgets to appear wherever the are in a terminal session

In your demos, the input widgets clear the screen and appear at the top. But for many applications, it's better to be able to show the terminal session up to the point where the input occurs, and have the input area on the next line.
I'm not sure whether there's some way to accomplish that already with tui-textarea, or whether this is a feature request. If there's a way to do it I suggest adding it to your examples!

This is a feature of Ratatui itself. Configure a terminal with an Inline or fixed viewport and don't enter the alternate screen. Check the inline and ratatui-logo examples for a demonstration of how to achieve this.

OK, thank you for answering such a basic question. I'll go check out ratatui!


Feature Request: Support RFC3339 as input for fields of type DATE and MONTH_YEAR

Summary
A majority of systems use RFC3339 date formats (for example, 2024-04-13T03:43:11Z) to exchange data with each other. When creating a field of type DATE or MONTH_YEAR, support the ability to parse values using the RFC3339 format. Data loss would be acceptable.
Use cases

Passing data from other resources (e.g., acme_certificate) in Terraform, indicating the expiration date.

Proposed solution

Update the implementation to detect whether the value is in RFC3339 format, and if so, convert it to the appropriate format that 1Password understands.
Update documentation to reflect input requirements so we don't have to go on a wild goose chase. The current documentation around fields and their format doesn't reference the API docs, which causes some churn when we run into errors.
Provide additional examples demonstrating how dates are handled in the provider.

Is there a workaround to accomplish this today?
Within Terraform, one can use (formatdate)[https://developer.hashicorp.com/terraform/language/functions/formatdate] to achieve this.  However, this causes the onepassword_item to be modified even when nothing has changed. This causes other challenges for resources dependent upon onepassword_item.
field {
      id = "certificate_not_before"
      label = "Expires"
      type = "DATE"
      value = formatdate("YYYY-MM-DD", acme_certificate.certificate.certificate_not_after)
    }

The value being:
# Returns "2024-04-13T03:43:11Z"
output "certificate" {
  value = acme_certificate.certificate.certificate_not_after
}

References & Prior Work

RFC3339
acme_certificate

Thanks for raising!👍 We'll consider this for future releases!


🍒 Cherry pick PR #6240 to staging 🍒

🍒 Cherry pick https://github.com/Expensify/App/pull/6240 to staging 🍒

🚀 Cherry-picked to staging by @OSBotify in version: 1.1.14-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to production by @Jag96 in version: 1.1.14-4 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


trouble downloading it

i dont know how to get the hack working, and also, do you get all of the books?

I have not added a way to give all of the Blooks yet, though it is being worked on.
++++++++++++++++++++++++++++++++++
To download the hack you must click the code button and then click, download zip.

Second you must extract the files. Ignore all the file options and just click extract.

Third you must install python from this link: Python Download
Pick the python type matching what you need:

Fourth you need to copy the location that the Blooket Hack files where extracted.

Fifth you must open command prompt and type cd <Location you copied>, Like so:

Then press enter for it to work.
After all that type python main.py and enter the required information for the cheat to work.

Then your done.
If you need any help just let me know.

I ended up getting this message

Good to know, the install commands are listed on the readme.md file. Hope that helps.


Use HEAD rather than GET for StockSnap::_get_filetype

Is it also possible to change the .get to a HEAD request? https://github.com/WordPress/openverse-catalog/blob/cc7322b8916e604a9f7fd1a5f908677f9339ac8d/openverse_catalog/dags/providers/provider_api_scripts/stocksnap.py#L158
That may be something for another issue.
Originally posted by @sarayourfriend in https://github.com/WordPress/openverse-catalog/pull/628#pullrequestreview-1050925651

We should probably add a .head method to the DelayedRequester so all the logic we have there can be reused!

Since we're only getting content from the response headers, my assumption was that a HEAD request would be better for this case because we neither need nor want the message body.

I remember getting different response headers when using the HEAD method so we have to be cautious that they're indeed interchangeable for the script's purposes.


Go mod caa 0.6

Post 0.6 release, bump the cloud-api-adaptor go mods to reference the released version

@liudalibj @genjuro214 - With the cloud-api-adaptor bump, which also brings some kubernetes module version bumps, we are getting some errors in the csi-wrapper:
volumes/csi-wrapper/pkg/peerpodvolume/controller.go:50:37: Error return value of `(k8s.io/client-go/tools/cache.SharedInformer).AddEventHandler` is not checked (errcheck)
	informer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{

I wondered if you had any time to look into those and we can get them into into this PR?

It looks like this commit changes the return value of the function.
https://github.com/kubernetes/client-go/commit/ecdc8bf7296ca836be500025e53a1b27506e3a6c
We just ignore the lint error in the CSI wrapper for now. #849
So, I think we can just ignore return value like this with a TODO comment.
// TODO: error check
_, _ = informer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{

So, I think we can just ignore return value like this with a TODO comment.
// TODO: error check
_, _ = informer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{

Thanks very much for the info, I'll give this a try and see if any other issue crop up like this


Add a function to call gRPC stubs and wrap errors

The new function call_stub_method() simplifies the common error wrapping when calling stub methods, so errors are automatically converted to ApiClientErrors. It also checks that the client is connected and raises an appropriate exception if it is not. Finally, if a transform function is provided, the response will be automatically transformed too.
This PR also adds an example to the BaseApiClient documentation, including using the new call_stub_method() function.

Not sure what's going on with the DCO app that is not running the check :unamused:

Updated with @shsms suggestion.


About the data set.

It seems that little different from the original code by TF1, the origin code using the split train, valid and test set separately, but in this implement, the all set had been mixed and resplit. I try to use the three sets directly but it will make the model couldn't be trained. Sorry for the bother, but it really make me curious.

I don't think using the original split will make the model unable to train. You need to check your code.

I found it also, and I changed to the original split, it run success, but F1 and acc decreased by 1.5% compare to original paper， is it some difference between tensorflow/pytorch

I found it also, and I changed to the original split, it run success, but F1 and acc decreased by 1.5% compare to original paper， is it some difference between tensorflow/pytorch

Yes, it because I didn't do exactly the same as the original code:

I initialized all weight by zero, instead of truncated normal distribution.
In the LSTM part, the author did the dropout on hidden state, but I did it on the cell itself. It because PyTorch didn't support that yet, you may check here.

I found it also, and I changed to the original split, it run success, but F1 and acc decreased by 1.5% compare to original paper， is it some difference between tensorflow/pytorch

Yes, it because I didn't do exactly the same as the original code:

I initialized all weight by zero, instead of truncated normal distribution.
In the LSTM part, the author did the dropout on hidden state, but I did it on the cell itself. It because PyTorch didn't support that yet, you may check here.

Thanks for your kind answer, I fix my code and it worked. By the way, I would like to know which part has been initialized by zero.

I found it also, and I changed to the original split, it run success, but F1 and acc decreased by 1.5% compare to original paper， is it some difference between tensorflow/pytorch

Yes, it because I didn't do exactly the same as the original code:

I initialized all weight by zero, instead of truncated normal distribution.
In the LSTM part, the author did the dropout on hidden state, but I did it on the cell itself. It because PyTorch didn't support that yet, you may check here.

Thanks for your kind answer, I fix my code and it worked. By the way, I would like to know which part has been initialized by zero.

I may be incorrect, they might not be initialized by zero, but what I want to say is that I didn't do any of the work on the initialize part(except the "early fusion" which described in the paper). So all of the layers are initialized by PyTorch's default setting, which may differ from the original code.


Update AbstractRegistryFactory.java

[bugfix] 创建registry错误时输出错误日志
What is the purpose of the change
Brief changelog
Verifying this change

[x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Format the pull request title like [Dubbo-XXX] Fix UnknownException when host config not exist #XXX. Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Run mvn clean install -DskipTests=false & mvn clean test-compile failsafe:integration-test to make sure unit-test and integration-test pass.
[ ] If this contribution is large, please follow the Software Donation Guide.

Codecov Report

Merging #7528 (2e00127) into master (790dfce) will decrease coverage by 0.52%.
The diff coverage is 50.00%.

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

What scene will be abnormal?

when i config a registry but havent add a dependency or cofig for a not exist registry, the exception does not have a log, every thing seem ok from log,but it does not work property actually

It just add log info than before, it's not necessary.
编码约定
抛出异常的地方不用打印日志，由最终处理异常者决定打印日志的级别，吃掉异常必需打印日志

when i config a registry but havent add a dependency or cofig for a not exist registry, the exception does not have a log, every thing seem ok from log,but it does not work property actually

Yes, the log didn't log this situation. It should be enhanced.
But the code can't fix it. The registryFactory is adaptive, the catch code block can't cover it.

when i config a registry but havent add a dependency or cofig for a not exist registry, the exception does not have a log, every thing seem ok from log,but it does not work property actually

Yes, the log didn't log this situation. It should be enhanced.
But the code can't fix it. The registryFactory is adaptive, the catch code block can't cover it.

Template Method Pattern is used in the registryFactory, i think it is the proper place to log error message.if other classes implement RegistryFactory and override the adaptive method shold log the message itself.

Template Method Pattern is used in the registryFactory, i think it is the proper place to log error message.if other classes implement RegistryFactory and override the adaptive method shold log the message itself.

Hi, If you config zookeeper registry without  zookeeper-registry dependency, it will throw exception before AbstractRegistryFactory.getRegistry(URL url). You can debug the code at your local machine.


jQuery conflict

Displayjs is awesome. But it doesn't seem to play nice with jQuery. Especially jQuery GET and POST.

That's fine.
I couldn't reproduce the error.
Thanks though. Love DisplayJS!
On Fri, Feb 2, 2018 at 6:29 PM Arthur Guiot<EMAIL_ADDRESS>wrote:

It's been more than 2 weeks with no answers. I'll close this issue for the
moment. If you answers to this message, I'll reopen this issue.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/arguiot/DisplayJS/issues/46#issuecomment-362768522,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAgWjqW-MpCCEh89l5rky7fQQJEsI6tcks5tQ8R9gaJpZM4RgxBS
.


fix: send datasync on remove fs events

Looks like during a refactor, we accidentally removed the "meat" of the remove handler.
In K8S, we never get write events, just remove. It's necessary to send the data for these as well.
Also extracted some duplicated code into a func.

Bypassing branch protection in order to release this bug fix because updates don't work in Kubernetes environments that are in file watching mode.


Add support for pre-population of Contents.swift

I've modified the script to support the pre-populatation of  the Contents.swift from input passed via stdIn.
This means that you can essentially start with a standard template e.g.
cat source.swift | playground

Running playground without piping input will result in the script behaving exactly as it does currently. The user will never be prompted for input.
My actual use-case for this was because I wanted to create an Automator script that passes in the selected text to the script via stdIn and creates a playground with the Contents.swift pre-populated with the selected text.
I then use this service to allow me to select source-code examples in iBooks and paste them into a new Playground. This is because iBooks on the Mac prevents copy & paste but allows macOS services to process selected text.

Which is as simple as creating the automator service above and running the updated playground script.
I've also modified the script to add the time to the filename so that a new playground is created each time. Though just thinking now about how this might be used it might be better to add an option for this.

Hey @cameroncooke! I've now rewritten playground in Swift, and added support for pre-populating the playground (using the -c argument). Thanks again for contributing and hope you like the new feature 🎉 Going to close this now. Feel free to open new PRs for any new features you'd like to see in playground.

That's awesome, nice work.


Add rpcs

Codecov Report

Merging #506 into develop will increase coverage by 0.03%.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##           develop     #506      +/-   ##
===========================================
+ Coverage    96.19%   96.22%   +0.03%
===========================================
  Files           51       51
  Lines         1525     1538      +13
  Branches       290      293       +3
===========================================
+ Hits          1467     1480      +13
  Misses          58       58

Impacted Files
Coverage Δ

packages/ckb-sdk-rpc/src/Base/chain.ts
100.00% <ø> (ø)

packages/ckb-sdk-rpc/src/Base/index.ts
100.00% <ø> (ø)

packages/ckb-sdk-rpc/src/Base/net.ts
100.00% <ø> (ø)

packages/ckb-sdk-rpc/src/paramsFormatter.ts
100.00% <100.00%> (ø)

packages/ckb-sdk-rpc/src/resultFormatter.ts
100.00% <100.00%> (ø)


Missing object definitions in reference section (version 2.1)

userSocialIdResult and newAccountDefinition have a field name "socialAccountInformation" that references "#/definitions/UserSocialAccountLogins".  This object does not exist.
"newAccountDefinition": {
      "type": "object",
      "properties": {
      ...
        "socialAccountInformation": {
          "$ref": "#/definitions/UserSocialAccountLogins",
          "description": "Contains properties that map a DocuSign user to a social account (Facebook, Yahoo, etc.)"
        }
     }

"userSocialIdResult": {
      "type": "object",
      "properties": {
        "socialAccountInformation": {
          "description": "Contains properties that map a DocuSign user to a social account (Facebook, Yahoo, etc.)",
          "type": "array",
          "items": {
            "$ref": "#/definitions/UserSocialAccountLogins"
          }
        },
        "userId": {
          "description": "The ID of the user to access. Generally this is the ID of the current authenticated user, but if the authenticated user is an Administrator on the account, `userId` can represent another user whom the Administrator is accessing.\n",
          "type": "string"
        }
      },

I noticed that there is a "socialAccountInformation" object that is not referenced by any other object.  Is that the correct type for the fields?
"witness" object contains the field "offlineAttributes" with a reference of "#/definitions/offlineAttributes" which does not exist.
"witness": {
      "type": "object",
      "properties": {
      ...
        "offlineAttributes": {
          "$ref": "#/definitions/offlineAttributes",
          "description": "Reserved for DocuSign use. "
        },

Thank you for the report.

Re: I noticed that there is a "socialAccountInformation" object that is not referenced by any other object. Is that the correct type for the fields?

Yes. Our Swagger toolchain should have renamed the object to UserSocialAccountLogins. I have filed DCM-3469

Re: missing the offlineAttributes object definition.

Yes, that is by design. We aren't exposing the capability to do offline signing except via the iOS SDK.

Compiling the generated classes gives the following errors. I looked at the json and the corresponding definitions are missing
[ERROR] : cannot find symbol
symbol:   class DocusignOfflineAttributes
[ERROR] cannot find symbol
symbol:   class DocusignSignHashDocument
[ERROR] cannot find symbol
symbol:   class DocusignUserSocialAccountLogins

Hi @roshanail , Those object definitions are reserved for DocuSign use so we don't include them in the Swagger file.

I am also having this issue, if they are reserved for docusign there should be no reference to them in the customer facing swagger.
I have had to manually edit the swagger so I can use it, and as I am not a DocuSign dev I have to make assumptions about this editing that could be incorrect.

Yes, that is by design. We aren't exposing the capability to do offline signing except via the iOS SDK.

By design? which makes the file invalid?

@LarryKlugerDS Is there any additional information about this? It's reasonable that you remove certain attributes from the swagger that are not used externally, however the fact that it makes the swagger invalid makes dev life a lot harder and can lead to days of head scratching. Should the swagger additionally have references to those definitions removed so that the swagger can remain valid?

Hi,
I've checked with DocuSign engineering. They say that the DocusignUserSocialAccountLogins issue is fixed in the latest Swagger file. Is it?
WRT to

DocusignOfflineAttributes
DocusignSignHashDocument

I will ask the Engineering group to investigate. I will also raise the general issue about providing stubs.
@InfinitySamurai  -- what tool are you using that complains about the undefined objects? As you can see from the updated Readme, the Swagger people claim that the files are Swagger compliant. (I understand and agree with you that the objects or a stub should be included.)
Note that if any of those objects are included in responses then the Swagger file won't help you decode them.

The issue still occurs for the DocusignSignHashDocument on the newest release. Path #/definitions/signHashDocument
Currently, the tooling we are using is NSwag
"completeSignHashResponse": {
      "type": "object",
      "properties": {
        "documents": {
          "description": "A complex element that contains details about the documents associated with the envelope.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/signHashDocument"
          }
        },
        "redirectionUrl": {
          "description": "",
          "type": "string"
        },
        "remainingSignatureRequests": {
          "description": "For documents that require multiple signatures, this is the number of signature requests remaining.",
          "type": "string"
        }
      },
      "x-ds-definition-name": "completeSignHashResponse",
      "description": "",
      "x-ms-summary": ""
    }

I get the same by using this tool https://github.com/ferdikoomen/openapi-typescript-codegen.

Thank you @ecdpalma , I am escalating this issue within the engineering org.


call unittests for schema

/sandbox/code/github/threefoldtech/jumpscaleX/Jumpscale/data/schema/tests/7_unittests.py

The unit tests are failing, I've opened another issue for fixing it https://github.com/threefoldtech/jumpscaleX/issues/460

Verified on 271f16fbe9cd78f220866ce13838f9817736b8d9
Now schema unittests can be run using j.data.schema.test('unittests')
But unique attributes test now is duplicated in unit tests and here, can we remove one of them?

But unique attributes test now is duplicated in unit tests and here, can we remove one of them?

I think this should be discussed in the child issue #460 to keep track of what needs to be fixed and what should be just skipped


Add docs for research

I'll fill in some more content later this week-end. If any of you beat me to it, then just merge this PR and go ahead :)


Make TIME_ZONE and LANGUAGE_CODE configurable via env vars

I want to merge this change because...
In order to make the settings more configurable, I would like to merge the following changes:

TIME_ZONE and LANGUAGE_CODE are configurable via env vars
Faker uses the specified language code so the dummy data are more accurate to the developers location

Impact

[ ] New migrations
[ ] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[ ] Removed API types, fields, or mutations
[ ] Documentation needs to be updated

Pull Request Checklist

[ ] Privileged queries and mutations are guarded by proper permission checks
[ ] Database queries are optimized and the number of queries is constant
[ ] Database migration files are up to date
[ ] The changes are tested
[ ] GraphQL schema and type definitions are up to date
[ ] Changes are mentioned in the changelog

Hi, TIME_ZONE is not meant to be changed. The API is supposed to only operate in UTC. The clients are expected to convert to the correct time zone for display/input. I know this currently affects time ranges that rely on dates alone, we're going to fix that by converting the relevant date inputs to date/time inputs.

@patrys thanks!
Just for my curiosity: Why can the API just operate with UTC?

Given a UTC timestamp, you can accurately represent that point in time in any given time zone. The opposite is not true because of daylight saving times (an entire hour is duplicated whenever the clocks are shifted back).

What about LANGUAGE_CODE, do we want to set it with env variable @patrys?

Not sure what it's used for, is it just a fallback language? If so, I think the Dashboard is a better place for it.

It's one of Django's standard configuration options: https://docs.djangoproject.com/en/3.1/ref/settings/#language-code.

We use it only for email translations as there are no other templates in Saleor now.

Aren't emails translated based on the user's language? I know we record the language each order was placed in, not sure about signup and password reset but the user's preferred language should also be used there.

Hi, the TIME_ZONE is not meant to be changed. The API is supposed to only operate in UTC. The clients are expected to convert to the correct time zone for display/input. I know this currently affects time ranges that rely on dates alone, we're going to fix that by converting the relevant date inputs to date/time inputs.

When Saleor's team plans to 'fix that by converting the relevant date inputs.. ' is the intention to then provide a configuration within the Dashboard to present everything in a configurable time zone?

Yes, the dashboard will let you pick a timezone when entering a date/time (but the value will be stored as UTC in the backend).

Yes, the dashboard will let you pick a timezone when entering a date/time (but the value will be stored as UTC in the backend).


vuforia tracking data and multiple channels

If I run multiple pages that use Vuforia, there are problems:

switching between the pages does not seem to switch which dataset is being tracked (the front one should be used).  The last one used seems to continue being used, and the data continuing to be sent to that page
if there are multiple pages that use the same target set, all pages get the data.  I guess that is fine?  I assume the determination is made based on the URL of the dataset?
deleting a page using vuforia and going back to a page that was using a different dataset crashes the app.

I understand that there are issues with shutting down and reinitializing vuforia frequently when apps switch around.  We may need to consider how to deal with this more creatively (e.g., perhaps we switch to new vuforia contexts when loading new pages, but require the user to switch which page is tracking, perhaps by adding a menu item to a page with Vuforia tracking that says "re-start vuforia" or something).  "Robust" is better than "elegant"

Now fixed. Switching between licenses stalls the app by about 0.5 seconds. Might be able to move some of the work to another thread in the future to minimize the impact on the UI.

if there are multiple pages that use the same target set, all pages get the data. I guess that is fine? I assume the determination is made based on the URL of the dataset?

Yes, it's based on the url of the dataset


suggestion(fs): make std/fs Node-compatible

The Standard Library is now on JSR, and JSR now lists the runtimes compatible with any given package. A recent request was that std/fs be made Node-compatible. We should investigate the viability of this idea and how it can be done. Ideas are welcome.

What's the goal?
Even if std/fs came to be Node-compatible, the main FS functions (e.g. Deno.readTextFile) are not Node-compatible. So if the goal is to achieve cross-platform code, this will fall short. The only way to write cross-platform code is to write Node code, and if they are writing Node code they can use node:fs functions.
Adding Node dependencies to Deno's Std just so folks can use walkSync() doesn't sound very good to me.

I saw some mentions about the std scope should change to @deno/ and i agree because deno_std is made for deno and other runtimes should worry about their std modules.
Also i guess deno team is making this @std scope only because deno doesn't have modules binded to the runtime. And i think that's a good idea.

Imho I think it would be nice. People using std are looking for abstraction and simplicity.
It's a shame we're not able to use expandGlob for cross-runtimes compatible apps without having to use a npm package or reimplementing the hundreds of lines that std already provide. Same for other useful functions like ensureDir, emptyDir or copy.
Apart from the io calls these algorithms aren't intrinsically connected to deno itself, most of the logic is about iterating over paths, states and handling errors, etc.
The low-level calls like Deno.readDir and Deno.lstat could be abstracted instead of being called directly and it would make most of fs package compatible with node/bun without much hassle.
Also I disagree on the stance we should force developers to write node code to make compatible apps, it reinforces the idea that node is the standard and encourages people to write node-only code

Let me summarize my only concern.
If I'm using std/fs (or any other Deno package) from inside Deno, I wouldn't like my app to pull Node dependencies, because I know they are not used and I wouldn't be able get rid of them.
As long as that concern is addressed, I'm fine.

Maybe we could do what std/path is doing for different OS, by splitting posix/windows + an abstraction layer that auto-detects it. Here std/fs would be split by runtime, node (+ bun, indirectly) / deno + an abstraction layer.

This current issue is specifically about node compatibility in std/fs, which I think makes sense and do bring value (and it'd be nice at the same time to add utilitary functions to read/write files without being bound by runtime.). Reading, writing and listing files with cli apps is really a common use-case, and currently it's kind of pain to deal with cross-runtimes although these seem pretty basic operations.
I do agree however that each package should not introduce node dependencies just for the sake of being compatible with it, especially when there are well-defined standards (which is not the case for fs atm).

What's the goal?
Even if std/fs came to be Node-compatible, the main FS functions (e.g. Deno.readTextFile) are not Node-compatible.

I would suggest we would add FS APIs from Deno namespace ( https://docs.deno.com/api/deno/file-system ) to std/fs like std/fs/read-file, std/fs/read-text-file, etc

If I'm using std/fs (or any other Deno package) from inside Deno, I wouldn't like my app to pull Node dependencies

Node.js now has process.getBuiltinModule(name) which dynamically loads Node.js APIs in runtime. I think we can avoid loading Node dependencies in Deno runtime by the following structure:
if (isDeno) {
  // existing code for deno
} else if (isNode) {
  const fs = process.getBuiltinModule("node:fs");
  // ... code for node using node:fs
}

What's the goal?

To clarify further on this with a practical example - if I want to write a JSR package that is compatible with both Deno and Node (and Bun), then I am essentially forced to use node:fs or I need to maintain two separate implementations. Given JSR is not Deno-first (or so it seems), I found it surprising that @std/fs only supports Deno.
In other words, the backwards compatibility with Node that Deno has makes it much easier to just write a Node-first package and Deno'll probably be able to run it. Node doesn't have Deno compatibility, and so having this Deno-only @std/fs package is kind of useless for writing cross-runtime code.
The fact that @std/fs uses Deno APIs under the hood and therefore doesn't work in Node is a very valid issue, but I don't think this is something that should end up being a problem for users of the standard library. This kind of issue is exactly what package users are trying to avoid.


Rewrite the Versioned Dependency Resolver for determinism, simplicity, and performance

Primary Problem
Today, dependency resolution depends on evaluation order of dependencies due to "dynamic occlusion":
A -> B -> D>=1
A -> C -> D>=2
A -> E
D@1 -> E>=2
D@2 -> E>=1
All packages have baseline @0.
Eval Order: A@0, B@0, D@1, E@2, C@0, D@2
Result: A=0, B=0, D=2, E=2, C=0
Eval Order: A@0, C@0, D@2, E@1, B@0
Result: A=0, B=0, D=2, E=1, C=0
This fundamentally occurs due to "occluding" versions earlier than the current "best" version along a schema. For the example above, if D>=2 has been considered, we don't consider D@1 at all.
Solution
The decision to occlude a port must be known based on "static" information. There are two obvious sets of static, up-front information: the baseline and the top-level manifest's core dependencies. While the core dependencies of the top-level manifest are static, treating them differently than feature dependencies would result in a much more confusing user experience.
Therefore, we use the baseline values as the sole occlusion. All versions referenced that compare >= the baseline are considered. Any versions less than the baseline or incomparable[1] are not considered. For every required feature, we consider the dependencies of that feature for all considered versions.

Both phases (resolve constraints, serialize plan) are now iterative instead of recursive
Substantially enhanced batching of dep_info calculations -- for a simple vcpkg.json with boost as a dependency this results in 24 fewer calls to CMake, each of which costs ~50ms on Windows (1.2 seconds of wall-clock-time savings!)
Split algorithm into a separate file from dependencies.cpp since it's unrelated to the classic-mode algorithm.
Substantially reduced the source lines by reducing duplicate logic. For example, deciding between overlays, overrides, or baselines is now handled in a single place.
Default dependencies are now handled even more clearly. The rules for defaults are now simply:

All dependencies not referenced in the top-level "dependencies" list have defaults applied.
Any dependency object without "default-features": false applies defaults.

Drive-by Improvements

Fix VS 2022 Intellisense understanding of ExpectedT::then
Fix Util::filter()
Added more error message testing
Added more tests for created InstallPlanActions
Improved version conflict message
Before:error: version conflict on a:x86-windows: baseline required 1.0.2 but vcpkg could not compare it to 1.0.1.
The two versions used incomparable schemes:
    "1.0.1" was of scheme string
    "1.0.2" was of scheme semver
This can be resolved by adding an explicit override to the preferred version, for example:
    "overrides": [
        { "name": "a", "version": "1.0.1" }
    ]
See `vcpkg help versioning` for more information.

After:error: version conflict on a:x86-windows: toplevel-spec required 1.0.1, which cannot be compared with the baseline version 1.0.2.

The versions have incomparable schemes:
<EMAIL_ADDRESS>has scheme semver
<EMAIL_ADDRESS>has scheme string

This can be resolved by adding an explicit override to the preferred version. For example:

    "overrides": [
        { "name": "a", "version": "1.0.2" }
    ]

See `vcpkg help versioning` or https://learn.microsoft.com/vcpkg/users/versioning for more information.

Before:error: version conflict on a:x86-windows: baseline required 1.0.2 but vcpkg could not compare it to 1.0.1.
The two versions used incomparable schemes:
    "1.0.1" was of scheme string
    "1.0.2" was of scheme string
This can be resolved by adding an explicit override to the preferred version, for example:
    "overrides": [
        { "name": "a", "version": "1.0.1" }
    ]
See `vcpkg help versioning` for more information.

After:error: version conflict on a:x86-windows: toplevel-spec required 1.0.1, which cannot be compared with the baseline version 1.0.2.

Both versions have scheme string but different primary text.

This can be resolved by adding an explicit override to the preferred version. For example:

    "overrides": [
        { "name": "a", "version": "1.0.2" }
    ]

See `vcpkg help versioning` or https://learn.microsoft.com/vcpkg/users/versioning for more information.

Improved missing feature message
Before:error: b:x64-windows@1 does not have required feature y

After:error: b@1 does not have required feature y needed by a:x86-windows@1

Improved cycle detected message
Before:error: cycle detected during a:x86-windows:
a:x86-windows
b:x86-windows

After:error: cycle detected during a:x86-windows:
a:x86-windows@1
b:x86-windows@1

(Resolves internal bug https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1791323)
[1]: We can exclude incomparable versions because any valid plan action MUST satisfy the baseline -- and so must be comparable.


Sync with scroll

Hi @MA3STR0,
Is it possible to use videosync to sync with a JS action, for e.g. scrolling down to a certain point on the page once the video is 10 seconds in?
Basically, I am trying to do something like the following:

But with videosync instead of  .delay(10000).
Thanks!

Update
I figured out a hacky solution in case anyone else needs it:

Where the scrolld function is:

Thanks @MA3STR0 for creating a great tool!

Thanks for your input @alexandercbooth
I think your hacky solution is quite ok until more people request this feature implemented natively.


Removal request - app.powerwatch.io is not a tracking endpoint

https://github.com/AdguardTeam/cname-trackers/blob/15e2b847c07235bc6e0b0eb95e24592cdc9123a4/data/clickthroughs/branch_io.txt#L1292
Not really sure how it got added since this is a private domain for sensor data collection. If there's justification for its submission, I'd be happy to chat about it.

please note that AdGuard cname-trackers is not a blocklist, it is just a list of cloaked trackers
and app.powerwatch.io is an actual cname for clickthrough domain custom.bnc.lt used by Branch.io


adapter does not start !

hey guys,
i have install a brandnew Version on Iobroker(3.7.8) and this Adapter does not start.
can somebody help me? , following are the error codes
thx josef

host.Iobroker
2020-03-31 20:14:31.412
error
instance system.adapter.tr-064.0 terminated with code 1 (JS_CONTROLLER_STOPPED)

host.Iobroker
2020-03-31 20:14:31.412
error
Caught by controller[0]:     at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)

host.Iobroker
2020-03-31 20:14:31.412
error
Caught by controller[0]:     at startup (internal/bootstrap/node.js:283:19)

host.Iobroker
2020-03-31 20:14:31.412
error
Caught by controller[0]:     at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)

host.Iobroker
2020-03-31 20:14:31.411
error
Caught by controller[0]:     at Function.Module._load (internal/modules/cjs/loader.js:585:3)

host.Iobroker
2020-03-31 20:14:31.411
error
Caught by controller[0]:     at tryModuleLoad (internal/modules/cjs/loader.js:593:12)

host.Iobroker
2020-03-31 20:14:31.411
error
Caught by controller[0]:     at Module.load (internal/modules/cjs/loader.js:653:32)

host.Iobroker
2020-03-31 20:14:31.411
error
Caught by controller[0]:     at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)

host.Iobroker
2020-03-31 20:14:31.411
error
Caught by controller[0]:     at Module._compile (internal/modules/cjs/loader.js:778:30)

host.Iobroker
2020-03-31 20:14:31.411
error
Caught by controller[0]:     at Object. (/opt/iobroker/node_modules/iobroker.tr-064/tr-064.js:15:20)

host.Iobroker
2020-03-31 20:14:31.411
error
Caught by controller[0]:     at Object.exports.Adapter (/opt/iobroker/node_modules/soef/soef.js:1383:23)

host.Iobroker
2020-03-31 20:14:31.410
error
Caught by controller[0]: TypeError: fns.adapter is not a function

host.Iobroker
2020-03-31 20:14:31.410
error
Caught by controller[0]:                       ^

host.Iobroker
2020-03-31 20:14:31.410
error
Caught by controller[0]:     fns.adapter = fns.adapter(options);

host.Iobroker
2020-03-31 20:14:31.410
error
Caught by controller[0]: /opt/iobroker/node_modules/soef/soef.js:1383

service iobroker start && cd /opt/iobroker/node_modules/iobroker.tr-064/ && npm install soef


Discogs Add extractor Revised

Description of your pull request and other information
Added several changes and additions to the discogs extractor, including error handling, metadata extraction, and checks for DRM-protected and potentially infringing content. It now uses a try-except block to handle exceptions, checks whether the API response contains valid data, and examines the tracklist and media items in the API response to extract additional metadata. The code also uses the sanitize_filename function to generate a safe filename and passes additional metadata to the playlist_result method.
Improvements to #6624
Before submitting a pull request make sure you have:

[x] At least skimmed through contributing guidelines including yt-dlp coding conventions
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8 and ran relevant tests

In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check all of the following options that apply:

[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] Fix or improvement to an extractor (Make sure to add/update tests)
[ ] New extractor (Piracy websites will not be accepted)
[ ] Core bug fix/improvement
[ ] New feature (It is strongly recommended to open an issue first)

The original PR is still pretty recent, with review comments from only a week ago.
The review comments from the original PR have not been addressed in this PR.
And the code added in this PR seems pointless? Was this written with AI?

Original discogs extractor PR was merged in 6daaf21092888beff11b807cd46f832f1f9c46a0


Why is the downloads audio quality way lowered in the last weeks?

Checklist

[ ] I'm asking a question
[ ] I've looked through the README and FAQ for similar questions
[ ] I've searched the bugtracker for similar questions including closed ones

Question

WRITE QUESTION HERE
I
I did a lot of things to solve it and, no fix. It seems that even with 320 kbps settings on various services, it sounds... Not really like 320 kbps. Please give an answer to me as soon as possible and, if possible, fix it.
Thanks and best regards!

Same issue here. Every site or extractor I use has a lowered quality.

Which extractors? Learn how to provide the needed info

First, i was not able to check boxes there because my screen reader didn't
show them to me.
Here!
My favourite fully featured YouTube client, over at www.ymusic.io has
dropped audio quality. My friend's converters. Ytmp3.eu and 320ytmp3.com,
both did the same. Please forgive me and understand that I am blind and I
ran into an issue.
On Sun, Jul 4, 2021, 4:37 PM LE @.***> wrote:

Which extractors? Learn how to provide the needed info
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ytdl-org/youtube-dl/issues/29466#issuecomment-873603511,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUBVPJA4RKNC4YQ4LWOT2VTTWBWYZANCNFSM47ZGSZ4Q
.

Unfortunately you seem to be asking about a generic problem with services that download and/or convert audio from the YT site, and not about anything to do with the youtube-dl program.

Ok. But I tried installing it on my machine and... The same. Also, how can
these services, if possible, Fix this?
On Sun, Jul 4, 2021, 9:39 PM dirkf @.***> wrote:

Unfortunately you seem to be asking about a generic problem with services
that download and/or convert audio from the YT site, and not about anything
to do with the youtube-dl program.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ytdl-org/youtube-dl/issues/29466#issuecomment-873649476,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUBVPJE335O2KMEUTWYXOJTTWC2IDANCNFSM47ZGSZ4Q
.


After switching to ESP-IDF 5.0.0, all projects using Modbus RTU stopped compiling (IDFGH-9396)

After switching to ESP-IDF 5.0.0, all projects using Modbus RTU stopped compiling
It is completely incomprehensible to me why it was necessary to break the working environment
Downloaded this repo but it flatly refuses to compile
.pio/libdeps/esp32dev/esp-modbus/freemodbus/common/esp_modbus_master_tcp.c:8:10: fatal error: esp_modbus_master.h: No such file or directory

***************************************************************************
* Looking for esp_modbus_master.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:esp_modbus_master.h"
* Web  > https://registry.platformio.org/search?q=header:esp_modbus_master.h
*
***************************************************************************

    8 | #include "esp_modbus_master.h"      // for public interface defines
      |          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from .pio/libdeps/esp32dev/esp-modbus/freemodbus/common/esp_modbus_master.c:8:
.pio/libdeps/esp32dev/esp-modbus/freemodbus/common/mbc_master.h:18:10: fatal error: esp_modbus_common.h: No such file or directory

***************************************************************************
* Looking for esp_modbus_common.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:esp_modbus_common.h"
* Web  > https://registry.platformio.org/search?q=header:esp_modbus_common.h
*
***************************************************************************

   18 | #include "esp_modbus_common.h"      // for common types
      |          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from .pio/libdeps/esp32dev/esp-modbus/freemodbus/common/esp_modbus_master_serial.c:8:
.pio/libdeps/esp32dev/esp-modbus/freemodbus/common/mbc_master.h:18:10: fatal error: esp_modbus_common.h: No such file or directory

***************************************************************************
* Looking for esp_modbus_common.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:esp_modbus_common.h"
* Web  > https://registry.platformio.org/search?q=header:esp_modbus_common.h
*
***************************************************************************

   18 | #include "esp_modbus_common.h"      // for common types
      |          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio\build\esp32dev\libadd\esp-modbus\freemodbus\common\esp_modbus_master_tcp.o] Error 1
*** [.pio\build\esp32dev\libadd\esp-modbus\freemodbus\common\esp_modbus_master.o] Error 1
*** [.pio\build\esp32dev\libadd\esp-modbus\freemodbus\common\esp_modbus_master_serial.o] Error 1
============================================================================ [FAILED] Took 397.66 seconds ============================================================================

Hello @kotyara12,
This compilation issue related to the freemodbus component moved to separate repository from esp-idf v5.0.0. Please see this change mentioned in migration guide and how to migrate to new esp-modbus component.
In order to repair your project you need just to add the manifest file to your pio_project_root_dir/src/ folder as below:
dependencies:
  idf: ">=4.1"
  espressif/esp-modbus:
    version: "^1.0"

Then select in platformio: "PROJECT TASKS" - > "esp32dev" -> "General" -> "Clean All" -> "Build"
The issue should be solved. If you still have the issues please place the compilation log here.
idf_component.yml.log (remove log ext before use)
Thanks.

Thank you very much, this solved the problem.
Sorry for being too emotional, but there are already a lot of surprises in this migration. There are a lot of things to rewrite.

Thank you very much, this solved the problem. Sorry for being too emotional, but there are already a lot of surprises in this migration. There are a lot of things to rewrite.

I understand this. No problem, feel free to submit an issue if you have any problems. Good luck!


Filetypes from mimetypes

Re: modification for #68 ... gets file types from the 'accepts' attribute via the python standard library mimetypes.
Includes handling for wildcard mimetypes by searching all mimetypes for matches.

Not really ready for merge after all, see comments on #68

Sounds great, thanks!