Huge code bloat with wasi-sdk-23

Hi,
I've just updated my benchmark binaries to compile with 23, instead of 22. I'm seeing code size changes that I don't understand, maybe changes in how the libraries are built? Has anyone noticed similar changes? Below is my git pull log which caught my attention!
cheers,
Sam
 benchmarks/adobe/wasm/functionobjects.wasm         | Bin 508408 -> 646733 bytes
 benchmarks/adobe/wasm/loop_unroll.wasm             | Bin 477734 -> 631955 bytes
 benchmarks/adobe/wasm/stepanov_vector.wasm         | Bin 122282 -> 274559 bytes
 benchmarks/aha/wasm/aha.wasm                       | Bin 33029 -> 152764 bytes
 benchmarks/alac/wasm/encode.wasm                   | Bin 163918 -> 374160 bytes
 benchmarks/bullet/wasm/1000-convex.wasm            | Bin 889848 -> 1080895 bytes
 benchmarks/bullet/wasm/1000-stack.wasm             | Bin 889847 -> 1080894 bytes
 benchmarks/bullet/wasm/136-ragdolls.wasm           | Bin 889849 -> 1080896 bytes
 benchmarks/bullet/wasm/3000-fall.wasm              | Bin 889846 -> 1080893 bytes
 benchmarks/bullet/wasm/convex-trimesh.wasm         | Bin 889851 -> 1080898 bytes
 benchmarks/bullet/wasm/prim-trimesh.wasm           | Bin 889849 -> 1080896 bytes
 benchmarks/bullet/wasm/raytests.wasm               | Bin 889845 -> 1080892 bytes
 benchmarks/jetstream2/wasm/float-mm.wasm           | Bin 21266 -> 102339 bytes
 benchmarks/jetstream2/wasm/gcc-loops.wasm          | Bin 2415704 -> 2777604 bytes
 benchmarks/jetstream2/wasm/hashset.wasm            | Bin 2716050 -> 3078733 bytes
 benchmarks/jetstream2/wasm/quicksort.wasm          | Bin 20233 -> 104079 bytes
 benchmarks/jetstream2/wasm/richards.wasm           | Bin 29787 -> 150670 bytes
 benchmarks/llama2/wasm/run.wasm                    | Bin 91974 -> 364223 bytes
 benchmarks/lzma/wasm/lzma.wasm                     | Bin 79858 -> 202837 bytes
 benchmarks/meshoptimizer/wasm/codecbench.wasm      | Bin 93145 -> 219666 bytes
 benchmarks/minisat/wasm/minisat.wasm               | Bin 120254 -> 361591 bytes
 benchmarks/oggenc/wasm/oggenc.wasm                 | Bin 1198354 -> 1491969 bytes
 benchmarks/olden/wasm/bisort.wasm                  | Bin 30221 -> 150810 bytes
 benchmarks/olden/wasm/em3d.wasm                    | Bin 32955 -> 157059 bytes
 benchmarks/olden/wasm/health.wasm                  | Bin 31865 -> 154573 bytes
 benchmarks/olden/wasm/mst.wasm                     | Bin 31427 -> 152016 bytes
 benchmarks/olden/wasm/perimeter.wasm               | Bin 30454 -> 148273 bytes
 benchmarks/olden/wasm/power.wasm                   | Bin 32960 -> 152747 bytes
 benchmarks/olden/wasm/treeadd.wasm                 | Bin 29255 -> 149844 bytes
 benchmarks/olden/wasm/tsp.wasm                     | Bin 36749 -> 162879 bytes
 benchmarks/olden/wasm/voronoi.wasm                 | Bin 46459 -> 175376 bytes
 benchmarks/pairlocalalign/wasm/pairlocalalign.wasm | Bin 297406 -> 579510 bytes
 benchmarks/peanut-gb/wasm/peanut-gb.wasm           | Bin 146626 -> 245030 bytes
 benchmarks/pocket-nn/wasm/pocketnn.wasm            | Bin 2435239 -> 2797863 bytes
 benchmarks/polybench/wasm/2mm.wasm                 | Bin 33802 -> 154904 bytes
 benchmarks/polybench/wasm/3mm.wasm                 | Bin 34214 -> 155316 bytes
 benchmarks/polybench/wasm/adi.wasm                 | Bin 33920 -> 155022 bytes
 benchmarks/polybench/wasm/atax.wasm                | Bin 33041 -> 154143 bytes
 benchmarks/polybench/wasm/bicg.wasm                | Bin 32687 -> 153789 bytes
 benchmarks/polybench/wasm/cholesky.wasm            | Bin 33011 -> 154113 bytes
 benchmarks/polybench/wasm/correlation.wasm         | Bin 34013 -> 155115 bytes
 benchmarks/polybench/wasm/covariance.wasm          | Bin 33598 -> 154700 bytes
 benchmarks/polybench/wasm/doitgen.wasm             | Bin 33348 -> 154450 bytes
 benchmarks/polybench/wasm/durbin.wasm              | Bin 33498 -> 154600 bytes
 benchmarks/polybench/wasm/dynprog.wasm             | Bin 33953 -> 155055 bytes
 benchmarks/polybench/wasm/fdtd-2d.wasm             | Bin 34449 -> 155551 bytes
 benchmarks/polybench/wasm/floyd-warshall.wasm      | Bin 32575 -> 153677 bytes
 benchmarks/polybench/wasm/gemm.wasm                | Bin 33111 -> 154213 bytes
 benchmarks/polybench/wasm/gemver.wasm              | Bin 34009 -> 155111 bytes
 benchmarks/polybench/wasm/gesummv.wasm             | Bin 32724 -> 153826 bytes
 benchmarks/polybench/wasm/gramschmidt.wasm         | Bin 33973 -> 155075 bytes
 benchmarks/polybench/wasm/jacobi-1d-imper.wasm     | Bin 32894 -> 153996 bytes
 benchmarks/polybench/wasm/jacobi-2d-imper.wasm     | Bin 33088 -> 154190 bytes
 benchmarks/polybench/wasm/lu.wasm                  | Bin 32943 -> 154045 bytes
 benchmarks/polybench/wasm/ludcmp.wasm              | Bin 33955 -> 155057 bytes
 benchmarks/polybench/wasm/mvt.wasm                 | Bin 33158 -> 154260 bytes
 benchmarks/polybench/wasm/reg_detect.wasm          | Bin 37088 -> 158190 bytes
 benchmarks/polybench/wasm/seidel-2d.wasm           | Bin 32531 -> 153633 bytes
 benchmarks/polybench/wasm/symm.wasm                | Bin 33087 -> 154189 bytes
 benchmarks/polybench/wasm/syr2k.wasm               | Bin 33416 -> 154518 bytes
 benchmarks/polybench/wasm/syrk.wasm                | Bin 33047 -> 154149 bytes
 benchmarks/polybench/wasm/trisolv.wasm             | Bin 32509 -> 153611 bytes
 benchmarks/polybench/wasm/trmm.wasm                | Bin 32845 -> 153947 bytes
 benchmarks/quickjs/wasm/quickjs.wasm               | Bin 928646 -> 1272433 bytes
 benchmarks/raytracing/wasm/ray.wasm                | Bin 2399738 -> 2762424 bytes
 benchmarks/raytracing/wasm/smallpt.wasm            | Bin 96937 -> 317912 bytes
 benchmarks/raytracing/wasm/sphereflake.wasm        | Bin 2399958 -> 2762644 bytes
 benchmarks/shootout/wasm/binarytrees.wasm          | Bin 32025 -> 154471 bytes
 benchmarks/shootout/wasm/fannkuchredux.wasm        | Bin 30707 -> 150624 bytes
 benchmarks/shootout/wasm/fasta.wasm                | Bin 49609 -> 203531 bytes
 benchmarks/shootout/wasm/meteor.wasm               | Bin 2403848 -> 2766607 bytes
 benchmarks/shootout/wasm/nbody.wasm                | Bin 32955 -> 150771 bytes
 benchmarks/shootout/wasm/spectralnorm.wasm         | Bin 2396611 -> 2760153 bytes
 benchmarks/spec2017/wasm/508.namd_r.wasm           | Bin 926211 -> 1207218 bytes
 benchmarks/spec2017/wasm/525.x264_r.wasm           | Bin 668771 -> 984164 bytes
 benchmarks/spec2017/wasm/531.deepsjeng_r.wasm      | Bin 141565 -> 392130 bytes
 benchmarks/spec2017/wasm/544.nab_r.wasm            | Bin 188731 -> 490742 bytes
 benchmarks/spiff/wasm/spiff.wasm                   | Bin 69690 -> 287388 bytes
 benchmarks/sqlite3/wasm/sqlite3.wasm               | Bin 1395264 -> 1704213 bytes
 benchmarks/tramp3d-v4/wasm/tramp3d-v4.wasm         | Bin 4768150 -> 5157573 bytes
 benchmarks/tsvc/wasm/tsvc.wasm                     | Bin 231640 -> 364655 bytes
 benchmarks/wasm3/wasm/wasm3.wasm                   | Bin 179305 -> 434474 bytes
 benchmarks/zlib-bench/wasm/zlib-bench.wasm         | Bin 2856892 -> 3218373 bytes

i think the recent migration to cmake effectively added -g.

Ah, that would make sense. Was it an intended change?

@alexcrichton From your commit, I assume that the libraries should not have been built with debug?

This was an intentional change in https://github.com/WebAssembly/wasi-sdk/pull/422 pre-cmake. The assumption was that this is useful information that cannot otherwise be generated and it's relatively easy to strip through various CLI tools or the -Wl,--strip-debug compiler flag.

Okay... It was somewhat surprising though, I presume this is a change to make life more easier fo wasi-sdk devs? When I'm building wasi-sdk myself, is there a rune/build target I can use to revert to the old behaviour?

While I'm not sure what a rune is when you're building the sysroot from this repository you can configure what's build with CMAKE_BUILD_TYPE to change it from the default. I believe Release for example will not have any debuginfo.

Whatever wask-sdk does, I would recommend explicitly stripping your release binaries using strip/llvm-strip, on all platforms.

you can configure what's build with CMAKE_BUILD_TYPE to change it from the default.

Thanks! That has worked, though I'm still unsure why this the default for a distributed release build.

I would recommend explicitly stripping your release binaries using strip/llvm-strip, on all platforms.

Noted. Is there a document somewhere that lays out the recommended developer flow? I'm used to invoking a compiler and that being it :)

Whatever wask-sdk does, I would recommend explicitly stripping your release binaries using strip/llvm-strip, on all platforms.

