[vue-compat] @click not working on components

Version
3.1.2
Reproduction link
https://github.com/liamdebeasi/vue3-repro
Steps to reproduce

Clone repo and run npm install.
Run npm run serve to start up a dev server.
Click the "Click me!" text and observe that nothing is logged to your Dev Tools Console.
Quit the dev server and comment out the config.resolve.alias line in vue.config.js to disable the compat mode.
Run the dev server again.
Click the "Click me!" text and observe that this time the "Component was clicked!" text is logged to your Dev Tools Console.

What is expected?
I would expect that the click handler is fired regardless of whether or not I am using the compat build.
What is actually happening?
The click handler is only firing when not using the compat build.

In Vue 2 you need to use the .native modifier with v-on bindings when the component itself is not emitting click. I believe the compat build is aimed to align with this behavior.

Thanks! I tried that, but the click handler still does not fire. I am doing:
<app-cmp v-on:click.native="onClick()">Click me!</app-cmp>

The syntax you are using for the functional component seems off. It should be:
import { defineComponent, h } from 'vue';
const defineContainer = (name) => {
  const Container = ((props, { slots }) => {
      return h(name, props, slots.default && slots.default());
  });

  Container.displayName = name;
  return Container;
};

(https://v3.vuejs.org/guide/migration/functional-components.html#_2-x-syntax)

You have other warnings telling you the next steps for migration in the console, so I'm closing this.
Remember to use the forum or the Discord chat to ask questions!

Please correct me if I am wrong, but I thought my original syntax is also valid? Passing a function to defineComponent is the same thing as passing a setup function according to https://v3.vuejs.org/api/global-api.html#definecomponent. This particular syntax seems to be used in Vue 3 tests implying that it is valid as well: https://github.com/vuejs/vue-next/blob/349eb0f0ad78f9cb491278eb4c7f9fe0c2e78b79/packages/server-renderer/tests/render.spec.ts#L100-L103
Also even when use the syntax your proposed and after making the migrations suggested in the console, the issue persists.

.native doesn't work in the compat view, so there doesn't even seem to be a workaround for this.  There's not steps shown in the console at all if not using .native - just nothing fires.
FYI this breaks all of the ionic/vue system with 3.1

@posva Any tips how to get click events to fire in components we don't control with 3.1 compat?  I.e. via the ionic framework.  Since the removal of .native there doesn't seem to be any way to make this work.  There's no console migration notices besides to remove .native - just no click events fire.  I think maybe this is a bug and 3.1 should still allow the use of .native handler when the combability hasn't disabled it?

.native is listed as being fully supported in compat build.
@liamdebeasi Your app is missing is the second part of the webpack config described in the migration guide - setting the compiler to compat mode:
config.module
      .rule('vue')
      .use('vue-loader')
      .tap(options => {
        return {
          ...options,
          compilerOptions: {
            compatConfig: {
              MODE: 2
            }
          }
        }
      })

After I added this to your repro, click worked.
@inspire22 .native is fully supported by the migration build. If you found a scenario where it doesn't work as intended, please open a new issue with a reproduction so we can check it out.

Thanks! I added the webpack config and changed the click handler to v-on:click.native and now the click events are working as expected. I think I got confused by the The migration build runs in Vue 2 mode by default line in the docs and thought that the webpack part was not necessary unless you needed to customize some part of the compat build.

in step 3 of the Installation instructions it explicitly states:

In the build setup, alias vue to @vue/compat and enable compat mode via Vue compiler options.

Should that be changed to be clearer? Or should the introduction further up which threw you off be changed? If so, do you have something in mind? The folks in the docs-next repo would be happy to get suggestions.

Yeah I think the intro section threw me off with the way it was worded. I'll think of a clearer way to word it and make an issue/PR on the docs-next repo. Thanks!

@liamdebeasi I've made the .native updates to my ionic-based repo and click is still not fired - could this be related to the changed defineComponent vs what vue/ionic does?  https://github.com/inspire22/ionic-click-bug
I'd been confused in thinking that .native wasn't supported because the included .eslint.rc had "plugin:vue/vue3-essential" which refuse to compile while .native was included.
Also - in ionic with vue version 3.0 .native wasn't required, correct? I guess this is a tricky interaction between the compat mode for vue and ionic's support for vue 3.0

Let's move the conversation back to the Ionic Framework repo and we can continue to discuss there.

@inspire22 Your repro is also missing the compiler config here:
https://github.com/inspire22/ionic-click-bug/blob/ee441b9083a54d3e43a904213f8494c39f5f7121/myApp/vue.config.js#L16

@inspire22 The compiler config is not the solution in terms of Ionic.
Ionic exports Vue 3 components. But in compat mode, the app would treat them like Vue 2 components by default. You can do the following:
import {IonContent, IonHeader, IonPage, IonTitle, IonToolbar, IonButton} from "@ionic/vue";
import {defineComponent} from "vue";

IonButton.compatConfig = {
	MODE: 3
}

Which makes the alert pop up for me.
To make this less messy, you might have to come up with a clever wrapper or sth. Idea:
import {IonContent, IonHeader, IonPage, IonTitle, IonToolbar, IonButton} from "@ionic/vue";
import {defineComponent} from "vue";

// you would of course import this from a module in each of your components
function fixCompModes(components) {
	Object.entries(components).map(([name, component]) => {
		if (!component.compatConfig && name.startsWith('Ion') {
			component.compatConfig = { MODE: 3 }
		})
	})
}

export default defineComponent({
	name: "Home",
	components: fixCompMode({
		IonContent,
		IonHeader,
		IonPage,
		IonTitle,
		IonToolbar,
		IonButton,
	}),
	methods: {

//...

This will add a very small one-time runtime overhead, but should not be harmful considering Vue 3 itself is faster than Vue 2.

Brilliant, thanks so much to everyone for their help!


GraphEdit toolbar panel style regression

Tested versions
4.2.2-stable
4.3.beta1
System information
Windows 11 - Godot 4.3.beta1 and Windows 11 - Godot 4.2.2.stable
Issue description
In Godot 4.2, we adjust the GraphEdit toolbar HBoxContainer as follows when themes are changed:
if (PanelContainer* pc = Object::cast_to<PanelContainer>(get_menu_hbox()->get_parent())) {
  Ref<StyleBoxFlat> hbox_panel = pc->get_theme_stylebox("panel")->duplicate();
  hbox_panel->set_shadow_size(1);
  hbox_panel->set_shadow_offset(Vector2(2.f, 2.f));
  hbox_panel->set_bg_color(hbox_panel->get_bg_color() + Color(0, 0, 0, .3));
  hbox_panel->set_border_width(SIDE_LEFT, 1);
  hbox_panel->set_border_width(SIDE_TOP, 1);
  hbox_panel->set_border_color(hbox_panel->get_shadow_color());
  pc->add_theme_stylebox_override("panel", hbox_panel);
}

This works well and as expected, shown here:

However, on Godot 4.3, when multiple scene tabs are open and we switch between the scene tabs, and our plug-in, we notice that the border and shadow of the HBoxContainer changes and renders unexpectedly:

Now the difference I have noticed is that the visual script that is open is attached to the root node of the test scene, and when switching to the world_3d scene it doesn't do this, only when changing tabs to the test scene that has the script attached.
The same code works without any regression or issue on Godot 4.2.2.stable.
I've checked, and the theme isn't reapplied on tab switches, so this seems internal to the GraphEdit control itself, although I have yet to determine exactly what.
Steps to reproduce

Install Orchestrator plugin from Asset Library into a fresh project.
Create two scenes: Scene A is a simple Node3D scene, Scene B is a single node UI based scene.
In Scene B, create a new Orchestration and attach it as the script to the root node in Scene B.
Save both scenes and orchestation, restart editor.
Upon restart, editor shows Scene B and the orchestration graph, everything looks okay.
Click on the scene tab A, orchestration graph remains unaffected.
Click on the scene tab B to go back to the scene that has the visual script attached, GraphEdit toolbar regression happens but only on Godot 4.3.beta1, does not happen on Godot 4.2.2.stable.

Minimal reproduction project (MRP)
N/A

I can confirm the GraphEdit hbox toolbar container, PanelContainer is initially rendered with the size of 599x34.  When changing focus, the PanelContainer gets resized to 8x4, which is not expected, and the PanelContainer no longer is sized based on the contents of the panel.

The offending commit is 5c28814b3944f899c6e8971f28c7857e4c2a9e13


feat: AnnouncementsList component

Summary of Changes
Adds basic unstyled announcement list component
Tests
Added tests on a TDD basis
CheckList
Make sure you have checked all steps below to ensure a timely review.

[ ] PR title addresses the issue accurately and concisely. Example: "Updates the version of Flask to v1.0.2"

In case you are adding a dependency, check if the license complies with the ASF 3rd Party License Policy.

[ ] PR includes a summary of changes, including screenshots of any UI changes.
[ ] PR adds unit tests, updates existing unit tests, OR documents why no test additions or modifications are needed.
[ ] In case of new functionality, my PR adds documentation that describes how to use it.

All the public python functions and the classes in the PR contain docstrings that explain what it does

[ ] PR passes all tests documented in the developer guide

Codecov Report

Merging #540 into feature/announcements will increase coverage by 0.12%.
The diff coverage is 100.00%.

@@                    Coverage Diff                    @@
##           feature/announcements     #540      +/-   ##
=========================================================
+ Coverage                  81.16%   81.28%   +0.12%
=========================================================
  Files                        230      232       +2
  Lines                       5745     5783      +38
  Branches                     682      688       +6
=========================================================
+ Hits                        4663     4701      +38
  Misses                      1014     1014
  Partials                      68       68

Impacted Files
Coverage Δ

amundsen_application/api/announcements/v0.py
40.74% <ø> (ø)

...on/static/js/components/AnnouncementPage/index.tsx
100.00% <100.00%> (ø)

...s/common/Announcements/AnnouncementsList/index.tsx
100.00% <100.00%> (ø)

...ic/js/components/common/Announcements/constants.ts
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


Cache and output directory is not accessible for user in Flutter Android

User can access cache and output files on Flutter iOS but not on Flutter Android app.

The current code uses getApplicationDocumentsDirectory() to get the storage location.
The returned path is /data/user/0/org.mlcommons.android.mlperfbench/app_flutter and is inaccessible for user.
Per docs

/// On iOS, this uses the NSDocumentDirectory API. Consider using
/// [getApplicationSupportDirectory] instead if the data is not user-generated.
///
/// On Android, this uses the getDataDirectory API on the context. Consider
/// using [getExternalStorageDirectory] instead if data is intended to be visible
/// to the user.

If we use getExternalStorageDirectory(),
the returned path is /storage/emulated/0/Android/data/org.mlcommons.android.mlperfbench/files
The problem is Android/data/ is inaccessible for user with Android 11 (SDK 30) using the default File Manager app. It stills accessible through 3rd party File Manager apps, though.
Or using a File Manager on a desktop computer and access the files via USB also works.


Net::BufferedIO counts multi-byte characters as one byte

When calling Net::BufferedIO#read, the len parameter is interpreted as number of characters, this breaks HTTP calls when the response contains multi-byte characters (possibly causes other issues elsewhere).
I've written a quick and dirty fix (mostly to verify that the problem is as described):
class Net::BufferedIO

  def read(len, dest = '', ignore_eof = false)
    LOG "reading #{len} bytes..."
    read_bytes = 0
    begin
      while read_bytes + @rbuf.bytesize < len
        dest << (s = rbuf_consume(@rbuf.size))
        read_bytes += s.bytesize
        rbuf_fill
      end
      dest << (s = rbuf_consume(len - read_bytes))
      read_bytes += s.bytesize
    rescue EOFError
      raise unless ignore_eof
    end
    LOG "read #{read_bytes} bytes"
    dest
  end

  def rbuf_consume(len)
    s = @rbuf.slice!(0, len)
    if s.bytesize
      truncated = s.bytes.slice(0, len).pack('c*')
      @rbuf = s.bytes.slice(len, s.bytes.length).pack('c*')
      return truncated
    end
    @debug_output << %Q[-> #{s.dump}\n] if @debug_output
    s
  end

end

This will probably break in the case when the buffer is consumed up to a point in the middle of a multi-byte character, however it does fix issues I've been having with requesting certain web pages. I'm not sure what the best way to actually fix this is, my feeling is that the BufferedIO class should not be concerned with character encodings, seeing as the read method is usually used to retrieve a number of bytes from it. Any feedback would be much appreciated.

@slicedpan thanks for reporting this, and super thanks for the repo script. I think it's related to an IO issue that I'm debugging in Rubinius right now. I'll test with your repro.

@slicedpan Thanks for the report and repro. I am hot on the trail of a fix.
For anyone else following along, THIS IS WHY using strings as "byte arrays" is a bad idea. Ruby's String and Encodings system is such junk. IMO.

@slicedpan Many thanks for the code to reliably reproduce this problem. It's been fixed in rubysl-socket 2.2.0 and will be tagged in a new rubinius release tonight (3.61 presumably).
If you can confirm it fixes your problem, please comment here and close the issue.

Just a quick note to explain the problem...
The Socket classes were not defaulting to binary mode. As a result the strings were using UTF-8 encoding. Using size and index on a UTF-8 string was breaking things. By forcing sockets into binary mode upon creation we correctly set the string encoding to ASCII_8BIT which then allows size and index to work correctly. These changes were made in rubysl-socket so there is no need to patch rubysl-net-protocol.
Again, thanks for the report and the reproduction. Without the repro code, this bug would have taken much longer to fix!

@slicedpan thanks again for the repro. Rubinius 3.61 has been released. Unfortunately, Travis isn't processing OSX builds, so there is no OSX binary yet, and I'm still waiting for the Ubuntu 14.04 build to complete so the Docker container can build.
If you can build from source, let us know if the problem looks fixed for you.


Limit auth to a certain domain

👋
I want to limit auth for users from a certain domain eg @example.com.
I've seen that I can setup rules in firestore (eg stackoverflowHow do I create firestore rules based on users email domain?) which is great.
But I was wondering if there was a way to use setCustomParameters( as described here Firebase limit access to certain domains ) in firebaseui-web-react?
var provider = new firebase.auth.GoogleAuthProvider();
provider.setCustomParameters({
    hd: "example.com"
});

I found you can use OAuthSignInOption.customParamter.
Here is example.
  const uiConfig: firebaseui.auth.Config = {
    signInFlow: 'popup',
    signInSuccessUrl: '/',
    signInOptions: [
      {
        provider: firebase.auth.GoogleAuthProvider.PROVIDER_ID,
        customParameters: {
          hd: 'example.com',
        },
      },
    ],
  };


Fixed some documentation links

So I am going to merge it, no matter the comment, actually using ExceptionUtils is worse, because then the user can't directly open a browser, which this code seems to do.


Build failure due to missing extension files

Solution to issue cannot be found in the documentation.

[X] I checked the documentation.

Issue
the 0.6.0 release is failing because of test_preload_extension failing to find an expected extension file that is 404ing
=================================== FAILURES ===================================
____________________________ test_preload_extension ____________________________

    @mark.skipif(os.uname().machine == "aarch64", reason="not supported on aarch64")
    def test_preload_extension() -> None:
>       duckdb.default_connection.execute("INSTALL httpfs")
E       RuntimeError: IO Error: Failed to download extension http://extensions.duckdb.org/c1bb9f6/linux_amd64/httpfs.duckdb_extension.gz

@mause are we just being impatient about those extension files?  Or is this test failure spurious?
Installed packages
n/a

Environment info
n/a

Okay, looks like the conda duckdb version is being built wrong - the git sha hash in the URL corresponds to https://github.com/conda-forge/python-duckdb-feedstock/commit/c1bb9f667eee001e09b3913aa3cf08d56cd33688 which it absolutely should not

This basically means extensions are unusable in the conda build of duckdb

that seems like a problem.  I'll take a look.  thanks @mause!

Fixed upstream


[DOC] Add license information in README

Add the license information in README file.
Expected result
License information would be present in README
Actual result
No License information

@adityadeshpande09 Thanks for contacting us.
This is a good suggestion and it would be appreciated if you could submit a PR for it too.

@msynk ?

@ysmoradi it's a good practice to have a link to the license file in the readme.
btw, what is this UI? mine is like this 😁

Those UI changes will be available to you soon as well and I think with such a UI change, that convection will gone!

@ysmoradi Oh in that case you are right then, so we can close this issue.


Add Treasury pallet to Trappist.

This PR is configuring the treasury pallet according to the requirements described on the issue https://github.com/paritytech/trappist/issues/145.
Most of the values have been taken from the Kusama treasury configuration. But the following configs were set empty:
	type Burn = ();
	type BurnDestination = ();
	type SpendFunds = ();

Burn: For the moment we didn't agree any burning mechanism to provoke deflation over the supply, so no funds will be burnt.
SpendsFunds: This is mostly used for the Bounty pallet, that it was not decided to be implemented at this time.
Closes https://github.com/paritytech/trappist/issues/145

I'm not completely sure I understand the purpose of the trappist-common runtime.

@stiiifff instances number updated.


Allow load statements in conditionals and loops

The commit https://github.com/google/starlark-go/commit/cd131d1ce9d424fe23fac85e99953ad099021287 disables the load statements in conditionals and loops, saying that:

This is a potentially breaking language change, but I suspect few users care. If you are one of them, please report the issue.

Looking at the official spec, namely, the Load statements and Grammar reference sections, nothing prevents the load statement to be in a conditional or a loop.
We need this feature at Cirrus Labs for our Starlark tasks, and it seems that fellows at Tilt need it too for their core product's Tiltfile.
Since this is the current behavior for almost 4 years now, perhaps a good compromise would be giving the users of this package an option to re-enable this behavior using the syntax.FileOptions.

Regarding the spec:

A load statement within a function is a static error.

a for loop is permitted only within a function definition. A for loop at top level results in a static error.

An if statement is permitted only within a function definition. An if statement at top level results in a static error.

Why can't you move the load statement to the top level?  Do you need conditional loads?

A load statement within a function is a static error.

Why can't you move the load statement to the top level?

We're already at the top level.

a for loop is permitted only within a function definition. A for loop at top level results in a static error.
An if statement is permitted only within a function definition. An if statement at top level results in a static error.

This seems to be allowed in this project by the TopLevelControl in syntax.FileOptions, though.

Do you need conditional loads?

Exactly.
Our use-case is gracefully falling back to using a stub identifier when loading of the module that contains a non-stub identifier is not possible (e.g. due to lack of permissions, or just the lack of module itself).
Here's an example that is demonstrates this for module existence:
# .cirrus.star

load("cirrus", "fs")

if fs.exists("private.star"):
    load("private.star", "greeting")
else:
    def greeting():
        return "Goodbye, cruel World!"

def main(ctx):
    print(greeting())

    return []

# private.star

def greeting():
    return "Hello, World!"

Frankly, having the load statements in functions would be the most cleanest solution, but this is currently not allowed by the spec.
Another way we've tried to work around this is to return a StringDict with the loadable identifier set to nil, however, this requires us to know the identifiers that will be loaded in advance, and this information is not available in the Load callback.

Looking at the official spec, namely, the Load statements and Grammar reference sections, nothing prevents the load statement to be in a conditional or a loop.

As @laurentlb points out, this is a misreading of the spec; the intended behavior is clear from the portions he quoted, and the rationale is clearly expressed in #275.

We need this feature at Cirrus Labs for our Starlark tasks, and it seems that fellows at Tilt need it too for their https://github.com/tilt-dev/tilt/issues/3524.

Reading the attached Tilt issue, it would appear that they found an alternative approach some years ago and don't actually need this feature. Have you explored the approach they took?

Since this is the current behavior for almost 4 years now, perhaps a good compromise would be giving the users of this package an option to re-enable this behavior using the syntax.FileOptions.

We try hard to avoid adding new options that change the language semantics. Most that exist were necessary to enable compatibility between different implementations and gradual harmonization; many that used to exist (e.g. float, nesteddef, bitwise, lambda) have become obsolete due to spec standardization. Some exist to support the REPL. Ideally we would never add more.
Since this is a proposal to change the core semantics of the language, it should be proposed at bazelbuild/starlark.

@edigaryev Did you ever file this as an issue to bazelbuild/starlark? I looked for any recent issue about loading but couldn't find one. Restoring load statements inside conditionals and loops would be very useful for a tool I'm building.

@edigaryev Did you ever file this as an issue to bazelbuild/starlark? I looked for any recent issue about loading but couldn't find one. I'm happy to file one if not. Restoring load statements inside conditionals and loops would be very useful for a tool I'm building.
Also in the meantime: are you maintaining a fork that re-enables load statements in conditions/loops?

Actually it seems pretty trivial for consumers to implement dynamic loading themselves if they need it. Here's the implementation I came up with: https://gist.github.com/discentem/b6afae321df6821326f0675630b9eb6b
Not sure if it's possible to dynamically load symbols, as I don't need it.


fix: rename KeeperRegistryInterface to include versioning

Closing issues
closes #962
Description
fixes breaking changes in this pr: https://github.com/smartcontractkit/chainlink/pull/7264

This is in the develop branch but not in the contracts NPM package or in the upcoming 1.8.0 release. Let's hold on this for now.


[QUESTION]: position sticky

Hi, I'm not sure, if this is a feature request or I just need an example, but I would like to make non-leaf elements 'sticky'. Is there a way? Similar to https://github.com/marchaos/react-virtualized-sticky-tree . Thanks

According to react-window, it supports sticky items, though it requires some additional code. I haven't try it myself but if the react-window's example is not enough, please let me know. I'll try to prepare some react-vtree specific example.

Since there is no recent activity, I'm closing the issue


docs(readme): updating readme, adding docs

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

This PR is in progress, please do not merge.


[Bug] skywalking-client-js not sending errors to OPM server

Search before asking

[X] I had searched in the issues and found no similar issues.

Apache SkyWalking Component
NodeJS Client Side Agent (apache/skywalking-client-js)
What happened
When an error occurs in our vue app the skywalking client doesn't appear to report it to the skywalking dashboard.
It is discussed in this topic however I have done more troubleshooting today.
https://github.com/apache/skywalking/discussions/8723
What you expected to happen
If an error happens in our vue app the skywalking-client-js will report the error to the OPM server and the error will appear in the trace or the errors chart.

How to reproduce
I have made a vue app with the following bits of code to activate skywalkings
main.js
Vue.config.productionTip = false;
Vue.config.errorHandler = (error) => {
    console.trace("Error Event Happened: ", error);
    ClientMonitor.reportFrameErrors(
        {
            collector: "https://skywalking",
            service: name,
            pagePath: router.currentRoute,
            serviceVersion: `v${version}`,
            vue: true,
        },
        error,
    );
};

router.js
router.beforeEach(async (to, _from, next) => {
    ClientMonitor.setPerformance({
        collector: "https://skywalking",
        service: name,
        pagePath: to.path,
        serviceVersion: `v${version}`,
        useFmp: true,
        vue: true,
    });

    return next();
});

Page to make a fake error (Should be reported into skywalking dashboard.)
<template>
    <v-container fluid fill-height>
        <v-row>
            <v-col class="d-flex flex-column align-center justify-center text-center">

404: Page Not Found!

            </v-col>
        </v-row>
    </v-container>
</template>

The performance reports appear to be getting through just not the error reports.

Anything else
Only when an error is thrown in the app, the errors and traces don't appear in the skywalking dashboard.
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Looks like you didn't use the register  function in your application. @warrmr

Let me try that and I will get back to you, thanks. Wasn't sure If i needed to use register if I am using setPerformance as the documentation implies register is for if you are using auto reporting for SPAs.
Thanks for the speedy replys.

@warrmr I found it out.  The vue: true, is wrong. Please check the parameter types here
BTY, there's no need to set value for vue filed  in your case.

Adding register seemed to do the trick :) There are two small problems now. The first is that the calls inside of the firebase/auth module are failing with the register function turned on.  I assume this is because the nosniff flag in the headers is set and skywalking intercepts all calls.

The other issue is that when you first load the app router.currentRoute, is an object of the route but once the router has loaded its is a string eg /error. When it is an object the OPM server crashes and sends error 500. This sounds more like a me problem as I am sending invalid data into the pagePath property. To get around this I am using window.location.path instead.

@warrmr I found it out. The vue: true, is wrong. Please check the parameter types here
BTY, there's no need to set value for vue filed in your case.

Just checked that link and the table shows vue as an option. not sure if the documentation needs an update?

@warrmr I found it out. The vue: true, is wrong. Please check the parameter types here
BTY, there's no need to set value for vue filed in your case.

Just checked that link and the table shows vue as an option. not sure if the documentation needs an update?

No, it's an option. Here provides two ways to catch vue errors.  The first is
ClientMonitor.register({     collector: "https://skywalking",     service: 'test-ui',     pagePath: 'index.html',     serviceVersion: 'v1.0.0',     vue: Vue, });
The second is
ClientMonitor.reportFrameErrors(         {             collector: "https://skywalking",             service: 'test-ui',             pagePath: 'index.html',             serviceVersion: 'v1.0.0',         },         error,     );

The other issue is that when you first load the app router.currentRoute, is an object of the route but once the router has loaded its is a string eg /error. When it is an object the OPM server crashes and sends error 500. This sounds more like a me problem as I am sending invalid data into the pagePath property. To get around this I am using window.location.path instead.

Feel free to set pagePath value according to your scenario.

Adding register seemed to do the trick :) There are two small problems now. The first is that the calls inside of the firebase/auth module are failing with the register function turned on. I assume this is because the nosniff flag in the headers is set and skywalking intercepts all calls.

@warrmr I can't understand this problem. As you register the skywalking-client-js, the firebase/auth module are failing. Is that what you mean?

@warrmr I found it out. The vue: true, is wrong. Please check the parameter types here
BTY, there's no need to set value for vue filed in your case.

Just checked that link and the table shows vue as an option. not sure if the documentation needs an update?

No, it's an option. Here provides two ways to catch vue errors. The first is
ClientMonitor.register({ collector: "https://skywalking", service: 'test-ui', pagePath: 'index.html', serviceVersion: 'v1.0.0', vue: Vue, });
The second is ClientMonitor.reportFrameErrors( { collector: "https://skywalking", service: 'test-ui', pagePath: 'index.html', serviceVersion: 'v1.0.0', }, error, );

Thanks, Now I understand appreciate the responses.

The other issue is that when you first load the app router.currentRoute, is an object of the route but once the router has loaded its is a string eg /error. When it is an object the OPM server crashes and sends error 500. This sounds more like a me problem as I am sending invalid data into the pagePath property. To get around this I am using window.location.path instead.

Feel free to set pagePath value according to your scenario.

Yeah this was a me problem :) If you send the wrong value into the pagePath then you can crash the OPM server but I will make a discussion topic on that.

Adding register seemed to do the trick :) There are two small problems now. The first is that the calls inside of the firebase/auth module are failing with the register function turned on. I assume this is because the nosniff flag in the headers is set and skywalking intercepts all calls.

@warrmr I can't understand this problem. As you register the skywalking-client-js, the firebase/auth module are failing. Is that what you mean?

The app I am testing skywalking in uses firebase authentication as a login system https://firebase.google.com/docs/auth  If I comment out the register function my app works as expected but we dont get any traces in skywalking. but if I put in the register function then skywalking seems to stop firebase from making the calls back to google.
ClientMonitor.register({
    collector: "https://skywalking",
    service: name,
    pagePath: router.currentRoute.path,
    serviceVersion: `v${version}`,
});

Working good with ClientMonitor.register missing from the code (All the calls to google identity services work correctly)

Same app just with the ClientMonitor.register method added to main.js and firebase breaks and throws a host of errors.

To recreate setup a basic app with firebase registration and login, once you are logged in you should see the errors, if you turn off skywalking the errors go away.

If you send the wrong value into the pagePath then you can crash the OPM server but I will make a discussion topic on that.

It will crash the OAP server? How?

CORS policy is included in the doc. It is not SkyWalking's special requirement, it is from HTTPS.

Massive exception when bad data is sent to the back end server

CORS policy is included in the doc. It is not SkyWalking's special requirement, it is from HTTPS.

CORS is all working for both skywalking and the app, what I don't understand is when dont have skywalking register method in the app our firebase works well and has no issues. When I add skywalking to our app then firebase breaks and complains of cors errors. The only thing I can sugguest is the way Skywalking is handling the XHR requests in modifying something that google is looking for in the http headers and is being blocked (some security setting)
Does skywalking client respect the nosniff header of the HTTP request or does it intercept all requests.  I wont be able to do any more tests until Monday now but would appreciate it if you would setup a demo on your side and test with firebase as im confident this is a skywalking issue.

Massive exception when bad data is sent to the back end server

Exception stack is expected. You could change log4j2.xml to hide them.

CORS policy is included in the doc. It is not SkyWalking's special requirement, it is from HTTPS.

CORS is all working for both skywalking and the app, what I don't understand is when dont have skywalking register method in the app our firebase works well and has no issues. When I add skywalking to our app then firebase breaks and complains of cors errors. The only thing I can sugguest is the way Skywalking is handling the XHR requests in modifying something that google is looking for in the http headers and is being blocked (some security setting)
Does skywalking client respect the nosniff header of the HTTP request or does it intercept all requests. I wont be able to do any more tests until Monday now but would appreciate it if you would setup a demo on your side and test with firebase as im confident this is a skywalking issue.

I found the cause of the problem. I noticed your requests aren't simple requests, so the requests would trigger a CORS preflight. The preflight request  is a CORS request that checks to see if the CORS protocol is understood and a server is aware using specific methods and headers.
When the skywalking-client-js set trace parameters in your app requests header, the preflight request status code is 403. As your preflight requests are fail, CORS happened here.
From my perspective, your server don't allow you to customize parameter in the http header and you should resolve this problem.

@Fine0830  I think this may be caused by 3rd party SAAS services, like Google's, they put some rules about this for security, and out of users' control. From SkyWalking perspective, we should expose some APIs to set URL whitelist which could not be traced(no header injection, and only span sending out or not). WDYT?

@Fine0830 I think this may be caused by 3rd party SAAS services, like Google's, they put some rules about this for security, and out of users' control. From SkyWalking perspective, we should expose some APIs to set URL whitelist which could not be traced(no header injection, and only span sending out or not). WDYT?

This is a nice way. Here we have provided the API, it is noTraceOrigins. @warrmr

From my perspective, your server don't allow you to customize parameter in the http header and you should resolve this problem.

@Fine0830 I think this may be caused by 3rd party SAAS services, like Google's, they put some rules about this for security, and out of users' control. From SkyWalking perspective, we should expose some APIs to set URL whitelist which could not be traced(no header injection, and only span sending out or not). WDYT?

You are both correct, Google doesn't allow the modification of the headers for security and I have since found out that the skywalking-client-js adds a sw8 header to the outbound requests with a trace ID and segment ID adding this to the register call worked :) noTraceOrigins: [/.*googleapis.*/, /.*firebaseapp.*/], Thankyou.
@wu-sheng May I change this from a [BUG] to a [FEATURE] request please as my problems seem to be more me not understanding some of the properties in the register function and not knowing I needed to call that.
@Fine0830 I am not sure if this is possible but somewhere in the xhr.ts read event.details.requestHeaders("X-Content-Type-Options") and if it matches "nosniff" then don't modify the header and do the same as you do with noTraceOrigins ? I am happy to run a test version for you if that would help.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
Thanks Again guys I really appreciate the helps.

May I change this from a [BUG] to a [FEATURE] request please as my problems seem to be more me not understanding some of the properties in the register function and not knowing I needed to call that.

If there is no BUG(or uncertain case) existing anymore, I could move this to the discussion panel, and close/lock this issue.

May I change this from a [BUG] to a [FEATURE] request please as my problems seem to be more me not understanding some of the properties in the register function and not knowing I needed to call that.

If there is no BUG(or uncertain case) existing anymore, I could move this to the discussion panel, and close/lock this issue.

Yes by all means move it to discussion please :)  I would like to get opintion if it is possible to respect the https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options nosniff header and make some of this automatic/improve tracing for security sensive APIs.
This would need prototyping as I am not sure if it is possible to read that header and exit out without breaking the request. Would you like me to make a demo or is this something that you are able to test ?


