Support for Ubuntu Linux on ARM64 (aarch64)

Problem
We are starting to need to use ARM based Linux (using Ubuntu) but we can't use Sorbet since there is not a binary version of Sorbet that will run. When performing a bundle install that includes sorbet we get the following error:
Unable to find a spec satisfying sorbet-static (= 0.5.5912) in the set.
Perhaps the lockfile is corrupted? Found sorbet-static (0.5.5912-x86_64-linux),
sorbet-static (0.5.5912-universal-darwin-19) that did not match the current platform.

This is running on Ubuntu 20 LTS
Linux local 5.4.0-70-generic #78-Ubuntu SMP Fri Mar 19 13:29:32 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux

Proposed solution
Add a linux aarch64 pre-built sorbet-static.

Are there any workarounds for this in the meantime?

@korbin QEMU can emulate x64, but it is SLOW, pretty much unusable.

this is a blocker to teams using sorbet in docker as well - let me know if there's anything I can do to help move this forward; as it stands I believe my workaround has to be forcing platform: linux/amd64 for our containers, which is unideal.

let me know if there's anything I can do to help move this forward

Can you at least submit a PR for https://github.com/sorbet/sorbet/commit/a7cdf0b8c24754338b7a5700e89823d6d056516b ?  I think the other commits would require some reworking (all the s/x86_64/aarch64/-style ones) or some testing (the blake2 changes), but the __builtin_debugtrap seems uncontroversial, assuming GCC supports it (i.e. we can build in Stripe's CI)

I think we'd take a PR for the bazel script changes too!

A brief end of week update on my end: I haven't fully inspected the generated gems or run the test suite against them, but I seem to have at least runnable aarch64 sorbet ELF binaries generated on an aarch64 host (read: not cross-compiled from amd64). The logic roughly being that usually I find on-host builds easier to reason about than cross-compiled, so I decided to head down the path I was most comfortable with in general (I've dealt with ARM Linux stuff for years, but almost never cross-compiled).
The commit logs are a little messy (especially on the bazel-toolchain side), there's decidedly some hackery going on that needs cleaned up because I don't particularly know Bazel well, and just broadly it'll need work before it'll be in a state to work with @korbin @froydnj and co. to upstream it, but it's progress and I'll likely continue poking at this Tuesday, if not over the weekend.

https://github.com/dockwa/sorbet/commits/josh/arm64-more
https://github.com/dockwa/bazel-toolchain/commits/sorbet

The below output is copied from an M1 Mac, but I was also able to use Docker BuildX to "cross-compile" (very, very, miserably slowly) from my AMD 3900X rig running Void Linux.
joshklar@twg-mba-klar sorbet % make release-linux-arm64
# this is PROBABLY dangerous in the event your system already has bin
# handlers or something but whatever, those are *super* uncommon,
# especially on CI rigs
[ "$(uname -s) $(uname -m)" == "Linux x86_64" ] && docker run --rm --privileged multiarch/qemu-user-static --reset -p yes || true
docker buildx build --platform linux/arm64 .

[+] Building 516.1s (10/10) FINISHED
 => [internal] load build definition from Dockerfile                                                                                0.0s
 => => transferring dockerfile: 573B                                                                                0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => [internal] load metadata for docker.io/library/ubuntu:focal                                                                                1.1s
 => [1/5] FROM docker.io/library/ubuntu:focal@sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322                                                                                0.0s
 => [internal] load build context                                                                                5.6s
 => => transferring context: 195.39MB                                                                                5.5s
 => CACHED [2/5] RUN apt update && apt install -y build-essential curl perl unzip python autoconf                                                                                0.0s
 => CACHED [3/5] RUN apt update && apt install -y libffi-dev libgmp-dev libtinfo5 libtinfo-dev python python3                                                                                0.0s
 => [4/5] COPY . .                                                                                0.8s
 => [5/5] RUN ./bazel build //main:sorbet --config=release-linux                                                                                491.5s
 => exporting to image                                                                                17.1s
 => => exporting layers                                                                                17.1s
 => => writing image sha256:aa08645ee8b33bba601a9140a4d33faeb23fe2a71cc592d60e2eb0f03af19624                                                                                0.0s

# ...

joshklar@twg-mba-klar sorbet % docker run --rm -it aa08645ee8b33bba601a9140a4d33faeb23fe2a71cc592d60e2eb0f03af19624
root@478d1ec030c9:/# file ./root/.cache/bazel/_bazel_root/6666cd76f96956469e7be39d750cc7d9/execroot/com_stripe_ruby_typer/bazel-out/aarch64-opt/bin/main/sorbet
./root/.cache/bazel/_bazel_root/6666cd76f96956469e7be39d750cc7d9/execroot/com_stripe_ruby_typer/bazel-out/aarch64-opt/bin/main/sorbet: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[md5/uuid]=121e6e884edc997ac510ce7630cc2037, with debug_info, not stripped
root@478d1ec030c9:/# ./root/.cache/bazel/_bazel_root/6666cd76f96956469e7be39d750cc7d9/execroot/com_stripe_ruby_typer/bazel-out/aarch64-opt/bin/main/sorbet
You must pass either `-e` or at least one folder or ruby file.

Typechecker for Ruby
Usage:
  sorbet [OPTION...] <path 1> <path 2> ...

  -e, string     Parse an inline ruby string (default: "")
  -q, --quiet    Silence all non-critical errors
  -v, --verbose  Verbosity level [0-3]
  -h,            Show short help
      --help     Show long help
      --version  Show version

root@478d1ec030c9:/# ./root/.cache/bazel/_bazel_root/6666cd76f96956469e7be39d750cc7d9/execroot/com_stripe_ruby_typer/bazel-out/aarch64-opt/bin/main/sorbet -e 'puts "yay"'
No errors! Great job.

👋 Any news about this topic?
Will there be a new release of the sorbet-static for aarch64 anytime soon?

please feel free to holler if there's anything we (Dockwa) can do to help, even if it's testing a quick thing. we've been using the linux/amd64 and linux/arm64 gems+docker images generated in https://github.com/dockwa/sorbet/commits/josh/arm64-more for a bit now and, short a PEBKAC issue I introduced with versioning at one point, haven't had issues (mind you, we fall back to upstream gems on Darwin-bare-metal because I never figured out cross-compilation, with Bazel or - experimentally at one point - with Zig's cross-compile-as-a-first-class-citizen toolchain)
excited to see this getting upstream traction!

Note that getting all the necessary changes in to compile on arm64 is one step (and an important one!), but not the complete picture: we also need to cross-compile the appropriate bits on Buildkite (AFAICT, Buildkite does not seem to have native arm64 machines/containers available).

Certainly native arm64 machines would be ideal, but if those fail, a (somewhat slow) option (that we're using in our fork) is to QEMU around the problem - Docker BuildX sets up a binfmt_misc handler to route cross-arch builds through QEMU wrappers, simulating a "native" arm64 build. From what I can tell, Rust's https://github.com/cross-rs/cross does this as well. Certainly not saying it's ideal (our arm64 images take about 5-10x longer than our amd64 images, building on an AMD 3900X with 24 threads), but it's a potential workaround if the cross-compile-directly story gets hairy.

Chiming in here again, curious to see what the blockers here are, and what my org could do to help. At this point we're still running my fork from the winter, which means v0.5.9613 (the last version I could get to cleanly rebase), complete with all of our packaging layers to get there. Simplifying back to a simple "bundle install" would be great.

@klardotsh can you publish your forked version that works with arm64?

@klardotsh can you publish your forked version that works with arm64?

Ah sorry, I realize I'd talked about the WIP above and never mentioned that all this work has been public all along... just without instructions available. Here goes!
master of https://github.com/dockwa/sorbet is at v0.5.9613 (this limits you to Tapioca 0.7.x if you use check-shims ^1 [^2]). This is a set of 12 commits over AngelList's fork above; essentially all are packaging and build system related.
In theory one should be able to apply this to bare-metal aarch64+glibc Linux; pulling the linux/arm64 OCI image (docker pull blahblah --platform linux/arm64 works I think maybe possibly, otherwise dig into the multiarch manifest) and dumping it to a tarball [^3] should allow portability outside of containers.
To apply some duck-typing theory: this looks like a hack, walks like a hack, and quacks like a hack, so it's definitely a hack. With some caveats however (notably, that things like Tapioca RBI generation must be done in a consistent environment - for us that's linux/amd64 with RAILS_ENV=development - due to two Tapioca issues ^4 ^5), it's been working for us at Dockwa since Dec/Jan ish.

Dockerfile
# https://github.com/dockwa/sorbet
FROM ghcr.io/dockwa/sorbet:0.5.9613 AS sorbet-gems

# the bins generated in the buster image are confirmed so far to be
# forward-compatible, so rather than rebuilding a bullseye image, we'll just
# mix and match this particular component
#
# https://github.com/dockwa/docker-watchman
FROM ghcr.io/dockwa/watchman:4.9.0-debian-buster AS watchman

FROM ruby:2.7.5-bullseye

# ...

# this version is/was required for arm64 support due to
# https://github.com/rubygems/rubygems/pull/5092
# (https://github.com/rubygems/rubygems/issues/5088)
RUN gem install bundler:2.2.33

# this (ab)uses awk's conditional print mechanics to find sorbet-static's
# x86_64 gem lock, duplicate it to a new line, and then find-replace over the
# duplicated line, described more in https://unix.stackexchange.com/a/675838
#
# without this, cryptic bundler errors occur in arm64 builds (only): not only
# is a dependency outright missing, but because it's a transient dependency,
# weird offshoots of https://github.com/rubygems/rubygems/pull/5092 (that are
# yet unfixed even in 2.2.33, it appears) pop up, all instances of the famous
# NilClass exception
RUN awk '1; gsub(/x86_64/,"aarch64")' Gemfile.lock > Gemfile.lock.new
RUN mv Gemfile.lock.new Gemfile.lock

# ... and since those issues stemmed from upstream not providing aarch64 bins
# in the first place, we'll provide our own *.gem for all things sorbet, and
# lean on bundler's implicit search path behaviors to avoid looking for this
# upstream (it won't exist)
COPY --from=sorbet-gems /sorbet*.gem ./vendor/cache/

RUN bundle install

# prep watchman (required for sorbet's LSP mode, which is sometimes called in
# this image via docker wrapper scripts hooked up to editors like neovim)
USER root
COPY --from=watchman /usr/local/bin/watchman* /usr/local/bin/
COPY --from=watchman /usr/local/share/doc/watchman-4.9.0 /usr/local/share/doc/watchman-4.9.0
COPY --from=watchman /usr/local/var/run/watchman /usr/local/var/run/watchman
RUN mkdir -p /usr/local/var/run/watchman
RUN touch /usr/local/var/run/watchman/.not-empty \
 && chown -R $(id -u app):$(id -g app) /usr/local/var/run/watchman
USER app

Makefile to wrangle BuildX
.POSIX:

REGISTRY_BASE ?= REDACTED
REGISTRY_BASE_IMAGE ?= $(shell git describe --always --abbrev)

ifeq ($(PUSH),1)
	BASE_PUSH_FLAG := --push
endif

ifeq ($(IS_TRUNK_CI_BUILD),1)
	BASE_LATEST_TAG := -t $(REGISTRY_BASE):latest
endif

.PHONY: multiarch-qemu-reset
multiarch-qemu-reset:
	# this is PROBABLY dangerous in the event your system already has bin
	# handlers or something but whatever, those are *super* uncommon normally
	#
	# DO NOT run this on GitHub Actions, use docker/setup-qemu-action@v1
	# instead!
	[ "$$(uname -s)" = "Linux" ] && docker run --rm --privileged multiarch/qemu-user-static --reset -p yes || true

.PHONY: buildx-base-image
buildx-base-image:
	docker buildx build \
		--platform linux/amd64,linux/arm64 \
		-t $(REGISTRY_BASE):$(REGISTRY_BASE_IMAGE) \
		$(BASE_PUSH_FLAG) \
		$(BASE_LATEST_TAG) \
		.

[^2]: I've tried rebasing this branch onto something newer and Tapioca 0.8.x compatible and while the diffs eventually apply cleanly, I get Bazel-induced build failures. Bazel is a monstrously complex beast I have thus far consistently failed to wrap my head around (especially debugging it), and thus I gave up for now - I have too many non-Sorbet responsibilities at work to dedicate the requisite time to this.
[^3]: docker docs, podman docs

I should, however, explicitly note now: my org is removing Sorbet from our codebase in the near future; I will likely no longer be maintaining the above forks or Docker images any further, and in particular, will not be continuing the efforts to rebase onto newer Sorbet releases. I have no intentions quite yet of removing the repos, and of course the contributions are all under the same license as Sorbet upstream, so feel free to make your own forks or otherwise remix my work so far :) Cheers y'all!

