text:
[CLI]: wandb's Artifact.download takes unreasonably long to run when the artifact is already cached

Describe the bug
Consider:
import wandb
from tqdm import tqdm

api = wandb.Api()
model = api.artifact(
    f"gbmi/MaxOf2-3000-epochs-adj-0,1,2,17-training-ratio-0.100-with-eos/MaxOf2-3000-epochs-adj-0_1_2_17-training-ratio-0.100-with-eos-00992319615b6ef6792cfb8e6072515a:v0"
)
run = model.logged_by()
logged_artifacts = run.logged_artifacts()
artifact_paths = [a.download() for a in tqdm(logged_artifacts)]

import cProfile, pstats, io
from pstats import SortKey

pr = cProfile.Profile()
pr.enable()
artifact_paths = [a.download() for a in tqdm(logged_artifacts)]
pr.disable()
sortby = SortKey.CUMULATIVE
ps = pstats.Stats(pr).sort_stats(sortby)
ps.print_stats()

(Also on colab)
Despite all (~300 of) the artifacts already having been downloaded, wandb spends about 48s (of about 51s) (!!!) in wandb/vendor/gql-0.2.0/wandb_gql/client.py:48(execute).  In fact, nearly 49s are spent in
https://github.com/wandb/wandb/blob/05b05a87c3f55c06838b3145de6c69fb5f43e639/wandb/sdk/artifacts/artifact.py#L1738
Can this code be refactored to either

populate the urls when logged_artifacts is called so that we don't have to execute a separate round-trip graphql query for every single artifact every single time; or
check the cache somehow before fetching urls?

profile from cProfile
         2644608 function calls (2634038 primitive calls) in 51.072 seconds

   Ordered by: cumulative time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        2    0.000    0.000   51.076   25.538 /usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py:3512(run_code)
        2    0.000    0.000   51.076   25.538 {built-in method builtins.exec}
        1    0.000    0.000   51.076   51.076 <ipython-input-32-b1e95a6f44fc>:1(<cell line: 2>)
        1    0.004    0.004   51.071   51.071 <ipython-input-32-b1e95a6f44fc>:2(<listcomp>)
      302    0.012    0.000   50.239    0.166 /usr/local/lib/python3.10/dist-packages/wandb/sdk/artifacts/artifact.py:1557(download)
      302    0.031    0.000   50.142    0.166 /usr/local/lib/python3.10/dist-packages/wandb/sdk/artifacts/artifact.py:1683(_download)
  604/302    0.004    0.000   48.678    0.161 /usr/local/lib/python3.10/dist-packages/wandb/sdk/lib/retry.py:210(wrapped_fn)
  604/302    0.022    0.000   48.677    0.161 /usr/local/lib/python3.10/dist-packages/wandb/sdk/lib/retry.py:94(__call__)
      302    0.007    0.000   48.660    0.161 /usr/local/lib/python3.10/dist-packages/wandb/sdk/artifacts/artifact.py:1773(_fetch_file_urls)
      302    0.003    0.000   47.836    0.158 /usr/local/lib/python3.10/dist-packages/wandb/apis/public/api.py:66(execute)
      302    0.003    0.000   47.833    0.158 /usr/local/lib/python3.10/dist-packages/wandb/vendor/gql-0.2.0/wandb_gql/client.py:48(execute)
      302    0.009    0.000   47.831    0.158 /usr/local/lib/python3.10/dist-packages/wandb/vendor/gql-0.2.0/wandb_gql/client.py:58(_get_result)
      302    0.010    0.000   47.821    0.158 /usr/local/lib/python3.10/dist-packages/wandb/sdk/lib/gql_request.py:42(execute)
      302    0.004    0.000   47.148    0.156 /usr/local/lib/python3.10/dist-packages/requests/sessions.py:626(post)
      302    0.015    0.000   47.145    0.156 /usr/local/lib/python3.10/dist-packages/requests/sessions.py:502(request)
      302    0.019    0.000   46.504    0.154 /usr/local/lib/python3.10/dist-packages/requests/sessions.py:673(send)
      302    0.013    0.000   46.300    0.153 /usr/local/lib/python3.10/dist-packages/requests/adapters.py:434(send)
      302    0.017    0.000   45.867    0.152 /usr/local/lib/python3.10/dist-packages/urllib3/connectionpool.py:596(urlopen)
      302    0.012    0.000   45.765    0.152 /usr/local/lib/python3.10/dist-packages/urllib3/connectionpool.py:381(_make_request)
      302    0.017    0.000   45.569    0.151 /usr/local/lib/python3.10/dist-packages/urllib3/connection.py:435(getresponse)
      302    0.006    0.000   45.478    0.151 /usr/lib/python3.10/http/client.py:1331(getresponse)
      302    0.010    0.000   45.456    0.151 /usr/lib/python3.10/http/client.py:311(begin)
     7907    0.011    0.000   45.332    0.006 {method 'readline' of '_io.BufferedReader' objects}
      604    0.006    0.000   45.321    0.075 /usr/lib/python3.10/socket.py:691(readinto)
      604    0.004    0.000   45.312    0.075 /usr/lib/python3.10/ssl.py:1292(recv_into)
      604    0.004    0.000   45.307    0.075 /usr/lib/python3.10/ssl.py:1150(read)
      302    0.008    0.000   45.304    0.150 /usr/lib/python3.10/http/client.py:278(_read_status)
      604   45.303    0.075   45.303    0.075 {method 'read' of '_ssl._SSLSocket' objects}
     6831    1.624    0.000    1.624    0.000 {method 'acquire' of '_thread.lock' objects}

Additional Files
No response
Environment
WandB version: 0.16.3
OS: Linux 053b0e29ee32 6.1.58+ #1 SMP PREEMPT_DYNAMIC Sat Nov 18 15:31:17 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Python version: 3.10.12
Versions of relevant libraries:
Additional Context
Most of the pain in #6856 is coming from this issue

Hi @JasonGross thank you for reporting this issue. In wandb v0.16.3 we added the option to skip caching. Can you please try to download the artifacts as follows, and let us know if that resolves this reported issue here?
a = artifact.download(skip_cache=True)

I have added another cell at the bottom to test this option, but I expect this won't help at all.  The problem is not that downloading is slower with the cache than without---it's not.  Downloading with the cache takes 45 seconds while downloading without the cache takes 3 minutes and 17 seconds.
The problem is that even when the cache is turned on and the artifacts are all in the cache already, wandb is 20x slower at "downloading" artifacts than it needs to be, spending only about 5% of time fetching the artifacts from cache, and the other 95% is spent downloading/fetching urls.

profile of downloading artifacts without cache
         9009763 function calls (8946111 primitive calls) in 204.670 seconds

   Ordered by: cumulative time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        2    0.000    0.000  204.681  102.341 /usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py:3512(run_code)
      4/2    0.000    0.000  204.681  102.341 {built-in method builtins.exec}
        1    0.000    0.000  204.681  204.681 <ipython-input-7-c296c4927149>:1(<cell line: 3>)
        1    0.004    0.004  204.069  204.069 <ipython-input-7-c296c4927149>:3(<listcomp>)
      302    0.020    0.000  201.967    0.669 /usr/local/lib/python3.10/dist-packages/wandb/sdk/artifacts/artifact.py:1557(download)
      302    0.051    0.000  201.833    0.668 /usr/local/lib/python3.10/dist-packages/wandb/sdk/artifacts/artifact.py:1683(_download)
      910    0.026    0.000  134.378    0.148 /usr/local/lib/python3.10/dist-packages/requests/sessions.py:502(request)
      910    0.038    0.000  132.273    0.145 /usr/local/lib/python3.10/dist-packages/requests/sessions.py:673(send)
      910    0.036    0.000  131.859    0.145 /usr/local/lib/python3.10/dist-packages/requests/adapters.py:434(send)
      910    0.036    0.000  130.531    0.143 /usr/local/lib/python3.10/dist-packages/urllib3/connectionpool.py:596(urlopen)
      910    0.034    0.000  129.857    0.143 /usr/local/lib/python3.10/dist-packages/urllib3/connectionpool.py:381(_make_request)
      910    0.049    0.000  103.747    0.114 /usr/local/lib/python3.10/dist-packages/urllib3/connection.py:435(getresponse)
      910    0.013    0.000  103.441    0.114 /usr/lib/python3.10/http/client.py:1331(getresponse)
      910    0.032    0.000  103.378    0.114 /usr/lib/python3.10/http/client.py:311(begin)
      910    0.031    0.000  102.877    0.113 /usr/lib/python3.10/http/client.py:278(_read_status)
    22359    0.029    0.000  102.852    0.005 {method 'readline' of '_io.BufferedReader' objects}
      925    0.012    0.000  102.823    0.111 /usr/lib/python3.10/socket.py:691(readinto)
      925    0.008    0.000  102.809    0.111 /usr/lib/python3.10/ssl.py:1292(recv_into)
      925    0.009    0.000  102.800    0.111 /usr/lib/python3.10/ssl.py:1150(read)
      925  102.791    0.111  102.791    0.111 {method 'read' of '_ssl._SSLSocket' objects}
      906    0.028    0.000   94.507    0.104 /usr/local/lib/python3.10/dist-packages/wandb/sdk/artifacts/artifact.py:610(manifest)
      302    0.011    0.000   71.980    0.238 /usr/local/lib/python3.10/dist-packages/wandb/sdk/artifacts/artifact.py:2166(_load_manifest)
      302    0.005    0.000   71.825    0.238 /usr/local/lib/python3.10/dist-packages/requests/api.py:62(get)
      302    0.008    0.000   71.820    0.238 /usr/local/lib/python3.10/dist-packages/requests/api.py:14(request)
    14433   65.397    0.005   65.397    0.005 {method 'acquire' of '_thread.lock' objects}
      911    0.007    0.000   65.259    0.072 /usr/lib/python3.10/threading.py:589(wait)
     1183    0.016    0.000   65.253    0.055 /usr/lib/python3.10/threading.py:288(wait)
      604    0.013    0.000   64.593    0.107 /usr/lib/python3.10/concurrent/futures/_base.py:201(as_completed)
  910/608    0.008    0.000   64.324    0.106 /usr/local/lib/python3.10/dist-packages/wandb/sdk/lib/retry.py:210(wrapped_fn)
  910/608    0.031    0.000   64.319    0.106 /usr/local/lib/python3.10/dist-packages/wandb/sdk/lib/retry.py:94(__call__)
      608    0.006    0.000   63.728    0.105 /usr/local/lib/python3.10/dist-packages/wandb/apis/public/api.py:66(execute)
      608    0.005    0.000   63.722    0.105 /usr/local/lib/python3.10/dist-packages/wandb/vendor/gql-0.2.0/wandb_gql/client.py:48(execute)
      608    0.016    0.000   63.716    0.105 /usr/local/lib/python3.10/dist-packages/wandb/vendor/gql-0.2.0/wandb_gql/client.py:58(_get_result)
      608    0.022    0.000   63.698    0.105 /usr/local/lib/python3.10/dist-packages/wandb/sdk/lib/gql_request.py:42(execute)
      608    0.007    0.000   62.635    0.103 /usr/local/lib/python3.10/dist-packages/requests/sessions.py:626(post)
      302    0.006    0.000   42.088    0.139 /usr/local/lib/python3.10/dist-packages/wandb/sdk/artifacts/artifact.py:1773(_fetch_file_urls)
      910    0.006    0.000   25.508    0.028 /usr/local/lib/python3.10/dist-packages/urllib3/connectionpool.py:1089(_validate_conn)
      302    0.012    0.000   25.500    0.084 /usr/local/lib/python3.10/dist-packages/urllib3/connection.py:609(connect)
      302    0.014    0.000   24.446    0.081 /usr/local/lib/python3.10/dist-packages/urllib3/connection.py:708(_ssl_wrap_socket_and_match_hostname)
      302    0.008    0.000   24.158    0.080 /usr/local/lib/python3.10/dist-packages/urllib3/util/ssl_.py:398(ssl_wrap_socket)
      302   22.790    0.075   22.790    0.075 {method 'load_verify_locations' of '_ssl._SSLContext' objects}
      303    0.005    0.000    2.098    0.007 /usr/local/lib/python3.10/dist-packages/tqdm/std.py:1160(__iter__)
        5    0.001    0.000    1.953    0.391 /usr/local/lib/python3.10/dist-packages/wandb/apis/paginator.py:55(_load_page)