Sorry, I'm certainly doing something silly and would appreciate some pointers.
On sdk 24, with hw.c file:
int printf(const char *, ...); int main(){printf("hello world!\n");}

Compiled with:
.\wasi-sdk-24.0-x86_64-windows\bin\clang.exe --sysroot=.\wasi-sdk-24.0-x86_64-windows\share\wasi-sysroot --target=wasm32-wasip2 -O3 hw.c -o hw.wasm

I get a WASM component file that if I plop into http://wa2.dev shows imports for lots of things I don't use (tcp, udp, etc) and tons of wat. Sounds like strip/llvm-strip is expected to help with that?
If I try to run the cli tool it doesn't seem to handle the wasm (which I'm not super clear on what tooling I should expect handles wasm modules / components in llvm):
>wasi-sdk-24.0-x86_64-windows\bin\llvm-strip.exe hw.wasm
wasi-sdk-24.0-x86_64-windows\bin\llvm-strip.exe: error: 'hw.wasm': invalid version number: 65549

In this trivial setup know how I can get strip to work / have a more reasonable component output?
Attached are the hw.c and hw.wasm component output: hw.zip

@rajsite looks like you're building a component with the wasm32-wasip2 target instead of a core wasm module with the wasm32-wasip1 target. The wasi-libc implementation of components imports tcp/udp/etc to implement the write libc function due to how the implementation works.
The llvm-strip executable doesn't know how to work with components at this time which is why you're getting this error. You'll want to use wasm-tools strip instead for now.
Otherwise the "strip" functionality is primarily centered around removing custom sections, so the strip tool will not be suitable for what you're trying to achieve which is to remove imports. If you're interested in that I'd recommend opening a separate issue as I believe it's unrelated to this one about debuginfo.

Gotcha, I see the difference. I'll create a separate issue to discuss the import behavior. Thanks for clarifying!
In the context of this issue, is there an expected workflow for stripping debug info when using wasm32-wasip2 (I'm not completely certain how to identify if it's an issue as well for this target)? Any spot I can track the progress / see the expected states of the different targets?

The comment above of using -Wl,--strip-debug should work for wasm32-wasip2 as a compile-time option for stripping debug information. After compilation has completed the only tool to strip currently is wasm-tools strip

Appreciate it! On the clang cli
clang.exe --sysroot=.\wasi-sdk-24.0-x86_64-windows\share\wasi-sysroot --target=wasm32-wasip2 -Wl,--strip-debug -O3 hw.c -o hw2.wasm

Stripping out the debug sections reduced the size quite a bit:
-rw-rw-rw-    1 mraj 0 210K 2024-08-14 13:32 hw.wasm
-rw-rw-rw-    1 mraj 0  42K 2024-08-14 13:32 hw2.wasm

I'll keep poking at handling the unused imports and create a separate issue for that.

Noted. Is there a document somewhere that lays out the recommended developer flow? I'm used to invoking a compiler and that being it :)

I've been trying to find docs like this and the closet I have seen is this PR to the component-model docs repo: https://github.com/bytecodealliance/component-docs/pull/66
But it doesn't cover the expected workflow of stripping release release binaries either.


Add option to disable arrows in the explorer menu

I don't need additional arrows, I can already tell by the iconography that it is a folder.

File icons can actually define custom chevrons and decide to hide. See the Ayu icons that do this:

I don't think we'd ever introduce this as a setting as our default (seti ui) doesn't show icons for a folder, so we'd let the file icons decide that.


User invite duplication and broken errors

It turns out you can invite a user email address that already has an account (this should not be possible) - and if you do, then they get this really ugly error when they try to accept the invitation (there should be an english error here, in case a user tries to manually put in an email address which already exists):

Good catch 👍 This only happens on the invite screen for me. I've pushed a PR.
@kevinansfield The error handling need's improving, because no matter which error the api returns, the admin always shows:

Failed to send 1 invitation<EMAIL_ADDRESS>Please check your email configuration, see https://docs.ghost.org/v1.0.0/docs/mail-config for instructions

In my case, the API returned a validation error saying ValidationError: User is already registered.

I couldn't invite user with the same email address from team menu.

try inviting a user other than your own :)

It didn't word for me:

With the server-side changes and the changes in https://github.com/TryGhost/Ghost-Admin/pull/786 I'm not sure what else is left to do here?
It would be useful to know how the duplicate user was created in the first place - as @kirrg001 mentioned the only place this should have been possible was inviting the owner user on the setup/three invite screen which should now be fixed. I've not been able to invite an existing or invited user via the team screen.

@kevinansfield to get exact steps you would need to ask @johnonolan. However, I would guess at this happening after an import, inviting a user that was locked.

Yes it was after an import. I don't remember which order, actually, it could have been either:

Import content, including user<EMAIL_ADDRESS>Invite<EMAIL_ADDRESS>
or the other way around

I am not able to reproduce this with latest master.
Closing - please re-open if you discover this again!

In RC1 I just successfully imported a user, who had a pending invitation to the blog - no duplicate entry detected.

Then when I clicked on the accept invitation link in the email, I got redirected to the login screen
The invitation still shows up in Ghost admin - but there is no way to accept it.

@JohnONolan this has been resolved in master, the fix isn't in RC1


[BUG] docker-compose.yml needs to be separated for 1.x and 2.x+

Hi,
We change from master to cluster_manager in 2.x+, but not in 1.x due to it is a breaking change.
As you can see in the build repo, we separate this change into two docker compose files:
https://github.com/opensearch-project/opensearch-build/tree/main/docker/release/dockercomposefiles
In project website, it is pointing to the same cluster.initial_cluster_manager_nodes for both 1.x and 2.x, which mean 1.x will fail due to it is still using cluster.initial_master_nodes.
opensearch-node1         | java.lang.IllegalArgumentException: unknown setting [cluster.initial_cluster_manager_nodes] please check that any required plugins are installed, or check the breaking changes documentation for removed settings

Thanks.

@dtaivpp @nateynateynate - can you give this one a look?

Hi @dtaivpp @nateynateynate @krisfreedain Can you provide update on this issue?

@krisfreedain - I'm going to assign this to myself if you don't mind. A quick edit to https://opensearch.org/downloads.html to refer to two different docker-compose files. One that refers to opensearch:1 and one that refers to opensearch:2. Just a parenthetical and link on step 2 should satisfy this.

Same needs to be updated on the documentation website.

I have made zero progress on this - I'm going to unassign myself and see if someone else wants to tackle it.

The documentation side changes by @kolchfa-aws :

https://github.com/opensearch-project/documentation-website/pull/4122/

@kolchfa-aws - can we transfer this to project-website since our part is done? Thanks.

Working with @AMoo-Miki on this as part of the 2.12 release changes on docker-compose files due to admin:admin changes.


Move some common code used by models into birdfeeder

Description
Common code transferred from parrot repo

from parrot.constants import HOURS_IN_DAY and similar
from parrot.helpers.datetime import is_tz_aware
BaseSettingsWithConfig settings class
from parrot.shared.enums.str_enum import StrEnum
Move parrot/aws, except order_event_logger.py - this is too specific and we don't need to share it
from parrot.user_data_collector.exchange_api_client.local_typing import JSONTemplate

Author checklist

[x] PR has corresponding ticket, and ticket is linked to the PR
[x] Tests written OR decided to omit tests OR tests aren't needed. Explain in description if tests are not written

Reviewer checklist

[ ] Ticket or PR contains enough description why these changes are needed
[ ] Coding style matches our Code Style Guideline
[ ] Maintainability is ok

Naming and in-code comments adequate
No wheel reinventing
Code is not too complex

[ ] No new usages of deprecated patterns are introduced, see Ongoing refactorings
[ ] Changes logically looks good

Code is doing what it's supposed to do
No logical conflicts with other parts
Corner cases handled
Error handling is enough

[ ] Code is ready for operation

Is there enough logging to understand what the service is doing?
Is the new code instrumented with metrics or APM tracing? (If applicable)
Does the runtime configuration properly separated from the code itself (env vars, etc)

Before merging (author or reviewer)

[ ] Final version is tested on Development, logs OK, metrics OK, OR no testing is needed

Helpful docs

Pull Request Guideline
Code Style Guideline
Ongoing refactorings

Need to transfer AWS tests as well

Also a side note, better to use more meaningful commit messages (not just "wip") - best to use atomic commits, one commit per new feature

Yes I plan to redo commits once everything is reviewed and okay to merge.


Further ingest mvp tweaks

Ended up making a few big-ish decisions in #1191 that seemed they should get merged asap so that others can work on other ingest migration issues, so I split them out into this PR.
Commits

adds a new preprocessing function to specify types of specific columns. See my comment there - maybe in an ideal world we want to handle this more gracefully
adds a new template, and allows you to specify that a "pd_series_func" is actually a GeoSeries func. Maybe a tad clunky but given that the pd series func already needed some custom logic, it was nice to just re-use it.
typo
remove our default steps. @alexrichey and I chatted about this a bit - I think it makes more sense code-wise to just put these steps in each of our new templates if needed instead of baking it into the tool. It'd be hard to ever change if it's hard-coded, and I don't actually like either of these steps as a default. So to be clear, this will necesitate adding the tweaks seen in commercialoverlay to just about every template we migrate. But it will allow us to make changes on a template-by-template basis in the future, and not bake us in to this way of doing it with future datasets. I think this tradeoff is worth it. Plus it's still useful to be clear about what transformations are happening when
add a qol change to the validation cli and clean up the compare code appropriately. These comparisons sometimes throw sql errors when the columns don't match up (trying to compare text to date for example in sql). Could move to handle this in the data comparison code, but it seems easy and useful to have an option to just compare schema/columns of the table and not the data itself.
another qol tool - cli target to print out yml that can be copied into a template to define the schema/columns of the dataset

Great work, really excited about the migration!
I think it would be valuable to continue discussing whether all columns should be listed in a new recipe. Imo, this could introduce unnecessary bottlenecks, especially considering the number of data sources we have.
I would prefer investing a bit more time upfront to research and identify the columns used across all our data products for a given recipe, rather than having to correct or remove columns later. This would ensure that errors during dataset ingestion are treated as critical issues, making them an immediate priority to address.


Windows MSI Redis, Mysql and Node Issue...

I read that wsl is not use for installing server like mysql, redis and node...
so instead i install it inside my windows 10 ...
all is working properly if not run from bash...
when i type redis-cli
i cannot see
<IP_ADDRESS>:6379
nothing follows after i invoke that command
when i login mysql
mysql -u root -p
password: password
it gets stock and nothing follows
when open node normally
i cannot go inside node repl
it just get stuck...
All 3 of that redis, mysql and node
i cannot go inside the instance of that machine
but i can invoke commands that doesnt need to go inside the console of each machine
such as node -v , and redis-cli ping... mysql i have no luck
Is there a way to have me use wsl and use my local installed servers machine...

