Can't run dist task.

I downloaded this boilerplate and modified a couple thing (removed the renderJSX from the webpack config, render the component directly in the body, etc.). And now I'm trying tp run npm run dist and i get an error.
ERROR in ./demo/App.jsx
Module parse failed: /Users/rparent/Documents/CTSProjects/cem/modules/boilerplate/demo/App.jsx Line 2: Unexpected token
You may need an appropriate loader to handle this file type.
|
| import React from 'react';
| import Fork from 'react-ghfork';
| import pkgInfo from '../package.json';
 @ ./src/index.js 3:13-39

And this is the content of the App.jsx file.
import React from 'react';
import Fork from 'react-ghfork';
import pkgInfo from '../package.json';

export default class App extends React.Component {
  render() {
    return (

This is some text

    );
  }
}

I'm not familiar with webpack and npm scripts yet so this might a really small thing somewhere that I forgot.
I can provide more code if you want.
Thanks :smiley:

Yeah, a GitHub project would be ideal. I can have a look at this tomorrow.

Perfect!
I just pushed everything on github, here's the link.

Well I think I found out why, I'm trying to require my component in the src/index.js  and it doesn't like that. What I want to do eventually is to push this component on NPM to be used within other projects. Any quick ideas on how to do that?

Would var Component = require('../Component'); kind of import work? The current expects to find the file from the same directory. Just a quick guess.
Alternatively you could try to develop it below src/ directly (or rename?). I'm not entirely sure what splitting it up between src and component achieves.

I was working with the same structures that you have, with demo and src. I'll try that.

So yeah this is working, it runs npm run dist without errors.
Another of my concerns is that I can't seem to be able to import css into Component.jsx, the import only works in the component/index.js file. Since I want to export the component has a complete standalone module I want it to work directly in the Component.jsx.
Do you have an idea on how I should modify this to make it work?

CSS handling is somewhat problematic at the moment. There isn't single right way to handle it. Just see the Styling React chapter of my book to get some idea.
Bundling the style to dist might be a little problematic as we cannot make any assumptions about how our packages are consumed. This is the reason why I like to include a sample CSS file to the project root. You can then import that through Webpack at least if nothing else.
Of course I'm willing to improve the setup if a better solution comes along. For now dealing with styling is a bit messy.

Ok perfect, thank you for your time this is really appreciated!
I will go css file at the project root because that seems to be the most logic way to go for now.

Alright, enjoy. :+1:


Top nav-bar is occupying exta length

the top navigation bar (highlighted in red) is taking exta height. However its working fine in small size(col-xs-* and col-sm-*).If i resize it from css Pierce (name on right side of nav-bar) hides. I have spent four hours but cannot figure out why its not working properly.

Please all resources correctly first. By not loading the resources correctly, the layout is prone to multiple types of errors. Make sure the images exist and are reachable by the browser. If the issue persists with all resources loaded correctly, please let us know.

Problem was solved. Thanks.


delete PublisherClientTest

This is replaced by PublisherTest.
Eventually, we'll want to rename PublisherTest to PublisherClientTest,
so that PublisherImplTest and be renamed PublisherTest.
There will not be a quiz on renaming history.

LGTM

Coverage increased (+0.2%) to 83.358% when pulling 4cf4a22dfe3ca0a5db0b967bdc0584fe730d2cc7 on pongad:rm-test into d70aaf7f9818167effba713468babe9e65d3f442 on GoogleCloudPlatform:pubsub-hp.

Coverage decreased (-0.005%) to 83.153% when pulling 4cf4a22dfe3ca0a5db0b967bdc0584fe730d2cc7 on pongad:rm-test into d70aaf7f9818167effba713468babe9e65d3f442 on GoogleCloudPlatform:pubsub-hp.


Remove version: DeaDBeeF.DeaDBeeF version 1.8.7

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

Close with reason: Removal appears to be automated and in error;


Revert "Revert "Fix: DP-1612, DP-1613, DP-1614""

Reverts Sunbird-Ed/program-service#130

Duplicate


Support for sip.

Right now with the sdp gateway you can't use sip since the traffic is natted on the other side.
What can be done is the following in the iptables rules:
-A POSTROUTING -o ens192 -p udp --dport 5060 -j ACCEPT
-A POSTROUTING -o ens192 -j MASQUERADE
-A FORWARD -i ens192 -o wg0 -p udp --dport 5060 -j ACCEPT
-A FORWARD -i ens192 -o wg0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wg0 -o ens192 -j ACCEPT

This has been added in the client


ValueError: axes don't match array only for ouster lidar

It's my 2nd time to show this error which occurs only using ouster lidar. kitti dataset where used velodyne lidar and others are working well. however i have ouster lidar and i tried to use darpa SubT dataset but still same issue because of ouster lidar.
after training custom dataset using Ouster OS1-64E Lidar have got follwoing error when i run
run_rosnode.py --checkpoint /home/arkin/DeLORA/checkpoints/small_epoch_75.pth --dataset darpa --lidar_topic="/os_cloud_node/points" --lidar_frame="os_lidar"
`[ERROR] [1642642253.397553]: bad callback: <bound method OdometryPublisher.subscriber_callback of <ros_utils.odometry_publisher.OdometryPublisher object at 0x7f5404141040>>
Traceback (most recent call last):
File "/opt/ros/noetic/lib/python3/dist-packages/rospy/topics.py", line 750, in _invoke_callback
cb(msg)
File "/home/arkin/DeLORA/src/ros_utils/odometry_publisher.py", line 188, in subscriber_callback
self.point_cloud_t = torch.from_numpy(self.filter_scans(point_cloud_t_numpy))
File "/home/arkin/DeLORA/src/ros_utils/odometry_publisher.py", line 93, in filter_scans
scan = np.transpose(scan, (2, 1, 0))
File "<array_function internals>", line 5, in transpose
File "/home/arkin/anaconda3/envs/DeLORA-py3.9/lib/python3.9/site-packages/numpy/core/fromnumeric.py", line 658, in transpose
return _wrapfunc(a, 'transpose', axes)
File "/home/arkin/anaconda3/envs/DeLORA-py3.9/lib/python3.9/site-packages/numpy/core/fromnumeric.py", line 58, in _wrapfunc
return bound(*args, **kwds)
ValueError: axes don't match array
`
Looking forward to ur feedback.
Thanks

Hi @arkinrc ,
Sorry for not replying you earlier, I was super busy with deadlines and stuff and lost track of this repository.
Did you sort out the issues you had with Ouster sensor? Was this the reason why you closed the Issue?
For sure I will provide support for the darpa dataset with the ouster sensor,  but if you have custom datasets I could also try to have a look.
Sorry again!
Best,
Julian

@nubertj  Thanks for your feedback. i tried with Darpa Subt challange dataset link given in this repository and custom dataset as well but both cases was facing the same issue as mentioned in question. now, Yes i solved this issue by down sampling of ouster dataset using pcl and used voxel filter and reconvert it into rosmsg type . however, i don't know whether its correct one or not. if you have different idea please let me know. Thanks....

Dear Arkin,
I will try to run the dataset later and see.
I always used it, so I am a bit surprised. I will keep you updated.
Best,
Julian


[MOD TRANSLATION]: SPANISH Translation for "Advanced Flow Management"

SPANISH Translation for "Advanced Flow Management"
.- edubistkrank -.
AdvancedFlowManagement_es.zip

Added in v<IP_ADDRESS>, thank you for your help!


Image.netwrok not loading images

I am using image.network to load image, in android and ios emulator is working fine, but using real android device not showing most of the images

Hi @areejmayadeh ,
can you please provide your flutter doctor -v and a minimal complete code sample to reproduce the problem?

@VladyslavBondarenko `[✓] Flutter (Channel beta, v1.14.6, on Mac OS X 10.14.5 18F132, locale en-SA)
• Flutter version 1.14.6 at /Users/apple/Downloads/flutter
• Framework revision fabeb2a16f (6 weeks ago), 2020-01-28 07:56:51 -0800
• Engine revision c4229bfbba
• Dart version 2.8.0 (build 2.8.0-dev.5.0 fc3af737c7)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at /Users/apple/Library/Android/sdk
• Android NDK location not configured (optional; useful for native profiling
support)
• Platform android-28, build-tools 28.0.3
• Java binary at: /Applications/Android
Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build
1.8.0_202-release-1483-b49-5587405)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 11.3.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 11.3.1, Build version 11C504
• CocoaPods version 1.8.4
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 3.5)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 42.1.1
• Dart plugin version 191.8593
• Java version OpenJDK Runtime Environment (build
1.8.0_202-release-1483-b49-5587405)
[✓] Connected device (3 available)
• MAR LX1M   • SBX4C19318004779 • android-arm64  • Android 9 (API 28)
• Chrome     • chrome           • web-javascript • Google Chrome
80.0.3987.132
• Web Server • web-server       • web-javascript • Flutter Tools`
My code Container(       margin: EdgeInsets.all(8.0),       child: Card(         shape: RoundedRectangleBorder(         borderRadius: BorderRadius.all(Radius.circular(8.0))),         child: InkWell(           onTap: () => navigatToView(context),           child: Column(             crossAxisAlignment: CrossAxisAlignment.stretch,             children: <Widget>[               ClipRRect(                 borderRadius: BorderRadius.only(                   topLeft: Radius.circular(8.0),                   topRight: Radius.circular(8.0),                 ),                 child: Image.network(imageUrl,                     width: 160, height: 200, fit: BoxFit.fill),               ),                  Padding(                 padding: const EdgeInsets.all(15.0),                 child: Column(                   crossAxisAlignment: CrossAxisAlignment.end,                   children: <Widget>[                     Text(                       subCategory,                       style: TextStyle(                         fontFamily: 'NotoKufiArabic',                         fontSize: 12,                         color: Color.fromRGBO(153, 153, 153, 1)                        ),                     ),                     Text(                       title,                       textAlign: TextAlign.right,                       maxLines: 1,                       overflow: TextOverflow.ellipsis,                       style: TextStyle(                         fontFamily: 'NotoKufiArabic',                         fontWeight: FontWeight.bold,                         fontSize: 14,                         color: Color.fromRGBO(69, 69, 81, 1)                        ),                     ),                     Padding(                       padding: const EdgeInsets.fromLTRB(0, 10, 0, 10),                       child: Text(                         brief,                         textAlign: TextAlign.right,                         maxLines: 2,                         overflow: TextOverflow.ellipsis,                         style: TextStyle(                           fontFamily: 'NotoKufiArabic',                           fontSize: 12,                           color: Color.fromRGBO(0, 0, 0, 1)                          ),                       ),                     )                   ],                 ),               )             ],         ),       )))