Indeed this does not address the issue here

Thank you so much @JasonGross for the detailed download tests. Would it be possible to share some details how many files are you having in your artifacts, what type they are and what's their individual size? also, any chance you could downgrade to wandb 0.16.1 and try again? There seems to be a reported issue with upload speed in 0.16.3 and wanted to confirm they're not related.

All the information you might want is on the colab, which reproduces the issue in full...
The file size shouldn't be relevant, since, as I point out above, 49s (out of 51) is spend downloading urls.  But, sure, each artifact has one file in it, the average file size is 130.64 kb, and the total size of the files is 38.53 mb.  But, as I said, the problem is that wandb is spending 49 seconds downloading urls when the files are already downloaded.
I also don't see how this could possibly be related to slow uploads, because, as I've said, the problem is spending time downloading urls.  I gave profile including all relevant lines when reporting this issue, and the colab contains the complete profile.
0.16.1 is not capable of downloading artifacts at all, erroring with "CommError: It appears that you do not have permission to access the requested resource. Please reach out to the project owner to grant you access. If you have the correct permissions, verify that there are no issues with your networking setup.(Error 404: Not Found)" (https://github.com/wandb/wandb/issues/6783)
0.15.12 is a basically the same (3m1s with no cache; 53s when everything is already cached).

Thank you @JasonGross for the detailed information and for the Colab repro. This is a great suggestion, and I've logged it as a feature request. We're focusing on performance overall, including artifacts download/upload, and that's certainly something we would like to address with either of your suggested solutions. I will keep you updated on its progress here.

Hey @JasonGross , thank you for the detailed report and sorry for the delayed response. I'm on the engineering team and can confirm that this is definitely an issue that we can address. We've filed an internal ticket to track it and will pick this up in the near future. I don't have an exact timeline right now as we're tackling several other high priority tasks with performance. While we're slower than we could be in the case of cached artifacts, the impact of the extra URL signing is small compared to some other use cases dealing with reference artifacts and large scale downloads. We're currently working on improving performance for those cases which is why it will take a little longer getting to this issue.
I just wanted to share the context and some internal roadmap for the team so you are aware of what is going on. Again, thank you for the detailed feedback and we will aim to get to it as soon as we can!

+1. I do think this deserves attention. Fixing would be a noticeable QoL boost.

@JasonGross @benrhodes26 , I created #7245 to address this, but you might be disappointed at how little of a difference it makes if your script downloads all the artifacts in series. We still have to make a network request to get the manifests for each artifact--in your script this gets glossed over because you load the manifests when you pre-load the artifacts, but in a typical case you still need to download them.
Using your script on the current wandb release I was able to get it to run in <6 seconds by parallelizing the requests:
with ThreadPoolExecutor() as executor:
  executor.map(lambda a: a.download(), logged_artifacts)

Using your script as-is on my feature branch it runs in <200ms, but that ignores the 1m23s it takes to load the initial manifests. If you parallelize the initial load it finishes in <6 seconds.

I have also noticed this...
Maybe it is a good idea to add an option that doesnt redownload it? It can be a bit problematic of course but if you are running a script and you know that the artifact is downloaded, waiting for the cache check which can be upwards of a minute is very frustrating

authors: JasonGross Jorgeromeu benrhodes26 jlzhao27 moredatarequired thanos-wandb

repo: wandb/wandb


text:
兼容到ie9吗

ie9toolbar样式乱了，功能无法使用

不再兼容ie9了，toolbar使用flex布局了

source: gharchive/issue

license: mit

license_type: permissive

license_source: bigquery


text:
关于编辑的文本的回显问题

我是通过 .text.html()插入的文本内容,想要回显编辑.但是发现一个问题,编辑框的滚动条失效了.
也就是说,当我的内容通过 .text.html("
balablabla一大堆超长的文本
") 重新设置内容后,滚动条会失效

是editor.txt.html('
123123123123

123123123123
') 我试了一下，没啥问题
你确定是用的 v3 版本？


text:
generator depths test

test std::generator(co_yield elements_of)/std::generator(for generator)/oeo::generator(no coroutine stack) performance at different depths

thank you !

source: gharchive/pull-request

license: MIT

license_source: github-api


text:
0.10.2版本后，插件监听了window的鼠标移动事件，阻止了默认行为。导致画布外文本框内容无法选择；

0.10.2版本后，插件监听了window的鼠标移动事件，阻止了默认行为。导致画布外文本框内容无法选择；
希望能够改进一下，改为可配置是否阻止默认行为；或者把监听范围限制在画布内，不影响画布外的dom元素；

我的在线demo里画布外可以选中啊

已删除默认阻止的代码，v0.10.6+生效


text:
English UI

Is there easy way to change the UI into English?

The menu is implemented by hard coding, and only Chinese is currently considered. Can only be achieved by changing the code.


text:
Add new API routes

Add /markdown/ route which renders markdown on the server.
Remove multipart/form-data support
Add creation and update datetimes to Comments.
Add author association info to Comments.
Add reactions array to Comments.
Specify that main route returns a CommentsArray.
Add query params to main route.

repo: warblerorg/warbler-api


text:
fix: redact sensitive fields when printing grpc request

This helps prevent sensitive information in the requests from leaking out in the logs.

@imuni4fun @mugdha-adhav @nloke

@vadasambar could you please paste an output of how the log messages are printed after this change?

Does this help?

Yeah, looks good. As we are also using klog, I would expect similar results in the logging behaviour.

If you need a release for this change, I would suggest to update Chart.yaml and Makefile with new version to avoid another commit/PR.

@mugdha-adhav thanks. I have updated makefile and chart.yaml

authors: mugdha-adhav vadasambar

repo: warm-metal/container-image-csi-driver


text:
✨🔨 Migration, with pretend, fresh and seed

Added Migration artisan commands

php artisan migrate
php artisan migrate --pretend
php artisan migrate:fresh
php artisan migrate:fresh --seed

For some reason, I can't merge it to the master branch.

repo: warpdotdev/workflows


text:
Favicon added to the website

Description
Added image into img folder and link into the index.html.
Added the favicon to  the website.
Checklist

[x] I am making a proper pull request, not spam.
[x] I've checked the issue list before deciding what to submit.

Related Issues or Pull Requests
issue #130
Add relevant screenshot or video (if any)
After adding favicon to the webiste

add this https://www.flaticon.com/free-icon/reading_1870196

add this https://www.flaticon.com/free-icon/reading_1870196

ok.

@wasimreja  I have updated the favicon .

authors: Laxmankohar wasimreja

repo: wasimreja/book-finder


text:
feat: Updates tests and examples to support the new wkg deps

This updates all dependencies to have a wkg.lock and to have a line in their git ignore. The deps are still committed in tree for backwards compatibility and they all use the new versioned logging. This looks really chunky but is mostly dep updates/deletes

oci-distribution is deprecated, but we were giving it another month before doing a rustsec security advisory. The changes for it was literally like 2-4 lines of code not counting the s/oci_distribution/oci_client. We needed it to update to the latest wkg stuff

Please note that I decided not to add wit/deps to the gitignore here because it was causing issues even when force adding. We can add that down the line when we remove the deps dirs in tree

repo: wasmCloud/wasmCloud


text:
Support OCI environment variables

This PR introduces the WASMCLOUD_OCI_ALLOW_LATEST and WASMCLOUD_OCI_ALLOWED_INSECURE environment variables. allow_latest is a boolean to allow the :latest tag, and allowed_insecure is a comma-separated list of registries that should be accessed over HTTP rather than HTTPS.
I also changed the par_from_bytes function to return {:ok, par} rather than just par so we can actually match against the ok condition.

tested without the env variable and load from insecure oci failed (as expected)
tested with env variable and load from insecure oci succeeded
also tested env variable specifity: adding allowed-insecure "localhost:5001" but trying to pull from "localhost:5000" insecure - failed as expected
I don't know if this is something that should be fixed or not: If a previous run of the host loaded an actor from an insecure oci server, and then the host is restarted without the allowed-insecure environment variable, the start actor command will succeed with the insecure oci url, because the actor is pulled from the cache instead of the url.

I don't know if this is something that should be fixed or not: If a previous run of the host loaded an actor from an insecure oci server, and then the host is restarted without the allowed-insecure environment variable, the start actor command will succeed with the insecure oci url, because the actor is pulled from the cache instead of the url.

This is an interesting edge case. Not sure if we have to fix it now, if we did I don't think having an extra branch of code for "if insecure and exists in cache" is the right idea, this feels more like something that we should address by clearing the cache on host shutdown or something of the sort. Perhaps this will be best filed as an issue and labeled with question @stevelr? (I'm mostly proposing that because I don't have a solution or a strong feeling on how to address it)

Thanks for doing some integration testing 😄

In general, we shouldn't be using environment variables for settings that may change during the (hopefully long) runtime of the host, unless there is also a way to change the setting at runtime. In this case, however, I like the inflexibility because it's more secure. A production environment should be disabling loading from insecure oci connections (as is the default), and preventing a runtime reconfiguration that allows loading from insecure oci connections is a good thing.

authors: brooksmtownsend stevelr

repo: wasmCloud/wasmcloud-otp


text:
{WIP] Integrity poll of the lattice state from OTP

@autodidaddict
The lattice observer builds a "lattice" that represents the state from the events that the observer observes. It makes sense to do an integrity scan - if an event was missed, The code is a simple way of polling the known good state from OTP. The state is constructed and maintained in a genserver within the wasmcloud_host  project
Is all the information below needed to reconstruct the lattice. I am thinking in terms of separating the runtime (dynamic data) from the model (static)
%WasmcloudHost.Lattice.StateMonitor.State{
  claims: %{
    "MBCFOPM6JW2APJLXJD3Z5O4CN7CPYJ2B4FTKLJUR5YR5MITIU7HD3WD5" => %{
      call_alias: "",
      caps: "wasmcloud:httpserver",
      iss: "ACOJJN6WUP4ODD75XEBKKTCCUJJCY5ZKQ56XVKYK4BEJWGVAOOQHZMCW",
      name: "echo",
      rev: "4",
      sub: "MBCFOPM6JW2APJLXJD3Z5O4CN7CPYJ2B4FTKLJUR5YR5MITIU7HD3WD5",
      tags: "",
      version: "0.3.2"
    },
    "VAG3QITQQ2ODAOWB5TTQSDJ53XK3SHBEIFNK4AYJ5RKAX2UNSCAPHA5M" => %{
      call_alias: "",
      caps: "",
      iss: "ACOJJN6WUP4ODD75XEBKKTCCUJJCY5ZKQ56XVKYK4BEJWGVAOOQHZMCW",
      name: "httpserver",
      rev: "1631827501",
      sub: "VAG3QITQQ2ODAOWB5TTQSDJ53XK3SHBEIFNK4AYJ5RKAX2UNSCAPHA5M",
      tags: "",
      version: "0.14.4"
    }
  },
  hosts: %{
    "NAYEXIY6HDQ2RO6UO5V5O7P6PAVH6WGTC5QPHHWEVV2UX4WSAHVNCHVJ" => %{
      actors: %{
        "MBCFOPM6JW2APJLXJD3Z5O4CN7CPYJ2B4FTKLJUR5YR5MITIU7HD3WD5" => %{
          count: 2,
          status: "Healthy"
        }
      },
      labels: %{
        "hostcore.arch" => "x86_64",
        "hostcore.os" => "linux",
        "hostcore.osfamily" => "unix"
      },
      providers: %{
        {"VAG3QITQQ2ODAOWB5TTQSDJ53XK3SHBEIFNK4AYJ5RKAX2UNSCAPHA5M", "default"} => %{
          contract_id: "wasmcloud:httpserver",
          status: "Healthy"
        }
      }
    }
  },
  linkdefs: %{
    {"MBCFOPM6JW2APJLXJD3Z5O4CN7CPYJ2B4FTKLJUR5YR5MITIU7HD3WD5",
     "wasmcloud:contract",
     "default"} => %{
      provider_key: "VAG3QITQQ2ODAOWB5TTQSDJ53XK3SHBEIFNK4AYJ5RKAX2UNSCAPHA5M",
      values: %{}
    }
  },
  refmaps: %{
    "wasmcloud.azurecr.io/echo:0.3.2" => "MBCFOPM6JW2APJLXJD3Z5O4CN7CPYJ2B4FTKLJUR5YR5MITIU7HD3WD5",
    "wasmcloud.azurecr.io/httpserver:0.14.4" => "VAG3QITQQ2ODAOWB5TTQSDJ53XK3SHBEIFNK4AYJ5RKAX2UNSCAPHA5M"
  }
}

How is the GenServer data being persisted?
What is the authoritative source of truth for the lattice (lattice observer or OTP)?
In the event that the system crashes (host_core) what is the recovery mechanism?

the OTP host shouldn't be used to send any state to wadm. wadm has its own NATS subscriber that listens on the event stream and then applies those events in-memory to a lattice observer.
The state monitor that's in the wasmcloud_host repository is deprecated and will eventually be replaced with a NATS subscriber that uses a lattice-observer to generate state on the fly from the event stream.
In other words, when things are "complete" then both wasmcloud_host and wadm will be using the same lattice-observer library to generate state from an event stream. They will not communicate with each other to compare notes on state because they're maintaining state for two entirely different reasons.
In wadm, the state is being persisted in a Redis cache and the wadm application is designed to run as a BEAM cluster with automatic failover and high availability.

I do like the idea of an integrity check, but wadm is an opt-in part of the ecosystem.. a wasmCloud host can and does run without wadm available on the network for such an integrity check. I think one avenue I'd like to explore here (and I think I've got an issue around here somewhere for it) would be to allow people to configure the event stream in JetStream as durable and then allow replays from that stream to reconstitute state afresh.

What is the authoritative source of truth for the lattice (lattice observer or OTP)?

There isn't one. There are different authorities depending on what you're doing. The wasmcloud_host's view of the lattice state is purely one of convenience for users of the "washboard". If the host goes down and comes back up, it's fine if it's lost observed state. It'll refresh its host list through the next sequence of heartbeats.

In the event that the system crashes (host_core) what is the recovery mechanism?

For the wasmcloud_host process, it's fine. The main function of the host is to run the wasmCloud plumbing, it doesn't actually need to maintain the runtime lattice state so long as it gets replay of the "lattice cache", which is the raw data like link definitions and image refs and claims. wasmcloud_host's state monitor is a convenience. Ultimately that's going to be replaced by a use of the lattice monitor, but it won't change the ephemeral nature of this cache.
As mentioned, wadm is the process that has a highly available state cache because it's required for managing active deployments whereas the "washboard"'s state is a handy convenience.


text:
feat: Add a Cache API

Fix #18.
~Blocked by #25 (this PR contains all its commits).~
This PR adds a Wasm\Cache API:
$cache = new Wasm\Cache\Cache(CACHE_DIRECTORY);

if ($cache->has(KEY)) {
    $module = $cache->get(KEY);
} else {
    $module = new Wasm\Module(__DIR__ . '/simple.wasm');
    $cache->set(KEY, $module);
}

$instance = $module->instantiate();
$instance->sum(1, 2);

The cache API is based on PSR-16.

Any thoughts on this @xtuc?

Serializing the module to a string seems a bit inefficient to me, and I doubt someone would manipulate the string in PHP. However, manipulating an opaque pointer to the compiled module seems useful. A use-case that comes to my mind is the threading proposal, which requires to instantiate the same compiled Module multiple times.
I'm really not aware of PHP extensions work, but is there a way to keep something in memory for multiple requests? Ideally to me, the opaque pointer would be managed by wasmer.

It is possible to get a persistent data in PHP yes. I don't know how, but I know it is :-).
@nikic Do you think it's a good idea to get a persistent opaque pointer between PHP requests? If yes, any idea how to implement that? Thanks!

@Hywan As long as you don't use the per-request allocator, keeping persistent data between request is (on a technical level) not a problem. You need to stick your opaque pointer into globals somewhere and have a mechanism on the PHP side for how it can be accessed again on the next request. (A common example for persistent data are persistent database resources -- but actually using resources is not necessary.)

@nikic Do you know if an extension already does that? Or if Zend offers an API for that? I'm interested by the persistent resource, any documentation? Thanks!

I'll address the persistant module or instance in another issue.

authors: Hywan nikic xtuc

repo: wasmerio/php-ext-wasm


text:
Memory leak with go-wasm-adapter/go-wasm

Thanks for the bug report!
Describe the bug
I referenced "github.com/go-wasm-adapter/go-wasm" and updated it to support wasmer-go 1.0+.
When I create an instance with bridge(go-wasm) and execute it in batches, the memory is ever increasing.
I try to optimize go-wasm, but the effect is not good, the problem still exists.
Can you help me locate the cause?
Steps to reproduce

Go to github.com/BruceChoca/go-wasm, See "TestDemo"

package memory

import (
	"context"
	"encoding/json"
	"errors"
	"io/ioutil"
	"log"
	"runtime"
	"strconv"
	"sync"
	"testing"
)

const (
	FAILURE = 500
	SUCCESS = 200
)

type Response struct {
	Result  int    `json:"status"`
	Message string `json:"message"`
	Body    []byte `json:"body"`
}

func TestDemo(t *testing.T) {
	codebuf, _ := ioutil.ReadFile("./wasm/main.wasm")

	r, err := Start("test", codebuf)
	if err != nil {
		panic("Start Error")
	}

	// batch
	count := 30000
	wg := sync.WaitGroup{}
	wg.Add(count)
	for i := 0; i < count; i++ {
		go func(index int) {
			err := r.Invoke(index)
			if err != nil {
				println(err.Error())
			}
			wg.Done()
		}(i)
	}

	wg.Wait()

	println("done")

	r.runtime.Release()

	runtime.GC()

	select {}
}

type R struct {
	runtime Runtime
	lock    sync.Mutex
}

func Start(name string, codebuf []byte) (*R, error) {
	runtime, _ := RuntimeFromBytes("test", codebuf, nil)

	// import Call
	runtime.SetFunc("Sys_Call", func(args []interface{}) (i interface{}, e error) {
		// get params
		funcName, _ := String(args[0])
		byteArgs, _ := Bytes(args[1])

		byteData := [][]byte{}
		err := json.Unmarshal(byteArgs, &byteData)
		if err != nil {
			resByte, _ := json.Marshal(Response{
				Result:  FAILURE,
				Message: "args Unmarshal error, Error: " + err.Error(),
			})
			return FromBytes(resByte), nil
		}

		switch funcName {
		case "Logln":
			args := []interface{}{}
			json.Unmarshal(byteData[0], &args)
			log.Println(args...)
			return FromBytes(nil), nil
		default:
			log.Println(args...)
			return FromBytes(nil), nil
		}
	})

	// start
	init := make(chan error)
	ctx, cancF := context.WithCancel(context.Background())
	runtime.CancF = func() {
		runtime.ClearInstance()
		cancF()
	}

	go runtime.Run(ctx, init)

	return &R{
		runtime: *runtime,
	}, <-init
}

func (r *R) Invoke(index int) error {
	r.lock.Lock()
	defer r.lock.Unlock()

	res, err := r.runtime.CallFunc("logFunc", []interface{}{"test log " + strconv.Itoa(index)})
	if err != nil {
		return errors.New("CallFunc Error: " + err.Error())
	}
	resByte, err := Bytes(res)
	if err != nil {
		return errors.New("Response Convert Bytes Error: " + err.Error())
	}

	var response = Response{}
	json.Unmarshal(resByte, &response)

	println("invoke", index, ":", response.Result, response.Message)

	return nil
}

Run TestDemo
See error

GOOS=js GOARCH=wasm go build -o main.wasm ./wasm/main.go
Expected behavior
I expect the memory usage to grown a bit and then even out to a stable number.
Actual behavior
The memory usage keeps increasing with invoke.

Hello,
So, you're compiling a Go program to Wasm, to execute it in Go. OK.
First, why doing that :-)? I'm curious.
Second, maybe it's a leak in your Go program, not in wasmer-go. Can you try with https://github.com/wasmerio/wasmer-go/pull/277 please?

Hello,
First, I want to make a tool to run go programs with wasm.
Second,
I think the leak may occur in the following parts:

Runtime

I update "syscall/js.finalizeRef" and optimized it.
The end of demo, I run Release(), set them "nil"
func (b *Runtime) ClearInstance() {
	b.instance = nil
	b.valueMap = nil
	b.refs = nil
	b.valueIDX = 8
	b.refCount = nil
	b.memory = nil
}

Wasm Memory, I called "Grow"

func (b *Runtime) mem(offset int32) []byte {
	m, _ := b.instance.Exports.GetMemory("mem")
	if b.memory == nil {
		b.memory = m.Data()
	}

	if len(b.memory) <= int(offset) {
		m.Grow(1)
		b.memory = m.Data()
	}

	return b.memory
}

Wasmer-go

I can't judge the real cause.
my go program referenced "github.com/go-wasm-adapter/go-wasm",
I also tested "github.com/go-wasm-adapter/go-wasm", it also has similar problems.
I saw this 8#issue go-wasm-adapter/go-wasm
So, can you help me find the reason?

I'm sorry but you should open a PR on go-wasm-adapter/go-wasm, not this repository. I'm not the owner of the go-wasm project. I proposed my help to migrate to wasmer-go 1.0, but the discussion must not happen here :-).
I'm closing the issue. Please reopen it at https://github.com/go-wasm-adapter/go-wasm/. Thank you.

