ES6 -> Typescript

A while back, we had a community-supposed Typescript version of the kit. This was deprecated as a result of version slippage against the ES6 kit, but provided a great way enjoy a mostly 'type safe' ReactQL experience.
Since the last commit in August, ReactQL has gone through several major iterations, including the addition of a built-in GraphQL server and a Config class that keeps most customisation in userland. This has expanded the surface area of ReactQL, whilst introducing many new (presently undocumented) functions and features.
It now makes sense to make Typescript the de facto (and indeed, only) version of ReactQL. IMO, this would significantly improve the experience of working with undocumented config features, and eliminate typo-induced edge cases that are difficult to catch until they become a problem at runtime.
I want to introduce TS is a mostly seamless way; the kit itself would be written in Typescript, and you'll be able to create .ts files inside src where you'd normally write plain JS. At the same time, if you want to continue to write ES6 .js, just do what you're already doing - and it should just work.
This should land in ReactQL kit v3.0.

@leebenson This is great news for TS users. Do you have an ETA for v3.0 Kit?

@tzarger - I'll be starting on the conversion somewhere around mid-Nov. Need to get a couple of local project deadlines out the way, then I'm on it. It's high priority on my to-do, so this will be the next major feature tackled.

From what I've seen, a lot of the React 16 and Apollo 2.0 types are severely broken right now.

@nate0001 - could you elaborate?

https://github.com/apollographql/react-apollo/issues?utf8=✓&q=is%3Aissue is%3Aopen typescript for example

I guess I've got that to look forward to as I start converting...

@leebenson How's the demo coming along?

@leebenson Would you recommend against trying to migrate a new ReactQL project to TS until you're changes are released, assuming there will be some sort of upgrade path?
Just curious - are you considering using the Babel preset for TypeScript so you can continue using babel-loader without needing another loader for TS?

I'd recommend doing whatever makes sense for your project. If you need TS support today, don't wait for an upgrade- add it, and get coding!
If/when TS support lands, it's likely the whole kit will get an overhaul, including the Webpack config files. It'll likely be some combo of ts-loader and HappyPack.

Update on this thread: https://github.com/reactql/kit/issues/147#issuecomment-378173217

Typescript - done!
https://github.com/leebenson/reactql/releases/tag/3.0.0


Index slice

[x] Closes #300
[x] Tests added

test_frame.py:test_indexslice_getitem()

@bashtage @twoertwein this is all green now, so should be good to go

Thanks @Dr-Irv


Single quotes support

Added support for single quotes so the extension works properly for people who use single quotes to create strings.
before:

(def and pass are white)
after:

This breaks parentheses highlighting inside multiline double-quote comments:
"""INSERT IGNORE
INTO AllSamples
(sample_code, sample_thickness)
VALUES
('sample', %s);
"""


Tests for demographics.py

This PR introduces tests of the demographics.py module.  These test:

That the population distribution at the end of the time path is the same as in the SS.
That the population distribution evolves "smoothly" (i.e., no large jumps from one year to the next).
That the population growth rate evolves "smoothly" (i.e., no large jumps from one year to the next).

@hdoupe Any idea how to fix this Dask issue causing the failure?  Guessing it has to do with Travis CI using a different (probably newer) version of Dask than I am running locally, because I'm not getting these failures.

Hmm, that seems about right to me. Where is the Client created?

For these tests, it just takes the default client=None

I dropped the get key word from:
# SS.py line 370
    results = compute(*lazy_values, get=dask.multiprocessing.get,
                      num_workers=num_workers, scheduler=client)

so that now it's:
# SS.py line 370
    results = compute(*lazy_values,
                      num_workers=num_workers, scheduler=client)

and that seems to work. It looks like the current behavior is to use processes, but I'm not sure how to specify that from the new API.

Thanks @hdoupe.  I updated my Dask version and also found that scheduler=dask.multiprocessing.get works.  Will update this PR soon - running some tests on another branch now.

No problem!


[Android] [TouchableNativeFeedback] parent pressed state also applied to child elements

react-native: 0.14.0-rc
If I have a parent view which is wrapped into an TouchableNativeFeedback element and this parent view has children which are also wrapped into TouchableNativeFeedback, the child elements also show the pressed state as soon as I press the parent.
Already spent some time looking into TouchableNativeFeedback.android.js but I guess that's a problem somewhere deeper.
Kinda behaves like I set the android:duplicateParentState to true on a View.
http://developer.android.com/reference/android/view/View.html#attr_android:duplicateParentState

'use strict';

var React = require('react-native');

var {
  View,
  TouchableNativeFeedback,
} = React;

var TouchableIssue = React.createClass({

  render() {
    return (
      <TouchableNativeFeedback background={TouchableNativeFeedback.SelectableBackground()} delayPressIn={0}>
        <View style={styles.root}>

          <TouchableNativeFeedback background={TouchableNativeFeedback.SelectableBackgroundBorderless()} delayPressIn={0}>
            <View style={styles.action} />
          </TouchableNativeFeedback>

          <TouchableNativeFeedback background={TouchableNativeFeedback.SelectableBackgroundBorderless()} delayPressIn={0}>
            <View style={styles.action} />
          </TouchableNativeFeedback>

          <TouchableNativeFeedback background={TouchableNativeFeedback.SelectableBackgroundBorderless()} delayPressIn={0}>
            <View style={styles.action} />
          </TouchableNativeFeedback>

        </View>
      </TouchableNativeFeedback>
    )
  },

});

var styles = React.StyleSheet.create({

  root: {
    flexDirection: 'row',
    height: 200,
    margin: 16,
    alignItems: 'center',
    justifyContent: 'space-around',
    backgroundColor: 'rgba(0, 0, 0, .1)',
  },

  action: {
    width: 48,
    height: 48,
    backgroundColor: 'rgba(255, 0, 0, .5)',
  },

});

module.exports = TouchableIssue;

+1

+1

Thanks @astuetz for the great bug report. I managed to find the problem and fixed it!

@janicduplessis Awesome, thanks!


kivakit-assets needs versioned documentation

Description
Currently there is only one set of documentation under "docs" in the kivakit-assets project. Instead, there should be docs/[release-version] for each released version. This should be applied to the other *-assets repositories.
docs/0.9.8-alpha/javadoc
docs/0.9.8-alpha/lexakai
docs/0.9.8-alpha/images
docs/0.9.8-alpha/codeflowers
etc.

Scripts and pom files have been updated. When 0.9.8-alpha is released, we may want to remove the javadoc and Lexakai folders in each project that aren't under a versioned directory to make things tidy.


copying image to target registry failed

image-swapper-78c6b4bfd6-hwlpr k8s-image-swapper 2020-12-18T01:59:59.277056487Z 1:59AM
ERR copying image to target registry failed error="exit status 1"
kind="/v1, Kind=Pod" name= namespace=xxx output= uid=1978f528-34ac-4b95-bb3f-fbfb12fb36d2

The registry wasn't publicly available. see #19


Handle the drag

Fix https://github.com/Natural-Harmonia-Gropius/InputEvent/issues/2

Stall until the setter of geometry is implemented, https://github.com/mpv-player/mpv/issues/10788