Did you add internet permission to your AndroidManifest?

On Thu, Mar 12, 2020 at 18:06 Cristian Zazo<EMAIL_ADDRESS>wrote:

Did you add internet permission to your AndroidManifest?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/52466#issuecomment-598271824,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHKSKT3EEBXN77AYS3JSUEDRHECBRANCNFSM4LGMHKVA
.

Yes i did

@areejmayadeh
Are you experiencing this with different devices?
Are the not loaded images specific images? or can they be loaded once and not loaded with another attempt?

Yes it happens with android and ios, some images never load , and some load
once and when i re install it not loaded
On Thu, Mar 12, 2020 at 18:25 Vladyslav Bondarenko<EMAIL_ADDRESS>wrote:

@areejmayadeh https://github.com/areejmayadeh
Are you experiencing this with different devices?
Are the not loaded images specific images? or can they be loaded once and
not loaded with another attempt?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/52466#issuecomment-598281589,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHKSKT63CM6ZHKNYR47P3HTRHEEILANCNFSM4LGMHKVA
.

@areejmayadeh
Can you provide examples of them?

Hi @areejmayadeh
Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore
reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any
more information for us; we will reopen it right away!
Thanks for your contribution.

Hi, I need to review my code with an experienced developer in flutter, can
you help me ?
On Fri, 3 Apr 2020 at 12:05, Taha Tesser<EMAIL_ADDRESS>wrote:

Closed #52466 https://github.com/flutter/flutter/issues/52466.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/52466#event-3195515738, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AHKSKT5AI6NXI4GMW7ESJ43RKWRF5ANCNFSM4LGMHKVA
.

Hi @areejmayadeh
are you experiencing the issue with the current beta Flutter (Channel beta, v1.15.17)?
Please keep your code minimal and reproducible, as now it's not usable to reproduce the issue.
Does this code represent the issue you are describing?
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) => MaterialApp(
    home: MyHomePage(),
  );
}

class MyHomePage extends StatelessWidget {

  static const String _imageUrl =
    'https://flutter.dev/assets/flutter-lockup-c13da9c9303e26b8d5fc208d2a1fa20c1ef47eb021ecadf27046dea04c0cebf6.png';

  @override
  Widget build(BuildContext context) => Scaffold(
      body: Center(
        child: Image.network(_imageUrl),
  ),);
}

Thank you

Hi @areejmayadeh
are you experiencing the issue with the current beta Flutter (Channel beta, v1.15.17)?
Please keep your code minimal and reproducible, as now it's not usable to reproduce the issue.
Does this code represent the issue you are describing?
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) => MaterialApp(
    home: MyHomePage(),
  );
}

class MyHomePage extends StatelessWidget {

  static const String _imageUrl =
    'https://flutter.dev/assets/flutter-lockup-c13da9c9303e26b8d5fc208d2a1fa20c1ef47eb021ecadf27046dea04c0cebf6.png';

  @override
  Widget build(BuildContext context) => Scaffold(
      body: Center(
        child: Image.network(_imageUrl),
  ),);
}

Thank you

@iapicca The issue was happening with certain images and now is working fine.
What I need now is not related to this issue. I want to review all my code to see if I can do somethings better

Hi again @areejmayadeh
the issue might not depend from flutter itself could you please provide
some image url sample to reproduce the issue?
thank you

Hi @areejmayadeh
Without additional information, we are unfortunately not sure how to resolve this issue. We are
therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the
bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.


Sorting & Filtering: Expose Methods to Replace ItemsSource