authors: BruceChoca Hywan

repo: wasmerio/wasmer-go


text:
Quiet run mode for wasmi_cli

I'd like to be able to avoid this message when running wasmi_cli:
executing File("examples/out/branch.wasm")::_start() ...

I'd prefer it off by default, reserved for verbose mode, but conservatively, some --quiet flag option could be available instead.
I'm happy to add --quiet on my end and submit a PR. Would this be ok?

Maybe it is indeed better to introduce a --verbose option to enable the current messages since that would reflect the default way that Wasmtime currently does with respect to non-warning or non-error messages.
Please feel free to open a PR to introduce this --verbose option to our Wasmi CLI tool. :)

Awesome. Thanks for the reply. I'll work on that!

authors: Robbepop tjpalmer

repo: wasmi-labs/wasmi


text:
generate package in templates from pom.xml

read groupId and artifactId from pom.xml (it is assumed that Barista is used at root of a maven project), and use the information to generate package line in templates -- see src/main/resources/templates/barista.
the package declaration in a template should be package groupId.artifactId;.
a subpackage should be used for subdirectories. eg an entity should be generated in src/main/java/groupId/artifactId/entities, and should have a package declaration package groupId.artifactId.entities;.

I would like to be assigned  this issue please

If you want to use "barista" in maven projects, it would be a good idea creating a maven-plugin instead of that simple project.
The benefit is, that your are able to proceed(and configure) it inside the pom and integrate the execution inside the maven lifecycle.