Hi @g0ld3lux -- good questions!
However, you have asked three separate questions (about three different programs -- I'm pretty confident that the three issues happen to be independent in this case) in one ticket.  To keep the discussion clear, could you please file them as separate tickets?
Also, could you please provide more of the information that the issue template asked for?  At a minimum, your exact Windows build number (or indicate that you are not using an Insider Windows build), as well as the specific command that you ran, a copy&paste of its exact output (details that seem insignificant to you can be important to others here), and what you expected to see instead.
Regarding mysql in particular -- try explicitly telling the client to connect to <IP_ADDRESS>.  Don't leave it blank and do NOT use the default value of localhost -- even though you would think those two values would be equivalent, mysql on Linux has a special-case optimization that checks for the specific string "localhost" and, if it sees it, skips TCP entirely and uses a UNIX domain socket.  Windows MySQL only supports TCP.

I got the latest build of windows preview insider....
i click on wsl
im logging as root
i switch user
then i run this command
cmd.exe /c mysql --host=<IP_ADDRESS> --user=root --password=password
i manage to login successfully but i immediately return to my zsh commandline
how can i tag this to be interactive ?
coz i manage to run node using -i tag for interactive
cmd.exe /c node -i
for redis no luck in going inside also the terminal of redis cli
i tried
cmd.exe /c redis-cli
i was simply return to my zsh terminal

the point is that mysql and redis is on interactive mode by default , so we cant flagged it with interactive mode...

I dont think this is an issue on the side of mysql and redis since by default it is interactive mode...
WSL needs to patch this...
BWT im using windows installed redis , node and mysql...
I didnt use WSL redis node and mysql distribution for ubuntu 16.04....


Dynamic scheduled tasks

Hi @rosa,
I really appreciate the work you have done here and I am eager to switch over to solid_queue. There is only one thing left, which is holding me back.
Other gems like resque-scheduler or sidekiq-scheduler offer the ability to dynamically add or remove tasks to the schedule (see https://github.com/resque/resque-scheduler?tab=readme-ov-file#dynamic-schedules). Since everything seems to be stored in the database for solid_queue, this should be quite easy to achieve.
Maybe it is only a documentation issue and it is already possible (this would be awesome 🤞 ).
Happy to hear from you!

@wollistik, no, this is not supported yet, you didn't miss it 😅
This is something we can consider adding for sure. May I ask what's your use case for it?

Hi @rosa,
we have some cron like jobs, where the user is able to

Disable/Enable running the job
Change the schedule on when and how often the job is performed

Therefore the dynamic scheduling feature was really nice to implement these requirements.
But after I thought about this the last two days, I might be completely redesign this feature and come up with a different solution, because it was rarely used and still required some quirks to get it working.

Ahh got it! That makes sense 👍  Yes, I thought a bit more about it yesterday and this is something I want to implement eventually 😊

Maybe this helps, but the way I implemented dynamic cron schedules is by having one job run every minute and check if the cron schedule matches the one stored in my database table, with my table containing cron expressions. I use Fugit to check if the cron matches the current time.

@abrunner94 Even I have done a similar thing. Mine is not exactly the cron like scheduling but I am having different schedules.
First task is scheduled to be executed after 15 days and then onwards every alternate days.
So in the execution of first job I enqueue next job and in that job I keep enqueueing next jobs every 2 days as per condition.


Propose "ideal" configuration

This issue is to try and produce the configuration that would be ideal from a user ergonomics standpoint

An example proposal
disabled: false                      # OTEL_SDK_DISABLED
resource:
  attributes:                        # OTEL_RESOURCE_ATTRIBUTES
    - key1: value1
    - key2: value2
service:
  name: myapp                        # OTEL_SERVICE_NAME
log:
  level: info                        # OTEL_LOG_LEVEL
propagators: [tracecontext, baggage] # OTEL_PROPAGATORS
sampler:
  name: parentbased_always_on        # OTEL_TRACES_SAMPLER
  argument: "0.25"                   # OTEL_TRACES_SAMPLER_ARG

processors:
  batch/span:
    delay: 5000      # OTEL_BSP_SCHEDULE_DELAY
    timeout: 30000   # OTEL_BSP_EXPORT_TIMEOUT
    queue_size: 2048 # OTEL_BSP_MAX_QUEUE_SIZE
    export_size: 512 # OTEL_BSP_MAX_EXPORT_BATCH_SIZE
  batch/log:
    delay: 5000      # OTEL_BLRP_SCHEDULE_DELAY
    timeout: 30000   # OTEL_BLRP_EXPORT_TIMEOUT
    queue_size: 2048 # OTEL_BLRP_MAX_QUEUE_SIZE
    export_size: 512 # OTEL_BLRP_MAX_EXPORT_BATCH_SIZE

limits:
  attributes:
    value_length: 0 # OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT
    count: 128      # OTEL_ATTRIBUTE_COUNT_LIMIT
  spans:
    attributes:
      value_length: 0 # OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT
      count: 128      # OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT
    event:
      count: 128 # OTEL_SPAN_EVENT_COUNT_LIMIT
      attributes:
        count: 128 # OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT
    link:
      count: 128 # OTEL_SPAN_LINK_COUNT_LIMIT
      attributes:
         count: 128 # OTEL_LINK_ATTRIBUTE_COUNT_LIMIT

exporters:
  otlp:
    endpoint:
  jaeger:
    protocol: grpc # OTEL_EXPORTER_JAEGER_PROTOCOL
    endpoint: http://localhost:14268/api/traces # OTEL_EXPORTER_JAEGER_ENDPOINT
    timeout: 10000 # OTEL_EXPORTER_JAEGER_TIMEOUT
    user: "" # OTEL_EXPORTER_JAEGER_USER
    password: "" # OTEL_EXPORTER_JAEGER_PASSWORD
  zipkin:
    endpoint: http://localhost:9411/api/v2/spans # OTEL_EXPORTER_ZIPKIN_ENDPOINT
    timeout: 10000                               # OTEL_EXPORTER_ZIPKIN_TIMEOUT
  prometheus:
    host: localhost # OTEL_EXPORTER_PROMETHEUS_HOST
    port: 9464      # OTEL_EXPORTER_PROMETHEUS_PORT
  logging:

python: # OTEL_PYTHON_*

pipelines:
  traces:
    processors: [simple]
    exporters: [logging, jaeger] # OTEL_TRACES_EXPORTER
  metrics:
    processors: [batch]
    exporters: [otlp] # OTEL_METRICS_EXPORTER
  logs:
    processors: [batch]
    exporters: [otlp] # OTEL_LOGS_EXPORTER

instrumentations:
  redis:
    package:

I like yours, it is a mix of what we in Erlang originally had for file configuration:
  [{processors, [{otel_batch_processor,
                  #{exporter => {opentelemetry_exporter, #{protocol => grpc}}}
                 }]
   }]}

And what we have now (while supporting the original:
%% config/sys.config.src
[
 {opentelemetry,
  [{span_processor, batch},
   {traces_exporter, otlp}]},

 {opentelemetry_exporter,
  [{otlp_protocol, http_protobuf},
   {otlp_endpoint, "http://localhost:4318"}]}]}
].

It makes me think there may be even another level of mixture with the kitchen-sink examples I can do ... where you still have to define stuff like tracer providers but have less nesting by supporting top level definitions of stuff like exporters by giving each a user defined name they can use within the tracer provider definition.

While I'd like to have symmetry with the collector where possible, SDK processors and exporters are conceptually different than collector processors and exporters. Specifically, SDK exporters don't show up in the configuration of tracerprovider / meterprovider / loggerprovider except as arguments for specific built in processors.
Let me try to illustrate through some examples:
Example 1
What do you do when exporters are configured without a processor?
pipelines:
  traces:
    processors: []
    exporters: [logging, jaeger]

Example 2
What does it mean to have a single processor and multiple exporters? Maybe that a composite exporter should be configured which calls both the logging and jaeger exporters?
pipelines:
  traces:
    processors: [simple]
    exporters: [logging, jaeger]

Example 3
How do I configure two batch processors with different exporters? Two options are shown, and neither is intuitive:
# Create two separate trace pipelines, each with one batch processor and an exporter. This breaks down because it gives the false impression that you can have multiple pipelines in a single tracer provider.
pipelines:
  traces/exp1:
    processors: [batch/exp1]
    exporters: [exporter1]
  traces/exp2:
    processors: [batch/exp2]
    exporters: [exporter2]
---
# Add two different batch processors to a single pipeline. How do I indicate which exporter should be associated with each batch processor?
pipelines:
  traces:
    processors: [batch/exp1, batch/exp2]
    exporters: [exporter1, exporter2]

Additionally, meterprovider is quite different from loggerprovider and tracerprovider - it doesn't have the notion of a processor at all - only metric readers.

Example 1
What do you do when exporters are configured without a processor?

In this case I would omit the processors section (this is what the collector does)
pipelines:
  traces:
    exporters: [logging, jaeger]

Example 2
What does it mean to have a single processor and multiple exporters? Maybe that a composite exporter should be configured which calls both the logging and jaeger exporters?

In practice, the SDK would have to configure multiple span processors for each configured exporter

Example 3
How do I configure two batch processors with different exporters? Two options are shown, and neither is intuitive:

Wouldn't configuring different processors w/ different exporters effectively be configuring multiple pipelines?
I agree that processor configuration doesn't make sense for metrics, not sure if there is a term that could be used other than processors to generalize the configuration.

In this case I would omit the processors section (this is what the collector does)

I think that would have to configure effectively a noop tracer provider configuration, since exporters are meaningless without an associated processor to feed them data.

In practice, the SDK would have to configure multiple span processors for each configured exporter

Example 3 illustrates the challenges with this.

Wouldn't configuring different processors w/ different exporters effectively be configuring multiple pipelines?

Its conceptually different than two pipelines. If there were actually two pipelines, each pipeline would have its own set of processors. In the SDK, there is only one pipeline and all processors invoked. So if you had two batch processors each with an exporter, then added an additional processor that did some enrichment (i.e. enrich with baggage), the changes from the additional processor would be seen by both batch processors. There's no way to limit isolate the additional processor's changes to only a single batch processor.

Pipelines aren't a concept in the API or SDK. I think configuring providers is confusing enough without adding pipeline :)

I've added a PR to make discussions around the specifics of the config a bit easier.