Thanks for the fantastic control!
Is your feature request related to a problem? Please describe.
Sometimes there are too many items to render in the table.
To work around this, I restrict the number of items shown in the table (apply my own default filtering & sorting, then use sourceCollection.Take(100).
However, this means that the table's sorting and filtering functions aren't helpful in many cases because the intention is to filter the entire item source. Sorting and filtering through the table's functionality only applies to the shown items (the top 100, in this case).
Describe the solution you'd like
A way to filter and sort the entire source collection from the table without needing to write additional filters above the table that manually replace the table's ItemSource.
Describe alternatives you've considered
I looked through the source code to see if there were any events raised on filtering or sorting that I could hook into.
My idea was to provide custom sorting and filtering functions and then replace the table's ItemSource with those filtered items.
However, if these events are exposed in a way that they can be hooked into, I couldn't figure it out.

@TPCharts thank you for your proposal.
I believe providing custom sorting would not be as difficult as implementing custom filtering. Custom filtering could be a challenging task because it would involve filter flyout events and items manipulation. if you have any suggestions how it can be implemented, feel free to share 🙂


[DAPHNE-#501] Additional sparse matrix representations: CSC, MCSR, MCSC

This pull request implements additional sparse matrix representations. So far, Daphne supported DenseMatrix, and CSR (Compressed Sparse Row). This pull request adds CSC (Compressed Sparse Column), MCSR (Modified Compressed Sparse Row), and MCSC (Modified Compressed Sparse Column) and the following kernels for CSC and MCSR: EwUnaryMat, EwBinaryMat, AggCol, AggRow, and Transpose (10 in total).
Details:

New matrix representations:
- CSCMatrix.h: src/runtime/local/datastructures/CSCMatrix.h
-  MCSCMatrix.h: src/runtime/local/datastructures/MCSCMatrix.h
- MCSRMatrix.h: src/runtime/local/datastructures/MCSRMatrix.h

New Kernels for CSC and MCSR:
-  src/runtime/local/kernels/EwUnaryMat.h
- src/runtime/local/kernels/EwBinaryMat.h
- src/runtime/local/kernels/AggCol.h
- src/runtime/local/kernels/AggRow.h
- src/runtime/local/kernels/Transpose.h

Tests:
- test/runtime/local/datastructures/CSCMatrixTest.cpp
- test/runtime/local/datastructures/MCSCMatrixTest.cpp
- test/runtime/local/datastructures/MCSRMatrixTest.cpp
- test/runtime/local/kernels/EwUnaryMatTest.cpp
- test/runtime/local/kernels/EwBinaryMatTest.cpp
- test/runtime/local/kernels/AggColTest.cpp
- test/runtime/local/kernels/AggRowTest.cpp
- test/runtime/local/kernels/TransposeTest.cpp

Thanks for this contribution @ReneEnjilian! A greater variety of sparse matrix representations is very welcome in DAPHNE. These representations can be more suitable in terms of memory footprint and/or processing time in certain cases.
The two of us have already discussed this matter and I will provide some feedback on your code soon.


Implementation of fuzzy logic in Matlab

We ask that you please be patient as our team works through approving and publishing all articles/tutorials in a timely manner. Allow 1-3 days for a topic to be reviewed and/or approved - allow 3-7 days for an articles to be reviewed and/or published.
Be sure to visit our Resources Page for tools, resources, and example articles to go over.
NOTE: (Please ensure that you have only one open issue + linked pull request at a time. This will ensure that we complete the article in a timely manner from inception to publishing.)
NOTE: We tend to stray away or tend not to publish reviews/comparisons of commercial product offerings.
We're looking for the first 2-3 paragraphs of the article that appropriately summarize what your article will be about.
Implementation of fuzzy logic in Matlab
Introduction:
Fuzzy logic is a way to model logic reasoning where the truth of the statement is not binary true or false but its is a degree of truth that ranges from zero to one. In this case, zero is referred to as absolutely false while one is the absolutely true. This fuzzy logic can be used to model the fuzzy inference system which is a function that maps the input to the set of output which uses the human-interpretable rules more than extract mathematics. These types of applications are mostly used in control systems applications in which the reference and the inputs are fed in and using the set of rules based on fuzzy logic, actuating signals are produced.
Generally, fuzzy Logic are not control systems but can be used in any set of applications that requires decisions. For example, it can be used in a banking system that decides the risk of lending a loan to a person based on the personal and financial information. In this article, we will look on how to apply this in Matlab using the fuzzy logic toolbox in Matlab
Key takeaways:

Understanding the fuzzy logic.
Implementing the fuzzy logic in Matlab.
Applications of fuzzy logic.

References:
Please list links to any published content/research that you intend to use to support/guide this article.
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

Great topic 🚀@collince777 , make sure it matches the following:

Adds value beyond what is in the official docs and what is covered in other blog sites.
To avoid any potential article closure, it should not overlap with any existing EngEd articles or incoming topic suggestions.

Please reference any relevant EngEd articles in yours and build a unique project - Approved.


How do we use parent variables in loop?

I want the following code show "connected" in all lines:
        {{#partial switch-list}}

 before loop: {{ .connected? 'connected...': 'disconnected...' }}

          {{#my_list}}

 looping: {{ .connected? 'connected...': 'disconnected...' }}

          {{/my_list}}
        {{/partial}}

Usage:
  {{>switch-list {my_list: ["hello", "world"], connected: true}}}

Displays:
before loop: connected...
looping: disconnected...
looping: disconnected...

Here is the JSFiddle page
How can I use parent variable in loops?

You just need to go up a level:
{{#partial switch-list}}

 before loop: {{ .connected? 'connected...': 'disconnected...' }}

  {{#my_list}}

 looping: {{ ../connected? 'connected...': 'disconnected...' }}

  {{/my_list}}
{{/partial}}

Not working. Would you mind editing the JSFiddle page: http://jsfiddle.net/fvxmxh03/1/

As long as you don't have a property of the same name in the current scope, Ractive's natural "scope climbing" will work. Since my_list doesn't contain objects which have a property of connected, Ractive will look for it in the ancestor objects, until it can't find any on data.
This should work just fine:
{{#partial switch-list}}

 before loop: {{ connected? 'connected...': 'disconnected...' }}

    {{#my_list}}

 looping: {{ connected? 'connected...': 'disconnected...' }}

    {{/my_list}}
{{/partial}}

Thank you!

For the ancestor reference, you actually need two steps, since the first refers explicitly to the list object. So ../length is the list length and ../../connected is connected on the list's parent.

Yeah, @evs-chris is right. I haven't used Ractive in awhile, I forget things like this :confounded:


Update MetPy Case Study to use MetPy v1.0 API and features

As revealed by this StackOverflow question the MetPy Case Study workshop notebook uses out-of-date API for mpcalc.advection (like https://github.com/Unidata/python-training/issues/125), but also has a now-horrifying amount of boiler-plate code for things cleaned up with xarray handling in v1.0. So, I think this notebook could use a good update or overhaul!
xref (for other updates I could find in issue tracker): https://github.com/Unidata/python-training/issues/44, https://github.com/Unidata/python-training/issues/81

I also found this to be the case (at least with regards to using the outdated Metpy Calc API) in the Frontogenesis example https://unidata.github.io/python-training/gallery/850hpa_frontogenesis/


Split Chunks optimisation breaks web workers

Bug report

What is the current behavior?
When you turn on the split chunks optimisation, workers which are created from a worker script are not able to receive and possibly send messages. Removing the split chunks optimisation from the webpack config restores the functionality however common dependencies will be included in both scripts.
If the current behavior is a bug, please provide the steps to reproduce.
Create a webpack config which uses the splitChunk optimisation
Have 2 output files generated, 1 to be used as a worker script, another which has the same dependencies so the common dependencies are split out.
In another module, create a web worker from the worker script.
Additional Info
I'm creating the the worker in a different package.
E.g. Module A has the sendData function below which uses the outputted worker.min.js from module B to created the web worker
Module A
  async sendData(data) {

    let worker = new Worker(new URL('second-mod/dist/umd/worker.min.js', import.meta.url));

    return new Promise(function (resolve, reject) {
        worker.onmessage = function (event) {
        if (event.data != null && event.data.error) {
          reject(event.data.error);
        } else if (event.data != null) {
          resolve(event.data);
        }
        worker.terminate();
      };

      worker.onerror = function (error) {
        reject(error);
        worker.terminate();
      };

      worker.postMessage(data);
    });
  }

Module B
webpack config
{
      name: 'base',
      plugins: [new NodePolyfillPlugin()],
      module: {
        rules: [
          // Process JS with Babel.
          {
            test: /\.(js|jsx|mjs)$/,
            loader: require.resolve('babel-loader')
          }
        ]
      },
      optimization: {
        minimize: true,
        minimizer: [new TerserPlugin({
          extractComments: false,
        })],
        splitChunks: {
          chunks: 'all',
        }
      },
    },
    {
      name: 'prod',
      mode: 'production',
      entry: {
        worker: { import: './src/worker.js', filename: './umd/worker.min.js' },
        main: { import: './src/index.js', filename: './umd/main.min.js', library: {
          name: 'examplelib',
          type: 'umd'
        } },
      }
    }

which are combined using webpack --config-name base --config-name prod --merge
worker.js
self.onmessage = function (event) {
  console.log('got message')
}

What is the expected behavior?
The web workers should be able to receive messages and execute the relevant code. Both generated scripts should be smaller as their common dependencies are separated.

Other relevant information:
webpack version:  5.70.0
Node.js version: v12.22.3
Operating System: macos monterey
Additional tools: React

Could you provide full reproducible repo (as small as possible), from your description it is unclear..

I've created the repo
https://github.com/danielannan17/webpack-recreate/tree/main

you don't need to bundle worker first. In webpack@5 you can (and should) use
 new Worker(new URL('<esm worker script>', import.meta.url))

webpack will add <esm worker script> as a separate entry point and bundle it.


TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'

Traceback (most recent call last):
File "/home/luhao/orpo/2bit-qz.py", line 1, in
from hqq.core.quantize import *
File "/root/anaconda3/envs/train/lib/python3.9/site-packages/hqq/core/quantize.py", line 8, in
from .utils import is_divisible
File "/root/anaconda3/envs/train/lib/python3.9/site-packages/hqq/core/utils.py", line 18, in
tensor: torch.Tensor, num_rows: int, dtype: torch.dtype | None = None
TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'

Ok,I need python>=3.10.


add libgpiod with tools to example image

Since Linux kernel version 4.8 gpios can be controlled via an chardev interface, see here: https://embeddedbits.org/new-linux-kernel-gpio-user-space-interface/
I was able to install libgpiod from apt, but this seems to be build without the tools.
So I was able to install libgpiod from source https://github.com/brgl/libgpiod/tree/v0.1.x with version v0.1.x (as the version installed as binary from apt with standard sources).
Needed to install autoconf autoconf-archive libtool but then it worked.
I see a lot of pins, but only some of them are named. Would it be possible to name them in future releases?
Here is the output I get:
root@iot2050-debian:~# gpioinfo
gpiochip6 - 4 lines:
	line   0:      unnamed       unused   input  active-high
	line   1:      unnamed       unused   input  active-high
	line   2:      unnamed       unused   input  active-high
	line   3:      unnamed       unused   input  active-high
gpiochip5 - 90 lines:
	line   0:      unnamed       unused   input  active-high
	line   1:      unnamed       unused   input  active-high
	line   2:      unnamed       unused   input  active-high
	line   3:      unnamed       unused   input  active-high
	line   4:      unnamed       unused   input  active-high
	line   5:      unnamed       unused   input  active-high
	line   6:      unnamed       unused   input  active-high
	line   7:      unnamed       unused   input  active-high
	line   8:      unnamed       unused   input  active-high
	line   9:      unnamed       unused   input  active-high
	line  10:      unnamed       unused   input  active-high
	line  11:      unnamed       unused   input  active-high
	line  12:      unnamed       unused   input  active-high
	line  13:      unnamed       unused   input  active-high
	line  14:      unnamed       unused   input  active-high
	line  15:      unnamed       unused   input  active-high
	line  16:      unnamed       unused   input  active-high
	line  17:      unnamed       unused   input  active-high
	line  18:      unnamed       unused   input  active-high
	line  19:      unnamed       unused   input  active-high
	line  20:      unnamed       unused   input  active-high
	line  21:      unnamed       unused   input  active-high
	line  22:      unnamed       unused   input  active-high
	line  23:      unnamed       unused   input  active-high
	line  24:      unnamed       unused   input  active-high
	line  25:      unnamed       unused   input  active-high
	line  26:      unnamed       unused   input  active-high
	line  27:      unnamed       unused   input  active-high
	line  28:      unnamed       unused   input  active-high
	line  29:      unnamed       unused   input  active-high
	line  30:      unnamed       unused   input  active-high
	line  31:      unnamed       unused   input  active-high
	line  32:      unnamed       unused   input  active-high
	line  33:      unnamed       unused   input  active-high
	line  34:      unnamed       unused   input  active-high
	line  35:      unnamed       unused   input  active-high
	line  36:      unnamed       unused   input  active-high
	line  37:      unnamed       unused   input  active-high
	line  38:      unnamed       unused   input  active-high
	line  39:      unnamed       unused   input  active-high
	line  40:      unnamed       unused   input  active-high
	line  41:      unnamed       unused   input  active-high
	line  42:      unnamed       unused   input  active-high
	line  43:      unnamed       unused   input  active-high
	line  44:      unnamed       unused   input  active-high
	line  45:      unnamed       unused   input  active-high
	line  46:      unnamed       unused   input  active-high
	line  47:      unnamed       unused   input  active-high
	line  48:      unnamed       unused   input  active-high
	line  49:      unnamed       unused   input  active-high
	line  50:      unnamed       unused   input  active-high
	line  51:      unnamed       unused   input  active-high
	line  52:      unnamed       unused   input  active-high
	line  53:      unnamed       unused   input  active-high
	line  54:      unnamed       unused   input  active-high
	line  55:      unnamed       unused   input  active-high
	line  56:      unnamed       unused   input  active-high
	line  57:      unnamed       unused   input  active-high
	line  58:      unnamed       unused   input  active-high
	line  59:      unnamed       unused   input  active-high
	line  60:      unnamed       unused   input  active-high
	line  61:      unnamed       unused   input  active-high
	line  62:      unnamed       unused   input  active-high
	line  63:      unnamed       unused   input  active-high
	line  64:      unnamed       unused   input  active-high
	line  65:      unnamed       unused   input  active-high
	line  66:      unnamed       unused   input  active-high
	line  67:      unnamed       unused   input  active-high
	line  68:      unnamed       unused   input  active-high
	line  69:      unnamed       unused   input  active-high
	line  70:      unnamed       unused   input  active-high
	line  71:      unnamed       unused   input  active-high
	line  72:      unnamed       unused   input  active-high
	line  73:      unnamed       unused   input  active-high
	line  74:      unnamed       unused   input  active-high
	line  75:      unnamed       unused   input  active-high
	line  76:      unnamed       unused   input  active-high
	line  77:      unnamed       unused   input  active-high
	line  78:      unnamed       unused   input  active-high
	line  79:      unnamed       unused   input  active-high
	line  80:      unnamed       unused   input  active-high
	line  81:      unnamed       unused   input  active-high
	line  82:      unnamed       unused   input  active-high
	line  83:      unnamed       unused   input  active-high
	line  84:      unnamed       unused   input  active-high
	line  85:      unnamed       unused   input  active-high
	line  86:      unnamed       unused   input  active-high
	line  87:      unnamed       unused   input  active-high
	line  88:      unnamed       unused   input  active-high
	line  89:      unnamed       unused   input  active-high
gpiochip4 - 96 lines:
	line   0:      unnamed       unused   input  active-high
	line   1:      unnamed       unused   input  active-high
	line   2:      unnamed       unused   input  active-high
	line   3:      unnamed       unused   input  active-high
	line   4:      unnamed       unused   input  active-high
	line   5:      unnamed       unused   input  active-high
	line   6:      unnamed       unused   input  active-high
	line   7:      unnamed       unused   input  active-high
	line   8:      unnamed       unused   input  active-high
	line   9:      unnamed       unused   input  active-high
	line  10:      unnamed       unused   input  active-high
	line  11:      unnamed       unused   input  active-high
	line  12:      unnamed       unused   input  active-high
	line  13:      unnamed       unused   input  active-high
	line  14:      unnamed       unused   input  active-high
	line  15:      unnamed       unused   input  active-high
	line  16:      unnamed       unused   input  active-high
	line  17:      unnamed       unused   input  active-high
	line  18:      unnamed       unused   input  active-high
	line  19:      unnamed       unused   input  active-high
	line  20:      unnamed       unused   input  active-high
	line  21:      unnamed       unused   input  active-high
	line  22:      unnamed       unused   input  active-high
	line  23:      unnamed       unused   input  active-high
	line  24:      unnamed       unused   input  active-high
	line  25:      unnamed       unused   input  active-high
	line  26:      unnamed       unused   input  active-high
	line  27:      unnamed       unused   input  active-high
	line  28:      unnamed       unused   input  active-high
	line  29:      unnamed       unused   input  active-high
	line  30:      unnamed      "reset"  output  active-high [kernel]
	line  31:      unnamed       unused   input  active-high
	line  32:      unnamed       unused   input  active-high
	line  33:      unnamed       unused   input  active-high
	line  34:      unnamed       unused   input  active-high
	line  35:      unnamed       unused   input  active-high
	line  36:      unnamed       unused   input  active-high
	line  37:      unnamed       unused   input  active-high
	line  38:      unnamed       unused   input  active-high
	line  39:      unnamed       unused   input  active-high
	line  40:      unnamed       unused   input  active-high
	line  41:      unnamed       unused   input  active-high
	line  42:      unnamed       unused   input  active-high
	line  43:      unnamed       unused   input  active-high
	line  44:      unnamed       unused   input  active-high
	line  45:      unnamed       unused   input  active-high
	line  46:      unnamed       unused   input  active-high
	line  47:      unnamed       unused   input  active-high
	line  48:      unnamed       unused   input  active-high
	line  49:      unnamed       unused   input  active-high
	line  50:      unnamed       unused   input  active-high
	line  51:      unnamed       unused   input  active-high
	line  52:      unnamed       unused   input  active-high
	line  53:      unnamed       unused   input  active-high
	line  54:      unnamed       unused   input  active-high
	line  55:      unnamed       unused   input  active-high
	line  56:      unnamed       unused   input  active-high
	line  57:      unnamed       unused   input  active-high
	line  58:      unnamed       unused   input  active-high
	line  59:      unnamed       unused   input  active-high
	line  60:      unnamed       unused   input  active-high
	line  61:      unnamed       unused   input  active-high
	line  62:      unnamed       unused   input  active-high
	line  63:      unnamed       unused   input  active-high
	line  64:      unnamed       unused   input  active-high
	line  65:      unnamed       unused   input  active-high
	line  66:      unnamed       unused   input  active-high
	line  67:      unnamed       unused   input  active-high
	line  68:      unnamed       unused   input  active-high
	line  69:      unnamed       unused   input  active-high
	line  70:      unnamed       unused   input  active-high
	line  71:      unnamed       unused   input  active-high
	line  72:      unnamed       unused   input  active-high
	line  73:      unnamed       unused   input  active-high
	line  74:      unnamed       unused   input  active-high
	line  75:      unnamed       unused   input  active-high
	line  76:      unnamed       unused   input  active-high
	line  77:      unnamed       unused   input  active-high
	line  78:      unnamed       unused   input  active-high
	line  79:      unnamed       unused   input  active-high
	line  80:      unnamed       unused   input  active-high
	line  81:      unnamed       unused   input  active-high
	line  82:      unnamed       unused   input  active-high
	line  83:      unnamed       unused   input  active-high
	line  84:      unnamed       unused   input  active-high
	line  85:      unnamed       unused   input  active-high
	line  86:      unnamed       unused   input  active-high
	line  87:      unnamed       unused   input  active-high
	line  88:      unnamed       unused   input  active-high
	line  89:      unnamed       unused   input  active-high
	line  90:      unnamed       unused   input  active-high
	line  91:      unnamed       unused   input  active-high
	line  92:      unnamed       unused   input  active-high
	line  93:      unnamed       unused   input  active-high
	line  94:      unnamed       unused   input  active-high
	line  95:      unnamed       unused   input  active-high
gpiochip3 - 56 lines:
	line   0:      unnamed       unused   input  active-high
	line   1:      unnamed       unused   input  active-high
	line   2:      unnamed       unused   input  active-high
	line   3:      unnamed       unused   input  active-high
	line   4:      unnamed      "sysfs"  output  active-high [kernel]
	line   5:      unnamed      "sysfs"  output  active-high [kernel]
	line   6:      unnamed      "sysfs"  output  active-high [kernel]
	line   7:      unnamed      "sysfs"  output  active-high [kernel]
	line   8:      unnamed       unused   input  active-high
	line   9:      unnamed       unused   input  active-high
	line  10:      unnamed       unused   input  active-high
	line  11:      unnamed       unused   input  active-high
	line  12:      unnamed       unused   input  active-high
	line  13:      unnamed       unused   input  active-high
	line  14:      unnamed       unused   input  active-high
	line  15:      unnamed       unused   input  active-high
	line  16:      unnamed       unused   input  active-high
	line  17:      unnamed "user-led1-red" output active-high [kernel]
	line  18:      unnamed       unused   input  active-high
	line  19:      unnamed       unused   input  active-high
	line  20:      unnamed       unused   input  active-high
	line  21:      unnamed      "sysfs"  output  active-high [kernel]
	line  22:      unnamed "user-led1-green" output active-high [kernel]
	line  23:      unnamed       unused   input  active-high
	line  24:      unnamed "status-led-green" output active-high [kernel]
	line  25:      unnamed       unused   input  active-high
	line  26:      unnamed       unused   input  active-high
	line  27:      unnamed      "reset"  output  active-high [kernel]
	line  28:      unnamed       unused   input  active-high
	line  29:      unnamed       unused   input  active-high
	line  30:      unnamed       unused   input  active-high
	line  31:      unnamed       unused   input  active-high
	line  32:      unnamed "status-led-red" output active-high [kernel]
	line  33:      unnamed       unused   input  active-high
	line  34:      unnamed      "sysfs"  output  active-high [kernel]
	line  35:      unnamed       unused   input  active-high
	line  36:      unnamed      "sysfs"  output  active-high [kernel]
	line  37:      unnamed      "sysfs"  output  active-high [kernel]
	line  38:      unnamed      "sysfs"  output  active-high [kernel]
	line  39:      unnamed       unused   input  active-high
	line  40:      unnamed       unused   input  active-high
	line  41:      unnamed      "sysfs"  output  active-high [kernel]
	line  42:      unnamed       unused   input  active-high
	line  43:      unnamed       unused   input  active-high
	line  44:      unnamed       unused   input  active-high
	line  45:      unnamed       unused   input  active-high
	line  46:      unnamed       unused   input  active-high
	line  47:      unnamed       unused   input  active-high
	line  48:      unnamed       unused   input  active-high
	line  49:      unnamed       unused   input  active-high
	line  50:      unnamed       unused   input  active-high
	line  51:      unnamed       unused   input  active-high
	line  52:      unnamed       unused   input  active-high
	line  53:      unnamed       unused   input  active-high
	line  54:      unnamed       unused   input  active-high
	line  55:      unnamed       unused   input  active-high
gpiochip2 - 16 lines:
	line   0:      unnamed       unused   input  active-high
	line   1:      unnamed       unused   input  active-high
	line   2:      unnamed       unused   input  active-high
	line   3:      unnamed       unused   input  active-high
	line   4:      unnamed       unused   input  active-high
	line   5:      unnamed       unused   input  active-high
	line   6:      unnamed       unused   input  active-high
	line   7:      unnamed       unused   input  active-high
	line   8:      unnamed       unused   input  active-high
	line   9:      unnamed       unused   input  active-high
	line  10:      unnamed       unused   input  active-high
	line  11:      unnamed       unused   input  active-high
	line  12:      unnamed       unused   input  active-high
	line  13:      unnamed       unused   input  active-high
	line  14:      unnamed "user-led0-red" output active-high [kernel]
	line  15:      unnamed       unused   input  active-high
gpiochip1 - 16 lines:
	line   0:      unnamed      "sysfs"  output  active-high [kernel]
	line   1:      unnamed      "sysfs"  output  active-high [kernel]
	line   2:      unnamed      "sysfs"  output  active-high [kernel]
	line   3:      unnamed      "sysfs"  output  active-high [kernel]
	line   4:      unnamed      "sysfs"  output  active-high [kernel]
	line   5:      unnamed      "sysfs"  output  active-high [kernel]
	line   6:      unnamed      "sysfs"  output  active-high [kernel]
	line   7:      unnamed      "sysfs"  output  active-high [kernel]
	line   8:      unnamed      "sysfs"  output  active-high [kernel]
	line   9:      unnamed      "sysfs"  output  active-high [kernel]
	line  10:      unnamed      "sysfs"  output  active-high [kernel]
	line  11:      unnamed      "sysfs"  output  active-high [kernel]
	line  12:      unnamed      "sysfs"  output  active-high [kernel]
	line  13:      unnamed      "sysfs"  output  active-high [kernel]
	line  14:      unnamed      "sysfs"  output  active-high [kernel]
	line  15:      unnamed "user-led0-green" output active-high [kernel]
gpiochip0 - 16 lines:
	line   0:      unnamed       unused   input  active-high
	line   1:      unnamed       unused   input  active-high
	line   2:      unnamed       unused   input  active-high
	line   3:      unnamed       unused   input  active-high
	line   4:      unnamed       unused   input  active-high
	line   5:      unnamed       unused   input  active-high
	line   6:      unnamed       unused   input  active-high
	line   7:      unnamed       unused   input  active-high
	line   8:      unnamed      "sysfs"  output  active-high [kernel]
	line   9:      unnamed      "sysfs"  output  active-high [kernel]
	line  10:      unnamed      "sysfs"  output  active-high [kernel]
	line  11:      unnamed      "sysfs"  output  active-high [kernel]
	line  12:      unnamed      "sysfs"  output  active-high [kernel]
	line  13:      unnamed      "sysfs"  output  active-high [kernel]
	line  14:      unnamed       unused   input  active-high
	line  15:      unnamed       unused   input  active-high
root@iot2050-debian:~#

I was not able to write a 1 to "user-led0-green", see here:
$gpioset gpiochip1 15=1
gpioset: error setting the GPIO line values: Device or resource busy

Maybe worth looking into instead of relaying on mraa? Is the iot2050 still related to Intel?

mraa give us two things:

abstraction of the underlying hardware (iot2000 vs. iot2050)
higher language bindings, most notably javascript

And mraa is not bound to Intel hardware at all. By now it's driven by Linaro mostly, IIRC.
That said, libgpiod should be usable as well if that lib has no issues by itself. But you may need to know which GPIO you need to flip. Keep in mind that GPIO numbers of the kernel are not stable, and they are not abstracted in any way. You first need to find out which output is on which kernel GPIO number, and then you can use it. Arduino IO pin 15 is not GPIO 15.

Okay, got the mraa part. It's nice to know that things just work.
Firing up a Python3 shell with sort of auto-completing mraa to get D13 a digital output and write a 1 is quite straight forward.
Can you maybe point me to the device tree overlay of the mraa settings?
libgpiod is quite useful out of my perspective:
root@iot2050-debian:~# gpiodetect
gpiochip6 [cp210x] (4 lines)
gpiochip5 [davinci_gpio.2] (90 lines)
gpiochip4 [davinci_gpio.1] (96 lines)
gpiochip3 [davinci_gpio.0] (56 lines)
gpiochip2 [pcal9535] (16 lines)
gpiochip1 [pcal9535] (16 lines)
gpiochip0 [pcal9535] (16 lines)

You get a nice overview about what chips are included. Only the naming in the fourth column would be great if they were all named. This way you could always get the right GPIO with using gpiofind D13. This would solve the problem of:

Keep in mind that GPIO numbers of the kernel are not stable

I wanted to set line 15 of gpiochip1, which represents the GPIO labeled "user-led0-green" (probably from the device-tree). And not Arduino Pin D15 (which only goes to D13 - not sure why you extended the NodeRed Mraa References to D19 while we are at it..?). But I think I failed as the kernel owns this pin. (Other non-owned-by-kernel pins work fine with this tool).
My pitch here would be including this to the firmware of the IOT2050 as it is becoming the next sysfs controlling of GPIOs and also includes controlling Pull-Ups (in kernel 5.5). Would be cool to have a nice transition towards it. And a readable cli-interface to read and control GPIO pins.. :)

Okay, got the mraa part. It's nice to know that things just work.
Firing up a Python3 shell with sort of auto-completing mraa to get D13 a digital output and write a 1 is quite straight forward.
Can you maybe point me to the device tree overlay of the mraa settings?

There is no dto involved here. mraa has its configuration for board encoded into its code.  Only the naming in the fourth column would be great if they were all named. This way you could always get the right GPIO with using gpiofind D13. This would solve the problem of:

We still need to check if we can give names to lines of gpio controllers and if that will help here as well. See linux/Documentation/devicetree/bindings/gpio/gpio.txt, gpio-line-names.

Keep in mind that GPIO numbers of the kernel are not stable

I wanted to set line 15 of gpiochip1, which represents the GPIO labeled "user-led0-green" (probably from the device-tree). And not Arduino Pin D15 (which only goes to D13 - not sure why you extended the NodeRed Mraa References to D19 while we are at it..?). But I think I failed as the kernel owns this pin. (Other non-owned-by-kernel pins work fine with this tool).

As long as the LED is assigned to the GPIO, you can't control the pin via the GPIO interface - the kernel's LED subsystem owns it. Use the LED interface then. That's also why this GPIO is not exposed via mraa.

My pitch here would be including this to the firmware of the IOT2050 as it is becoming the next sysfs controlling of GPIOs and also includes controlling Pull-Ups (in kernel 5.5). Would be cool to have a nice transition towards it. And a readable cli-interface to read and control GPIO pins.. :)

I'm not sure how far we will get with DT tuning. But if you like to play with a recent mainline kernel already, build the image with :kas/opt/upstream.yml appended. That will give you a (widely) working 5.9-rc1 - with a broken mraa (because of "GPIO numbers of the kernel are not stable", #23).

First experiment: https://github.com/siemens/linux/commit/3071cd632d80015f90868d2360d179b07aea955c. The external pins and also the user button are now listed in gpioinfo. If you need to switch the muxes, mraa is still needed, of course.

First experiment: https://github.com/siemens/linux/commit/3071cd632d80015f90868d2360d179b07aea955c. The external pins and also the user button are now listed in gpioinfo. If you need to switch the muxes, mraa is still needed, of course.


style: make torch.nn imports more uniform

All functions from torch.nn.functional are now explicitly imported by name and used directly.
In all other cases where classes from torch.nn are used, we do from torch import nn and then use nn.<Class> throughout.

Note that this was also changed in one docstring in fba9e56. Not sure if that messes up the rendering of the documents. That commit can easily be dropped if needed.
fix #269

For being sure that Sphinx is able to solve the reference, you should use the fully qualified name (:class:torch.nn.Module). But it may be able to solve it also with the short version - not entirely clear. You should see after #625 is merged (now the trainer module is not correctly rendered) by activating the branch on readthedocs. Maybe just revert it for simplicity.

I reverted it.


Return the service state with TS PB errors

Some error replies were not returning the PB service state with the error reply so the message was not properly formatted.
Returned a friendly reply for missing bucket types in queries.

+1 a23ec2c

@borshop merge


Add leduc poker in .efg file format.

Here’s an efg file for Leduc. I did not create it myself, I found it here [https://sourceforge.net/p/gambit/mailman/gambit-users/?page=1]
I made a few modifications to address some issues. Efg_game currently does not support comma separated rewards in the .efg file, so all commas were removed. The original file had an unnecessary space in some of the action names, which then got interpreted as distinct actions. Further, it distinguished between checks and calls; OpenSpiel's Leduc implementation does not. It’s been changed so all actions are either “R", "C" or "F”.
To give us some confidence that the implementation is correct, I ran it through CFR. Here’s the two printouts of CFR run on leduc_poker and on efg_game with the Leduc.efg file:
Starting CFR and CFR+ on leduc_poker...
Iteration 0 exploitability=2.37361
Iteration 100 exploitability=0.0939493
Iteration 200 exploitability=0.0533379
Iteration 300 exploitability=0.0355078
Iteration 400 exploitability=0.0261679
Iteration 500 exploitability=0.0214263
Iteration 600 exploitability=0.019941
Iteration 700 exploitability=0.0162468
Iteration 800 exploitability=0.0145468
Iteration 900 exploitability=0.0139447
Iteration 999 exploitability=0.0118178
Starting CFR and CFR+ on efg_game...
Iteration 0 exploitability=2.37361
Iteration 100 exploitability=0.0939493
Iteration 200 exploitability=0.0533379
Iteration 300 exploitability=0.0355078
Iteration 400 exploitability=0.0261679
Iteration 500 exploitability=0.0214263
Iteration 600 exploitability=0.019941
Iteration 700 exploitability=0.0162468
Iteration 800 exploitability=0.0145466
Iteration 900 exploitability=0.0139455
Iteration 999 exploitability=0.0118193

One other thing to note is that this efg representation uses a deck of three cards {J Q K} with duplicates, whereas OpenSpiel’s Leduc uses a six card deck where each card is presented as unique. This results in a different number of information states. Leduc is commonly implemented with the {J Q K} deck, so I think this is fine, but it’s important to flag the difference.

Thanks John!


texture2D Incompatible types

gl_FragColor = texture2D(inputImageTexture, textureCoordinateToUse);

Incompatible types in initialization (and no available implicit conversion).

gl_FragColor = vec4(texture2D(inputImageTexture, textureCoordinate).rgb, 1.0);

Too few arguments to constructor of 'vec4'.

@xiaozhuai
Thanks for the feedback. I'll have a look at that.

@xiaozhuai I need the types of inputImageTexture and textureCoordinateToUse

varying highp vec2 textureCoordinate;
uniform sampler2D inputImageTexture;

I see where the problem lies. Texture2D is actually a constructor and these are not handled yet. I will have a look and see if I can get it with the next release.

I see where the problem lies. Texture2D is actually a constructor and these are not handled yet. I will have a look and see if I can get it with the next release.

texture2D and textureCube only works on glsl es 2.0, they are replaced by texture on 3.0.
So I guess if we can just add some declarations in glsl-builtin-functions.glsl
vec4 texture2D(sampler2D _sampler, vec2 P);
ivec4 texture2D(isampler2D _sampler, vec2 P);
uvec4 texture2D(usampler2D _sampler, vec2 P);
vec4 texture2D(sampler2D _sampler, vec2 P, float bias);
ivec4 texture2D(isampler2D _sampler, vec2 P, float bias);
uvec4 texture2D(usampler2D _sampler, vec2 P, float bias);
vec4 textureCube(samplerCube _sampler, vec3 P);
ivec4 textureCube(isamplerCube _sampler, vec3 P);
uvec4 textureCube(usamplerCube _sampler, vec3 P);
vec4 textureCube(samplerCube _sampler, vec3, float bias);
ivec4 textureCube(isamplerCube _sampler, vec3, float bias);
uvec4 textureCube(usamplerCube _sampler, vec3, float bias);

I actually meant texture2D.
We cannot add them as functions because they are not functions, but constructors, and texture constructors are not implemented yet.
The error shown is false negative so it's not the end of the world. But in any case, I will either disable these false negative errors or build a new feature handling texture constructors. I haven't touched it so I don't know how complicated it should be.

I actually meant texture2D.
We cannot add them as functions because they are not functions, but constructors, and texture constructors are not implemented yet.
The error shown is false negative so it's not too bad. But in any case, I will either disable these false negative errors or build a new feature handling texture constructors. I haven't touched it so I don't know how complicated it should be.

I don't understand that texture2D is a constructor.
According to https://thebookofshaders.com/glossary/?search=texture2D, it's a normal function which returns vec4.

https://github.com/walt-grace/glsl-plugin-idea/blob/4620654d22bfe01fc81f4710294956af9370b024/src/main/kotlin/glsl/data/GlslDefinitions.kt#L148-L189
So the problem may be treat texture2D as a type, but it's not.

Ahh you are right! It's a function but at the same time it's also definitely a type. In fact, it's an opaque type. In any case, I should have a look to make the annotator differs between the type and the function.

Hello @walt-grace , any progress here? Wish you all the best! And would you please leave a donation way, I'd donate your awesome work if you like.

Hi @xiaozhuai sorry for the late response. I didn't have time recently. I will try to release this week.

@xiaozhuai
PS
Thanks a lot for your appreciation. My work is free for the public :) Fortunately I don't need the money, but I'm sure there are many people or organisations that need money, so feel free to donate where ever you feel like on my behalf :)

texture

I will have a look at this problem again and try to solve it.

@xiaozhuai
Finally the fix is done and the new version is released. Please let me know if all ok.

@xiaozhuai Finally the fix is done and the new version is released. Please let me know if all ok.

Perfect! It works like a charm. Thanks for your great work!

Cool I'm happy.
A different question. Did you change the operators color or it changed automatically after the update?
If yes, this is not expected...

You mean () and {}? These color was taken over by a plugin named Rainbow Brackets.

@walt-grace BTW, this plugin is awesome! I use it at my everyday work. I really appreciates the work you've done here.
I'd like to contribute to it by donation.
So... where can I send you some money?
Thanks again!

@xiaozhuai
Thanks for you replay. Then it all works as expected.
And regarding your question, I really appreciate that but currently I don't have any platform where I get donations nor I'm sure if I need one. Next time when you go on the street and you see someone that you think needs a few bucks, then give it him and say that is from me :)
Have a lovely day. If all good, then I'll close the ticket.

BTW, I found bugs. The texture3D and textureCube will not work properly. I already submitted the changes. Will be probably approved tomorrow.


[cairo] Fix missing msimg32.lib in cairo:x64-windows-static

Describe the pull request

What does your PR fix?
Fixes https://github.com/microsoft/vcpkg/issues/28994
Feature passed with x64-windows-static triplet.

Thanks!


Automated cherry pick of #8141: fix: filter storages by host schedtag

Cherry pick of #8141 on release/3.4.
#8141: fix: filter storages by host schedtag

/lgtm
/approve


The reponses have been removed after user clicks on get result

I Liked these changes, Thanks @KiZaRu507 for your valuable contribution


How to deterministically wrap prisma tools

We have found that tests can pass on nexus-prisma one day and then re-running tests of the exact same git commit will later fail. I would like to know what we're doing wrong about how we're pinning to Prisma 2 version. There are a lot of deps going on so it is difficult for me to be specific.
https://github.com/prisma-labs/nexus-prisma/blob/master/package.json
We have peer deps:
  "peerDependencies": {
    "@prisma/client": "^2.0.0-preview020",
  },

We have direct dev deps:
  "devDependencies": {
    "@prisma/cli": "^0.1.31",
    "@prisma/client": "^2.0.0-preview021",
    "@prisma/fetch-engine": "^0.3.52",
    "@prisma/lift": "^0.3.384",
    "@prisma/sdk": "^0.0.208",
    ...
    "prisma2": "^2.0.0-preview021",

We have this in package.json:
  "prisma": {
    "version": "f608db3b9e4f50f9a384356e532357b0a525969a"
  }

which is updated by this script:
/**
 * Update the binary version hash based on @prisma/client version
 */
import fs from 'fs'
import fetch from 'node-fetch'
import path from 'path'
import prettier from 'prettier'
import manifest from '../package.json'

const prismaClientVersion = manifest.peerDependencies['@prisma/client']

<EMAIL_ADDRESS>  .then(result => result.json())
  .then(prisma2Package => {
    if (manifest.prisma.version === prisma2Package.prisma.version) {
      console.log(
        'Local binary pin is already in sync with @prisma/client version',
        prisma2Package.prisma.version,
      )
      return
    }

    console.log('Syncing local binary pin to:', prisma2Package.prisma.version)

    manifest.prisma.version = prisma2Package.prisma.version

    const updatedPackageJson = prettier.format(JSON.stringify(manifest), {
      parser: 'json-stringify',
      ...(manifest.prettier as any),
    })

    fs.writeFileSync(
      path.join(__dirname, '../package.json'),
      updatedPackageJson,
    )
  })
  .catch(e => {
    console.error(e)
    process.exit(1)
  })

And read by this script:
import { download } from '@prisma/fetch-engine'
import fs from 'fs'
import path from 'path'
import manifest from '../package.json'

const runtimeDir = path.join(__dirname, '../node_modules/@prisma/client')

if (fs.existsSync(runtimeDir)) {
  download({
    binaries: {
      'query-engine': runtimeDir,
    },
    version: manifest.prisma.version,
    showProgress: true,
  })
}

Then we have nexus-plugin-prisma which adds another whole layer, doing similar to the above, but bringing deps in as production deps, rather than dev deps. This is because nexus-prisma is a nexus schema plugin, lower level, designed for users to bring their own versions of things, while the nexus framework prisma plugin takes care of ALL the versioning.
https://github.com/graphql-nexus/plugin-prisma/blob/master/package.json#L53-L71
I find all the above extremely difficult to reason about made harder that it is not part of the Labs' teams' day to day focus so we're out of context in large part. Getting back into context every time is costly for us.
The measure of success here, I think, is given a dep graph snapshot, I can rely on it to behave deterministically. If the tests pass for that dep graph, they should always pass. Is that possible today? If so this issue can be closed but tips about what we're doing wrong would be welcome. If its not possible today, then consider this issue a feature request that it become so.
Hope this issue makes sense!

Concrete example:

Passing build 14 days ago: https://circleci.com/gh/prisma-labs/nexus-prisma/727
Failing build for the same commit today: https://circleci.com/gh/prisma-labs/nexus-prisma/739

There is a version option that we're not using in the binary download script here https://github.com/prisma-labs/nexus-prisma/blob/8781426a8b8dc9c3a0e9d4cc1bd0948b2ae70857/tests/__ensure-engine.ts#L12.


feat: support for Express

Task 1 – Add a README.md file

[x] Create a new README.md file inside the packages/express folder and copy in the contents from packages/nextjs/README.md. Adjust the wording to reference Express where needed, including updating the URLs.

Task 2 – Write the documentation

[x] Locate the manual-setup-express.mdx folder in /docs/_snippets/. Use this file to write your documentation, overwriting any contents of that file. Follow the structure of this Next.js example for reference when writing yours.
[x] Update the table at the bottom of the client-adaptors.mdx page with the framework you’ve worked on.

Task 3 – Update the webapp onboarding

[x] In the route.tsx page located in _app.orgs.$organizationSlug.projects.$projectParam.setup.express, replace the  component with your new onboarding steps. Follow the same structure as the Next.js example when creating your own. Ignore the very top step for adding this framework to a new project; just focus on the steps to add it to an existing project (so don’t include the  toggle selector at the top). Make sure you also include the useProjectSetupComplete(); hook at the top of the page – this triggers a particle effect when the new job is successfully created and redirects to the Jobs list 🥳.
[x] In the FrameworkSelector.tsx file, add “supported” to the framework you’ve worked on.

/claim #451

"Hi @samejr, please review my PR and let me know if you have any feedback :)

Hi @samejr, just checking in with you since it has been a while. Please revert back to this whenever you find it suitable, I will be looking forward to your reply.

Thanks @ayusham001 sorry for the delay. @matt-aitken is making some updates to our CLI to better support these new frameworks so he'll be checking out your PR very soon.

Thank you for the update, @samejr
No problem about the delay.

The code in the doc won't work, it references a function that doesn't exist in our express package. Closing this

Hi @matt-aitken,
I apologize for any misunderstanding. I have reviewed the documentation and made the necessary updates in my branch. Could you kindly consider reopening this pull request for a review? Thank you!


[dv:reg] aes_shadow_reg_errors fail for zero_delays=1

when setting zero_delays to 1 (enable 0 delays)
the aes_shadow_reg_errors fail with an unpredicted storage error.
for xcelium
../../../../util/dvsim/dvsim.py aes_sim_cfg.hjson -i aes_shadow_reg_errors -r 1 -t xcelium -s=149882471
I am currently not able to find a failing seed with VCS
the only change iI did to master is in
aes_eng_cfg.sv
function void post_randomize();
    if(use_key_mask) key_mask = 1;

    zero_delays = 1; //<< only change
  endfunction

ERROR

UVM_ERROR @  87084912 ps: (cip_base_vseq.sv:656) uvm_test_top.env.virtual_sequencer [uvm_test_top.env.virtual_sequencer.aes_common_vseq] Check failed has_storage_error == 1 (0 [0x0] vs 1 [0x1]) dv_base_reg did not predict shadow storage error
UVM_INFO @  87084912 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]

Thank you Rasmus for reporting this. This is my coding issue. I did not realize the precedence issue here:
if (origin_val ^ rand_val & (1 << (shadowed_csrs[index].get_msb_pos() + 1) - 1)) begin
Link
The code here I wanted to see if origin_val is the same as the rand_val only within the get_msb_pos() valid bits.
But I did not realize that the & has higher precedence than ^, and - 1 is treated as binary operation, so - has a higher precedence than <<.
I will open a PR to fix it.
Thanks again!

Hi @rasmus-madsen just want to check in and see if we can close this issue?

@cindychip
sorry yes this issue is  resolved


Revert renaming node make to gulp for mozcentral

Fixes #7083.
We will address the node make change when we port these tasks to proper Gulp tasks (tracked in #7062). Somehow exec() does not wait for the Gulp task to finish. In order to stop the breakage, we revert this one change from #7063.

I can confirm that it prevents the error, but there seems to be other issues as well :-(
E.g. the version number in the mozcentral.diff file seem to be incorrect, and worse still there's code from network.js bundled into pdf.worker.js, which might be what caused the problems in https://bugzilla.mozilla.org/show_bug.cgi?id=1256037#c2.

I'm not sure I get the issue with the version number. For me, both with gulp and with node make, I get var pdfjsVersion = '1.4.136'; in the diff, which seems fine. Am I missing something here?
The network code is indeed a problem. The diff from gulp is longer than the one from node make, but since both are not Gulp tasks yet, Gulp just redirects the call to the node make task, so I'm really confused why this is going wrong. I'm looking into it right now...

I have pushed a new commit that should resolve not only the error, but also the differences in the diff created by gulp and node make. The cause of the latter issue was rather hard to find. The key is that gulpfile.js registers all tasks from make.js. This means that we call the tasks manually for Gulp, but if parameters were originally passed to the target, they were not passed along by our registering layer. This resulted in different diffs because https://github.com/mozilla/pdf.js/blob/master/make.js#L922 would successfully pass the parameters in the node make case, but not in the gulp case because of the broken override.

@Snuffleupagus Could you check this again?

This looks much better!
One small thing though, it seems that the version number (i.e. var pdfjsVersion = '...';) in the mozcentral.diff file becomes wrong intermittently. I'm not sure if this is a pre-existing issue or not, but it seems a lot more common with gulp than make.

I ran BASELINE=51f6aba gulp mozcentralbaseline mozcentraldiff 10 times in a row (both with and without removing the build directory inbetween) and the version number has always been correct, so I'm not able to reproduce that unfortunately. If you have it with node make too, then it's most likely a pre-existing issue and we should file another issue for that. Otherwise we need to look into it for this PR I think.

it seems that the version number (i.e. var pdfjsVersion = '...';) in the mozcentral.diff file becomes wrong intermittently.

If you can't even reproduce that, let's just land this PR now and worry about it later. Since the scripts for updating PDF.js in Firefox is currently broken, we need this landed ASAP. Thanks for the patch!


Windows portable binaries missing

Hi,
After last commit a new release of Windows binaries is added: the portable version.
However, the files like TSDuck-Win32-3.12-745-Portable.zip are still missing in the release section of the github.
Please, upload/update the files.
Thank you!

Wow ! You are going too fast !
This is just the last commit, as you noticed, dating back from last night only. That means that the build procedure now creates the portable packages in addition to the system installers. The portable packages will be available with the next release 3.12-something.

:laughing:
The reason is for testing these PORTABLE binaries in Windows. :wink:

Hi @lelegard ,
I know very well what means portable... I'm an intensive user of PortableApps. :smile:
However, if the binaries are the same, then I only need to extract de EXE files from the installer.
Thank you! :ok_hand:


Plugins can't be accessed in components

Found an issue or bug? Tell me all about!
Describe the issue / bug.
# Can't access vue plugins inside components.
I wanted to install several vue plugins on a fresh install, like : vue-ls, vue-events etc
I installed them with npm install --save vue-ls (in both the root and app folder)
Then put : import VueLocalStorage from 'vue-ls' as well as Vue.use(VueLocalStorage) in my app/main.js file
The plugin can be accessed in the app/main.js file but as soon as I go in a component, App.vue or even LandingPageView.vue calling this.$ls as the doc states I get a undefined.
The problem is the same with the "stock" plugins like vue-electron, calling this.$electron in a component doesn't work even on the fresh install, still is undefined in the components
How can I reproduce this problem?
# I did nothing more than what's described so should be easy to reproduce
If visual, provide a screenshot.
#
Tell me about your development environment.

Node version: v7.4.0
NPM version: v4.3.0
Electron version : v1.6.1
vue-cli version: (if necessary) v2.8.1
Operating System: Antergos

If you are looking to suggest an enhancement or feature, then feel free to remove everything above.

@Shotman
I cannot seem to reproduce this issue. The only item that seems could be an issue is your OS. I also tried using vue-ls as well, without problem. Are you able to use the regular webpack template without issue?

Going to close this for now. Feel free to comment back.


Missing License

License file missing.

Thanks @idibidiart, license added here: https://github.com/dsibiski/react-native-embedded-app-example/commit/54b4fc4406e3373c0e416c773c306c6700282900


refactor fork.series to PossiblePromise.args

This would enable passing Promises as arguments.
fork.series([
  x => x ** 2,
  x => x * 2,
])(Promise.resolve(3)) // -> Promise<[9, 6]>

[ ] - synopsis
[ ] - implementation
[ ] - test

Example refactor: https://github.com/a-synchronous/rubico/commit/3443b86ba33666d1627e78bfd4f7ce55aa02c57b

decided against this feature


When init/update/tick methods for Page class.

@rultor merge.

@rultor merge.

@portlek OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge.

@portlek Done! FYI, the full log is here (took me 5min)


Specify Agent Name

Update to specify agent name
Persist agent on multiple docker-compose ups
Critical for saving new demo images and maintain UCD configuration

-^M have been removed
-If AGENT_NAME is not specified, the original functionality will be used. Specifying AGENT_NAME will allow reuse of agents for UCD configurations.


Is  there  possible  analyze  IOS project with  linux  System

hi ，
I  analyze  different  code  projects，such  as   java、c 、c++ and  oc，is there  one way that we can  analyze   oc   with  ubuntu   or  centos  directly，thanks .

Hi, in general to compile Objective-C projects one needs MacOS, but if your system builds in Linux, Infer may work too. You can try it.

thanks!


Use dyn dispatch for any_over_*

Summary

Test Plan

Current dependencies on/for this PR:

main

PR #6912   👈

This comment was auto-generated by Graphite.


Style fix

Moving extension codes to /extension
Adding package.json and Gruntfile.js to run jshint and jscsrc. they will check error and style.
Style fix
Adding CONTRIBUTING.md to describe how to setup.

Fixes https://github.com/yperess/gerrit-chrome-extension/issues/4
@yperess

PTAL.

Thanks!


[Suggestion] Show ingredients in compact view

Suggestion
I'd like to see in the compact view which ingredients I need for the total subfactory. The first part of building a subfactory for me is usually hunting down belts with the ingredients. Seeing which items I need in the compact view would make this more comfortable.

Interesting idea, thanks for suggesting it. I would eat into the space you have for recipes, but I guess it'd be worth it.

You could also add checkbox to show/hide them in the compact view

Yeah I think I'll do this with a checkbox, sounds reasonable enough.

I implemented this for the next release, thanks again.


Submitting operation to Tensorflow

Hi!
Great work! More of a comment than an issue. Are you planning on submitting the operations for the CRFs to Tensorflow contrib? There is already a tensorflow.contrib.crf so perhaps this could go there?
Given CRFs are common in segmentation, I doubt you would have troubles convincing them to add the functionality.

Thanks for the suggestion! I'm planning to completed the GPU version of high_dim_filter op sometime soon. Once that's done I'll consider making everything more polished and submitting to Tensorflow contrib.


Android: add the right suffix for the compiler-rt profiler library

A bunch of profiler tests in the compiler validation suite were recently enabled on non-Darwin platforms by swiftlang/swift#75572 and then failed natively on Android because they couldn't find this profiler library, which this pull fixed. This is the same change I used to find the sanitizer libraries for Android a couple years ago.

@swift-ci test

Do I still need to submit the equivalent pull for the legacy C++ driver too, or do we not have to bother as much anymore, especially since that Driver is going away and this is a niche usecase?

Do I still need to submit the equivalent pull for the legacy C++ driver too, or do we not have to bother as much anymore, especially since that Driver is going away and this is a niche usecase?

I'd say that's not necessary unless you can come up with some kind if niche requirements for where the legacy driver is needed. My hope is that it isn't.

Ready for merge.


refactor to load local code fellows via javascript too

strategy could be to create a .resume.json file for each _code-fellow entry and to add these to the code-fellows.json load file

https://github.com/codefornl/code-fellows/commit/6a536bb815a22e46fe0da0f427758b678c81c26e


[Proj4] build failure - hardcoded paths

Host Environment

OS: Windows
Compiler: VS2019

To Reproduce
Steps to reproduce the behavior:
Create custom triplet file x86-windows-rel.cmake which build only release:
set(VCPKG_TARGET_ARCHITECTURE x86)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE dynamic)
set(VCPKG_BUILD_TYPE release)

./vcpkg install proj4
Failure logs
Proj4 database need to install sqlite3[tool]:x86-windows first.
The path searched for is:
${CURRENT_INSTALLED_DIR}/../x86-windows/tools
The path where the exe resides is:
installed\x86-windows-rel\tools
Additional context
Add any other context about the problem here, such as what you have already tried to resolve the issue.

Thanks for posting this issue. I created triplet file x86-windows-rel.cmake and installed proj4 successfully. Could you please provide the error log?

Ahh, I think I forgot to add [database] to the install command. It should be:
./vcpkg install proj4[database]

Will try post a log soon, but I'll just have to reproduce the error in my docker build. And figure out how to either copy the file or get it shown in powershell.

There aren't much more in the log really:
I think the checks here have a too fixed path:
https://github.com/microsoft/vcpkg/blob/bf338dc947348a1d9708acb4cda344ca94b69ead/ports/proj4/portfile.cmake#L25-L43
ie. the triplet part of the filepath, should be a variable with the actual triplet being used?

The problem is that when we build sqlite3:arm-windows, sqlite3.exe will also be generated as arm type and can only be used in arm windows. When we use x86 / x64 windows to build proj4[database], we must use sqlite3.exe to generate data files. At this time, directly using the arm type of sqlite3.exe will prompt the "execution of wrong platform".

I'm compiling on x86, not on arm, so what does this has to do with anything?
The check here:
if (EXISTS ${CURRENT_INSTALLED_DIR}/../x86-windows/tools/sqlite3.exe)
tries to find sqlite3.exe in the folder path with the triplet part as foldername x86-windows but if I use a new triplet file called x86-windows-rel it fails to locate it, even though it is build.
I guess what needs to be changed is to use a path that is generated from VCPKG_TRIPLET_NAME or something similiar, so the full path will be:
if (EXISTS ${CURRENT_INSTALLED_DIR}/../${VCPKG_TRIPLET_NAME}/tools/sqlite3.exe)
which will make it look in the correct folder.

@larshg Since the database file that proj4 needs to generate is generated by using sqilte3.exe, and the sqlite3.exe generated under triplet arm / arm64 cannot be used in non arm / arm64, we must first generate sqlite3.exe for x86 / x64 to build it normally.

I am having the same issue. I was able to fix it by adding the following:
        if (EXISTS ${CURRENT_INSTALLED_DIR}/../${TARGET_TRIPLET}/tools/sqlite3.exe)
            set(SQLITE3_BIN_PATH ${CURRENT_INSTALLED_DIR}/../${TARGET_TRIPLET}/tools)

It isn't entirely clear to me what the logic is doing so I'm not sure this is a global fix. I understand that an exe built for arm won't work on x86 but I don't understand how the current logic is intended to address that issue. It checks if target is windows but not whether it is arm. If target and host are both windows and x64 (my case), it should just use the TARGET_TRIPLET. Would something like below be more appropriate (sorry, not tested)?
if ("database" IN_LIST FEATURES)
    if (CMAKE_HOST_WIN32)
        set(BIN_SUFFIX .exe)
        if ((VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" AND (NOT CMAKE_HOST_SYSTEM_PROCESSOR OR CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64")) AND (EXISTS ${CURRENT_INSTALLED_DIR}/../${TARGET_TRIPLET}/tools/sqlite3.exe))
            set(SQLITE3_BIN_PATH ${CURRENT_INSTALLED_DIR}/../${TARGET_TRIPLET}/tools)
        elseif (EXISTS ${CURRENT_INSTALLED_DIR}/../x86-windows/tools/sqlite3.exe)
            set(SQLITE3_BIN_PATH ${CURRENT_INSTALLED_DIR}/../x86-windows/tools)
        elseif (EXISTS ${CURRENT_INSTALLED_DIR}/../x86-windows-static/tools/sqlite3.exe)
            set(SQLITE3_BIN_PATH ${CURRENT_INSTALLED_DIR}/../x86-windows-static/tools)
        elseif (EXISTS ${CURRENT_INSTALLED_DIR}/../x64-windows/tools/sqlite3.exe AND (NOT CMAKE_HOST_SYSTEM_PROCESSOR OR CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64"))
            set(SQLITE3_BIN_PATH ${CURRENT_INSTALLED_DIR}/../x64-windows/tools)
        elseif (EXISTS ${CURRENT_INSTALLED_DIR}/../x64-windows-static/tools/sqlite3.exe AND (NOT CMAKE_HOST_SYSTEM_PROCESSOR OR CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64"))
            set(SQLITE3_BIN_PATH ${CURRENT_INSTALLED_DIR}/../x64-windows-static/tools)
        else()
            message(FATAL_ERROR "Proj4 database need to install sqlite3[tool]:x86-windows first.")
        endif()
    else()
        set(BIN_SUFFIX)
        set(SQLITE3_BIN_PATH ${CURRENT_INSTALLED_DIR}/tools)
    endif()
endif()

@rossctaylor There are two scenarios for building arm programs: host is non-arm and host is arm.
So we need to judge not only local_host but also target_host.

That's what I tried to do with the second proposal. That first long if statement attempts to check whether target and host match (both x86 or both x64). If so, it uses the target triplet executable. If not, it falls back to the logic that was already there to just search for an existing install of x86 or x64.
The only other change I suggested was changing the second level if (VCPKG_TARGET_IS_WINDOWS) to if (CMAKE_HOST_WIN32) because we are searching for exe on the host so it makes more sense (to me) to check whether the host is windows rather than the target.

Fixed.


Discuss future of JsonConverter for option

I'm not sure if adding the [JsonConverter] attribute was the right choice albeit a very convenient one.
To do

Research how other libraries similar to us do it. (The only one that comes to mind is nodatime. They have JSON serialization in a separate package)
Discuss

We remove the [JsonSerializer] attribute from Option<T>. Consumers need to register the option converter themselves. This needs to be documented in the migration docs.


Suggestions for: Important Online Resources

I have a couple of smaller suggestions:
Add link the the swagger ui and the changelog to the “Important Online Resources” paragraph in the readme.
Also update description of #esi to include that the ccp devs are there and it’s a good place to check the health of esi and keep up with the community (I feel like getting people on #esi should be our number one priority).
I’m open to doing these changes  myself (if the suggestions is accepted), but, fair warning: English is not my first language and I’m not exactly good with words.

Fixed with PR #23 (with CarbonAlabel's help 👍)