If you want to use "barista" in maven projects, it would be a good idea creating a maven-plugin instead of that simple project.
The benefit is, that your are able to proceed(and configure) it inside the pom and integrate the execution inside the maven lifecycle.

thx @bhegmanns for the feedback. the maven-plugin is a great idea, I will investigate it :)

I can do it (I think in a short way). Create a new branch vor mavenized project and I'll make a PR.

@bhegmanns here it is: https://github.com/wasthishelpful/barista/tree/maven-plugin

authors: Ruchika8 bhegmanns wasthishelpful

repo: wasthishelpful/barista


text:
Add fake GPS messages to parsley source, remove old messages

Description
Removed the old fake messages under FakeSerialCommunicator as well as the code populating those fake messages, as the messages are outdated.
Updated FakeSerialCommunicator.__init__ and FakeSerialCommunicator.read to generate new fake messages (currently only related to GPS). These messages are based on an omnibus log saved from a previous competition and the RocketCAN packet docs.
Note: parsley repo must be updated to support new format of messages. Will create a PR for this.
This PR closes #315.
Developer Testing
Here's what I did to test my changes:

Ran the parsley source with the --fake flag through omnibus bus into the printer sink to make sure the messages were being encoded properly.
Artificially set the timestamp to 16,777,000 and made sure the it was reset back to 0 once it exceeded 16,777,215.
Manually took DDM coordinates of generated messages and made sure they were within the Waterloo region.

Reviewer Testing
Here's what you should do to quickly validate my changes:

Take some generated coordinates and check they are in the Waterloo region.
Make sure generated values are accurate to what is expected from real-world data (num_sats, quality, etc).

This change is

I am going to review the PR tmr, tested run a few issue need to be solved. But excellent work!

authors: EmpiricalCode zangjiucheng

repo: waterloo-rocketry/omnibus


text:
tspan tags counted as characters for masking

Running the pre-compiled windows 64 bit version.  I see the issue when placing text between arrows.  An area around the text is masked out (arrowheads erased).  That area grows and shrinks based on the total length of the text string.
If I add  repeatedly the white, masked, area before and after the text extends erasing progressively more of the graph.  Presumably only the actual non-control characters should be counted.

Duplicate Closing....

Duplicate Closing....

repo: wavedrom/wavedrom


text:
chore(master): release 1.1.37

:robot: I have created a release beep boop
1.1.37 (2023-08-24)
Bug Fixes

deps: update dependency wayofdev/laravel-cycle-orm-adapter to v4.0.71 (8dc54fe)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/wayofdev/laravel-webhook-client/releases/tag/v1.1.37 :sunflower:

repo: wayofdev/laravel-webhook-client


text:
Support new stage RC 3 for 4.8.1 in wazuh-dashboard repository

Description
This issue attempts to support a new stage RC 3 for 4.8.1 in the wazuh-dashboard repository.
Tasks

[ ] Ensure changelog is updated for 4.8.1 (if applicable).
[ ] Bump revision for branch 4.8.1 on wazuh-dashboard repository.
[ ] Create tag v4.8.1-rc3 from branch 4.8.1 on wazuh-dashboard repository.
[ ] Create and publish a pre-release: https://github.com/wazuh/wazuh-dashboard/releases/tag/v4.8.1-rc3.

The repository is not used in versions lower than 4.9.0. I will close this issue

authors: Tostti davidjiglesias

repo: wazuh/wazuh-dashboard


text:
High-severity vulnerability in dependent package

GitHub Advisory Database / CVE-2020-28477
Prototype Pollution in immer
⛔ high severity

Package
Affected versions
Patched versions

 immer (npm)
< 8.0.1
8.0.1

Overview
Affected versions of immer are vulnerable to Prototype Pollution.
Proof of exploit
const {applyPatches, enablePatches} = require("immer");
enablePatches();
let obj = {};
console.log("Before : " + obj.polluted);
applyPatches({}, [ { op: 'add', path: [ "__proto__", "polluted" ], value: "yes" } ]);
// applyPatches({}, [ { op: 'replace', path: [ "__proto__", "polluted" ], value: "yes" } ]);
console.log("After : " + obj.polluted);

Remediation
Version 8.0.1 contains a fix for this vulnerability, updating is recommended.
References

https://nvd.nist.gov/vuln/detail/CVE-2020-28477
immerjs/immer#738
immerjs/immer@da2bd4f
https://github.com/immerjs/immer/blob/master/src/plugins/patches.ts%23L213
https://snyk.io/vuln/SNYK-JAVA-ORGWEBJARSNPM-1061986
https://snyk.io/vuln/SNYK-JS-IMMER-1019369
https://www.npmjs.com/package/immer

Updating the Immer package past 8.0.1 is advised for security -- it looks like this can be accomplished by updating the easy-peasy dependency.

looks like it's easy-peasy that's causing the issue..

Whoops, it looks like it's

Updating the Immer package past 8.0.1 is advised for security -- it looks like this can be accomplished by updating the easy-peasy dependency.

Hey! Since v9 we no longer use easy-peasy (and immer) anymore.

Riiiight i just saw that-- tis me who needs to update!

authors: meatflavourdev moklick

repo: wbkd/react-flow


text:
React flow components display not as expected

Describe the Bug
I am new to the React Flow. I want to use it in my project.
While I tried the example in website, but it didn't work as expected. Could you help me to figure it why?

Your Example Website or App
No response
Steps to Reproduce the Bug or Issue

Install nextJS

Create nextJS project with TypeScript, React and tailwind css. Following is library and related versions I am using:

Install ReactFlow

Use below code
Below is the example code I used:

import {useCallback} from "react";
import ReactFlow, {
  MiniMap,
  Controls,
  Background,
  useNodesState,
  useEdgesState,
  addEdge,
} from "reactflow";

const initialNodes = [
  {id: "1", position: {x: 0, y: 0}, data: {label: "1"}},
  {id: "2", position: {x: 0, y: 100}, data: {label: "2"}},
];

const initialEdges = [{id: "e1-2", source: "1", target: "2"}];

export default function ProcedureFlow() {
  const [nodes, setNodes, onNodesChange] = useNodesState(initialNodes);
  const [edges, setEdges, onEdgesChange] = useEdgesState(initialEdges);

  const onConnect = useCallback(
    (params) => setEdges((eds) => addEdge(params, eds)),
    [setEdges]
  );

  return (
    <ReactFlow
      nodes={nodes}
      edges={edges}
      onNodesChange={onNodesChange}
      onEdgesChange={onEdgesChange}
      onConnect={onConnect}
    >
      <MiniMap />
      <Controls />
      <Background />
    </ReactFlow>
  );
}

Expected behavior
UI display like example:

Screenshots or Videos
My UI screenshot:

Platform

OS: macOS (
ProductVersion:	12.6
BuildVersion:	21G115)
Browser: Chrome (Version 106.0.5249.119 (Official Build) (x86_64))

Additional context
No response

Hey! Are you importing the styles in _app.tsx like this: https://github.com/wbkd/react-flow-example-apps/blob/main/reactflow-nextjs/src/pages/_app.tsx#L4

Thank you @moklick ! Yeah I think it works now!

authors: flexfranklin moklick


text:
建议支持插件系统

官网已开放插件系统的使用，并且支持禁用搜索

官网已开放插件系统的使用，并且支持禁用搜索

@jsdianman 插件系统还在AB测试中，我这边还没有。暂时没办法分析插件是怎么工作的，网上也没有相关文章，不太好做适配

请问如何开启不联网模式？

@boool369  好像只是api调用 网页端早已支持

请问如何开启不联网模式？

网页端使用的话启用Gpt4模式，api使用model指定为gpt-4

authors: Happy-clo boool369 jsdianman lwdgit weaigc

repo: weaigc/bingo


text:
UI does not treat "" as 'none' in topologyOptions

Feeding a APITopologyOptionGroup{ID: "namespace", Default: "", SelectType: "union", NoneLabel: noneLabel} to the UI, does not select "All Namespaces" in the UI, e.g. you end up with

By contrast, feeding a Default: "none" works as expected. @ekimekim believes this is a bug/wart.
See https://github.com/weaveworks/scope/pull/2522#discussion_r116689283

More correctly, none is being treated as a special case value when it should not. Union-type values are comma-seperated lists, with "" indicating the empty list. A value of "none" should mean ["none"], not [].
Also, I believe this error to be relevant:
app-2ee0f4f….js?4d6e899…:41 Uncaught TypeError: Cannot read property 'includes' of undefined
    at t.value (app-2ee0f4f….js?4d6e899…:41)
    at f._renderValidatedComponentWithoutOwnerOrContext (vendors.js?4d6e899…:25)
    at f._renderValidatedComponent (vendors.js?4d6e899…:25)
    at f.performInitialMount (vendors.js?4d6e899…:25)
    at f.mountComponent (vendors.js?4d6e899…:25)
    at Object.mountComponent (vendors.js?4d6e899…:11)
    at d.mountChildren (vendors.js?4d6e899…:25)
    at d._createInitialChildren (vendors.js?4d6e899…:25)
    at d.mountComponent (vendors.js?4d6e899…:25)
    at Object.mountComponent (vendors.js?4d6e899…:11)

I get this error when I try to set default = "", and the option group in question doesn't display at all. I believe what is happening is that, since the value is empty and the go struct is annotated with omitempty, it is not sending the key at all. This is then causing a type error in the JS code since the expected key is not present.
Possible solutions:

Remove the omitempty annotation
Have the UI understand that omitted means ""

I'd prefer the former as it keeps the API semantics simpler.

authors: ekimekim rade

repo: weaveworks/scope


text:
Make scope work over the weave network

It doesn't mix with --net=host

could perhaps use weave expose to get a weave IP for the host.

Finally resolved with #302

authors: peterbourgon rade tomwilkie


text:
Improve process code in probe

move pidtree into its own module
desegregate pidtree into tree, walker and reporter
extend tests
put command line in the process metadata

might help towards #238

LGTM

authors: paulbellamy tomwilkie


text:
use server-side fairness policy if applicable

Fixes #2268
There's no easy way to test this PR. We need to run WEGO long enough on a K8s cluster and check if there's a connection error in the logs.

Need to wait for a bug in an upstream to be resolved.

The CVE-2022-1996 has been published a couple of days ago.
I put the fix from kube-openapi here to make this PR green.

repo: weaveworks/weave-gitops


text:
Tests are not sharded evenly on circle ci

Shard 1:
100_cross_hosts_test.sh 15.013s
130_expose_test.sh 40.357s
150_connect_forget_test.sh 13.513s
210_dns_multicast_test.sh 26.989s
230_dns_unqualified_test.sh 7.384s
290_dns_fallback_test.sh 5.472s
600_proxy_docker_py_test.sh 145.005s
620_proxy_entrypoint_command_test.s 12.985s
640_proxy_restart_reattaches_test.sh 7.038s

Shard 2:
110_encryption_test.sh 13.192s
140_weave_local_test.sh  7.560s
200_dns_test.sh 16.693s
220_dns_custom_test.sh 5.289s
240_dns_add_name_test.sh 7.929s
500_weave_multi_cidr_test.sh 29.289s
610_proxy_wait_for_weave_test.sh 13.350s
630_proxy_dns_test.sh 5.403s
660_proxy_ipam_test.sh 9.929s

This was fixed by #797.

authors: rade tomwilkie

repo: weaveworks/weave


text:
[Bug]: Panic occurred at runtime，using @rspack/core@6.0.5