Closing this issue, there is a working configuration here

A few things are still missing:

samplers (i.e. OTEL_TRACES_SAMPLER, OTEL_TRACES_SAMPLER_ARG)
sdk log level (i.e. OTEL_LOG_LEVEL)
exemplar config (i.e. OTEL_METRICS_EXEMPLAR_FILTER)

Samplers are the most interesting case because they may delegate to each other.


Provide a general blurb on "what is Dex?" on Documentation page

Comment: It would be good to provide a general blurb on "what is Dex?" in [content/docs/_index.md].
cc @justaugustus, please tag other maintainers as you see fit.
Originally posted by @celestehorgan in https://github.com/dexidp/website/pull/8#discussion_r498477034

Current page:

See issue https://github.com/dexidp/website/issues/55 for content to be brought onto this page.


delete an entity created using the UI flow?

how do I delete an entity created using the UI flow?
so I can re-create it again?

Just click the config entry, next click the three dots and then "remove"

thank you!
On Fri, 5 Aug 2022 at 19:42, Bram Gerritsen @.***>
wrote:

Just click the config entry, next click the three dots and then "remove"
—
Reply to this email directly, view it on GitHub
https://github.com/bramstroker/homeassistant-powercalc/issues/943#issuecomment-1206647422,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA2G5R4KM3BLWAQU3EAOD4TVXU76VANCNFSM55WSQPBQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Σάββας Κωνσταντινίδης
Savvas Konstantinidis
Book a call with me! https://sconstan.youcanbook.me
Visit my Blog! https://savvaskonstantinidis.gr/
http://about.me/savvaskonstantinidis


Add discourse link to website

I noticed it tonight but someone also mentioned it in the nivenly discord #general chat. Would be great to have a page for this.
If we can decide from where this should be, maybe a "Connect with us" page, then I'm more than happy to submit a PR for it.

I think we can add it in the bottom right close to


Fixed offset check in GenImageFontAtlas

A small fix to a subtle bug in GenImageFontAtlas that we previously discussed in this thread: https://github.com/raysan5/raylib/pull/1170

@SasLuca thanks for the review and excuse me for being picky! :P

Done :D
I realized I formatted those wrong after I already pushed the code, my bad :))

@SasLuca thanks for the fix! Those are the kind of details I really care about and that make raylib what it is! :D


Pressing enter in profile edit page loses all info

To reproduce:

Go to profile page
click edit
enter all required info
press enter when focused on any input
profile goes back to read-only mode without saving anything

Thank you for submitting the issue.

This PR will fix this issue
https://github.com/Pjaijai/Referalah/pull/320

Should be fixed


Brick Sort in JavaScript

Have you read the Contributing Guidelines on Pull Requests?
Yes
Description
Implemented the brick sort algorithm in JavaScript.
Checklist

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

Related Issues or Pull Requests
Closes: #5188

Kindly review @HarshCasper :)


Add CI support for targeting current and previous two major Go releases

This project should be built and tested against not only the current Go release, but the previous two Major releases.

We in fact are doing the three most current releases, and tip.
However, we have external users that are tied to Go 1.6, so that may have to stick around even when Go 1.9 comes out.


Is there are any way to programmatically change the opacity of a widget?

I need a way to programmatically change the opacity of an image.

Depends on what exactly you are asking for. If you want to just take w hole widget and make it have an opacity then no.
But if you are just looking for a button with a transparent background they yes absolutely, see the styling example.

Sadly, the first one.

Is there are any chance to this be implemented in the future releases?

Oh I'm sure that it will be implemented eventually, but I don't believe that it is even on the roadmap, so I wouldn't expect it anytime soon.
Why do you want this? I am sure there is some way to get a similar effect with what is already a part of iced?

I want to have a welcome screen in my application with my logo on it.  I want the logo to appear gradually (gradually increasing the opacity).  But I also need that when I click on the screen, the logo appears immediately, without waiting.

Oh that is going to be tough. Iced doesn't support animations yet, so you would have to manually track and update the opacity too.
Iced has very basic support to stacking widgets, so you would have to place a Container ontop of the image widget (See the Toolltip or Picklist widgets to stack a containers). Then you would have to subscribe to time::every to update the Container style. Performance wouldn't be that great either. Then on click you would set the opacity to the last setting and remove the subscription.
Image dragging would require using the canvas widget. If it is possible at all. I haven't seen anyone build something with an image inside of a canvas though...

Yeah, I already did all code related to subscription, the only thing left is opacity attribute, that I can't find(

Ya there is no opacity attribute. You will have to overlay a Container above the image that has the same background color as the background behind the logo.
Container background colors support alpha values so you can set the background of that to have an opacity, thus giving you the desired effect.

I see, that would probably work for me. Thanks for help!
Although, I still hope that this issue will be added to the milestones.

Yep. I'm sure it will be once Hecrj sees this issue. He is good at that. He is probably just busy now :smiley:


Method to easily implement figure floating in Marp

I would like to make figures movable by wrapping texts easily. Because of my deficiency in css knowledge, I almost always use table environment to implement this... It would be very helpful if I could know a way to implement this, for example, by declaring in the header part of Marp, i.e., around the declaration marp: true. After my browser search, I reached the result in the case of usual html that a css file should be accompanied with the main html file. This css code should be like:
img {
  float: right;
}

If this code is also effective to the Marp system, I think I should prepare a css file likewise and save it in the same directory with the main markdown file. In my guess, this is not true in the case of Marp. I would also like to avoid html mode in Marp (i.e., --html) because I have no idea how to implement this in the mode of Marp-Vscode. Thanks in advance for your help...

:warning: Please keep in mind the issue tracker of this repository is for tracking the extension's bug and ideas, not the support forum for Marp user. Read support guideline before creating an issue.

To layout contents as you like, you must learn CSS because Marp is based on Web basics, HTML and CSS. Marp Markdown can use <style> html tag to apply CSS even if not enabled HTML.
If you want to use float, you have to know that float would not work on many built-in Marp themes because floats do not intrude into the flex container and a lot of themes have auto vertical centering with flex container. You have to accept trade-off of disabled centering with using extra CSS such as section { display: block; }.


Cleanup Logging

Problem Statement
For the POC all logs were set using a debug level because this was useful for development. Though the log levels were not even fully wired up.
The purpose of this task is to fully connect debug levels with CLI args so that they're respected, and also promote some debug log entries to info level.
Acceptance Criteria

[ ] as a user if I flag the operator with --log-level=info I can see info level log entries, but not debug
[ ] as a user if I flag the operator with --log-level=debug I can see debug level log entries in addition to info
[ ] by default the --log-level for the operator is info

@shaneutt I'd like to work on this issue.

@shaneutt , I wonder should we use debug and info, etc or instead embrace V levels concept?

@shaneutt , I wonder should we use debug and info, etc or instead embrace V levels concept?

Under the hood debug() and info() are simply using the V levels, but I can see why we wouldn't want to mask them and I can see some potential value in fully "embracing them" as you suggest :thinking:
What is really boils down to is value, and timing. If we feel strongly we need the value now of directly writing against the V levels API with our logging implementation then sure we should prioritize that. I personally don't feel strongly this needs to be done right now, but I could be persuaded.
Personally my feelings are that a nice convenient easy to use info or debug function is a great thing to have at this early stage because it reduces the amount of thought that needs to go into adding logs at this early level of code maturity. The result I think this has is that we'll actually have more logs and not miss opportunities to log because it's really easy to add a log line. I think having spamming logs first and reducing them as the code matures is better than having fewer logs and then later trying to assess where to add more as problems arise. Let me know your thoughts.

@shaneutt But V levels are additive. V(debug).V(debug) result in level debug+debug, that might be a trace in future.

@meldafrawi how far have you gotten on the implementation of this so far? We may consider closing this one in favor of a different approach to logging, but I wouldn't want to do that if you're already far into it? Let us know :vulcan_salute:

Alright thanks for the heads up. In that case I'll consider this one closed for the time being and @jrsmroz and I will talk about a follow up.


⚠ Bofrost.de has degraded performance

In fbe5d1d, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 802 ms

Resolved: Bofrost.de performance has improved in 7714ae7.


feat: support data and errors with DataFetcherResult

Fixes https://github.com/ExpediaDotCom/graphql-kotlin/issues/244
Kotlin functions can now return a DataFetcherResult instead of just their return type which allows you to modify the errors field with any extra data you need

While this could work it would also kind of imply that you would want to explicitly return DataFetcherResult pretty much everywhere. Would it be possible to support it in more generic way?

@dkuc84 What would be that more generic way? Do you mean some additional option to add info into the errors field but without wrapping?
I briefly looked into this. Is there some argument that we can include in the data fetchers or from the DataFetchingEnvironmnet that allows you to modify the errors? I haven't seen anything so far: https://www.graphql-java.com/documentation/v13/data-fetching/

I'm thinking we could do something around adding errors to the GraphQL context but that would also imply we would need to either add some instrumentation to populate errors (workaround) or re-implement execution logic so it would take that into account.

I am going to close this PR until we have a solid decision on how we want to support data and errors

@smyrick is this going to work with monads (e.g. CompletableFuture)?


Fix Barracuda filtering traffic from server

This should be fixed soon, @shickey sent a ticket in at lunch today.


Merge project with socket-controllers

I have a plans to merge into this library socket-controllers library. Your thoughts about this decision? adding @19majkel94

Actually, it's not a library but framework :wink: IoC and other blah blah definitions.
I'm into cooperation of routing- and socket-controllers but I'm not sure about merging this together. They are designed for different purposes and I can't imagine that you force koa users to get routing-controllers from npm together with sockets like you don't want to set express and koa as dependencies in package.json.
I see only one use-case scenario with integration - mixed controllers. Not mixed parameters in class methods (it makes no sense) but one controllers with REST API methods for HTTP and socket endopoint for push notification about changes from other users on this resource.
I'm not sure how much routing-controllers and socket-controllers codebases have in common and how to detect which method belong to which "library" - additional decorator is an inelegant solution, looks as bad as separate controllers.

Guys I'm new here, fascinated by routing-controllers (my god @pleerock you are one magnificent sir for doing ORM like Doctrine and this controllers with decorators in TypeScript) and going to use it in the nearest projects, but what is socket-controllers? Where are they?

@idchlife there you are this lib to use socket.io library with decorators

Oh, thanks!
About topic, I guess one way is not to merge them making "routing+socket-controlles" but to create third library that will provide functionality for making a project with just choosing dependency like express or koa under the hood, allowing you to use it like a standalone framework for building projects. Maybe even with DI and TypeORM already attached/installed, for more convenient way to create projects using TypeScript + decorators at full power.
Because not everyone needs sockets with common routing or routing with sockets. That's why there are 2 separate libraries that for different functionality.