walletSwitch event doesn't fire unless page has ACCESS_ALL_ADDRESSES permission

Understandably, the ability for a page to to access all addresses in ArConnect should be behind a permission.  However, there's no way for the page to detect if the wallet was switched at all, even if it doesn't have permission to view the new address.
Would it be possible to fire the event anyway but not provide the new address?  This way, the page could revert to an un-authenticated state.
Alternatively, this could be solved by adding  a walletDisconnected event, fired when a wallet is switched but the new address isn't connected to the page or the page doesn't have ACCESS_ALL_ADDRESSES permission.

As noted in the docs, yes the event requires permissions. This is to not allow the oage to bypass a missing address permission.
I do agree that it might be too much, to limit this with the access all addresses permission as well. I'll take this into consideration

@martonlederer I actually expected the event to fire but e.detail.address to be null or undefined if the ACCESS_ALL_ADDRESSES permission wasn't allowed.

Probably the best solution

❤


Fix for the issue close bot

React Boilerplate

[x] You have followed our contributing guidelines
[ ] Double-check your branch is based on dev and targets dev (LOL NO SORRY)
[ ] Pull request has tests (we are going for 100% coverage!)
[ ] Code is well-commented, linted and follows project conventions
[ ] Documentation is updated (if necessary)
[ ] Internal code generators and templates are updated (if necessary)
[x] Description explains the issue/use-case resolved and auto-closes related issues