System Info
System:
OS: macOS 14.1
CPU: (8) arm64 Apple M3
Memory: 92.16 MB / 16.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 18.12.1 - ~/.nvm/versions/node/v18.12.1/bin/node
Yarn: 1.22.21 - ~/.nvm/versions/node/v18.12.1/bin/yarn
npm: 8.19.2 - ~/.nvm/versions/node/v18.12.1/bin/npm
pnpm: 8.15.5 - ~/.nvm/versions/node/v18.12.1/bin/pnpm
Watchman: 2024.04.15.00 - /opt/homebrew/bin/watchman
Browsers:
Chrome: 124.0.6367.119
Edge: 124.0.2478.80
Safari: 17.1
Details
Hello, I am currently developing a streaming rendering framework based on rspack. I noticed that the latest version of rspack supports dynamic entries, so I am trying to use it.
const { EntryOptionPlugin } = require("@rspack/core");
 compiler.hooks.entryOption.tap("EntryOptions", (context, entry) => {
      const newEntry = () => {
        if (!compiler.allEntries) {
          compiler.allEntries = entry
        }
        const baseEntry = Object.entries(entry).reduce(
          (all, [key]) => {
            if (!this.options.pageEntries[key]) {
              // @ts-expect-error
              all[key] = entry[key];
            }
            return all;
          },
          {}
        );

        return {
          ...baseEntry,
          ...Object.keys(compiler.compiledEntries).reduce((all, key) => {
            const config = compiler.compiledEntries[key];
            if (config) {
              all[key] = config;
            }
            return all;
          }, {}),
        };
      };

      // TODO: rspack不支持 dynamic entry
      EntryOptionPlugin.applyEntryOption(compiler, context, newEntry);
      // EntryOptionPlugin.applyEntryOption(compiler, context, entry);
      return true;
    });

When I start running my application, everything works fine when I access the /home route. However, when I then access the /user route, the following error occurs. It's not an issue with a specific route, because the same problem occurs when I first access the /user route and then the /home route.
trace stack:
Panic occurred at runtime. Please file an issue on GitHub with the backtrace below: https://github.com/web-infra-dev/rspack/issues
Message:  Module(builtin:react-refresh-loader!/Users/zhangyuanqing/works/github/pareto/node_modules/.pnpm/babel-loader@9.1.3_@babel+core@7.24.4_webpack@5.91.0/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[2].use[0]!/Users/zhangyuanqing/works/github/pareto/examples/lazy-route/app/user/recommends/index.tsx) should be added before using
Location: crates/rspack_core/src/chunk_graph/chunk_graph_module.rs:75

Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering.
Run with RUST_BACKTRACE=full to include source snippets.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 1: _napi_register_module_v1
    at <unknown source file>
 2: _napi_register_module_v1
    at <unknown source file>
 3: _napi_register_module_v1
    at <unknown source file>
 4: _napi_register_module_v1
    at <unknown source file>
 5: _napi_register_module_v1
    at <unknown source file>
 6: _wasmer_vm_imported_memory32_atomic_notify
    at <unknown source file>
 7: _napi_register_module_v1
    at <unknown source file>
 8: _napi_register_module_v1
    at <unknown source file>
 9: _napi_register_module_v1
    at <unknown source file>
10: _napi_register_module_v1
    at <unknown source file>
11: _napi_register_module_v1
    at <unknown source file>
12: _napi_register_module_v1
    at <unknown source file>
13: _napi_register_module_v1
    at <unknown source file>
14: _napi_register_module_v1
    at <unknown source file>
15: _napi_register_module_v1
    at <unknown source file>
16: _napi_register_module_v1
    at <unknown source file>
17: _napi_register_module_v1
    at <unknown source file>
18: _napi_register_module_v1
    at <unknown source file>
19: _napi_register_module_v1
    at <unknown source file>
20: _napi_register_module_v1
    at <unknown source file>
21: __pthread_joiner_wake
    at <unknown source file>
 ELIFECYCLE  Command failed.

Reproduce link
https://github.com/childrentime/pareto
Reproduce Steps
pnpm i
cd examples/lazy-route
pnpm dev

visit http://localhost:4000/home
visit http://localhost:4000/user

@jerrykingxyz This panic seems related to incremental rebuild, after add cache: false it works, use_code_splitting_cache is unexpectedly hit, so there are some new modules didn't add to chunkGraph

@childrentime WebpackDemandEntryPlugin seems can be replaced by lazyCompilation, lazyCompilation can also compile other entry lazily, we will release lazyCompilation in v0.7.0 (in this week if all goes well, for now you can try 0.7.0-beta.0-canary-633b9cb-20240520070628)

@ahabhgk  How does lazyCompilation compile the corresponding client entry when accessing the route? I can understand that it can be done on the server side.

https://webpack.js.org/configuration/experiments/#experimentslazycompilation there is lazyCompilation.entries = true do that, if you have entry: { a: "a.js", b: "b.js" }, when you access entry a, the entry b won't compile if you enable this options, but there are some limitations need user to manually handle it

seems fixed in rspack v0.7.1

sorry. I accidentally misread it.

@AdamJSoftware Please provide a repro repo.

Not sure what I did but the issue disappeared... If it comes back up again I'll create a repro repo

authors: AdamJSoftware ahabhgk childrentime jerrykingxyz

repo: web-infra-dev/rspack


text:
Improved slider section

Description of the change

Improved slider section but adjusting image according to design and reduced white spacing in mobile size.
Closes #63

Screenshots

Checklist

[x] Added description of the change
[x] I've read the contributing guidelines
[x] Search previous suggestions before making a new PR, as yours may be a duplicate.
[x] I acknowledge that all my contributions will be made under the project's license.

Notes (optional):

What happened with the package-lock.json file here? 👀

Wait a minute, don't we use yarn?

What happened with the package-lock.json file here? 👀

Wait a minute, don't we use yarn?

Yeah. Going to fix it right away. 🙂

What happened with the package-lock.json file here? 👀

Wait a minute, don't we use yarn?

Yeah. Going to fix it right away. 🙂

You working on it or shall I make a PR?

What happened with the package-lock.json file here? 👀

Wait a minute, don't we use yarn?

Yeah. Going to fix it right away. 🙂

You working on it or shall I make a PR?

Made it.

What happened with the package-lock.json file here? 👀

Wait a minute, don't we use yarn?

Yeah. Going to fix it right away. 🙂

You working on it or shall I make a PR?

Made it.

Cool, just waiting a second approval...


text:
FE: Mint flow back feature

The mint flow at https://webaverse.com/mint is great, but a common use case is:

Upload asset
Test it out, it's not what I want
Back to upload new asset

Currently there is no flow for doing that and the back button doesn't work.
We should have both a "Try again with a different asset" link, as well as back button support.

added https://github.com/webaverse/webaverse.com/compare/fcadc5ff178b...5edef71f846c

added https://github.com/webaverse/webaverse.com/compare/fcadc5ff178b...5edef71f846c

authors: avaer chrislatorres

repo: webaverse/app


text:
New sound footsteps synced with foot position [WIP]

This is still work in progress.
Footsteps are now synced with ankle local position.
With this new PR old one https://github.com/webaverse/app/pull/1996 is not needed.

This was bugged and has long been superseded by an animations-based footstep detection system.

authors: avaer skaljac


text:
[TASK] Integrate back-end with Shielded Tables in Hubble Stats

Implement functionality to dynamically fetch and display the data for the Shielded Tables component on Hubble Stats.

[ ] Shielded Asset Table

[ ] Shielded Pool Table

also utilizing onchaindata like #1445
get tvl and deposit data from vanchor-client lib
update logic to handle suported chains

repo: webb-tools/webb-dapp


text:
Install apcu by default

I added the line
RUN apt-install php5-apcu

to my Dockerfile.development. I think it would make sense to always install apcu since TYPO3 CMS want's to use an opcache.

Added with https://github.com/webdevops/Dockerfile/commit/61c8272fd9063dd656429ffde3854d11a797cc94

authors: hirnschmalz mblaschke


text:
The demo package is using @wdio/sync which isn't compatible with Node v16

Describe the bug
https://github.com/webdriverio-community/wdio-video-reporter/blob/v3.3.0/demo/package.json

The demo package is using @wdio/sync which isn't compatible with Node v16
The package version is 3.0.0 but the tag is 3.3.0.

Environment (please complete the following information):

wdio-video-reporter version: 3.3.0

We have updated the demo to not use sync anymore. Thanks for reporting.

authors: Diazole christian-bromann


text:
document before/after hooks

sample documentation on using before/after scripts with this grunt plugin (if useful)
see #61

Thanks, I will take it ;-)

authors: bboyle christian-bromann

repo: webdriverio/grunt-webdriver


text:
Separate jobs by test case

If there are multiple test cases within a single spec file, it will report the file as a whole. This makes it difficult to determine which tests fail, and also means that it will not run all tests in the file (stopping after the first fail).
Is there a possible way around this (other than separating test cases into individual files)?

No there is not. Each test file will be run in one Selenium session, therefor one Sauce job. There is no plans to change this behavior.

This makes it difficult to determine which tests fail

Why is that? Your reporter should tell you exactly what happened.

I only meant it is not obvious which tests failed when looking at the Sauce Labs dashboard alone; unless I'm mistaken you would need to check the command list to see the test annotations containing the name of the test case.

Oh I see, yeah I might can try to have longer test names and put more information in it like failed test

That would be helpful. Even still, that information is buried in the list of GET and POST requests for that Sauce job, isn't it?

That would be helpful. Even still, that information is buried in the list of GET and POST requests for that Sauce job, isn't it?

Not even that. If an assertion fails that will not be recognised by sauce

Also, on the topic of more detailed reporting, I noticed in mocha the service reports the title based on the outermost describe. In my case, that describe contains the feature name, which persists across different test files, so two different files could report to sauce with the sauce name. The innermost describe is what is unique to the test file.
Unsure if this would work on other frameworks or other test suites, but it would be beneficial if it reported the name based on test.parent instead of suite.title, or some concatenation of the two, or at least be given that option to change it.

authors: christian-bromann danenespoli

repo: webdriverio/wdio-sauce-service


text:
OSX codesigning

The OSX codesigning procedure requires all files to be signed, and we have a lot of them in the build by default -- it's mostly .js.
This isn't really a problem but the amount of files is so large that CI is timing out (https://travis-ci.org/webmixedreality/exokit/jobs/400034963).
So we need a procedure to reduce the number of files and unpack on install or something.

https://github.com/webmixedreality/exokit/commit/5e53ce4a406c3d15ef409e6f590fe02bba9dd79a

repo: webmixedreality/exokit


text:
Add Query for WebGL 2

Have not tested.  Am going to look into where the actual tests come from (repo) for https://www.khronos.org/registry/webgl/sdk/tests/webgl-conformance-tests.html?version=2.0.1

I do not really understand this checks stuff.  The log file is so big it will not even show in the browser.
I have found the place for the conformance tests specific to Query, https://github.com/KhronosGroup/WebGL/tree/master/conformance-suites/2.0.0/conformance2/query.  Hopefully they will write their result to console.

The check looks like a Linux run failure after building. Trying it on my VM.

I managed to run this PR on Linux, so I think it might be an issue on Circle CI's end on Linux.

Ok, I abandoned trying to use the conformance testing to do validation.  We only need to validate that the wrappers work, not that the context is correct.  Not our problem.  Those tests are not a good fit.
http://webglsamples.org/WebGL2Samples/, GitHub, seem to have a test for all webgl2 stuff, and would seem a good basis for testing all new 2.0 functionality.
When trying the query test, it fails as you predicted because the gl constants have not been added.  I will now just grab all of them from the WebGL2 standard.  Section 3.7 lists them all out.  When I do, and have the test for query working, I will commit to my fork on github, expect on Monday.  I have not ever figured out how to add another commit to a PR before though.
Also, I will throw in a few extra calls to test all of the wrapper-ed function, like isQuery that the sample did not have.

