how to use this package

Hi
How to use this package? Thanks

@wujiandong currently the only way to use this code is to clone the repo and build the code yourself:
git clone https://github.com/roundup-labs/kafka-on-actors.git
cd kafka-on-actors && sbt publishLocal

ok thanks


Extend views to show multi-cloud deployments

If you have deployed in multiple clouds or datacenters, it would be nice to show this in the visualization.  Don't know exactly how we would determine that - could be from user-supplied metadata, or geo-locating the probe IPs, or Weave Net has a "trusted subnets" feature which would indicate some transition.
Idea from @abuehrle

Similar idea at #1714


Improve README

I would request the following  improvements that can be done in the README:

Addition of logo of open collective organization.
Addition of link of the slack channel.
Adding the guidelines to create how to create a pull request.
Addition of contribution guidelines.
Structuring the whole readme in different sections as about, communication means, contribution and pull request guidelines.
Removing the FAQ section from the README and adding it as separate section in the documentation page.

Further improvements and changes can be done after review from the community members.
Thanks!
Deepak Kumar

Hi @deepak2431 thanks for reaching out. I am yet kinda confused that where exactly are you referring to because this docum3ntation contains everything you proposed as of now but I am not sure that where exactly you are proposing.
Can you elaborate more ?
Thanks

Hi @jaskirat2000,
Thanks for reviewing. I am proposing the changes to the Readme present over here https://github.com/opencollective/documentation
Thanks!


Images broken on website

Also some don't work that well on dark mode:

Because of transparent backgrounds.

Нello, I saw this problem, the icons are on the repository https://github.com/devicons
I think this is the problem...

Ah you have hot linked them..
https://github.com/devicons/devicon/blob/master/icons/html5/html5-original-wordmark.svg
Consider using a CDN however it looks like it has a JS / Font implementation so you shouldn't need to link direct to them at al! (But still will need a CDN)

Try:
https://icongr.am/devicon/{icon}.svg?size={number}&color={hex}
Ie
https://icongr.am/devicon/amazonwebservices-original.svg?size=128&color=currentColor
Which might solve the issue I had with the dark theme too.