Changelog
The issue close bot is mistakenly closing issues that use the template. I'm assuming it's because it's case-sensitive. (The bot is looking for "Steps to Reproduce" but the Issue Template uses "Steps to reproduce".) Hopefully, this should fix it.
@gretzky I didn't realize we had changes in dev that we might not want to release to master yet so here's the same commit but using master as the base.

Coverage remained the same at 100.0% when pulling 8df77b392333aa1970189a824caf7be27a4797dd on lock-bot-fix into 17dcd18d448d0696b16e609653515b0e5ad5b76a on master.

can we retrigger the appveyor build?


Questions abotu producing a voice that looks like HUMAN voice, less ROBOTIC, Less MONOTONIC etc, with more emotions, intonations, pitch tone, etc..?

Hello,
Once I trained a model and obtained a "modelOfaVoice.pth",
Where can I go to use it in an effiscient way to obtain very nice voices that looks like human?
Do you guys try to IMPROVE the training BEFORE making the ".pth" file, or do you have ways to use the good enough .pth model to go make voices that look like human and with goods intionation etc?
I am looking for ways to produces voices that do not look "MADE UP", intead it"a almost if not completely look like HUMAN.
So for example, maybe methods to let words be pronounced differently "Hello this is Jim" -> " Helloo, This is.. Jim! or "Hello, thiiiis is Jim." etc etc..
Anyway, the question anyway is : where do you guys use your .pth files?
And can you post process the audios produced further to make it real human? Thanks.
Ps. Can we open the "discussions" sectino of this repository?