Yeah, conformance testing is a can of worms we don't have to open at this point.
Thanks for being thorough with the rest of the query functions!

I have not ever figured out how to add another commit to a PR before though.

Pushing should be enough for it to appear here. 🎉

Well I added everything from standard as constants, except those already in use.  I left the lines, just commented out.
It will not compile.  Thing sooner or later these need to be defined.  There are versions of some with an _NV at the end, but that is only as an extension.  WebGL2 got rid of a lot of extensions.
Tracked definitions down to being in https://github.com/mikeseven/node-native-graphics-deps.  Problem is this has not been updates in years, before WebGL2.  Please advise.

Ah, I see you have a fork.  FYI, the entire header is in section 3.7 of standard linked 4 comment up.

For now, I have stuffed all the definitions into webgl.h.  I get quite a few redefinition warnings, but it is building.  You can find the place you really want this stuff to be at your leisure.
The Query test page does not error, but it also does not draw a triangle.  Going to edit page for missing calls.

Probably the right place for all of the constants is indeed webgl.h.
However I'm guessing most of the C++ constants alread come in from the platform headers, so would not need to be manually defined. They only need to be added to the JS exposure on the user-facing object and there are #defines. to do that.
Ideally we would process that spec and come up with exposure code for all of those, but we don't necessarily need to declare any numbers ourselves.
Mind pushing what you have to Palmer-JC:master?

Done

Your review revolves around where things are, and you can get this stuff where ever you wish.
I have been more concerned right now that a very very simple page does not work, even with all the query stuff commented out.  I think it has to do with the OES_vertex_array_object extension.  In WebGL2 this is not an extension, and needs to call ES 3.0 glGenVertexArrays.
Think converting any extensions which are no longer extensions starting with OES_vertex_array_object, should be done, right?

Ok, I find how you are doing VertexArrays both ways, so problem is elsewhere

Yup the review is more for my own notes on what needs to be done before merging.
Vertex arrays should indeed have already be implemented, including the OES_vertex_array_object extension for WebGL backwards compatibility.
I'm not yet sure what's wrong with running that simple example though...

Well spent too much time trying to figure out what is wrong with that page. Since in my version of the page, I have commented out any of the Query functions, this is an unrelated problem.  Maybe a separate issue for this.
Good news is I just found another Examples for WebGL2 site / repo.  When you run the OcclusionQuery there on exokit, you get the same culling occurring in the bottom left.  See image.  When you run this on the desktop, you can turn off the query with a checkbox, then you always see all the balls.  So it is working, though I still have to verify that all of the calls are being used.

The last thing is it just screams on exokit compared to browsers.  This sort of triggered a memory that it might be being throttled.  Need to check khronos DL archives.  Think there might be some kind of weird hack they are thwarting.  If so, will try to register on DL to ask if this has any meaning for a ML type device, especially for an embedded technology.
Getting close!

That conversation was about EXT_disjoint_timer_query & this glitch rowhammer attack.  Looks like that's what they called Query when it was an extension in WebGL1.

Makes sense, super interesting research! We don't do any sort of mitigations to protect from the app on the Exokit side, so that's probably the reason.

Maybe adding a command line switch to allow query before going to production, or throw an error in create.  Could also try to slow down like others, but I do not know how to do that.
The advantage of a switch, is if making an embedded app, you do not get a penalty.
I only needed if(!gl.deleteQuery), or the function to exist to BabylonJS

For exokit's case I think it's fine to just implement it as a direct binding. If we are trying to mitigate things like rowhammer there are many other things we'd need to do once we get in that boat -- so if anything that should be a separate issue.

Ok, the example is using everything but isQuery, getQuery, & deleteQuery.  I added isQuery & deleteQuery and they work fine.
getQuery was also added, not getting the results I thought I was asking for.  It did wrapper the call though.  Calling it through Firefox & Chrome behaved the same way.
The problem was that a constant required for the call is NOT in the spec!!  I added an issue on the WebGL repository.  This was F'ing painful to figure out.
I added the constant, and it now works.  There is just one thing left, if the parameter is wrong getQuery is supposed to return null.  What is that in info terms.? Here is current wrapper
NAN_METHOD(WebGL2RenderingContext::GetQuery) {
  GLenum target = info[0]->Int32Value();
  GLenum pname = info[1]->Int32Value();
  GLint value;

  glGetQueryiv(target, pname, &value);
  if (glGetError() == GL_NO_ERROR) {
    Local<Object> queryObject = Nan::New<Object>();
    queryObject->Set(JS_STR("id"), JS_INT(value));

    info.GetReturnValue().Set(queryObject);
  }
  else Nan::ThrowTypeError("oh crap what to do?");
}

What is that in info terms.?
Nan::Null(), or...

info.GetReturnValue().Set(Nan::Null());

Re: the spec, I wonder if that is an intentional omission from WebGL2? Regardless, I don't think the answer affects this PR.

The spec omission I figured out a few minutes after I posted it & closed that.  I was putting GL_ on the front of the constant in the test, smack head.
Probably never going to know why the exokit implementation is insanely faster than all others, but it works, and that is all that really counts.  I checked the flags.  The option is to un-capped, so capped must be the default.
I can re-organize / drop dups  the constants, if you want.

The link in the transform feedback PR was a local file.  The web version is:
https://tsherif.github.io/webgl2examples/particles.html

Remainder of Sampler calls tested without changes required.  Probably done working in this area for now.  May look into WebAudio in the next few days.  Nothing works for me there.

Great, thanks. I'll give it a test.

We tested this and it works on the list at https://tsherif.github.io/webgl2examples/

These can also probably be closed:
https://github.com/webmixedreality/exokit/issues/189
https://github.com/webmixedreality/exokit/issues/190
https://github.com/webmixedreality/exokit/issues/191

Thanks @Palmer-JC, good eye on those. I closed them out.

authors: Palmer-JC modulesio


text:
Pale LED colors via hyperion(piccap)

Hi,
I've already tried a lot of things and got some help via the openlgtv Discord. Unfortunately without success so far. I hope that my thread here is okay.
My setup:
LG C3, RP2040 with HyperSerialPico, SK6812RGBW CW, HyperHDR, PicCap, Apple TV 4K
running default settings on HyperHDR and PicCap
Problem:
Pale colors when Piccap is set as source in HyperHDR with a static test image
via my external source (Apple TV)
Live Video Feed in HyperHDR is very dark compared to real image on TV

What I have tried so far:

Static effect set in HyperHDR to ensure function of LED bar -> colors are displayed richly

reinstallation of Piccap

latest binaries from https://github.com/webosbrew/hyperion-webos/actions hyperion_webos_Release unzipped to: /media/developer/apps/usr/palm/services/org.webosbrew.piccap.service
(tried builds #115, #116, #117)

static test image not called up via Apple TV but via LG browser

various settings in piccap

I hope someone here has a tip and can help me.
Thanks you!

*** static test image not called up via Apple TV but via LG browser**

And that's wrong! You want to calibrate your player and not your LG browser. You have to download the appropriate file (2,560 × 1,920) from https://de.m.wikipedia.org/wiki/Datei:EBU_Colorbars.svg#file and play it with your player (via Apple TV) as a picture/photo. From a PC/tablet browser, call up HyperHDR web interface and check the colors in LED Visualization with the color pipette.
In PicCap, you have to set the resolution to 320 × 240 and the correct video and UI backend according to your webOS version. For the C3, this should be “libvtcapture” and “libhalgal”. In Advanced Setting you can try with Quirk_DILE_VT_NO_FREEZE_CAPTURE. Or if the image in LED Visualization is too fuzzy then QUIRK_ALTERNATIVE_DUMP_LOCATION “dump loc 1” See: https://github.com/webosbrew/hyperion-webos/pull/107

static test image not called up via Apple TV but via LG browser

this was just a one time test, my "normal" procedure is to view the saved "Colorbars" image from Wikipedia in my photo library via the Apple TV. Result can be seen in my posted picture. (left white bar is grayish in my HyperHDR live view.
you probably meant 320x180 and not 320x240 right?
I'm running piccap with libvtcapture and libhalgal with Autostart and VSync.
I tried QUIRK_DILE_VT_NO_FREEZE_CAPTURE and QUIRK_DILE_VT_DUMP_LOCATION_2 but unfortunately no improvement and the same phenomenon.
Is the second setting what you meant?
Unfortunately I can't quite figure out from #107 thread how exactly to set dump loc 1

Can no one help me?

Hi. Not sure if you have already found a solution to your issue yet. I have the exact same setup as yours, but with a G1. On my TV, using the QUIRK_DILE_VT_DUMP_LOCATION_2 greatly helps with the colors but introduces noticeable latency when playing DV content to the point it becomes too distracting. (I choose this piccap route over external sync box because it's the only way to have ambilight with TV-led DV, so I'm not going to give up DV performance for that.)
What I found by surprise that helped with my situation is that I revert back to the default dump loc option, and adjust on HyperHDR the white channel limit for the SK6812 in the LED hardware setting. Turns out the LED colors appeared muted because the dedicated white channel was overpowering the RGB. Now I have the white channel limit at 70% and the colors look great. I just had to adjust the yellow balance a bit in image processing because it appears too green.
I don't care about the color value accuracy from the preview screen anymore, because in my case, a perfect green, yellow, & cyan value somehow rendered way off by the LEDs when compared to the actual image on my G1. Weirdly enough the original dump loc option may not give the most color accurate preview on HyperHDR, but LED colors match my TV better with way lower latency.

Can no one help me?

I have a G3 TV on version 03.31.45 and I also haven’t been able to achieve a bright picture in Dolby Vision. My main source is the Nvidia Shield for watching Dolby Vision. When watching SDR/HDR content from it, everything is fine. When watching HDR from the MacBook, the picture is also fine. I tried the backend built from the master branch myself and also uploaded the ready-made archive from the excellent and very helpful detailed setup instructions by @satgit62 (which was also sent to me on Discord), but for some reason, the picture doesn’t change at all when changing the flag.
The guys simplified the use of PicCap without the need to change it by just replacing the values for the PicCap flag – if it’s present, it should use the new dump loc 1; if the flag is absent, it uses (as I understand it) the default dump loc 2. This might not be entirely accurate, but that’s how it looks in the code (I checked the latest closed merge request). Therefore, when the flag is enabled in the UI, “quirks”:4 should be set in the config, which should activate dump loc 1.

HDR vs DV

Is your TV in HDR mode & Is global HDR Tone mapping enabled in HyperHDR?
Piccap by default disables tone mapping for SDR content, which is why I experienced a dull image in the past. (G3)
The solution for me was to use a LUT for SDR content as well. It needs to be a different one than the one for HDR, though, so I modified hyperion-webos and piccap to switch between the LUTs automatically:
https://github.com/webosbrew/hyperion-webos/pull/120

repo: webosbrew/hyperion-webos


text:
With latest extract text plugin, css loader is failing

Using below in package.json:
"extract-text-webpack-plugin": "^2.0.0",
"file-loader": "^0.10.1",
"style-loader": "^0.13.2",
"url-loader": "^0.5.8",
"css-loader": "^0.26.2",
webpack.config.js:
{ test: /.css$/,
loader: ExtractTextPlugin.extract("css?minimize|style-loader")
  },

Now its failing on
ERROR in ./src/com/components/index.js
Module not found: Error: Can't resolve 'css?minimize|style-loader'
Before updating new release of extract text plugin, it was working. Please help to resolve this issue

@KalpanaPagariya webpack version and full webpack.config.js please 😛 , in case you're using webpack >= v2.0.0, try this
webpack.config.js
{
   test: /\.css$/,
   use: ExtractTextPlugin.extract({
      fallback: 'style-loader',
      use: [
         { loader: 'css-loader', options: { minimize: true } }
      ]
   })
}

Thanks for update.
"dependencies": {
"react": "^15.4.2",
"react-bootstrap-table": "^3.0.0",
"react-dom": "^15.4.2"
},
"devDependencies": {
"babel-core": "^6.23.1",
"babel-eslint": "^7.1.1",
"babel-loader": "^6.3.2",
"babel-polyfill": "^6.23.0",
"babel-preset-es2015": "^6.22.0",
"babel-preset-react": "^6.23.0",
"babel-preset-stage-0": "^6.22.0",
"babel-register": "^6.23.0",
"css-loader": "^0.26.2",
"express": "^4.14.1",
"extract-text-webpack-plugin": "^2.0.0",
"file-loader": "^0.10.1",
"style-loader": "^0.13.2",
"url-loader": "^0.5.8",
"webpack": "^2.2.1",
"webpack-dev-middleware": "^1.10.1"
}
After suggesting your changes, now build is not failing. but now style.css file is not getting created. what could be the reason? webpack.config.js below
var path = require('path');
var webpack = require('webpack');
var ExtractTextPlugin = require("extract-text-webpack-plugin");
module.exports = {
devtool: 'source-map',
entry: [
//  'webpack-dev-server/client?http://localhost:8080/', // WebpackDevServer host and port
//   'webpack/hot/only-dev-server', // "only" prevents reload on syntax errors
'./src/com/components/index'],
output: {
filename: 'bundle.js',
path: path.join(__dirname, '/public'),
publicPath: 'http://localhost:8080/public/'
},
module: {
loaders: [
{ test: /.js$/, loaders: ['babel-loader'] ,  exclude: /node_modules/},
{
test: /.css$/,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: [
{ loader: 'css-loader', options: { minimize: true } }
]
})
},
{ test: /.png$/, loader: "url-loader?limit=100000" }
]

},
plugins: [
new ExtractTextPlugin({filename:'style.css',  allChunks: true }),
//new webpack.HotModuleReplacementPlugin()
]
};