Thank you! For the solution, but unfortunately not all icons have a solution...( and as I see it, this is a global problem, not only me😅


Hookup Payment API to landing screen and update payment screen

@keybase/react-hackers

Integrates Payment API!

Adds Bootstrapable HOC that handles showing Loading... text while it bootstraps necessary data.

👍


add support for emulator

according to the emulator, we should use FIRESTORE_EMULATOR_HOST env var.
https://cloud.google.com/sdk/gcloud/reference/beta/emulators/firestore/start
firestore_1  | API endpoint: http://<IP_ADDRESS>:8080
firestore_1  | If you are using a library that supports the FIRESTORE_EMULATOR_HOST environment variable, run:
firestore_1  |
firestore_1  |    export FIRESTORE_EMULATOR_HOST=<IP_ADDRESS>:8080
firestore_1  |
firestore_1  | Dev App Server is now running.

But still, this SDK is pointing to the cloud if we are using gcloud CLI. is this something intended or it's because of the emulator still in beta?

This should work with the new 2.2 release of Firestore. What version are you using?

My bad exactly the same day I installed the latest version but seems they released after that.
Anyway, it works now thank you.


Callset annotation across callsets

@anneodonnell commented on Tue Jul 02 2019
It would be great to have the AC from the internal exome callset also noted in seqr on the genome callset (and vice versa) so we recognize additional hits (or poor matches) across seqr data.

Is this something that is still desired in the loading pipeline? If so, this request will likely need to change with the new hail backend loading pipeline

Let's put this aside until the backend changes. The seqr link works to search for a variant across seqr at present, even if it isn't annotated that the variant is in the callset so we at least have that for our staff.

We may need to do something akin to this as part of the backend rewrite. In one of our planning meetings we should discuss how we want callset AF to work in the new backend as i is the only field that does not have an obvious way of porting it over. I think this is something we would want to discuss in a metting rather than explain in writing

Decided not to do for MVP.


ES6 syntax not supported~

ES6 syntax not supported~

Instructions for ES6 are provided in the README.
--
Terin Stock
On Wed, Jun 19, 2019 at 4:10 AM, 黑白 <<EMAIL_ADDRESS>> wrote:

ES6 syntax not supported~
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub (
https://github.com/terinjokes/gulp-uglify/issues/355?email_source=notifications&email_token=AACCYZNVUJT6I7WZDCWPZXDP3IH3NA5CNFSM4HZIPC6KYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4G2LYUEQ
) , or mute the thread (
https://github.com/notifications/unsubscribe-auth/AACCYZNSJFINVQAZQNZ65B3P3IH3NANCNFSM4HZIPC6A
).


'Add Sprite' and 'Add Backdrop' buttons overlap other UI on window resize.

Expected Behavior
Upon reducing the height of a window, 'Add Sprite' and 'Add Backdrop' buttons should resize and stay below other input areas.

Actual Behavior

Steps to Reproduce
Reducing the height of the window.
Operating System and Browser
Mac OS 10.12.6 Chrome 62.0.3202.89

Filed issue in wrong repository!


Animator Parameter's List Initialize as null in VR

Not sure if you're already on top of this. It seems PlayerSetup.animatorManager.parameters is null when starting the game in VR, it's fine when starting in Desktop. Branch: https://github.com/200Tigersbloxed/CVRParamLib/commit/bc53a1026140d2264544b873193fbc0c27924615
https://github.com/200Tigersbloxed/CVRParamLib/blob/bc53a1026140d2264544b873193fbc0c27924615/CVRParamLib/CVRParameterInstance.cs#L45-L51
Also, just out of curiosity, is there any reason why you're checking for avatar change in Update, when you already hooked into PlayerSetup.SetupAvatar ?

This should be fixed in [c6d1a1a](https://github.com/200Tigersbloxed/CVRParamLib/commit/c6d1a1ae0bfd4234334378aa14aee42404f74488)


fixed #380 console warning with tooltip

closes #380
Fixed by adding a key to the boxProps

I tried it with nested tooltips and it seemed to work
import dash_mantine_components as dmc
from dash import Dash, _dash_renderer, html

_dash_renderer._set_react_version("18.2.0")

app = Dash()

component = dmc.Card([
    dmc.Button("some text", id="my-text"),
    dmc.Space(h=100),
    dmc.Tooltip(
            id="my-tooltip2",
            children=dmc.Button("some text", id="my-text2"),
            label="Tooltip text2",
        ),
    dmc.Space(h=100),
], withBorder=True)

app.layout = dmc.MantineProvider([
        dmc.Tooltip(
            id="my-tooltip",
            children=component,
            label="Tooltip text",
        ),
     ])

if __name__ == '__main__':
    app.run(debug=True)

@alexcjohnson  do you think this is really OK, or should we update to use a random number as a key?

Yes, it's fine as is. Looking at the React component tree I see stuff like this:

You can see that the Box has a sibling, the OptionalPortal. So I wouldn't think React would have any trouble distinguishing them since they're different types, which is why the warning seems weird to me but whatever, best to placate it. We can clearly tell because of the way Dash constructs the component tree there's no way another tooltip's Box would be a sibling of these components, so we'll never get a key collision with or without a random number and we might as well keep it simple and not run the risk of causing excessive rerenders by unintentionally changing the key.

ok, mystery solved!
Thanks - I didn't know you could inspect the React component tree like that.  Now I have another tool in my dash toolkit :hammer_and_wrench:


Space7 dataset for Gibson 2

Where can I find the space7 dataset for Gibson Env 2?
Some attributes like floors seem to be missing from V1
I'm also looking for Stanford 2D3Ds and Matterport datasets for V2

Hi, Have you found the space7 dataset? I also get stuck in the same problem.

If you fill out the form and click submit, you should be able to download 2d3ds_for_igibson.zip. Let us know if this works for you.

@MADHAVAN001
For Stanford 2d3ds and Matterport3D dataset, we have updated our dataset and documentation. Could you follow this new documentation and try again? Thanks!
http://svl.stanford.edu/igibson/docs/dataset.html


Completely refactor

[ ]  Switch to a constructor pattern
[ ]  a11y considerations
[ ]  Better overall UX

Use native details element, and just add styling. Remove the need for JS altogether.

v12


PHP 7.4 compatibility

We should us rector PHP to make the .phar file PHP 7.4 compatible.
THIS WILL NOT AFFECT THE SOURCE CODE. WE WILL STILL DO PHP 8 CODE.

https://github.com/rectorphp/rector-downgrade-php


Required Not Working

Challenge Waypoint: Use HTML5 to Require a Field has an issue.
User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/601.2.7 (KHTML, like Gecko) Version/9.0.1 Safari/601.2.7.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:
<link href="http://fonts.googleapis.com/css?family=Lobster" rel="stylesheet" type="text/css">

CatPhotoApp

Click here for cat photos.

Things cats love:

cat nip

laser pointers

lasagna

Top 3 things cats hate:

flea treatment

thunder

other cats

<form action="/submit-cat-photo">
  <input required type="text" placeholder="cat photo URL">
  <button type="submit">Submit</button>
</form>

As you can see, my input has "required." I click submit and get "Submitted!" back which shouldn't happen, even with no text in my form. I still get the lesson and got points so I am moving on. ;)

Safari does not support the required attribute of HTML, so this is not an issue with the Free Code Camp website. Since you were able to pass it's not a huge issue, but just so you know Chrome is the only browser officially supported by Free Code Camp.
Thanks and happy coding!


feat: move to k8s version 1.25.6

What problem does this PR solve?:
moves default k8s to 1.25.6
Which issue(s) does this PR fix?:

https://jira.d2iq.com/browse/D2IQ-NUMBER

Special notes for your reviewer:

Does this PR introduce a user-facing change?:

This breaks ubuntu builds so we cannot go for it


Loosen type condition in linear, convolution_2d and deconvolution_2d

These fcuntions accept an array of numpy.float16, numpy.float32 and numpy.float64.
See also #555.

Please merge or rebase the master branch after finishing the fix.

ditto (don't we have to convert dtype?)
https://github.com/pfnet/chainer/pull/1162/files#diff-16a7c64c13ba043b2f7f21283bf70f47R162

I updated comments.

Please merge #1212 before this PR.

LGTM 👍

Now I had merged #1212. As changes of cupy/core/carray.cuh in this PR is different from #1212, please remove the change in this file from this PR.

I fixed.

LGTM 👍


splitter.countGraphemes('👩🦰👩👩👦👦🏳🌈') = 4

Using emojis like 👩🦰👩👩👦👦🏳🌈
var splitter = new GraphemeSplitter();
var graphemeCount = splitter.countGraphemes('👩🦰👩👩👦👦🏳🌈');
console.log(graphemeCount)

Result:
4

#24
U+1F9B0 was introduced in Unicode 11.0.

any workaround?

any workaround?

You can use This library instead which has support for new emoji versions.

try this, the split result is wrong
🤱👩🍼🧑🍼💆💆♂💆♀💇💇♂💇♀🚶🚶♂🚶♀🧍🧍♂🧍♀🧎🧎♂🧎♀🧑🦯👨🦯👩🦯🧑🦼👨🦼👩🦼🧑🦽👨🦽👩🦽🏃🏃♂🏃♀💃🕺

try this, the split result is wrong 🤱👩🍼🧑🍼💆💆♂💆♀💇💇♂💇♀🚶🚶♂🚶♀🧍🧍♂🧍♀🧎🧎♂🧎♀🧑🦯👨🦯👩🦯🧑🦼👨🦼👩🦼🧑🦽👨🦽👩🦽🏃🏃♂🏃♀💃🕺

try this code below, it works well
const list = '🤱👩🍼🧑🍼💆💆♂💆♀💇💇♂💇♀🚶🚶♂🚶♀🧍🧍♂🧍♀🧎🧎♂🧎♀🧑🦯👨🦯👩🦯🧑🦼👨🦼👩🦼🧑🦽👨🦽👩🦽🏃🏃♂🏃♀💃🕺'.match(/.[\u{fe0f}\u{1f3fb}-\u{1f3ff}]?(\u{200d}.[\u{fe0f}\u{1f3fb}-\u{1f3ff}]?)*/ug);
console.log(list);
console.log(list.length);

on mac, yes. on win, i don't know is it as well as now, but it wont work last year.


Rett development

bank transactions read one, bank transactions create, users read all
adds accounting api endpoints TODO lists
refactored create account attachment and added get account attachments
clean up account vs accounts and output/json/msg/code

added read all examples for:
bank transfers
batch payments
branding themes
contact groups
credit notes
currencies
employees
expense claims
invoice reminders
items

added read one examples for:
Bank Transfer
Branding Theme
Contact
Contact Group
Credit Note
Employee
Expense Claim
Invoice
Item


Update description in step 47 of music player to encourage campers to test code

Describe the Issue
This project is missing key times to encourage the camper to test out their code.
This will help camper see the results of the code they just wrote.
updated description
Now it is time to test out the `playNextSong` function.

Add a `click` event listener to the `nextButton` element, then pass in `playNextSong` as the second argument of your event listener. This is the function the event listener will run.

Test out your function by first clicking on the play button followed by the next button. You should see that everything is working as expected.

Affected Page
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/learn-basic-string-and-array-methods-by-building-a-music-player/step-47
Your code
see explanation above
Expected behavior
see explanation above
Screenshots
No response
System

Device: [e.g. iPhone 6, Laptop]
OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04]
Browser: [e.g. Chrome, Safari]
Version: [e.g. 22]

Additional context
No response

This has been opened for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors.
If you would like to contribute and have not read the contributors docs, please do so here: https://contribute.freecodecamp.org/#/
If you have any issues with contributing, be sure to join us on the contributors channel, or on the contributors sub-forum
Files that need to be changed
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65547ee197840478a1b95f4b.md
Happy coding


Simplify CLI execution result handling

Update PicoCLI dependency to latest release version.
Simplifies the retrieval of the CliResult from the execution of CLI args by gathering all executed subcommands and seeing if any had a result, picking the first (we only ever do at most 1 execution anyway).

Codecov Report

Merging #902 into master will increase coverage by 0.06%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master     #902      +/-   ##
============================================
+ Coverage     99.37%   99.44%   +0.06%
+ Complexity     2094     2092       -2
============================================
  Files           318      318
  Lines          5777     5772       -5
  Branches        309      303       -6
============================================
- Hits           5741     5740       -1
  Misses            5        5
+ Partials         31       27       -4

Impacted Files
Coverage Δ
Complexity Δ

.../main/java/com/quorum/tessera/cli/CliDelegate.java
100% <100%> (ø)
10 <2> (-2)
:arrow_down:

.../tessera/admin/cli/subcommands/AddPeerCommand.java
100% <0%> (+2.63%)
11% <0%> (ø)
:arrow_down:

.../quorum/tessera/sync/SyncResponseMessageCodec.java
100% <0%> (+3.22%)
5% <0%> (ø)
:arrow_down:

...ain/java/com/quorum/tessera/p2p/RestP2pClient.java
100% <0%> (+6.89%)
9% <0%> (ø)
:arrow_down:

Continue to review full report at Codecov.

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


Next iteration of ICs and BCs

Need to:

Generate U and V initial conditions
Run the "balancing" step on the BCs

Okay, I've made the UVEL and VVEL initial conditions. Hopefully they are fine.
I've decided to let OBCS balance the fluxes at each timestep, since we are not using tides at present.


Unable to use AppIcon with UNC Icon file path

Steps to reproduce
New-BurntToastNotification -Silent -Text $WText -AppLogo "\\dsa.dom\sys\COMLST\Startup\NAL\Icons\warning.ico" -UniqueIdentifier 'ShadowSession'

Expected behavior

Notification issued
Actual behavior
Suspected $env:TEMP is returning a DOS 8.3 : C:\Users\ADMINI~1.DSA\AppData\Local\Temp (a PowerShell bug)
but seems more to be related to an UNC path transformation for the temporary file where the full path is kept

Copy-Item : Could not find a part of the path 'C:\Users\administrator.DSA\AppData\Local\Temp\dsa.dom\sys\COMLST\Startup\NAL\Icons\warning.ico'.
At C:\Program Files\WindowsPowerShell\Modules\BurntToast\0.7.2\BurntToast.psm1:14 char:17

            Copy-Item -Path $Source -Destination $NewFilePath

CategoryInfo          : NotSpecified: (:) [Copy-Item], DirectoryNotFoundException
FullyQualifiedErrorId : System.IO.DirectoryNotFoundException,Microsoft.PowerShell.Commands.CopyItemCommand

Environment data

Name                           Value
----                           -----
PSVersion                      5.1.17763.1007
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17763.1007
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

OsName         : Microsoft Windows Server 2019 Standard
OsVersion      : 10.0.17763
OsArchitecture : 64-bit

Directory: C:\Program Files\WindowsPowerShell\Modules

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     0.7.2      BurntToast                          {Get-BTHistory, New-BTAction, New-BTAppId, New-BTAudio...}

Ahh... fairly certain I know what the fix here is. Thanks for the report, @orieben!

Hey @orieben, there's a fix for this that will be release with v0.8.0
If you're at all interested, you can see this fix being implemented and tested on this live stream VOD.

That fix is now out: https://www.powershellgallery.com/packages/BurntToast/0.8.0


Clarified usage of NEXT_PUBLIC_URL

Different values for localhost and Vercel production deployment

The getURL helper method automatically emits localhost when the env var isn't present: https://github.com/vercel/nextjs-subscription-payments/blob/main/utils/helpers.ts#L5-L15
Therefore people need to make sure to only set NEXT_PUBLIC_SITE_URL for production, then everything works correctly without needing to manually change it.

Hi Thor,
I found that if I leave them blank and allow getURL to fallover to localhost, the app throws an internal server error when you try navigating to the Stripe portal. I suspect somewhere else may need the NEXT_PUBLIC_SITE_URL variable set.
I would be really appreciative of any advice however thankyou.
Cheers
Andrew.

Thanks, @thorwebdev.
I corrected the instructions to clarify that this variable should only be set for the Production environment.
I also restored the "deploy" button, which it appears I accidentally deleted in my previous PR.


UX improvements

Using overlay that plays the video on click, thus easier for users to play videos on touch devices.
Allowing developers to specify the overlay color and transition
Updated README with an example of this update
Updated index.svelte with a live example

This is so good!
Thank you.

@all-contributors please add @416d72

Thank @sharu725 , I'm a big fan ☺

@all-contributors please add @416d72 for design


fix: require csv for ruby-3.4 compatibility

Loading opentelemetry-exporter-otlp on ruby-3.3 now prints a warning:
.../lib/opentelemetry/exporter/otlp/exporter.rb:10: warning: csv
was loaded from the standard library, but will no longer be part
of the default gems since Ruby 3.4.0. Add csv to your Gemfile or
gemspec. Also contact author of opentelemetry-exporter-otlp-0.26.1
to add csv into its gemspec.

This commit fixes that by adding an explicit dependency from opentelemetry-exporter-otlp to the csv gem at version '~> 3.1' (ruby-3.0 bundles csv at 3.1.9).

Hi @romuloceccon! Thanks for submitting this fix! Getting rid of the deprecation warning sounds great to me.
I was looking at the uses of CSV in this library, and I think it may not be used outside the require statement in exporter/ot|p/lib/opentelemetry/exporter/ot|p/ exporter.rb line 10.
Could you try removing the require statement and see if the tests pass and the deprecation warning goes away?

Hi @romuloceccon! Thanks for submitting this fix! Getting rid of the deprecation warning sounds great to me.
I was looking at the uses of CSV in this library, and I think it may not be used outside the require statement in exporter/ot|p/lib/opentelemetry/exporter/ot|p/ exporter.rb line 10.
Could you try removing the require statement and see if the tests pass and the deprecation warning goes away?

@kaylareopelle we use the CSV library to parse configuration values from environment variables in at least the zipkin exporter: https://github.com/open-telemetry/opentelemetry-ruby/blob/ff9a7d3af31ad83ed6e07445a9e1609bec53d779/exporter/zipkin/lib/opentelemetry/exporter/zipkin/exporter.rb#L50
I could have sworn it was used in the OTLP Exporters but looks like it now uses custom parsing? https://github.com/open-telemetry/opentelemetry-ruby/blob/ff9a7d3af31ad83ed6e07445a9e1609bec53d779/exporter/otlp-http/lib/opentelemetry/exporter/otlp/http/trace_exporter.rb#L269

Thanks for the heads-up, @kaylareopelle and @arielvalentin! I have adjusted the commit accordingly, and also fixed otlp/http exporter.


Discussion on the possible implementation of objects referring to fanotify groups identifying files by their handles

Hello everyone!
On Linux, there is the filesystem monitoring facility called fanotify, that allows monitoring (and sometimes blocking) filesystem operations using a fanotify group file descriptor. For most events, the file may be identified with a file descriptor -- that is, when the watching process reads an event notification from fanotify file descriptor, a FD pointing to the target file is opened in the watching process, which can be used to identify the file and operate on it. However, some fanotify operation modes require a fanotify group that identifies files and directories by file handles -- opaque byte arrays that can be passed to open_by_handle_at() to retrieve a file descriptor for the target. I've made a crate with bindings to name_to_handle_at() and open_by_handle_at() system calls, which encapsulates the file handle and allows to work safely with it (however, since the size of a file handle is not known before requesting it, and requesting it consists of two name_to_handle_at() calls -- the first is to get the requested size and the second is to obtain the handle itself -- my crate stores the file handle on the heap and the LinuxFileHandle only stores a Vec pointing to the handle) -- something similar could be done for the fanotify module.
It should be noted that open_by_handle_at() requires CAP_DAC_READ_SEARCH to be effective for the calling process -- therefore, fanotify-based apps that want to identify files by their handles should be granted it and keep it at least for the lifetime of the fanotify group (unlike CAP_SYS_ADMIN, which may be dropped after calling fanotify_init(), as long as the application doesn't plan to use it for calling fanotify_init() for second time or use other features that require that capability, such as mounting filesystems).

Hi, thanks for the issue!
We can definitely implement it, in the original fanotify(2) PR, we did discuss this a little bit, Nix always uses interfaces from the libc crate, we need to add them to the libc crate if the needed interfaces do not exist there unless there are no libc (glibc) wrappers, which enforces the use of raw syscall.

As far as I know, reading such events requires just plain read(). We can store fanotify metadata and file handle in one structure (the file handle is an opaque byte array, libc just needs to expose name_to_handle_at() and open_by_handle_at()).

As far as I know, reading such events requires just plain read().

Right

We can store fanotify metadata and file handle in one structure (the file handle is an opaque byte array,

If possible, we should also consider that pidfd structs as well🤔

libc just needs to expose name_to_handle_at() and open_by_handle_at()).

As well as the structs that will be used, seems that they have been added to the libc crate though, I haven't taken a closer look at them.


Adding Harness documentation to CI integrations overview

Edit Documentation
Description

Adding link to the Harness documentation on Sauce Labs integration
Motivation and Context

Access to Harness Connectivity with Sauce Labs
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] Documentation fix (typos, incorrect content, missing content, etc.)

Checklist

[x] I have read the contributing document.
[ ] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Hi @Olgaminch7 👋 Thank your for your PR! Your changes have been merged in https://github.com/saucelabs/sauce-docs/pull/1860.


Could you please create Cegep Heritage?

http://www.cegep-heritage.qc.ca/

File needs to end in .txt.

@KiBuiShi Flagging as stale.


multi-machine multi-gpu training won't start using slurm_train.sh script on CNGrid

Describe the bug
I tried to launch multi-node multi-gpu training on a cluster (CNGRID) managed by slurm, using the script 'slurm_train.sh'; however, the training stuck at the early step of loading pretrained backbone network weights. When I look into the nodes that slurm allocated to me, I found all gpus' util rates are 0% and only gpu0's memory usage reached about 1gb while others' barely used; using 'top', I found a python process was created on each node and it gave 100% cpu usage.
What was possibly happening?
Reproduction

What command or script did you run?
slurm_train.sh
Did you make any modifications on the code or config? Did you understand what you have modified?
No.
What dataset did you use?
coco2017

Environment

Please run python mmdet/utils/collect_env.py to collect necessary environment information and paste it here.
I use mmdetection 1.0, so the information collection script is not there.
The information collected with pytorch's script is as below:
PyTorch version: 1.4.0
Is debug build: No
CUDA used to build PyTorch: 10.1

OS: CentOS Linux 7 (Core)
GCC version: (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
CMake version: Could not collect
Python version: 3.7
Is CUDA available: Yes
CUDA runtime version: 10.1.243
GPU models and configuration:
GPU 0: Tesla V100-SXM2-16GB
GPU 1: Tesla V100-SXM2-16GB
GPU 2: Tesla V100-SXM2-16GB
GPU 3: Tesla V100-SXM2-16GB
Nvidia driver version: 440.64.00
cuDNN version: Could not collect
Versions of relevant libraries:
[pip] numpy==1.17.0
[pip] torch==1.4.0
[pip] torchvision==0.4.0a0
[conda] _pytorch_select 0.2 gpu_0 defaults
[conda] blas 1.0 mkl defaults
[conda] mkl 2019.4 243 defaults
[conda] mkl-service 2.3.0 py37he904b0f_0 defaults
[conda] mkl_fft 1.0.15 py37ha843d7b_0 defaults
[conda] mkl_random 1.1.0 py37hd6b4f25_0 defaults
[conda] pytorch 1.2.0 cuda100py37h938c94c_0 defaults
[conda] torch 1.4.0 pypi_0 pypi
[conda] torchvision 0.4.0 cuda100py37hecfc37a_0 defaults
Error traceback
No.
Bug fix
No.

Hi @HawkRong ，
If the training stuck at downloading pre-trained models, you can download the model first through single gpu training, or download the weights manually through links in this file.

@ZwwWayne Hello. I have the weight file in the correct folder and single-machine multi-gpu training went well, so I think the issue is specific to multi-node training. Any insight?

We can hardly help with this. It's difficult to diagnose the errors on some specific environment that we cannot access or not familiar. For reference, we tried on our own cluster with 2 nodes or 4 nodes, and it just works fine.


Refactored the useChatStream Hook to improve readability and maintainability

I used your hook as a basis in my own project. Thanks for this. I would like to share with you some of my refactored code to improve the code readability and simplify some of the functions. The new code still maintains the original functionality but also includes some additional types and some changes to the request options. I didn't want to change your return style. My preference would always be to return an object. With an array you can use as const in TypeScript. Please note I've added two functions to your array that I think are useful.
I replaced some of your enums, because I prefer auto-completion for union types, which means that users can simply work with strings.
In my own project, I immediately replaced the entire SSE package because it was written with old syntax and, in my opinion, is difficult to understand. I implemented this in TypeScript myself, but it's not included here in this pull request because then all your tests with the mocking of the SSE failed. If you are interested, let me know.

Hi @MatchuPitchu and/or @jonrhall - can I suggest two thoughts on this PR?
(1) How do you feel about changing the proposed resetMessages() into a setMessages(value: ChatMessage[])? setMessages() would be more general in that it can be used to modify/rewrite the conversation history in addition to being usable as a reset function if you just pass [] as the function argument. Like MatchuPitchu's experience, this was one of the first things I stubbed into a local fork while playing with it, to make it easier for me to iterate on conversations while exploring prompts.
(2) It would be great to be able to pass the temperature parameter into the hook constructor. While messing around unsuccessfully with some prompt ideas, I eventually realized I needed to reduce the temperature to get them to work properly, which at present isn't possible with this hook.
I don't think either of these involves more than a tiny amount of code. Happy to help implement if that's useful, or stay out of the way if it's easier for one of you to do it.

Thank you for your thoughts, @yoDon . I adapted my own version in my private project, so of course I'll leave all the decisions to @jonrhall here.

I'm a fan of separation of concerns, so I think my solution with an explicit reset function is better. This resets the setMessages internally in the hook.

Yes, I think this would be nice. In general, all options available according to the OpenAI Documentation should be adjustable.

Hi @MatchuPitchu and/or @jonrhall - can I suggest two thoughts on this PR?
(1) How do you feel about changing the proposed resetMessages() into a setMessages(value: ChatMessage[])? setMessages() would be more general in that it can be used to modify/rewrite the conversation history in addition to being usable as a reset function if you just pass [] as the function argument. Like MatchuPitchu's experience, this was one of the first things I stubbed into a local fork while playing with it, to make it easier for me to iterate on conversations while exploring prompts.
(2) It would be great to be able to pass the temperature parameter into the hook constructor. While messing around unsuccessfully with some prompt ideas, I eventually realized I needed to reduce the temperature to get them to work properly, which at present isn't possible with this hook.
I don't think either of these involves more than a tiny amount of code. Happy to help implement if that's useful, or stay out of the way if it's easier for one of you to do it.

@MatchuPitchu Thanks for putting forward this PR, I'm looking at incorporating your and @yoDon's feedback into my next set of changes. A couple of thoughts so far as I work through your the comments here:

I definitely understand the need for a setMessages and resetMessages function(s). I'm still thinking through the implementation of this, I think having them be one setMessages function instead of two is probably the way I'm going to head, but this is still TBD. I was trying to avoid having this hook do too much in the way of its return value because I really like the simplicity of a React Hook returning a tuple [value, setValue] instead of an object--it's a very well-understood pattern that everyone is already familiar with, but I think we're at the limits of its usefulness. What's important to think about here is, when a setMessages function is invoked, how the hook knows it needs to call the API and how sometimes you're just looking for it to update the current list of messages in its state without sending an API request.
It's clear I need to add a Prettier definition for this project. There are some things in your PR that are regressions from the style I like to use, but that's not being enforced as strictly as I thought via ESLint, and Prettier is the right solution here IMO to make sure that we're all on the same page.
I don't quite understand the need for changing the interfaces to types, can you explain that to me?
What was the reason for needing to expose a closeStream function in the hook? Is that so you can tell it to stop generating a response mid-stream? I hadn't thought of this, and it's a really good idea if that's what you're using it for, I'd want to add that in my update as well.
The next set of changes will much more closely mirror the options available when creating the openai client directly--i.e. support for temperature and any related settings will be coming in the next change. I totally understand the need for this.
 They also have a very nice side-benefit of a more strictly-typed interface with this hook library, where it can proactively express the versions of GPT that are supported only after they have been tested and verified to work (and this also allows for nice source control tracking of support for various versions).
There was a reason that I didn't want to touch the SSE package, and that was because I didn't want this project to own its implementation, for proper separation of concerns. I'm not an expert on ReadableStreams and there's implementation details in that code that I haven't fully grok'd (nor do I want to b/c it doesn't relate to this project), which is why I only provided a basic interface for the parts of the SSE module that I used in the project's type definitions. I would love a PR for updating the SSE dependency of this repo, if you wanted to publish your SSE implementation as its own project? It would be great to get full native TS support with that SSE dependency, I just don't think this project is the place for that to live.

@MatchuPitchu looking through your most recent code  (not what was is recorded in this PR but the link in your most recent message) I'm really liking what you've done. I really like that you removed the SSE dependency entirely, that's really great. I also see that you kept the enums in which I think is important as well... all around great work! I'll be incorporating your changes in the main project shortly--thank you for the update.

@jonrhall : Thank you, yes feel free to use my own hook. Gladly with a small reference to my Github repo or as a contributor to the package.json.
A few more thoughts on your above answer:

Yes, you are absolutely right and with 2 destructured values it also makes sense. But in your tests you can also see that array destructuring is not optimal in my opinion (see if you only need the second value).

Yes, I agree with you there too. Everyone has their habits and tastes. I personally use other patterns and ESLint rules.

This is regularly a big discussion. I'm going by Matt Pocock's very cogent argument: https://www.youtube.com/watch?v=zM9UPcIyyhQ . In your case, the interfaces were also very useful. However, for the sake of clarity, I prefer intersection types to merge different types. I find Inheritance more confusing, but that too is a matter of taste.

Yes, exactly. As with ChatGPT in the original. Imagine you want a React Component written by the AI, but you made a mistake in your prompt. Then you save money and time if you can cancel immediately. I now have the abort function myself for this.

Here I actually have a completely different opinion. You overlooked it, but I only use string literal unions in my own custom hook. The advantage is that the consumer of the hook does not have to import an extra enum, but has 1) auto-completion in his IDE, which values he may use and 2) if he makes a typo, it is immediately marked in red and not accepted.

@MatchuPitchu @yoDon just published major changes to the hook, addressing all your feedback here.
@MatchuPitchu in particular, I think I improved on the way you were handling the streaming completion chunks, I used an async iterator which I think really helped to clean the code up.
I also moved the majority of the handling of the fetch request and the incoming chunks into a separate openAiStreamingDataHandler function that does the majority of the work. The more I worked on these improvements the more this became an obvious abstraction to make, I hope you'll agree.
Unit tests have been added for all functionality (95%+ code coverage).
I would be curious for both of your feedback on the openAiStreamingDataHandler, in particular whether this is a useful abstraction that maybe should be its own GitHub project? But also, also feedback on the changes in general.

Thank you for your message @jonrhall
The readme is very well done. Thanks also for mentioning me.
About your code: We have different tastes in some things, but looks good.
You can delete the ssm.d.ts - you don't need it anymore. Otherwise, I always find code easier to read when early returns are used for if statements. So you avoid nesting.
Thanks for your work!


Update CI setup and GitHub organization references

The CI update (first commit) encompasses the following:

CompatHelper and TagBot need particular permissions set; this commit sets them per the respective repositories' README files.
Unit testing and documentation deployment are consolidated into one file, in keeping with most other packages in the ecosystem.
Unit tests are run on:

The latest Ubuntu version available on Actions instead of 20.04
Julia 1.6, latest 1.x (1.10 as of this writing), and nightly
x86_64 (this was always the case but it's now explicit)

Note that I did not update the Codecov action to its most recent version, v4, as that requires a CODECOV_TOKEN repository secret. See the Codecov documentation for more information. In the meantime, v2 should continue to work (I think) until it's EOL.
The other two commits are replacing references to the Juice-jl GitHub organization with Tractables.

How can we test the CI run before merging it?

Since I'm submitting this PR from a fork, the workflows need to be approved before they're run.

Thanks, seems I don't have access anymore to approve so need to wait until someone else takes a look, and merge this.

Who would still have access? @guyvdbroeck, perhaps?

Thanks for the workflow and PR approval, @guyvdbroeck! I think you'll need to be the one to merge as well given that @khosravipasha doesn't (and obviously I don't) have commit access.

Looking at the CI log now that this is merged, it appears you'll need to regenerate the DOCUMENTER_KEY repository secret. While you're at it, it would be worthwhile to also grab the CODECOV_TOKEN for this repo from https://codecov.io and add that as a secret. Then the Codecov action can be updated to v4.

@ararslan Thanks for checking the logs, seems CI passed but did not deploy because of DOCUMENTER_KEY .  I have access again now, I think I know how to do it following these steps: https://documenter.juliadocs.org/stable/man/hosting/#GitHub-Actions

Great! Once you generate a new SSH key and add it as a repository secret, you should be able to rerun the Documentation job triggered by merging this PR, which you can find in the Actions tab.

Great Thanks, adding the steps here for future refrences.

install DocumenterTools tools

(@v1.8) pkg> add DocumenterTools

Install DirectedAcyclicGraphs in dev mode.

(@v1.8) pkg> dev DirectedAcyclicGraphs

Generate public and private key for documenter_key...

Using DocumenterTools
Using DirectedAcyclicGraphs
DocumenterTools.genkeys(DirectedAcyclicGraphs)

Example Key Generated, and copy in the correct place as instructed in the "info" sections below:

julia> DocumenterTools.genkeys(DirectedAcyclicGraphs)
┌ Info: Add the key below as a new 'Deploy key' on GitHub (https://github.com/Tractables/DirectedAcyclicGraphs.jl/settings/keys) with read and write access.
└ The 'Title' field can be left empty as GitHub can infer it from the key comment.

<ssh-rsa KEY....= Documenter>

[ Info: Add a secure 'Repository secret' named 'DOCUMENTER_KEY' (to https://github.com/Tractables/DirectedAcyclicGraphs.jl/settings/secrets if you deploy using GitHub Actions) with value:

<DOCUMENTER_KEY in base64 encoding.....==>

Rerun All actions here: https://github.com/Tractables/DirectedAcyclicGraphs.jl/pull/5/checks


⚠ Bofrost.at has degraded performance

In 5c71db7, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2376 ms

Resolved: Bofrost.at performance has improved in 305f2eb after 20 minutes.


Make sure iframes don't interfere with modal events [fixes #199]

If a window contains at least one (i)frame, it will behave array-like, see https://developer.mozilla.org/en-US/docs/Web/API/Window/length
Due to this, event listeners were added to the frame windows instead of the root window.
Also noticed your tests have some issues (you're using setTimeout, but not waiting for the result). I modified the relevant test for this issue. If you remove the change in modal.js, the has class is-active when hash is set test will now (correctly) fail.
I also set one test to ignored, since it fails on the current master (unrelated to the issue at hand).

Very nice. Thank you!


Can't add my own videos to Aerial 2.x

In previous versions, it was possible to choose videos that I have saved local on my Mac and configure them as screensavers, but this appears to have been removed in the more recent 2.x release.
The FAQ on Github has the following instructions, which seem to be out-of-date:
https://github.com/JohnCoates/Aerial/blob/master/Documentation/CustomVideos.md
I need to be able to add my own videos, or Aerial doesn't do me any good...

Please see this issue, it's coming back soon. https://github.com/JohnCoates/Aerial/issues/1079


Payload creation v2

New theme for v2

Pull Request Test Coverage Report for Build 968

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 75.849%

Totals

Change from base Build 964:
0.0%

Covered Lines:
2510

Relevant Lines:
3131

💛  - Coveralls


Upgrade build.sln projects to VS 2017 and toolset v141

Hopefully this will avoid any trouble with VS 2017 installs finding the v140 toolset.

:shipit:

:shipit:

Okay, now all of build.sln should be using platform toolset v141.

This PR partially resolves #2206


mod_ext_filter: fix checks for apr_procattr_limit_set

The existence of the apr_procattr_limit_set function declaration is dependant on the APR_HAVE_STRUCT_RLIMIT define within the APR library.
However the user of this function in httpd is inferring the knowledge about its declaration based on the defines: RLIMIT_CPU, RLIMIT_DATA, RLIMIT_VMEM, RLIMIT_AS, RLIMIT_NPROC. This can result in an implicit declaration of function error during a build.
Lets fix this by repeating the work done within the mod_cgi module [1]. Add extra conditionals that check for APR_HAVE_STRUCT_RLIMIT define being set.
[1] https://svn.apache.org/viewvc?view=revision&revision=1172019

Closing as there is not interest in this.


Status of this project.

Hi, great project!
What is the status of this project?
Is it usable?

Hello!
The project is not finished yet, there are still ideas for improvement.  In addition, I do not exclude the presence of problems and bugs.  In general, the project can already be used, but you need to be prepared for possible bugs.  Therefore, if you suddenly encounter a problem, open a issue with a description of the situation where the problem occurs.

Thanks.
I will try it and let you know.
Any hints to compile it?
Seems to need c++20, isn't it?

I could compile it.
with the simplest "Hello world" scripts it works ok:
void main() {     print("Hello there"); }
`./asjit hello.cpp
Begin compile function 'main'
1: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [5, 0]
2: asBC_SUSPEND    ( 63 with size = 1,     IMPLEMENTED) -> []
3: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [5, 0]
4: asBC_PGA        ( 98 with size = 3,     IMPLEMENTED) -> [1577650952, 21862]
5: asBC_CALLSYS    ( 61 with size = 2,     IMPLEMENTED) -> [104]
6: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [63, 0]
7: asBC_SUSPEND    ( 63 with size = 1,     IMPLEMENTED) -> []
8: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [63, 0]
9: asBC_RET        ( 10 with size = 1,     IMPLEMENTED) -> []
End of compile function 'main'
Hello there
Exec time: 0 milliseconds
`
But with test/example.cpp I get a segfault.
Maybe I didn't compile it correctly, or wrong AngelScript version...
`./asjit example.cpp
Begin compile function 'main'
1: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [5, 0]
2: asBC_SUSPEND    ( 63 with size = 1,     IMPLEMENTED) -> []
3: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [5, 0]
4: asBC_PGA        ( 98 with size = 3,     IMPLEMENTED) -> [1312167992, 22047]
5: asBC_CALL       (  9 with size = 2,     IMPLEMENTED) -> [107]
6: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [63, 0]
7: asBC_FREE       ( 65 with size = 3,     IMPLEMENTED) -> [1312149440, 22047]
8: asBC_STOREOBJ   ( 67 with size = 1,     IMPLEMENTED) -> []
9: asBC_SUSPEND    ( 63 with size = 1,     IMPLEMENTED) -> []
10: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [115, 0]
11: asBC_PGA        ( 98 with size = 3,     IMPLEMENTED) -> [1312167992, 22047]
12: asBC_CALL       (  9 with size = 2,     IMPLEMENTED) -> [107]
13: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [173, 0]
14: asBC_FREE       ( 65 with size = 3,     IMPLEMENTED) -> [1312149440, 22047]
15: asBC_STOREOBJ   ( 67 with size = 1,     IMPLEMENTED) -> []
16: asBC_SUSPEND    ( 63 with size = 1,     IMPLEMENTED) -> []
17: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [225, 0]
18: asBC_PSF        (  4 with size = 1,     IMPLEMENTED) -> []
19: asBC_PshVPtr    ( 48 with size = 1,     IMPLEMENTED) -> []
20: asBC_CALLINTF   (139 with size = 2,     IMPLEMENTED) -> [111]
21: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [291, 0]
22: asBC_PSF        (  4 with size = 1,     IMPLEMENTED) -> []
23: asBC_CALLSYS    ( 61 with size = 2,     IMPLEMENTED) -> [104]
24: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [346, 0]
25: asBC_PSF        (  4 with size = 1,     IMPLEMENTED) -> []
26: asBC_CALLSYS    ( 61 with size = 2,     IMPLEMENTED) -> [21]
27: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [401, 0]
28: asBC_SUSPEND    ( 63 with size = 1,     IMPLEMENTED) -> []
29: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [401, 0]
30: asBC_PGA        ( 98 with size = 3,     IMPLEMENTED) -> [1312170200, 22047]
31: asBC_PshVPtr    ( 48 with size = 1,     IMPLEMENTED) -> []
32: asBC_CALLINTF   (139 with size = 2,     IMPLEMENTED) -> [110]
33: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [470, 0]
34: asBC_SUSPEND    ( 63 with size = 1,     IMPLEMENTED) -> []
35: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [470, 0]
36: asBC_PSF        (  4 with size = 1,     IMPLEMENTED) -> []
37: asBC_PshVPtr    ( 48 with size = 1,     IMPLEMENTED) -> []
38: asBC_CALLINTF   (139 with size = 2,     IMPLEMENTED) -> [111]
39: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [536, 0]
40: asBC_PSF        (  4 with size = 1,     IMPLEMENTED) -> []
41: asBC_CALLSYS    ( 61 with size = 2,     IMPLEMENTED) -> [104]
42: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [591, 0]
43: asBC_PSF        (  4 with size = 1,     IMPLEMENTED) -> []
44: asBC_CALLSYS    ( 61 with size = 2,     IMPLEMENTED) -> [21]
45: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [646, 0]
46: asBC_SUSPEND    ( 63 with size = 1,     IMPLEMENTED) -> []
47: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [646, 0]
48: asBC_PshVPtr    ( 48 with size = 1,     IMPLEMENTED) -> []
49: asBC_RefCpyV    (186 with size = 3,     IMPLEMENTED) -> [1312149440, 22047]
50: asBC_PopPtr     (  0 with size = 1,     IMPLEMENTED) -> []
51: asBC_SUSPEND    ( 63 with size = 1,     IMPLEMENTED) -> []
52: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [702, 0]
53: asBC_PSF        (  4 with size = 1,     IMPLEMENTED) -> []
54: asBC_PshVPtr    ( 48 with size = 1,     IMPLEMENTED) -> []
55: asBC_CALLINTF   (139 with size = 2,     IMPLEMENTED) -> [111]
56: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [768, 0]
57: asBC_PSF        (  4 with size = 1,     IMPLEMENTED) -> []
58: asBC_CALLSYS    ( 61 with size = 2,     IMPLEMENTED) -> [104]
59: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [823, 0]
60: asBC_PSF        (  4 with size = 1,     IMPLEMENTED) -> []
61: asBC_CALLSYS    ( 61 with size = 2,     IMPLEMENTED) -> [21]
62: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [878, 0]
63: asBC_SUSPEND    ( 63 with size = 1,     IMPLEMENTED) -> []
64: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [878, 0]
65: asBC_FREE       ( 65 with size = 3,     IMPLEMENTED) -> [1312149440, 22047]
66: asBC_FREE       ( 65 with size = 3,     IMPLEMENTED) -> [1312149440, 22047]
67: asBC_RET        ( 10 with size = 1,     IMPLEMENTED) -> []
End of compile function 'main'
=================================================================
Begin compile function 'Example'
1: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [5, 0]
2: asBC_SUSPEND    ( 63 with size = 1,     IMPLEMENTED) -> []
3: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [5, 0]
4: asBC_PshVPtr    ( 48 with size = 1,     IMPLEMENTED) -> []
5: asBC_ADDSi      ( 79 with size = 2,     IMPLEMENTED) -> [134217742]
6: asBC_ALLOC      ( 64 with size = 4,     IMPLEMENTED) -> [1312090768, 22047, 19]
7: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [82, 0]
8: asBC_SUSPEND    ( 63 with size = 1,     IMPLEMENTED) -> []
9: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [82, 0]
10: asBC_PshVPtr    ( 48 with size = 1,     IMPLEMENTED) -> []
11: asBC_PshVPtr    ( 48 with size = 1,     IMPLEMENTED) -> []
12: asBC_ADDSi      ( 79 with size = 2,     IMPLEMENTED) -> [134217742]
13: asBC_RDSPtr     ( 49 with size = 1,     IMPLEMENTED) -> []
14: asBC_CALLSYS    ( 61 with size = 2,     IMPLEMENTED) -> [22]
15: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [195, 0]
16: asBC_SUSPEND    ( 63 with size = 1,     IMPLEMENTED) -> []
17: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [195, 0]
18: asBC_RET        ( 10 with size = 1,     IMPLEMENTED) -> []
End of compile function 'Example'
=================================================================
Begin compile function 'Example'
1: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [5, 0]
2: asBC_PSF        (  4 with size = 1,     IMPLEMENTED) -> []
3: asBC_PshVPtr    ( 48 with size = 1,     IMPLEMENTED) -> []
4: asBC_ALLOC      ( 64 with size = 4,     IMPLEMENTED) -> [1312149440, 22047, 106]
5: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [70, 0]
6: asBC_LOADOBJ    ( 66 with size = 1,     IMPLEMENTED) -> []
7: asBC_RET        ( 10 with size = 1,     IMPLEMENTED) -> []
End of compile function 'Example'
=================================================================
Begin compile function 'set_msg'
1: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [5, 0]
2: asBC_SUSPEND    ( 63 with size = 1,     IMPLEMENTED) -> []
3: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [5, 0]
4: asBC_PshVPtr    ( 48 with size = 1,     IMPLEMENTED) -> []
5: asBC_PshVPtr    ( 48 with size = 1,     IMPLEMENTED) -> []
6: asBC_ADDSi      ( 79 with size = 2,     IMPLEMENTED) -> [134217742]
7: asBC_RDSPtr     ( 49 with size = 1,     IMPLEMENTED) -> []
8: asBC_CALLSYS    ( 61 with size = 2,     IMPLEMENTED) -> [22]
9: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [118, 0]
10: asBC_SUSPEND    ( 63 with size = 1,     IMPLEMENTED) -> []
11: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [118, 0]
12: asBC_RET        ( 10 with size = 1,     IMPLEMENTED) -> []
End of compile function 'set_msg'
=================================================================
Begin compile function 'get_msg'
1: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [5, 0]
2: asBC_SUSPEND    ( 63 with size = 1,     IMPLEMENTED) -> []
3: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [5, 0]
4: asBC_PshVPtr    ( 48 with size = 1,     IMPLEMENTED) -> []
5: asBC_ADDSi      ( 79 with size = 2,     IMPLEMENTED) -> [134217742]
6: asBC_RDSPtr     ( 49 with size = 1,     IMPLEMENTED) -> []
7: asBC_PshVPtr    ( 48 with size = 1,     IMPLEMENTED) -> []
8: asBC_CALLSYS    ( 61 with size = 2,     IMPLEMENTED) -> [20]
9: asBC_JitEntry   (175 with size = 3,     IMPLEMENTED) -> [118, 0]
10: asBC_RET        ( 10 with size = 1,     IMPLEMENTED) -> []
End of compile function 'get_msg'
Empty
Segmentation fault (core dumped)
`

Please tell me the platform (Windows, Linux, Android?) and architecture (x86_64 or arm64) on which the code was run?

Linux x86_64

Just compiled the project. g++ compiler (GCC) 13.2.1 20240316, AngelScript version 2.36.1.
The project started without errors. Maybe you are using a different version of Angelscript?

Just compiled the project. g++ compiler (GCC) 13.2.1 20240316, AngelScript version 2.36.1. The project started without errors. Maybe you are using a different version of Angelscript?

Yes, I'm using an older version: 2.35.1
I will try with 2.36.1

I comment here my experience in case it can be useful for somebody:
I got something working in my Qt app, but found some challenges.
Main problem is that Qt emit macro collides with asmjit's emit function.
I tried the solution described in this post and could compile:
error-when-using-asmjit-within-a-qt-gui-application
But my app crashes in some cases, exactly when emitting a signal.
I got "paranoid" with the emit issue and renamed everything containing "emit" to "jitEmit" or similar in asmjit, functions, class names and everything...
But my app still crashes in some cases.
The scripts works ok, the crash happens later when the program returns to Qt events loop, and always related with a button "clicked" signal or something like that.
No idea of what could be the problem.
Another minor issue is that I'm using C++11 and got an error in a std::set which does not implement "contains()" method.
So I just iterated through the std::set to find the item.
With this minor change I could compile with C++11
std::set<unsigned int>& skip_it; skip_it.contains(index)

Update:
I managed to make it work by completely isolating my Qt app from asmjit:
Instead of including compiler.hpp I added a "CompilerFactory" class to AngelScript-JIT-Compiler and I only include compilerfactory.h in my Qt project.
AngelScript-JIT-Compiler + asmjit compiled as static lib.
By now only for x86_64, but I will add arm64 as well:
`
// compilerfactory.h
class asIJITCompiler;
class CompilerFactory
{
public:
CompilerFactory() = delete;
static asIJITCompiler* getAsCompiler();
};
// --------------------------------------------------------------------
// compilerfactory.cpp
#include <angelscript.h>
#include "compilerfactory.h"
#include "x86-64-compiler.h"
asIJITCompiler* CompilerFactory::getAsCompiler()
{
return new JIT::X86_64_Compiler();
}
`


Internet connectivity statement

The statement below is confusing. Please clarify if Bytes referenced is in terms of data content or data transfer
The Microsoft Defender ATP sensor can utilize a daily average bandwidth of 5 MB to communicate with the Microsoft Defender ATP cloud service and report cyber data.

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

ID: b8aca66a-5a8b-64d2-7201-a7b915c5d309
Version Independent ID: c3cc0543-db20-a8f2-288c-d1dea5ea479f
Content: Minimum requirements for Microsoft Defender ATP - Windows security
Content Source: windows/security/threat-protection/microsoft-defender-atp/minimum-requirements.md
Product: w10
GitHub Login: @mjcaparas
Microsoft Alias: macapara

@rogerxrp 5MB is the amount of daily data that the sensor can send to the Defender for Endpoint cloud service for analysis.

@rogerxrp Please let us know if you still have any question regarding the issue you have raised initially.
The issue is being closed since your question seems to be answered. Feel free to re-open this issue if you feel that it hasn't been answered or that there are further suggestions to improve the documentation itself.
Thanks.


feat: account yarn's applied patches in SBOM results

Describe the bug
Yarn's builtin @yarnpkg/plugin-compat will automatically patch specific packages upon install. As far as I can see, this is not reflected in the created SBOM.
To Reproduce
# yarn add resolve
➤ YN0000: · Yarn 4.5.1
➤ YN0000: ┌ Resolution step
➤ YN0085: │ + resolve@patch:resolve@npm%3A1.22.8#optional!builtin<compat/resolve>::version=1.22.8&hash=c3c19d, function-bind@npm:1.1.2, hasown@npm:2.0.2, is-core-module@npm:2.15.1, path-parse@npm:1.0.7, resolve@npm:1.22.8, supports-preserve-symlinks-flag@npm:1.0.0
➤ YN0000: └ Completed
[...]
~# yarn info --name-only
├─ resolve@patch:resolve@npm%3A1.22.8#optional!builtin<compat/resolve>::version=1.22.8&hash=c3c19d
[...]
# yarn dlx -q @cyclonedx/yarn-plugin-cyclonedx
[...]
  "components": [
    {
      "type": "library",
      "name": "resolve",
      "version": "1.22.8",
      "bom-ref": "resolve@patch:resolve@npm%3A1.22.8#optional!builtin<compat/resolve>::version=1.22.8&hash=c3c19d",
      "author": "James Halliday",
      "description": "resolve like require.resolve() on behalf of files asynchronously and synchronously",
      "purl": "pkg:npm/resolve@1.22.8?vcs_url=git%3A//github.com/browserify/resolve.git",
[...]

So the only trace of the patch you see in the SBOM is the bom-ref which should be opaque to BOM consumers, I guess.
Looking at the version and purl, you would assume that an unchanged resolve as available from NPM is in your system while in fact, this patch (readable version)  was applied to it.
Expected behavior
To be honest, I'm unsure whether the information should be better provided using pedigree/patches, using something like 1.22.8&hash=c2c19d as version ... or if this would even justify to extend the purl specification...
Environment
Tested on:

@cyclonedx/yarn-plugin-cyclonedx version: 1.0.2+git.4f6eb7e
yarn version: 4.5.1
Node version: 23.0.0
OS: docker pull node:23-bookworm

By the way, you can also easily inspect the changes using Yarn's cacheFolder, you will find both unchanged and patched version of resolve there.
So if you would consider the cache content as "patched package", this would remind me to the situation we have with Linux distributions which also carry their own patches. For those, you just refer to "Debian package linux 6.1.112-1" in your BOM, and the consumers know how to resolve the corresponding patches. So perhaps just specifying some special version string and a purl qualifier would also be enough here?

Thank you for the ticket, @gernot-h .
In general, this is not a bug but a lack of feature.
Are you interested in working on a solution?

Here are some remarks:

So the only trace of the patch you see in the SBOM is the bom-ref which should be opaque to BOM consumers, I guess.

The bom-ref has no meaning, it is just an arbitrary string, unique in universe of the SBOM it ocurred in.

To be honest, I'm unsure whether the information should be better provided using pedigree/patches,

yes. such modifications are intended to be documented as "pedigree".

Thank you for the ticket, @gernot-h .

Thanks for the super-fast reply!!

In general, this is not a bug but a lack of feature. Are you interested in working on a solution?

Unfortunately, my JS/TS/Yarn skills are ... very limited, I wouldn't only need to dive into TypeScript, but I also have only a very rough understanding of the involved Yarn (patching) details so I wouldn't feel too comfortable shaping a best practice here.

To be honest, I'm unsure whether the information should be better provided using pedigree/patches,

yes. such modifications are intended to be documented as "pedigree".

As it seems that the hash string Yarn adds to the version number is nothing one could lookup somewhere, I agree that explicitely listing the patches in the BOM might be the best solution. While it sounds like adding a lot of complexity to the backend consuming the SBOM which needs to retrieve the involved patches...


⚠ Bofrost.de has degraded performance

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

HTTP code: 200
Response time: 1501 ms

Resolved: Bofrost.de performance has improved in 27d9112 after 43 minutes.


preventDefault preventing ng-checked and ng-model bindings from working

Using preventDefault on an ng-click callback sends the state of a checkbox out of sync with ng-model and ng-checked bindings. Example here:
http://plnkr.co/edit/419QQthL8MmP2fQzVBog
Not quite sure why this happens, but the desired behavior is that the checkbox is checked when the bound value is true. There are a few use cases for this, for instance if you want to display modal warning before letting a user check a checkbox, or if you want another component to handle the model update that sets the checkbox state to checked.

Angular needs the DOM events to do the bindings. When you prevent the click, Angular cannot set the checked. And why would it? You just prevented the click, the checkbox is not checked.

I guess I'm a little confused as to what's happening here. It seems like a digest cycle still happens even after the preventDefault, so I would think that because I'm updating a scope variable, that the DOM would update to represent the bound state. The click event and the application of the checked attribute to the element seem like two totally different things, which just happen to be related in the default case. My sense was that the preventDefault would stop the default behavior of the checkbox being applied, but a digest cycle would run, and the ng-checked directive would then apply the checked attribute.

You have two different variables in your code: isChecked, isClicked. Is that the cause of your confusion?

Sorry, forgot to save my local changes to the plunker, should be using the correct variable name now,

Looks the same too me. Here's an update: http://plnkr.co/edit/KOQo6ztxV1QTw5VfvjCA?p=preview

Eh, not sure why the plunker isn't updating, but you can see the behavior I'm describing.

The plnkr still doesn't do what I think you want - setting isChecked in the click handler instead of isClicked. Maybe you didn't save your plnkr or forked it before?
But even if it does, the checkbox will not appear "checked", even if isChecked is set after preventDefault. I assume this is because the browser prevents the checking with preventDefault, and the subsequent change to the checked attribute comes too fast. Wrapping it in a timeout works: http://plnkr.co/edit/yVPKBCfXhgbhzurcqVxd?p=preview

Due to lack of feedback, I'm going to close this as working as expected based on my explanation above

I meet the same question.
Checkbox use ng-model.Then add click eventHandle using a customDirective .In the eventHandle function,exeute e.preventDefault(). as a result,no-model change to true,I thought it would not be change.
-----coming from google search.

o


N23: Dango and CrystalOrb

Part of #677
@james7132 and @gschup would it be alright if I compared CrystalOrb to backroll-rs and GGRS in the way it is currently written in the CrystalOrb section?

Part of #677
@james7132 and @gschup would it be alright if I compared CrystalOrb to backroll-rs and GGRS in the way it is currently written in the CrystalOrb section?

I would be glad if you clarified that while you are sending authorized snapshots of the game (already in the text), backroll-rs and GGRS are only sending input data (currently missing). Thanks :)

I would be glad if you clarified that while you are sending authorized snapshots of the game (already in the text), backroll-rs and GGRS are only sending input data (currently missing). Thanks :)

Done, thanks for pointing it out.
I'd be happy to make any further amendments.

Thanks for the PR!


Fix typo

LGTM

ping @ehazlett

@moxiegirl No problem, I think it is awesome that I am able to contribute even in a small way!

By the way I just found another one at:
https://docs.docker.com/reference/builder/
*/temp*
*/*/temp*
temp?
!LICENCSE.md
*.md

"LICENCSE" is misspelled, but I can't find it in the repo to commit a fix.

@brandoncc that document is in the docker repository; the documentation is generated by combining the /docs/ from all docker projects.
You can find that document here, but it looks like that typo is already fixed (but not yet published);
https://github.com/docker/docker/blob/master/docs/reference/builder.md
thanks for spotting that though!

Oh, thanks for clarifying that for me! I'm glad it is fixed already, if I find any more I will definitely create a PR :smile:

Awesome! thanks for contributing!

Thanks!!! LGTM


Adds support for multiple default query tags

Summary
Adds support for multiple default query tags and deprecates other unused related properties.
Workaround for gh-682
Details
This code proposal is based on option #2 from the related issue:

Set the spring.cloud.consul.discovery.default-query-tag: myServiceTag

It is a meet-in-the-middle solution that solves my application's need while still leaving the metadata removal in-place. Additionally it improves the current state of the query tag configuration.

ℹ

After adding the tests for this I realized that the multiple tags are combined (AND'ed) by the ConsulHealthClient (as one would expect they would be). This does not help solve my application's needs as we would have to achieve and OR of the filters. "Give me all services with tag 'east' or 'west'" for example. That being said, I feel like this is still an improvement in the query tags configuration and I have consolidated the query tags tests into a single ApplicationContextRunner based integration test with more thorough coverage.

ℹ I will update the docs shortly

@spencergibb or team, please advise one way or the other when you can. I know you are all super busy trying to get 2020.0 released - thank you very much for all of the hard work going into that.

At this point we can no longer have breaking changes. How about reusing the existing property, but allowing a comma separated list to be parsed and passed to consul?

At this point we can no longer have breaking changes. How about reusing the existing property, but allowing a comma separated list to be parsed and passed to consul?

Oh man! No more breaking stuff? :) I missed the window.
So, not sure if you saw the updated description comment but I figured out that the tags are combined anyways - which is not the behavior my application needed. This is not a problem though as you have already provided a workaround for that w/ the drop-down to the ConsulServiceInstance and I am planning on using that.
I mean, we could delete this pull request right now as my problem is already solved. That being said, I totally don't mind adjusting this to parse the tag property (csv) which will add this functionality in but w/o breaking changes on the properties. Another option is deleting all of the added functionality in here and keeping the integration test consolidation.
Just let me know. I have zero problem with deleting code I just wrote. It's not the first I wrote, it won't be the last.  Hehe.

If you'd like to updating to parsing a comma separated list, great, otherwise we can close this.

Cool.  I will update it later today.
On Tue, Dec 22, 2020, 11:03 AM Spencer Gibb<EMAIL_ADDRESS>wrote:

If you'd like to updating to parsing a comma separated list, great,
otherwise we can close this.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/spring-cloud/spring-cloud-consul/pull/684#issuecomment-749660172,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AG4RTQ2XJDHQ3VPR4QFIY2TSWDGMPANCNFSM4T66STZA
.

No rush. We're all going on holiday until after the new year :-)

@spencergibb I will get the updates in w/in the next 24hrs.

@spencergibb I will get the updates in w/in the next 24hrs.

@spencergibb - I think I addressed all requested changes. Thanks.

@spencergibb - I think I addressed all requested changes. Thanks.

You mentioned some documentation updates?

You mentioned some documentation updates?

You mentioned some documentation updates?

I updated ConsulDiscoveryProperties but will make sure any mention of the query tags int he docs gets an update as well.

You mentioned some documentation updates?

I updated ConsulDiscoveryProperties but will make sure any mention of the query tags int he docs gets an update as well.

You mentioned some documentation updates?

I updated ConsulDiscoveryProperties but will make sure any mention of the query tags int he docs gets an update as well.

@spencergibb I think _configprops.adoc is. the best place for the new property doc as its the only mention of the default query tag capability I could find in the docs.  However, I noticed that file is not getting updated automatically like I thought it would. Do I need to do something to kick that off? Is it broken? Or does it happen during a later build step?

You mentioned some documentation updates?

I updated ConsulDiscoveryProperties but will make sure any mention of the query tags int he docs gets an update as well.

@spencergibb I think _configprops.adoc is. the best place for the new property doc as its the only mention of the default query tag capability I could find in the docs.  However, I noticed that file is not getting updated automatically like I thought it would. Do I need to do something to kick that off? Is it broken? Or does it happen during a later build step?

@spencergibb this one still shows as Changes requested but I think I addressed all concerns. Please take a scan when you can. Thanks.

@spencergibb this one still shows as Changes requested but I think I addressed all concerns. Please take a scan when you can. Thanks.


Displayed the product attributes dynamically #1xc2ecd

Related Issues

Closes #
Short Description and Why It's Useful

Screenshots of Visual Changes before/after (If There Are Any)

IMPORTANT NOTICE - Remember to update CHANGELOG.md with description of your change
Contribution and Currently Important Rules Acceptance

[ ] I read and followed contribution rules

Question about text transform.
Previously we were hard coding the attribute names(Size and Color), we used sentence case for that.
And from the server we get it in all caps, that's why we've transformed it.


Allow to provide HTTP headers

Based on #238

I think a pre-commit run --all-files would fix the error


Tb

Thanks for your contribution. I reviewed your PR and noticed that you have changed a lot of things including php version, mysql password and server_name in your own environment.
But it lost compatibility to others, we need do it in common way. Please remove/fix environment-specific code and resubmit.


Update Amber to scala 3

We want to use some advanced features of scala 3 in this refactoring. However, the support of scala 3 in IntelliJ is experimental and buggy. I encountered this problem: https://youtrack.jetbrains.com/issue/SCL-18417. For now, I will continue to use scala 2.13 until they fix the issue.

decided not to do it.


Genesis v1 repo projects that use .genesis_deps do not work with latest version

The latest genesis v1 that is embedded in genesis v2 does not handle .genesis_deps file correctly.  First off, the new "v1.x.x" version string of the embed genesis is not recognized.  Secondly, and this may be due to a different, pre-existing issue, it is not correctly determining other versions:
This Genesis deployment requires safe version 0.0.14, but the current version could not be parsed

The safe version installed was 0.2.2

I am not sure if this will help or not but I wrote up a bash semver script.
https://github.com/starkandwayne/bash-shell-utilities


Cockpit installer to work with AYS 820

Addresses:

#809
Jumpscale/jumpscale_portal8#133
Jumpscale/ays_jumpscale8#219

LGTM


Load graph: performance improvements and refactoring

Description
Please include a summary of the change. For large or complex changes please include enough information to introduce your change and explain motivation for it.


menu.sh fails when nodered is selected.

menu.sh fails when building nodered:
Starting NodeRed Build script
Error running PreBuildHook on 'nodered'
Traceback (most recent call last):
File "./scripts/buildstack_menu.py", line 460, in runPrebuildHook
exec(code, execGlobals, execLocals)
File "./.templates//nodered/build.py", line 396, in
main()
File "./.templates//nodered/build.py", line 386, in main
eval(toRun)()
File "./.templates//nodered/build.py", line 119, in preBuild
installCommand = addonsSelected["dockerFileInstallCommand"]
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
Thanks a million

This seems to be the wrong project, better you ask IOTstack.

@oderflallc - @Noschvie is correct that this is an IOTstack problem, not a PiBuilder problem but, rather than wait for you to open an issue on IOTstack, I will try to help you here.
I have not been able to replicate your problem exactly but I can get close if I do this:

./menu.sh
Choose "Build Stack"
Use the up/down arrow keys to put the cursor on "nodered"
Press space to select "nodered".
Press Enter to build the stack.

Those five steps get me this error:

That error is a fairly common problem with people new to IOTstack. Adding Node-RED into your stack needs some extra steps:

./menu.sh

Choose "Build Stack"

Use the up/down arrow keys to put the cursor on "nodered"

Press space to select "nodered".

Without moving the cursor, press right arrow.

Choose "Select & build addons list".

Use the up/down arrow keys and space key to choose your add-on nodes.

If you don't know which ones you need, it's OK to just leave the list with the defaults selected.

When the list of add-on nodes is how you want it, press Enter to save that list.

Choose "Go back".

Press Enter to build the stack.

Although the menu does prompt you at step 5, I don't the message is particularly clear:
odered (fileIssues) - ['/addons_list.yml does not exist. Build addons file in options to fix. This is optional']

What that means is "press the right-arrow". Why it doesn't simply say that is a mystery. The message is also misleading because it isn't actually optional. It's mandatory (for Node-RED).
My guess is that if you go back into the menu, then "Build Stack", then put the cursor on "nodered", and pick up from step 5 by pressing the right arrow, you will be able to fix the problem.
If you can't then the simplest approach is to fool the menu into thinking it's a brand new build:
$ cd ~/IOTstack
$ rm -rf docker-compose.yml services
$ ./menu.sh

Earlier I said "I have not been able to replicate your exact problem". If you compare/contrast your traceback with mine, you will see they are similar for code lines 460, 396 and 386 but differ at the point of the base call. Your error traces back to line 119 while mine traces back to line 114.
The relevant area of code is:

You can see from line 109 that this area of code is all to do with building Node-RED. Given the sequence of events I described above where I do not press the right-arrow to select the add-ons, I can easily explain why line 114 leads to a crash:

the expected addons_list.yml file has not been created.

Conversely, I can't explain how, under normal conditions, I can get past line 114 and fail at line 119. The only way I can contrive that is by taking action outside the menu. Something like this:
$ cd ~/IOTstack
$ mkdir -p services/nodered
$ touch ./services/nodered/addons_list.yml
$ ./menu.sh

If I do that then select "nodered" and build the stack I get:

That's identical to your crash.
If you did something "outside the menu" similar to what I just did then maybe try the rm command (above) to persuade the menu to start over properly.
If that doesn't help and you think you might've accidentally done more damage to the IOTstack folder structure, the simplest solution is to start over with a clean clone:
$ cd
$ sudo rm -rf IOTstack
$ git clone https://github.com/SensorsIot/IOTstack.git
$ cd IOTstack
$ ./menu.sh

Hope this helps.


fix: minor typo in config init message

Checklist:

[x] Commit Message Formatting: Commit titles and messages follow guidelines in the
conventional commits.
[ ] Changelog updated with breaking and/or notable changes for the next minor release.
[ ] Documentation has been updated, if necessary.
[ ] Unit tests have been added, if necessary.
[ ] Integration tests have been added, if necessary.

Looks good, thanks for the PR!

No idea how I missed that :(.  Thanks for pointing it out!  Will reapprove once signed-off.

@jramcast I think there is an issue with your rebase :)


fix: move meta files out of .github

It seems that #3 moved README/CONTRIBUTING/LICENSE into .github, this moves them (back?) to the root.

@george-e-shaw-iv

talked in slack


Provide interop between Dart and WASM

Would it be possible to enable Web Assembly in Dart?
Were this to be possible, I think it would greatly increase investment in the language as existing codebases would have a common compile target which could be used as a bridge.
For example I'd love to use Dart/Flutter but doing so would be incredibly costly without much benefit. Were I able to use WASM in Dart however the story would be very different- Flutter would become just as easy to use as any other web interface were that the case.
Can we get an up/down on whether or not this is A possible, and B something the team would like to support in the future?

A package for accessing raw WASM API from JS exists:
https://pub.dev/packages/wasm_interop

common compile target which could be used as a bridge

Emscripten-compiled modules always require additional JS glue to do initialization and to pass any function parameter or return value that is not a number. So an actual interop would be between dart2js compiled JS and emscripten-supplied JS (which is already possible via existing JS-interop options).
Compiling Dart code to WASM may be interesting for some use cases but the final result would look like what emscripten does: a WASM module with auto-generated JS glue. So again, an actual interop would be between two JS codebases.

CC @yjbanov @mraleph @matanlurey

Could you clarify what you mean by "Web Assembly Support" because there are multiple different things this could mean, for example:

You want to be able to use WASM on the Web together with Dart
You want to be able to use WASM in native environments with Dart (e.g. on command line, Flutter apps, server)
You want to be able to compile Dart to WASM

For example I'd love to use Dart/Flutter but doing so would be incredibly costly without much benefit. Were I able to use WASM in Dart however the story would be very different- Flutter would become just as easy to use as any other web interface were that the case.

It is not really clear to me why any form of WASM support makes it easier for you to use Flutter.
You can already use any native language in your Flutter application, you don't really need any WASM support for that. Of course you need to figure out interoperability story because Flutter framework is written in Dart so it works best when actually used from Dart and not from some other language.
Say you want to use Flutter class StatefulWidget from C++ code - how is this supposed to work? What does it even mean? WASM does not magically answer this question.

Since we have an issue ( #32894 ) for compilation, let's use this for interop.  We may want to split the native and web cases ( @mraleph 's first two bullets) at some point, but one use case might be deploying / sharing C++ components between Web and native targets.

We are interested in Google i18n about using WASM in native environments with Dart. See https://github.com/dart-lang/sdk/issues/32894#issuecomment-513325349

@nex3 – do you already have an issue open on this?

@kevmoo I don't think so.
Using WASM from Dart is something I'm interested in seeing as someone with a vested interest in Dart's success. WASM is extremely portable (any language could add support for it, and it's usable in the browser), it will provide a clearly-defined interop interface for high-level languages, and it's likely to be quite performant for algorithmically-intensive code. This combination positions it very well for becoming the de fact standard platform for self-contained libraries. Library authors are motivated to target WASM because it'll make their libraries easy for downstream users across all manner of languages and platforms to use, and languages will be motivated to support it because so many libraries exist. The normal bootstrapping problem a network effect like this will be smashed by having support from the two most widely-used platforms, Node.js and the browser, from the word go.
If Dart gets ahead of the curve and starts adding support for WASM now, it'll have access to (and input into) this ecosystem as it grows, making it easier and more attractive for new users to move to Dart. But if you wait until WASM support is de rigueur for any serious language, you'll have to exert the same energy playing catch-up that could have instead been a competitive advantage.

I was more wanting to use WASM inside Dart, in a mobile Flutter app. I maintain a large enterprise codebase which must be able to work in the browser; Moving to Flutter is simply not feasible, because as it stands, it would require an entire rewrite of important business logic, etc.
If I could use WASM to contain my business logic etc. then I could easily move to a Flutter app as I would need to do, is import the appropriate WASM module.

Actually @bryanrideshark as far I can tell Dart will support wasmerio for loading web assembly modules, so you don't have to be worry about that. I think it is behind an experimental flag on master.

I'm guessing that @sachaarbonel you mean #37882 so this is very exciting to see support for wasm libraries coming to Dart and I assume eventually to Flutter?

Yep exactly @maks

you mean wasmvm on dart?
i need this too

https://github.com/drydart/wasm.dart

For everybody tracking this issue. We are currently evaluating how to move multiplatform Dart<->WASM interop forward. Similarly to our C FFI work we would like to collect some examples of code that people would like to use in their Dart applications via WASM. So if you have one that is open source please leave a comment here or on #37882 with a link to the source and which platforms you would like to use it on (Flutter on iOS/Android/Desktop/Web, Dart Web), please also include information if you have ever tried running this library in WASM before. Thank you.

The i18n Engineering team at Google is building a cross-platform standard i18n library, which we intend to make available via WASM (internal link http://go/omnicu, public link http://bit.ly/omnicu-charter).  Dart supporting WASM would be a big boost.

Another use case separate from i18n that I'm interested in is to use 2D graphics libraries, such as Cairo.  I have not done it personally, but a quick Google search brings up a few different examples of how to use Cairo on the web via WASM.

That's awesome @sffc. We are working on bringing universality to the WebAssembly modules, integrating Wasm into multiple languages (we already have integrations for Python, PHP, Rust, Ruby, Elixir, C#, Go, C, C++...)
Would be great to chat and see how we can make omnicu usable from all this languages, including Dart as well!
Here's my email, in case is useful for following up<EMAIL_ADDRESS>:)

Would be nice to use in combination with skia canvaskit so that we can have flutter support for web based designops tools like storybook.
See https://github.com/storybookjs/storybook/issues/9183

@codemasterover9000 FWIW you can use CanvasKit as the rendering backend in Flutter on the Web already (still experimental though). All you need to do is pass --dart-define=FLUTTER_WEB_USE_SKIA=true to flutter run or flutter build web. When you use the normal Canvas and SceneBuilder we'll use CanvasKit behind the scenes.

@mraleph
I would like to use libraries written in "rust", directly in dart projects (AngularDart,Flutter for Web,...), like the lib "photon_rs" https://silvia-odwyer.github.io/photon/ without the If you need to create javascript glue files, a way for the dart compiler to create the glue would be excellent.

@insinfo
This Gentleman is doing something interesting https://dev.to/sunshine-chain/dart-meets-rust-a-match-made-in-heaven-9f5

@tsavo-vdb-knott
although I appreciate the article written at this link, the article itself only shows dart ffi interacting with shared dynamic libraries c, it seems out of the topic covered here, dart ffi does not have support yet for libraries written in c compiled for web assembly, if the ffi foso dart compatible with web assembly would be fantastic.

By the way, https://github.com/fzyzcjy/flutter_rust_bridge already supports Flutter Web to call WASM (compiled from Rust).

Sweet @fzyzcjy !!

Thanks! @kevmoo

Oh forget to say, thanks @Desdaemon for contributing the implementation!

We've shipped the Wasm backend as experimental with Dart 3.3 and as stable with 3.4. Closing as completed.

Does Dart support loading WASM libraries, or only emitting them? If the latter and not the former, I don't think this should be closed yet.

We can compile Dart to Wasm, and interact with other Wasm modules in Dart compiled to Wasm.
The latter is done via Native. AFAIK this is how Flutter interacts with SkWasm (e.g. in https://github.com/flutter/engine/tree/main/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw).

Good to know, thanks. It's also worth noting that in 3.4 dart compile doesn't list wasm as an option, and dart compile wasm explicitly says *NOTE*: Compilation to WasmGC is experimental. Can you clarify whether or not this is in fact considered stable, and if so whether these should be considered UI bugs in the CLI?

Ah, my bad, I read the release notes wrong. It looks like we still advertise it as experimental. I've updated my original comment.

The latter is done via Native. AFAIK this is how Flutter interacts with SkWasm

We discussed this a little bit today, Native works today but we will limit its usage to SDK and Flutter repo. For users that want to interact with any Wasm module we will design and implement a separate mechanism.

Running dart2wasm-compiled code in non-JS environments: Issue 53884

We could consider closing this issue in favor of the more concrete ones listed above. wdyt?

@mkustermann
I feel that the issue above + this one would easily translate in WASI support

The latter is done via Native. AFAIK this is how Flutter interacts with SkWasm

We discussed this a little bit today, Native works today but we will limit its usage to SDK and Flutter repo. For users that want to interact with any Wasm module we will design and implement a separate mechanism.

Seeking a bit of clarification on the direction here:

Does this mean that, at some point in future, it won't be possible for me to create any Dart library that uses @ffi.Native to invoke a method in some external C library on any platform? Or just that we won't be able to do so when compiling to WASM? Or is that something Flutter-specific?

Why is dart:ffi specifically not suitable for WASM? Is it because it's based around the 'native' memory paradigm (e.g. single shared linear memory), which doesn't accommodate WasmGC or multiple linear memory instances? Or is there some other reason?

@nmfisher As @osa1 alluded to

dart:ffi has been designed for native (i.e. Dart VM) and is fully supported there
We have very limited sketchy support for dart:ffi in dart2wasm (just enough to support flutter engine use cases). But it's far from being as robust and feature complete as the support the VM has. Because of this we disallow using it for the time being.
We will investigate how dart:ffi can be made to work well on the web (tracking bug: dart:ffi for web). It may require a different API, it may have smaller feature set, ... - to be figured out. Please subscribe to dart:ffi for web. This support will most likely be there for all web compilers (not just dart2wasm).
=> It requires some work, stay tuned!

Thanks for the responses @osa1 and @mkustermann. I've been posting about this on Twitter too, but I figure it's better to move it here for a more fruitful discussion :)
By way of background, I was using dart:ffi, package:ffi and package:ffigen so that my Dart library could load symbols from native libraries across all platforms via ffi.Nativesee here for an example.
This works exceptionally well on desktop/mobile. On web/WASM, I can compile the native library via emscripten, generate the native<->Dart bindings with ffigen, compile the Dart library to WASM, pass the emscripten library to the dart2wasm module in JS at instantiation time, and now both Dart and emscripten libraries have access to the same address space (there's a lot of passing pointers around).
This required some hacks to get around missing dart:ffi functionality. I had previously raised the problems here, and the response was that they wouldn't be fixed because dart:ffi wouldn't be used on web going forward. That's fine - I understand that, no complaint.
However, pulling WASM support for dart:ffi before the replacement was in place is a bit frustrating. I know it wasn't 100% complete/stable, but a subset was - after all, that's what Flutter relies on. What was the downside to just keeping it publicly available? There may have been a few GitHub issues filed saying "dart:ffi isn't working on WASM", but couldn't those be adequately addressed with "dart:ffi isn't officially supported on WASM, that won't be fixed until we have a replacement"?
It also feels a bit strange to grant the Flutter engine access to something that other apps can't use (I mean, if Flutter needs dart:ffi to run on web wasm, other apps probably do too, right?). I'm fully behind the decision to create something like dart:wasm (and I know the current "official" approach now is to use JS interop), but for continuity's sake, it didn't really seem like dart:ffi was causing that many problems that it had to be nuked from the WASM target.

However, pulling WASM support for dart:ffi before the replacement was in place is a bit frustrating.  I know it wasn't 100% complete/stable, but a subset was - after all, that's what Flutter relies on. What was the downside to just keeping it publicly available? There may have been a few GitHub issues filed saying "dart:ffi isn't working on WASM", but couldn't those be adequately addressed with "dart:ffi isn't officially supported on WASM, that won't be fixed until we have a replacement"?
It also feels a bit strange to grant the Flutter engine access to something that other apps can't use (I mean, if Flutter needs dart:ffi to run on web wasm, other apps probably do too, right?). I'm fully behind the decision to create something like dart:wasm (and I know the current "official" approach now is to use JS interop), but for continuity's sake, it didn't really seem like dart:ffi was causing that many problems that it had to be nuked from the WASM target.

Happy to explain the multitude of reasons that led to this decision:

Our development strategy for web apps / flutter web apps: Just like in native where users develop with hot-reload on the Dart VM JIT and deploy with Dart VM AOT, on the web we have DDC as development compiler and Dart2Js/Dart2Wasm as deployment. Since DDC (and Dart2Js) have 0 dart:ffi support - any user using dart:ffi with wasm would be unable to iterate on their app with with DDC - and we have no intention in the short/medium term to make a hot-reload/hot-restart development wasm compiler. So we prefer to offer dart:ffi if it works in both development & deployment modes, not just wasm-specific deployment mode.
We are not 100% sure that we can offer the exact same dart:ffi APIs as well as the same feature set we have on native on the web. So we want to first come up with design & implementation on the web. If we put it out now, we'll get a bunch of bug reports - which we may be unable to fix in short term, make some users rely on it only for us to possibly break them a few months later.
We declared dart2wasm stable. So we want to ensure things are rock solid and dart:ffi in dart2wasm is just not. To back this up, let me give a concrete example: The following most trivial example crashes the tip-of-tree dart2wasm compiler:import 'dart:ffi';
main() => print(Pointer<Int8>.fromAddress(0));

withException in FactoryConstructorInvocation at file:///.../test.dart
Unhandled exception:
Bad state: No element
#0      List.single (dart:core-patch/growable_array.dart:354)
#1      Intrinsifier.generateStaticIntrinsic (package:dart2wasm/intrinsics.dart:810)
#2      CodeGenerator.visitStaticInvocation (package:dart2wasm/code_generator.dart:1777)
#3      StaticInvocation.accept1 (package:kernel/ast.dart:6586)
#4      CodeGenerator.wrap (package:dart2wasm/code_generator.dart:881)
#5      CodeGenerator.visitArgumentsLists (package:dart2wasm/code_generator.dart:2817)
...

We have packages on pub database that use conditional imports on dart.library.ffi. Those packages are broken if the ffi-specific imports are used (instead of the web fallback paths). See e.g. flutter/issues/149984. We want those packages to work as well as in dart2js and not fail to compile or run.
We want to put our limited resources in the very short term to stability/performance/... work that will benefit all wasm-using flutter web apps today. So we'd have very limited bandwidth on addressing user-reported FFI bugs / missing features etc in the short term.

It's fantastic to see the community so eager to get this and build on top of it - it's very motivating for us. We'll get there, stay tuned!

Appreciate the response @mkustermann. I understand why dart:ffi isn't stable, and also why the Dart team wouldn't want to open the door to support something known to be unstable (even if personally I'm happy with the "not officially supported, fix it yourself" response to any issue).
Why the exception for Flutter internals though? Rightly or wrongly, many people see Dart as the "Flutter language" rather than a fantastic language/platform in its own right. Giving Flutter "trusted" access to SDK internals doesn't help dispel that view.

Why the exception for Flutter internals though? Rightly or wrongly, many people see Dart as the "Flutter language" rather than a fantastic language/platform in its own right. Giving Flutter "trusted" access to SDK internals doesn't help dispel that view.

From a technical point of view, we allow any dart:* library to import other internal dart:* libraries - it's not specific to flutter in that sense. Flutter happens to have two dart-colon libraries (dart:ui and dart:web_ui) which can access dart:ffi. But the flutter framework for example cannot use dart:ffi. So if a 3rd party would come along and make a flutter-like framework, adds more dart:* libraries, those would be allowed to import it as well.
From a practical standpoint: We e.g. don't have to maintain API stability. We can break the API at any point, update the corresponding flutter engine (i.e. dart:ui / dart:web_ui) code - do so within a day or two without causing widespread breakages throughout our ecosystem. The bar for public APIs is much higher.
(In hindsight we should have started out with dart:_ffi (just like we have dart:_wasm, dart:_internal, dart:_...) and graduate it to dart:ffi (or similar library) once it's ready)

dart:ui is a Flutter SDK package, though. dart:ffi isn't, it is a public Dart API that you can still call on any Dart (VM) platform. It sounds like the WASM implementation fell into a grey area where it was developed specifically for Flutter compatibility, published, but was never intended for public consumption (because it was intentionally incomplete). Understandable, but given it was published, and that Flutter still relies on it for WASM compilation, a graceful deprecation would have made things easier.
I don't want to take up any more of your time, though - you've acknowledged my feedback and there's probably nothing further to add. I'm sure you have many better things to spend your time on! I look forward to the next iteration of WASM interop on Dart.

WASM shipped as "stable" in 3.22 of Flutter without any hot reload support
Web doesn't at the moment support hot reload with CanvasKit without leaking the whole CanvasKit heap and will eventually hang your app due to OOM related issues in the CanvasKit heap.

Not to minimize how useful hot reload is, and not to discount other issues which are blocking ffi on web, but while better support for hot reload on web would definitely be useful, in practice it's not really working that well in web, and probably shouldn't block any dart features from shipping if it's not blocking Flutter itself from shipping web support.


15

15

@MihaiDejeu this is your task now, please go ahead. Deadline (when this ticket should be closed) is 2020-12-16T12:54:05.849341.
Estimation here is 60 minutes, that's how much you will be paid.
Remember, you don't have to solve everything in this ticket - you can solve it partially and leave todo markers in the code, which will become future tasks.
If you have any questions don't ask me, I'm not a technical person. Open new tickets instead.

@MihaiDejeu please keep in mind that manual assignment of tickets is a bad practice and it is discouraged. Next time, please let me elect the assignee.

@MihaiDejeu Don't forget to close this ticket before the deadline (2020-12-16T12:54:05). You are past the first half of the allowed period.

@MihaiDejeu thank you for resolving this ticket. I've just added it to your active invoice. You can always check all your invoices and more on the Contributor Dashboard.