'g_binding_get_source' is deprecated: Use 'g_binding_dup_source' instead

Hello,
I installed gotk3 recently but when I run it for the first time I have this problem.
I precise that to begin I used the simple.go demo
To Reproduce
I do go build simple.go
Error messages
# github.com/gotk3/gotk3/glib
cgo-gcc-prolog: In function '_cgo_4d289fc334d9_Cfunc_g_binding_get_source':
cgo-gcc-prolog:71:2: warning: 'g_binding_get_source' is deprecated: Use 'g_binding_dup_source' instead [-Wdeprecated-declarations]
In file included from C:/msys64/mingw64/include/glib-2.0/glib-object.h:22,
                 from C:/msys64/mingw64/include/glib-2.0/gio/gioenums.h:28,
                 from C:/msys64/mingw64/include/glib-2.0/gio/giotypes.h:28,
                 from C:/msys64/mingw64/include/glib-2.0/gio/gio.h:26,
                 from C:\Users\lucas\go\pkg\mod\github.com\gotk3\gotk3@v0.6.0\glib\gbinding.go:3:
C:/msys64/mingw64/include/glib-2.0/gobject/gbinding.h:112:23: note: declared here
 GObject *             g_binding_get_source          (GBinding *binding);
                       ^~~~~~~~~~~~~~~~~~~~
cgo-gcc-prolog: In function '_cgo_4d289fc334d9_Cfunc_g_binding_get_target':
cgo-gcc-prolog:107:2: warning: 'g_binding_get_target' is deprecated: Use 'g_binding_dup_target' instead [-Wdeprecated-declarations]
In file included from C:/msys64/mingw64/include/glib-2.0/glib-object.h:22,
                 from C:/msys64/mingw64/include/glib-2.0/gio/gioenums.h:28,
                 from C:/msys64/mingw64/include/glib-2.0/gio/giotypes.h:28,
                 from C:/msys64/mingw64/include/glib-2.0/gio/gio.h:26,
                 from C:\Users\lucas\go\pkg\mod\github.com\gotk3\gotk3@v0.6.0\glib\gbinding.go:3:
C:/msys64/mingw64/include/glib-2.0/gobject/gbinding.h:116:23: note: declared here
 GObject *             g_binding_get_target          (GBinding *binding);
                       ^~~~~~~~~~~~~~~~~~~~
go build github.com/gotk3/gotk3/gdk: invalid flag in pkg-config --libs: -Wl,-luuid

Environment:
gtk3 version: 3.24.29
go version: 1.16.3 windows/amd64
os: Window 10
Thank you in advance for your help

Duplicate #762

@Lk2v : these are just warnings, no errors. this library compiles deprecated GTK code as well. deprecated does not mean that it won't work anymore
@andre-hub: I'd say this issue can be closed


Problems with removing clothes

When I click to remove the clothes to put on the tattoos, I get the character with clothes that I have to touch so that he is in his underwear.
With the old skinchanger script it will be fixed but here in the
fivem-appearance I don't know how to do it if someone can help me fix this, I would appreciate it a lot.

How did you fix that?


Don't drop message on WriteAndFinish with non-ok status

This makes the callback API match the async API in behavior. We continue to drop the message on non-OK status for unary RPCs or for client-streaming RPCs (matching the async API in both cases). This is orthogonal to the long-standing issue about whether or not to drop messages at the transport layer for non-OK status.

Thanks for the reviews!


#5161 - Autotests: Turn some tests to clear canvas way instead of page reload 2

How the feature works? / How did you fix the issue?
(Screenshots, videos, or GIFs, if applicable)
Check list

[ ] unit-tests written
[x] e2e-tests written
[x] documentation updated
[x] PR name follows the pattern #1234 – issue name
[x] branch name doesn't contain '#'
[x] PR is linked with the issue
[x] base branch (master or release/xx) is correct
[x] task status changed to "Code review"
[x] reviewers are notified about the pull request

Approved.


AlignmentResult.pretty prints the cigartuples to stdout

The property pretty is useful to get the pretty-printed version of the alignment as a string, but it currently generates noise by printing cigar tuples to stdout. Deleting the following line would resolve this issue:
https://github.com/kcleal/pywfa/blob/734c970eaee4b9a05072e8734174187548f068ba/pywfa/align.pyx#L138

Thanks! Ive just removed it from the main branch

Ill leave it open until the release is on pypi


Regression: unsignedPluginWhiteList.json stopped working in 7.118.1

Prior to sfdx-cli/7.118.1, the ability to whitelist an unsigned plugin was possible by creating a file $HOME/.config/sfdx/unsignedPluginWhiteList.json
This is documented in https://developer.salesforce.com/blogs/2017/10/salesforce-dx-cli-plugin-update and has worked for years
Starting in sfdx-cli/7.118.1, the underlying CLI NPM module that verifies plugins was changed and now it appears to expect unsignedPluginAllowList.json
The new code that's checking the whitelist is over here:
https://github.com/salesforcecli/plugin-trust/blob/cdbecd507fed9afba257118efb69174f1c269eb1/src/lib/installationVerification.ts#L24
It looks like it was this commit that did it:
https://github.com/salesforcecli/plugin-release-management/commit/24c2a3c0d28f842b3d939a24a74b91dd79f95719
This results in the plugins failing to install in a CI run -- instead, the CLI prompts for interactive approval of the plugin installation
This plugin is not digitally signed and its authenticity cannot be verified. Continue installation y/n?:
Here we are again .. another Thursday .. and another broken CI pipeline. No mention of this change in the Release Notes .. not deprecation warning about the old filename.
I guess you just assume that we like a thrill to start our day when all of our pipelines are broken and we are facing a missed deadline as a result? This is sloppy and unacceptable.
System Information
sfdx-cli/7.118.1 linux-x64 node-v14.17.6
@oclif/plugin-autocomplete 0.3.0 (core)
@oclif/plugin-commands 1.3.0 (core)
@oclif/plugin-help 3.2.3 (core)
@oclif/plugin-not-found 1.2.4 (core)
@oclif/plugin-plugins 1.10.1 (core)
@oclif/plugin-update 1.4.0-3 (core)
@oclif/plugin-warn-if-update-available 1.7.0 (core)
@oclif/plugin-which 1.0.3 (core)
@salesforce/sfdx-plugin-lwc-test 0.1.7 (core)
alias 1.1.10 (core)
apex 0.2.8 (core)
auth 1.7.1 (core)
config 1.2.34 (core)
custom-metadata 1.0.12 (core)
data 0.6.1 (core)
generator 1.1.7 (core)
limits 1.2.1 (core)
org 1.7.0 (core)
salesforce-alm 52.3.3 (core)
schema 1.0.8 (core)
sfdx-cli 7.118.1 (core)
source 1.0.15 (core)
telemetry 1.2.3 (core)
templates 52.1.0 (core)
trust 1.0.5 (core)
user 1.4.0 (core)

Hi, sorry to hear that but, we warned users about the deprecation of the old filename a until Jan 11 when we removed the message in this (commit), though the functionality remained the same until now, the documentation you're linking says:

To add an entry to the allowlist, create a file named unsignedPluginAllowList.json at the correct location for your operating system...

We sorry for the inconvenience.


More info about params

Hi
anyone have more information about these three options:
quality, density as well as compression
What's the value range and how we should use it (not how to code, but in general)
Thanks

The density doesn't seem to do anything...

Hi @hilmanski
pdf2pic is using GraphicsMagick and passing those params. You can find more info about those params in their docs:

density
quality
compression

I will add those links to the README.


Ability to have a different backup schedule for standby production environments

We are seeing excess database load that is at least partially driven by the fact that both production environments are backing up the database every 6 hours.
There is no business need for this particular customer to backup the standby database, only the active database.
It would be handy to have the ability to define a backup schedule for active, and another for standby.

I think to help with implementation, rather than opening up backup patterns to Lagoon yaml - the standby environment could be treated as a non-prod and inherit the non-prod backup schedule.

technically, this isn't possible, as backup schedules are only generated on deploy. We could look at wiring more A/S tasks into dioscuiri.


Can't resize map window

https://i.imgur.com/6VeFH40.png
Playing in 1440p, running the latest version, not sure what other information I could provide that would be useful. Unsure if this is a feature or a bug, led to believe it's a bug from the image on the main page being far bigger than the one on my screen.
I can resize all other Hunt Helper windows normally by dragging the corner, however this one I cannot and the corner turns red.

Need to drag the corner of the map, not the options dropdown (you can click the cog wheel to hide the options menu).