Maybe even with DI and TypeORM already attached/installed, for more convenient way to create projects using TypeScript + decorators at full power.

there is now discussion about complete framework (you can find sample here which contains everything-in-one.

Because not everyone needs

thats something very hard to achieve. Because sometimes people need, sometimes they not... There is multer, session and some libraries used by this lib, but sometimes people don't need uploading. Even if I merge socket controllers into routing controllers in a separate framework - same question arrises there - maybe not all people need that.

There is multer, session and some libraries used by this lib, but sometimes people don't need uploading.

But they are hidden peer dependencies - you are not forced to install it if you don't use it. But there must be some code in routing-controllers codebase to provide support if it needs deep integration to work.
I don't mind about extension to integrate sockets into routing-controllers like typeorm-routing-controllers-extensions

Even if I merge socket controllers into routing controllers in a separate framework - same question arrises there - maybe not all people need that.

There is a difference between framework like Angular or TypeStack, which are a collection of libs which cooperate together to help build big app, and IoC libraries aka framework like routing-controllers which focus only on one part of the app/technology. It's not a problem to deliver the gorilla and the entire jungle but it's bad when user only want banana.

I'm fine with either an extension or merge. I've been wanting for some sort of convenient tool for socket.io and routing controller. https://github.com/pleerock/routing-controllers/issues/100

I decided not to merge them for now. Plan is to allow typestack cli to generate project with or without socket-controllers enabled.

Is there an example that uses both these?

specify controllers for socket controllers as well

@pleerock I specified it (earlier I manually imported it before useScoketServer) but I am getting the same error. I am also attaching a screenshot of my backend error log.
XMLHttpRequest cannot load http://localhost:9000/socket.io/?id=83&EIO=3&transport=polling&t=LoXMf_w. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4300' is therefore not allowed access. The response had HTTP status code 404.

I figured out the mistake I made. Posting the answer to anyone who encounters it. The mistake I made was assigning the express instance returned by useExpressServer to this.app.
    this.app = express();
    this.exp = this.app;
    this.app = require("http").Server(this.app);
    this.io = require("socket.io")(this.app);

    useSocketServer(this.io, {
      controllers: [__dirname + "/controllers/event/*.js"]
    });
    useExpressServer(this.exp, {
      routePrefix: "/v1",
      defaultErrorHandler: false,
      middlewares: [BoomMiddleware],
      authorizationChecker: authorization,
      controllers: [__dirname + "/connectors/**/mock/*.js"]
    });
   this.app.listen(PORT, () => {});


Fix machines pages linting errors

Fixes linting errors in Racks and Slaves views and React pages. The controllers and Actions didn't have linting errors.
Unfortunately the diff isn't pretty because indentation fixes took over.

The racks and slaves pages have a problem (not caused by the changes in this PR, but this could be a good place to fix it). The buttons to freeze/remove/decommission/reactivate slaves and racks are all broken. Each and every one of them. They throw an error Uncaught TypeError: slaveModel.promptDecommission is not a function.

LGTM

So I'll fix the buttons in a different PR then.

either this PR or a separate one -- whichever makes the most sense to you. thanks!

Thinking about it, it might be a large change. So go ahead and merge this PR, and I'll open a new one for that once it's implemented.


Error installing package

Is outdated?

Just released a new version with the fix from #28 , this should resolve this issue,


Include js-based embeds into posts

Hi, thx for your efforts and progress this gem shows!
However, if I include some third-party embeds (tweet, telegram post, etc), it doesn't work. Youtube does work btw, but youtube embeds don't require any additional js to be loaded.
Example of tweet embed:

Apple enters the 5G market with new line of iPhones https://t.co/pcWqTWOy29
— Financial Times (@FT) October 13, 2020

Telegram embeds are way prettier (but still don't work because it's a js call)

Any ideas on how to make this all work?
Best.
p.s. If this is more like a feature request (and I didn't design a post like a feature request), I'm sorry for that.

Is it because they are async script tags? Can you try removing to see if it fires?

Actually, check out the security section of https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML
I’ll try to research or think about a workaround.

Hi Ricky, thank you for a quick response!

Is it because they are async script tags? Can you try removing to see if it fires?

No, removing async doesn't help, sadly.
Couple words on the workflow: people write posts, and sometimes they not only add text paragraphs, but also input links to external services, like youtube, twitter, etc. It'd be great to autoparse their tweet links, so I gsub their links to embeds (still not sure if it's better to do on frontend or on backend, upon the model save). That's pretty much it.
It would be crazily good if this flow and futurism could work alongside.

I'm not sure I have a 100% clear answer but have some ideas to try.
https://ghinda.net/article/script-tags/ gives a good background on why this happens and ways around it in general
Futurism utilizes CableReady under the hood, specifically outerHtml and maybe in the future innerHtml operations. We could ask the CR team to see if they'd provide a execute_js parameter to these, but I'd like to see if we can avoid that for now. Searching CableReady issues doesn't come up with anything related to


Suppress exceptions during output widget redirection.

Exceptions are already captured and shown, so there’s no need to keep raising them.
Fixes #1155.

Together with #1162, this fixes #1155.


Drag and drop does not work on Firefox Quantum

Expected behavior and actual behavior:
Dropping a file should trigger the px-file-upload-files-changed event; however, this does not occur.
Steps to reproduce the problem:
Drag and drop files (as opposed to using the upload button)
Environment (component version number, Browser (including version), operating system, hardware, etc):
Firefox >= 57.0

I don't have time to go through the entire PR right now, but for the sake of not losing it, I'll document my fix here:
At the end of this.ondrop (defined in ready):
      // Firefox does not properly fire a change event when manually setting files on input.
      // Manually hitting change handler.  Duplicate calls (i.e. this one and the change event)
      // in Chrome are filtered out by debounce.
      this._fileChange({target: this.$.fileInput});

This causes a duplicate call to _fileChange in not-Firefox, because the change event still triggers as expected.  To fix the duplicate call, I wrapped the _fileChange contents in a very short (1ms) debounce.
The alternative to calling _fileChange in ondrop would be to check the navigation.userAgent string, but I know that's generally frowned upon.

Resolved on v1.3.1 thanks to @Ledivin's PR.


http:// in some external links can be replaced with https://

There are external links in docs written as http:// which seems able to be replaced with https://.

docs/extensions.rst

http://babel.pocoo.org/

docs/intro.rst

http://babel.pocoo.org/

docs/make.bat

http://sphinx-doc.org/

Environment:

Python version: -
Jinja version: -

No need to open issues about minor docs fixes, thanks for the pr


DataGrid: Virtualization - items provider

It's just a extension of Blazor virtualization component parameter.
Description
Specify an items provider delegate method to the component's ItemsProvider parameter that asynchronously retrieves the requested items on demand.
How Has This Been Tested?

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[x] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.
[x] I've added relevant tests.

Hi @daniellor
Some tests are failing that are related to the datagrid.
Also I don't see any explicitly added tests for this feature, this is a must for such complicated component like datagrid.

Hi @ScarletKuro
Fixed the bug with unit tests. I will write additional unit tests for this PR.

The new tests fail

I've fixed unit tests.

Hi @ScarletKuro
I seem to have fixed all the formatting issues.

@tjscience can you review, please? What do you think of this changes?

@tjscience can you review, please? What do you think of this changes?

I will need time to go through all of this, but at first glance, it seems overly complicated and quite a bit of a change to the structure of data grid to simply add an ItemsProvider delegate to the nested MudVirtualize component.

Is there any news on this? It would be really great if the feature is available soon. I think many people would welcome this change as an alternative for pagination when using large amounts of data

I'd also love to see this go in. If there's anything those of us in the community could do to help push this forward I'd certainly be willing to help

This is one of the last things we have to use Radzen for today. I would love to be able to switch out my Radzen Data Grids for Mudblazor.

Hi.
As @tjscience said, this PR looks overly complicated for a simple ItemsProvider delegate.
Also this PR is now against our contribution guide.
https://github.com/MudBlazor/MudBlazor/blob/5499685424bf6c585251f29846737251700bcff6/src/MudBlazor/Components/Virtualize/MudVirtualize.razor.cs#L53-L76
We do not add logic to getter and setter of the components [Parameter]s, because it violates this https://github.com/dotnet/aspnetcore/issues/26230.
We now have a ParameterState framework to avoid this and write the needed logic in a more easy way.
This PR also writes in the component parameters directly, which should be avoided: https://learn.microsoft.com/en-us/aspnet/core/blazor/components/overwriting-parameters?view=aspnetcore-8.0
Maybe someone want's to make another PR with much clean approach?
I might comeback to this and do it myself one day, but currently there are other things that I want to change / implement.
Anyway, thanks for your interest in MudBlazor and for the PR.

@ScarletKuro Hello, I rewrite and simplify code in PR #9019

Closing this issue as it was replaced by https://github.com/MudBlazor/MudBlazor/pull/9019.
But anyway, thank you for your interest in MudBlazor and your contribution.


Public decorator?

Is it possible to create a decorator that exempts a view from django-lockdown? I know it is possible to add a series of url patterns that are public, but when you are using translated url patterns this is suboptimal.
I would prefer a @public decorator one could add to views that are 100% open to anyone.
Thanks

So, you're intending to use the middleware to lock down a complete site, but want to have a decorator to exempt individual views, right? I'm afraid that's not that easy, because the code of the middleware, which would already lock down the site, is executed first, before the request is passed to the view. So when locking down a site using the middleware the view code and its decorators would never be called. That's why there isn't such a decorator and why it's unfortunately not straight forward to add one. If you have a way in mind to implement that I'd be open for a pull request adding that.
Another possible solution could be an additional setting similar to LOCKDOWN_URL_EXCEPTIONS to provide a list of exempted views instead of URLs. Utilizing django.urls.resolve that could be pretty straight forward. Feel free to open a PR, if that'd fit for your use case.
Out of curiosity: Do you have an example of how such translated URLs look with your setup?

Thanks for your reply.
The idea to create a LOCKDOWN_VIEW_EXCEPTIONS setting is great, I think! I've never done a PR, so I'm not sure I can go through the entire process now. But I'm willing to help in other ways!
Example is in the docs: https://docs.djangoproject.com/en/2.1/topics/i18n/translation/#translating-url-patterns

I added a LOCKDOWN_VIEW_EXCEPTIONS-setting now, which should solve this issue. It'll be part of the next django-lockdown release.

I just found out about django-stronghold which does have a public decorator. Maybe good inspiration?


docs(tutorial): use newer sam cli template; update to py3.10

Issue number: #2166
Summary
Changes

Please provide a summary of what's being changed

Replace existing SAM CLI command in Tutorial and Homepage to use the newer Powertools Hello World now built-in in SAM CLI.
User experience

Please share what the user experience looks like before and after this change

Checklist
If your change doesn't seem to apply, please leave them unchecked.

[x] Meet tenets criteria
[x] I have performed a self-review of this change
[ ] Changes have been tested
[x] Changes are documented
[x] PR title follows conventional commit semantics

Is this a breaking change?
RFC issue number:
Checklist:

[ ] Migration process documented
[ ] Implement warnings (if it can live side by side)

Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.

self-approving to address the docs issue raised in SAM CLI and prevent problems tomorrow


Not working

Hello, pls check with https://pin.it/3xa5RlZ . it not working with share link

Thanks for you report. By now, you need remove the trailing pattern /feedback/?invite_code=e63f49abff6746bdb796a334d4c7cb00&sender_id=1118652132350808949 and remains

click Share button in Pin to copy that link
or share button on Pinterest  mobile app


AYON: Preparation for products

Changelog Description
Prepare ayon settings conversion script for product settings conversion.
Additional info
Removed IntegratAssetNew settings (plugin was already removed) and TVPaint families_to_review unused settings. Conversion of AYON settings is converting product name to subset and product type to family.
TODOs

[x] Update ayon python api which has implemented products
[x] Change entities conversion utils to be able use subset instead of product

Testing notes:
This PR is based on changes in Sever. So make sure you're using server that is supporting products. This PR also changes template keys available in setting {family} -> {product[type]}, {subset} -> {product[name]}, {asset} -> {folder[name]}, etc.
It should work with old style templates too, but representations will have auto-converted template and context data to new style.

Settings conversion should work with old addons and with addons that have already converted settings this PR
Get functions and operations for subset should work as expected

Publishing should integrate correctly
Integration of the same version should work
Loading using Loader in DCC should work as expected

Notes
PR should updated when this PR is merged.

There is still an issue in collect_anatomy_instance_data.py

This was caused by old db. After I had removed the DB and rebuilded server all was fixed.


Game crash when trying to use NEI to see recepies

Wehn i hover over a item (dont seem to be a perticular mod) and press "u" or "r" to see what the item can be made with it the game crashes. (This started to happen after i uppdated forge to "forge-1.7.10-<IP_ADDRESS>1-1710ls"). if i remove mekanism it works normaly (using V 1.7.10-<IP_ADDRESS> of Mekanism, MekanismGenerator and MekanismTools)
OpenEye: http://openeye.openmods.info/crashes/af6d0d4458ab8e71a8a2235868dd46d9
Crash Report: http://pastebin.com/ShU471DV

This is a ModTweaker issue


Typo fix

Fixed typo, corrected manger and converted it to manager.

Learn Build status updates of commit a61028e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/service-fabric/service-fabric-cluster-config-upgrade-azure.md
:white_check_mark:Succeeded

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 the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@sharmadhiraj86 - thanks for fixing this.


GeoIP doesn't correctly print missing file name

We get the error message shown from "src/parser/seclang-parser.cc" 4564L but it doesn't correctly get the file.
Error Opening file
nginx: [emerg] "root" directive Rules error. File: <>. Line: 5. Column: 62. Failed to load the GeoDB from:   in /usr/local/nginx/conf/nginx.conf:124
#ifdef WITH_GEOIP
std::string file = modsecurity::utils::find_resource(yystack_[0].value.as< std::string > (),
driver.ref.back());
if (GeoLookup::getInstance().setDataBase(file) == false) {
std::stringstream ss;
ss << "Failed to load the GeoDB from: ";
ss << file;
driver.error(yystack_[1].location, ss.str());
YYERROR;
}

Fixed by: c97db2f36191371a1d9ce69a18385a12fcfcf2a4


[feature] support Chinese Pinyin input when fuzzy find

[x] I have read through the manual page (man fzf)
[x] I have the latest version of fzf
[x] I have searched through the existing issues

Info

OS

[x] Linux
[ ] Mac OS X
[ ] Windows
[ ] Etc.

Shell

[ ] bash
[x] zsh
[ ] fish

What expected
For example Pinyin of 操作系统 (Operation System in Englist) is cao zuo xi tong:
hmanx ~ » pypinyin "操作系统"
cāo zuò xì tǒng
hmanx ~ » pypinyin "操作系统" -s NORMAL
cao zuo xi tong
hmanx ~ » pypinyin "曹坐系桶" -s NORMAL
cao zuo xi tong

And as third example above different Chinese chars may have same pinyin. So when use fzf to find files which in Chinses, you input English letters then choose Chinese chars you want in option list then fzf find the matches.
pypinyin use -s option can change pinyin to English letters (without tone). So there is a way to add a fzf option that force the files list processed by pypinyin enable input letters to match Chinese chars directly? What's more, what show in fzf window is still Chinese chars not pinyin.
Maybe this feature is also good to Janpanese, Korean or any language has a tool to transform their pronounce to alphabets.

Support, maybe also 'czxt' for search of "操作系统".

Support, maybe also 'czxt' for search of "操作系统".

the go version of pinyin: https://github.com/mozillazg/go-pinyin

the go version of pinyin: https://github.com/mozillazg/go-pinyin

Support, maybe also 'czxt' for search of "操作系统".

If this issue is suppot czxt will support absolutely, as tihs is fuzzy finder. 😃

Support, maybe also 'czxt' for search of "操作系统".

If this issue is suppot czxt will support absolutely, as tihs is fuzzy finder. 😃

I agree with Jiehong, implementing an IM is definitely not what fzf's job is, however allowing fzf to be configurable enough to support this would be really useful for this (and other) use cases.
Really all we're asking for is the ability to configure an arbitary executable as a String=>String transformation in fzf's pipeline.  Is this possible?
The suggested solution of using an IME is suboptimal because you must first switch to the input method, then select the correct characters, then further select the matching file, or two additional steps before you can open your file.

After reading through the help page, I noticed that fzf already normalizes latin characters, and this can be disabled with --literal, this feature is really just a request for another kind of normalization.


Events dates are off by one day when running locally

When running the web site locally, all events are off by one day.
I guess this is a due to a local timezone, my laptop is running in
Central European Summer Time
Time zone in Paris, France (GMT+2)

Here is a screenshot of the hosted version :

Here is a screenshot of my local version :

@sebsto thank you for calling attention to this. We'll hopefully be able to internationalize soon. Incase you wanted to take a crack at it, a PR would be tremendous (& if not, no worries 👍 ).
Any library recommendations? react-intl and react-i18next seem to be popular solutions. It would be great to hear your thoughts.
Thanks again for submitting this issue!

@sebsto I'm curious if you're still running into this problem––seems like the problem was in part caused by the way newsletters were being generated. We re-created the generation mechanism last week. Hoping this is now resolved.

Thanks for getting back to me.  Yes, I still observe the same with latest code in master branch.
Here are two screenshots.  First from local version and second from hosted version.

I changed my Cloud9 machone's TZ (following instructions at https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html)
$ date
Fri May 31 12:00:52 CEST 2019

And can reproduce the problem.

So, it is pretty easy for you to reproduce, just spawn a Cloud9 or EC2 instance, change the timezone and voila ! :-)