delete branch
mp.observe_property("geometry", "native", function(_, geometry)
    print(geometry)
    local binding = bind_map["MBTN_LEFT"]
    if not binding then return end
    print(binding.queue[#binding.queue])
    binding.queue = table.filter(binding.queue, function(i) return i ~= #binding.queue end)
end)

For users who have both no-border and window-dragging (default=yes), the drag is not usable in windowed mode.
For me I just want to prevent the click event if window be dragged. But at least in Windows the getter of geometry not yet implemented.
If you need mouse gestures, that would be a standalone script.


Added scroll to active repos

PR 🚀
🐛 Fixed Issue
#142
https://github.com/anand346/findissues/assets/72077931/3b4f517b-aa92-44b6-9366-ac1ba354af9f
Checklist ✅

[x] Starred this repo ⭐.
[x] Code adheres to the project's coding standards 💻.
[x] No sensitive information is inadvertently exposed 👀.
[x] Commit history is clear and concise 📃.

@anand346  pls check pr


java-microprofile: upgraded to use open liberty v<IP_ADDRESS>

Checklist:

[x] Read the Code of Conduct and Contributing Guidelines.

[x] Followed the commit message guidelines.

[x] Stack adheres to Appsody stack structure.

Modifying an existing stack:

[x] Updated the stack version in stack.yaml

Upgraded stack to use Open Liberty v<IP_ADDRESS> release
Related Issues:
Fixes: https://github.com/appsody/stacks/issues/262

Tested and checked (tick off as completed):

[x] built locally using the build script
[x] appsody init
[x] appsody run

LGTM

LGTM


SVI failed with vectorize_particles=True

With the BernoulliBetaTests, test_elbo_reparameterized failed if we use vectorize_particles=True (num_particles=2). It passed when we set vectorize_particles=False.

Interesting, I cannot pass that test. The error is 0.0 vs 1.2. Maybe I am using Pytorch master. Let me check again.

Its odd that it’s failing on PyTorch master though. Will take a look.

So I change the title and reopen it again. :)

@neerajprad This is a pytorch bug, not a Pyro bug, so I'll close this. I raised the issue here: https://github.com/pytorch/pytorch/issues/9521.

Thanks for digging in, and creating the issue, @fehiepsi.


Unable to run the app in android

Describe the bug
A clear and concise description of what the bug is.
The project is not running in windows with android
To Reproduce
Steps to reproduce the behavior:

Clone the app
Run the app
You will get the error

Expected behavior
Should run the app properly
Environment

React Native Starter version: 1.0.5
React Native version: 0.57.2
Platforms

[ ] iOS
[x ] Android

Device Info

[x ] Physical Device in Debug
[ ] Physical Device in Release
[ ] Simulator in Debug
[ ] Simulator in Release

Additional context
Here is the exception that I am getting in android studio
Failed to resolve: support-fragment
Open File

Failed to resolve: support-core-ui
Open File

Failed to resolve: common
Open File

Failed to resolve: play-services-base
Open File

Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html

Failed to resolve: support-fragment
Open File

Failed to resolve: support-core-ui
Open File

Failed to resolve: common
Open File

Failed to resolve: play-services-base
Open File

Failed to resolve: support-fragment
Open File

Failed to resolve: support-core-ui
Open File

Failed to resolve: runtime
Open File

Failed to resolve: common
Open File

Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html

Failed to resolve: support-fragment
Open File

Failed to resolve: support-core-ui
Open File

Failed to resolve: common
Open File

Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html

Failed to resolve: support-fragment
Open File

Failed to resolve: support-core-ui
Open File

Failed to resolve: common
Open File

Failed to resolve: support-fragment
Open File

Failed to resolve: support-core-ui
Open File

Failed to resolve: common
Open File

Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html

Failed to resolve: support-fragment
Open File

Failed to resolve: support-core-ui
Open File

Failed to resolve: common
Open File

FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all files for configuration ':react-native-code-push:debugCompileClasspath'.
> Could not find support-fragment.aar (com.android.support:support-fragment:27.1.1).
  Searched in the following locations:
      https://jcenter.bintray.com/com/android/support/support-fragment/27.1.1/support-fragment-27.1.1.aar
> Could not find support-core-ui.aar (com.android.support:support-core-ui:27.1.1).
  Searched in the following locations:
      https://jcenter.bintray.com/com/android/support/support-core-ui/27.1.1/support-core-ui-27.1.1.aar

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 23s
14 actionable tasks: 1 executed, 13 up-to-date

Please suggest me some solution for this

We are working under mac OS so I'm not sure if it's an environement issue or not.
Could you try to change on https://github.com/ueno-llc/react-native-starter/blob/master/android/build.gradle the following lines:
buildscript {
    repositories {
+       google()
         jcenter()
         mavenLocal()
         mavenCentral()
-       google()
    }

allprojects {
    repositories {
+      google()
        mavenLocal()
        mavenCentral()
        jcenter()
        maven {

Also this is Android studio, right? Make sure you have updated app the SDKs and what not


Create Choices

Input choices for locationChoices, majorChoices, clubChoices, and interestChoices.

please make location, major, club, etc all their own model.


Make buttons visible and clickable only when appropriate

Buttons now togglable only when you have a high enough role, and reminders can only be sent before the related data is added.

Coverage remained the same at 79.75% when pulling 9be9141bd548abd44984bdc7874fa05246999008 on thesisshow into b9727f01fe7264ed66020420227ed9bb724f7917 on master.

Coverage remained the same at 79.75% when pulling 2d1f8a7df20248f4bbb3bfc9bf23e1d9cfc6d4da on thesisshow into b9727f01fe7264ed66020420227ed9bb724f7917 on master.


User/lobourre/virtualcamera uwp

adding the uwp app and winrt component samples and doc

In the case where  the virtualCamera is used by application or after VirtualCamera has started, the media source is loaded in the FrameServer service. To investigate issue with the mediasource you will need to attach the debugger to the FrameServer service.

"investigate an issue" or "investigate issues"

Refers to: Samples/VirtualCamera/README.md:190 in cfd4d7b. [](commit_id = cfd4d7b00bfd7a50ea103e0bdb801bde1d859d82, deletion_comment = False)


Support status for vite-plugin-wasm and testing env

I was trying to uderstand where vite-plugin-wasm is supported.
The testing environment is here: https://github.com/Jerboas86/vpw-test-env
I tried different frameworks:

svelte (CSR)
sveltekit (SSR)

In different scopes:

Window scope
Worker scope
Worklet scope (audioworklet)
Nodejs scope (vitest)

And with different web browers:

Chrome 108
Firefox 108
Gnome web (aka Epiphany) 43

Results
Chrome

Svelte
Sveltekit

Window
✅
❗

Worker
✅
❗

Worklet
❗
❗

Vitest
❗
❗

Firefox

Svelte
Sveltekit

Window
✅
❗

Worker
❗
❗

Worklet
❗
❗

Vitest
❗
❗

Gnome web

Svelte
Sveltekit

Window
✅
❗

Worker
✅
❗

Worklet
❗
❗

Vitest
❗
❗

opened issues:

 Firefox support for web workers
[SSR support] (https://github.com/Menci/vite-plugin-wasm/issues/4)

and opened PR:

vitest support

I would suggest to:

update the readme to reflect current support
and open issue for audioworklet support

The testing can also be extended if it is valuable, let me known.

Can't start your project

I managed to build your project and added Vitest and SSR support. Please test~

A question: what's the difference between Worker and Worklet. What extra steps will I need to make it work in Worklet?

 What extra steps will I need to make it work in Worklet?

AFAIK, In AudioWorkletScope:

URL is not available.
fetch is not available.
import is not available (yet)  in Firefox's worklet (see)

Other apis are not available (see)
I dont known if this is also true for others worklet: PainWorklet, LayoutWorklet, and AnimationWorklet.

Does it mean I could only base64 encode the WASM file to load it in Worklet context? Are there any other APIs used by wasm-bindgen that is missing in Worklet context?

Does it mean I could only base64 encode the WASM file to load it in Worklet context?

I dont known

Are there any other APIs used by wasm-bindgen that is missing in Worklet context?

wasm-bindgen uses TextEncoder and TextDecoder (see).

Firefox worker is supported now. Please test.

worker is still not working on FF, for both svelte and sveltekit (tested with with vite-plugin-wasm last commit)
this error message appears in the console.
SyntaxError: import declarations may only appear at top level of a module

How did you build?
You need to set worker to iife, not es.

How did you build?

I retrieved the commit and built from source, maybe there is a better way?
package.json
{
  [...]
  "devDependencies": {
   [...]
    "vite-plugin-wasm": "git@github.com:Menci/vite-plugin-wasm.git#7ab4a5e"
  }
}

You need to set worker to iife, not es.

i used the default as specify in the README
vite.config.js
import { defineConfig } from "vite";
import { svelte } from "@sveltejs/vite-plugin-svelte";
import wasm from "vite-plugin-wasm";
import topLevelAwait from "vite-plugin-top-level-await";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [svelte(), wasm(), topLevelAwait()],
  test: {
    environment: "jsdom",
  },
  worker: {
    plugins: [wasm(), topLevelAwait()],
  },
});

I push it on the repo, you can check it out, see if there is any mistake. (link)

No, you need to use my plugin vite-plugin-top-level-await to transform this.
On Tue, Feb 28, 2023 at 19:28 Jerboas86 @.***> wrote:

How did you build?
I retrieved the commit and built from source, maybe there is a better way?
package.json
{
[...]
"devDependencies": {
[...]
"vite-plugin-wasm": @.***:Menci/vite-plugin-wasm.git#7ab4a5e"
}
}
You need to set worker to iife, not es.
i used the default as specify in the README
vite.config.js
import { defineConfig } from "vite";
import { svelte } from @.***/vite-plugin-svelte";
import wasm from "vite-plugin-wasm";
import topLevelAwait from "vite-plugin-top-level-await";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [svelte(), wasm(), topLevelAwait()],
test: {
environment: "jsdom",
},
worker: {
plugins: [wasm(), topLevelAwait()],
},
});
I push it on the repo, you can check it out, see if there is any mistake.
(link) https://github.com/Jerboas86/vpw-test-env
—
Reply to this email directly, view it on GitHub
https://github.com/Menci/vite-plugin-wasm/issues/24#issuecomment-1448017533,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACWRBA2D3PICUVVBBLZHCILWZXOOHANCNFSM6AAAAAATQTFISY
.
You are receiving this because you commented.Message ID:
@.***>


Expose the list of the last X new repositories as json

The purpose is to build a RSS feed of the latest new repositories referenced by https://github.com/bzg/codegouvfr.
The json file would store the name of the repository and the date it has been added to data-codes-sources-fr.

How many?

10 seems okay. We'll see if we need more later on.

Done ✅
https://api-codes-sources-fr.antoine-augusti.fr/api/stats/last_repositories
https://github.com/AntoineAugusti/api-codes-sources-fr/commit/2a0bba602c2f854170e3b9ead85b87b52eb26442


error router loaders must implement...

In latest bits getting following error

A clean git clone, using skeleton-es2016, jspm 0.16.15 (running against local)

Probably false problem, sorry.


[Suggestion] Add some warnings related ref, mutable, IO to README

Add some warnings on avoiding impure code, mutation operations within transactions to the README.md.
Here is some excerpted text written by @polytypic already that is a good start:
(From https://discuss.ocaml.org/t/ann-kcas-and-kcas-data-0-3-0-software-transactional-memory/12085/16)

Yes, when using kcas transactions, one should be aware of the fact that the transaction function may be called many times and transactional shared memory location accesses within the transaction may choose to raise exceptions to force the transaction to be retried later.

To be safe, kcas transactions should typically be pure (no use of refs or mutable, no IO, …).
...

Just noting that documentation in the mli file that becomes part of the generated manual contains some relevant warnings:

Transactions should generally not perform arbitrary side-effects, because when a transaction is committed it may be attempted multiple times meaning that the side-effects are also performed multiple times.  Xt.post_commit can be used to perform an action only once after the transaction has been committed succesfully.
WARNING: To make it clear, the operations provided by the Loc module for accessing individual shared memory locations do not implicitly go through the transaction mechanism and should generally not be used within transactions.  There are advanced algorithms where one might, within a transaction, perform operations that do not get recorded into the transaction log.  Using such techniques correctly requires expert knowledge and is not recommended for casual users.


[Frontend] Add the UI level Validations

Description
Currently, there is almost no validation or the validation occurs only after hitting the submit button of login/signup form for both influencers and brands.
Requirements
As soon as user enters an invalid data, the error message should be shown right away just below the input box.
Only the errors coming from backend should come when user hits submit.
For Brand SignUp form

[ ] Add Name Validation -> the check that name can't start with a number and any other relevant validations
[ ] Add email Validation -> add the required regex checks
[ ] Add the password Validation -> Add the min-length check etc.
[ ] The Generate OTP button should be disabled, till user filled all the required fields with valid data(currently its always blue)

For Brand Login form

[ ] Add email Validation -> add the required regex checks
[ ] Log In button is always blue, it should be disabled until user enters the username and password

For Influencers SignUp form

[ ] Add Name Validation -> the check that name can't start with a number and any other relevant validations
[ ] Add email Validation -> add the required regex checks
[ ] Add the password Validation -> Add the min-length check etc.
[ ] Add Mobile number Validation -> Add require regex check

For Influencers Login form (same changes as brand login)

[ ] Add email Validation -> add the required regex checks
[ ] Log In button is always blue, it should be disabled until user enters the username and password

NOTE - Make sure to write all the validators under frontend/util/validators.js so that the same validators can be used at all the required places

@Kajol-Kumari  I want to work on email validation

@Kajol-Kumari @RohitGupta1237
Assign me the issue

@Ishitamukherjee2004 we can't give just one validation to anyone so assigning @BHS-Harish


Doesn't look good when there's not enough place to put the menu

If I look at the report on the whole screen, it displays great. The menu has every item on a line. But if I make the browser window smaller, so that the menu can't be displayed in one line, it may end up like this :

And that doesn't help to read the report. There's a big bunch I can't read unfortunately.
It would probably be better to change the display so that it shows the usual hamburger icon with the various menu items.
Thanks :)

Fixed by commit efe7dbc.


bittorrentsync: fix storage_path.

If this path is a symlink, btsync won't be able to read it if it's not ending with "/".
As seen in https://github.com/NixOS/nixpkgs/commit/f02d4ec9ed39694e04aa52937a9f73e217aff7f8
Broken in https://github.com/NixOS/nixpkgs/commit/0539ed477151a3adfff5012cabff0527a9a8c0bb

cc @cwoac


"It's not really free."

hi i'm read: "this is THE ONLY FREE library available for personal usage from API"
but when i called request with API KEY. it's reponse : 429 error..so ..it's no free :)

Hi thanks for your report,
I would close the issue as this is not a bug itself .
However to answer this:
IF you sign up you will get has 60 credits per month, which is almost 16$ credits renewable every month for FREE.
None of other enterprise grade background removal give you free usage through the API. only through the app but it is also limited through the app.
We need to rate limit for free users, running a single inference cost almost 1 cent, we need to manage server costs for now.
if you want more you can sign up for premium.


[BUG] [ANDROID 10] - Sound notification

Hello,
The sound of the notification not working on Samsung Galaxy Note 10 (Android 10)...
But you can try to fix this, with : https://github.com/FirebaseExtended/flutterfire/issues/523#issuecomment-574904729
Regards,

Please build and run the example project and send the android_notification_custom_channel test message using the built-in FCM client (note that on Android 8+ it is the notification channel, not the FCM message payload, that defines which sound is played).
If this does not work as expected, please specify exactly what is issue is (e.g. no sound vs wrong sound).

Closed due to no response

This is still an issue even in example project default notification sound play instead the custom sound file


Add badges

Below the title please add badges this help a lot.
If your component is compatible:

with carthage add
with SwiftPM add

Indicated:

the Swift version
Platforms supported
License

Badge proliferation makes this information harder to parse in an accessible way, such as using screen readers or even in a pager/vim. READMEs should be readable.

@kattrali When we search for a component or tool on GitHub we have the choice among several possible choices. We must then select the one that best fits our needs. The badges immediately allow us you to see if a component can fit with our technical environment. Integrating a badge does not make it less readable README.md. When searching for a component or tool, it takes no more than few seconds to read README.md. Without the badges there is a greater risk that the component will not be retained.


Support SpiderMonkey 86

This is mainly in preparation for natively supporting Apple Silicon, as the build system required for SM68 is not support there.
The main bulk is copied from the SM68 implementation, this is the effective diff, plus some odds and ends in the rebar config.
h/t https://github.com/mozilla-spidermonkey/spidermonkey-embedding-examples/blob/esr78/docs/Migration Guide.md and the SpiderMonkey team chat https://chat.mozilla.org/#/room/#spidermonkey:mozilla.org <3
--- 68/main.cpp	2021-03-13 13:03:33.000000000 +0100
+++ 86/main.cpp	2021-03-13 13:50:54.000000000 +0100
@@ -22,17 +22,20 @@
 #endif

 #include <jsapi.h>
 #include <js/CompilationAndEvaluation.h>
 #include <js/Conversions.h>
 #include <js/Initialization.h>
 #include <js/SourceText.h>
+#include <js/StableStringChars.h>
 #include <js/Warnings.h>
 #include <js/Wrapper.h>

 #include "config.h"
 #include "util.h"

 static bool enableSharedMemory = true;
+static bool enableToSource = true;

 static JSClassOps global_ops = {
     nullptr,
@@ -61,6 +64,8 @@
     JS::RealmOptions options;
     options.creationOptions().setSharedMemoryAndAtomicsEnabled(enableSharedMemory);
     options.creationOptions().setNewCompartmentAndZone();
+    // we need this in the query server error handling
+    options.creationOptions().setToSourceEnabled(enableToSource);
     JS::RootedObject obj(cx, JS_NewGlobalObject(cx, &global_class, nullptr,
                                             JS::DontFireOnNewGlobalHook, options));
     if (!obj)
@@ -234,7 +239,7 @@

 static bool
-csp_allows(JSContext* cx, JS::HandleValue code)
+csp_allows(JSContext* cx, JS::HandleString code)
 {
     couch_args* args = static_cast<couch_args*>(JS_GetContextPrivate(cx));
     if(args->eval) {
@@ -260,7 +265,7 @@
     couch_args* args = couch_parse_args(argc, argv);

     JS_Init();
-    cx = JS_NewContext(args->stack_size, 8L * 1024L);
+    cx = JS_NewContext(args->stack_size);
     if(cx == NULL)
         return 1;

Thank you @hotsphink and @evilpie for the extremely thorough review! 🙏🙇♂💕 I appreciate you taking the time to go through all this!
The main bulk of this code is pasted from ../68. which we have working fine in production (not saying it can’t be improved :)
We’ll need a few more eyes on this to see how we can integrate those improvements as my C++ chop pretty much end at making function calls align as in the OP diff (which are the changes I really did, aside from the build system additions).
I hope @jiangphcn @davisp @wohali can have a look.


Is it okay to never store the API Secret, and to use it to encrypt the TOTP Keys?

We considered using the API Secret (that we generate and provide to the consumer of the API) as the AES key for encrypting the TOTP Keys. Then, since we would not store the API Secret, we would not be able to expose the TOTP Keys because we couldn't even decrypt a consumer's TOTP Keys until they call us with the correct API Secret.
However, if we do that then we have no way to know whether they are in fact using the API Secret we gave them. We would have to consider their API Key as sufficient to confirm that they are who they say they are, and they could pass us "abc" as their API Secret and we might not know the difference.
Is that sufficient reason for us to store something related to their API Secret? We could treat it as a password, and store a salted, stretched hash of it, then verify that hash before using the given API Secret to encrypt/decrypt their TOTP Key(s).
Thoughts?

Current plan: Treat the API Secret like a password, storing a salted, stretched hash of it in the database and validating the given API Secret (for a particular API Key) against that hash before doing anything TOTP-related.


Update from unsupported node 12 to node 16

Update from node 12 to node 16
Bump dependencies to latest stable versions
Add nvmrc to ensure contributors use the correct node version
Bump package version to 0.3.1

@phulsechinmay

Thanks for putting this up, helps out a lot as I'm not actively maintaining this.

Whoops sorry for the typo! 😅

The CI still seems to be failing, maybe octokit changed the API and need another parameter now? I can look into this more tomorrow


webui: comparative review of the potential libraries to use

Opening this issue to keep track of the potential frameworks to be used in the webui.
I researched the most widely used options available and decided on 3 options. The criteriaon for my search were:

Support for a treeview-like table similar to capa-explorer.
Ease of use and wide adoption
Ability to unit test
Customizability

As of now, these are the candidates I think are good for our use case:

Prime: Prime is a UI library that works with React, VueJS, and Angular frameworks. It ships with a treetable  component that mimics Capa's hierarchical rule logic definition. Features include:

Global and per-column search
Conditional styling of tree nodes (e.g make rule titles bold)
Table pagination, scrolling, and per-column sorting
Event handlers (e.g., when a child node is clicked)
In-cell editing (e.g. edit a cell a value)
Stateful (i.e. we can store the rdoc in localStorage)
Mobile-friendly
Works with all 3 frameworks
TypeScript support

Vuetify: A UI library for VueJS featuring a v-treeview component very similar to Prime. However, this treeview lacks table-like columns. Vuetify is mobile-friendly and supports TypeScript. I experimented with v-treeview (demo), but once it is wrap it wrapped in a table (for sorting purposes), the core functionality of the v-treeview like the search breaks.
AG Gird: a framework-agnostic framework for large datasets
jsTree: a small JQuery plugin for simple lightweight expandable tree lists, requires more hands-on customization. (support javascript only). I find the documentation of jsTree to be lacking details.

All of these projects are actively maintained, and are kept up to date with their frameworks. They also offer unit testing, tough I am not sure about jsTree
Recommendations

PrimeReact/PrimeVue: Best overall choice if we want to use React, Vue, or Angular. The TreeTable component is rich in terms of functionality and closely matches our requirements. The additional UI components could be beneficial for future development (capa-rules) or features. imho, React is far more adopted than Vue, but Vue tends to be more easy to learn.
AG Grid: good, but overkill for our use case, since we are not handling large datasets. On the other hand, it has a very diverse set of visualization charts.
Vuetify: Another viable option for VueJS. However, additional work may be needed to achieve the desired table-like structure.
jsTree: very limited in terms of features and customization and does not offer tabel columns for example.

Thanks for your research here! Per our discussion we're going with Vue.js / PrimeVue.


4.6.x Regressions

Issues that have been checked off have been resolved in Stencil or Ionic, but not yet released until the next version of Ionic is out.
Previous regressions tracker: https://github.com/ionic-team/ionic/issues/18655

[x] AlertController (and potentially other controllers) do not return data from .dismiss https://github.com/ionic-team/ionic/issues/18772
[x] canGoBack always returning false in IonRouterOutlet https://github.com/ionic-team/ionic/issues/18759
[x] autoGrow does not reset back to original size when textarea is cleared https://github.com/ionic-team/ionic/issues/18744
[x] ion-input's cursor jumps to the end after the first key in Safari when text is inserted https://github.com/ionic-team/ionic/issues/18757
[x] inputs duplicating characters on non-latin language keyboards https://github.com/ionic-team/ionic/issues/18768
[x] hardware back button import is missing https://github.com/ionic-team/ionic/issues/18792
[x] ion-valid and other form state classes are not copied to the parent ion-item https://github.com/ionic-team/ionic/issues/18800
[ ] datetime picker-opt-disabled class not being applied to options https://github.com/ionic-team/ionic/issues/18793

Reporting a Regression
If you are running into a bug that worked in 4.5.0 but is not working in 4.6.x and is not in the list above and not in the previous regression issue thread please create a new issue:

Fill out the provided template with steps for us to reproduce
Provide the minimal amount of code needed to reproduce the issue in a starter
Or provide a simple code repository that only highlights the bug

Please tag @ionic-team/framework on the issue to bring it to our attention.

Hi @liamdebeasi , I think https://github.com/ionic-team/ionic/issues/18757 was introduced in 4.6.x. I wasn't able to reproduce it with 4.5.0.

https://github.com/ionic-team/ionic/issues/18800 also a regressions

#18793 also a regressions

#18793 also a regressions

@ppjjzz If it’s not working with 4.5, let’s leave this out of 4.6 regressions.
(Though one can argue it is more severe, there are many of us already using 4.5 and waiting/working for 4.6.x update that is as good as 4.5.)

#18793 also a regressions

@ppjjzz If it’s not working with 4.5, let’s leave it out of 4.6 regressions.
(Though one can argue it is more severe, there are many of us already using 4.5 and waiting/working for 4.6.x update that is as good as 4.5.)

It's working with 4.5 but not working at 4.6.x

It's working with 4.5 but not working at 4.6.x

Oh, my apologies. It read as if the bug was there since 4.1.
Perhaps better clarify the fact it is working with 4.5 in the issue?

Seems that this was working with 4.5 and it's not working with 4.6.x
#18789

Seems that this was working with 4.5 and it's not working with 4.6.x
#18789

Closing this since we have had no further issues come in and #18879 is open and on our project board.


Implement a release workflow

Migrated functionality to cgrindel/bazel-starlib (cgrindel/bazel-starlib#44).


Fix unlimited go routines

Currently there is no limit in the go routines spawned during fetching brokers, plans, visibilities, etc from CC which may eventually result in crashing the Cloud Controller (DoS) or crashing the proxy process (OOM).
This PR addresses the issue by adding a limit to the maximum number of spawned go routines during fetching stuff from CC.

Coverage increased (+1.3%) to 90.938% when pulling 71707ab636c73329b728041da760d0ebb40976e3 on fix-proxy into be2889d7b3272962285bb29861fcecdf4bc6ba7b on master.


add betterC support

I added betterC support simply by disabling the toString method of Optional(T).

Ooh the beginnings of betterC support 😍
I'm not very familiar with betterC support and what exactly it entails, does this alone make this fully betterC compliant? If not then how much work do you think it would additionally take?
I tried running the unittests (just the ones in source/optional:
dmd -i source/optional/package.d -I=source/ -I=tests -unittest -I=~/.dub/packages/bolts-0.8.1/bolts/source -main -betterC

It just throws an error:
/usr/local/opt/dmd/include/dlang/dmd/std/array.d(784): Error: TypeInfo cannot be used with -betterC

No stack trace or anything to say where it's coming from.

This small change made it fully compatible with betterC. I was surprised as well :)
You are using features in your unittest that don't work in betterC, so you'll get errors there. But it doesn't matter.
Thanks for the quick merge!

Cool! and no probs. Thanks for the PR!
Pushed v0.8.0 out as well with you fix.


Support for ingesting models in the QONNX format

Summary
This PR is designed to add support for the ingestion of the QONNX format in FINN.
In particular a new transformation (ConvertQONNXtoFINN), a corresponding step in the dataflow builder (step_qonnx_to_finn) and an optional flag (expect_QONNX_as_input) have been added.
Details
The PR exchanges the finn-base installation for the qonnx front end, which implicitly installs the qonnx_quant_op branch of finn-base.
The conversion from QONNX to FINN-ONNX is implemented in the following steps:

Convert Gemm node to MatMul and Add node (The Gemm node is exported by the mobilenet and constant folding the quantized weights requires this node to be split up.)
Constant fold weights, which are expressed as Quant nodes
Convert Quant nodes in the activation path to MultiThreshold nodes

Tests
Additionally a new testcase (test_QONNX_to_FINN) has been added to verify that all Quant nodes get converted by this transformation and that the output during execution is still equivalent to the FINN-ONNX exported by Brevitas.
The test currently examines the following networks:

TFC, SFC (all W2A2)
CNV W2A2
Mobilenet (except for Trunc node, see ToDo list)

With this the test in particular covers the following activation types:

ReLu
Idendity

And the following weight types:

Integers above 1 bit
Channel-scaled integers of four bit

Open ToDos
These ToDos need to be addressed before review and merging can take place.

[x] Add an end2end test to verify that the rest of the FINN toolchain still works as expected with the generated FINN-ONNX model.
[x] Add support for converting the AvgPool + Trunc node construct to a QuantAvgPool2d node. This in particular requires a patch to the Brevitas export of the Trunc node, as the node currently dosn't contain enough information to be executed.
[x] Add support for binary Quant nodes, which are planned to get introduced in the Brevitas export along with the patched Trunc node.

The feature has now matured so far, that I've started adding it to more and more tests in the test suite. And this has already lead to a few bugs being discovered and fixed.
So the whole list of tests, which currently test the QONNX ingestion, are the following existing or new tests:

New:

test_QONNX_to_FINN

Existing:

TestEnd2End

This is the bnn_pynq end2end test.

test_brevitas_cnv_export_exec
test_brevitas_fc_onnx_export_and_exec
test_brevitas_act_export_qhardtanh_nonscaled
test_brevitas_QConv2d
test_brevitas_qlinear
test_brevitas_act_export_relu
test_brevitas_act_export_qhardtanh_scaled

The following tests are still under development and are so to say ToDos:

[ ]  test_end2end_cybsec_mlp_*

Development is still work in progress for these tests.

[ ] test_brevitas_debug

Support for this just got added today in Brevias, so I simply haven't gotten around to look at it.

[ ] test_brevitas_avg_pool_export

This test needs significant changes in design due to how the export products with quantized input tensors vary greatly between the FINNManager and the BrevitasONNXManager. So there is significantly more work that needs to be done here and I'm simply not yet finished with it.

[ ]  test_brevitas_act_export_relu_imagenet

Similar-ish issues as with test_brevitas_avg_pool_export.

And finally these tests are currently "won't add" due to different reasons:

test_brevitas_mobilenet

The test is currently marked as xfail and a similar case is already tested by the test_QONNX_to_FINN test.

test_brevitas_compare_exported_mobilenet

For the same reason as for the test above.

test_end2end_mobilenet_v1*

This is technically also because some of the tests are marked as xfail, but it might still be interesting to add these tests nonetheless.

test_ext_weights*

Here the .onnx file is loaded externally and not exported, so it's not easily adaptable.

@maltanar the most recent commit 6a22a11fee35a61bea43ab0ad2f58db53cfb68c3 is a bug fix for an issue, which Ben had with the Pynq-Z2. Just to make sure, that you're not surprised by why I changed that file.

All good to go, thanks @HenniOVP !


Training module refactor

Description
Refactored styled-components within Module-0 through Module-5 to be consistent with each other
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

Change Status

[] Incomplete/work-in-progress, PR is for discussion/feedback

Checklist

[x] My code follows the style guidelines of this project

[x] I have performed a self-review of my own code

[x] My code has been reviewed by at least one peer

[x] I have commented my code, particularly in hard-to-understand areas

[x] I have made corresponding changes to the documentation

[x] My changes generate no new warnings

[x] There are no merge conflicts

fixed file naming conventions

Merged


Improving "recursOn"

This directive is great for simple, one-off events, but what if I need to display weekly events that start on a certain date and end on a certain date?  For example, I want to show an event that starts on January 25, then goes every Monday at the same time for two months.  Is that possible, or is support for such a use-case planned?

recursOn is a bit of a hack as it is. This is something is best implemented yourself.


chore: update README remove docs add troubleshooting

updated docs based on info gleaned from chatting over issues
fixes #488 #489

[ ] I wrote tests for the feature
[X] I documented the feature if needed

purely documentation
added some docs on cli and troubleshooting

commented out this image for now, as I'm not sure it should just be deleted...

preview here before you merge:
https://github.com/dcsan/botfront/tree/docs-readme-edits#troubleshooting

Thanks! But the image shouldn't be gone. Something must have happened during a merge @MatthieuJnon . The image was the terminal animation

I couldn't find the image
https://github.com/botfront/botfront/issues/488
these are the only gifs in the directory now:


Remove PC Manager <IP_ADDRESS> - Contains SAS Key

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.5 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

@stephengillie @SpecterShell @CoolPlayLin @Trenly @denelon
I'm pulling this whole package because of the SAS keys from the download. We have engaged the team directly to resolve the download situation to get this back in the future.


BCELLMAGIC: Convert all parameter docs to JSON schema

Hi!
this is not necessarily an issue with the pipeline, but in order to streamline the documentation group next week for the hackathon, I'm opening issues in all repositories / pipeline repos that might need this update to switch from parameter docs to auto-generated documentation based on the JSON schema.
This will then supersede any further parameter documentation, thus making things a bit easier :-)
If this doesn't apply (anymore), please close the issue. Otherwise, I'm hoping to have some helping hands on this next week in the documentation team on Slack https://nfcore.slack.com/archives/C01QPMKBYNR

Hi Alex,
this is already done in the dev version of the pipeline. So I'll close the issue :)

Even better - I just opened issues to keep track of these things for next week and didn't want to check each dev branch ;-)

sure, of course, great idea :)


create job should allow target name (in addition to id) as an argument

This is to make writing instructions easier.
Currently, I have to write:
> fuzzit create target parse-metric --seed corpus-metric.tar.gz
note the id returned by this command
> fuzzit create job --type fuzzing --branch ${branch} --revision ${rev} ${parse-metric-traget-id} ./fuzzer_parse_metric

It would be better if I could write:
> fuzzit create target parse-metric --seed corpus-metric.tar.gz
> fuzzit create job --type fuzzing --branch ${branch} --revision ${rev} parse-metric ./fuzzer_parse_metric

This is fixed now in master. ID and name are same thing (will push a release soon as well)

fixed in this release https://github.com/fuzzitdev/fuzzit/releases/tag/v2.4.0


⚠ Bofrost.at has degraded performance

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

HTTP code: 200
Response time: 1852 ms

Resolved: Bofrost.at performance has improved in 69163c7 after 13 minutes.


Expose feature min size to schema configs

Needed for shortbread waterway and street layers

A few use cases I'd like this to handle:

fixed min line length in different units (pixels, tile area, meters, feet, miles, km)
fixed min polygon area in different units (pixels, tile area, square meters, acres, hectares, etc.)
ability to set min feature size based on a dynamic expression (like attribute value)
ability to dynamic expressions to vary by zoom level (to cover functionality of ZoomFunction)

Thanks for the good example, @msbarry. I was looking at the bike example and saw that the setMinPixelSize function seems super critical for continuous lines:
https://github.com/onthegomap/planetiler/blob/2ed6ac8630b4f2b4f48b6edf8745676b451c40a6/planetiler-examples/src/main/java/com/onthegomap/planetiler/examples/BikeRouteOverlay.java#L104
If I comment out that line, the map of bike routes in Switzerland gets a lot of gaps:


PlantHolderVisualizer component system refactor

Part of #8995
Converted PlantHolderVisualizer to ECS component and system.

people have reaped the punishment for putting their new visualizer system at the end of the list... next time be more original and avoid conflicts...

people have reaped the punishment for putting their new visualizer system at the end of the list... next time be more original and avoid conflicts...

I am not sure I understand?

this isn't for you. oftentimes, people will put their visual component at the very bottom of the IgnoredComponents list, which always causes tons of conflicts.

this isn't for you. oftentimes, people will put their visual component at the very bottom of the IgnoredComponents list, which always causes tons of conflicts.

Oh, so you mean not the actual Visuals enum but the component itself? Just trying to make sure I'm not doing anything wrong (or will do anything wrong) as I am pretty new and also going through a lot of visualizers.


When typing a 2nd single quote, the quote gets doubled

VSCode Version: Code 1.4.0 (6276dcb0ae497766056b4c09ea75be1d76a8b679, 2016-08-04T16:45:31.680Z)
OS Version: Windows_NT ia32 6.1.7601

Steps to Reproduce:

Write a function that has an object as argument (function (myobject) .... )
Now you decide to pass a string as a parameter.  Type a first single quote to define the argument that is passed as string (function (**'**myobject) ... )
Type the second quote to close the string.  (function ('myobject**') ... )
Now you get  (function ('myobject''**) ... )

@alexandrudima assigning to you. If this is something JS/TS can control please assign back to me.

Probably related to #8539 and/or #8850.

In addition to the specific bug OP noted, when you delete the first one, both gets deleted. This is quite annoying :D See gif:

It shares the same story as https://github.com/Microsoft/vscode/issues/13523 , we don't do any bracket matching check while typing as the cost is pretty high.

From @octref  Don't provide closing paren if there are unmatched closed parens

VSCode Version: 1.6

Steps to Reproduce:

Type ( before ), end up with ())
Type { before }, end up with {}}

The root cause for this issue is our auto closing feature doesn't take language semantics into account. Let's track this issue in https://github.com/Microsoft/vscode/issues/6841 which is the earliest issue. Thanks for your feedback!


docs($resource): document Resource#toJSON

Document the toJSON method of Resource instances as part of its public API.

Thx for submit this! Could you expand a little bit on when toJSON is used and what it does? Maybe add a link to MDN.

Could you expand a little bit on when toJSON is used and what it does? Maybe add a link to MDN.

Will do 👍
I have just realized that toJSON does not remove $cancelRequest, so strictly speaking, it doesn't return a "simple object without the extra methods". Do you think it is pertinent to modify toJSON to do that, and if so, is it OK to do it in this PR?

toJSON is not a general purpose function - it's sole purpose is facilitating proper conversion to JSON. As such, it makes sense to do the least amount of work necessary. Functions are not serialized to JSON, so $cancelRequest is not deleted on purpose.

Gotcha, I will update the docs accordingly.

Notice however how this behavior means that the workaround I mentioned in #14637, where I tried to use a toJSON call as a way of getting "just the data", is not valid. In any case, documenting this method improves the situation so at least we know where we stand.

I rebased my commit with a better description.


dev: handle paid_fee_on_l1 for L1HandlerTransaction

The field paid_fee_on_l1 is currently hardcoded to 0 in the file primitives/starknet/transaction.rs. This needs to be updated in order to provide the correct l1 fee.

how will we get the correct gas fee paid on l1?
querying L1 rpc with transaction hash from this line?

@sk1122 I haven't looked much into this and raised the issue for tracking, you would have to research how it can be done, starting for example by looking into blockifier

Found this function, it takes paid_fee_on_l1 as a parameter, but can't find where from_api is called from.
Also found this file, which calculates the l1 gas fees, but don't think its applicable here
also, is SHARP implemented for Madara? if not, then should that be first implemented before this?

@sk1122 as far as I understand, the paid_fee_on_l1 is not related to SHARP but to L1->L2 messaging. You can find more info about this fee here.

understood, i misunderstood it for batch tx from L2->L1, will look into it!

Yes we should!

Can i pick this?

Can i pick this? @tdelabro

Yes assigned to you. Thanks

https://t.me/MadaraStarknet/10512
I think this needs some planning so you can unassign this if this can take some time. I'll try to pick another issue and work on that

will be resolved by #1132


Support for obsidian zoom

it would be amazing if it could remember where the user is during obsidian zoom https://github.com/vslinko/obsidian-zoom
Losing state of the zoom is one of the most annoying things currently about the way obsidian works (vs. something like roam)

It seems brittle for one plugin to try and save/restore the state of another plugin -- any of the two could break one another. You could reach out to @vslinko about this -- my plugin could potentially offer some simple API that other plugins could use to save/restore state on open files.


pass decrypted messages to indexes

This change decrypts all messages as they are read from the database.
Most current indexes will now work with private messages, so this means that you can privately follow or privately block some one, or privately name someone, or privately like something. All message types can now be private, and should pretty much just work (or maybe just small changes)
This is a big internal change, but I carefully went through and made each api that returns messages not return decrypted messages by default. It would be okay if local clients such as patchwork got decrypted messages, but it could be a leak for web viewers.
All apis now have a private boolean option, which defaults to false and if set explicitly to true, decrypted messages are returned. decrypted messages have some extra properties:
a normal message looks like this:
{
  previous: msg_id,
  sequence: sequence,
  author: feed_id,
  timestamp: timestamp,
  content: ENCRYPTED_STRING
  signature: sig
}

{
  previous: msg_id,
  sequence: sequence,
  author: feed_id,
  timestamp: timestamp,
  content: {plain text object...}
  signature: sig,
  cyphertext: ENCRYPTED_STRING,
  private: true
}

if "private" is false, the cyphertext property is copied back to content, and the other extra fields removed. Note that this means a decrypted message is not a valid message, the signature will not verify and the hash is wrong, so in the worst case if it was sent over the network at least it would probably be dropped as invalid. However, all care is exercised to ensure that decrypted messages are not sent.

Fantastic idea and PR! My excitement for it doesn't mean I reviewed the code carefully, though. :P So let's just make sure there are reviews before merging, specially because it's about decryption. :)

this is probably a small performance regression, and on that note, @arj03 is probably the person best able to review this.
also note: Also, with this in place, i might be able to prototype private groups quite easily.
But currently, the decryption occurs in the decode function. This isn't really right, because decode should be a pure function... this was just the easiest place to add it. I think I'd rather refactor this a bit though.
hmm, another idea would be to add assertions to check that private messages are never returned decrypted unless private was true, then use it for a while (but don't make it the default npm version)

The test found those two. Im also getting a
/home/chrx/dev/secure-scuttlebutt/node_modules/ssb-validate/index.js:215
if(err) throw err
^
Error: encoded message must not be larger than 8192 bytes
at exports.isInvalidShape (/home/chrx/dev/secure-scuttlebutt/node_modules/ssb-validate/index.js:70:12)
at Object.exports.create (/home/chrx/dev/secure-scuttlebutt/node_modules/ssb-validate/index.js:214:13)
at /home/chrx/dev/secure-scuttlebutt/minimal.js:135:17

I ran the benchmarks on this (published in the bench-ssb-share repo) and the flume test (3) is much slower. Going from 12s to 17s. The rest seems to be within standard deviation, maybe a little bit slower.

oops, sorry @arj03 I had those fixes on my repo but hadn't checked them in yet. fixed now.
Hmm, if the flume benchmark is slower, it's not because of this code (because that benchmark doesn't even require('secure-scuttlebutt')) it might be because of changes to ssb-validate though... hmm, having trouble reproducing this perf difference

hmm, actually 03-flume only takes me 6 seconds! I'm surprised since I have an old slow computer...
on node 6 it took 7 seconds, node 8 it took 6

You're right. My deps got updated and it appears that something in pull-stream 3.6.2 is a lot slower. I've tried 3.6.2, 3.6.7 (both slow) but 3.6.1 is faster.
... and yeah my computer is slow :smiley:

Its really strange. I ran the pull-stream benchmarks on 3.6.1 and 3.6.7 and run time is the same, but the heap size is much better in the node test on 3.6.7 so I don't understand why it should affect the flume benchmark like is does.

This is cool, as we wouldn't be decrypting messages over and over again, wasting lots of cpu. However, I am cautious about change because of the possibility of leaking decrypted data to the public, as @dominictarr mentioned:

It would be okay if local clients such as patchwork got decrypted messages, but it could be a leak for web viewers.

As you mentioned, this makes a lot of sense for Patchwork. But let's say I'm using Decent with a remote key that is different than the server. Where does my private index get stored if my key is different than the pub I'm using?
Right now Minbase uses the Patchbay@6 code to decode private messages within the browser. I think this means the server has zero knowledge of what is in those messages.

@evbouge if the sever has a different key, this isn't gonna effect you at all. You'll still need to build your own indexes (or scan the private messages and attempt decryption) on the client side, and this doesn't stop you from doing that.

I'm testing this with patchbay but it crashes in some internal code because I get messages that are the value false. Havn't exactly figured out the cause yet. And then there are the test failing + the links change that looks a bit strange.
I'll be testing this with ssb-viewer as well but have to run to a meeting now. Just wanted to leave my comments so I don't forget.

Ok, I get it. :+1: for a contiued dedication to websbot.
On my end, these decentralized public nodes are just a stopgap towards a fully distributed peer in the browser.
Just thinking out loud: maybe I could generate a flumedb log in the browser and then save it to localStorage?

The test crash is because ssb-validate 3.0.7 now throws on invalid input. The following patch fixes that:
diff --git a/minimal.js b/minimal.js
index e657899..fd675a4 100644
--- a/minimal.js
+++ b/minimal.js
@@ -132,12 +132,19 @@ module.exports = function (dirname, keys, opts) {
})
})
db.append = wait(function (opts, cb) {

var msg = V.create(

 state.feeds[opts.keys.id],

 opts.keys, opts.hmacKey || hmac_key,

 opts.content,

 timestamp()

)

try {

 var msg = V.create(

   state.feeds[opts.keys.id],

   opts.keys, opts.hmacKey || hmac_key,

   opts.content,

   timestamp()

 )

}
catch (err) {

 cb(err)

 return

}
queue(msg, function (err) {
if(err) return cb(err)
var data = state.queue[state.queue.length-1]

I've tested ssb viewer and sbot.createUserStream({ id: feedId }) returns nothing. But sbot.query.read works fine.

@arj03

Ouch. This allows one to read private messages of the machine running ssb-viewer.

this is exactly what I'm trying to avoid. current ssb-viewer should never use private: true as an option, and ssb should never return decrypted data unless private: true is passed.

@arj03 okay, I found it. fixed in d3989790c984d9581147c77e44547950dfc67d65

Excellent! I'll do some more testing, what about the codec change?

also, made PR to fix some privacy related problems in ssb-viewer %3GamV50bdvjzA+iDbCPZ24Iu6NMP1OCwfJE4RXTOExU=.sha256

it probably really should have the newlines, because that is what ssb-keys uses
https://github.com/ssbc/ssb-keys/blob/master/index.js#L127
if we move towards that, we can have a design were we don't actually rely on JSON string ordering... by always keeping the original string and never serializing again... it might bloat the output a little.. but that is less embarrasing mistake than relying on the order

this was feeling just about ready to merge... then I asked myself: "is there anything else this could affect"
and I realized: git-ssb, git-ssb has some support for secret repos. @clehner what do you think?


JAVA-2592: Test reload support in DriverConfigLoader.reload()

@olim7t would you mind making a second review round please?


Legend centering and label click zones broken with non-standard font

Expected behavior
Even with a non-standard font, the legend should be centered properly, and clicking on a label should disable the correct dataset.
Current behavior
The legend seems to be positioned based on the wrong font width. Clicking on the right half of the second last label hides the last dataset instead of the second last. After that, the legend is re-centered, now correctly, and the click regions are correct.
Reproducible sample
https://www.borislau.de/chartjs_bug.html
Optional extra steps/info to reproduce

use a font that's wider than the regular by using Chart.defaults.font.family = 'Permanent Marker';
use 100% width/height
make many and wide labels, so that the error gets obvious

Possible solution
Didn't find a workaround.
Even waiting for document.fonts.ready doesn't help:
window.onload = function() {
    document.fonts.ready.then(function() {
        var ctx = document.getElementById('chartcanvas').getContext('2d');
        window.chart = new Chart(ctx, config);
    });
};

Context
I want to make a beautiful chart with the Bitstream Vera font, and I want to be able to hide and show datasets by clicking on the entries in the legend.
chart.js version
v4.3.0
Browser name and version
Firefox, Chrome, Safari
Link to your project
https://www.borislau.de/chartjs_bug.html

Note, that this applies to axis label positioning as well (see the y labels in my example).
If you know a workaround, I'd be happy to learn about it!

In terms of how we actually do the measuring, we're relying on measureText from the canvas. I don't think we ever just assume that the width is a constant per character, so I'm not sure where this is coming from.
If you hadn't already tried to wait for the fonts to be ready, that would have been my first suggestion. The code for us to investigate will be https://github.com/chartjs/Chart.js/blob/f2cfb933b910581c42631293e1536ceb502eef7b/src/helpers/helpers.canvas.ts#L39-L55.
What's curious is that when the Y axis maximum is < 5000, the labels are fine but they're wrong otherwise. It almost seems like in some cases we're sending the wrong labels to be measured

Thanks for the feedback! That helped me to further hunt down the issue.
At least in Firefox and Safari (but not in Chrome), the problem disappears if I assign the font to the canvas element via CSS, instead of just doing Chart.defaults.font.family = 'Vera';:
https://www.borislau.de/chartjs_bug_fixed.html
It seems that the measuring uses the default font. ctx.font = '12px Vera' also doesn't help, by the way.

Forgive me if I'm jumping in the thread (I was curious). I had a quick look to the code.
@etimberg the _measureText function of the helpers is not used in the legend plugin where measureText of the context 2d is always used directly.
I have anyway found another weird behavior using the code of @bolau.
Locally and reducing the size (width and height), the legend items are not all showed and the hit boxes are of course wrong.
It could be related to root cause of this issue.
It seems something related to the max width acceptable on the legend, It seems (but not sure yet, I'm still having a look), that there is a different control between update (to calculate the hitboxes and location) and draw phases. It could be also related to PR #11352 which solved for vertical legend.

@bolau @etimberg after a check, the code sound being correct.
But I see that the font is not loaded when chart is invoked.
Having a look to MDN, https://developer.mozilla.org/en-US/docs/Web/API/FontFace/load, @bolau I think you could use load method (and its Promise)  of FontFace instead of document.fonts.ready promise:
const fontface = new FontFace("Vera", "url(Vera.ttf)")
document.fonts.add(fontface);

const config = {
    type: 'line',
    },
	.....
}

window.onload = function() {
  fontface.load().then(function() {
    Chart.defaults.font.family = 'Vera';
    var ctx = document.getElementById('chartcanvas').getContext('2d');
     window.chart = new Chart(ctx, config);
  });
};

I have tested locally and sounds working.

@stockiNail very nice, indeed! This works! Thank you so much for your help!
Should we close this issue?

Thank you so much for your help!

UR welcome

Should we close this issue?

Yes, I think so.

Thanks @stockiNail, good find on the font loading


KFold cross validation example: Trainer has no attribute 'strategy'

🐛 Bug

I'm trying the K-Fold cross-validation example from pl_examples.
When I run the example, there is an error
AttributeError: 'Trainer' object has no attribute 'strategy'
`Traceback (most recent call last):
File "test_kflod.py", line 281, in
trainer.fit(model, datamodule)
File "/home/[USER]/[PATH]/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 740, in fit
self._call_and_handle_interrupt(
File "/home/[USER]/[PATH]/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 685, in _call_and_handle_interrupt
return trainer_fn(*args, **kwargs)
File "/home/[USER]/[PATH]/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 777, in _fit_impl
self._run(model, ckpt_path=ckpt_path)
File "/home/[USER]/[PATH]/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1199, in _run
self._dispatch()
File "/home/[USER]/[PATH]/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1279, in _dispatch
self.training_type_plugin.start_training(self)
File "/home/[USER]/[PATH]/lib/python3.8/site-packages/pytorch_lightning/plugins/training_type/training_type_plugin.py", line 202, in start_training
self._results = trainer.run_stage()
File "/home/[USER]/[PATH]/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1289, in run_stage
return self._run_train()
File "/home/[USER]/[PATH]/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1319, in _run_train
self.fit_loop.run()
File "/home/[USER]/[PATH]/lib/python3.8/site-packages/pytorch_lightning/loops/base.py", line 146, in run
self.on_advance_end()
File "test_kflod.py", line 206, in on_advance_end
self.trainer.strategy.setup_optimizers(self.trainer)
AttributeError: 'Trainer' object has no attribute 'strategy'`

Expected behavior

Environment

PyTorch Lightning Version (e.g., 1.5.0): 1.5.8 (Conda)
PyTorch Version (e.g., 1.10): 1.10.0 (pip)
Python version (e.g., 3.9): 3.8.12
OS (e.g., Linux): WSL
CUDA/cuDNN version: -
GPU models and configuration: -
How you installed PyTorch (conda, pip, source): pip
If compiling from source, the output of torch.__config__.show():
Any other relevant information:

Additional context

hey @KevinCrp !
the example there will work fine on master since Loops are currently experimental.
Check out the conversation here for more info and workaround: https://github.com/PyTorchLightning/pytorch-lightning/pull/11230#discussion_r774123525

It works, thanks


Translate "Testing Overview" to German

Thanks for the feedback @ph1p, I committed your suggestions.

Thanks for the feedback @ph1p, I committed your suggestions.

Top! Please resolve the failed build and I'll merge it.

@ph1p Fixed.


Mjml navbar - outlook 2016

I'm building a template email with a navbar, but when I show it in Outlook 2016 the menu does go outside. I use MJML version 4.3.1
That the code I write:
    <!-- MENU start -->     <mj-section background-color="#6c675b">       <mj-column>         <mj-navbar base-url="#" hamburger="hamburger" ico-color="#d8d1ce">           <mj-navbar-link href="#" color="#ffffff">Zimmer</mj-navbar-link>           <mj-navbar-link href="#" color="#ffffff">Wellnessbereich</mj-navbar-link>           <mj-navbar-link href="#" color="#ffffff">Test</mj-navbar-link>           <mj-navbar-link href="#" color="#ffffff">Urlaubspauschalen</mj-navbar-link>         </mj-navbar>       </mj-column>     </mj-section>     <!-- MENU end -->
Can you help me?

Hi,
How did you send your email ? Can you try with putsmail.com

Hi @Calfreider , i tested with your mjml on emailonacid and i don't have this result, it renders fine.
How do you test exactly ? How do you send the email ?

Hi,
I see this problem in outlook 2016.
I send the test mail with mjml.

Hi, the email rendering problem in Outlook 2016 is when I send the test email through the MJML Windows desktop App. When I send the html code through putsmail.com or mjml code through mailjet.com the problem doesn't exist.

Looks like it's an issue with Mailjet then, you should open a support ticket instead of here.
I'm closing then


add custom props

I want to add a custom string value to be pulled through when resizing, but there isn't a value you can add that will allow a string and I couldn't work out how to add a custom prop to the draggable component

I used the activated option to pass in the values I wanted


[CWS] rework kfilter internals

What does this PR do?

Rename structures to improve consistency
Use a single key for hashmap

Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


add Katie back to the TOC

Katie won the election for the TOC chosen seat: https://lists.cncf.io/g/cncf-toc/message/6787

cc @caniszczyk


Implementation and basic test for datetime functions: timestamp, datediff, dateadd and extract

Validates given string and converts/cast the string to timestamp.
Implementation of all supported date_part for datetime functions: datediff, dateadd and extract
Added tests for the same.
Signed-off-by: Girjesh Rajoria<EMAIL_ADDRESS>

typo : change the subject , to describe the general purpose of this PR.
need to add tests, its highly important for this kind of functionality (not random input, but systematic tests ).

@galsalomon66 Please review the updated changes.

@mattbenjamin Please review the changes

@galsalomon66 @mattbenjamin  Please review the new commit also.

timestamp functions interface should be modified, not to include string expression "hour" and such.
this syntax should be rejected by engine.
hour/day/minute etc. should be reserved words.

is there any c++ class that abstracts a recognized datetime?

no, there is no such class for datetime or any other data-type.
there is a value class which contain data (integer ,float ,string ,time) and basic operations (compare, binary-arithmetic)
and operators (derived from some base-class for operators)
operator operates on value(or more) and produce result (also value).
the class hierarchy, is about types of operations, i.e.
logical operators, arithmetic operators, functions operators.
the class hierarchy supports the s3-select semantics (projections and predicates) , and what is related to projections and predicates (function, binary-operations, various predicate construct)
upon develop a new projection type or predicate type, all semantics are there, makes it easy to create the specific operator.(s3select_functions contain all operators).

is there any c++ class that abstracts a recognized datetime?

no, there is no such class for datetime or any other data-type.
there is a value class which contain data (integer ,float ,string ,time) and basic operations (compare, binary-arithmetic).
there is class for operator (derived from some base-class for operators)
operator operates on value(or more) and produce result (also value).

@galsalomon66 @grajoria
There are some public utility classes that could be helpful to our implementation, maybe, for example:
https://www.boost.org/doc/libs/1_62_0/doc/html/date_time.html

is there any c++ class that abstracts a recognized datetime?

no, there is no such class for datetime or any other data-type.
there is a value class which contain data (integer ,float ,string ,time) and basic operations (compare, binary-arithmetic).
there is class for operator (derived from some base-class for operators)
operator operates on value(or more) and produce result (also value).

@galsalomon66 @grajoria
There are some public utility classes that could be helpful to our implementation, maybe, for example:
https://www.boost.org/doc/libs/1_62_0/doc/html/date_time.html

indeed.
the boost::ptime (https://www.boost.org/doc/libs/1_62_0/doc/html/date_time/posix_time.html) is used to implement s3select date-time functionalities. (date-add,date-diff,etc)
the boost::ptime is contained in class value.
the s3-select date-time operators should manage the input parameters, and call the appropriate  boost::ptime API with correct parameters.

@galsalomon66 @galsalomon66 Please review the changes.

@galsalomon66 @galsalomon66 Please review the changes.

suggestion for to_string implementation:  boost::regex replace ; create an alternation that includes each of the d+, s+, S+ ... patterns, and match (...)* of them -- this should be very efficient, although it seems like one model would be to match first, then use the same pattern to drive a one or more replace actions if anything matched

suggestion for to_string implementation:  boost::regex replace ; create an alternation that includes each of the d+, s+, S+ ... patterns, and match (...)* of them -- this should be very efficient, although it seems like one model would be to match first, then use the same pattern to drive a one or more replace actions if anything matched

suggestion for to_string implementation: boost::regex replace ; create an alternation that includes each of the d+, s+, S+ ... patterns, and match (...)* of them -- this should be very efficient, although it seems like one model would be to match first, then use the same pattern to drive a one or more replace actions if anything matched

yes, with / boost::regex replace / you can do "magic" , very powerful, there are some good examples in boost docs.
the boost::regex should set only once, it cost much to set it per each row.
the like::operator is a good example for that.

suggestion for to_string implementation: boost::regex replace ; create an alternation that includes each of the d+, s+, S+ ... patterns, and match (...)* of them -- this should be very efficient, although it seems like one model would be to match first, then use the same pattern to drive a one or more replace actions if anything matched

yes, with / boost::regex replace / you can do "magic" , very powerful, there are some good examples in boost docs.
the boost::regex should set only once, it cost much to set it per each row.
the like::operator is a good example for that.

some of the previous comments were not addressed, yet.

some of the previous comments were not addressed, yet.

ok, good coverage.
as discussed on later PR will add to_string and add nested / complex tests.

ok, good coverage.
as discussed on later PR will add to_string and add nested / complex tests.


Indicate userid module can no longer pass to ob

Google deprecated this feature, perhaps temporarily; see https://developers.google.com/authorized-buyers/rtb/request-guide

OB will begin passing 1st party publisher data contained in the EIDs array in an encrypted state soon.  I wasn't aware EIDs could more through OB, the feature described in that article is not familiar to me.  Perhaps they are deprecating it in preparation for this new encrypted eid payload?  Once we have docs for how pubs and id providers can do this I'll make sure they get up onto the pb.org site.

This is all true, but in the meantime, we have inaccurate doc as Google deprecated this long ago.

This is causing continuing user confusion, @jdwieland8282 @gglas @bretg can we merge this?


Allow config options when using the modesl.os.getConfig() method.

Connects to #319
change-type: minor

@pimterry This PR is blocked until the next API release that allows us to POST the the /download-config endpoint.


[BUG] turbogit build fails with libgit @1.4.2: git2go supports libgit2 between v1.3.0 and v1.3.0

Describe the bug

Recent libgit2 is unsupported in the base:
make: Entering directory `/opt/x86_64/var/macports/build/_opt_x86_64_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_turbogit/turbogit/work/turbogit-3.1.0'
go build -trimpath -o "bin/tug" -ldflags='-s -w -X "github.com/b4nst/turbogit/cmd.BuildDate=Tue May 10 16:35:07 2022" -X "github.com/b4nst/turbogit/cmd.Commit=refs/tags/v3.1.0" -X "github.com/b4nst/turbogit/cmd.Version=3.1.0"' ./main.go
# github.com/libgit2/git2go/v33
../.home/go/pkg/mod/github.com/libgit2/git2go/v33@v33.0.4/Build_system_dynamic.go:12:3: error: #error "Invalid libgit2 version; this git2go supports libgit2 between v1.3.0 and v1.3.0"
   12 | # error "Invalid libgit2 version; this git2go supports libgit2 between v1.3.0 and v1.3.0"
      |   ^~~~~
make: *** [bin/tug] Error 2

Also reported here: https://github.com/macports/macports-ports/pull/14602?notification_referrer_id=NT_kwDOBXwLlrMzNDYzMTg3NTU0OjkyMDE1NTEw#issuecomment-1114550734
To Reproduce

Steps

Expected behavior

Configure should allow for later versions of libgit2.
Actual behavior

Versions

macOS 10.6.8
Xcode 3.2.6
turbogit 3.1.0
libgit2 1.4.2
go 1.17.9
gcc 11.3.0
Additional context

Fixed in v4.0.0


[WIP][SPARK-35298][SQL] Migrate to transformWithPruning for rules in Optimizer.scala

What changes were proposed in this pull request?

Why are the changes needed?

Does this PR introduce any user-facing change?

How was this patch tested?

Test build #138144 has started for PR 32439 at commit 7fbd213.

Test build #138144 has finished for PR 32439 at commit 7fbd213.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
trait ExtractValue extends Expression

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

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42665/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42665/

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

Test build #138168 has started for PR 32439 at commit 98830eb.

Test build #138170 has started for PR 32439 at commit 7a6b879.

Kubernetes integration test unable to build dist.
exiting with code: 1
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42689/

Kubernetes integration test unable to build dist.
exiting with code: 1
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42691/

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

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

Test build #138170 has finished for PR 32439 at commit 7a6b879.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test build #138168 has finished for PR 32439 at commit 98830eb.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

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

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

Test build #138175 has started for PR 32439 at commit 381e38f.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42696/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42696/

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

@hvanhovell @gengliangwang @dbaliafroozeh @maryannxue this PR is ready for review.

Test build #138180 has started for PR 32439 at commit 564d8fb.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42701/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42701/

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

Test build #138175 has finished for PR 32439 at commit 381e38f.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

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

Test build #138180 has finished for PR 32439 at commit 564d8fb.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

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

Test build #138186 has started for PR 32439 at commit f376055.

Kubernetes integration test unable to build dist.
exiting with code: 1
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42707/

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

Test build #138186 has finished for PR 32439 at commit f376055.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

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

Test build #138419 has started for PR 32439 at commit 2408a18.

Test build #138408 has finished for PR 32439 at commit 0df10d1.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test unable to build dist.
exiting with code: 1
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42940/

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

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

Test build #138439 has started for PR 32439 at commit 5027ebc.

Kubernetes integration test unable to build dist.
exiting with code: 1
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42960/

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

Test build #138419 has finished for PR 32439 at commit 2408a18.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

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

Test build #138439 has finished for PR 32439 at commit 5027ebc.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

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

Thanks, merging to master

Hi, @gengliangwang and @sigmod .
The last commit seems to break JAVA 11. Could you take a look at this?

@dongjoon-hyun Thanks! @sigmod and I are looking at it. We will revert this if we can't resolve it shortly.


propertyNames with empty schema prevents validation of additionalProperties

What version of Ajv are you using? Does the issue happen if you use the latest version?
v6.5.3
Ajv options object

const options = {
  // allErrors: true,
  coerceTypes: 'array',
  ownProperties: true
};

JSON Schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "test.json",
  "type": "object",
  "additionalProperties": {
    "type": "array",
    "items": {"type": "string"},
    "uniqueItems": true
  },
  "propertyNames": {}
}

Sample data

{"foo": "abc"}

Your code

https://runkit.com/embed/xz907r79pjza
const Ajv = require('ajv');
const assert = require('assert').strict;
const ajv = new Ajv(options);
const validate = ajv.compile(schema);

test({foo: 'abc'}, {foo: ['abc']});

function test(data, expected) {
  const valid = validate(data);

  if (valid) {
    try {
      assert.deepStrictEqual(data, expected);
    } catch (e) {
      console.log(e);
    }
  }
}

Validation result, data AFTER validation, error messages
// Validation succeeds
{foo: 'abc'}

What results did you expect?
For the value to be coerced to an array. {foo: ['abc']}
It appears this issue only occurs if propertyNames  is an empty object. If anything is set (e.g. {enum: ['foo']}) then it will coerce the value to an array. OR another approach with the empty propertyName object is to enable the allErrors options.
Are you going to resolve the issue?
Not at this time.

It's a wider issue - additionalProperties keyword is not validated at all in this case.
https://runkit.com/esp/5ba7615233bc340012478b31


github bot for performance deltas

We care about performance now. So how are we going to avoid regressing it?
Find and reuse, or build a GitHub bot (or action) that posts performance results & deltas against latest main on PRs automatically.
For the performance tests themselves, we can use the new scale testing framework at https://github.com/filecoin-project/bacalhau/tree/copy-before-sharing-pointer/benchmark_hack (or benchmark_hack folder on main once that branch is merged).
For quick tests we can use make devstack-noop, but it's worth having real container tests too (even if it's just bacalhau docker run busybox /bin/true).
Where to run them? What runs them? We should have a dedicated physical server for running benchmarks, and we could attach it as a github actions runner, with max concurrency = 1. Where to store the results of the runs? Maybe on GCS? And the GitHub bot runs in GHA and reads from GCS to get the files for main to make the comparison with the current branch under test. The files on GCS could be the raw json files that explode.sh writes and we could adapt parse.py to do the comparison.

From @aronchick:

perf tracking discussion - ok, looked at my old project and talked to some folks internally, i think the BEST solution we have (for now) is building a new workflow that runs the perf test and then writes the results to a repo (or the main repo).
e.g. https://github.com/dapr/dapr/blob/master/.github/workflows/dapr-perf.yml

https://filecoinproject.slack.com/archives/C02RLM3JHUY/p1656607499304239

finished(-ish).


My project branch

Creating pull request

This should be in a separate repository, which it looks like you have now set up. But, if you want to merge this into a main, you need to make sure that you are merging into the branch in your own repository (Shaun-Wharton/egm722:main), not the upstream repository.

Hi Dr McNabb, yes I managed to somehow mess up the first set up of my repository. I realised a few days ago and re-set up and started again in my new repository. Many thanks, Shaun.
On 14 May 2024, at 09:20, Bob McNabb @.***> wrote:

This should be in a separate repository, which it looks like you have now set up. But, if you want to merge this into a main, you need to make sure that you are merging into the branch in your own repository (Shaun-Wharton/egm722:main), not the upstream repository.
—
Reply to this email directly, view it on GitHubhttps://github.com/iamdonovan/egm722/pull/44#issuecomment-2109567870, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BG4TMWQIDKXE2QAP3TFYK4DZCHCMZAVCNFSM6AAAAABHO4PDHGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMBZGU3DOOBXGA.
You are receiving this because you authored the thread.Message ID: @.***>


Fix error with 'mysql_native_password' option when attempting to bring up a mysql container

Description
When MYSQL 8.4 was released it it no longer supports the default-authentication-plugin=mysql_native_password configuration, instead you need to specify mysql_native_password=on from MYSQL version 8.4 onwards.
This was attempted to be fixed in pull request #3521 but this broke it completely. There are a number of issues on this pull request;

MYSQL_VERSION won't just be a number, it can be 'latest' (this is the default open in Laradock)
To compare floats (in this case, version strings), it requires some funkyness which has been implemented, because the previous check didn't do that, it caused the script to also go to the true block no matter what the version of MySQL was
Missing semi-colon on line 19 that caused the rest of the bash script to be echo'd to the file, so even if the if statement did work as expected the config file would still be wrong

This pull request implements logic into the Dockerfile for the MySQL container to check what version of MySQL is running and fixes this issue.
Motivation and Context
This fixes the problem of the MySQL container not getting stood up no matter what version of MySQL you try to use.
Types of Changes

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

Definition of Done Checklist:

[X] I've read the Contribution Guide.
[] I've updated the documentation. (refer to this for how to do so).
[X] I enjoyed my time contributing and making developer's life easier :)

A simpler way, as part of my.cnf:
loose-default-authentication-plugin=mysql_native_password

With loose the invalid option is ignored by the server.
Or you could put
[mysql-8.4]
mysql_native_password=on

I did not know that about that configuration options.
Agreed that it might be the simpler solution, not sure if that will change in the future if they change the config....
Will leave this open now for the maintainers to see what direction that'd like to go to solve this issue.
Cheers!

You are right, checking the MySQL version should not rely on the MYSQL_VERSION environment variable to determine whether to enable mysql_native_password. It must use the installed system version to make the determination.
RUN MYSQL_VERSION=$(mysqld --version | grep -o -E "[0-9]+\.[0-9]+\.[0-9]+") && \
    if [ "$(printf '%s\n' "8.4.0" "$MYSQL_VERSION" | sort -V | head -n1)" = "8.4.0" ]; then \
        echo "mysql_native_password=on" >> /etc/mysql/conf.d/my.cnf; \
    else \
        echo "default-authentication-plugin=mysql_native_password" >> /etc/mysql/conf.d/my.cnf; \
    fi

@Trentr9 You are right, checking the MySQL version should not rely on the MYSQL_VERSION environment variable to determine whether to enable mysql_native_password. It must use the installed system version to make the determination.

RUN MYSQL_VERSION=$(mysqld --version | grep -o -E "[0-9]+\.[0-9]+\.[0-9]+") && \
    if [ "$(printf '%s\n' "8.4.0" "$MYSQL_VERSION" | sort -V | head -n1)" = "8.4.0" ]; then \
        echo "mysql_native_password=on" >> /etc/mysql/conf.d/my.cnf; \
    else \
        echo "default-authentication-plugin=mysql_native_password" >> /etc/mysql/conf.d/my.cnf; \
    fi

For others that ran into this problem of not being able to build the mysql container (getting this error: [ERROR] unknown variable 'mysql_native_password=on else echo default-authentication-plugin=mysql_native_password')  - replacing the following block in laradock/mysql/Dockerfile with @rc1021 's solution above and rebuilding my mysql container with docker compose build --no-cache mysql worked for me (MYSQL_VERSION=5.7, in my case):
RUN if [ ${MYSQL_VERSION} > '8.4.0-0.000' ]; then \
  echo 'mysql_native_password=on' >> /etc/mysql/conf.d/my.cnf \
else \
  echo 'default-authentication-plugin=mysql_native_password' >> /etc/mysql/conf.d/my.cnf \
;fi

@rc1021 Nice pickup -- I though I was checking the installed MYSQL version but I am not. Must've been up too late doing this!
You're requested change looks great, except when they release 8.4.1 or above it will break again so I have modified my original code to looks at the installed MYSQL version as it should've in the first place, but still does the magic to see if the version installed is newer than 8.3 :)

Someone can please tell me how to fix this, step by step. I've read everything but still cannot fix this error.

Someone can please tell me how to fix this, step by step. I've read everything but still cannot fix this error.

same, on mac m1 :( @grooverdan can you help us

There's a merged fix so not sure why this is still open. If still having trouble, use MariaDB instead.

@grooverdan that merge actually broke it...

@Chung-NB @sang-hv
You could run
git clone https://github.com/Trentr9/laradock.git
That will clone the repo from me that has the fix that I'm waiting for to be merged in

I recommended a very simple configuration option only solution. Not sure why everyone's feeling compelled to write version checks script when the server can already to version checking.

I recommended a very simple configuration option only solution. Not sure why everyone's feeling compelled to write version checks script when the server can already to version checking.
@grooverdan I also don't know why, when I build on mac mini M1 - it works but on mac pro m1 it fails
unknown variable 'mysql_native_password=on else echo default-authentication-plugin=mysql_native_password'

@Chung-NB @sang-hv
You could run git clone https://github.com/Trentr9/laradock.git
That will clone the repo from me that has the fix that I'm waiting for to be merged in

thank you!

I recommended a very simple configuration option only solution. Not sure why everyone's feeling compelled to write version checks script when the server can already to version checking.
@grooverdan I also don't know why, when I build on mac mini M1 - it works but on mac pro m1 it fails

reading error message is a good way to understand.

unknown variable 'mysql_native_password=on else echo default-authentication-plugin=mysql_native_password'

That's not what I said. For the avoidance of doubt - #3530.

我根據樓主的解法，已經成功運行，最重要的是修改DockerFile

@sang-hv @Chung-NB
Try
docker volume rm $(docker volume ls -q)

After that run
docker-compose up -d mysql

From VietNam fucking with love

Hello,
In mysql Dockerfile I changed from this:
RUN if [ ${MYSQL_VERSION} > '8.4.0-0.000' ]; then \   echo 'mysql_native_password=on' >> /etc/mysql/conf.d/my.cnf \ else \   echo 'default-authentication-plugin=mysql_native_password' >> /etc/mysql/conf.d/my.cnf \ ;fi
to this
RUN if [ ${MYSQL_VERSION} > '8.4.0-0.000' ]; then \   echo 'mysql_native_password=on' >> /etc/mysql/conf.d/my.cnf; \ else \   echo 'default-authentication-plugin=mysql_native_password' >> /etc/mysql/conf.d/my.cnf; \ fi
It works for me

Hello,
In mysql Dockerfile I changed from this:
RUN if [ ${MYSQL_VERSION} > '8.4.0-0.000' ]; then \ echo 'mysql_native_password=on' >> /etc/mysql/conf.d/my.cnf \ else \ echo 'default-authentication-plugin=mysql_native_password' >> /etc/mysql/conf.d/my.cnf \ ;fi
to this
RUN if [ ${MYSQL_VERSION} > '8.4.0-0.000' ]; then \ echo 'mysql_native_password=on' >> /etc/mysql/conf.d/my.cnf; \ else \ echo 'default-authentication-plugin=mysql_native_password' >> /etc/mysql/conf.d/my.cnf; \ fi
It works for me

is the same!!

Hello,
In mysql Dockerfile I changed from this:
RUN if [ ${MYSQL_VERSION} > '8.4.0-0.000' ]; then \ echo 'mysql_native_password=on' >> /etc/mysql/conf.d/my.cnf \ else \ echo 'default-authentication-plugin=mysql_native_password' >> /etc/mysql/conf.d/my.cnf \ ;fi
to this
RUN if [ ${MYSQL_VERSION} > '8.4.0-0.000' ]; then \ echo 'mysql_native_password=on' >> /etc/mysql/conf.d/my.cnf; \ else \ echo 'default-authentication-plugin=mysql_native_password' >> /etc/mysql/conf.d/my.cnf; \ fi
It works for me

is the same!!

Missing ";" after my.cnf

RUN if [[ ${MYSQL_VERSION} > '8.4.0-0.000' && ${MYSQL_VERSION} < '9.0.0-0.000' ]]; then \
  echo 'mysql_native_password=on' >> /etc/mysql/conf.d/my.cnf; \
elif [ ${MYSQL_VERSION} > '9.0.0-0.000' ]; then \
  : \
else \
  echo 'default-authentication-plugin=mysql_native_password' >> /etc/mysql/conf.d/my.cnf; \
fi

it works for me.  could give it a try?
If you use MYSQL_VERSION=latest, you'll get the newest MySQL 9.0 after July 3, 2024. In this version, the configuration mysql_native_password=on will cause the MySQL container to crash.
maybe due to this?

try #3540

try #3540

doesn't work

Did you change .env?
-MYSQL_VERSION=latest
+# 5.7, 8.0, 8.4, 9.0
+MYSQL_VERSION=8.4


Setup for k8

use minikube as an example

Done in https://github.com/laurentsimon/oss-na24-slsa-workshop


Expanded distro_shorthand to support non-LSB solutions

Added tiny option (just show the name of the distro)
Added cases for CRUX (tested)
Added cases for /etc/*ease (Tested on Debian, Void Linux, Fedora, CentOS, NixOS, and Slackware)

Question: Should we add another case for distros that uses non-standard convention (e.g. Tails, BLAG, OpenWRT)?

Added distro_shorthand option for Tails and OpenWRT. I'm testing it now.

RFC on the latest one, please.

I'll take a closer look at this tomorrow, thanks for the PR.

There's a commented line in config/config that you need update.
Other than that, LGTM :+1:

Which one? Line 65 seems clear.
Anyway, I initially wanted to add BSD support earlier, but since BSDs kernel release == version release, I decided to drop it for now.

This comment:
# Shorten the output of distro
# NOTE: This is only possible on Linux with lsb_release
distro_shorthand="off"

You should update it to match the comments in the Readme and etc.

Merging, thanks for the PR!


Couple Other Languages questions added to FAQ

The content looks good, but is it related to specific issues? Most PRs I see have no issue attached to them. Is it because people are requesting content on Slack? If so, is there a way to track this?

@alandefreitas  Vinnie has a lot of quick daily changes he wants to see get into place. Due to the frequency and the number of tasks, Julio and I have been tasked with knocking them out, and just verify that they pass the checks for the time being. This was also discussed with Joaquin, before he went on vacation. This is a temporary and targeted situation related to a number of UI changes.