test moving pkgs

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 94.11%. Comparing base (8f000b0) to head (e6d844c).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##           master      #37   +/-   ##
=======================================
  Coverage   94.11%   94.11%
=======================================
  Files           1        1
  Lines          85       85
=======================================
  Hits           80       80
  Misses          5        5

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add 'inputs' tool to print out all inputs for a set of targets

Per discussion on ninja-build, this change introduces a ninja tool to enumerate all inputs for a set of targets:
https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!topic/ninja-build/vPM6COsFslY
This works almost identically to the commands tool except that it gets the in_newline binding instead of evaluating a command.

Is this substantially different than https://github.com/ninja-build/ninja/pull/1711 ? If so, could you document pros and cons?

Is this substantially different than #1711 ? If so, could you document pros and cons?

Great question! The approach in that PR specifically tries to look for code files only. In my case, I look at all inputs that would be found via the commands tool. This'll include additional artifacts such as ".stamp" files.
For my change vs. the the one you mention:
Pros:

Less invasive. We never leave ninja.cc to introduce new hooks in other code. This mostly relies on existing code that figured out inputs already.
More complete. We're getting all inputs that the tooling found and will use to actually run a build. I've tested this in Chromium and I find I get more code files in my version.

Cons:

Potentially noisy if all someone wants are code files.

I can add this to the PR description if you'd like.

Hello!
Is there any chance to see either this or #1711 merged at some point?
This feature is would make the life of monorepos much, much easier (each test job could query ninja and intersect its inputs with the list of changed files to know whether it can skip this run).

Yes. I'm preferring this over #1711 as it's less invasive.

Whoops, misclicked


Add module graph analyser

This adds the first steps towards an integrated module hierarchy visualisation and right now provides a Graphviz representation as code in the web UI.
Before finally closing this PR I will add comments and docs once we agreed on the module structure.
The next steps will be:

[ ] Add (interactive) visualisation in web UI  (I would keep the code export as this allows users to include this in readmes, etc.)
[ ] Add more information about the modules to the graph
[ ] Further down the road: Add more exports such as Netjson.org

@stil4m I have added support for nodes with some basic styling and have addressed your comments. Feel free to review again.

I pushed the sigma commit on the wrong branch. Will remove it from this PR. Sorry.


Multiverse Enforce Fly Disabling Bypass Feature, instead of only force gamemode bypass.

Feature request
I am making this Feature request, because Ben told me within the Discord server that this would be a good idea to post here :)
Feature description

Right now, when giving people the permission "mv.bypass.gamemode." you are able to make people bypass Multiverse-Core setting/forcing someone to the gamemode that is setup within the config. However, when Multiverse is setting someone to Survival Mode, also his fly is disabled. The issue I have with a MiniGame is that spectators lose their fly when joining a game that is in a different world. This doesn't happen when giving this bypass permission but that is basically not what I want, I just want to bypass the lose of flight. So not the bypass of gamemode enforcing because people should still be set into survival mode.
So, my question is:
Is it possible to JUST bypass Multiverse removing FLIGHT in a certain world.
So for example a permission: "mv.bypass.flying.
This is different from the allowFlight configurable option by the way!
How the feature is useful

As actually already explained before, this can be useful for server owners that run different minigames in different worlds and who struggle with fly mode settings. For players this would mean more games and less struggle with flying mode and an overall more enjoyable gameplay! :D :D
Thank you so much in advance for your reply! I really enjoy Multiverse and I am using it already for more than 8 years for my own small community server. It never has let me down and it basically works like a charm ❤
Thanks for all the amazing years of development!
(P.S. What I basically would like to have can also be seen here, as is a snippet of code I found within the source code, haha.)

This is something I could really use as well.


ID problem, NameID is not shown when adding

Model:
public class Details
{
    public int Id { get; set; }
    public Guid GameId { get; set; }
    public string ShortDescription { get; set; } = string.Empty;                    // Krótki opis np do google, fejsa itp
    public string Description { get; set; } = string.Empty;                         // Opis gry
    public string Background { get; set; } = string.Empty;                          // Tło gry, jeżeli puste to nie ma tła
    public string Logo { get; set; } = string.Empty;                                // Logo gry
    public bool Nsfw { get; set; } = false;                                         // Dla dorosłych
    public int AverageGameTime { get; set; } = 0;                                   // Średni czas gry w godzinach
    public DateTime DateReleased { get; set; } = DateTime.MinValue;                 // Data publikacji
    public DateTime DateLastEdit { get; set; } = DateTime.Now;                      // Ostatnia edycja
    public DateTime DateCreate { get; set; } = DateTime.Now;                        // Data dodania
}

Panel:

As you can see above, there is no GameId column
I noticed this error when I wanted to enter GUID in the ID, but it turned out to be int and it won't work.
If I change GUID to relation, unfortunately there is a blank page.
Suggestion: you can add a tag to the model so that the textarea appears instead of input