Have the same problem that @KalpanaPagariya

Can you try use: { loader: 'css-loader', options: { minimize: true } } ?

Feel free to re-open with a runnable example (mentioned in issue template).

authors: KalpanaPagariya bebraw horaciom michael-ciniawsky


text:
Source maps

Are people successfully using source maps with react-proxy-loader. A project I'm working on is using the code splitting facility of Webpack and react-proxy-loader. I'm having trouble actually getting source maps to work with it. I've used source maps successfully on other projects that don't use code splitting and wonder if this is the issue. The output from gulp task indicates that source maps are indeed being created - they just don't appear to be available in Chrome. Just wondered if there was anything special i need to do to make source-maps work with react-proxy-loader?

I use react-proxy-loader and the sourcemaps generate with no problem. Are you doing the source maps in webpack: devtool = #source-map ?

@simax Is this still an issue ?

I don't think I ever got a successful solution but I've moved on from project where I needed this behaviour. So if you're asking can this issue be closed then I guess it can as far as I'm concerned.

authors: michael-ciniawsky nub4life simax

repo: webpack-contrib/react-proxy-loader


text:
Remove usage of clean-webpack-plugin in favor output.clean

Feature to document
Now we can use https://webpack.js.org/configuration/output/#outputclean
https://webpack.js.org/guides/output-management/
Author(s)
Any
Additional information
Maybe we have clean-webpack-plugin plugin in other places, need check
[ ] I am willing to work on this issue and submit a pull request.

On it.

@snitin315 Do you need help?

@chenxsan thanks for proposing, I have the bandwidth to work on it today. Sorry for the delay 😄.

authors: alexander-akait chenxsan snitin315


text:
Getting Started cannot be accessed from the menu nor search

The whole documentation part https://webpack.js.org/get-started/ can only be accessed from the "Get started" link from the index page. Neither the navigation menu (on non-mobile browsers) nor the documentation search will bring you there.

The footer link is a bit hidden. Maybe we should just add a new entry below "Guides" (new subnavigation). Guides could be more granular anyway as it has grown quite a bit.

@bebraw I think I follow. So should guides be broken up into different parent sections?
If thats the case then there should probably be a ticket dedicated to figuring out what those sections are.
In the short term to solve this ticket, should this be added to the Guides navigation for now?

@johnstew Yup. That would be enough short term.
I think we may want to split the guides between development and production at least. This would mean three subs once you add "get started" there.

Related: Right now, we have two installation pages:

https://webpack.js.org/get-started/install-webpack/
https://webpack.js.org/guides/installation/
My suggestion: keep the content from the first one.

@simon04 Great point. PR welcome. 👍 Btw, you should have access to the Slack now (check your gmail).

@simon04 I would merge the latter article with the first.

Closing this as @johnstew's PR (#750) added this to the sidebar. It sounds like some of the other problems discussed may be moved to new tickets.

authors: bebraw johnstew simon04 skipjack


text:
Modify a small missing part of translation

Modify a small missing part of translation

I think you want to target this branch to the translation branch or one of the other repositories (e.g. webpack-china or webpack-korea).
cc @bebraw @lcxfs1991 @Lutece

你应该向 https://github.com/webpack-china/webpack.js.org 提交 pull-request。
You should submit a request to https://github.com/webpack-china/webpack.js.org.

Ok @escawn I'm going to close, please see @dear-lizhihua's comment above.

I'm sorry to make such a mistake，sorry to add your work.Thank you for your
reply!
2017-07-29 23:53 GMT+08:00 Greg Venech notifications@github.com:

Ok @escawn https://github.com/escawn I'm going to close, please see
@dear-lizhihua https://github.com/dear-lizhihua's comment above.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/webpack/webpack.js.org/pull/1462#issuecomment-318839835,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF1Ez9_kB13gOTjHtiEhL0cQwy59srLDks5sS1WOgaJpZM4OnSX7
.

@escawn no problem, happy to see all this work happening on the internationalized docs!

authors: dear-lizhihua escawn skipjack


text:
index.js is not resolved by dll reference plugin

Operating System: macOS Mojave 10.14.3
Node Version: v10.11.0
NPM Version: 6.4.1
webpack Version: 4.32.2

This issue is for a:

[x] bug
[ ] feature request
[ ] modification request

Code
I created a repo to represent the problem: https://github.com/yevhey/dll-plugin-problem
But also the architecture is described below:
test.js
  // resolve from 'components/beta/index' is fine
  import b from 'components/beta'; // not working

  alert(b);

webpack.config.js
var path = require("path");
var webpack = require("webpack");

module.exports = {
  mode: 'development',
  entry: ['./test'],
  plugins: [
    new webpack.DllReferencePlugin({
      scope: 'components',
      manifest: require('./components.json')
    })
  ],
};

plugin.config.js
var path = require("path");
var webpack = require("webpack");

module.exports = {
  mode: 'development',
  resolve: { alias: {} },
  entry: {
    components: ['./beta'],
  },
  output: {
    path: path.join(__dirname, '..'),
    library: '[name]'
  },
  plugins: [
    new webpack.DllPlugin({
      name: '[name]',
      path: path.join(__dirname, '..', '[name].json')
    })
  ]
};

components/beta/index.js
module.exports = "beta";

Expected Behavior
It resolves index.js inside the specified folder without mentioning explicitly /index.js
Actual Behavior
You need to write /some-folder/index to resolve the index.js
How Do We Reproduce?
├── root folder
│   ├── components
│   |   ├── beta
│   |   |   ├── index.js
│   |   ├── plugin.config.js
│   ├── webpack.config.js
│   ├── test.js

bump

I would like to do this! Do you have any advice before starting with it?
I thought that maybe the issue could be related to the Module Resolution.
Do you have another idea or approach? It would be helpful!

Honestly, I didn't think of the solution – sorry.

No worries!
As a first step, I made tests to replicate the behavior from the repo you shared previously.
https://github.com/andrescst/webpack/tree/issue-9206
I'll be debugging it

The solution I found (not sure if the best) was to modify the manifest generation under the LibManifestPlugin file.
Each time the manifest was generated it creates an object with a key for each javascript file you give as an entry.
In this case, you are only giving one so I assume that you want to be able to call the javascript file within the folder name and you only pretend to have one file per folder. So if the id for the javascript and the id on the manifest are the same, the id from the manifest gets modified and gets the name of the javascript file removed from it.
Older manifest generated

New manifest generated

A restriction for this solution, the file under the folder should be called "index.js".

The solution I found (not sure if the best) was to modify the manifest generation under the LibManifestPlugin file.
Each time the manifest was generated it creates an object with a key for each javascript file you give as an entry.
In this case, you are only giving one so I assume that you want to be able to call the javascript file within the folder name and you only pretend to have one file per folder. So if the id for the javascript and the id on the manifest are the same, the id from the manifest gets modified and gets the name of the javascript file removed from it.
Older manifest generated

New manifest generated

A restriction for this solution, the file under the folder should be called "index.js".

The solution I found (not sure if the best) was to modify the manifest generation under the LibManifestPlugin file.
Each time the manifest was generated it creates an object with a key for each javascript file you give as an entry.
In this case, you are only giving one so I assume that you want to be able to call the javascript file within the folder name and you only pretend to have one file per folder. So if the id for the javascript and the id on the manifest are the same, the id from the manifest gets modified and gets the name of the javascript file removed from it.
Older manifest generated

New manifest generated

A restriction for this solution, the file under the folder should be called "index.js".