same question

If you find @EraBawer  please tell me.

I'm also interested in this.

A little bit of de-essing helps.


Extension support requires the default value twice

class MessageExtension takes a defaultValue to init.  So every instance generated gets passed one.
The extension ExtensibleMessage provides getExtensionValue which checks _protobuf_extensionFieldValues and if the extension isn't found, returns the default value.
But then when generating the Swift extension to expose the field on the message, the getter calls getExtensionValue and if it isn't a repeated field extension it also generates ?? _the_default_value_again_.
So for the non repeated cases, have two code paths to create the default instance meaning general bloat.
The instance captured in the MessageExtension has the down side of having to be created during startup of the extension, so avoiding it might actually help startup time for the extension.  But the current flows require it because of the difference between repeated and non repeated extensions.
In anycase, seems like we should revisit this so we can clean things up and only use the default in one of the two cases instead of both.
Marking this as 1.0 Milestone since it like is an api change.

fyi - #549 moved where the default was needed to avoid needing them at startup.
But #546 was what fixed this by only have the default needed once.


Prisma Format should enforce single use enums on MySQL

The Prisma schema currently allows the re-use of enums on several fields on MySQL and Postgres. This does not match the enum implementation on MySQL where they are defined on a column level.
Create Table Bools(
   id Int Primary Key,
   German_bool ENUM('wahr', 'falsch')
   Austrian_bool ENUM('wahr', 'falsch')
)

During introspection one schema level enum will be created for every column level enum.
model Bools{
   id Int @id
   German_bool Bools_German_bool
   Austrian_bool Bools_Austrian_bool
}

enum Bools_German_bool{
  wahr
  falsch
}

enum Bools_Austrian_bool{
  wahr
  falsch
}

During migration one schema level used on several fields will be converted into several column level enums.
model Bools{
   id Int @id
   German_bool Bool
   Austrian_bool Bool
}

enum Bool{
  wahr
  falsch
}

Create Table Bools(
   id Int Primary Key,
   German_bool ENUM('wahr', 'falsch')
   Austrian_bool ENUM('wahr', 'falsch')
)

Introspecting a migrated schema would therefore result in a different schema on MySQL.
model Bools{
   id Int @id
   German_bool Bools_German_bool
   Austrian_bool Bools_Austrian_bool
}

enum Bools_German_bool{
  wahr
  falsch
}

enum Bools_Austrian_bool{
  wahr
  falsch
}

There're also issues around the naming of the enum. Since that is not  persisted in MySQL it will currently change after introspection if it does not already follow the Model_field convention we use for naming.
We could try to handle this with re-introspection.
Also @@map on enum names can currently be used on MySQL but it would not have any function since there is no underlying name in the database.


Question: is FastCache saving null values for a given key?

or do I have to store a NullObject (using the Null Object pattern) ?

Hi Guillaume,
There is where K : notnull constraint on keys. If you are not seeing a compiler error/warning when being passed a nullable reference type, please make sure you have <Nullable>enabled</Nullable> in your project file and optionally <WarningsAsErrors>nullable<WarningsAsErrors> for the best experience.
If you need a key value that represents None, you can wrap the key into a struct which can internally have a nullable reference/value representing that:
readonly record struct OptionalKey(Key? Value);


[BUG] issuer is now required in getSamlOptions() callback, even where it's already specified in MultiSamlStrategy config

From reading past issues, I think this bug is likely to be a consequence of the fix for #89.
If you are using MultiSamlStrategy, you might initialise it like:
        return new MultiSamlStrategy(
            {
                issuer: 'my-issuer',
                passReqToCallback: true,
                getSamlOptions: async (req: Request, done: SamlOptionsCallback) => await this.fetchConfig(req, done)
            },
            // for sign-on
            (req: Request, profile: any, done: VerifiedCallback) => done(null, profile),
            // for logout
            (req: Request, profile: any, done: VerifiedCallback) => done(null, profile)
        );

In the constructor, the first argument is defined to have type MultiStrategyConfig, which is Partial<SamlConfig> & StrategyOptions & BaseMultiStrategyConfig;
Since it's a Partial<SamlConfig>, it's clearly not mandatory to provide issuer here. I have no problem with this.
However, you are free to choose to provide it, and the documentation at http://www.passportjs.org/packages/passport-saml/ clearly says:

The options passed when the MultiSamlStrategy is initialized are also passed as default values to each provider. e.g. If you provide an issuer on MultiSamlStrategy, this will be also a default value for every provider. You can override these defaults by passing a new value through the getSamlOptions function.

The SamlOptionsCallback function type is defined such that you must provide a SamlConfig (or null).
Thereby, you are forced to specify the issuer field, which is in direct conflict with the documentation above.
This issue can be worked around, but it causes a bit of spaghetti in our case, and since the documentation says otherwise, it would be good to fix.