Hello,
Can't reproduce this in the newest version (1.4.1-rc01). We have a Guid field in a model class and it has the corresponding text box in the Create or Edit dialog.
As for Id field. If it's auto-generated, then it's better to mark it as "Editable = false", so it will not be shown in the Create/Edit dialogs (and so, the UI will not require to enter its value).  In the feature versions we will try to turn "editable" off for such fields automatically. There is an issue about that (#96 ) already.

Now it works, a nice option would be if when adding / editing it would not sort alphabetically but as it is in the model. Often, important things are placed at the top and less at the bottom. Example:
    public int Id { get; set; }
    public Guid GameId { get; set; }

Is it possible to convert input to textarea?
For example, Description is a long text so it will be easier in a textarea.
Example:
[MetaEntity(Type = "textarea")]
public string Description { get; set; } = string.Empty;

Hello,
Yes, it is possible. You can do it in such a way:
   endpoints.MapEasyData((options) => {
      .     .    .   .     .    .
      options.UseModelTuner(model =>
      {
          var detailsDesc = model.FindEntityAttr("Details.Description");
          detailsDesc .DefaultEditor = new TextValueEditor($"TVE_MULTI_{categoryDesc.Id}")
          {
              Multiline = true
          };
   });

We will consider, how to make it easier to configure it

I guess adding something like Multiline = true for MetaEntityAttr annotation would be more convenient.

He also proposes adding support for this:
https://docs.microsoft.com/pl-pl/dotnet/api/system.componentmodel.dataannotations?view=net-6.0

Asp.net itself has input verification. You use this when creating models, and even when creating a migration, it creates column values in the database.

It better to create a separate issue for validators


Celery ignores schedule on close DB connection and restart

Currently I use a celery for manage some tasks and meet some strange behavior.
I use postgres DB and start restore db from dump. My restore script at first closes all db connections and than drop db, do restore, etc. So celery connection was also closed. after that I restarted celery and it start execute scheduled tasks with ignore currently used schedule. Is I'm do anything wrong? Is celery don't like this hard disconnects?
If I do simply celery restart it looks ok and all is good.
Any help please!

Database scheduler stores last execution time for each task in the database. When you restore the database, you get the last execution times that were at the moment of backup. I suppose, for some tasks enough time has passed between backup and restore that there is a "missed" execution. When you launch the scheduler, it sees that it's late and runs the task(s) right away.
If you want to avoid this, I guess you'd need to clear schedule from the database before running the scheduler.

Excellent! thanks for answer!


Kubeflow Slack link expired.

Hi, I will like to join the kubeflow community but it seems that the link provided has expired.

Hi, I would like to add a plus one to the above request. Can we get an updated invite link to the slack channel.

@casperyap @arshsidana98  Let's keep the discussion in one issue, find a temporary invite link here: https://github.com/kubeflow/website/issues/3252#issuecomment-1132410100
/close


docs: Vertical dividers doc update (Dropdown family)

Closes #3865
Figma Ref File

I have read the DCO document and I hereby sign the DCO.

recheck

I have read the DCO document and I hereby sign the DCO.

Hello Alina! Just a quick question: Will this image be updated after adding the divider?

Hello, no update on this image because its showing hover state interaction. I kept the number input docs for reference while mapping this one.

The divider may not be visible, but the spacing will still be adjusted accordingly.


.NET Core 3 doesn't pick up previous configuration file when upgrading from .NET Framework

General
I am currently migrating a .NET Framework console application to .NET Core 3. The current application uses C# configuration files for application and user settings. When running the .NET Core 3 application it doesn't pick up the previous configuration but instead creates a new empty one.
The configuration path uses the following information about the assembly to find corresponding config [c:\Documents and Settings]\[username]\[Local Settings]\Application Data\[companyname]\[appdomainname]_[eid]_[hash]\[version]. The hash should be used the actual filepath which should be the same. However the AppDomain friendly name was Application Name.exe but Application Name in .NET Core 3. This could be the main issue for picking up the configuration file. I can't find anyway to actually change the friendly name except changing the assembly name to be Application Name.exe, but then the output file will be Application Name.exe.exe and path will be wrong anyway (and output unacceptably ugly).
To be clear, the application usually used configuration files found in:
[...\Application Data\[companyname]\application_name_exe_[somehash]\[version]
.NET Core 3 create a configuration file in:
[...\Application Data\[companyname]\application_name_[otherhash]\[version]

This is a ClickOnce deployment?

This is not an ClickOnce deployment, just regular C# Console application.

What are you using for configuration?

Not exactly sure I understand the question but the system I am using comes from ApplicationSettingsBase and basically using the ApplicationName.Properties.Application.Default with values set in Properties/Application.settings and App.config.

Can you provide a sample project showing this? It's not clear from this info what the issue might be and this will help a lot. Thanks.

13 days no response. Closing.
@Pettor feel free to reopen if you have more info.


Add Helm to controller image

Issue #, if available:
Description of changes:
Add Helm to controller image
Testing (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


Provide a Backup/Restore Option

During multiple beta version upgrades I sometimes was able to upgrade by downloading the newer version  and restarting, while other times ) most recently going from beta 17 to beta 18) the upgrade would fail with the HA integration generating the error: "Failed to setup".  In testing I found that as long as the file smart_irrigation.storage from the previous version was present the HA integration install would fail, but if I first deleted the .storage file it would succeed, although doing so would cause all of my sensors and zones to be lost (reset to defaults).   It seems like some of these upgrades may have changed the schema and the previous versions .storage file was no longer compatible.
I'm not sure if this was only happening because of the numerous beta changes and won't be an issue moving forward, but if it can continue to happen it would be nice to have a feature where once everything is set up you could export your settings (mostly the sensors and zone info) to a config file and import them at a later time, either after a failed upgrade or just as an option to test different configurations.  The only thing that we wouldn't need to backup/restore would be any weather data.

Thanks, well actually this was caused by a lazy developer. Me. The storage file is actually migratable, is can upgrade itself but I never got that to work.

plan: implement this by bumping up a version artificially and comparing to the first beta. Take the diff and make sure that is handled.

Update from beta18 to beta 21 went without any issues here.


[New Feature]: Change icons of progress

🎮 feature Request
I would like to change the icon of progress section to a more appealing icon to enhance the UI of the webpage.

Point down the features
I am planning to give it a gradient which matches your theme

It will make the UI more attractive
Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

If you have any doubt you can directly send message on our discord (https://discord.gg/rZb46cCMmK), we have created seprate chennals for all projects...
Thank you :)


[Periscope] Account ripping falls back on generic (account dumping implimented?)

youtube-dl -v  https://www.periscope.tv/FetishDollEmily/
[debug] System config: []
[debug] User config: [u'--download-archive', u'~/.ytdlarchive', u'--retries', u'100', u'--no-overwrites', u'--call-home', u'--continue', u'--write-info-json', u'--write-description', u'--write-thumbnail', u'--write-annotations', u'--all-subs', u'--sub-format', u'srt', u'--convert-subs', u'srt', u'--write-sub', u'--add-metadata', u'-f', u'bestvideo+bestaudio/best', u'--merge-output-format', u'mkv', u'--prefer-ffmpeg', u'--embed-thumbnail']
[debug] Command-line args: [u'-v', u'https://www.periscope.tv/FetishDollEmily/']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2016.05.01
[debug] Python version 2.7.11+ - Linux-4.4.0-21-generic-x86_64-with-Ubuntu-16.04-xenial
[debug] exe versions: ffmpeg 2.8.6-1ubuntu2, ffprobe 2.8.6-1ubuntu2
[debug] Proxy map: {}
[debug] Public IP address: [REDACTED]
[generic] FetishDollEmily: Requesting header
WARNING: Falling back on generic information extractor.
[generic] FetishDollEmily: Downloading webpage
[generic] FetishDollEmily: Extracting information
ERROR: Unsupported URL: https://www.periscope.tv/FetishDollEmily/
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/generic.py", line 1393, in _real_extract
    doc = compat_etree_fromstring(webpage.encode('utf-8'))
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/compat.py", line 279, in compat_etree_fromstring
    doc = _XML(text, parser=etree.XMLParser(target=etree.TreeBuilder(element_factory=_element_factory)))
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/compat.py", line 268, in _XML
    parser.feed(text)
  File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1653, in feed
    self._raiseerror(v)
  File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1517, in _raiseerror
    raise err
ParseError: mismatched tag: line 1, column 11173
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/YoutubeDL.py", line 673, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 341, in extract
    return self._real_extract(url)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/generic.py", line 2063, in _real_extract
    raise UnsupportedError(url)
UnsupportedError: Unsupported URL: https://www.periscope.tv/FetishDollEmily/

Did you see videos on https://www.periscope.tv/FetishDollEmily/?

I can confirm the issue / feature-request.
It would be nice if youtube-dl https://periscope.tv/USERNAME would download all videos available for replay on the page. The only problem I see is what to do if there's a live broadcast too: maybe it should download the live broadcast and then the older videos replays, with an option to skip the live broadcast and only download the replays (in case the user is only interested in those).

@Vrihub Do you have an example?

@yan12125 Apologies, I was afraid this would happen. The nature of Periscope is they stay up for about 6 hours. I'd need to find a very active account to test against. After that it's simply a matter of doing the regex and editing the module for Periscope.

Does Periscope provide a list of users with videos in last 24 hrs?

@yan12125 "@jimmyfallon" on Periscope appears to be popular. Perhaps wait for him to make a broadcast? I'm trying to find someone with videos.

Take https://www.periscope.tv/LularoeHusbandMike for example, there are 5 videos. Is it your expectation?

@yan12125 yes

Thanks for all the information. Periscope user pages will be recognized in the next version.

Great feature, thanks!!!
Oh, and by the way, if there is a live broadcast going on and you are only interested in replays, remember you can skip downloading the live broadcast with: youtube-dl --playlist-start 2


x fmt doesn't format some code

While working on rustc I've noticed that x fmt doesn't format some obviously misformatted code.
Here is the code: https://github.com/rust-lang/rust/pull/92164#discussion_r773245118

Duplicate of #3863, closing accordingly.
Try splitting the "the #[rustc_must_implement_one_of] attribute must be used with at least 2 method names", string manually


Preact compatibility

How hard is it to make this plugin work with Preact?
@developit can you recommend a solution? I volunteer to make it work.

Hmm, actually this would almost already work out of the box with Preact. It's overriding createElement, which just has to get renamed to h(). Maybe the lib could export the patch method and users call it themselves?

Because Preact is not using synthetic events, overriding the native event object properties are not allowed:
Uncaught TypeError: Cannot assign to read only property 'type' of object '#<TouchEvent>'

We were able to fix this issue by just using the original fastclick. Since it's patching the native event listeners and Preact is using the native event system it works.

Nice, that seems reasonable.

There's also this naive implementation I threw together a while back, though react-fastclick is much better.
https://jsfiddle.net/developit/bx9vwxLt/

I don't have any experience with Preact, so I'm not sure how possible this would be. I could spend some time looking into it, though I think I'll run into issues pretty quickly if Preact does not use synthetic events.
Unless you are happy using the original fastclick? In which case, shall I close this issue?

Yes we switched to the original library. Thanks!


Type Mismatch Error

Getting issue while deploying contyract on flow PLAYGROUND
let ref = &self.ownedNFTs[id] as auth &NonFungibleToken
|                        ^^^^^^^^^^^^^^^^^^ expected NonFungibleToken, got `NonFungibleToken.NFT?

@MaxStalker Hi Max,
Getting issue while deploying contract on flow PLAYGROUND
let ref = &self.ownedNFTs[id] as auth &NonFungibleToken
| ^^^^^^^^^^^^^^^^^^ expected NonFungibleToken, got `NonFungibleToken.NFT?
Please do find the contract attached.The issue comes from line 55 and 59 of the contract
HolidaysNFT.txt
Please suggest a way to resolve the same

This looks like a bug in the contract, and is not related to the playground.
You can try something like let ref = (&self.ownedNFTs[id] as &NonFungibleToken.NFT?)!


Path in IcebergSource#findTable() could cause ambiguity

When using IcebergSource#getTable(), path is the key to identify table in Iceberg in findTable(). Currently, the table is identified based on whether "path" contains "/", as:
if (path.contains("/")) {
  // hadoop table
} else {
  // hive table
}

When using source like ”parquet", I could specify "path" as "test", and it is treated as a relative path to working directory. But when trying to specify "path" as "test" against Iceberg, it might cause ambiguity. Current logic treats it as a hive table, but actually I would like to have a hadoop table (with a relative path)

@rdblue Would you please share your opinions here at your mot convenience?

Would using ./test work to clarify?
I think that the current behavior is correct. Hive tables should be the default when there is a conflict because there are easy ways to modify the path to indicate a Hadoop table (like ./test).

Hi @rdblue, thanks for sharing your idea!
How about making it more strict: when the path prefixes with "/", "./", "../", or a hierarchical URI, it routes to Hadoop table, otherwise, it is routed to Hive table. Make sense to you? An initial PR is submitted as https://github.com/apache/incubator-iceberg/pull/719

Close this issue due to the discussion in PR #719


Build failed with an exception

I got the following error if i build my app:
android/app/build/intermediates/exploded-aar/com.github.afollestad.material-dialogs/core/8f8ab21/res/values-v11/values-v11.xml:17:54-92 : No resource found that matches the given name (at 'android:actionModeCloseDrawable' with value '@drawable/abc_ic_ab_back_mtrl_am_alpha').
:app:processDebugResources FAILED
FAILURE: Build failed with an exception.

Solved here https://github.com/aakashns/react-native-dialogs/pull/26

having the same issue! please accept this PR

Thanks @1ne8ight7even


Dual Ported DiagnoseMe!

This PR adds functionality to run DiagnoseMe as a web app in browser (hosted on local port) and in your desktop (run through electron). Here are the relevant changes and need-to-knows:
New Directories Inside of /DiagnoseMeApp you can now find subdirectories /DiagnoseMeDesktop and /DiagnoseMeWeb. The codebase across the two is relatively equal, just with changes to the bundling with webpack.config.js.
As a result of this, you will most likely need to run npm force -install in both directories since we don't track modules on git.
New Scripts Both apps can be run with the script npm start like before. There is also a npm run build command that is scripted for the web version, but I don't believe it is required to run it. The web app is hosted on port 3000. You still need to instantiate our flask server from main.py to run the backend component.
Cors/Backend Changes Since the web app runs on port 3000, javascript will automatically restrict access to other ports, which is why the API calls to OpenAI were being made but not received into the app. The workaround is called CORS, and it tells both Flask and the web app to expect communication between ports. You will need to run pip install flask-cors as a result.
We still need to resolve the problem of making changes to files. We can discuss this Friday if you want, but I suggest we stick to updating one of the apps and we can recopy files to the other port, while keeping our backend dual functional.
Closes #88
Closes #98 im coming for your job max

I've heard of CORS before. Great job Joseph, easy to ready and understand. lgtm!


Quality check tool fe

Hey Team here is Eslint + Prettier I added to our project, pls check

Why so many changes? this pr looks weird


Build And Deploy: ERR! code ELIFECYCLE

Saw this yesterday at BUILD and excited to try this out!
Running into a Build and Deploy error specific to React - btw, if this repo is the right place for it, I'll delete it from there and "move" it here.
TLDR; everything works locally (dev and build), but fails on react-scripts-build- or at least that's what I think based on log output.
Aside from the posted React package versions, my local environment is on Node v14.2.0 - and looking at the logger, Oryx is on v12.16.3. Unsure if that matters, just providing as much info as I can...

Solved here


ANSI escape codes are considered part of the string length

Using colors or other special escape characters makes the row width thinner than it should

This has been fixed here: https://github.com/visionmedia/terminal-table/pull/11
BTW: I think monkey-patching String#to_s produces a hell lot of more problems than it fixes.

Fixed in #11.


[SPARK-31532][SPARK-31234][SQL][2.4][FOLLOWUP] Use lowercases for GLOBAL_TEMP_DATABASE config in SparkSessionBuilderSuite

What changes were proposed in this pull request?

This PR intends to fix test code for using lowercases for the GLOBAL_TEMP_DATABASE config in SparkSessionBuilderSuite. The handling of the config is different between branch-3.0+ and branch-2.4. In branch-3.0+, Spark always lowercases a value in the config, so I think we had better always use lowercases for it in the test.
This comes from the @dongjoon-hyun
comment: https://github.com/apache/spark/pull/28316#issuecomment-619303160
Why are the changes needed?

To fix the test failure in branch-2.4.
Does this PR introduce any user-facing change?

No.
How was this patch tested?

Fixed the test.

cc: @dongjoon-hyun @cloud-fan @yaooqinn

Test build #121794 has started for PR 28339 at commit 959c8a4.

Thank you, @maropu !

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26471/
Test PASSed.

Thanks for the quick response, @dongjoon-hyun !

Test build #121794 has finished for PR 28339 at commit 959c8a4.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121794/
Test FAILed.


Apply pedantic.

Handled here: https://github.com/dart-lang/googleapis/commit/1707063e5b9445a495f948192f8d72f9c8d4dd63

Handled here: https://github.com/dart-lang/googleapis/commit/1707063e5b9445a495f948192f8d72f9c8d4dd63


Unable to log into WhatsApp Beta account

Hi there
Thanks for this great app
I am unable to log into from a Beta account with the new multi-device support enabled.
When I scan the barcode it immediately switches to the reloading circle and the primary phone says scan barcode again.
Any help?

Hello,
are you able to login at web.whatsapp.com? If yes, please try to clear appdata of whatsapp web to go, this will force the reload of web.whatsapp.com internally

I use the official Windows client without any problem
Okay let me try that out

Hi there
The issue was the wifi network.
Sorry for the trouble.
Keep up the great work!

I'm experiencing exactly the same issue as the one described by @ronz91.  Both with 1.7.2 and 1.7.1.
In my case however WiFi is not at fault.
When accessing web.whatsapp.com in Firefox on the second device, at first the reloading circle appears along with the request to scan the barcode again on the primary device, but then immediately afterwards on the second device a new QR code appears, the reading of which successfully completing the login.
In the app the reloading circle continues to spin and a second QR code never appears. So, I guess this ticket needs to be reopened.

@dadandalive
pls check/report the following things:

phone android version
phone model
if webview is up to date (https://play.google.com/store/apps/details?id=com.google.android.webview)
does the app have the storage permission?

if webview is up to date (https://play.google.com/store/apps/details?id=com.google.android.webview)
Ouch, the version was ancient (55.0.2883.91). I have now updated it to the latest version (99.0.4844.88) and login works!

You may -again, sorry- close this ticket.
Thanks for your rapid reaction and help!

thanks for the feedback! glad it works now


[wip] Fix: updates kong to 0.10.4 from 0.9.5

mvp to get the api-gateway project building again

[x] double check kong-nginx config for any elife-specific settings that may have been missed
[x] change the gpg key from an always-fetch to fetch-once. their server's slowness to reply just broke a build
[x] ensure old ppa is absent

cc @giorgiosironi

ppa has changed location and no longer serves up anything younger than 0.10.3
add api endpoint has changed, with at least two properties being shortened
kong nginx config is now split over two files, with one including the other.

The elife mega hack has been preserved but I'm uncertain if we had introduced any other changes. I'll go back through that file's commit history and see what I can see.

Needs a ton of testing I think. The ultimate one will be api-gateway--end2end which will be using a replica of the configuration from prod.

grr. I've been confusing 'api-gateway' and 'data-pipeline' all day. I was merrily running hightstate again and again with no errors "well, it must be fine": git push.

so if I'm reading the errors correctly, the build can't be built because the original has failing states?
the 'fresh' stack (which I thought built a stack from scratch from the PR) doesn't look like it's using the new states I've added, like remove-old-kong-ppa.

With the old ppa long gone I'm attempting to get the build working again in another branch

wooooooooooooooooo green

I'm still working on this, I share your concerns about this being a big upgrade and more testing is necessary. I want to get more familiar with the large config file changes because the next step, obviously, is to upgrade it again from 0.10.4 to 1.0.x

just went through the big config file change. the content is essentially the same, the Kong guys have removed a level of nesting but that's about it. There have been a few tweaks to the lua code, but we don't rely on that. the elife mega-hack is still in place

Could not resolve host: bintray.com

there is even a DOD in this ticket because they this host is kinda flaky. investigating ...

Alright how do we best test this ... ? on continuumtest?
I'm working on the next major version bump here: https://github.com/elifesciences/api-gateway-formula/pull/11
We could wait until Kong is completely upgraded before deploying on to continuumtest.

After applying to api-gateway--end2end, running https://alfred.elifesciences.org/job/test-elife-spectrum/ will provide lots of coverage.

I've disabled the daily system update on api-gateway--end2end until we've got end2end fixed

The more I re-learn kong the more I think the mega-hack may not be working.
So, setup and configuration all looks correct, highstate completes fine, but requests for resources via the api result in the {"message":"No API key found in request"}. Looking at the megahack, I'm wondering if it's getting skipped somehow. This $ curl -i localhost:8000/articles?Authorization=public gives me a new error that indicates it go past the api key block:
HTTP/1.1 503 Service Unavailable: Back-end server is at capacity
Date: Mon, 04 Mar 2019 06:20:25 GMT
Content-Type: text/plain; charset=UTF-8
Content-Length: 0
Connection: keep-alive
Access-Control-Allow-Origin: *
Vary: Authorization
X-Kong-Upstream-Latency: 6
X-Kong-Proxy-Latency: 0
Via: kong/0.10.4

reading the docs: https://docs.konghq.com/0.10.x/configuration/#custom-nginx-configuration
and looking at the file that was supposedly copied to /usr/local/kong/nginx-kong.conf , I see no evidence of the megahack. Investigating ...

alright, this PR fixes the issue locally on vagrant:
https://github.com/elifesciences/api-gateway-formula/pull/12

curl -i localhost:8000/articles?Authorization=public

Authorization is a request header, but perhaps it gets turned into a query string parameter along the way.

single failure

04:14:11  + SPECTRUM_ENVIRONMENT=end2end SPECTRUM_TIMEOUT=120 /srv/elife-spectrum/execute-simplest-possible-test.sh

Only one test was run, it gets executed as a guinea pig before going for the full test suite.

The PR doesn't seem to have changed the behavior, will investigate and revert if no good fix is found.

However, after restarting the instance, it does seem to allow the curl request (200 OK and good body). So it may be an issue of not restarting Kong for that change.

./execute-simplest-possible-test.sh passes now, executing https://alfred.elifesciences.org/job/test-elife-spectrum/299/console

Exploratory testing the various plugins with no surprises, I am missing the rate limiting one as that only triggers when the page is greater than 21.

https://alfred.elifesciences.org/job/test-elife-spectrum/300/consoleFull is green again. I'd leave it to you to propagate to all environments in case there are manual steps involved, but at least all deploys are unblocked.

So it may be an issue of not restarting Kong for that change.

quite likely, I was up quite late beating this thing into shape and was just using service kong stop a lot. I'll take a look at the triggers and introduce them to the 0.11.x upgrade if necessary

I'd leave it to you to propagate to all environments in case there are manual steps involved

:(  well, I guess if I'm going to break api-gateway--prod, it's best to do it when everybody is sleeping

[X] api-gateway--continuumtest updated

I am getting an infinitely scrolling
handler.lua:53: [file-log] failed to open the file: Permission denied, context: ngx.timer, client: <IP_ADDRESS>, server: <IP_ADDRESS>:8000
in /usr/local/kong/logs/error.log, investigating ...


Magicleap demo

This PR adds a magicleap demo to PF3.

This demo disables jemalloc, I should find out how to re-enable it.

Rebased, and added the demo launcher.

Rebased and merged in #133.

Yay!

Merged as part of #133.


Failing to build libfuzzer-sys with sanitizers

Whenever I run  ./run-fuzzer.sh, I get a build failure compiling libfuzzer-sys:
 Compiling libfuzzer-sys v0.1.0 (https://github.com/rust-fuzz/libfuzzer-sys.git#bcaa8e1c)
error: failed to run custom build command for `libfuzzer-sys v0.1.0 (https://github.com/rust-fuzz/libfuzzer-sys.git#bcaa8e1c)`
process didn't exit successfully: `/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-b832cf5e294bfa00/build-script-build` (exit code: 1)
--- stderr
==17280==LeakSanitizer has encountered a fatal error.
==17280==HINT: For debugging, try setting environment variable LSAN_OPTIONS=verbosity=1:log_threads=1
==17280==HINT: LeakSanitizer does not work under ptrace (strace, gdb, etc)

 Full build log with LSAN_OPTIONS=verbosity=1:log_threads=1
   Compiling libfuzzer-sys v0.1.0 (https://github.com/rust-fuzz/libfuzzer-sys.git#bcaa8e1c)
error: failed to run custom build command for `libfuzzer-sys v0.1.0 (https://github.com/rust-fuzz/libfuzzer-sys.git#bcaa8e1c)`
process didn't exit successfully: `/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-b832cf5e294bfa00/build-script-build` (exit code: 1)
--- stdout
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerTraceState.o" "-c" "llvm/lib/Fuzzer/FuzzerTraceState.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtilPosix.o" "-c" "llvm/lib/Fuzzer/FuzzerUtilPosix.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtil.o" "-c" "llvm/lib/Fuzzer/FuzzerUtil.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerCrossOver.o" "-c" "llvm/lib/Fuzzer/FuzzerCrossOver.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerExtFunctionsDlsymWin.o" "-c" "llvm/lib/Fuzzer/FuzzerExtFunctionsDlsymWin.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtilLinux.o" "-c" "llvm/lib/Fuzzer/FuzzerUtilLinux.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerShmemWindows.o" "-c" "llvm/lib/Fuzzer/FuzzerShmemWindows.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerShmemPosix.o" "-c" "llvm/lib/Fuzzer/FuzzerShmemPosix.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerIO.o" "-c" "llvm/lib/Fuzzer/FuzzerIO.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerMutate.o" "-c" "llvm/lib/Fuzzer/FuzzerMutate.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtilDarwin.o" "-c" "llvm/lib/Fuzzer/FuzzerUtilDarwin.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerIOWindows.o" "-c" "llvm/lib/Fuzzer/FuzzerIOWindows.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerExtFunctionsWeakAlias.o" "-c" "llvm/lib/Fuzzer/FuzzerExtFunctionsWeakAlias.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerIOPosix.o" "-c" "llvm/lib/Fuzzer/FuzzerIOPosix.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerLoop.o" "-c" "llvm/lib/Fuzzer/FuzzerLoop.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerDriver.o" "-c" "llvm/lib/Fuzzer/FuzzerDriver.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerSHA1.o" "-c" "llvm/lib/Fuzzer/FuzzerSHA1.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerExtFunctionsWeak.o" "-c" "llvm/lib/Fuzzer/FuzzerExtFunctionsWeak.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerExtFunctionsDlsym.o" "-c" "llvm/lib/Fuzzer/FuzzerExtFunctionsDlsym.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtilWindows.o" "-c" "llvm/lib/Fuzzer/FuzzerUtilWindows.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerMerge.o" "-c" "llvm/lib/Fuzzer/FuzzerMerge.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerTracePC.o" "-c" "llvm/lib/Fuzzer/FuzzerTracePC.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerMain.o" "-c" "llvm/lib/Fuzzer/FuzzerMain.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
AR_x86_64-unknown-linux-gnu = None
AR_x86_64_unknown_linux_gnu = None
HOST_AR = None
AR = None
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
running: "ar" "crs" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/libfuzzer.a" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerTraceState.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtilPosix.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtil.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerCrossOver.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerExtFunctionsDlsymWin.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtilLinux.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerShmemWindows.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerShmemPosix.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerIO.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerMutate.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtilDarwin.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerIOWindows.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerExtFunctionsWeakAlias.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerIOPosix.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerLoop.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerDriver.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerSHA1.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerExtFunctionsWeak.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerExtFunctionsDlsym.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtilWindows.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerMerge.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerTracePC.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerMain.o"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
cargo:rustc-link-lib=static=fuzzer
cargo:rustc-link-search=native=/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out
TARGET = Some("x86_64-unknown-linux-gnu")
cargo:rustc-link-lib=stdc++

--- stderr
==17280==AddressSanitizer: failed to intercept '__isoc99_printf'
==17280==AddressSanitizer: failed to intercept '__isoc99_sprintf'
==17280==AddressSanitizer: failed to intercept '__isoc99_snprintf'
==17280==AddressSanitizer: failed to intercept '__isoc99_fprintf'
==17280==AddressSanitizer: failed to intercept '__isoc99_vprintf'
==17280==AddressSanitizer: failed to intercept '__isoc99_vsprintf'
==17280==AddressSanitizer: failed to intercept '__isoc99_vsnprintf'
==17280==AddressSanitizer: failed to intercept '__isoc99_vfprintf'
==17280==AddressSanitizer: failed to intercept '__cxa_throw'
==17280==AddressSanitizer: libc interceptors initialized
|| `[0x10007fff8000, 0x7fffffffffff]` || HighMem    ||
|| `[0x02008fff7000, 0x10007fff7fff]` || HighShadow ||
|| `[0x00008fff7000, 0x02008fff6fff]` || ShadowGap  ||
|| `[0x00007fff8000, 0x00008fff6fff]` || LowShadow  ||
|| `[0x000000000000, 0x00007fff7fff]` || LowMem     ||
MemToShadow(shadow): 0x00008fff7000 0x000091ff6dff 0x004091ff6e00 0x02008fff6fff
redzone=16
max_redzone=2048
quarantine_size_mb=256M
thread_local_quarantine_size_kb=1024K
malloc_context_size=30
SHADOW_SCALE: 3
SHADOW_GRANULARITY: 8
SHADOW_OFFSET: 0x7fff8000
==17280==Installed the sigaction for signal 11
==17280==Installed the sigaction for signal 7
==17280==Installed the sigaction for signal 8
==17280==T0: stack [0x7ffd5c1aa000,0x7ffd5c9aa000) size 0x800000; local=0x7ffd5c9a7fe0
==17280==LeakSanitizer: Dynamic linker not found.

Hm... so after some digging, it looks like this is just https://github.com/rust-fuzz/cargo-fuzz/issues/11


Multiple server?

I have prod and develop servers, current prod have nginx-proxy-automation working well and i would like to publish develop versions with other domains but i have only one public IP. can this app generate certs and redirect traffic to other servers?, can i create manual entries on reverse proxy ?

For example /etc/nginx/conf.d/default.conf add custom entry but maybe it will be overwrite  and not sure how to generate the certificate.


Async for-in loop question

I'm not sure if this is an issue or not. At least the behavior of the following Dart program looks strange for me.
import "dart:async";

Stream<int> generator() async* {
  for (int i = 1; i < 5; i++)
    yield i;
}

main() async {
  StreamController sc = StreamController();
  Stream<int> stream = generator();
  sc.addStream(stream);

  await for(var i in sc.stream) {
    print(i);
  }
  print("Now we are here!"); // this part is not executed!
  throw Exception("Bomb!!!");
}

This program prints 1 - 4 and finishes. I do understand why code after await for(...) {...} is not executed. Stream, controlled by StreamController, is not closed and await for waits for it. If we want this code to be executed we should change the program to be like the following
import "dart:async";

Stream<int> generator() async* {
  for (int i = 1; i < 5; i++)
    yield i;
}

main() async {
  StreamController sc = StreamController();
  Stream<int> stream = generator();
  sc.addStream(stream).then((_) async {
    print("IsClosed: ${sc.isClosed}");
    sc.add(42);
    await Future.delayed(Duration(milliseconds: 100));
    sc.close();
    print("Closed");
  });
  await for(var i in sc.stream) {
    print(i);
  }
  print("Now we are here!");
  //throw Exception("Bomb!!!");
}

The program above prints
1
2
3
4
IsClosed: false
42
Closed
Now we are here!

This is Ok, but what is not clear for me is why the first version of the program successfully finishes? I'd expect it to hung, endlessly waiting for the new events from a stream which is not closed. But instead of this it successfully finishes with exit code 0. Why?
Tested on Dart SDK version: 2.19.0-13.0.dev (dev) (Tue Jul 19 17:04:51 2022 -0700) on "windows_x64"

I think there's no problem. The situation is similar to the following, and the point is that it is possible for an asynchronous Dart program to have computations that are not complete because they are waiting for something. But there is no more work to do, and hence it is guaranteed that they won't ever proceed.
import 'dart:async';

void main() async {
  Completer<void> completer = Completer();
  print('Started!');
  await completer.future; // Will never be completed.
  print("Not reached, no problem!");
}

As @eernstg says, the first example is a classical example of a stuck/deadlocked asynchronous program.
The await for waits for the stream to close. The stream does not close. So the await for never completes.
The program stops doing things, because there is nothing left to do, and that's the definition of a program terminating.
It just exits, like any other program which has no scheduled events or timers or open ports, and no code running. Nothing is happening, and nothing can ever happen again, so the main isolate terminates.
The await for looks like straight-line code, but it's actually based on callbacks, and if that callback is never invoked, nobody will complain.
It is rather surprising, though, and it has been suggested before that keeping the isolate alive, with an option to see it hanging at the await for in the debugger, would be better than just silently terminating without even running finally blocks.
This is basically a duplicate of https://github.com/dart-lang/sdk/issues/24895. which itself refers to the general issue https://github.com/dart-lang/sdk/issues/23797.


Prohibit conversion from Variable to Python scalar in fusion

Reported at https://github.com/cupy/cupy/issues/7878.
This PR fixes to raise TypeError when trying to cast _VariableProxy.

/test mini


Node 0.10.33

I did also another change to the code, which adds support for older node.
Do you need it? It uglifies the code a bit and adds dependency to Promise library

I was planning to move forward an update code at least to Node.js v4.2.2 (Long Term Support) which have bunch of ES6 features.
Is there any problems to upgrade Node.js to latest LTS version on personal\production server?

No worries, I can keep it in my repo. I'm just using hosting which only supports Node 0.10.33 at the moment, it's easier for me to modify few lines of code, than migrate to another hosting.


I'm trying to write a tcp proxy that accepting connection from client and proxy it to another server. The proxy should:

proxy data between client and server.
relay FIN received from client to server and vice versa.
close both legs of connection once RST been received from either client or server.

What did you see happen?
I can send FIN by calling conn.CloseWrite() but I can't distinguish half-closed from closed tcp connection using conn.Read. All I got is io.EOF, I need to know whether it's half-closed or not so I can make decision to call conn.CloseWrite() or conn.Close().
Reading the source code indicate that the information is lost in src/runtime/netpoll_epoll.go: netpoll which checked syscall.EPOLLRDHUP with a bunch of other flags
What did you expect to see?
Able to wait for half-close and close event for tcp connection

Go can only expose the information that the kernel exposes.  Does the Linux kernel have a way to distinguish a half-closed connection from a closed one?

Yes, epoll_wait() has a flag EPOLLRDHUP to signal that connection been half-closed. If both side called shutdown(SHUT_WR) then epoll_wait() will return with EPOLLHUP. If RST been received at any time then epoll_wait() will return with EPOLLERR.

Please note that when your peer closes their socket, their kernel may send FIN or RST, depending on whether there is any data in their receive buffer at that point.
If the peer sends FIN, your read will receive io.EOF, and thus this case is indistinguishable from if they call shutdown(SHUT_WR). If the peer sends RST, your read will instead receive syscall.ECONNRESET (i.e., "connection reset by peer").

In general, it is not possible to know whether the remote peer has closed or-half closed the connection. This is not because the kernel wouldn't expose such information, it is more fundamental. TCP doesn't have a signal for "full close". In TCP, a peer only signals that it has finished sending.
The following is a network capture of a Linux 6.8.3 host (<IP_ADDRESS>) closing a connection. The closing packet sequence is identical whether a program calls TCPConn.Close (close), it calls TCPConn.CloseWrite (shutdown(SHUT_WR)), and even when the process is killed. A single FIN packet is sent by the host that closes the connection in all three cases.
21:37:56.449578 IP <IP_ADDRESS>.43562 > <IP_ADDRESS>.7878: Flags [S], seq<PHONE_NUMBER>, win 32120, options [mss 1460,sackOK,TS val<PHONE_NUMBER> ecr 0,nop,wscale 7], length 0
21:37:56.449632 IP <IP_ADDRESS>.7878 > <IP_ADDRESS>.43562: Flags [S.], seq<PHONE_NUMBER>, ack<PHONE_NUMBER>, win 31856, options [mss 1460,sackOK,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>,nop,wscale 7], length 0
21:37:56.449663 IP <IP_ADDRESS>.43562 > <IP_ADDRESS>.7878: Flags [.], ack 1, win 251, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
21:38:10.462390 IP <IP_ADDRESS>.7878 > <IP_ADDRESS>.43562: Flags [F.], seq 1, ack 1, win 249, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
21:38:10.462690 IP <IP_ADDRESS>.43562 > <IP_ADDRESS>.7878: Flags [.], ack 2, win 251, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0

So, even if the remote peer (<IP_ADDRESS>) has "full-closed" or even if the application has exited completely, the host <IP_ADDRESS> only knows that the remote peer has finished writing. The application running on <IP_ADDRESS> may still write to the socket without error (but if say the app has exited, this will trigger a RST and after receiving that, the next write will produce an error.)
Also, note that calling TCPConn.CloseRead, does not trigger sending a single packet.
So, I would say that this is not an issue with Go, but a feature of TCP.
Suggested approach to fix your issue: Call your proxy P, and the peers A and B: A <-> P <-> B. When P reads EOF from A (connA), call connB.CloseWrite to half-close the connection with B. Continuing copying data from connB to connA. Upon reading EOF from connB, call connA.CloseWrite. For each connection, keep track of whether the other end has closed (EOF received) and whether you have closed (CloseWrite called). When both have closed, call Close.

Here's an implementation of @antong's suggestion:
func proxy(aConn, bConn net.Conn) {
        var wg sync.WaitGroup
        wg.Add(2)

        go func() {
                io.Copy(aConn, bConn) // Proxy data from B to A until EOF received
                aConn.CloseWrite()    // Proxy FIN from B to A
                wg.Done()
        }()
        go func() {
                io.Copy(bConn, aConn) // Proxy data from A to B until EOF received
                bConn.CloseWrite()    // Proxy FIN from A to B
                wg.Done()
        }()
        wg.Wait()
        aConn.Close()
        bConn.Close()
}

Unfortunately, it's prone to resource leaks.  Let's say the connection to B is fully closed.  The first goroutine will terminate, but the second goroutine will only terminate if it receives data from A (because it will try writing it to B and get an EPIPE error).  If it never receives data from A, it will never try writing to B so it will never terminate.
To fix this, you can use poll to monitor bConn for POLLHUP, which fires after a RST is received (which can happen in response to keepalives).  After getting POLLHUP you interrupt the io.Copy by calling CloseRead:
func proxy(aConn, bConn net.TCPConn) {
        var wg sync.WaitGroup
        wg.Add(4)

        go func() {
                io.Copy(aConn, bConn) // Proxy data from B to A until EOF received
                aConn.CloseWrite()    // Proxy FIN from B to A
                wg.Done()
        }()
        go func() {
                io.Copy(bConn, aConn) // Proxy data from A to B until EOF received
                bConn.CloseWrite()    // Proxy FIN from A to B
                wg.Done()
        }()
        go func() {
                waitForHup(bConn)
                aConn.CloseRead() // Cause io.Copy(bConn, aConn) to return
                wg.Done()
        }()
        go func() {
                waitForHup(aConn)
                bConn.CloseRead() // Cause io.Copy(aConn, bConn) to return
                wg.Done()
        }()
        wg.Wait()
        aConn.Close()
        bConn.Close()
}
func waitForHup(conn net.Conn) error {
        syscallConn, err := conn.(syscall.Conn).SyscallConn()
        if err != nil {
                return err
        }
        var pollErr error
        if err := syscallConn.Control(func(fd uintptr) {
                for {
                        pfds := []unix.PollFd{{
                                Fd: int32(fd),
                        }}
                        if _, err := unix.Poll(pfds, -1); err == nil {
                                return
                        } else if !errors.Is(err, unix.EINTR) {
                                pollErr = err
                                return
                        }
                }
        }); err != nil {
                return err
        }
        return pollErr
}

I've successfully used this technique to write proxies in C that handle full and half closes transparently.  Unfortunately, in Go, calling unix.Poll ties up an operating system thread.  It would be nice if we could use netpoll for this.  Even better would be a function that works like io.Copy (e.g. net.Copy) that returns when the destination connection is no longer writable (as indicated by POLLHUP).

Well for the example case to be a resource leak, A needs to neither read  nor write forever. To handle such misbehaving peers, you need timeouts anyway.

The problem is once FIN been received and conn.Read() returned with io.EOF, golang unable to detect RST from this point on.
As a proxy the use case is:

client send request to proxy
proxy relay the request which takes a long time to process to backend server
client send FIN to proxy to signal that there are no more requests
proxy relay the FIN to backend server
client send RST to proxy
proxy should relay the RST to backend server so it can stop processing previous request immediately

Currently there is no way to relay the RST to backend server in this case, and backend server is wasting resource to processing request which is no longer needed.

What else is needed? The use case is explained in https://github.com/golang/go/issues/67337#issuecomment-2129194981 and the possibility of implementation in https://github.com/golang/go/issues/67337#issuecomment-2109343626


Do you plan to update hls.js version to the latest?

The latest version of hls.js is v0.7.4, videojs5-hlsjs-source-handler uses its v0.5.5.

Hey @mahmutbayri,
We are currently looking deeply into<EMAIL_ADDRESS>to  avoid compatibility issues. It should be done in the next few days if everything goes well.

Done :) https://github.com/streamroot/videojs5-hlsjs-source-handler/blob/master/package.json#L18


Redirect loop in the browser

Core Library
MSAL.js (@azure/msal-browser)
Core Library Version
2.34.0
Wrapper Library
MSAL Angular (@azure/msal-angular)
Wrapper Library Version
2.5.4
Public or Confidential Client?
Public
Description
After the user successfully goes through the sign in flow provided by Azure AD B2C, they are supposed to be brought to their account page "http://localhost:4200/home". The issue is that the page constantly reloads itself, switching between the localhost:4200/home URL and another URL that looks like this: "http://localhost:4200/#state=eyJp ... ".
My suspicion is that the error lies with the apiScope used (see Relevant Code Snippets). Before we switched from Azure AD to Azure AD B2C, the apiScope looked like this:
const apiScope = api://${process.env['NX_HOST']}/${process.env['NX_AUTH_CLIENT_ID']}/access_as_user;
This was an exposed scope in our Azure AD. I exposed a scope called access_as_user in the new Azure AD B2C tenant as well, but when I use that for apiScope, I get this error:
"ERROR ServerError: invalid_request: AADB2C90117: The scope 'api://localhost:3000/[B2C tenant client id]/access_as_user' provided in the request is not supported."
So, we have been using this instead (which I believe is causing the redirect loop issue):
const apiScope = https://example.onmicrosoft.com/${process.env['NX_AUTH_CLIENT_ID']}/access_as_user;
Any help as to how to fix this redirect loop would be greatly appreciated.
MSAL Configuration
MsalModule.forRoot(
      new PublicClientApplication({
        auth: {
          clientId: process.env['NX_AUTH_CLIENT_ID']!,
          authority: 'https://example.b2clogin.com/example.onmicrosoft.com/B2C_1_SignInSignUpFlow',
          redirectUri: 'http://localhost:4200/home',
          knownAuthorities: ["example.b2clogin.com"],
        },
        cache: {
          cacheLocation: 'localStorage',
          storeAuthStateInCookie: false,
        },
      }),
      {
        interactionType: InteractionType.Redirect,
        authRequest: {
          scopes: [
            'openid',
          ],
        }
      },
      {
        interactionType: InteractionType.Redirect,
        protectedResourceMap,
      }
    ),

Relevant Code Snippets
const apiBaseUrl = `https://${process.env['NX_API_HOST']}`;
const apiScope = `https://example.onmicrosoft.com/${process.env['NX_AUTH_CLIENT_ID']}/access_as_user`;
const apiPaths = [
  'billing/license',
  'billing/activate',
  'billing/resolve',
  'usagerecord',
];
const protectedResourceMap = new Map<string, Array<string>>();
protectedResourceMap.set("https://graph.microsoft.com/v1.0/me", [
  'openid'
]);
apiPaths.forEach((a) =>
  protectedResourceMap.set(`${apiBaseUrl}/${a}`, [apiScope])
);

Identity Provider
Azure B2C Basic Policy
Source
External (Customer)

@Staisha-N Why do you think the new scope is causing the loop? Do we have any MSAL JS logs or a server trace you can share? Logging instructions can be found here


add possibility to set shell per user/group

Hi Team,
It would be wonderful if it's possible, in addition of the default shell for all user, to be able to set a specific shell for a user or a group of user ?
Do you think it's feasible?
Thanks a lot

This feature exists in the enterprise solution. Within the cell provisioning, the home directory and shell can be configured for any user.


gRPC ServerCallContext Deadline received on a server differs from the one sent by a client via CallOptions

What version of gRPC and what language are you using?
dotnet 2.32.0
What operating system (Linux, Windows,...) and version?
macOS Catalina 10.15.6
What runtime / compiler are you using (e.g. python version or version of gcc)
dotnet core 3.1.402
What did you do?
Set a Deadline on the client call, read the Deadline on the server.
What did you expect to see?
I expect the ServerCallContext Deadline to be the same value as Deadline set via CallOptions.
What did you see instead?
I see the Deadline differs by a fraction of a second.
Anything else we should know about your project / environment?
When making a call from a client, I am setting a Deadline. When receiving a call on a server, I am reading what the Deadline is. To my surprise, the deadline value is not the same, it differs by a fraction of a second.
gRPC docs say that a Deadline is a fixed point in time. So I would expect to receive the same value on the server, but that is not the case.
I can see it mentioned a rounding of 100ns, but in my case it is much more.
May it account for flight time? I cannot find such logic and that would violate the notion of a fixed point in time.
Is there a bug in converting between gRPC internal Timespec and c# DateTime in the gRPC source code?
Sample (pseudo) code:
// client:

var serviceClient = new ServiceClient(new Channel("address", "port", ChannelCredentials.Insecure));
var deadline = DateTime.UtcNow;
Console.WriteLine(deadline.ToString("O"));
serviceClient.SendAsync(request, new CallOptions(null, deadline));

// server:

public override async Task Send(SendRequest request, ServerCallContext context)
{
    Console.WriteLine(context.Deadline.ToString("O"));
}

Console output is:
2020-09-22T14:14:20.8359860Z for client
2020-09-22T14:14:21.2910442Z for server

This is not a bug. It has already been answered here: https://stackoverflow.com/questions/64011613/why-does-a-grpc-deadline-received-on-a-server-differs-from-the-one-sent-by-a-cli


How to parameterized the OpenAI's system message?

I want to change the chatbot role or other chatbot aspects by using the OpenAI's "system message". Could you help me to change the standard system message?

I won't be able to help you with this.
You may refer to this
https://openai.com/blog/customizing-gpt-3


Handle multi-port services

@jwforres @liggitt please review. Thanks!

@jwforres  do you know how headless services appear in the API? Do they show up with "0" internal ports, or missing port definitions?

@smarterclayton do you have example JSON for a headless service

PortalIP: "None"

@spadgett it will just fallback to saying IP: None which is fine for the describer.  You do need to handle when there aren't any ports it should say Ports: None
Need to handle both these cases (no portal ip and no ports) in the various places in the origin UI as well.

@jwforres @liggitt I think that's everything... Please review.

@spadgett forgot to mention you should go ahead and bump the version number in the bower.json to 0.0.10 https://github.com/kubernetes-ui/object-describer/blob/master/bower.json#L3

LGTM


Enforcing a coding standard

I think that enforcing a coding standard would benefit this project by bringing consistency and readability of the project.
I believe using a syntax enforcer such as XO or even custom ESLint settings would bring consistency to the scripts before pull requests. Another option would simply be to use a syntax formatted such as Prettier to format all code when building. It would also help readability since newlines etc. would be formalised.
For example, var is usually discouraged when writing ES6. When only one parameter is used in an arrow function, it is sometimes recommended to be written as x => f(x) and not (x) => f(x) etc.
The simplest option is using a formatter, since it would only need a change in builder.js and won’t require contributors to follow the wanted format. XO or ESLint however would rather aid the contributors to follow a certain format and perhaps teach them a thing or two about following a coding standard.
Are these thoughts solely my own or is this something that others think would help the project?

I also feel that the project as a whole would benefit from something like this. I am not particularly sure how to get the formatter up and running, but I'll check it out. In the meantime, I will try to write a rough sketch of the guidelines in CONTRIBUTING.md, so that contributors can read through them before submitting PRs.
Right now the amount of PRs is pretty low, so I can polish them up myself (along with existing snippets). Hopefully, future PRs will follow the styleguide that will be written soon.

Yes right said @Chalarangelo .

Main focus will be on arrow functions, const keyword and using spread operators(...).

Likewise use .map() instead of forEach()

I think Prettier is the way to go. That way you can pretty much add a step in the builder where you extract the code from the readme, run Prettier on it and put it in the finalised output. It would take care of everything without you needing to take time to specify any rules. You could even add a step to format each pull request automatically if needed.

Prettier is used mainly for project based repos. Here we only describe one liner or few liner snippet. So it would be unsuitable to use for smaller format code. Atlast it's everyone's decision.

@AlexGustafsson after I deal with the PRs that are currently pending and a few other things, I will write proper guidelines for contributors, as they are necessary. When I get the time, I will look into Prettier, as it sounds like a good tool to automate the process, but I have no experience with it whatsoever. If anyone has the know-how and time to get it started, I will gladly maintain it, but right now I barely have the time to finish up the PRs and what the community has asked in the last day. Hopefully, things will quiet down later and I will be able to work on this.

@Chalarangelo Maybe we could use ESLint. ESLint with configuration from Airbnb for example. Here is their style guide: airbnb javascript style guide
It would keep code style consistent within the whole project.

@fejes713 I will dive in and see what I can do, I like this idea, as the Airbnb style guide is pretty good.

@Chalarangelo If the help is needed I am more than ready to collaborate. I've played with ESLint last few weeks and it works perfectly. Good thing is that you can also override the Airbnb's style guide to your needs.

@fejes713 I would love some help with this, mainly:

Update the builder script to figure out where the snippet is and send it to ESLint.
Make sure the snippet that comes out runs properly (we have to set up testing now, don't we?).
Give me the gist of how to configure ESLint to do my/our bidding, so that we can setup proper guidelines.

I will get started on the styleguide etc. and update CONTRIBUTING.md in the next few hours (I have to add samples for each functions first, as requested in #24) and then I will write a short and clear set of guidelines on how snippets should be formatted, so we can setup the rules in ESLint.

The only problem I see with this is that everyone is submitting .md files. As far as I know, ESLint does not work with .md files. ESLint checks JavaScript code based on given rules.
In order to install it:
$ npm install eslint --save-dev
then run the following from working directory:
eslint --init
It will create .eslintrc file for you where you can specify the rules you want to use. The rules can be found here: docs
You can also then add "extends": "airbnb-base" to the .eslintrc file to make it use Airbnb's style guide.

I suppose I should write a quick and dirty extractor package to grab the js snippet from the markdown files and pop it into ESLint.

@Chalarangelo No need really, it’s basically a one liner extracting content between the first and last occurance of three ticks (`)

@AlexGustafsson  Indeed, I have a tendency to onverthink things.
Won't ESLint slow down the build process significantly if we have to reevaluate every snippet individually? Also, can it be called from the build script with some text input and return the output? Examples appreciated, if anyone knows how to do this.

@Chalarangelo your comment reminded me of this project: https://github.com/Rich-Harris/lit-node which could be interesting when used with this guide!

@antony Interesting, I'll check it out!

@meetzaveri why do you say to use .map() instead of .forEach()? Both of them have very different use cases and performance

@skatcat31 Here there will be more use of Array data structure. So likely the devs will use map() before forEach(). This might not be a good argument but makes sense when application is few liner snippets.

@meetzaveri I second this. It’s easy to forget about the functional aspect of JavaScript and roll with for-loops. Map, reduce, filter etc. makes the code more readable and displays a better use of modern language features than forEach in this particular case.

Array.forEach is a function? Or am I missing what you're trying to present in your response?
For loops should be avoided I agree. They should only be used in functions that would want such behavior. Most of these will not be those.

Guys I am not saying that we should forget pure vanilla js approach, but thing is this repo is mainly for few liner snippet so the methods like Map, reduce, filter, sort, etc. makes more precise and readable. It would be beneficial when someone is refactoring their codebase which makes bloated and will use these type of methods.

@meetzaveri I'm guessing I missed something. So for calrity, are you talking about:
[1,2].map(console.log) // use this
[1,2].forEach(console.log) // over this

or
// avoid this
var a = [1,2];
for(let i = 0; i < a.length; i++){ console.log(a[i]) } // including for...in variant

If it's the latter I totally agree. If it's the forms, forEach came about very close to the same time as .map IIRC( NodeJS first supported them both in the 4 branch[ignoring odd versions]), and both have different use cases and scenarios. It may be best to highlight the fact that in a functional capable langauge using the right tool for the right job is a good practice since not all applications can use general use cases(will rarely come up).
Really this is just for my own clarificaiton, I'm not saying it's wrong, I'm just curious if it's because in most cases it would never matter(I come from a world where it can very greatly matter)

Good catch though and also came to know this fact map() IIRC( NodeJS first supported them both in the 4 branch[ignoring odd versions]) .

Hey guys! Please join us on gitter to discuss this further, before I start writing the guidelines.

I just updated CONTRIBUTING.md with some easy-to-follow guidelines for contributors and a modified and condensed styleguide, based on the Airbnb Javascript Styleguide. I'll close the issue, but feel free to comment, open PRs etc.