For those interested, I took @klardotsh's changes and made them compatible with main (as of Sep 26, 2022) and able to build a static sorbet for linux-arm. You can find the changes here https://gist.github.com/ethankhall/516ddcefd22297a6cb9f736648386292.

Is there any expectation that ARM Linux will be supported in the future?
The issue makes Sorbet inoperable for a small team like mine developing on ARM Macs with everything unified into docker. Our CI is also running using ARM and has the same challenge.

Is there any expectation that ARM Linux will be supported in the future?
The issue makes Sorbet inoperable for a small team like mine developing on ARM Macs with everything unified into docker 😞. Our CI is also running using ARM and has the same challenge. I would LOVE to add the benefit of sorbet's type system!

@Nealsoni00 our team got around this by having a separate gemfile for your local machine and docker, you only need sorbet locally.
eg:
# local gemfile dont add stuff here
eval_gemfile './Gemfile.docker'
gem 'sorbet'
gem 'tapioca'

And then you can use the env variable BUNDLE_GEMFILE to specify which to use where. After this one time setup we've had no problems, been doing this since december.

We worked around this issue using install_if:
#
# Until Sorbet supports ARM64 we can only use the `tapioca` and `srb`
# CLI tools on Mac/Linux, but not in a Docker VM on Mac
#
# https://github.com/sorbet/sorbet/issues/4119
#
# These versions are locked because bundler fails to resolve otherwise.
# Please upgrade these gems monthly.
#

install_if -> { RUBY_PLATFORM =~ /darwin/ || RUBY_PLATFORM =~ /x86_64/ } do
  gem 'sorbet', '0.5.10597'
  gem 'tapioca', github: 'Shopify/tapioca', branch: 'main'
end

# We need the runtime gem on Docker VM and it works
gem 'sorbet-runtime', '0.5.10597'

We are running sorbet in CI on ARM and use sorbet-static and getting following
Could not find gem 'sorbet-static (= 0.5.10878)' with platforms 'aarch64-linux',
Any updates when this will be solved.

So just for curiosity's sake, I just tried building for aarch64-linux on the latest release 0.5.10991.20230829150527. It worked fine.
I was able to build sorbet-static and the sorbet-static gem, and run through a few tests and everything seemed fine? Is this at a point where it simply needs to be published alongside other builds, or is there more to the story here?

Hi @simoleone , can you share the steps how to build the sorbet-static and the sorbet-static gem? Many thanks!

@zhouyuanzhen I pretty much just followed the steps in the README. There's nothing special to do. Check out the code or download a recent release tarball, and follow the instructions.
If you want to create a release build, there's almost nothing special to do, except comment out the sandybridge optimizations line in .bazelrc. Or suppose you could add a new build config, either would work.  After that you can run use --config=release-linux like it says in the README to build the binary.
To build the gem, loosely follow the existing buildkite script. The main thing you need to do is make sure to edit the version in the gemspec before running gem build.

Sorbet has been buildable on aarch64 since this PR: https://github.com/sorbet/sorbet/pull/6862
To my knowledge the only thing left here is we need Stripe folks to setup a buildkite agent that can build and release the binaries.

To my knowledge the only thing left here is we need Stripe folks to setup a buildkite agent that can build and release the binaries.

@tonybruess There are also some changes required to the sorbet-build-image to buildable and runnable on arm64, which the arm64 Buildkite agents could use. I was tinkering with this a few weeks together, and put together https://github.com/sorbet/sorbet-build-image/pull/8

I built and released an aarch64-linux and arm64-darwin-22 version if anyone wants to take it for a test run.
source 'https://gem.fury.io/tonybruess/' do
  gem 'sorbet-static', '0.5.10965'
  gem 'sorbet', '0.5.10965'
end

@tonybruess looking good on Ubuntu 22.04 aarch64
Thank you very much.

I was tinkering with this a few weeks together, and put together sorbet/sorbet-build-image#8

This PR was just merged yesterday, so hopefully the only thing blocking this now is getting an ARM64 Buildkite agent set up

What can we do to help set up the ARM64 Buildkite agent?

What can we do to help set up the ARM64 Buildkite agent?
I believe this has to be done by somebody at Stripe. FYI @jez

Two months ago the last comment on this subject was from @froydnj @froydnj-stripe in Slack:

we don’t use sorbet-build-image for builds inside Stripe
Sorbet releases on linux-arm64 (and darwin-arm64) haven’t been a priority for us at the moment

Until this is prioritized internally at Stripe it feels like we shouldn't expect to see arm64 releases. We may want to consider setting up a community run agent and repo.