@andrescst, @yevhey  I found the way how to deal with the scope.
If you specify a scope option into DllReferencePlugin - then you need to be sure that your DllPlugin has the correct context, which refers to the folder where the files that you need to include.
For example:
If the vendor's file (vendor.js for example) is under the src folder of the root project directory, at the first, you need to specify the context for the DllPlugin like this:
new webpack.DllPlugin({
     context: path.join(__dirname, './src/'),
    ...

then specify the scope for the DllReferencePlugin:
new webpack.DllReferencePlugin({
      scope: 'dll',
      ...

In this case, you will be able to include the file via the scope, just like this: require("dll/vendor").
By default, the context of the DllPlugin refers to the root project directory, and if your src lib files aren't under that directory, you will have such errors Module not found.
I figured this out by reading these sources: DllReferencePlugin, DelegatedModuleFactoryPlugin

I'm trying to prove it on the code provided at the repo shared before and still not working.
@wizardion, are my configuration files correct?
var path = require("path");
var webpack = require("webpack");

module.exports = {
  mode: 'development',
  resolve: { alias: {} },
  entry: {
    components: ['./beta'],
  },
  output: {
    path: path.join(__dirname, '..'),
    library: '[name]'
  },
  plugins: [
    new webpack.DllPlugin({
      name: '[name]',
      path: path.join(__dirname, '..', '[name].json'),
      context: path.join(__dirname, './beta/')
    })
  ]
};

var path = require("path");
var webpack = require("webpack");

module.exports = {
  mode: 'development',
  entry: ['./test.js'],
  output: {
    path: path.join(__dirname),
  },
  plugins: [
    new webpack.DllReferencePlugin({
      scope: 'components',
      manifest: require('./components.json')
    })
  ],
};

@andrescst  Why do you need to store Webpack config file inside the components directory? Project configuration files suppose to be at the root project directory.
But according to the described code provided at the repo and the "build" command in the package.json - your attached configuration files are correct.
But there is one little thing:

You need to include the index.js file under the directory components/beta/, not a folder beta
And since the scope components is just reference to the folder (context option in DllPlugin), the import should look like this:

import b from 'components/index';

In this case, with your config files, the command npm run build will be working well.

@wizardion config file is in the components directory just for the demo. Imagine everything inside this folder is a library exposed via webpack dll plugin and you want to import stuff from it without explicitly saying it's in the index file because react handles it by default and it's kinda unusual typing.

@yevhey Everything that you import from this file has already built by another build command. With the first config, you build your library or common files that are being used by the second build. So for the HTML, it's just another .js file that includes all your stuff.

https://github.com/webpack/webpack/issues/8648#issuecomment-455781259
adding extensions: ['.js', '/index.js']  in DllReferencePlugin options did the job for me (the ability to import index.js with only typing folder name)

Still valid for commonjs, but for ESM (in webpack v5) you need to write @import 'components/beta/index.js' (because ESM require it)

authors: alexander-akait andrescst andruts evilebottnawi juicelink wizardion yevhey

repo: webpack/webpack


text:
Fix user config options not being applied when they are imported from an es6 module with babel6

This bug exists in webpack1 and webpack2. This patch is against master, let me know if you want me to backport. As people upgrade to babel 6 more and more are going to hit it...
Bug could manifest in two ways:

webpack1: invalid argument pathToArray error. This happens because the default for output.path is "" in webpack1
webpack2: compile not happening, webpack() returning super early but no errors thrown and no bundles created. This happens because the default for output.path is cwd(). Note: it works from the command line because the check was already there in the CLI parsing code, just not the node API.

This bug caused my working webpack config with babel5 to fail when upgrading to babel6. This was mainly due to my custom output.path being overwritten, so maybe other errors manifest differently than above. Also note the webpack1 error I got is hard to google...it usually is a symptom of people not putting in absolute paths to output.path...but in this case it is specified and webpack overwrites it as mentioned above.
This took me way too long to debug, mainly because there is a lot of indirection and the webpack Options have the concept of a "default" that isn't the same as an ES6 default of course! 🔎

👉 Friendly poke! Let me know if you need any changes.

Any chance this can get merged? I keep having to patch it locally. Let me know if there is anything I need to do!

[Current coverage][cc-pull] is 83.64%

Merging [#2376][cc-pull] into [master][cc-base-branch] will decrease coverage by 7.61%

@@             master   #2376   diff @@
=======================================
  Files           231     229      -2
  Lines          9085    8775    -310
  Methods        1660       0   -1660
  Branches       1805    1698    -107
=======================================
- Hits           8290    7340    -950
- Misses          795     887     +92
- Partials          0     548    +548

Powered by Codecov. Last updated by [1fbb888...f0c5e6a][cc-compare]
[cc-base-branch]: https://codecov.io/gh/webpack/webpack/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/webpack/webpack/compare/1fbb88818532e9766440afb7af9e2d7a533c3f03...f0c5e6aba84ef38a300eb711cfad41909de40abc
[cc-pull]: https://codecov.io/gh/webpack/webpack/pull/2376?src=pr

🔔 Ping.

@sokra anything I need to do here?

@sokra anything I need to do here?

I'll not merge it.
It not the job of the webpack node.js API to care for modules. It just expects a options object (not a module).
The CLI care for the module loading and it takes care of ES6 modules.
If using the node.js API you need to care for module loading yourself.

authors: LegNeato codecov-io sokra


text:
feat(test): add very simple binCases test infra to build off of [Fork]

What kind of change does this PR introduce?

Test Infrastructure
Did you add tests for your changes?

This PR is only tests
If relevant, link to documentation update:

N/A
Summary

Adding some foundational binCases suite for testing bin commands. They will call child_process.exec(), and handler will verify if successfully ran. I am just laying the foundation for the tests.
Helps make it possible to better cover changes in #3524.

From forked branch PR #3643
Does this PR introduce a breaking change?

No
Other information
From forked branch PR #3643

@TheLarkInn You'd done the hard work, I just shuffled the code around. Path updated to use test/js/bin 👍

Also take a look at the appveyor CI result. It seem to have errors on these tests.

@sokra @TheLarkInn Looking happier on windows now. Give me a poke if there's any other changes required.

Thanks

authors: alistairjcbrown sokra


text:
Remove extra wasm decoding

What kind of change does this PR introduce?

Did you add tests for your changes?
no

If relevant, link to documentation update:

Summary

Does this PR introduce a breaking change?
no but can add instabilities

Other information
Decreases the number of wasm decoding (from 5 times to 1).
I replaced the add/edit functions by *WithAST which takes the AST and update it in place.

cool thanks for your help!
FYI I'll bump webassemblyjs here to fix couple of issues.

closes https://github.com/webpack/webpack/issues/7258

Thanks

authors: sokra xtuc


text:
fix: add support for nx v20

After updating nx to v20 we were getting the following error:

cannot read undefined (reading 'projects')

The problem is solvable by reading the projects from projectsConfigurations instead of workspace

Looks good for me. Can we merge it and release new version? @webpro ?

Thanks!

authors: Kolahzary mjwebblue webpro

repo: webpro/nx-tsc


text:
initial release errors

I have a new project where I'm trying to do an initial release. release-it fails on
    "changelogCommand": "git log --pretty=format:'* %s (%h)' [REV_RANGE]",

which resolves to
git log --pretty=format:'* %s (%h)' 0.0.0...HEAD

As far as I can tell, the range it's building is "package.version to HEAD", but in this case, what I have in package.version doesn't represent a valid tag.
To get this out, I had to add a custom "changelogCommand" for my initial release.
    "changelogCommand": "git log --pretty=format:'* %s (%h)'",

For subsequent releases I will be able to reuse the default "changelogCommand".
I don't mind submitting a PR to fix, but my solution wasn't elegant. IE: how would the script know that a tag cannot be found because it's the initial release? Looking for your thoughts @webpro. If nothing else, the documentation can be updated with this gotcha.

One option would be to inspect whether the result of git tag --list is empty. If so, no value for REV_RANGE.

Hi @jfairley, thanks for the report. I think I've implemented a solution for the initial release in 2.4.0. Could you please test if this works for you?

@webpro Sorry it took me a month to test. I just created a little demo project, and it worked great. Thanks!
https://github.com/jfairley/release-it-test/releases

authors: jfairley webpro

repo: webpro/release-it


text:
Fix typo: ondtlssttatechange -> ondtlsstatechange

Description
Fixes a typo in Edge peerconnection shim
Purpose
Properly clean up RTCDtlsTransport instance

LGTM

authors: KaptenJansson aiham

repo: webrtc/adapter


text:
Laravel 5.4 supported?

Installing on the latest laravel 5.4 release, upgrading to dev-master (from 1.0) I am getting this error:
In CloudStorageServiceProvider.php line 54:
Call to undefined method Illuminate\Foundation\Application::has()
I'm not particularly sure where it is coming from, I am not finding anything related to Illuminate\Foundation\Application::has()

I am pretty sure this stems from #18 . - This could be fixed through checking for the existence of the method - can you provide a pull-request?

@cedricziel Sorry for the delay. I will submit a pr in the next few days.

I've submitted a pull request #22
Let me know if this is appropriate or if you require any changes.


text:
🛑 The Good Cyclist is down

In a84e78a, The Good Cyclist (https://thegoodcyclist.iwview.com) was down:

HTTP code: 521
Response time: 123 ms

Resolved: The Good Cyclist is back up in f005083 after 416 days, 4 hours, 32 minutes.

repo: webworldview/uptime


text:
🛑 Prime Life Women is down

In 7b8c4ab, Prime Life Women (https://primelifewomen.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Prime Life Women is back up in 3a630c5.


text:
Improve README.md

Reading over the Barliman README, I realized there were a few things that could quickly be done to improve the Markdown formatting, and hopefully overall document legibility.

👍 Thanks @nalck

authors: gregr nalck

repo: webyrd/Barliman


text:
不适用于图片上传接口

调用图片上传API时会提示签名错误，似乎是把整个body加入了待签名串。

是的，目前还不支持。

只需要将 WechatPay2Credentials 中的 buildMessage 方法修改一下就可以了。
`protected function buildMessage($nonce, $timestamp, RequestInterface $request)
{
$body = '';
if ($request->hasHeader('metaJson')) {
$body = $request->getHeaderLine('metaJson');
} else {
$bodyStream = $request->getBody();
// TODO: handle non-seekable stream
if ($bodyStream->isSeekable()) {
$body = (string)$bodyStream;
$bodyStream->rewind();
}
}
    return $request->getMethod()."\n".
        $request->getRequestTarget()."\n".
        $timestamp."\n".
        $nonce."\n".
        $body."\n";
}`

不增加其它入参情况下，仅使用标准 Guzzle 包实现媒体文件上传 https://github.com/TheNorthMemory/wechatpay-guzzle-middleware/commit/2c975ba4edf3c1613b9588b7efde9b2d361cba24
核心是使用 GuzzleHttp\Psr7\FnStream（通过  __toString) 构造出 签名所需 meta JSON串，通过 getSize 返回值，强制使 GuzzleHttp\Handler\CurlFactory::applyBody 走 CURLOPT_UPLOAD 逻辑, 通过 $request->getBody()  获取 GuzzleHttp\Psr7\MultipartStream 流内容。

authors: MaiDouDuDuZai TheNorthMemory browningweb xy-peng


text:
Kubernetes Meetup

Please make sure to check the following boxes creating your pull request, thank you very much!

[x] Add Blog Header, including title, author, image, categories, tags, etc.
For example:
---
title: Your Great Blog Title
author: your_github_id
categories: project
tags:
  - python
  - padlocal
image: /assets/2021/02-your-blog-slug/teaser.jpg
---

One line bio

Your blog post content Your blog post content
Your blog post content Your blog post content
Your blog post content Your blog post content

It will be easier to start drafting your post by using a existing post file as your template, for example, this one

[x] Keep all filenames lowercase, and use - to connect words instead of space. e.g. 2017-10-06-wechat-pc-impactor.md instead of 2017-10-06-WeChat PC Impactor.md

[x] Embed video/pdf from YouTube/Bilibili/local (if there's any) by using {% include iframe.html src="URL_or_PATH" %}. (Learn more about how to embed file/url in the post by reading this blog post

[x] Save photo to local before publishing, to a folder named by ${MONTH}-${YOUR_BLOG_SLUG}/ under /assets/2021/ directory.

[x] Select a beautiful and meaningful teaser image for your blog

[x] Create your contributor profile (if you are a first time contributor)
For excample:

jekyll/_contributors/lijiarui.md

---
name: Jiarui LI (李佳芮)
site: https://lijiarui.github.io
bio: 句子互动创始人 & CEO，微软人工智能最具价值专家 (AI MVP)
avatar: /jekyll/assets/contributors/lijiarui/avatar.png
email: rui@juzi.bot
twitter: https://weibo.com/u/2175505900
---

Here is the example file:

lijiarui.md: https://github.com/wechaty/wechaty.js.org/blob/master/jekyll/_contributors/lijiarui.md
It will shown like this on wechaty website: https://wechaty.js.org/contributors/lijiarui/

To learn more about the contribute guideline, visit: https://wechaty.js.org/docs/contributor-program/

Could you please explain why we should publish this post?
I can not see anything related to Wechaty in it.

Could you please explain why we should publish this post?
I can not see anything related to Wechaty in it except a few words about the blinder project.

Look here，https://github.com/wechaty/wechaty.js.org/pull/1180#issuecomment-895017786, I wrote the first one

Look here please,<https://github.com/wechaty/wechaty.js.org/issues/909>, I wrote the first one.

------------------ Original ------------------
From: "Huan (李卓桓)";
Date: 2021年8月9日(星期一) 下午3:44
To: "wechaty/wechaty.js.org";
Cc: "gangena"; "Author";
Subject: Re: [wechaty/wechaty.js.org] Kubernetes Meetup (#1180)

Could you please explain why we should publish this post?
I can not see anything related to Wechaty in it.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

authors: gangena huan