@sebsto this is extremely helpful. Will get back to you about this soon.

I am trying to nail down the root cause, but I am new to Gatsby and I am slow on this :-)
Looks like the data returned the Gatsby GraphQL API is incorrect.  So I think this is not a rendering issue as I initially supposed, but the root cause lies probably in the module (a Gatsby module?) that reads the Markdown and exposes it through GraphQL.
Here is my GraphQL query executed in GraphiQL :
fragment Contributor on MarkdownRemark {
    fields {
      key
      slug
    }
    frontmatter {
      name
      bio
      github
      twitter
      website
    }
  }

  fragment SharedBetweenPostsAndEvents on MarkdownRemark {
    fields {
      key
      slug
      date(formatString: "MMMM D, YYYY")
    }
    frontmatter {
      href
      title
      description
      tags
    }
  }

fragment Event on MarkdownRemark {
    ...SharedBetweenPostsAndEvents
    fields {
      attendants {
        ...Contributor
      }
    }
    frontmatter {
      city
      country
    }
  }

  query($currentDate: Date!) {
    allMarkdownRemark(
      sort: {fields: [fields___date], order: ASC}
      filter: {fields: {category: {eq: "events"}, date: {gt: $currentDate}}}
    ) {
      edges {
        node {
          ...Event
          frontmatter {
            platforms
          }
        }
      }
    }
  }

with
{ "currentDate": "2019-06-01" }