We (well, @jez) has been trying to set up a buildkite agent for arm64 builds, but the current status is that the build is getting peculiar errors while setting up the required Ubuntu PPA repos (it looks like it's trying to fetch from an entirely different PPA than the one specified in the Dockerfile).  Things are moving, just maybe not as quickly as one might like.

Many thanks for this @froydnj & @jez !

it looks like it's trying to fetch from an entirely different PPA than the one specified in the Dockerfile

Do y'all have any build logs that you can share? Because of the work on https://github.com/sorbet/sorbet-build-image/pull/8 I may be able to help.

Thanks for prioritizing this @jez and @froydnj! We all greatly appreciate it.
That's a strange error. Where is the docker build being run?

Thanks for the extra info @froydnj & @jez. We really appreciate the effort here!
The latest code from GitHub builds for me on an M1 laptop with docker build --no-cache., so I suspect something environmental is contributing. I have a couple of theories/suggestions:

It sounds like add-apt-repository may have trouble in some HTTP(S)_PROXY setups, and reports the error in a general way. Is the image being built on a machine where a proxy is being used? If so, try passing the proxy env var directly to the docker build command like this: docker build --build-arg HTTP_PROXY="$HTTP_PROXY" ..

If your environment uses an HTTPS_PROXY, use docker build --build-arg HTTP_PROXY="$HTTP_PROXY" . instead.
If you're not secure what proxies are present, env | grep _PROXY will show them.

Replace the apt-add-repository command that achieve a similar (see patch below). Even if this doesn't work, it should yield a different error message 🤞 .

diff --git a/Dockerfile b/Dockerfile
index 1a79916..4de9908 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -17,7 +17,9 @@ RUN apt-get update && \
       echo "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-9 main" | tee /etc/apt/sources.list.d/llvm.list && \
       apt-get update && \
       apt-get install --no-install-recommends -y nodejs yarn clang-9 && \
-      add-apt-repository --yes ppa:ubuntu-toolchain-r/test && \
+      apt-key adv --no-tty --keyserver keyserver.ubuntu.com --recv-keys 1E9377A2BA9EF27F && \
+      echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic main" | tee /etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-bionic.list && \
+      echo "# deb-src http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic main" | tee -a /etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-bionic.list && \
       apt-get update && \
       apt-get install --yes --only-upgrade libstdc++6 && \
       cd bazel_loader && \

@eric-christian What does bundle config say? I've seen this issue if force_ruby_platform: true

@eric-christian What does bundle config say? I've seen this issue if force_ruby_platform: true

Yes, that was indeed on. Without, it works. Thank you!
Wonder why i had that on. Has probably something to do with a rails app i work on that requires all gems for all supported platforms to be packed within the vendor/cache.  🤔

This sounds close! Thank you again to those that are working on this 😊

Hey @froydnj & @jez - hope you are both doing well. I just wanted to check in about this Docker image build issues you were experiencing, and if there were any new blockers?
I have some bandwidth to work on this at Gusto, and would love to help out where I can.

Hey @froydnj & @jez - hope you are both doing well. I just wanted to check in about this Docker image build issues you were experiencing, and if there were any new blockers?
I have some bandwidth to work on this at Gusto, and would love to help out where I can.

Thanks for checking in @noizwaves !  Whatever issue we were experiencing seemed to be transient; I couldn't reproduce and jez couldn't reproduce it a day or so later.
I think the part we got stuck on was tagging the resulting images on Docker Hub.  Our current practice right now is tagging the x86-64 image as latest, but that...probably won't work to tag both the x86-64 and arm64 images as latest?  So we have to have different tags for each one, or is there magic that ensures we can have multiple architectures tagged as latest?  (None of us are Docker experts in this respect.)

You can make the latest tag into a manifest list. That allows Docker to pull the correct architecture for the platform it's on without you having to specify.
You'll need to create, tag, and push two architecture specific images, probably latest-amd64 and latest-arm64 but you can call them whatever you'd like. Then you can use the docker manifest command to create and push the manifest list. Something like:
docker manifest create sorbet:latest \
  --amend sorbet:latest-amd64 \
  --amd sorbet:latest-arm64
docker manifest push sorbet:latest

There's a way to use the same tag for both architectures and many images out there do, but it's a bit of a pain to set up and troubleshoot to put it mildly.
A few random tips having dealt with this recently:

docker push/pull almost never do what you want when building/tagging/managing multi-platform images. They'll only deal with the platform they happen to be running on, and worse, do it silently. They are fine for running the images, of course, in which case they do what you want.
docker buildx --platform .... --push  can take a comma-separated list of platforms. When you do this it will join them together into a single manifest list automatically and push them straight away. On the other hand, buildx can be horrendously slow to cross-build.
skopeo is a useful tool if you need to multi-platform "promote" images once they're already pushed, or push them around between repos, etc.

I'd second @JamieMagee 's approach. Failing that, it's also possible to skip the multi-platform tag and just use the platform specific tags. This does require some parametrization of the build pipeline, but that can be easier to get working.

I would love to help as needed too! 😄 What are the relevant roadblocks?

I built and released an aarch64-linux and arm64-darwin-22 version if anyone wants to take it for a test run.

Hey @tonybruess 👋 , do you have the build process you used for the arm64-darwin-22 gem build anywhere? I have a little bandwidth and would like to build some linux arm64 gems for the community, and would love to expand this to darwin too.

@noizwaves Unfortunately I didn't save the exact steps anywhere. The only note I left for myself is:

Change /usr/local/var/bazelcache to /Users/name/.cache/bazel in .bazelrc.local

My org just decided to remove Sorbet entirely so unfortunately I don't have any bandwidth to support further.  Thank you for all the help so far on this issue ❤

I have a little bandwidth and would like to build some linux arm64 gems for the community, and would love to expand this to darwin too.

Ok folks, I was able to get some time this weekend and have set up https://github.com/sorbet-multiarch. It builds the linux/arm64 Sorbet gem on CircleCI and publishes it to Gemfury. It automatically runs nightly, and should provide up to date linux/arm64 gems moving forward.
Currently version 0.5.11150 and 0.5.10993 are available. If you need another prior version, just create an issue over here and I'll build it for you.

I'm curious if this is going to get official traction. Even with community solutions published and showing a near complete path for implementation, it just doesn't seem like there's room for it. Should we expect to use @noizwaves's implementation ? Which is great, and thank you for putting it forward.

I have a little bandwidth and would like to build some linux arm64 gems for the community, and would love to expand this to darwin too.

Ok folks, I was able to get some time this weekend and have set up https://github.com/sorbet-multiarch. It builds the linux/arm64 Sorbet gem on CircleCI and publishes it to Gemfury. It automatically runs nightly, and should provide up to date linux/arm64 gems moving forward.
Currently version 0.5.11150 and 0.5.10993 are available. If you need another prior version, just create an issue over here and I'll build it for you.

GREAT WORK!

does the announcement of new m1 runners for open source projects make this an easier ask?

I don't think so @X-sam - I think the solutions provided above (from @noizwaves) actually accomplish the asks. It would seem it's more so on the time @jez / @froydnj and team have to maintain and implement it. Something that doesn't seem to be prioritized. But who knows! Maybe that was really the blocker.


Cleanup for file changes

So few things we should consider revisiting.
Source.Path might not be the best name now that its no longer absolute, perhaps this should be changed to something like FileName instead?
Related, maybe we should do some validation and eagerly throw when an absolute path is passed in, as opposed to just failing to find the file since it just basically will never work.
Cleanup/resolve the GetBasePath stuff that I resurrected to get UserSecrets off the floor.
Do we want to remove the old top level sugar extensions IConfigurationRoot.ReloadOnChanged(file) (they are technically slightly different than the individual provider triggered reloads, but there's probably no real loss of functionality if we kill this method)

Reverted the UserSecrets changes, should be good for now...
5d6b9e547d27cd6d44dabec91059b1f029f50c17


feature-request: Display aggregated percentage of change in bundle size

Would it be possible to include a number representing the change in total bundle size from the base branch and compare branch?
The names of the chunks are very subject to change in some projects, so it often just lists "Added" and "Deleted".
What I am more interested in is seeing how much the total bundle size of my application changed with my PRs.

a number representing the change in total bundle size

Let me confirm.
You want to know +19.89KB
which is a sum of +632 B,  -5.38KB, and +24.64KB in the below example?

a number representing the change in total bundle size

Let me confirm.
You want to know +19.89KB which is a sum of +632 B, -5.38KB, and +24.64KB in the below example?

Yes! I think that would be very helpful in larger apps with loads of chunks, and especially when chunks use hash naming and receives a new name after build.

Maybe including a percentage would be nice too, like in the analysis table
So it would be something like +19.89 KB (+?.?%)


[BUG] Dimensional min/max Y not respected

Describe the bug
The min and max Y heights of a given dimension can vary. This means that the mod might try and place the grave somewhere it cannot (i.e. y-60 in the end or nether).
Forgotten Graves Version
v2.3.1-mc1.18.1
Expected behavior
The mod should get the min/max Y levels for the given dimension and respond accordingly.
Additional context
This has been corrected in commit ca9f1c3 and will be released in the next update (which will include honoring curses as well).

Correction, this was fixed by ca9f1c3.


Erro in composer install

composer require codeigniter4/shield
In PackageDiscoveryTrait.php line 327:
Could not find a version of package codeigniter4/shield matching your minimum-stability (stable). Require it with an explicit version constraint allowing its desired stability.

Hello, @caosdp-rs please see #157 .

Obrigado!


Browser panel removal: first try

Issues #72

Travis Ci can not build : apt-get install failed
The command "sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install oracle-java8-installer" failed and exited with 100 during .

I fixed this Travis building error by getting back to previous commit, and slowly modify every files. I didn't find the reasons of the error, since i didn't feel any difference between my two commits


Adding an xsd entry for 'Content->CopyToPublishDirectory'

Resolves https://developercommunity.visualstudio.com/content/problem/27616/missing-intellisense-in-net-core-csproj-file.html

FYI. @dotnet/project-system

@AndyGerlicher, are you aware if this needs a manual insertion to ensure VS picks up these changes for 15.3?

It does need manual insertion into VS repo. I was going to wait till we're more sure we have all the changes that will be in 15.3 unless there's any hurry. This isn't the only change in schema though.

Thanks, and no hurry. Just wanted to know if this was part of an automatic or manual insertion 😄


Consensus: add debonding delegations to Staking card

still showing validator address instead a name. This will be resolved in the future when validator_media object will be added, or by named accounts
debonding list can show children with the same key warning temporary. Validator address + epoch will be unique in debonding delegations once bugfix is deployed on Nexus side
filter buttons use styles from other Consensus card not from mockups (not sure why they are different)
last commit includes changes provided by Tadej

bump

will wait for an updated empty state message

will merge as is and update message in a following PR as we will change layout slightly


Design QA - Please align text on Created Markets

@JohnDanz I still see it in this way:

I've cleared cache. Is it updated?


Iconsize on MudNavGroup and MudNavLink

Feature request type
Enhance component
Component name
MudNavMenu
Is your feature request related to a problem?
When using fontawesome icons in MudNavMenu, the icons are large and the size can not be changed.
Describe the solution you'd like
Implement Size property as per MudIcon when using font icons.
Have you seen this feature anywhere else?
MudIcon size property.
Describe alternatives you've considered
Tried using the fontawesome sizing e.g. fa-sm but this distorted the entry in the MudNavMenu
Pull Request

[ ] I would like to do a Pull Request

Code of Conduct

[X] I agree to follow this project's Code of Conduct

I also needed to make the fa-solid icons smaller in the MudNavGroup and MudNavLink components and had the same result when specifying fa-sm (e.g.  Icon="fa-regular fa-user fa-sm").
The icon size decreased to about one third but it also moved to the upper left corner of its parent and no longer horizontally aligned with the link text.
Adding a CSS transform to  mud-nav-link-icon-default works in my case but not sure if this approach is supported.
<style>
    .mud-nav-link-icon-default {
         transform: scale(0.6);
    }
<style>

I don't think this can be fixed without referencing Font Awesome's specific selectors. Also, each icon set library can size differently, so it would have to be implemented on a library-per-library basis. In my opinion, it is up to the user to ensure that their chosen library integrates well. That being said, Font Awesome is quite popular, and a good fix would be nice. Here's what I've been using:
/* Font Awesome oversized font fix */
.fa,
.fa-brands,
.fa-classic,
.fa-regular,
.fa-sharp,
.fa-solid,
.fab,
.far,
.fas {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.fas::before,
.fa-brands::before,
.fa-classic::before,
.fa-regular::before,
.fa-sharp::before,
.fa-solid::before,
.fab::before,
.far::before,
.fas::before {
    font-size: 73%;
}

only FA icons are affected
centering is taken care of
no additional class is needed: Icon="fas fa-user" will do


strip trailing whitespace

This is an issue for mainly the url field in the editor, but if it could be applied to more fields it would be ideal
Request from Fermilab:
Our catalogers are constantly annoyed by urls not being accepted in the editor because they have included whitespace (usually at the end). I think this might also be a problem for other fields and perhaps even in the submission forms. Is there any way leading and trailing whitespace could simply be stripped (and even better an multiple white space inside a field, e.g. abstract, reduced to a single whitespace)?

TECH NOTES:

Add onValueChange https://github.com/inspirehep/inspirehep/blob/master/record-editor/src/app/shared/config/hep/core.config.ts#L148-L150 for the url fields in all the collections

This should be applied to all fields in the editor, not only URLs.


chore/upgrade greenwood v0.30.0

Related Issue
N / A
Summary of Changes

Upgrade Greenwood v0.30.0

TODO

[x] CSS url optimization breaking on unresolvable assets - https://github.com/AnalogStudiosRI/www.analogstudios.net/pull/98#issuecomment-2141069675
[ ] test without needing PostCSS import-plugin, instead using ConstructableStylesheets (nice to have)
[ ] test without need FA plugin and copying? (nice to have)

Upstreams

[ ] Upstreams

better error handling for CSS url optimization and better handling for data:

Noticed that when combined with the PostCSS plugin-import plugin, FA was being inlined into the final CSS bundles (which is expected because that is its job, hah!)
  body: '/*!\n' +
    ' *  Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome\n' +
    ' *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n' +
    ' */\n' +
    '/* FONT PATH\n' +
    ' * -------------------------- */\n' +
    '@font-face {\n' +
    "  font-family: 'FontAwesome';\n" +
    "  src: url('../fonts/fontawesome-webfont.eot?v=4.6.3');\n" +
    "  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular') format('svg');\n" +
    '  font-weight: normal;\n' +
    '  font-style: normal;\n' +
    '}\n' +
    '.fa {\n' +

It means Greenwood's CSS optimization has no reference for where to start looking and because of no node_modules signal in the pathname, fails to look it up and completely breaks on lookup, which is obviously not good.
  Error: ENOENT: no such file or directory, open '/Users/owenbuckley/Workspace/analogstudiosri/www.analogstudios.net/src/fonts/fontawesome-webfont.eot'
    at Object.openSync (node:fs:596:3)
    at Object.readFileSync (node:fs:464:35)
    at Object.enter (file:///Users/owenbuckley/Workspace/analogstudiosri/www.analogstudios.net/node_modules/@greenwood/cli/src/plugins/resource/plugin-standard-css.js:56:36)
    at walkNode (file:///Users/owenbuckley/Workspace/analogstudiosri/www.analogstudios.net/node_modules/css-tree/lib/walker/create.js:169:36)
    at List.walkReducer (file:///Users/owenbuckley/Workspace/analogstudiosri/www.analogstudios.net/node_modules/css-tree/lib/walker/create.js:195:61)
    at List.reduce (file:///Users/owenbuckley/Workspace/analogstudiosri/www.analogstudios.net/node_modules/css-tree/lib/utils/List.js:174:22)
    at Object.Value (file:///Users/owenbuckley/Workspace/analogstudiosri/www.analogstudios.net/node_modules/css-tree/lib/walker/create.js:103:31)
    at walkNode (file:///Users/owenbuckley/Workspace/analogstudiosri/www.analogstudios.net/node_modules/css-tree/lib/walker/create.js:180:41)
    at Object.Declaration (file:///Users/owenbuckley/Workspace/analogstudiosri/www.analogstudios.net/node_modules/css-tree/lib/walker/create.js:108:28)
    at walkNode (file:///Users/owenbuckley/Workspace/analogstudiosri/www.analogstudios.net/node_modules/css-tree/lib/walker/create.js:180:41) {
  errno: -2,
  syscall: 'open',
  code: 'ENOENT',
  path: '/Users/owenbuckley/Workspace/analogstudiosri/www.analogstudios.net/src/fonts/fontawesome-webfont.eot'

Should at least guard for this with a warning message, which I have patched in for now and will need to upstream
if (fs.existsSync(locationUrl.pathname)) {
  // do all the fancy stuff
  optimizedCss += `url('${basePath}${hashedRoot}')`;
} else {
  // TODO handle  'data:', e.g.  Unable to optimize /Users/owenbuckley/Workspace/analogstudiosri/www.analogstudios.net/src/data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%204%204'%3E%3Cpath%20stroke='%23fff'%20d='M0%202h4'/%3E%3C/svg%3E.
  console.warn(`Unable to optimize ${locationUrl.pathname}.  You may need to manually copy this file into the output directory.`);
  optimizedCss += `url('${value}')`;
}

Wow, this is really nice now using ConstructableStylesheets, and removing the inline @import reference in the CSS is paying off huge for payload sizes 🤩
BEFORE
Before, a copy of Bootstrap and FA would be part of every component bundle file
@import "../../theme.css";

.as-header {
  /** CSS goes here **/
}

import { css, html, LitElement, unsafeCSS, TemplateResult } from 'lit';
import { customElement } from 'lit/decorators.js';
import '../navigation/navigation.ts';
import headerCss from './header.css?type=css';

@customElement('app-header')
export class HeaderComponent extends LitElement {
  static styles = css`${unsafeCSS(headerCss)}`;

  protected render(): TemplateResult {
    return html`

Analog Studios

          <app-navigation></app-navigation>

    `;
  }
}

And thus would really bloat the bundle sizes

AFTER
Now, we can join the two together
.as-header {
  /** CSS goes here **/
}

import { css, html, LitElement, unsafeCSS, TemplateResult } from 'lit';
import { customElement } from 'lit/decorators.js';
import '../navigation/navigation.ts';
import headerCss from './header.css?type=css';

@customElement('app-header')
export class HeaderComponent extends LitElement {
  static styles = css`${unsafeCSS(headerCss)}`;

  protected render(): TemplateResult {
    return html`

Analog Studios

          <app-navigation></app-navigation>

    `;
  }
}

And now the site payload has dropped by !
TODO

In fact, we could probably make the components constructable stylesheets too!
import { html, LitElement, TemplateResult } from 'lit';
import { customElement } from 'lit/decorators.js';
import '../navigation/navigation.ts';
import theme from '../../theme.css' with { type: 'css' };
import header from './header.css' with { type: 'css' };

@customElement('app-header')
export class HeaderComponent extends LitElement {
  static styles = [theme, header];

  protected render(): TemplateResult {
    return html`

    `;
  }
}

Looks like there might a race condition happening somewhere related to greenwoodSyncImportAttributes in rollup.config.js, and seems specifically related to the use of optimization: 'inline' in greenwood.config.js, in that some of the built files are still including placeholders for Rollup asset bundling, e.g.
import o from"/import.meta.ROLLUP_ASSET_URL_2926c8e7"with{type:"css"};

My guess is that since we are doing these replacements in the generateBundle Rollup hook, the Greenwood code that runs the inline optimization on the HTML code is happening before Rollup has finished running.  🫢

Sooooo... now Netlify redirects seems to be failing now?  😳

Local proxy was fine, and so is production?
https://www.analogstudios.net/api/v2/posts

Sooooo... now Netlify redirects seems to be failing now? 😳

and it works 🤷♂


Build error on iOS app with react-native 0.73.6

I have installed this package and configured as per the documentation but facing build error in iOS. Works fine on Android.
Environment:
"react": "18.2.0",
"react-native": "0.73.6",
"react-native-config": "1.5.2"
System:
MacBook M1 Pro
macOS: 14.4.1 (23E224)
Xcode: Version 15.3 (15E204a)
Error Screenshot:

I have the same problem:
Environment:
"react": "18.2.0",
"react-native": "0.74.2",
"react-native-config": "1.5.3"
System:
MacBook M1 Pro
Xcode: Version 16.0 (16A242d)

in the Manual Link (iOS / macOS) setup instructions, try skipping steps I, II, III, IV. only do steps V and VI

Sadly that didn't work. But thanks for replying so fast

I also encountered the same problem, but it only appeared in other manually built targets + secheme
Finally, I found that this problem will occur as long as I do pod install.
You can only temporarily delete the manually established target + secheme and re-establish it.
xcode execution command + shfit + K


Live Trading vs. Backtest

Note: this is the technical bug tracker, please use other platforms for getting support and starting a (non technical) discussion. See the getting help page for details.
I'm submitting a ...
[ X] bug report
[ ] question about the decisions made in the repository
Action taken (what you did)

live trading session did not trigger a sell while the backtest did it
same asset/currency, method, candle size, history size and historical data

Expected result (what you hoped would happen)

live trading session should have triggered a sell like backtest on the same data

Actual result (unexpected outcome)

live trading session did not trigger a sell on that specific time frame

Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, etc)

i used neuralnet method
may be there is a simple reason i dont see

Even I get a similar issue where it shows trades during backtesting, however in live trading it shows 0 trades on live gekko. But when I check the exchange, trade is happening there. It's strange.

Do you have logs available? If you run it through the UI logs can be found in the logs folder.

@askmike Thanks for clarifying. Can you plz help with another issue #2646    Thanks again.


Timeout while api is up

Error Message: Severity: error --> Exception: cURL error during making API call. cURL Error Number:[28] with error:[Operation timed out after 15001 milliseconds with 0 bytes received]
An uncaught Exception was encountered
Type: QuickBooksOnline\API\Exception\SdkException
Message: cURL error during making API call. cURL Error Number:[28] with error:[Operation timed out after 15001 milliseconds with 0 bytes received]
Filename: /var/www/codeigniter/vendor/quickbooks/v3-php-sdk/src/Core/HttpClients/CurlHttpClient.php
Line Number: 112
Backtrace:
File: /var/www/codeigniter/vendor/quickbooks/v3-php-sdk/src/Core/HttpClients/CurlHttpClient.php
Line: 47
Function: handleErrors
File: /var/www/codeigniter/vendor/quickbooks/v3-php-sdk/src/Core/HttpClients/SyncRestHandler.php
Line: 215
Function: makeAPICall
File: /var/www/codeigniter/vendor/quickbooks/v3-php-sdk/src/Core/HttpClients/SyncRestHandler.php
Line: 127
Function: OAuth2APICall
File: /var/www/codeigniter/vendor/quickbooks/v3-php-sdk/src/DataService/DataService.php
Line: 1021
Function: sendRequest
File: /var/www/codeigniter/application/models/QuickBooks_model.php
Line: 249
Function: Query
File: /var/www/codeigniter/application/controllers/QBO.php
Line: 67
Function: query
File: /var/www/codeigniter/index.php
Line: 315
Function: require_once

So this has happened again but this time it  has been happening for 2 days, any one know whats up.

I will close this, at some point someone added a Global  I can set to change the default timeout, thanks

how did you fix this problem ?

Hope this helps, but there a global not mentioned in the docs that can be used if your requesting alot of data at once.
        if (defined('QUICKBOOKS_API_TIMEOUT')) {             // if the timeout constant is set, use it for the timeout             $timeOut = (int)QUICKBOOKS_API_TIMEOUT;         }

How do you set the global?


Add and Delete Button

Do this library have Add and delete button for card and lane like real Trello? If have, pls let me know how to using it? Tks

Right now there are no add and delete buttons for card. Delete should be easy to do. But Add might lead to invoking a form containing fields to create a card. Will keep you posted on both the features on this thread!

The latest release includes changes to add or delete cards within a lane.

Check this story for example. All starts with setting the editable board prop to true.


[oap-native-sql] remove validity for average

fixes avg null issue for Q85 on sf1000

@xuechendi verified on tpch queries (sf100) and tpcds queries (sf1000)


CatalogItem and performance

While working on https://github.com/rymurr/harlequin-snowflake I was noticing that the catalog generation was taking upwards of 1min for my (rather large) snowflake.
I was experimenting with ways to make the children parameter of CatalogItem lazy without much success. I thought I would raise the issue here so we could talk about the best design to allow loading of large catalogs.

Hey Ryan, nice work on the snowflake adapter 🙌
To confirm, is the slow part:

the SQL calls to Snowflake to fetch the information schema for the columns in each database
the Python looping and creating Harlequin Catalog entries for each column, table etc?

Hey @alexmalins I haven't tested yet. I think its a bit of both. I have rather a lot of databases in this account so I am making ~50 requests to snowflake and having to create upwards of 50k CatalogItems.
Thinking more about it for me the real advantage to a lazy catalog for snowflake is around the current need for starting a warehouse to get metadata from information_schema. This catalog takes >1min to collect and so the user pays for several min of compute for every catalog refresh (I think this is a peculiarity of snowflakes cost model and doesn't really apply to other backends). The snowflake idiomatic way to get catalog metadata is to use show terse {databases,schemas,tables,columns} invocations which don't start a warehouse and are ~free.

I agree that lazy loading is a good idea for some resources, especially on some adapters, but honestly even a local duckdb or sqlite db catalog is slow when you have 10's of thousands of CatalogItems (which isn't that hard to reach).
The Catalog widget is based on Textual's built-in Tree viewer, but they have another widget, the DirectoryTree, which lazy-loads node children. We use this for Harlequin's file and s3 viewers. So the tree viewer itself isn't the issue here.
In the v1 adapter interface, we force the adapter to provide all the nodes up-front, but this was a bad choice by me. It was driven by my hatred of slow catalog panes in DataBricks and SSMS, but it clearly doesn't scale well. Caching the catalog helps, but refreshes and cold starts are painful for a db of any real size, for most adapters.
For a v2 adapter interface, CatalogItems are going to get more complicated, and won't just be data. There are a few other issues tagged "adapter v2" to give you an idea of what I'd like to support, e.g., arbitrary actions on CatalogItems #213 and arbitrary/pluggable catalogs #421
I think a general design for #213 points to the way forward here -- a CatalogItem needs to provide a method for fetching its children, so that Harlequin can decide the best time to do that. I would personally like to prefetch the first level of hidden children, so that exploration can be faster, and you don't have to wait for a sql query to complete every time you expand a tree node.

@rymurr my experience from the Databricks side is the speed of building a Catalog is determined mainly by the communications with the server, and not Python instantiating the CatalogItem objects.
E.g.

It takes a couple of seconds to index on the order of 50k CatalogItems when using the unity catalog indexing, which only requires two SQL calls. Most is overhead for the time for the server to execute the SQL.
When not using unity catalog indexing to create the same number of CatalogItems then indexing takes 10s of minutes. It's because each table (order 5k tables) requires its own SQL query.
Just mocking the creation of CatalogItems locally I can create a million items in about a second:

from harlequin.catalog import CatalogItem

items = []
for i in range(1, 1000000):
    items.append(
        CatalogItem(
            qualified_identifier=(
                f"{i}.{i}.{i}.{i}"
            ),
            query_name=i,
            label=i,
            type_label=i,
        )
    )

So if the lazy indexing Snowflake solution means a switch from ~50 total server communications to one communication per item expand in the Harlequin Data Catalog pane, it's likely the time to index everything will become slower. But that's no practical problem for users who probably won't be doing that (i.e. opening all leaves in the tree), as long as the communications don't cause the Data Catalog pane to feel too laggy as items are expanded for the first time.
For the Databricks adapter, Ted, it should be fine for me to implement the new lazy API in adapter v2. But in practice for the unity catalog indexing, it will make sense for me to store a pyarrow table with all the table+col metadata on each refresh, then the lazy items query that table locally and not the server each time a user expands an item in the Data Catalog pane. I.e. "fake" lazy loading, as it'll just be much faster that way.

Getting very close on this. The basic design is a new subclass of CatalogItem called InteractiveCatalogItem that defines a fetch_children() method to lazy-load its children. Harlequin will pre-fetch the children for any visible nodes. This seems to work really well with DuckDB; I need to do more testing with higher-latency databases.
More exciting, InteractiveCatalogItems will also get to define a list of Interactions, which populate a context menu per #213 . This is really quite cool. Here's a rough and ready demo:
https://github.com/user-attachments/assets/0675586d-ede0-43f8-ae6f-641e53c349f7

looks sweet 💯
fetch_children() will definitely improve the UX for Databricks users with hive metastores
I'm just about to ship an update to harlequin-databricks to implement query cancelling


refactor(app/renderer): remove containers

it's time we remove containers
all of this is to prepare the usage of the new (now kinda old) context

blocked by #222 (cherry picked)

I've refactored all I could manage, as for result-item.js, I really don't understand this. Can you take over, @vutran ?

I would to have result-item.js migrated before I merge this


[New game]: ENTANGLED 👾

🎮 Game Request
Game logic and basic description

There was once a pair of quantumly entangled particles that can only get close to each other but can never fuse together. No matter what they do, they are cosmically destined to stay away from each other. All the Quantum Universe's a stage, these two particles merely are players, and can only dance forever in unison.

This is a story about a particle, forever seeking a way back to its soulmate.

Point down the features
Game points
Select program in which you are contributing
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

/assign

Hey @0xabdulkhalid !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

Hey @0xabdulkhalid ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


Zabbix update script points to old version

✅ Have you read and understood the above guidelines?
yes
📜 What is the name of the script you are using?
Zabbix LXC
📂 What was the exact command used to execute the script?
bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/zabbix.sh)"
📝 Provide a clear and concise description of the issue.
The Update script point to the old version 7.0:
wget -q https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb
The actual version is:
wget https://repo.zabbix.com/zabbix/7.2/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb
⚙ What settings are you using?

[X] Default Settings
[ ] Advanced Settings

🖥 Which Linux distribution are you using?
Debian 12
🔄 Steps to reproduce the issue.
Running the update script installs not the new version 7.2.
❌ Paste the full error output (if available).
It always remains on version 7.0. because the new version 7.2 is not referenced.
🖼 Additional context (optional).
No response

Not an issue. Its an Feature-Request. Investigate later


Add missing 'bake_finished' signal

Missing bake_finished signal to be emitted once 3D navigation baking is finished.

@AndreaCatania could you please review?

Thanks!


Add lektorium.tv support

Sample urls:
http://www.lektorium.tv/university/3089 - "channel" like page, links to multiple video pages
http://www.lektorium.tv/lecture/15267 - Individual video page

Just wanted to chime in on this issue. Most, if not all, of the videos on lektorium.tv are embedded YouTube videos. So you can simply download these videos by copying the YouTube links and pasting them into youtube-dl. So I believe this issue should be closed.


Push manual page doesn't describe remote syntax

File: engine/reference/commandline/push.md
Nothing is mentioned about the username portion of the syntax, it shows up unexplained at the bottom of the page (see how "myadmin" just comes out of nowhere with no explanation).

Closing this ticket due to its age, and the impending refactor. If you think this is in error, feel free to reopen. Thanks!


Find-account: Fix email(s) validation logic

https://github.com/zulip/zulip/issues/3128
GIFs or Screenshots:

@Nikhil-Vats
Also wanted to point out that you want to have the commit summary (title) follow the convention we use.
You can read more about in the docs here.
Please run ./tools/lint from within vagrant to get the related error messages.
It should be fine if you change it to something like find-account: Fix email(s) validation logic.

@AsociTon @YashRE42 The links were required by @timabbott to site the source so they are necessary and all the linting errors are now removed. Thanks for the reviews. :+1:

Closing as this PR is very stale; https://github.com/zulip/zulip/pull/14010 seems to be the latest PR for this issue.


Fix handshake_failure when using SOCKS proxy with SNI-enabled server

Hello!
I was getting the following exception when connecting to a SNI-enabled server via SOCKS proxy:
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

Hi @vmiliantsei,
have merged your fix and also done some minor adjustments.
Please have a look at the latest changes.
I also made a first 3.3.0-SNAPSHOT build available - please test.

Hey @rbri.
I've tested it and it works. Thanks!
Have a great day!

Great, thanks


Left panel file ordering fixed

https://github.com/lapce/lapce/issues/2730 fixed

Looks good, send it to upstream and post a link to the pull request here.

https://github.com/lapce/lapce/pull/2912


Add support for installing multiple apks when executing a single workload

At the moment the wa framework only supports single apk workloads. Attempts to add additional apks to the dependencies folder results in a 'CRITICAL' error.

CRITICAL More than one .apk found in  workload_automation/dependencies/<workload_name> for <workload_name>

As part of our UX Performance work we would like to test how responsive devices are when you context switch between application tasks. This would involve installing and launching multiple apks during a single wa run.
Proposal
Add additional functionality to the framework to allow multiple apks to be installed to the device. It might also be nice to optionally launch these apks automatically as in the single apk case.
Discussion
Perhaps this can be accomplished by adding a new MultiApkWorkload class that can be inherited and extended with modified init_resources() and resource getters methods.

Antutu is an example of a workload that requires multiple APK files, you can see how we achieve this here:
https://github.com/ARM-software/workload-automation/blob/master/wlauto/workloads/antutu/__init__.py#L78

I tried a similar approach as Antutu but doesn't this assume that the additional apks are located within the workload  folder so as to make them discoverable? If I want to call the super class in setup() then it will still complain about multiple apks being present. How can I add more than one apk to the dependencies folder in that case?


Add python packages

Motivation for this change
Added multiple python packages because of missing dependencies
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Added multiple python packages because of missing dependencies

Which packages are missing those dependencies?

Thanks for the feedback!
If I remove argparse, entrypoint2 won't build anymore:
removing build/bdist.linux-x86_64/wheel
installing
/build/entrypoint2-0.0.6/dist /build/entrypoint2-0.0.6
Processing ./entrypoint2-0.0.0-py3-none-any.whl
Requirement already satisfied: decorator in /nix/store/80wi4jym5nkg5p6djf6s23m2m5hkzji0-python3.7-decorator-4.3.2/lib/python3.7/site-packages (from entrypoint2==0.0.0) (4.3.2)
Collecting argparse (from entrypoint2==0.0.0)
  ERROR: Could not find a version that satisfies the requirement argparse (from entrypoint2==0.0.0) (from versions: none)
ERROR: No matching distribution found for argparse (from entrypoint2==0.0.0)
builder for '/nix/store/189azqcsqp0sdlckc372imdrdxifw7i6-python3.7-entrypoint2-0.0.6.drv' failed with exit code 1
error: build of '/nix/store/189azqcsqp0sdlckc372imdrdxifw7i6-python3.7-entrypoint2-0.0.6.drv' failed

And sorry for the confusion: I wanted to add pylint-django and django-jenkins, therefore I had to add some other (currently missing) dependencies.

If I remove argparse, entrypoint2 won't build anymore

Kind of hacky, but you could use substituteInPlace setup.py --replace "argparse" "". Then it wont assert that a argparse is found on the pythonpath

If I remove argparse, entrypoint2 won't build anymore:

The package (setup.py) should not declare a dependency on argparse, and should thus be fixed, preferably upstream.

Thank you very much for your input!

@FRidh are the changes I made okay? It shows that you didn't resolve your change request

Ping

What is the status?

@GrahamcOfBorg build python2Packages.django-jenkins python3Packages.django-jenkins python2Packages.pyvirtualdisplay python3Packages.pyvirtualdisplay python2Packages.pyscreenshot python3Packages.pyscreenshot python2Packages.entrypoint2 python3Packages.entrypoint2 python2Packages.django-tables2 python3Packages.django-tables2 python2Packages.pylint-plugin-utils python3Packages.pylint-plugin-utils python3Packages.pylint-django

Added multiple python packages because of missing dependencies

Which packages are missing those dependencies?

@FRidh I suppose he is referring to his own project.

Yes, I'm sorry, that souded very misleading.. This PR is self contained and ready to be merged. There is nothing missing here :)


Add Test if Node is already installed to installer script

If latest Node is already present, there is no need to download and build it again.

I agree. Need to look into this. PR is welcome.

The installer now only installs node when its not installed or an old version.


Migrating Pages from one setup to another

I created a few pages on a local setup that I thought I'd move to the live site I've got now. I copied the folders from one _sites/site/pages directory to the other on the server via FTP but I then couldn't get them to show up in the site. Are there any additional steps required?

Yes, the site.json file is the piece that actually has the relationships between pages and how to present them. Think of it like drupal's book database table that outline designer is interfacing with to structure material and pages/ at some level just being the node body db table :)


Gate tagged with cirq.google.PhysicalZTag does not serialize

Description of the issue
Cannot serialize a gate with the cirq.google.PhysicalZTag
How to reproduce the issue
>>> import cirq
>>> q = cirq.LineQubit(0)
>>> physical_gate = cirq.Z(q).with_tags(cirq.google.PhysicalZTag)
>>> physical_gate
cirq.TaggedOperation(cirq.Z(cirq.LineQubit(0)), <class 'cirq.google.ops.physical_z_tag.PhysicalZTag'>)
>>> cirq.to_json(physical_gate)
Traceback (most recent call last):
...
TypeError: _json_dict_() missing 1 required positional argument: 'self'

Cirq version
0.10.0

I see; thanks for pointing out my mistake. I suppose this also means that all the gates I thought we actually physical Z gates are actually not...

I think it would make sense for with_tags to check the type and raise an exception with informative error message to avoid this in future.

@viathor, currently with_tags doesn't do any checking about what kind of objects are used as tags. I seem to recall that we discussed requiring all tags to inherit from some marker trait (a hypothetical cirq.Tag) but decided against this to avoid over-constraining the tag semantics (e.g., there may be cases where you want to use str or some other type you don't control as a tag, and can't change it to inherit from a marker trait). We may want to revisit that decision.
Another possibility in this particular case would be to change our serialization code to check for the PhysicalZTag class or instances of that class and treat them the same way to avoid this particular pitfall. Or, we could change the class to _PhysicalZTag and make PhysicalZTag be a singleton instance of it (with a __call__ method that returns itself for compatibility). It has always irked me that we have to create instances when this is clearly a singleton, and it's clear from this issue that this is confusing for others as well.

We could also special-case the type type:
if isinstance(tag, type):
    tag = tag()

(This will certainly upset mypy. There is a longer better way to write this. This snippet is just to get the idea across.)
Downside here is that if someone passes a tag class whose ctor requires arguments the error message may be even more confusing...

My input is that a Union[str,cirq.Tag] type signature would be a good direction. Allows for str tags as well as any instance of cirq.Tag. Also +1 for adding singletons for cirq.google.PhysicalZTag and a privagte _PhysicalZTag class - this would help in syntax.

Useful discussion on "why not use strings for tags?" can be found in #2407.

just wanted to +1 @viathor's suggestion for an exception to be raised if you don't use an instance. This has also come up for me with NoSyncTag() in the past.


DocsArchive-1.0.20251.8Auto archive content

Auto archive content from https://github.com/opstestppe1/E2E_DocsArchive.git

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

File
Status
Preview URL
Details

.openpublishing.publish.config.json
:white_check_mark:Succeeded

.openpublishing.redirection.json
:white_check_mark:Succeeded

e2e_archiveDocs_20200908193053/TOC.yml
:white_check_mark:Succeeded
View

e2e_archiveDocs_20200908193053/breadcrumb/e2e_archiveDocs_20200908193053/toc.yml
:white_check_mark:Succeeded

e2e_archiveDocs_20200908193053/docfx.json
:white_check_mark:Succeeded

e2e_archiveDocs_20200908193053/fallback.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


python37Packages.google-cloud-pubsub: 2.2.0 -> 2.3.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python37Packages.google-cloud-pubsub is: "Google Cloud Pub/Sub API client library"
meta.homepage for python37Packages.google-cloud-pubsub is: "https://pypi.org/project/google-cloud-pubsub"
meta.changelog for python37Packages.google-cloud-pubsub is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

Warning: a test defined in passthru.tests did not pass

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 2.3.0 with grep in /nix/store/1123n13pw1fnnpgd0k2iww8byg92gmkl-python3.7-google-cloud-pubsub-2.3.0

directory tree listing: https://gist.github.com/92b97b92c8b9a679830927e96d4b4119

du listing: https://gist.github.com/915767a336d9127d526bc0114dedfe98

Rebuild report (if merged into master) (click to expand)

12 total rebuild path(s)

3 package rebuild(s)

3 x86_64-linux rebuild(s)
3 i686-linux rebuild(s)
3 x86_64-darwin rebuild(s)
3 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
python37Packages.google-cloud-pubsub
python38Packages.google-cloud-pubsub
python39Packages.google-cloud-pubsub

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/1123n13pw1fnnpgd0k2iww8byg92gmkl-python3.7-google-cloud-pubsub-2.3.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python37Packages.google-cloud-pubsub https://github.com/r-ryantm/nixpkgs/archive/984c7a54cb200b2e206f40621bf2e60f1224d85b.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/1123n13pw1fnnpgd0k2iww8byg92gmkl-python3.7-google-cloud-pubsub-2.3.0
ls -la /nix/store/1123n13pw1fnnpgd0k2iww8byg92gmkl-python3.7-google-cloud-pubsub-2.3.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package marked as broken and skipped:

python39Packages.google-cloud-pubsub

2 packages built:

python37Packages.google-cloud-pubsub
python38Packages.google-cloud-pubsub

Maintainer pings
cc @SuperSandro2000 for testing.

Result of nixpkgs-review pr 112456 at 984c7a54 run on aarch64-linux 1

1 package marked as broken and skipped:

python39Packages.google-cloud-pubsub

2 packages built:

python37Packages.google-cloud-pubsub
python38Packages.google-cloud-pubsub


Set preview URL as action output

It would be nice to have the resulting preview URL as an action output, so that it can be used in different contexts.
In composite actions, this can be done like this

Good idea. It'll be a while before I get a chance to work on this - you seem familiar with the docs, so if you feel comfortable with contributing I'd gladly accept a PR.


Never ending Loading Workspace in VSC

When opening a workspace with 29 projects I keep getting stuck with a 'loading workspace' notification popup in the bottom left of the screen. It never finishes the task. Canceling it results in not having intellisence.
Restarting VSC, reload windows, uninstalling the al extension and installing it again, nothing works.
When I checked the runtime status of the al Language extension I see this:

and after a long search I found a trailing comma in an app.json file at the end of the depencies declaration.
I think it should be possible to catch this and be more specific in the the error message, and to make it pop up instead of hiding it.

Same as for #7287, we have internally discussed this issue and have decided not to accept this issue to be fixed at the moment to prioritize other issues. Our suggested workaround for now is to reload the window if there was a problem loading the app.json.

Fresh install. I haven't seen anything from this application yet OTHER than 'loading workspaces'.


Missing fonts

Hello,
after the EsoCRM update to 7.5.1
I get an error message that 3 fonts are missing.

Ok, I was able to fix the upper error.
I had put the modern.css back on because I had made adjustments there.
But parts of it were changed and therefore the prompt font was not found.
But now the following error messages are displayed:

Hi, seems like the resource is found but blocked by CORS policy. I don't have these issues in my production enviroment running 7.5.0 but I will check this week :)
Are you running Apache, nginx or any other proxy?

My server was set to Apache. I switched to nginx as a test and see no difference.

As far as I can see, this problem is no longer in 7.5.5.
After all, it didn't bother me. I actually came across it because of some other troubleshooting.

As far as I can see, this problem is no longer in 7.5.5.
After all, it didn't bother me. I actually came across it because of some other troubleshooting.


Bump oras-go to v1.2.0

Bumps oras-go to v1.2.0
Used go mod tidy -compat=1.17

@lucacome Sorry but missed this PR when updating to latest oras.
Closing as superseded by #11093

Good point @lucacome. As I had then pushed the PR and it was ready to go (didn't need rebase like yours), I decided to supersede yours. As luck would have it, it didn't get in anyway. More hurry, less haste.
Sorry for this.

no worries, I just hope your PR will have better luck 😄


add riscv-v for nuclei UX900fd

Nuclei crop. released the core(UX900), and has rvv1.0 feature,
We want to make some adaptations in this Openblas project

@martin-frbg
Thank you for your review.
Bring in ARCH_EXT=v  just for convenience of comparison between the version has no rvv support and has rvv support.
your suggestion （use  TARGET=RISCV64_GENERIC ）is worth considering.
I will redo my work


Update FUNDING.yml

Change the sponsorship account to the wavesurfer-js org.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.2%) to 76.635%

Files with Coverage Reduction
New Missed Lines
%

src/drawer.canvasentry.js
3
69.23%

Totals

Change from base Build<PHONE_NUMBER>:
-0.2%

Covered Lines:
1217

Relevant Lines:
1505

💛  - Coveralls


PATCH on Chassis/Power

Added handling PATCH on Power in svc-systems, svc-device-manager and svc-api.

Accepted on community meeting 23th Jan


Add NoSearchResults IllustratedMessage component

🙋 Feature Request
Add this component to the library of available IllustratedMessages

I've made it locally, mimics all other IllustratedMessages, figured we can contribute it back!

🤔 Expected Behavior
Works like an IllustratedMessage
😯 Current Behavior
The NoResults illustrated image is a bit vague - not Search specific

💁 Possible Solution
Use the svg and pass it the illustrated image props, got a working solution, PR coming soon!
🔦 Context
I'm working with the Commerce Cloud Search team - we need a no results image that illustrates that the search went through but no results for it.
💻 Examples
Real life example: https://spectrum.adobe.com/page/icons/ already uses that icon but it's not in an IllustratedMessage format - the idea is to support it

🧢 Your Company/Team
Adobe / Commerce Cloud
🎁 Tracking Ticket (optional)

@evargast we'll be following up with the design team on new IllustratedMessages being added to Spectrum shortly

@evargast we'll be following up with the design team on new IllustratedMessages being added to Spectrum shortly

Nice, thanks!


migrate to AndroidX

Hi I migrated to androidX library and I have a problem with DialogFragment.
do you any plan to release a compatible version with AndroidX?

https://stackoverflow.com/q/52033810/9765252 ?


Keep only needed unwrap statements

While looking through the code I've noticed a whole bunch of unwrap statements. Would be good to get a close look into which of these could be replaced.
See:
$ rg unwrap -c

src/used_variables.rs:3
src/windows/link.rs:1
src/main.rs:10
src/windows/env.rs:2
src/recipe.rs:3
src/packaging.rs:11
src/post.rs:3
src/index.rs:25
src/variant_config.rs:14
src/unix/env.rs:2
src/linux/link.rs:1
src/linux/env.rs:8
src/metadata.rs:2
src/render/pin.rs:15
src/render/resolved_dependencies.rs:5
src/recipe/parser.rs:3
src/source/url_source.rs:6
src/recipe/stage1.rs:5
src/recipe/jinja.rs:3
src/recipe/error.rs:3
src/render/solver.rs:13
src/recipe/parser/build.rs:3
src/recipe/parser/about.rs:2
src/source/git_source.rs:13
src/source/mod.rs:16
src/recipe/parser/package.rs:2
src/macos/link.rs:1
src/recipe/parser/source.rs:1
src/test.rs:20
src/selectors.rs:19
src/env_vars.rs:7

I have reviewed most of the code as well recently, can say largely most of it can be removed, some more easily than others, perhaps anyone making a PR consider doing it one file at a time.

I am also happy to take on some of these, maybe during the next train ride or so. Will ping here which files I am tackling to avoid double work.

I cleaned a few. Just to note, some are also unwrap_or_default and similar (you might want to use unwrap() as search).


Which theme is used to build typedoc.org?

I am looking at your site
http://typedoc.org/
Was this site generated using typedoc? What was used to create it?
It looks nice.

https://github.com/TypeStrong/typedoc-site


SAP Release: Configurator update and unbinding SAP services

The image for the autoscaler service should have been different in Heimdal. It is now corrected.
So this image can be updated to the one attached.

Image can be updated to the one attached. This was a UI bug that has been fixed.

Commit https://github.com/mendix/docs/pull/3592/commits/ed4db1ce86e46143e3d6da779a83d68e1529594b adds files https://github.com/mendix/docs/pull/3592#issuecomment-898501105 and https://github.com/mendix/docs/pull/3592#issuecomment-898427576

Configurator button caption is changed from "Open Editor" to "Configurator" to match with the Services tab button.
The following images can be replaced with the attached ones:

database-new-app.png
database-new-environment.png
add-binding-configuration.png

Configurator button caption is changed from "Open Editor" to "Configurator" to match with the Services tab button.
The following images can be replaced with the attached ones:

Images added in commit: https://github.com/mendix/docs/pull/3592/commits/137b7724b1496a006740c29e778beee4fa2ad17a


feature: data-expire by partition info

Why are the changes needed?

Close #3272.
Brief change log

When the expiration field is the partition field and the expiration level is partition, prioritize using the partition information of the datafile to expire the data files.

Modify the expected results of a test case, which is slightly different from the previous implementation. In partition expiration, date comparison is needed, and data files with the same date should not be expired.

How was this patch tested?

[x] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[x] Run test locally before making a pull request

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

@klion26 I have already responded and made modifications. Please help review it again.

@lintingbin thanks for rebasing the comments, the change LGTM. let's see if there are any more comments from the community.
Do we need to modify the corresponding documents?

@lintingbin thanks for rebasing the comments, the change LGTM. let's see if there are any more comments from the community.
Do we need to modify the corresponding documents?

There is no need to modify the documentation since there are no changes in the parameters.

@XBaith I have refactored the code by removing some unnecessary parts and optimizing the naming of variables to enhance readability. I also added a check for cases where transform is Void. Please review the code again.

@XBaith I have refactored the code by removing some unnecessary parts and optimizing the naming of variables to enhance readability. I also added a check for cases where transform is Void. Please review the code again.

I don't see any unit test for that case. Do you mean you test locally for Void transform?

Sorry for the mistake; this bug existed prior to this PR. I will raise another PR to address it.
Additionally, we should add more unit tests to cover vulnerabilities as much as possible. Thanks for your contribution!


Pulsar proxy not routing https requests to function workers

Describe the bug
Pulsar v2.3.2
After following the Pulsar documentation from the following link, Configure Proxies for Functions-workers, to run functions workers on separate machines outside the brokers, any pulsar-admin cli request to functions results in the following error:
Function worker service is not done initializing. Please try again in a little while. Reason: HTTP 503 Service Unavailable
To Reproduce
Steps to reproduce the behavior:

Start with a TLS enabled cluster that has brokers and pulsar proxies
client.conf points to the proxy.conf webServicePortTls so that all admin requests go through
the proxies
This means the default admin-url == the pulsar proxy url and port  for webServicePortTls
My proxy.conf setup is as follows:

proxy.conf
### --- Broker Discovery --- ###

# The ZooKeeper quorum connection string (as a comma-separated list)
zookeeperServers=zk1:2181,zk2:2181,zk3:2181

# Configuration store connection string (as a comma-separated list)
configurationStoreServers=zk1:2181,zk2:2181,zk3:2181

# if Service Discovery is Disabled this url should point to the discovery service provider.
brokerServiceURL=
brokerServiceURLTLS=

# These settings are unnecessary if `zookeeperServers` is specified
brokerWebServiceURL=
brokerWebServiceURLTLS=

# If function workers are setup in a separate cluster, configure the following 2 settings
# to point to the function workers cluster
functionWorkerWebServiceURL=http://myfunctionscluster:6750
functionWorkerWebServiceURLTLS=https://myfunctionscluster:6751

# ZooKeeper session timeout (in milliseconds)
zookeeperSessionTimeoutMs=30000

### --- Server --- ###

# The port to use for server binary Protobuf requests
servicePort=16650

# The port to use to server binary Protobuf TLS requests
servicePortTls=16651

# Port that discovery service listen on
webServicePort=18080

# Port to use to server HTTPS request
webServicePortTls=18443

# Path for the file used to determine the rotation status for the proxy instance when responding
# to service discovery health checks
statusFilePath=

### ---Authorization --- ###

# Role names that are treated as "super-users," meaning that they will be able to perform all admin
# operations and publish/consume to/from all topics (as a comma-separated list)
superUserRoles=admin

# Whether authorization is enforced by the Pulsar proxy
authorizationEnabled=false

# Authorization provider as a fully qualified class name
authorizationProvider=org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider

# Whether client authorization credentials are forwared to the broker for re-authorization.
# Authentication must be enabled via authenticationEnabled=true for this to take effect.
forwardAuthorizationCredentials=true

### --- Authentication --- ###

# Whether authentication is enabled for the Pulsar proxy
authenticationEnabled=true

# Authentication provider name list (a comma-separated list of class names)
authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderTls

### --- Client Authentication --- ###

# The three brokerClient* authentication settings below are for the proxy itself and determine how it
# authenticates with Pulsar brokers

# The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers
brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationTls

# The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers
brokerClientAuthenticationParameters=tlsCertFile:/opt/pulsar/certificates/proxy.cert.pem,tlsKeyFile:/opt/pulsar/certificates/proxy.key-pk8.pem

# The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers
brokerClientTrustCertsFilePath=/opt/pulsar/certificates/ca.cert.pem

# Whether TLS is enabled when communicating with Pulsar brokers
tlsEnabledWithBroker=true

##### --- Rate Limiting --- #####

# Max concurrent inbound connections. The proxy will reject requests beyond that.
maxConcurrentInboundConnections=10000

# Max concurrent outbound connections. The proxy will error out requests beyond that.
maxConcurrentLookupRequests=50000

##### --- TLS --- #####

# Deprecated - use servicePortTls and webServicePortTls instead
tlsEnabledInProxy=true

# Path for the TLS certificate file
tlsCertificateFilePath=/opt/pulsar/certificates/broker.cert.pem

# Path for the TLS private key file
tlsKeyFilePath=/opt/pulsar/certificates/broker.key-pk8.pem

# Path for the trusted TLS certificate file.
# This cert is used to verify that any certs presented by connecting clients
# are signed by a certificate authority. If this verification
# fails, then the certs are untrusted and the connections are dropped.
tlsTrustCertsFilePath=/opt/pulsar/certificates/ca.cert.pem

# Accept untrusted TLS certificate from client.
# If true, a client with a cert which cannot be verified with the
# 'tlsTrustCertsFilePath' cert will allowed to connect to the server,
# though the cert will not be used for client authentication.
tlsAllowInsecureConnection=false

# Whether the hostname is validated when the proxy creates a TLS connection with brokers
tlsHostnameVerificationEnabled=false

# Specify the tls protocols the broker will use to negotiate during TLS handshake
# (a comma-separated list of protocol names).
# Examples:- [TLSv1.2, TLSv1.1, TLSv1]
tlsProtocols=TLSv1.2

# Specify the tls cipher the broker will use to negotiate during TLS Handshake
# (a comma-separated list of ciphers).
# Examples:- [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]
tlsCiphers=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

# Whether client certificates are required for TLS. Connections are rejected if the client
# certificate isn't trusted.
tlsRequireTrustedClientCertOnConnect=true

##### --- HTTP --- #####

# Http directs to redirect to non-pulsar services.
httpReverseProxyConfigs=

# Http output buffer size. The amount of data that will be buffered for http requests
# before it is flushed to the channel. A larger buffer size may result in higher http throughput
# though it may take longer for the client to see data.
# If using HTTP streaming via the reverse proxy, this should be set to the minimum value, 1,
# so that clients see the data as soon as possible.
httpOutputBufferSize=32768

# Number of threads to use for HTTP requests processing. Default is
# 2 * Runtime.getRuntime().availableProcessors()
httpNumThreads=

### --- Token Authentication Provider --- ###

## Symmetric key
# Configure the secret key to be used to validate auth tokens
# The key can be specified like:
# tokenSecretKey=data:base64,xxxxxxxxx
# tokenSecretKey=file:///my/secret.key
tokenSecretKey=

## Asymmetric public/private key pair
# Configure the public key to be used to validate auth tokens
# The key can be specified like:
# tokenPublicKey=data:base64,xxxxxxxxx
# tokenPublicKey=file:///my/public.key
tokenPublicKey=

# The token "claim" that will be interpreted as the authentication "role" or "principal" by AuthenticationProviderToken (defaults to "sub" if blank)
tokenAuthClaim=

### --- Deprecated config variables --- ###

# Deprecated. Use configurationStoreServers
globalZookeeperServers=

Expected behavior
The proxy should inspect the request from the admin cli, determine if it is for functions or other, and forward accordingly to functions worker cluster or brokers, etc..

I believe that is how the diagram is shown in the Configure Proxies for Functions-workers link?
Possibly this bit of code is attempting to do just that?: AdminProxyHandler

Additional context
You can force the correct behavior by manually overriding the --admin-url parameter on the pulsar-admin cli as follows before you run it. I was under the impression that if you set it up correctly, this was unnecessary?
$PULSAR_HOME/bin/pulsar-admin \
--admin-url  https://myfunctionscluster.com:6751 \
functions getstatus \
--tenant public \
--namespace default \
--name exclamation

functionsWorkerEnabled is set to false on my brokers
the functions workers are running on separate hardware from the rest of the main brokers, bookies, etc
pulsarFunctionsCluster is set to the value of my Pulsar cluster name
the functions workers work just fine, you just have to override the admin-url to talk to them

Thanks!

This has been fixed in the latest master.


signet lnd.conf is filling up with erroneous entries

related to:
rpcmiddleware.enable=true

PR merged for v1.9.0 - closing issue.


Force Tabular Editor CLI to log in English

Hi
I have setup automated build with Azure DevOps using the Tabular Editor CLI. We do schema validation, run best practice rules and deploy the data models. Everything works great, but it annoys me that some of the output Visual Studio Team Services logging commands is shown in Danish.
Examples:
##[warning]Error on measure 'N�gletal'[Daglig fakturering %]: Dette udtryk refererer til et Measure-objekt med navnet 'N�gletal[Daglig fakturering]', som har en fejl.
##[warning]Error on measure 'Transaktion'[FREMDLOHN]: Kolonnen 'OriginalFremmed' i tabellen 'Sransaktionstype' blev ikke fundet, eller den kan muligvis ikke bruges i dette udtryk.

It only seems to happen with the deployment, but here I also get messages in English...
This is a fix of logging from both schema validation, BPA check and deployment where the output is English:
##[warning]Information: Unprocessed object: partition 'Kalender' on table 'Kalender' (NoData)
##[warning]Column 'Vogndb'[MKoder] violates rule "[Performance] Remove redundant columns in related tables"
##[error]Measure [Tilbud] violates rule "[Formatting] Provide format string for measures"
##[warning]Column named 'Postnr' exists in the source query for table 'Eftermarkedsordre Header', but is not mapped to any Tabular Model column.
##[warning]Column 'KPI'[�r M�ned] violates rule "[Maintenance] Remove unnecessary columns"

Is it possible to show all errors in English?
And can you also help with fixing the special danish characters, that is shown as �. I'm not sure it has anything to do with Tabular Editor as I also get this with SQL deployment using the Invoke-Sqlcmd PowerShell cmdl. You might have an idea on this too?

Tabular Editor simply outputs the error messages returned from Analysis Services. To make Analysis Services speak a different language, add the LocaleIdentifier to the AS connection string: https://docs.microsoft.com/en-us/analysis-services/translation-support-in-analysis-services?view=asallproducts-allversions

Perfect. That made the trick.
Our Analysis Services engine is a Power BI Premium Capacity, so I really don't know why it should speak Danish? And only with some of the outputs. We connect with a Service Principal, that don't have a locale/language setting?
Any way - I learned something new and it's working. Now I just need to figure out why I get � in the output. Probably something I should change in the settings on the Azure DevOps Pipeline.

I believe the engine speaks whatever language the client machine OS uses.
Not sure about the special characters - you could try to run TabularEditor.exe through a PowerShell task rather than a command line task, to see if that changes anything.

We already run it through a PowerShell task, so that don't change it. But we also get the � in the output when using Invoke-Sqlcmd. So it must be something generic.
I close this comment. Thanks for the help!


load negative_embeddings

is there a way to load negative_embeddings, for example let's say I have a negative prompt
EasyNegativeV2 cartoon where EasyNegativeV2 correspond to TI embedding file (https://civitai.com/models/100191?modelVersionId=107234) . If I load it thru the diffusers pipeline load_textual_inversion it actually does acts as normal prompt inversion instead of negative. Hope I am explaining understandable.
thanks

yes, it's in the README - https://github.com/damian0815/compel/blob/d15e883bbbfae5b3fbd8d60065aa330c99a662b4/README.md#textual-inversion-support


No media_group_id in response

Hi, I have a problem with quickly dropping mediaGroup into a channel. Bot in linked chat gets media_group_id every other time. Will there be a fix for this?

Could you provide an example of the issue, including updates received by the bot?

https://api.telegram.org/botToken/getUpdates?allowed_updates=photo returns normally result, but sometimes there is no media_group_id field. Or should I create blank bot, channel and linked group to provide an example?

getUpdates (personal information removed)
[
	{
		"channel_post": {
			"message_id": 735,
			"sender_chat": {
				"type": "channel"
			},
			"chat": {
				"type": "channel"
			},
			"media_group_id": "replaced", // here it is
			"photo": []
		}
	},
	{
		"channel_post": {
			"message_id": 736,
			"sender_chat": {
				"type": "channel"
			},
			"chat": {
				"type": "channel"
			},
			"media_group_id": "replaced", // here it is too
			"photo": []
		}
	},
	{
		"message": {
			// there is no media_group_id field here 😥
			"from": {
				"id": 777000,
				"is_bot": false,
				"first_name": "Telegram"
			},
			"sender_chat": {
				"type": "channel"
			},
			"chat": {
				"type": "supergroup"
			},
			"forward_from_chat": {
				"type": "channel"
			},
			"forward_from_message_id": 735,
			"photo": []
		}
	},
	{
		"message": {
			// here too 😥
			"from": {
				"id": 777000,
				"is_bot": false,
				"first_name": "Telegram"
			},
			"sender_chat": {
				"type": "channel"
			},
			"chat": {
				"type": "supergroup"
			},
			"forward_from_chat": {
				"type": "channel"
			},
			"forward_from_message_id": 736,
			"photo": []
		}
	}
]

It seems to me that if you do not go to the comments immediately, the field will be present

Would allowed_updates=media_group_id work?

There is no media_group_id update type in https://core.telegram.org/bots/api#update

But there's no photo either...

It doesn't matter, it still gets data with an error
(I use telegraf nodejs lib, that's why I added their subtype to the query out of habit)

@midnightcoder-pro Could you send full received updates with all fields to @tdlib_bot in Telegram?

@levlam ok, I sent

@midnightcoder-pro Thanks! Fixed in Bot API 5.0.1.


fix: remove Select key value selects, fix default

Description
https://theappsmith.slack.com/archives/C025SE88KNE/p1725434811592439
Fixes #Issue Number
or
Fixes Issue URL

[!WARNING]
If no issue exists, please create an issue first, and check with the maintainers if the issue is valid.

Automation
/ok-to-test tags=""
:mag: Cypress test results

[!CAUTION]
If you modify the content in this section, you are likely to disrupt the CI result for your PR.

Communication
Should the DevRel and Marketing teams inform users about this change?

[ ] Yes
[ ] No

/build-deploy-preview skip-tests=true

/build-deploy-preview skip-tests=true

/build-deploy-preview skip-tests=true


Set image cards to load asyncronously

Currently the films endpoint waits to get all film images to load the page. It will be a better user experience if the user doesn't see an empty page and suddenly after all images are loaded the page is alive.
2 solutions:

either a loading animation
load the page as the urls are fetched for the image

Think the loading issue is because of the heroku's free tier hosting for hasura, it goes to sleep when it is inactive.


add travis badge for new gh org

because bling is cool

definitely appears https://github.com/reddit-diabetes/lita-diabetes/tree/travis_badge#lita-diabetes


Installation does not really work

The installation documentation might need an update
executing the php artisan lyra:install asks a question and the documentation does not mention anything and no matter what one choose, the /lyra gives a 403 error

I just tried it with a fresh installation of Laravel, in case you are using the basic mode you might get the 403 by having a session started without access permission to /lyra.
Check the working modes section:
https://lyra.sertxudeveloper.com/docs/en/v1.x/working-modes/working-modes.html#basic

I found the problem, it's a bug in the LyraAdminMiddleware. I'm going to publish a new release in the next minutes to solve this issue.


Add ability to open KCL samples in-app

Closes #1350 by adding a command to load a sample from our kcl-samples repo.
To get this list, I added a script that runs on yarn locally and writes the non-hidden folder names from that repo as a constant in our lib folder, which is then imported by my new command to provide the options for sample names.
On web, users can only overwrite their current file. On desktop, they will create a new file in their current file by default, but they can go back to the skipped method argument and change it to overwrite.
There are tests for all three ways to use this feature.
CI impacts
The tricky part of this PR is how to get the kcl-samples names into the app. I've added a yarn fetch:samples command to our package.json that uses the GitHub CLI to do that. I originally had that set to run on yarn postinstall, but I don't want that to have to run in every GH Action in every PR, so I removed it. I think we could run this manually for now, and add a GH Action to kcl-samples that opens a special kind of PR on this repo, which triggers yarn fetch:samples and commits the new file. But I would love feedback on if that is a responsible approach or not.
Demo
https://github.com/user-attachments/assets/5afa6ab4-f564-4162-baff-3e8aa0104ae6

Came up with a different approach while talking to @Irev-Dev. I think we could have an auto-generated "manifest" file in the KCL samples repo, and our app just gets the latest raw contents of it from GitHub on startup (which @jtran mentioned is the only way to know we don't have stale stuff). Then we don't need API tokens or shell scripts in modeling-app.

I actually meant to suggest fetching when the user uses the command, just before we actually need the list. It prevents issues when people leave the app open for a long time without restarting. But the drawback is that it has to load, which means you might want to display a spinner, but also cache it, but then you'd want to expire the cache... Yeah, startup is probably good for now.

I actually meant to suggest fetching when the user uses the command, just before we actually need the list. It prevents issues when people leave the app open for a long time without restarting. But the drawback is that it has to load, which means you might want to display a spinner, but also cache it, but then you'd want to expire the cache... Yeah, startup is probably good for now.

Ahh yeah I guess that would be the freshest of the fresh. I agree, the async + cacheing features needed for that will be a bit hairy for today, but that is a good idea.


test(PanoViewer): enhance panorama test to be able to use local file.

Issue
#245

Coverage decreased (-0.1%) to 93.723% when pulling c70128902aaef0b9aa00925f6a79fcdc65832cdc on jongmoon:localfile#245 into 27f11b832673241bbab240d47f2dee528674c454 on naver:master.