That sounds like a deficiency in the types. Please feel free to put up a PR to suggest a fix for this.

Thanks @cjbarth.  I've just raised PR https://github.com/node-saml/passport-saml/pull/838 as a proposal for this.  Apologies that the PR has turned out to be in a different repo!

Update: this issue is fundamentally caused by https://github.com/node-saml/node-saml/pull/90.

It could very well be so, and I wasn't rigorous enough in my requirements for tests to well-define the scope of the need for issuer. Since #89 called out an actual run-time problem which would have been caught by having more rigorous typing, I let it slide a little. Sorry.
In order to prevent going back-and-forth on this matter, it would be nice if we could have a definitive set of tests to establish exactly when issuer is required. I don't have the bandwidth at the moment to have a look at this as I'm trying to finish some stuff up with xml-crypto before I turn my full attention back to node-saml.


Install Issue - Ubuntu Image on Mac M1 Pro

What happened:
Attempting to build docker image leveraging install script for syft.
What you expected to happen:
Syft to be installed
Steps to reproduce the issue:
# Dockerfile for Container
FROM mcr.microsoft.com/powershell:latest

# Install curl for making GitHub API calls
RUN apt-get update && apt-get install -y curl \
    curl \
    git \
    gnupg \
    software-properties-common

# Install Syft
RUN curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin

# Set the working directory
WORKDIR /usr/src/app

# Copy all powershell scripts within folder
COPY *.ps1 .

# Set permissions to execute the script
RUN chmod +x *.ps1

# Set the script as the entry point
CMD ["pwsh", "-File", "run.ps1"]

Anything else we need to know?: Error Message:
=> ERROR [3/6] RUN curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin                                                5.4s
------
 > [3/6] RUN curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin:
2.184 [info] fetching release script for tag='v1.4.1'
3.853 [info] using release tag='v1.4.1' version='1.4.1' os='linux' arch='armv7'
5.331 [error] could not find release asset for os='linux' arch='armv7' format='tar.gz'
5.337 [error] failed to install syft
------
dockerfile:12
--------------------
  10 |
  11 |     # Install Syft
  12 | >>> RUN curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
  13 |
  14 |     # Set the working directory
--------------------
ERROR: failed to solve: process "/bin/sh -c curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin" did not complete successfully: exit code: 1

Environment:

Output of syft version:
OS (e.g: cat /etc/os-release or similar): Mac M1 running Ubuntu Image for container.

Nice catch @Lachlan-White
It looks like our current .goreleaser.yaml doesn't account for a v7 distribution here.
This section does not exist in our release file:
    # GOARM to build for when GOARCH is arm.
    # For more info refer to: https://go.dev/doc/install/source#environment
    #
    # Default: [ 6 ]
    goarm:
      - 6
      - 7

Reading again, it also looks like we only support arm64 as a release candidate: ARM64 (64-bit): Also known as ARMv8
  - id: linux-build
    dir: ./cmd/syft
    binary: syft
    goos:
      - linux
    goarch:
      - amd64
      - arm64
      - ppc64le
      - s390x

I ran
❯ docker run -it mcr.microsoft.com/powershell:latest /bin/sh
# uname -m
x86_64

It looks like for powershell latest the arch should be x86_64) arch="amd64" ;;
I was also able to install syft succesfully:
# curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
[info] fetching release script for tag='v1.4.1'
[info] using release tag='v1.4.1' version='1.4.1' os='linux' arch='amd64'
[info] installed /usr/local/bin/syft

Do you have any more information on why your mcr.microsoft.com/powershell:latest /bin/sh is returning an arm32 architecture?

Hey @spiffcs, thanks for the quick response!
Have no idea why the default output of the Microsoft image is returning an arm32 by default.
I might just force the version specifically in arm64 which would fix my issue, but it is an interesting scenario.
If you had anything you wanted me to test on my local to help, just let me know

If you run this on your local what's your result?
docker run  -it mcr.microsoft.com/powershell:latest /bin/sh
# uname -a
Linux 83b1dbc1234f 6.6.26-linuxkit #1 SMP PREEMPT_DYNAMIC Sat Apr 27 04:15:35 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

I copied your Dockerfile and removed the powershell lines and was able to get a successful install.
What happens if you do the same for the alpine version or any explicitly tagged x86_64 arch?
docker run -it mcr.microsoft.com/powershell:lts-alpine-3.17 /bin/sh
Unable to find image 'mcr.microsoft.com/powershell:lts-alpine-3.17' locally
lts-alpine-3.17: Pulling from powershell
3c854c8cbf46: Pull complete
09b3f3175f8c: Pull complete
0505aeb2a439: Pull complete
Digest: sha256:2064d42be1cb05f5d83995f2b12f95737fe74924cbd8519fda886ad834e0b4f8
Status: Downloaded newer image for mcr.microsoft.com/powershell:lts-alpine-3.17
/ # uname -a
Linux aab7448f7e05 6.6.26-linuxkit #1 SMP PREEMPT_DYNAMIC Sat Apr 27 04:15:35 UTC 2024 x86_64 Linux


Use old_gen_heap_size to encourage the Dart VM to more aggressively collect garbage on mobile platforms

Since https://dart-review.googlesource.com/c/sdk/+/151635, this flag helps limit how much memory the VM will allocate in old space, and should help trigger collections more aggressively as we approach device limits.
On Android, this could be defaulted to dalvik.vm.heapsize, which is the size of a "largeHeap" app on Android. My only concern with this is that this value is likely much lower than what we currently allow - i.e. I haven't seen it larger than 512mb, whereas I've definitely run apps without OOMing that use multiple gigabytes of RAM.
On iOS, we should probably be safe with [NSProcessInfo processInfo].physicalMemory / 2.  Some devices seem to let you use more (e.g. use up to 75% of memory before killing you), but some are as low as half.

[x] Android
[x] iOS
[ ] Fuchsia (TBD)

/cc @iskakaushik @gw280 for input on Fuchsia
/cc @rmacnak-google FYI
/cc @zanderso @liyuqian

So I don't forget - we do already support this argument in the shell, here: https://github.com/flutter/engine/blob/95b2ebfaf4e7de3a06c04d5af7107d4c0b0dcef1/common/settings.h#L217 - added by @gaaclarke a ways back now.
We should still respect any user supplied value if the application decides to override this to avoid breaking anyone using it.
/cc @chinmaygarde as well who probably has good thoughts on this.

This will help with https://github.com/flutter/flutter/issues/56482

w.r.t. Fuchsia, it looks like you need a special handle to grab ZX_INFO_KMEM_STATS (docs), which has a field reporting total system physical memory, but maybe there's a system service to query over FIDL.
Maybe @arbreng can point in the right direction.

Regarding testing, you might add a debug-only flag that hardcodes this to a known appropriately small value, then add an integration test in the framework repo that tries to allocate more than that.

Is the size limitation enforced per isolate or across all isolates in the VM? I know there has been some confusion about this in the past. We'd want the latter.
To test this, I'd prepare a runtime test that allocates more than a very small amount specified in the specific shell instance created with a super small limit. As @zanderso suggests, an integration test will be good too but the runtime test will be closer to the engine and prevent engine releases that regress this. One small gotcha with the runtime test, please make sure the VM is no running before the test is run. All runtime tests shut down the VM in fixture teardown but it'd be good to assert this explicitly in the test.

My understanding is that allocating more will be allowed, but will trigger more GCs.  @rmacnak-google - is that accurate?
Also, I believe this is per isolate.  @rmacnak-google or @mkustermann can confirm.