And here is a result extract :
{
          "node": {
            "fields": {
              "key": "uActwvwBgN5",
              "slug": "events/2019/06/11/devdays",
              "date": "June 10, 2019",
              "attendants": [
                {
                  "fields": {
                    "key": "2vIVgGdj121",
                    "slug": "contributors/sebastien-stormacq"
                  },
                  "frontmatter": {
                    "name": "Sébastien Stormacq",
                    "bio": "Technical Evangelist @ AWS France.  Talk about frontend, serverless and identity.  https://stormacq.com",
                    "github": "sebsto",
                    "twitter": "sebsto",
                    "website": null
                  }
                }
              ]
            }

As you can see :
"slug": "events/2019/06/11/devdays",
"date": "June 10, 2019",

The directory name is correctly parsed as 2019/06/11 but the date returned is 2019/06/10

BTW, I don't think it is related, but most of the onCreateNode code is never executed because this condition is always false https://github.com/aws-amplify/community/blob/master/gatsby-node/onCreateNode.js#L13
But the date received here is already incorrect :
"context": {
    "slug": "events/2019/07/26/addc",
    "date": "2019-07-25T22:00:00.000Z"
  },

@sebsto I don't believe so; node.internal.type === 'MarkdownRemark' is often true... did you mean to highlight another condition? Can you please describe the problem another way?––I don't think I understand.
Also, in regards to the timezone problem, the solution would probably be to generate many builds for different time zones and feed them up depending on the client. This could be tough to implement. I can't find pre-existing conversations about this problem in Gatsby projects. Feels like a problem with the build paradigm itself. Any other ideas on how we might be able to solve this issue without doing anything at runtime?

Regarding the date : Gatsby is returning an incorrect date.  It takes the date from the slug (2019-07-26) in this example.  It consider the time as being 00:00am GMT.  Then it applies the timezone conversion according to client's timezone (for me GMT+2) to calculate the GMT / Zulu time, which produce a date 2h before the previous day (2019-07-25 22:00 Zulu time)
"context": {
    "slug": "events/2019/07/26/addc",
    "date": "2019-07-25T22:00:00.000Z"
  },

When the build machine has a local TZ in GMT, the problem does not appear.  This is why the public web site is correct.
I would suggest to modify the Gatsby module to not make that time conversion.  But this is potentially a breaking change for other Gatsby apps.
I don't like the idea to generate multiple builds, for each different timezone (24 !)  The design best practice is to store time in Zulu time and display in local time to the client app.  TZ rendering should be a front end issue.  Ideally, Gastby must return the GMT time and we should have client side code to convert it to local or not.
Regarding this use case, we can safely assume that event organisers are always going to give the date of their event / conference in local time and people interested to attend the conference are only interested by local time only.  So if Gatsby returns whatever the event organiser entered, without conversion, we will be good.

@sebsto good call & agreed. Thank you for the deep dive! Will fix this asap.


Tile layers not refreshing on zoom in

Using Leaflet 1.0-dev (46d2d6a)
When I zoom in, the old (more zoomed out) layers do not disappear.   You have to drag or cause some other even for the layer to properly refresh.  See the attached image.  My hack to fix this is to add map.panBy([1, 1]);  to zoomend - not ideal.  Are there work arounds, or a fix in the works?
Not sure if it matters, but the map div is downstream/inside a reactjs object - there might be some dom manipulation that's screwing things up...

Map option {zoomAnimation: false} fixed this.
But I'd like to keep the animations for usability/niceness.

Can you set up a JSFiddle test case to show this?

I'm experiencing exactly the same issue, which seems like it might be a race condition.
It doesn't happen every time and not as frequently in some browsers (Chrome/Chromium based seems to be affected the most).
A co-worker set up a JSFiddle test to illustrate the problem.
http://jsfiddle.net/jesper_larsen/c1h5b8wj/
To show the issue you just have to zoom in and out (using the buttons or a mouse-wheel).
You might have to do it 5-10 times, before it happens.

Reproducible with latest master: http://playground-leaflet.rhcloud.com/had/edit?html,output

This is much easier to reproduce when zooming in/out several zoom levels at once. At least on my firefox, I can consistently reproduce by simply adding map.zoomIn(4); to @yohanboniface's code.
This smells like L.GridLayer._pruneTiles() is not working as it should. It should be a good place to start looking for the cause.

The screenshots look like this is transparent labels on top of each other — is this really a problem we can actually fix? This is not an issue with pruneTiles. The issue is that once we zoom in, z13 parent tile is retained until all 4 of its z14 children are loaded, which certainly means a delay where both z13 and z14 are present on a map. It's unnoticeable with opaque tiles, but becomes a problem with semitransparent ones. I don't think it's possible to fix this without a lot of blood.

The issue disappear when removing "updateInterval: 50".

which certainly means a delay where both z13 and z14 are present on a map

@mourner issue here is that sometime the old zoom tiles remain.

@mourner I think the "right" way to fix this is to modify pruneTiles so it retains a tile until all its children visible within the map viewport have been loaded (not neccesarily all 4 of them).

@IvanSanchez oh, haven't thought of that. Sounds like a good idea!
@yohanboniface remain as in forever?

@mourner Remains until the map is panned or otherwise the view is reset.

remain as in forever?

Yep. Like a viewReset is missing.

That's certainly a bug, yeah.

Think it's a throttle race condition?

Think it's a throttle race condition?

That's my guess right now.

Well, I can still reproduce with updateInverval: 200 but it seems much harder. Real smell of race condition.

For the record, I was able to reproduce even on zoom out.

Due to playground maintenance, I messed up the existing examples, so the one for this bug now lives at http://playground-leaflet.rhcloud.com/puw/edit?html,output

Any news on this issue?

I inserted a button for map.zoomIn(4) as @IvanSanchez recommended, that way it reproduces 9 out of 10 times in FF and Chrome.
http://playground-leaflet.rhcloud.com/row/3/edit?html,output
UpdateInterval seems to have no effect for me, putting it to 10000 still didn't change anything (neither bug, nor speed of Leaflet).
Good news is that it's not present in 1.0 beta-1 for me. The animation is faster in this one, though so it might be a different environment here.

Hi
I have modified the playground example that hyperknot posted 20 days ago with a monkey patched _pruneTiles method for the tile layer:
http://playground-leaflet.rhcloud.com/tur/1/edit?html,console,output
The problem disappears when the call to _retainParent is commented out. It seems like the tiles at the old zoom level are sometimes having their "retain" property set thus preventing them from being purged. I am not sure whether that is OK or not.
I have also added a line of logging. If you look at the tile.active attribute it is sometimes undefined. But that means that !tile.active is true which in turn means that the if statement is fulfilled if tile.current is true. Is that OK?
Best regards,
Jesper

Hi all
I believe that I am closer to a solution. The problem seems to be caused by the fadeAnimation. If we disable that the problem seems to disappear:
http://playground-leaflet.rhcloud.com/caq/edit?html,console,output
The cause seems to be in the _updateOpacity method where we have
for (var key in this._tiles) {
            var tile = this._tiles[key];
            if (!tile.current || !tile.loaded) { continue; }

            var fade = Math.min(1, (now - tile.loaded) / 200);

            L.DomUtil.setOpacity(tile.el, fade);
            if (fade < 1) {
                nextFrame = true;
            } else {
                if (tile.active) { willPrune = true; }
                tile.active = true;
            }
        }

        if (willPrune && !this._noPrune) { this._pruneTiles(); }

I believe this should be:
for (var key in this._tiles) {
            var tile = this._tiles[key];
            if (!tile.current || !tile.loaded) { continue; }

            var fade = Math.min(1, (now - tile.loaded) / 200);

            L.DomUtil.setOpacity(tile.el, fade);
            if (fade < 1) {
                nextFrame = true;
            } else {
                willPrune = true;
                tile.active = true;
            }
        }

        if (willPrune && !this._noPrune) { this._pruneTiles(); }

If we look at what happens when we have fadeAnimation set to false we have (in _tileReady):
if (this._map._fadeAnimated) {
            L.DomUtil.setOpacity(tile.el, 0);
            L.Util.cancelAnimFrame(this._fadeFrame);
            this._fadeFrame = L.Util.requestAnimFrame(this._updateOpacity, this);
        } else {
            tile.active = true;
            this._pruneTiles();
        }

This means that we always prune the tiles when fadeAnimation is set to false. The tile does not have to be active "beforehand". My suggestion for a fix modifies the fadeAnimation behaviour to do the same.
I am however not sure what the intention of the if (tile.active) statement in original code is. Have I missed something?
Regards,
Jesper

@jblarsen Can you please turn that into a pull request? It makes looking at the changes and testing so much easier.

I've run into something very similar in #4193 - and I've realized there is a mismatch between the tiles being loaded, the gridlayer being loaded, and the tiles fading in.
So the pruning algorithm runs whenever the gridlayer has finished loading, which can be sooner than when the tiles have faded in, which means they haven't been set to active, which means they are not pruned.
Maybe we can document with comments the semantics of all these tile states?

@brs-fcoo @livemixlove Could you please test if this bug is still reproducible in master? I'm hoping that the change from https://github.com/Leaflet/Leaflet/pull/4193/files#diff-f1e6be67599c594731fff6191c710420R674 might have fixed this.

@IvanSanchez brs-fcoo and I have tested the newest master in our setup. We cannot reproduce the bug anymore.

@jblarsen @brs-fcoo Glad to hear the bug is gone! :-D
I'll close the bug and pull req for you.


The server is not respecting the locals_without_parens rules in the Elixir project itself.

Environment

Elixir & Erlang versions (elixir --version): Elixir master, OTP 23
Operating system: Linux
Editor or IDE name (e.g. Emacs/VSCode): SublimeText 3
Editor Plugin/LSP Client name: LSP-Elixir

It is not a Mix project, but it will be cool if the LS server could support Elixir core.
Please see the discussion.
https://github.com/elixir-lang/elixir/pull/10389#issuecomment-703057978
https://github.com/elixir-lang/elixir/pull/10389/files#diff-9ff5e42a2e18294ba5812f3aafca3bf9
assert_eval_raise is listed in locals_without_parens
Thank you

If the elixir core team is interested in submitting a PR then we could merge it. Otherwise, I am against adding support for a highly non standard project layout as it's going to be a maintenance burden with no benefit for most of users.
IMO, if we are to support non mix projects then https://github.com/elixir-lsp/elixir-ls/issues/307 should be prioritised higher.

Fair enough. Is there a way to disable the formatting for a specific folder and subfolders?

I guess this should work for a workspace: "editor.formatOnSave": false in project/.vscode/settings.json.
More options in https://stackoverflow.com/questions/44831313/how-to-exclude-files-from-format-on-save-in-vscode/44831631#44831631

I guess this should work for a workspace: "editor.formatOnSave": false in project/.vscode/settings.json.
More options in https://stackoverflow.com/questions/44831313/how-to-exclude-files-from-format-on-save-in-vscode/44831631#44831631

Sorry, I am in SublimeText 3

Sorry, I somehow assumed that You are using vscode. Not sublime user here but there is lsp_format_on_save setting (https://lsp.readthedocs.io/en/latest/features/). It's the editor that issues a format command. The language server only reports if it is supported.

lsp_format_on_save

Thank you. That is exactly what I used for now, but that disables the formatting for all the projects. I once I am done editing Elixir core, I need to set it back on again.
Is there a way to list the directories that you want to be excluded from the formatting?

Is there a way to list the directories that you want to be excluded from the formatting?

Currently not. As I wrote before it's the editor that requests formatting.

Is there a way to list the directories that you want to be excluded from the formatting?

Currently not. As I wrote before it's the editor that requests formatting.

thank you.

I have come up with a solution.
Run these commands in the elixir root folder
It creates symbolic links to the formatter file, and excludes them from your Git's view
for file in lib/{elixir,eex,ex_unit,iex,logger,mix}/.formatter.exs; do
  ln -s ../../.formatter.exs ${file} &&
  echo $file >> .git/info/exclude;
done


feat: modification of the update term to have a better distinction between HA integration & ESP32 firmware updates

+feat: modification of the update term to have a better distinction between HA integration & ESP32 firmware updates
+style: black lint code
Change this confusing informations :

By this :

I manually added this to the update entity.  However, I do not have control over the name shown for the HACS component.


Harmonize Option initializers abstracts

This pull request harmonizes Option initializers abstracts by providing documentation to completionKind arguments.
Checklist

[x] I've added at least one test that validates that my change is working, if appropriate
[x] I've followed the code style of the rest of the project
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary

@swift-ci Please test

@swift-ci Please test


Fix translation list regex

I think perhaps the markup changed - it was coming up with an empty translation list when I tried it.
I also changed the regex to use non-greedy qualifiers to make it a little clearer.

Hi! Thanks :smile_cat:


withComponent() should call super.observedAttributes

This is for two reasons:

We should mix in any observedAttributes from the parent.
This is a perfect integration point for one-time setup upon definition and other mixins might use it.

I've addressed this in https://github.com/skatejs/skatejs/pull/1397 :)

Nice, @chrisdarroch, thanks! I've just reviewed that. Looking for some feedback.

This isn't being done in @skatejs/element anymore, but we probably should be.


Lime Test windows error

Describe your bug here.
Good afternoon or evening.... I want to report an engine build bug, basically when I run Lime Test Windows I get this:

Command Prompt/Terminal logs (if existing)
No response
Are you modding a build from source or with Lua?
Source
What is your build target?
Windows
Did you edit anything in this build? If so, mention or summarize your changes.
no

until I reinstall Haxe to version 4.2.5

until I reinstall Haxe to version 4.2.5

dude shadowmario said in the repo that we need to stop using that version we need to use the latest version of haxe

or not it has changed


cop_nginx does not work unless node['nginx']['install_method'] is set.

==> web: Recipe `cop_nginx::` is not in the run_list, and cookbook 'cop_nginx::'
==> web: is not a dependency of any cookbook in the run_list.  To load this recipe,
==> web: first add a dependency on cookbook 'cop_nginx::' in the cookbook you're
==> web: including it from in that cookbook's metadata.
==> web:
==> web: ================================================================================
==> web: Recipe Compile Error in /var/chef/cache/cookbooks/cop_nginx/recipes/default.rb
==> web: ================================================================================
==> web:
==> web:
==> web: Chef::Exceptions::CookbookNotFound
==> web: ----------------------------------
==> web: Cookbook cop_nginx:: not found. If you're loading cop_nginx:: from another cookbook, make sure you configure the dependency in your metadata
==> web:

Thanks @dmatthew! Fixed in https://github.com/copious-cookbooks/nginx/commit/56224c6ff412b2419e5f0ffa8fca84685cf1dce7

👍 working now without needing to set the install_method.


Secret salt and ECB mode

Salt doesn't need to be secret.

You don't want to use ECB mode. http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29

After reading this through, I do not really think it is possible to have reasonable encryption in git at the moment (without breaking the use of git). As in this approach, you'll end up with a repository with a bunch of blocks encrypted with the same salt and the same password, which makes it fairly easy to strip the encryption all together as soon as the repository is large enough (which it will probably be after a few commits) using some statistical profiling. I would guess that "slightly more secure" does not really hold, as the level of encryption provided on a normal repository is neglectable.

@LegolasV You are absolutely correct on all points, but I feel that is pretty clear already from the various discussions around this project and the idea in general.

@shadowhand Yes, sorry, I should add that I'm interested if this could be done. What that would require is that, for example, the blobs are encrypted when they are written to the disk. Thus, one would do all the operations (e.g. generating the deltas) locally, and then just write the blobs as normally, but now encrypted. Sure, this would still leak information, as the deltas are separately encrypted, but may prove some use.
However, this would probably require changing git fundamentally?


Add ability to reset ThreadTasks

Codecov Report

Merging #20 (341e84c) into master (b83105c) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master       #20   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            5         5
  Lines          131       138    +7
=========================================
+ Hits           131       138    +7

Impacted Files
Coverage Δ

src/ThreadingUtilities.jl
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


feature request: add cmd-click to jump to function definition

All the major editors have this feature as a default behavior:
function foo(){

}

foo() // cmd-click here and you jump to the function definition

It's pretty much the only reason I don't use Atom and stick with either Intellij or VS Code.

Thanks for taking the time to contribute!
We noticed that this is a duplicate of https://github.com/atom/symbols-view/issues/18. You may want to subscribe there for updates.
Because we treat our issues list as the Atom team's backlog, we close duplicates to focus our work and not have to touch the same chunk of code for the same reason multiple times. This is also why we may mark something as duplicate that isn't an exact duplicate but is closely related.
For information on how to use GitHub's search feature to find out if something is a duplicate before filing, see the How Can I Contribute? section of the Atom CONTRIBUTING guide.


Scrub for references to HCC in documentation

on HCC hipMemcpyAsync does not support overlapped H2D and D2H copies. For hipMemcpy, the copy is always performed by the device associated with the specified stream.

https://github.com/ROCm-Developer-Tools/HIP/blob/develop/include/hip/hip_runtime_api.h#L3754
My read is that there is already on-going efforts to remove, but just a heads-up.
cc: @saadrahim

@skyreflectedinmirrors Can you please confirm if this has been fixed? Thanks!


TypeScript intellisense stopping after a while

VSCode Version: 1.24.1
OS Version: Windows 10 x64

In larger TS files with TS 2.9.1 the intellisense stops working after a period of time. See attached screenshot:

I'm hovering over the keyword "querable", which was just refactored from "query".
It sends the correct information to TypeScript (line and col) but then gets an incorrect result back. The only way to solve this issue is to restart VSCode completely.
It looks like the TS server and GUI go out of sync somehow.
Does this issue occur when all extensions are disabled?: Yes

Duplicate of https://github.com/Microsoft/vscode/issues/51960


Relative Path of Images failed to render in post.

Description
While using relative path to insert a image in post, it will be failed to render after deployed.
But it works well in github and local computer.
Example

Dir

post.md
image

fig.png

// post.md
!["fig"](./image/fig.png fig)
// This will failed to render in blog.

I think this problem is related to the image markdown style (not related to the theme).
Here are the styles I know.
!["fig"](./image/fig.png fig)   // Relative path
![fig](/image/fig.png)          // Absolute path
![fig](https://url.com/fig.png)  // Third-party URL

For Jekyll, I recommend the last two styles.
_posts directory is only used for saving post.md file.
The images should be stored in assets/img/ with absolute path /assets/img/.
According to my experience,
storing all images in third-party object storage with CDN will be the best choice.
After all, storage and loading speeds will be improved obviously.

You’re right.
I used absolute path /asset/img in other posts, and the images were shown in the right way.
The post for this issue is moved from one of my old posts. So I think I have to try third-party storage service as you suggested.
Thanks!


Spotify Exception - Audio Features

I've been successufully retrieving audio_features from Spotify's recommendations endpoint, like so:
features = sp.audio_features(tracks_ids)
However, if I provide a list of id's retrieved using search endpoint and pass them in the exact same fashion to sp.audio_features(), I get this:
spotipy.client.SpotifyException: http status: 414, code:-1 - https://api.spotify.com/v1/audio-features?ids=2ujuUDGDg6t5zsN6WZ3CFp,2EOThFm0IhwLkdpQzbvunO,40f9IDTMDpFf3CnTcPhY5F,78qoim2GGUkspkxV8kUtVv,4WZJ5W4gZJXvlqgliLkPCn,4mHS76nxzGrwo25KpzQwiX,1jRHh8JcdUV9zTiAmyzhU9...etc
is there a different authentication flow?
I have been using:
client_credentials_manager = SpotifyClientCredentials('id', 'secret')
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
sp.trace=False

what is going on here?

It's not only issue #113, there are more problems. I will try to fix it.

Pull request #114 fixes this issue


Make the LDAP documentations self-contained

Problem description
Some operators support authentication via LDAP.  LDAP documentation in the operators is not consistent across operators, and not self contained. Some documentation links to the integration tests for details, in other places hypothetical values are used.
Inconsistencies (or even missing steps) make it harder for the user to get a working setup.

Click here for details
The operator documentations only contain the cluster specification which shows how to connect to an existing LDAP server. It is not described how to set up LDAP which matches the shown cluster specification. The documentation is not self-contained and cannot be tried out.
The documentation of the Airflow operator points to an example in the operator repository which uses the OpenLDAP image from Bitnami to create an LDAP instance with two users. The example works well but is not included in the documentation.
The documentations of the NiFi and Trino operators just point to their integration tests. The tests contain KUTTL assertions, Jinja templates, Shell and Python scripts. They are impractical for documentation purposes.
The documentation of the Commons operator just uses hypothetical configuration values.

Context
Operators with LDAP support

Airflow
NiFi
Trino
Superset
Druid (WIP)

Relevant docs pages

concepts > AuthenticationClass
Airflow > usage > LDAP sections
NiFi > usage > LDAP sections
Trino > usage > Security > LDAP section
Superset > usage > LDAP sections

How LDAP in Stackable actually works

configure an AuthenticationClass with an ldap provider
reference this AuthenticationClass instance in the ProductCluster definition

Typically LDAP would already be installed. We do not have an LDAP operator, the User needs to provide their own LDAP. What if the LDAP is running outside of the cluster?
To get something running, an LDAP instance is necessary. We don't support LDAP as a product, but maybe we can have a tutorial to set something up that is explicitly not production ready? Maybe a stack?
Solution

[x] Create a Stack for OpenLDAP in stackablectl to be used in the Tutorial: https://github.com/stackabletech/stackablectl/pull/195
[x] Create a Tutorial how to set up OpenLDAP and connect a couple of products: https://github.com/stackabletech/documentation/pull/334
[ ] Create a Guide giving instructions on how to connect an LDAP running outside of the cluster, and then use it in the products
[x] Refactor the AuthenticationClass concept page to be less instructional and more conceptional and make it link to the tutorial and guide. https://github.com/stackabletech/documentation/pull/339
[x] Link these pages in all Operators that use LDAP.

[x] Airflow https://github.com/stackabletech/airflow-operator/pull/215
[x] NiFi https://github.com/stackabletech/nifi-operator/pull/406
[x] Trino https://github.com/stackabletech/trino-operator/pull/365
[x] Superset https://github.com/stackabletech/superset-operator/pull/310
Druid: Will be done in the LDAP implementation PR: https://github.com/stackabletech/druid-operator/pull/374

I think I like a general tutorial, and operator specific things in dedicated LDAP pages in the operators.

The LDAP structs: https://github.com/stackabletech/operator-rs/blob/main/src/commons/ldap.rs

I found a couple of bugs: https://github.com/stackabletech/issues/issues/322 they impact the tutorial, but I think I can work around it

update: There is now this reorg PR https://github.com/stackabletech/documentation/pull/339
After that is merged, I'll link to all the new pages from the operators and clean up LDAP docs in there

Can this be closed?

Yes