@dnfield  @zanderso
re: fuchsia
ZX_INFO_KMEM_STATS requires the root resource, so that would create a big ole' security hole if flutter made use of that hande.  The root resource gives you near total-control over a fuchsia system, so we can't use that path.  :(
Some code in experiences.git is using https://source.corp.google.com/fuchsia/fuchsia-mirror/sdk/fidl/fuchsia.memory/monitor.fidl?q=monitor.fidl, and that looks like exactly what you want.
It looks like https://source.corp.google.com/fuchsia/fuchsia-mirror/sdk/core.api?q=core.api&sq=package:fuchsia is not marking it for inclusion into the SDK package though, so you might have to do that first.

Is the size limitation enforced per isolate or across all isolates in the VM?
I know there has been some confusion about this in the past. We'd want the latter.
...
Also, I believe this is per isolate. @rmacnak-google or @mkustermann can confirm.

The limits are per isolate group. Right now each Isolate.spawn() creates a new isolate group. So the limits currently apply per isolate.
We're working on making isolates more lightweight (see https://github.com/dart-lang/sdk/issues/36097). Once isolate groups are on by-default the limit will apply to the main isolate and all isolates spawned from there (though not the entire VM, e.g. the embedder might run multiple apps).

iOS is done, Android is under review, Fuchsia still TBD.
Rolling out milestone for Android/Fuchsia.

Since this has a milestone for this month, I'm giving this a P3. Downgrade as appropriate.

For Android: I have a WIP patch I will finish up before EOM so that applications can adjust as needed. We have a less clear case about how much of a limit (if any) to put on Android vs iOS.
For Fuchsia: I think this is going to be a matter of just discussing this with @arbreng - I suspect he will have a better idea about what value to give this parameter.
For embedder API: it's already possible to pass this in, and some of our embedder based clients are using it.

Android and iOS are done, assigning to @dreveman and @arbreng for Fuchsia side.

@dnfield Just wondering if you have a plan to implement this feature for Linux (Flutter Embedder API)?

I got an email about a omment that appears to not be showing up here RE: linux/embedder.
Embedder API users can set this option themselves per application more easily.

@dnfield Thank you, Dan! It was a comment from me, but I found your comment above For embedder API: it's already possible to pass this in, and some of our embedder-based clients are using it.
I have a memory budget of about 180Mb. At a start, an app takes about 80 - 100 Mb, during operation, it's about 150 Mb,
just wondering if I can have any recommendations as to which value to set old_gen_heap_size?
...
 "--dart-define",
 "DART_VM_OPTIONS=--old_gen_heap_size=170"

I'm going to close this as completed - I'm not sure if Fuchsia ever implemented it or not but a separate issue can be opened for that if needed.

@dnfield Please reply to @minikin's comment or provide an example on how to change the value of this option for different use cases. Also in which scenarios we should start using this option. Thanks.


Fix docker build (Work In Progress)

Creating PR so people can comment on it.
Not totally happy with this solution. At the moment I am not sure it is worth trying to keep the docker and native builds in the same script, may be cleaner to have separate build scripts and then extract the common parts of each.
I also cannot guarantee that this does not break the native build as the native build did not work for me to start with...will look into the issues with that separately.
Fully or partially fixes issue #64

Just ran this PR changes via https://ci.adoptopenjdk.net/view/work in progress/job/openjdk_build_x86-64_linux_johno_test/11/console - looks good :+1:

Just added this other build to test docker work on Jenkins - https://ci.adoptopenjdk.net/view/work in progress/job/openjdk_build_x86-64_linux_john_docker_test but does not seem to run, needs docker installed on the instance - @gdams worth doing this on the jenkins instance to test our docker build, we should have atleast one such build running to check if our docker build hasn't broken with our native changes

Run the script locally and find it fails:
2017-04-24 12:06:51 (761 KB/s) - 'jtreg-4.2.0-tip.tar.gz' saved [7218784/7218784]

List contents of the jtreg folder
ls: cannot access /openjdk/jdk8u//jtreg/*: No such file or directory
Apply JCov settings to Makefile...
/openjdk/jdk8u/openjdk/jdk/test
/openjdk/sbin/jtreg.sh: line 85: ABS_PLATFORM_BUILD_ROOT: command not found
/openjdk/sbin/jtreg.sh: line 85: ABS_PLATFORM_BUILD_ROOT: command not found
Setting up environment variables for JTREG to run
/openjdk/jdk8u//openjdk//build/linux-x86_64-normal-server-release/images/j2sdk-image
ASSEMBLY_EXCEPTION  THIRD_PARTY_README	demo	 jre  man      sample
LICENSE		    bin			include  lib  release  src.zip
Running jtreg via make command (debug logs enabled)
/openjdk/jdk8u/openjdk//make/Main.gmk:32: /home/satyasai/LJCAdvocate/OpenJDKStuff/Tools/openjdk-build/openjdk/make/common/MakeBase.gmk: No such file or directory
make: *** No rule to make target `/home/satyasai/LJCAdvocate/OpenJDKStuff/Tools/openjdk-build/openjdk/make/common/MakeBase.gmk'.  Stop.
Archiving your jtreg results (includes jcov reports)
Package test output into archives...
/openjdk/jdk8u/openjdk
Tarring and zipping the 'testoutput' folder into artefact: OpenJDK-testoutput-with-jcov-reports.tar.gz
Package jcov reports into archives...
/openjdk/jdk8u
/openjdk/jdk8u/openjdk/build/linux-x86_64-normal-server-release
Tarring and zipping the 'testoutput/../jcov' folder into artefact: OpenJDK-jcov-results-only.tar.gz
tar: testoutput/*/JTreport/jcov: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
grep: warning: GREP_OPTIONS is deprecated; please use an alias or script
Copying to the host with docker cp 22c142ce2e30:/openjdk/jdk8u/OpenJDK.tar.gz /home/satyasai/LJCAdvocate/OpenJDKStuff/Tools/openjdk-build
Error response from daemon: lstat /var/lib/docker/aufs/mnt/aca22bc9eea3be617fab732b0be9f2156f16497b30656012d60a008e8a86f71f/openjdk/jdk8u/OpenJDK.tar.gz: no such file or directory

Commands use:
./makejdk-any-platform.sh

and
./makejdk-any-platform.sh --destination $(pwd)

@johnoliver have you pushed the common-functions.sh? I get the below error when running the scripts:
./makejdk.sh: line 30: .../openjdk-build/sbin/common-functions.sh: No such file or directory
./makejdk.sh: line 43: determineBuildProperties: command not found

I have readded the missing file

@johnoliver It's failing some shellcheck on Travis.

@johno are you able to execute a native build after building via docker, I mean what happens after you have done these two commands:
Clear everything and start from scratch
./makejdk-any-plattform.sh     <=== docker build

./makejdk-any-plattform.sh    --source <some source> --destination <some destination>

Gives me this error: cannot create directory: /openjdk
Clear everything and start from scratch
./makejdk-any-plattform.sh    --source <some source> --destination <some destination>

./makejdk-any-plattform.sh     <=== docker build

Works fine no complains.
The above use case might not be common but nevertheless it happens.
I'm thinking there might be some ownership/permission issue with the openjdk when the docker build creates it.
Try to bring commits from this repo into yours otherwise it might not work for everyone - https://github.com/neomatrix369/openjdk-build/commits/fix-docker-build
Can someone also please test both native and docker builds for us?

Kicked off a build on https://ci.adoptopenjdk.net/view/work in progress/job/openjdk_build_x86-64_linux_johno_test/12/console to test native build. Docker builds will still need to be tested locally by one of us.

Native build is successful, see https://ci.adoptopenjdk.net/view/work in progress/job/openjdk_build_x86-64_linux_johno_test/13/console, while docker build is (mostly) good, see https://github.com/AdoptOpenJDK/openjdk-build/pull/82#issuecomment-297985119.
To fix the permission issue (cannot create...) we could open a new issue and investigate it separately.

@johnoliver - still some shellcheck fixes to go I think.

@johnoliver As mentioned on the slack channel, the new changes work good, haven't tried the combination as mentioned earlier.

@karianna @gdams Can we please review this PR, it looks good to go, worth merging now


Set wallpaper

Hi, author of wallutils here. I wish to add support for Hyprland, but I can not find a way to set the wallpaper when Hyprland is running.
Is there a method or utility that can be used?

swaybg works well, and if you want to test out the new utility from me, (still early indev though) hyprpaper

Thanks for the reply and pointers!

haha pointers hee hee i love pointe-
Process Vaxry exited with signal SIGSEGV

The latest release of wallutils now also supports Hyprland, by using swaybg.


Feature/rename headerkey

Issues associated with this PR
Your PR should present related issues you want to solve.
Solutions
You should show your solutions about the issues in your PR, including the overall solutions, details and the changes. At this time, Chinese is allowed to describe these.
UT result
Unit Test is needed if the code is changed, your unit test should cover boundary cases, corner cases, and some exceptional cases. And you need to show the UT result.
Benchmark
If your code involves the processing of every request, you should give the Benchmark Result.
Code Style

Make sure Goimports has run
Show Golint result

Codecov Report

Merging #1541 (2324b56) into master (afedf8e) will increase coverage by 0.00%.
The diff coverage is 64.06%.

@@           Coverage Diff           @@
##           master    #1541   +/-   ##
=======================================
  Coverage   59.32%   59.32%
=======================================
  Files         346      346
  Lines       27628    27624    -4
=======================================
- Hits        16391    16389    -2
  Misses       9406     9406
+ Partials     1831     1829    -2

Impacted Files
Coverage Δ

pkg/cel/ext/request.go
0.00% <0.00%> (ø)

pkg/filter/stream/flowcontrol/callbacks.go
84.61% <0.00%> (ø)

pkg/proxy/var.go
2.77% <ø> (ø)

pkg/router/configutility.go
67.85% <ø> (-1.11%)
:arrow_down:

pkg/stream/xprotocol/conn.go
36.84% <0.00%> (ø)

pkg/stream/xprotocol/stream.go
31.66% <0.00%> (ø)

pkg/types/constant.go
66.66% <ø> (ø)

pkg/stream/http2/stream.go
7.84% <9.09%> (ø)

pkg/proxy/downstream.go
50.91% <40.00%> (ø)

pkg/stream/http/stream.go
30.68% <76.92%> (ø)

... and 11 more

Continue to review full report at Codecov.

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

Codecov Report

Merging #1541 (2324b56) into master (afedf8e) will increase coverage by 0.00%.
The diff coverage is 64.06%.

@@           Coverage Diff           @@
##           master    #1541   +/-   ##
=======================================
  Coverage   59.32%   59.32%
=======================================
  Files         346      346
  Lines       27628    27624    -4
=======================================
- Hits        16391    16389    -2
  Misses       9406     9406
+ Partials     1831     1829    -2

Impacted Files
Coverage Δ

pkg/cel/ext/request.go
0.00% <0.00%> (ø)

pkg/filter/stream/flowcontrol/callbacks.go
84.61% <0.00%> (ø)

pkg/proxy/var.go
2.77% <ø> (ø)

pkg/router/configutility.go
67.85% <ø> (-1.11%)
:arrow_down:

pkg/stream/xprotocol/conn.go
36.84% <0.00%> (ø)

pkg/stream/xprotocol/stream.go
31.66% <0.00%> (ø)

pkg/types/constant.go
66.66% <ø> (ø)

pkg/stream/http2/stream.go
7.84% <9.09%> (ø)

pkg/proxy/downstream.go
50.91% <40.00%> (ø)

pkg/stream/http/stream.go
30.68% <76.92%> (ø)

... and 11 more

Continue to review full report at Codecov.

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


Ipv6 link local fix

Fix for my local network using local link ip addresses (but from reading should be fine with other networks as well) that will append the network interface to the address if its a) an ipv6 address and b) the network Interface is known

@mattsoftware Thanks for opening a pull request with your fix. You explain the problem a bit in this forum post -> https://forums.tessel.io/t/unable-to-t2-root-update/2417/3
Could you explain the issue a bit more here, as well as how this PR fixes that issue?

The code determines the location of the tessel to connect to by either picking the first internet address in the opts.addresses array, and if that doesn't exist it falls back to opts.host. In my instance the opts.addresses array contained an ipv6 link local address as the first element, and the ipv4 address as the second. From my limited research I cannot connect to a link local address without also referencing the interface that the link local address can be reached on.
i.e.
ping6 fe80::204:edff:fe1d:c93b # this does not work, as the address is link local
ping6 fe80::204:edff:fe1d:c93b -I eth0 # this works as I have specified the interface to ping on
ping6 fe80::204:edff:fe1d:c93b%eth0 # this also works
My pull request solves my issue by letting the exsting code work out what address to connect to. If the address contains a colon (:) AND there is a networkInterface also on the opts, then we append the % and the network interface to the end of the address.
I have limited resources to test this against other IPv6 networks, so I accept that there will need to be more testing before my pull request gets approved, but I suspect something similar to this will be the solution, even if it needs further refinement.

@mattsoftware thanks so much for investigating this! Before we can merge this, we need a unit test or two to make sure it doesn't break in the future. You can add them in this file and let me know if you have any questions about how sinon/nodeunit work (or anything).

Thanks for the explanation @mattsoftware. You can read more about getting started with our testing setup in the README and feel free to ping me if you have any questions or concerns.
I'll look at prepping a smoke test this week. Then we can get more folks trying this on other networks.

@johnnyman727: Tests added, sorry for the delay. Hope they are acceptable :)

You should add test.expect(x); to each test to be consistent with other tests.

@mattsoftware it looks pretty good! In addition to @wyze's comment above, could you also add some comments explaining the thought process behind each test? Once that's done, we'll be ready to merge.

What does the test.expect(x) do? It doesn't seem to be comparing the number to anything real.

It sets the expected assertions, and throws an error if they don't add up. Example:
Running "nodeunit:tests" (nodeunit) task
Testing index.jsF
>> Ambient - initialization
>> Error: Expected 11 assertions, 10 ran
>> at Object.exports.Ambient.tearDown (test/unit/index.js:12:5)

LGTM!


Added sat verification for endpoints using bascule

Some functions in here aren't intended to stay; they will be added more generically to bascule or, if they are sat/implementation specific, to webpa_common for us to import from there.  This is the initial code, but it needs to be made more generic.
part of https://github.com/Comcast/codex-gungnir/issues/35

Codecov Report

Merging #39 into master will decrease coverage by 10%.
The diff coverage is 0%.

@@             Coverage Diff             @@
##           master      #39       +/-   ##
===========================================
- Coverage   56.25%   46.24%   -10.01%
===========================================
  Files           5        5
  Lines         208      253       +45
===========================================
  Hits          117      117
- Misses         88      133       +45
  Partials        3        3

Impacted Files
Coverage Δ

main.go
7.35% <0%> (-3.64%)
:arrow_down:

Continue to review full report at Codecov.

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


Scaledenominator as a type

This refactors the ScaleDenominator to be a type instead of a class.
Also fixes some broken imports of the Filter interface.

IMHO we should always prefere the strictest definition with the least effort. Which means that i'd prefer Types over Interfaces over Classes.
I think the final target for the GeoStyler_Data and GeoStyler_Style will be TypeScript Type-Definitions distributed via http://definitelytyped.org/. As i'm not that deep into TypeScript yet this opinion might change in the course of time.

Thanks for review.
I'm gonna delve into https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html to find out how our declarations (not definitions --> allready learned something :smile: ) should look like.


Fail water balance check on either tolerance

Part of #1853; https://github.com/Deltares/Ribasim/issues/1853#issuecomment-2383488129

Good luck with finding new tolerances, nice PR just before 1.0! ❤

Doesn't need to be merged before 1.0. Could have if it didn't give issues.
This is on pump_discrete_control, relative error is too high, but absolute error is tiny:
┌ Error: Too large water balance error
│   id = Basin #1
│   balance_error = -4.1119371282413245e-20
│   relative_error = -0.10526315789473695
└ @ Ribasim ~/work/Ribasim/Ribasim/core/src/callback.jl:316

Uh, oops, I might've shooting from the hip there. I was thinking of acceptance rather than rejection!
What I discussed with @SouthEndMusic earlier: if the absolute error is tiny, you probably want to accept, right?
Hence the earlier implementation. Since && short-circuits, it won't look at the relative error if the absolute error is already okay.


create docker container with all deps and data pre-installed

To ease use, it would be nice to have a docker container. Things to address.

[ ] instructions for installing docker and loading VCF from local file system
[ ] can docker work without sudo? (see: http://askubuntu.com/questions/477551/how-can-i-use-docker-without-sudo ... and problems: https://github.com/subuser-security/subuser/issues/131, might be resolved in recent version: https://github.com/docker/docker/issues/3124)
[ ] will dockerhub host a large image?

this would also make a portable and shareable analysis environment.
@chapmanb @roryk I know you have thought about these, any further things to consider?

Regarding the data, it would probably be better to still distribute the data in another fashion and mount it as a shared volume within the docker container, as well as the volume where the user wants to put outputs. While I don't think the docker hub has size limits on images, there seem to be some recurring problems people are having both pushing and pulling large images (https://github.com/docker/docker/issues/2292 has issues for large layers going back as 2013 and as recent as 11 days ago)
Although I agree that having the data with the container greatly aids in portability as well as reproducibility, since those images can/should be versioned.

Good thoughts. I'd like to have the data inside so it's a single download to start running gemini. The data on the image should be ~3GB or so. The issue you link mentions a 5GB hard-limit and that most of the problems are on push. I would check to see if pull is more reliable. I guess we would also create an image with everything but dbsnp and 1000G, that would remove the majority of the data from the image.

3 GB probably isn't too bad. Not sure why I was thinking it might be bigger. I agree that a single download would be good. I'm willing to test this out a bit in terms of creating an image and seeing if I can push/pull it from the public repo.

It would fit nicely with some other work that I am doing anyway. I am working on a web interface that has some features including gemini integration, and I want to move that to a Docker-based distribution.

@dgaston that would be awesome if you wanted to create an image. We have an impending release with data changes so it might be good to wait until then.

actually, it looks like it will be quite a bit larger than 3GB.

I don't think a gemini image with data included is a good idea. We should think about separated data volumes: http://docs.docker.com/userguide/dockervolumes/
If this doesn't work, it should be simple to trigger the data download from within the container.

Brent and Daniel;
This would be great. More docker, please. We include a ready-to-go GEMINI, without the data, as part of the bcbio docker image, so you could import that directly to try it out:
https://github.com/chapmanb/bcbio-nextgen-vm#docker-image-installation
This also includes a bunch of other tools but should at least be usable as a starting point.
Regarding the discussion points:

Don't include the data. It'll be too big. I have a separate data download stage as part of running bcbio with Docker:

https://github.com/chapmanb/bcbio-nextgen-vm#installation

You do need root (or effectively root) permissions to run Docker now. Namespace support might be coming in 1.6 which would avoid this. I've been patiently waiting for that support for a long while.

My experience is that the docker index can't handle large images. I got lots of timeouts and failures when trying this, and now do a direct download of a gzipped tarball from S3.

Good points Brad. I have been following your use of Docker in bcbio, which is how I got introduced to Docker as a tool in the first place. I agree that keeping the data separate is the best idea. Docker volumes work well. I'll look at how you handle it in bcbio in terms of managing the user download and having that path reflected in the Docker container itself for linking since that is usually specified in the Dockerfile

Thanks for looking into this I'd definitely be open to learning new ways of handling data, especially via data volumes. Some of that didn't exist, or I didn't understand it, when I wrote that code. It would be awesome to learn ways that don't need so much custom code and rely more on all the cool Docker tooling.

thanks for all the insight. I updated the list.
if docker 1.6 supports use without sudo and the data volumes meet our needs, then that should be a good combination to explore.

Probably worth exploring before then and experimenting. Obviously the permissions may be an issue for some users until that is fixed. For the really security conscious you could probably isolate your install inside a Vagrant VM as well for further security

Hi everyone, so I have started working on this in terms of building out a functional image to start with and working my way up from there. I thought about different ways of doing this, including forking the GEMINI github project itself and adding a Dockerfile and going that route, but I think for managing versions it was best to build an image following the use of the installation script.
Right now I have an image that uses Ubuntu 14.04 as the base image, with all dependencies needed at the system level (I think, haven't run into any issues yet) installed, and GEMINI and all its dependencies installed using the install script with the no-data option.
This isn't currently set up like bcbio-nextgen-vm where you have a wrapper script around all of the docker components so right now it is executed using the docker command line itself.
Next step is to handle volumes for interacting with the users filesystem and to automount a data directory for the GEMINI data.
The Dockerhub repo is at https://registry.hub.docker.com/u/dgaston/gemini/

Oh and follow up steps will be to write a wrapper script that will handle downloading and setting up the data directory and interacting with docker.

@dgaston, this is excellent! So, you were able to just use the gemini_install.py script to get all the deps?
Have you looked at the data-volumes?

Yes the gemini_install.py script  executed just withy --nodata works in creating the image. At least it works in that the build successfully completes and I can create a container and run gemini without arguments or gemini --help and get the help output.
Since even when you run with --nodata you still have to specify a datadir the datadir inside the container is already in the gemini config file. So if you launch the container using the -v flag you can specify a data volume. So for instance my gemini files are in /data/shared/gemini/data and the datadir is /root/gemini/data
docker run -t -v /data/shared/gemini/data:/root/gemini/data -i dgaston/gemini:v0.1a /bin/bash
that starts a docker container with the host directory as a data volume. The container isn't executing gemini, just running bash so I can drop into the container and check things are in the right spot and they are.
I could add another directory with say a vcf file I want to run and do that and check it from inside the container before I continue building on the Dockerfile and any external scripts.
Right now I am trying to figure out the best way of installing just the data in a local directory. Of course I can write a simple script that grabs it from the AWS S3 bucket but it would be nice to work with the versioning system that gemini_install.py has. It seems a little hard at the moment to untangle installation of all gemini components  from just the data though.

@arq5x or @chapmanb might have some ideas there.

Daniel;
Great work with putting this together. You're right on with the data directory. Mount the internal gemini directory to somewhere external then you can run:
gemini update --dataonly

and it'll download/upload just the data, mapping it to the non-docker local directory. This is essentially all bcbio does with the scripts, but just manages a consistent set of directories so users don't need to know about the details. Thanks again for all the great work on this.

Oh that's perfect, of course the update will work on its own with the data only flag. Cheers.

Well everything seems to be going smoothly. Updated the image to the 0.12.2 fix with cyvcf and it is happily chugging away loading a vcf into a gemini database at the moment. This will work nicely for being  able to store and re-run previous versions of GEMINI in a fairly straightforward way. The only real issue being that maintaining older versions of the data files is still a bit cumbersome.

@dgaston, what did you use for the base image? I think this would be a nice way to test gemini on a completely new system so we make sure all of the data files and deps get pulled in.

On a bare docker image, I have this recipe to run tests on the dev branch:
# start the container, the first time this will take a while.
docker run -t -i ubuntu:14.04 /bin/bash
apt-get update && apt-get -y upgrade
apt-get -y install python2.7-dev git-core wget curl g++-4.8 zlib1g-dev g++ build-essential
ln -s /usr/bin/python2.7 /usr/bin/python

# install
git clone https://github.com/arq5x/gemini.git && cd gemini \
    && git branch --track dev origin/dev \
    && git checkout dev \
    && python2.7 gemini/scripts/gemini_install.py --gemini-version unstable /tools /data

# test
PATH=/data/anaconda/bin:/tools/bin/:$PATH
cd /data/gemini && bash master-test.sh

I used Ubuntu 14.04 as my base, but you could definitely use a smaller one I'm sure. There are some tweaks that hopefully can be made th flatten the image a bit more.

@brentp That could be pretty easily translated into a Dockerfile for testing as well. I could tweak it and push it to the same repo. I have my Dockerfile stashed in this git repo: https://github.com/dgaston/gemini-docker


Ability to delete policies

Is there an existing issue for this?

[X] I have searched the existing issues

Feature description
Right now there is no ability to delete policies.
This is fine with static Git-based policy driver, but with dynamic policy storage like Postgres it becomes an issue.
The use case is, if we create policies dynamically, as per Custom Role and Scope, we can store a ref to in in our DB.
When the scope gets removed, the policies need to be cleaned up as well.
Currently it's only possible as a workaround b directly removing them from the DB by scope and resource.
Which feels awkward.
What would the ideal solution look like to you?
Please provide the ability to remove the policy(es), as in:

cerbosClient.deletePolicy(<id>)
cerbosClient.deletePolicies({ ids: <ids> })

Anything else?
Thank you :)

Hi, the reason we haven't yet introduced a hard delete API endpoint is for two reasons:

Keep a history of policy changes (Cerbos was originally designed exclusively for GitOps).
It's quite easy to make the policy repository invalid by deleting a policy (e.g. deleting the middle scope of a scope chain)

You can use the DisablePolicy endpoint to disable a policy and it has the same effect as deleting one except for the fact that you can recover it quite easily with EnablePolicy.
Is your main concern the storage used by disabled policies?


Minor typo and format changes in Supported docs

Minor typo and format changes in Supported docs
Notes for Reviewers
This PR fixes #9175
Signed commits

[ ✔] Yes, I signed my commits.

🚀 Preview for commit 19ada46e8635ab932693cba18c1f287021ee26b8 at: https://6537434c7b04631b2b8d40fa--meshery-docs-preview.netlify.app


Build failed with exception

Hi,
I just upgraded to latest flutter stable 1.7.8hotfix3 and also to flutter_image_compress 0.6.3, now I get this when trying to build:

Initializing gradle...                                              1,0s
Resolving dependencies...                                           4,6s
Launching lib/main.dart on ANE LX1 in release mode...
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
e: C:\flutter.pub-cache\hosted\pub.dartlang.org\flutter_image_compress-0.6.2\android\src\main\kotlin\com\example\flutterimagecompress\FlutterImageCompressPlugin.kt: (11, 7): Redeclaration: FlutterImageCompressPlugin
e: C:\flutter.pub-cache\hosted\pub.dartlang.org\flutter_image_compress-0.6.2\android\src\main\kotlin\com\example\flutterimagecompress\core\CompressFileHandler.kt: (15, 7): Redeclaration: CompressFileHandler
e: C:\flutter.pub-cache\hosted\pub.dartlang.org\flutter_image_compress-0.6.2\android\src\main\kotlin\com\example\flutterimagecompress\core\CompressListHandler.kt: (17, 7): Redeclaration: CompressListHandler
e: C:\flutter.pub-cache\hosted\pub.dartlang.org\flutter_image_compress-0.6.3\android\src\main\kotlin\com\example\flutterimagecompress\FlutterImageCompressPlugin.kt: (11, 7): Redeclaration: FlutterImageCompressPlugin
e: C:\flutter.pub-cache\hosted\pub.dartlang.org\flutter_image_compress-0.6.3\android\src\main\kotlin\com\example\flutterimagecompress\FlutterImageCompressPlugin.kt: (25, 76): Type mismatch: inferred type is PluginRegistry.Registrar but Activity was expected
e: C:\flutter.pub-cache\hosted\pub.dartlang.org\flutter_image_compress-0.6.3\android\src\main\kotlin\com\example\flutterimagecompress\FlutterImageCompressPlugin.kt: (26, 76): Type mismatch: inferred type is PluginRegistry.Registrar but Activity was expected
e: C:\flutter.pub-cache\hosted\pub.dartlang.org\flutter_image_compress-0.6.3\android\src\main\kotlin\com\example\flutterimagecompress\core\CompressFileHandler.kt: (15, 7): Redeclaration: CompressFileHandler
e: C:\flutter.pub-cache\hosted\pub.dartlang.org\flutter_image_compress-0.6.3\android\src\main\kotlin\com\example\flutterimagecompress\core\CompressListHandler.kt: (17, 7): Redeclaration: CompressListHandler
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':flutter_image_compress:compileReleaseKotlin'.

Compilation error. See log for more details

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 15s

Kotlin: 1.3.41
Any idea? :)

Did a "flutter clean" command, now it works again. :)

So, this is an error of cache.
Thanks for issue.

I got the same error but I just upgraded this flutter_image_compress 0.6.3 to 0.7.0, I just downgraded to the previous version  0.6.3 and that's it, it solved the error.

I got the same error when I upgraded the flutter_image_compress from 0.6.3 to 0.7.0, to solve this, I just downgraded back to the previous version 0.6.3 and that's it, it solved the error.

Try running flutter clean and see if it solves your problem?

Did a "flutter clean" command, now it works again. :)

Worked for me too, thanks


Mock Cloud Services

@astik says in https://github.com/driftyco/ionic-platform-web-client/issues/105:

It would be great to have a way to mock ionic.io angular service ($ionicAuth, $ionicUser, $ionicDeploy) like we do with $http and $httpBackend. Even simple configurable decorator would be perfect =)

On a longer shot, we may also dream of a $ionicPush mock that would use a dummy backend that can simulate sending push notification.

This won't be tackled right away, but it's good to talk about. Most of the cloud client has been switched over to use dependency injection, which makes mocking actually possible now.

Look into mocking angular 1 services with Angular 2 in mind.
Everything should now be using the client, so it may be possible to do this by simply mocking that. (but it does not use $http, because it needs to work without angular)

Anything else to add, @astik?

Plan sounds good to me =)
(still, i have trouble to understand what is about ionic-cloud compare to ionic-platform-web-client, documentation still speaks about the latest)

@astik ionic-cloud is the future of the ionic-platform-web-client, but it's still in beta. There will be some breaking changes. We're launching some documentation updates soon that will hopefully clear everything up.


foliate: 3.0.1 -> 4

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/foliate/versions.
meta.description for foliate is: A simple and modern GTK eBook reader
meta.homepage for foliate is: https://johnfactotum.github.io/foliate/
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 4 with grep in /nix/store/wslqdi4i3hn0qdyp3hb6l01q2462bhgx-foliate-4
found 4 in filename of file in /nix/store/wslqdi4i3hn0qdyp3hb6l01q2462bhgx-foliate-4

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
foliate

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/wslqdi4i3hn0qdyp3hb6l01q2462bhgx-foliate-4 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A foliate https://github.com/r-ryantm/nixpkgs/archive/88d589b5bb3f0142665f671b9af4d746a036a288.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/88d589b5bb3f0142665f671b9af4d746a036a288#foliate

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/wslqdi4i3hn0qdyp3hb6l01q2462bhgx-foliate-4
ls -la /nix/store/wslqdi4i3hn0qdyp3hb6l01q2462bhgx-foliate-4/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

foliate

Maintainer pings
cc @onny for testing.

So we'll propably have to use rev = "refs/tags/${version}"; instead of rev = version; to fix this?


Grounding compiler error

Made a new project, project wouldn't load into play mode with Final IK Stub due to compiler issue caused by Grounding not found.

That first file should not be there, what version of the stub are you using?
Try to remove the package, wait for unity to reload, and then reinstall the package.

I installed it with VCC, which ive been told is currently not a good way to install it as it causes issues.

we had an issue with with version 1.9.1, but it was fixed with 1.9.2.
My doubt is that there were 2 versions of the stub installed in your project causing the issue
From the sceenshot i see you have the files from 1.9.2, but also a file (Grounder.cs, the only one that has a different icon there) that should not be there (and it's not on the files of the release, checked it before my first answer) so it must have gotten there by other means

Please try uninstalling the stub and installing the latest version of the stub, that should fix this. If it doesn't, feel free to open a new issue.


Pipeline implement new UI

For riboseinc/aws-codecommit-trigger-plugin#36
For riboseinc/aws-codecommit-trigger-plugin#37
For riboseinc/aws-codecommit-trigger-plugin#35
For riboseinc/aws-codecommit-trigger-plugin#32
For riboseinc/aws-codecommit-trigger-plugin#29

@phuonghuynh could we have a new release for this? Thanks!

v13 released

👍


Broken link : "10 Essential Erlang Tools for Erlang Developers"

Advanced Erlang
10 Essential Erlang Tools for Erlang Developers
The provided link is broken but this one seems to work just fine :
10 Essential Erlang Tools for Erlang Developers
Hope this helps,
Best

Fixed! Thanks