Pipelined-rendering performance

Bevy version
https://github.com/bevyengine/bevy/commit/c5af1335eb48f990c71082787ff566fc793aab33
Operating system & version
macOS Catalina, 10.15.7
AdapterInfo { name: "AMD Radeon RX 5700 XT", vendor: 0, device: 0, device_type: DiscreteGpu, backend: Metal }
What you did
test file for old renderer:
use bevy::{
    DefaultPlugins,
    diagnostic::*,
    app::prelude::*,
    asset::prelude::*,
    ecs::prelude::*,
    math::prelude::*,
    pbr::{*, prelude::*},
    render::prelude::*,
    transform::prelude::*};

pub fn setup(
  mut commands: Commands,
  mut meshes: ResMut<Assets<Mesh>>,
  mut materials: ResMut<Assets<StandardMaterial>>,
) {
  let size = UVec3::new(20, 20, 20);
  for x in 1..size[0] - 1 {
      for y in 1..size[1] - 1 {
          for z in 1..size[2] - 1 {
              for p in 0..3 {
                  let material = materials.add(StandardMaterial {
                      unlit: true,
                      ..Default::default()
                  });
                  commands
                      .spawn_bundle(PbrBundle {
                          mesh: meshes.add(Mesh::from(shape::Cube {
                              size: 1.0,
                          })),
                          material: material.clone(),
                          transform: Transform {
                              translation: Vec3::new(
                                  x as f32 + 0.5,
                                  y as f32 + 0.5,
                                  z as f32 + 0.5,
                              ),
                              ..Default::default()
                          },
                          ..Default::default()
                      });
              }
          }
      }
  }
  commands
    .spawn_bundle(PerspectiveCameraBundle {
        transform: Transform::from_translation(size.as_f32() * 1.1).looking_at(Vec3::ZERO, Vec3::Y),
        ..Default::default()
    });
  commands.insert_resource(AmbientLight {
      color: Color::ORANGE_RED,
      brightness: 0.02,
  });
}

pub fn main() {
  App::new()
      .add_plugins(DefaultPlugins)
       .add_plugin(LogDiagnosticsPlugin::default())
       .add_plugin(FrameTimeDiagnosticsPlugin::default())
      .add_startup_system(setup)
      .run();
}

test file for new renderer:
use bevy::{
    PipelinedDefaultPlugins,
     app::prelude::*,
      asset::prelude::*,
       diagnostic::*,
        ecs::prelude::*,
         math::prelude::*,
          pbr2::*,
           render2::{camera::PerspectiveCameraBundle, color::Color, mesh::{Mesh, shape}},
            transform::prelude::*
        };

pub fn setup(
  mut commands: Commands,
  mut meshes: ResMut<Assets<Mesh>>,
  mut materials: ResMut<Assets<StandardMaterial>>,
) {
  let size = UVec3::new(20, 20, 20);
  for x in 1..size[0] - 1 {
      for y in 1..size[1] - 1 {
          for z in 1..size[2] - 1 {
              for p in 0..3 {
                  let material = materials.add(StandardMaterial {
                      unlit: true,
                      ..Default::default()
                  });
                  commands
                      .spawn_bundle(PbrBundle {
                          mesh: meshes.add(Mesh::from(shape::Cube {
                              size: 1.0,
                          })),
                          material: material.clone(),
                          transform: Transform {
                              translation: Vec3::new(
                                  x as f32 + 0.5,
                                  y as f32 + 0.5,
                                  z as f32 + 0.5,
                              ),
                              ..Default::default()
                          },
                          ..Default::default()
                      });
              }
          }
      }
  }
  commands
    .spawn_bundle(PerspectiveCameraBundle {
        transform: Transform::from_translation(size.as_f32() * 1.1).looking_at(Vec3::ZERO, Vec3::Y),
        ..Default::default()
    });
  commands.insert_resource(AmbientLight {
      color: Color::ORANGE_RED,
      brightness: 0.02,
  });
}

pub fn main() {
  App::new()
      .add_plugins(PipelinedDefaultPlugins)
       .add_plugin(LogDiagnosticsPlugin::default())
       .add_plugin(FrameTimeDiagnosticsPlugin::default())
      .add_startup_system(setup)
      .run();
}

my results:
    // 3*20^3
    // Oct 30 13:52:58.313  INFO bevy diagnostic: fps                             :    7.408413  (avg 7.417044)
    // 3*10^3
    // Oct 30 13:53:54.464  INFO bevy diagnostic: fps                             :   60.049122  (avg 59.930744)
    // rendering_test::main();

    // 3*20^3
    // Oct 30 13:52:14.582  INFO bevy diagnostic: fps                             :    4.563918  (avg 4.635602)
    // 3*10^3
    // Oct 30 13:54:40.295  INFO bevy diagnostic: fps                             :    5.064065  (avg 5.013634)

What you expected to happen
new renderer to be faster
What actually happened
new renderer is slower

Is size being 10^3 for the old renderer a typo?

Is size being 10^3 for the old renderer a typo?

I changed it manually to test different sizes.

I am seeing very similar results with
MacOS 11.2.3
AdapterInfo { name: "AMD Radeon Pro 560X", vendor: 0, device: 0, device_type: DiscreteGpu, backend: Metal }

Is this metal-specific? On my other machine I see
Oct 30 08:35:10.667  INFO bevy_render2::renderer: AdapterInfo { name: "NVIDIA GeForce GTX 1660", vendor: 4318, device: 8580, device_type: DiscreteGpu, backend: Vulkan }

old
Oct 30 08:31:20.348  INFO bevy diagnostic: frame_time                      :    0.078404s (avg 0.078207s)
Oct 30 08:31:20.349  INFO bevy diagnostic: fps                             :   12.172581  (avg 12.418601)
Oct 30 08:31:20.350  INFO bevy diagnostic: frame_count                     :  187.000000  (avg 187.000000)

new
Oct 30 08:35:38.768  INFO bevy diagnostic: frame_time                      :    0.066500s (avg 0.067083s)
Oct 30 08:35:38.844  INFO bevy diagnostic: fps                             :   14.853039  (avg 14.893850)
Oct 30 08:35:38.847  INFO bevy diagnostic: frame_count                     :  402.000000  (avg 402.000000)

And also these lines for some reason
Oct 30 08:35:11.111  INFO naga::back::spv::writer: Skip function Some("fetch_point_shadow")
Oct 30 08:35:11.111  INFO naga::back::spv::writer: Skip function Some("fetch_directional_shadow")

On my Mac, disabling vsync, example pbr runs at 58fps in release mode, and pbr_pipelined runs at 32fps.
Oct 30 19:13:22.023  INFO bevy_render2::renderer: AdapterInfo { name: "Intel(R) Iris(TM) Plus Graphics 655", vendor: 0, device: 0, device_type: IntegratedGpu, backend: Metal }

Yeah so far we're only seeing repros from metal users. This is definitely worth investigating prior to the 0.6 release. Given that our sprite rendering pipeline (which performs pretty well) uses pretty much the same renderer abstractions as our pbr pipeline, I have a feeling that this is something specific to how the pbr pipeline is implemented, but I guess we'll find out! I'll start poking around. I have mac/linux/windows machines to test on.

I now have access to a m1 Mac, both pbr and pbr_pipelined run around 170 fps on it. The example from this issue runs at 22fps (old) / 18fps (pipelined)
Nov 02 12:25:26.041  INFO bevy_render2::renderer: AdapterInfo { name: "Apple M1 Max", vendor: 0, device: 0, device_type: DiscreteGpu, backend: Metal }

Possibly related - I'm also seeing poor performance on @cart 's bevymark_pipelined example on an M1 Mac on Big Sur.
bevy_render2::renderer: AdapterInfo { name: "Apple M1", vendor: 0, device: 0, device_type: DiscreteGpu, backend: Metal }

Just to add my experience - I'm seeing poor performance on an M1 Mac on Big Sure, running @cart 's bevymark_pipelined example:
bevy_render2::renderer: AdapterInfo { name: "Apple M1", vendor: 0, device: 0, device_type: DiscreteGpu, backend: Metal }

Is this still an issue? We've moved significantly in terms of the end-to-end engine performance and specifically the renderer.


chore: fix imports to resolve EE conflicts

Description
Changes imports - workers/Evaluation/fns to @appsmith/workers/Evaluation/fns
Type of change

Chore (housekeeping or task changes that don't impact user perception)

How Has This Been Tested?

Manual

Test Plan

Add Testsmith test cases links that relate to this PR

Issues raised during DP testing

Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR)

Checklist:
Dev activity

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] PR is being merged under a feature flag

QA activity:

[ ] Test plan has been approved by relevant developers
[ ] Test plan has been peer reviewed by QA
[ ] Cypress test cases have been added and approved by either SDET or manual QA
[ ] Organized project review call with relevant stakeholders after Round 1/2 of QA
[ ] Added Test Plan Approved label after reveiwing all Cypress test

/ok-to-test sha=7488958

/build-deploy-preview

/ok-to-test sha=7488958

/ok-to-test sha=bd7cc84


MupX deployment fails. Why?

I'm trying to deploy Telescope to a simple Ubuntu 16.04 server. So I'm using the suggested deployment with MupX. After setting up the mup.json file, I did a mupx deploy:
$ mupx setup

Meteor Up: Production Quality Meteor Deployments
------------------------------------------------
Configuration file : mup.json
Settings file      : settings.json

Started TaskList: Setup (linux)
[<IP_ADDRESS>] - Installing Docker
[<IP_ADDRESS>] - Installing Docker: SUCCESS
[<IP_ADDRESS>] - Setting up Environment
[<IP_ADDRESS>] - Setting up Environment: SUCCESS
[<IP_ADDRESS>] - Copying MongoDB configuration
[<IP_ADDRESS>] - Copying MongoDB configuration: SUCCESS
[<IP_ADDRESS>] - Installing MongoDB
[<IP_ADDRESS>] - Installing MongoDB: SUCCESS

No problems there, so after this I tried a mupx deploy, but that ends with an error:
$ mupx deploy

Meteor Up: Production Quality Meteor Deployments
------------------------------------------------
Configuration file : mup.json
Settings file      : settings.json

Meteor app path    : /Users/kramer65/dev/repos/Telescope
Using buildOptions : {}
nova:rss: updating npm dependencies -- rss...

Changes to your project's package version selections:

reactrouter:react-router-ssr  downgraded from 3.1.4 to 3.1.3

Started TaskList: Deploy app 'telescope' (linux)
[<IP_ADDRESS>] - Uploading bundle
[<IP_ADDRESS>] - Uploading bundle: SUCCESS
[<IP_ADDRESS>] - Sending environment variables
[<IP_ADDRESS>] - Sending environment variables: SUCCESS
[<IP_ADDRESS>] - Initializing start script
[<IP_ADDRESS>] - Initializing start script: SUCCESS
[<IP_ADDRESS>] - Invoking deployment process
[<IP_ADDRESS>] - Invoking deployment process: SUCCESS
[<IP_ADDRESS>] - Verifying deployment
[<IP_ADDRESS>] x Verifying deployment: FAILED

	-----------------------------------STDERR-----------------------------------
	 run:
	npm WARN deprecated
	npm WARN deprecated   npm -g install npm@latest
	npm WARN deprecated
	npm WARN deprecated (Depending on how Node.js was installed on your system, you
	npm WARN deprecated may need to prefix the preceding commands with `sudo`, or if
	npm WARN deprecated on Windows, run them from an Administrator prompt.)
	npm WARN deprecated
	npm WARN deprecated If you're running the version of npm bundled with
	npm WARN deprecated Node.js 0.10 LTS, be aware that the next version of 0.10 LTS
	npm WARN deprecated will be bundled with a version of npm@2, which has some small
	npm WARN deprecated backwards-incompatible changes made to `npm run-script` and
	npm WARN deprecated semver behavior.
	npm WARN package.json<EMAIL_ADDRESS>No description
	npm WARN package.json<EMAIL_ADDRESS>No repository field.
	npm WARN package.json<EMAIL_ADDRESS>No README data

	><EMAIL_ADDRESS>install /bundle/bundle/programs/server/node_modules/fibers
	> node build.js || nodejs build.js

	-----------------------------------STDOUT-----------------------------------

	To see more logs type 'mup logs --tail=50'

	----------------------------------------------------------------------------

So I checked what the logs said:
$ mupx logs --tail=50

Meteor Up: Production Quality Meteor Deployments
------------------------------------------------
Configuration file : mup.json
Settings file      : settings.json

[<IP_ADDRESS>]     at fileEvaluate (packages/modules-runtime/.npm/package/node_modules/install/install.js:141:1)
[<IP_ADDRESS>]     at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:75:1)
[<IP_ADDRESS>]     at packages/react-meteor-data/createContainer.jsx:10:16
[<IP_ADDRESS>] npm WARN deprecated This version of npm lacks support for important features,
[<IP_ADDRESS>] npm WARN deprecated such as scoped packages, offered by the primary npm
[<IP_ADDRESS>] npm WARN deprecated registry. Consider upgrading to at least npm@2, if not the
[<IP_ADDRESS>] npm WARN deprecated latest stable version. To upgrade to npm@2, run:
[<IP_ADDRESS>] npm WARN deprecated
[<IP_ADDRESS>] npm WARN deprecated   npm -g install npm@latest-2
[<IP_ADDRESS>] npm WARN deprecated
[<IP_ADDRESS>] npm WARN deprecated To upgrade to the latest stable version, run:
[<IP_ADDRESS>] npm WARN deprecated
[<IP_ADDRESS>] npm WARN deprecated   npm -g install npm@latest
[<IP_ADDRESS>] npm WARN deprecated
[<IP_ADDRESS>] npm WARN deprecated (Depending on how Node.js was installed on your system, you
[<IP_ADDRESS>] npm WARN deprecated may need to prefix the preceding commands with `sudo`, or if
[<IP_ADDRESS>] npm WARN deprecated on Windows, run them from an Administrator prompt.)
[<IP_ADDRESS>] npm WARN deprecated
[<IP_ADDRESS>] npm WARN deprecated If you're running the version of npm bundled with
[<IP_ADDRESS>] npm WARN deprecated Node.js 0.10 LTS, be aware that the next version of 0.10 LTS
[<IP_ADDRESS>] npm WARN deprecated will be bundled with a version of npm@2, which has some small
[<IP_ADDRESS>] npm WARN deprecated backwards-incompatible changes made to `npm run-script` and
[<IP_ADDRESS>] npm WARN deprecated semver behavior.
[<IP_ADDRESS>] npm WARN package.json<EMAIL_ADDRESS>No description
[<IP_ADDRESS>] npm WARN package.json<EMAIL_ADDRESS>No repository field.
[<IP_ADDRESS>] npm WARN package.json<EMAIL_ADDRESS>No README data
[<IP_ADDRESS>] npm WARN cannot run in wd<EMAIL_ADDRESS>node npm-rebuild.js (wd=/bundle/bundle/programs/server)
[<IP_ADDRESS>] => Starting meteor app on port:80
[<IP_ADDRESS>] WARNING: npm peer requirements (for react-meteor-data) not installed:
[<IP_ADDRESS>]  -<EMAIL_ADDRESS>not installed.
[<IP_ADDRESS>]  -<EMAIL_ADDRESS>not installed.
[<IP_ADDRESS>]
[<IP_ADDRESS>] Read more about installing npm peer dependencies:
[<IP_ADDRESS>]   http://guide.meteor.com/using-packages.html#peer-npm-dependencies
[<IP_ADDRESS>]
[<IP_ADDRESS>]
[<IP_ADDRESS>] /bundle/bundle/programs/server/node_modules/fibers/future.js:267
[<IP_ADDRESS>] 						throw(ex);
[<IP_ADDRESS>] 						      ^
[<IP_ADDRESS>] Error: Can't find npm module 'react'. Did you forget to call 'Npm.depends' in package.js within the 'modules-runtime' package?
[<IP_ADDRESS>]     at Object.Npm.require (/bundle/bundle/programs/server/boot.js:195:17)
[<IP_ADDRESS>]     at options.fallback (packages/modules-runtime/modules-runtime.js:21:1)
[<IP_ADDRESS>]     at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:81:1)
[<IP_ADDRESS>]     at meteorInstall.node_modules.meteor.react-meteor-data.createContainer.jsx (packages/react-meteor-data/createContainer.jsx:5:1)
[<IP_ADDRESS>]     at fileEvaluate (packages/modules-runtime/.npm/package/node_modules/install/install.js:141:1)
[<IP_ADDRESS>]     at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:75:1)
[<IP_ADDRESS>]     at meteorInstall.node_modules.meteor.react-meteor-data.react-meteor-data.jsx (packages/react-meteor-data/react-meteor-data.jsx:7:25)
[<IP_ADDRESS>]     at fileEvaluate (packages/modules-runtime/.npm/package/node_modules/install/install.js:141:1)
[<IP_ADDRESS>]     at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:75:1)
[<IP_ADDRESS>]     at packages/react-meteor-data/createContainer.jsx:10:16

In these logs I read something about React not being installed. But as far as I can see, it installs Telescope into a Docker container, and I don't really know how I can install react within that container.
Does anybody have any idea what I can do to fix this?

Weird. It sounds like it's failing to install React, so maybe npm install fails. But I'm not sure why that would happen… What if you try on Ubuntu 14.04?

It may be related to the deployCheckWaitTime value in your mup.json file. Try to increase it to 30 or 60?

@xavcz  - I tried increasing deployCheckWaitTime to 120, but unfortunately it still ends in the following error:
$ mupx deploy

Meteor Up: Production Quality Meteor Deployments
------------------------------------------------
Configuration file : mup.json
Settings file      : settings.json

Meteor app path    : /Users/kramer65/dev/repos/Telescope
Using buildOptions : {}

Started TaskList: Deploy app 'telescope' (linux)
[<IP_ADDRESS>] - Uploading bundle
[<IP_ADDRESS>] - Uploading bundle: SUCCESS
[<IP_ADDRESS>] - Sending environment variables
[<IP_ADDRESS>] - Sending environment variables: SUCCESS
[<IP_ADDRESS>] - Initializing start script
[<IP_ADDRESS>] - Initializing start script: SUCCESS
[<IP_ADDRESS>] - Invoking deployment process
[<IP_ADDRESS>] - Invoking deployment process: SUCCESS
[<IP_ADDRESS>] - Verifying deployment
[<IP_ADDRESS>] x Verifying deployment: FAILED

	-----------------------------------STDERR-----------------------------------
	e?
	    at Object.Npm.require (/bundle/bundle/programs/server/boot.js:195:17)
	    at options.fallback (packages/modules-runtime/modules-runtime.js:21:1)
	    at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:81:1)
	    at meteorInstall.node_modules.meteor.react-meteor-data.createContainer.jsx (packages/react-meteor-data/createContainer.jsx:5:1)
	    at fileEvaluate (packages/modules-runtime/.npm/package/node_modules/install/install.js:141:1)
	    at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:75:1)
	    at meteorInstall.node_modules.meteor.react-meteor-data.react-meteor-data.jsx (packages/react-meteor-data/react-meteor-data.jsx:7:25)
	    at fileEvaluate (packages/modules-runtime/.npm/package/node_modules/install/install.js:141:1)
	    at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:75:1)
	    at packages/react-meteor-data/createContainer.jsx:10:16

	=> Redeploying previous version of the app

	-----------------------------------STDOUT-----------------------------------

	To see more logs type 'mup logs --tail=50'

	----------------------------------------------------------------------------

with the logs being:
$ mupx logs --tail=50

Meteor Up: Production Quality Meteor Deployments
------------------------------------------------
Configuration file : mup.json
Settings file      : settings.json

[<IP_ADDRESS>]     at fileEvaluate (packages/modules-runtime/.npm/package/node_modules/install/install.js:141:1)
[<IP_ADDRESS>]     at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:75:1)
[<IP_ADDRESS>]     at packages/react-meteor-data/createContainer.jsx:10:16
[<IP_ADDRESS>] npm WARN deprecated This version of npm lacks support for important features,
[<IP_ADDRESS>] npm WARN deprecated such as scoped packages, offered by the primary npm
[<IP_ADDRESS>] npm WARN deprecated registry. Consider upgrading to at least npm@2, if not the
[<IP_ADDRESS>] npm WARN deprecated latest stable version. To upgrade to npm@2, run:
[<IP_ADDRESS>] npm WARN deprecated
[<IP_ADDRESS>] npm WARN deprecated   npm -g install npm@latest-2
[<IP_ADDRESS>] npm WARN deprecated
[<IP_ADDRESS>] npm WARN deprecated To upgrade to the latest stable version, run:
[<IP_ADDRESS>] npm WARN deprecated
[<IP_ADDRESS>] npm WARN deprecated   npm -g install npm@latest
[<IP_ADDRESS>] npm WARN deprecated
[<IP_ADDRESS>] npm WARN deprecated (Depending on how Node.js was installed on your system, you
[<IP_ADDRESS>] npm WARN deprecated may need to prefix the preceding commands with `sudo`, or if
[<IP_ADDRESS>] npm WARN deprecated on Windows, run them from an Administrator prompt.)
[<IP_ADDRESS>] npm WARN deprecated
[<IP_ADDRESS>] npm WARN deprecated If you're running the version of npm bundled with
[<IP_ADDRESS>] npm WARN deprecated Node.js 0.10 LTS, be aware that the next version of 0.10 LTS
[<IP_ADDRESS>] npm WARN deprecated will be bundled with a version of npm@2, which has some small
[<IP_ADDRESS>] npm WARN deprecated backwards-incompatible changes made to `npm run-script` and
[<IP_ADDRESS>] npm WARN deprecated semver behavior.
[<IP_ADDRESS>] npm WARN package.json<EMAIL_ADDRESS>No description
[<IP_ADDRESS>] npm WARN package.json<EMAIL_ADDRESS>No repository field.
[<IP_ADDRESS>] npm WARN package.json<EMAIL_ADDRESS>No README data
[<IP_ADDRESS>] npm WARN cannot run in wd<EMAIL_ADDRESS>node npm-rebuild.js (wd=/bundle/bundle/programs/server)
[<IP_ADDRESS>] => Starting meteor app on port:80
[<IP_ADDRESS>] WARNING: npm peer requirements (for react-meteor-data) not installed:
[<IP_ADDRESS>]  -<EMAIL_ADDRESS>not installed.
[<IP_ADDRESS>]  -<EMAIL_ADDRESS>not installed.
[<IP_ADDRESS>]
[<IP_ADDRESS>] Read more about installing npm peer dependencies:
[<IP_ADDRESS>]   http://guide.meteor.com/using-packages.html#peer-npm-dependencies
[<IP_ADDRESS>]
[<IP_ADDRESS>]
[<IP_ADDRESS>] /bundle/bundle/programs/server/node_modules/fibers/future.js:267
[<IP_ADDRESS>] 						throw(ex);
[<IP_ADDRESS>] 						      ^
[<IP_ADDRESS>] Error: Can't find npm module 'react'. Did you forget to call 'Npm.depends' in package.js within the 'modules-runtime' package?
[<IP_ADDRESS>]     at Object.Npm.require (/bundle/bundle/programs/server/boot.js:195:17)
[<IP_ADDRESS>]     at options.fallback (packages/modules-runtime/modules-runtime.js:21:1)
[<IP_ADDRESS>]     at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:81:1)
[<IP_ADDRESS>]     at meteorInstall.node_modules.meteor.react-meteor-data.createContainer.jsx (packages/react-meteor-data/createContainer.jsx:5:1)
[<IP_ADDRESS>]     at fileEvaluate (packages/modules-runtime/.npm/package/node_modules/install/install.js:141:1)
[<IP_ADDRESS>]     at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:75:1)
[<IP_ADDRESS>]     at meteorInstall.node_modules.meteor.react-meteor-data.react-meteor-data.jsx (packages/react-meteor-data/react-meteor-data.jsx:7:25)
[<IP_ADDRESS>]     at fileEvaluate (packages/modules-runtime/.npm/package/node_modules/install/install.js:141:1)
[<IP_ADDRESS>]     at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:75:1)
[<IP_ADDRESS>]     at packages/react-meteor-data/createContainer.jsx:10:16

Any other ideas?

I found this stackoverlow thread: http://stackoverflow.com/questions/9023672/nodejs-how-to-resolve-cannot-find-module-error
Maybe log into your docker container, remove your node_modules folder and reinstall npm packages?

hi, i have same error when deploy with mupx
.... npm WARN deprecated If you're running the version of npm bundled with npm WARN deprecated Node.js 0.10 LTS, be aware that the next version of 0.10 LTS npm WARN deprecated will be bundled with a version of npm@2, which has some small npm WARN deprecated backwards-incompatible changes made tonpm run-script` and
npm WARN deprecated semver behavior.
npm WARN package.json<EMAIL_ADDRESS>No description
npm WARN package.json<EMAIL_ADDRESS>No repository field.
npm WARN package.json<EMAIL_ADDRESS>No README data
npm WARN cannot run in wd<EMAIL_ADDRESS>node npm-rebuild.js (wd=/bundle/bundle/programs/server)
=> Starting meteor app on port:80
/bundle/bundle/programs/server/node_modules/fibers/future.js:280
throw(ex);
^
Error: Cannot find module 'object-assign'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object. (/bundle/bundle/programs/server/npm/node_modules/react/lib/React.js:14:15)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Module.Mp.load (/bundle/bundle/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/reify/node/runtime.js:16:23)
at Function.Module._load (module.js:312:12)
`

I realized my mistake, try
docker exec -i -t telescope npm install --save react  - in docker
or
npm install --save react   in project folder

Just use Ubuntu 14.04 LTS and it will work like a charm and deploy in seconds!

Getting the same error here from time to time, sometimes it just deploys correctly.
When it fails and although the log says "redeploying previous version of the app" the browser returns a 502 Bad Gateway error from nginx.
For the record, I'm deploying to an Ubuntu 14.04 so I'm assuming this issue could have nothing to do with the Ubuntu version but more with mupx's settings or configuration (in my case increasing the value of deployCheckWaitTime  didn't solve this issue either).

@capensisma and @xavcz - I tried deploying to a fresh Ubuntu 14.04 install with 1GB of memory and deployCheckWaitTime set to 120, but it still ends in an error about react not being installed:
$ mupx deploy

Meteor Up: Production Quality Meteor Deployments
------------------------------------------------
Configuration file : mup.json
Settings file      : settings.json

Meteor app path    : /Users/kramer65/dev/repos/Telescope
Using buildOptions : {}

Started TaskList: Deploy app 'telescope' (linux)
[<IP_ADDRESS>] - Uploading bundle
[<IP_ADDRESS>] - Uploading bundle: SUCCESS
[<IP_ADDRESS>] - Sending environment variables
[<IP_ADDRESS>] - Sending environment variables: SUCCESS
[<IP_ADDRESS>] - Initializing start script
[<IP_ADDRESS>] - Initializing start script: SUCCESS
[<IP_ADDRESS>] - Invoking deployment process
[<IP_ADDRESS>] - Invoking deployment process: SUCCESS
[<IP_ADDRESS>] - Verifying deployment
[<IP_ADDRESS>] x Verifying deployment: FAILED

	-----------------------------------STDERR-----------------------------------
	 package.js within the 'modules-runtime' package?
	    at Object.Npm.require (/bundle/bundle/programs/server/boot.js:195:17)
	    at options.fallback (packages/modules-runtime/modules-runtime.js:21:1)
	    at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:81:1)
	    at meteorInstall.node_modules.meteor.react-meteor-data.createContainer.jsx (packages/react-meteor-data/createContainer.jsx:5:1)
	    at fileEvaluate (packages/modules-runtime/.npm/package/node_modules/install/install.js:141:1)
	    at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:75:1)
	    at meteorInstall.node_modules.meteor.react-meteor-data.react-meteor-data.jsx (packages/react-meteor-data/react-meteor-data.jsx:7:25)
	    at fileEvaluate (packages/modules-runtime/.npm/package/node_modules/install/install.js:141:1)
	    at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:75:1)
	    at packages/react-meteor-data/createContainer.jsx:10:16
	-----------------------------------STDOUT-----------------------------------

	To see more logs type 'mup logs --tail=50'

	----------------------------------------------------------------------------

The logs now look like this:
$ mupx logs --tail=50

Meteor Up: Production Quality Meteor Deployments
------------------------------------------------
Configuration file : mup.json
Settings file      : settings.json

[<IP_ADDRESS>]     at fileEvaluate (packages/modules-runtime/.npm/package/node_modules/install/install.js:141:1)
[<IP_ADDRESS>]     at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:75:1)
[<IP_ADDRESS>]     at packages/react-meteor-data/createContainer.jsx:10:16
[<IP_ADDRESS>] npm WARN deprecated This version of npm lacks support for important features,
[<IP_ADDRESS>] npm WARN deprecated such as scoped packages, offered by the primary npm
[<IP_ADDRESS>] npm WARN deprecated registry. Consider upgrading to at least npm@2, if not the
[<IP_ADDRESS>] npm WARN deprecated latest stable version. To upgrade to npm@2, run:
[<IP_ADDRESS>] npm WARN deprecated
[<IP_ADDRESS>] npm WARN deprecated   npm -g install npm@latest-2
[<IP_ADDRESS>] npm WARN deprecated
[<IP_ADDRESS>] npm WARN deprecated To upgrade to the latest stable version, run:
[<IP_ADDRESS>] npm WARN deprecated
[<IP_ADDRESS>] npm WARN deprecated   npm -g install npm@latest
[<IP_ADDRESS>] npm WARN deprecated
[<IP_ADDRESS>] npm WARN deprecated (Depending on how Node.js was installed on your system, you
[<IP_ADDRESS>] npm WARN deprecated may need to prefix the preceding commands with `sudo`, or if
[<IP_ADDRESS>] npm WARN deprecated on Windows, run them from an Administrator prompt.)
[<IP_ADDRESS>] npm WARN deprecated
[<IP_ADDRESS>] npm WARN deprecated If you're running the version of npm bundled with
[<IP_ADDRESS>] npm WARN deprecated Node.js 0.10 LTS, be aware that the next version of 0.10 LTS
[<IP_ADDRESS>] npm WARN deprecated will be bundled with a version of npm@2, which has some small
[<IP_ADDRESS>] npm WARN deprecated backwards-incompatible changes made to `npm run-script` and
[<IP_ADDRESS>] npm WARN deprecated semver behavior.
[<IP_ADDRESS>] npm WARN package.json<EMAIL_ADDRESS>No description
[<IP_ADDRESS>] npm WARN package.json<EMAIL_ADDRESS>No repository field.
[<IP_ADDRESS>] npm WARN package.json<EMAIL_ADDRESS>No README data
[<IP_ADDRESS>] npm WARN cannot run in wd<EMAIL_ADDRESS>node npm-rebuild.js (wd=/bundle/bundle/programs/server)
[<IP_ADDRESS>] => Starting meteor app on port:80
[<IP_ADDRESS>] WARNING: npm peer requirements (for react-meteor-data) not installed:
[<IP_ADDRESS>]  -<EMAIL_ADDRESS>not installed.
[<IP_ADDRESS>]  -<EMAIL_ADDRESS>not installed.
[<IP_ADDRESS>]
[<IP_ADDRESS>] Read more about installing npm peer dependencies:
[<IP_ADDRESS>]   http://guide.meteor.com/using-packages.html#peer-npm-dependencies
[<IP_ADDRESS>]
[<IP_ADDRESS>]
[<IP_ADDRESS>] /bundle/bundle/programs/server/node_modules/fibers/future.js:267
[<IP_ADDRESS>] 						throw(ex);
[<IP_ADDRESS>] 						      ^
[<IP_ADDRESS>] Error: Can't find npm module 'react'. Did you forget to call 'Npm.depends' in package.js within the 'modules-runtime' package?
[<IP_ADDRESS>]     at Object.Npm.require (/bundle/bundle/programs/server/boot.js:195:17)
[<IP_ADDRESS>]     at options.fallback (packages/modules-runtime/modules-runtime.js:21:1)
[<IP_ADDRESS>]     at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:81:1)
[<IP_ADDRESS>]     at meteorInstall.node_modules.meteor.react-meteor-data.createContainer.jsx (packages/react-meteor-data/createContainer.jsx:5:1)
[<IP_ADDRESS>]     at fileEvaluate (packages/modules-runtime/.npm/package/node_modules/install/install.js:141:1)
[<IP_ADDRESS>]     at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:75:1)
[<IP_ADDRESS>]     at meteorInstall.node_modules.meteor.react-meteor-data.react-meteor-data.jsx (packages/react-meteor-data/react-meteor-data.jsx:7:25)
[<IP_ADDRESS>]     at fileEvaluate (packages/modules-runtime/.npm/package/node_modules/install/install.js:141:1)
[<IP_ADDRESS>]     at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:75:1)
[<IP_ADDRESS>]     at packages/react-meteor-data/createContainer.jsx:10:16

Any ideas what the problem could be here?

On which branch are you? Does it run locally after npm install?

npm install --save modules-runtime
try to install the module in the project
and then re mupx deploy

@xavcz - I'm on master, on commit 9cc12be 2016-07-04 | test if URL is not empty
@fortunto2 - I've tried your command, but that gives me a 404: Registry returned 404 for GET on https://registry.npmjs.org/modules-runtime.
I had it running on my laptop locally before, but I just tried running npm install again, which now fails in npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed..
So I cloned the repo in a fresh new folder on the latest commit (cb448e2 2016-07-06 | Merge pull request #1385 from IlyaSemenov/require_react_15.0) and ran npm install, which ends in:
$ npm install
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.

So I can't even get it to run locally anymore. Any more ideas?

@kramer65  yes sorry, look https://forums.meteor.com/t/error-cant-find-npm-module-react-did-you-forget-to-call-npm-depends-in-package-js-within-the-modules-runtime-package/20416/5
meteor npm install --save react react-dom react-addons-transition-group react-addons-css-transition-group react-addons-linked-state-mixin react-addons-create-fragment react-addons-update react-addons-pure-render-mixin react-addons-test-utils react-addons-perf

@fortunto2 - I presume you mean running this command locally? I tried that, but it ends in the following:
$ meteor npm install --save react react-dom react-addons-transition-group react-addons-css-transition-group react-addons-linked-state-mixin react-addons-create-fragment react-addons-update react-addons-pure-render-mixin react-addons-test-utils react-addons-perf
<EMAIL_ADDRESS>/Users/hielke/dev/repos/Telescope
├── UNMET PEER DEPENDENCY<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└── UNMET PEER DEPENDENCY<EMAIL_ADDRESS>
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.

yes local, and then try - mupx deploy
but need first solve "UNMET PEER DEPENDENCY"
may be
npm install --save<EMAIL_ADDRESS>npm install --save<EMAIL_ADDRESS>

@fortunto2 - Yes, that fixed it! Thanks!


Stop refreshing previous prompt

This fixes https://github.com/sorin-ionescu/prezto/issues/667.
May be controversial, but I do think this is a bug, not a feature. There is no sense in treating the last prompt differently, and with the current behavior it is impossible to see when the last command started and how long it took to execute.
Before (pay attention to the time stamp on the right):

After:

I agree this should be fixed, but need to understand better before I can weigh in.
This line refreshes the prompt after a change in editor state, such as changing in and out of command mode, and between insert and overwrite modes. Does that seem right?
Is the clock continually refreshing, or does it only refresh just before the next command runs?
zle editor-info is invoked in a number of places in this file. Any idea which one is triggering the offending refresh?

Hey, thanks for looking into this pull request!

This line refreshes the prompt after a change in editor state, such as changing in and out of command mode, and between insert and overwrite modes. Does that seem right?

If the command mode is "edit command in editor", then it is not affected, the command that you enter in the editor is placed on a new line after you exit the editor, it is not replacing the previous prompt.
As for the changing the insert/overwrite mode, you are right! This is affected, with my change the current prompt is not refreshed.

Is the clock continually refreshing, or does it only refresh just before the next command runs?

The clock is not refreshing, the clock shows when the time when the prompt was drawn, i.e. when the previous command finished.

zle editor-info is invoked in a number of places in this file. Any idea which one is triggering the offending refresh?

I'll nail this down later today, as now I know that insert/overwrite mode is affected, will try to come up with a better fix. If you have ideas, please share.

@paulmelnikow this is the offending call:
https://github.com/zsh-users/prezto/pull/17/files#diff-d47aedeec385fb4b85ecd505c23f9572R141
I'm honestly not sure if that call is even needed, i.e. if I can simply remove it, or the removal will break something. If I can't remove it, how should we proceed, parameterize editor-info somehow so that it doesn't execute zle reset-prompt in one specific condition, when it is coming from zle-line-finish?

I tracked down the commit that added the call to zle reset-prompt in zle-line-finish. It's some very old code.
I did some of my own testing. The call to editor-info in zle-line-finish is pointless, as leaving editing mode doesn't update $KEYMAP or $ZLE_STATE.
Let's remove it, and perhaps leave a comment behind with a link to this issue in case it resurfaces.

Ah, to make the functions easy to override, how about declaring them like this?
editor/init.zsh
function prezto_zle_line_finish {
  ...
}
zle -N zle-line-finish prezto_zle_line_finish

prompt_whatever_setup
function prompt_whatever_zle_line_finish {
  prezto_zle_line_finish
  zle editor-info
}

function prompt_whatever_setup {
  zle -N zle-line-finish prompt_whatever_zle_line_finish
}

Could you please elaborate a bit on the last suggestion? :slightly_smiling_face:
I'm not sure I entirely understand what you propose.

I updated the PR with your previous suggestion to not call editor-info in zle-line-finish.

Sure. The idea is to let prompt developers keep the old behavior if they want. To do this, they need to define their own zle-line-finish widget that runs zle reset-prompt, and register it with zle -N zle-line-finish in their setup function.
The default implementation of zle-line-finish just turns off application mode in the terminal. To keep this behavior in place, they should invoke it from within their function. This is instead of copying and pasting it.
I'm suggesting changing the names of the hook functions from e.g. zle-line-finish to prezto_zle_line_finish and updating the calls to zle -N accordingly. While other code can invoke these functions with their current names, it feels safer if they're named in a way that is expected to be unique. I suggested e.g. prezto_zle_line_finish but prezto_editor_zle_line_finish seems better.

@paulmelnikow thanks for the explanation! I'm feeling a little uncomfortable to perform the renaming, I'm not familiar enough with the codebase and I can see that a widget with such name is referenced in other files, even in external repositories. Is it the same widget? Are we not risking to accidentally break other stuff? Maybe we should handle this separately?
❯  ag "zle-line-finish"
modules/syntax-highlighting/external/zsh-syntax-highlighting.zsh
269:  # Always wrap special zle-line-finish widget. This is needed to decide if the
272:  widgets_to_bind+=(zle-line-finish)

modules/syntax-highlighting/external/highlighters/cursor/cursor-highlighter.zsh
38:  [[ $WIDGET == zle-line-finish ]] || _zsh_highlight_cursor_moved
44:  [[ $WIDGET == zle-line-finish ]] && return

modules/syntax-highlighting/external/highlighters/main/test-data/path_prefix2.zsh
34:WIDGET=zle-line-finish

modules/syntax-highlighting/external/highlighters/main/main-highlighter.zsh
61:  [[ $WIDGET == zle-line-finish ]] || _zsh_highlight_buffer_modified
768:     [[ $WIDGET != zle-line-finish ]]; then

modules/syntax-highlighting/external/highlighters/brackets/test-data/cursor-matchingbracket-line-finish.zsh
30:WIDGET=zle-line-finish

modules/syntax-highlighting/external/highlighters/brackets/brackets-highlighter.zsh
43:  [[ $WIDGET == zle-line-finish ]] || _zsh_highlight_cursor_moved || _zsh_highlight_buffer_modified
89:  if [[ $WIDGET != zle-line-finish ]]; then

modules/editor/init.zsh
133:function zle-line-finish {
144:zle -N zle-line-finish

Good catch. I only searched within prezto and missed that.
Interesting. I see code that rebinds user-defined widgets. While I can't completely follow what it does, it doesn't seem to depend on the name of the function registered for the widget. That makes sense, since it couldn't assume any particular name.
I just tested syntax-highlighting, and it works fine, including the re-highlighting at the end of editing triggered by the line finish hook. So, I don't think the rename would break any of those functions.
That said, I'm fine with leaving the names alone. We can revisit if the need comes up.


PyTorchEMD compiling error

I have used anaconda to create the virtual space to run this project, while compiling PyTorchEMD I am facing the following problem, but my linux system is softwired with cuda11, how can I fix it, looking forward to your answer!
FAILED: /home/XXX/DiT-3D/metrics/PyTorchEMD/build/temp.linux-x86_64-3.6/cuda/emd_kernel.o
/usr/local/cuda-11.0/bin/nvcc -I/home/whc/miniconda3/envs/dy/lib/python3.6/site-packages/torch/include -I/home/whc/miniconda3/envs/dy/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/whc/miniconda3/envs/dy/lib/python3.6/site-packages/torch/include/TH -I/home/whc/miniconda3/envs/dy/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/whc/miniconda3/envs/dy/include/python3.6m -c -c /home/whc/DiT-3D/metrics/PyTorchEMD/cuda/emd_kernel.cu -o /home/whc/DiT-3D/metrics/PyTorchEMD/build/temp.linux-x86_64-3.6/cuda/emd_kernel.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -O2 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=emd_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_86,code=sm_86 -std=c++14
nvcc fatal   : Unsupported gpu architecture 'compute_86'

Hi, we do not have this error before. Maybe you can check this repo for reference. Also please make sure you follow the steps we provided to install PyTorchEMD.


Client bundle size (Nuxt)

Hi, after adding vue3-openlayers as a plugin to a clean Nuxt project, the client bundle shows a large file (vue3-openlayers.es.js) of over 1MB. The same issue occurs when performing selected imports, like import { Map, Layers, Sources } from "vue3-openlayers (975 KB).
Is it possible to reduce the size of the bundled package? 🤔
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>invalid: "latest" from the root project
└──<EMAIL_ADDRESS>
To Reproduce
Steps to reproduce the behavior:
Reproduction repo
Run npx nuxi analyze
Screenshots

Yes, I have encountered the same issue, and this library cannot be tree-shaken.🤔

Hey, would like to contribute and refactor it? I think it would be acceptable if a Breaking Change is introduced. The best in my opinion would be to allow to import / load components individually and therefore expose them.


Left align all text

What is the context of this PR?
Trello card
Feedback from accessibility testing indicates that some user struggle with center-aligned text. This PR implements left-aligned text throughout the application.
How to review

start the app
complete any survey to the end (including, confirming all text is left-aligned.
evoke an error page (eg 500 or 404) and confirm text is now left-aligned

[ ] Do all commits have sensible commit messages?
[ ] Is all new code unit tested?
[ ] Are there integration tests if needed?
[ ] Is there sufficient logging?
[ ] Is there documentation or is the code self-describing?

Who worked on the PR
@hamishtaplin

Current coverage is 78.42% (diff: 100%)

No coverage report found for master at b98cdd8.

Powered by Codecov. Last update b98cdd8...79b712f


Length of values does not match length of index

in contact_trace.py, line 577:
                        df["AP_Trajectory"], df["AP_Traj_Start"], df["AP_Traj_End"], df[
                            "AP_Duration"] = AP_traj_list, AP_traj_start_list, AP_traj_end_list, AP_duration

I'm getting an exception that the lengths do not match the length of the index, the console output is:
705 705 705 705
705 705 705
275
This shows in the index length is only 275, but the data lengths are 705.
I'm not sure what might cause this problem. Do you have any advice?

Could it be because we have multiple network controllers each writing a syslog for the same date?
The current dataframe is tied to one source file but the AP_traj are by DATE?
Here is my data directory:
-rw------- 1 amm042 cs 211K Jun 18 11:44 20200604-<IP_ADDRESS>-wifitrace.csv
-rw------- 1 amm042 cs 238K Jun 18 11:46 20200604-<IP_ADDRESS>-wifitrace.csv
-rw------- 1 amm042 cs 300K Jun 18 11:46 20200604-<IP_ADDRESS>-wifitrace.csv

Thanks @amm042 for raising the issue.  I think you are right about multiple syslog files for same date from multiple controllers.
Since a device might roam around multiple controllers for a single date, to create the entire mobility trajectory of the device I consolidated (basically concatenated) all syslog files of all APs/controllers for a single date into one large syslog file and then give that consolidated event file as the input to the tool.
So, for the correct functioning of the tool and generation of output reports I would suggest consolidating all syslogs for a single date into one file. Please let me know if any error comes up after that.

I concatenated the controllers logs to one csv for each day, but still see the error.

At the beginning of get trace, I had to add this, it seems to work correctly.
    for date in past_n_days:
        AP_traj_list = []
        AP_traj_start_list = []
        AP_traj_end_list = []
        AP_duration = []

I am glad to hear that it is working correctly now. Thanks for sharing the fix, in case someone else is facing a similar error.
One follow-up question. Can you share the version of HP Aruba OS? It would be something like ArubaOS__Syslog.

Currently on <IP_ADDRESS>. Waiting for <IP_ADDRESS>.
On Thu, Jun 25, 2020 at 8:03 AM Amee Trivedi<EMAIL_ADDRESS>wrote:

I am glad to hear that it is working correctly now. Thanks for sharing the
fix, in case someone else is facing a similar error.
One follow-up question. Can you share the version of HP Aruba OS? It would
be something like ArubaOS__Syslog.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/umassos/WiFiTrace/issues/1#issuecomment-649499015,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABRHBOT4226GAKWOVODD22TRYM4I3ANCNFSM4OCXPGUA
.

--
Alan Marchiori | Bucknell University | Dana 327
Assistant Professor of Computer Science
Calendar:
https://calendar.google.com/calendar/embed?src=amm042%40bucknell.edu
https://calendar.google.com/calendar/embed?src=amm042%40bucknell.edu&ctz=America%2FNew_York
Appointments:
https://calendar.google.com/calendar/selfsched?sstoken=UUNGd08xclV2MHphfGRlZmF1bHR8YzAzMzU2NzgwYmQ1MDBjNmFkYTgxZjQzODgwNTIzZDQ


Hd Wood Planks

Adds an HD wooden plank texture generated by AI to replace WOOD_PLANK_1 default texture.

features 256px resolution and normal maps.

As a consequence i have renamed HD_WOOD_PLANK_1 to HD_WOOD_PLANK_2 to make room for this texture
Default\PR:

HD Crate


add password authentication for proxy

Allows to set username/password authentication and send it to the proxy

Interested in this PR for next release as we use authentication for proxy


Add annotation support for data classes based on JavaObjectTransformer

PR adds annotation support for data class based on issue: https://github.com/datafaker-net/datafaker/issues/675
After some discussion, the idea came up to:

implement only one annotation: @Fake("defaultSchema") to specify the default schema
add two methods to BaseFaker for populating objects that use the JavaObjectTransformer.
An example of usage

Data class definition:
@FakeForSchema("net.datafaker.annotations.FakeAnnotationTest#defaultSchema")
public class Person {
    private String fullName;

    public String getFullName() {
        return fullName;
    }

    public void setFullName(String fullName) {
        this.fullName = fullName;
    }
}

If a schema is defined in the same class as the population call, the full path with the class name is not required. Example: @FakeForSchema("defaultSchema")

Schema definition:
 public static Schema<Object, ?> defaultSchema() {
        var faker = new Faker(Locale.forLanguageTag("fr-en"), new RandomService(new Random(1)));
        return Schema.of(field("fullName", () -> faker.name().fullName()));
    }

Object generation with default schema:
var person = Faker.populate(Person.class);

Object generation with custom schema:
var person = Faker.populate(Person.class, customSchema());

Codecov Report

Merging #754 (59f098a) into main (b6dcc89) will increase coverage by 0.05%.
The diff coverage is 75.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@             Coverage Diff              @@
##               main     #754      +/-   ##
============================================
+ Coverage     92.80%   92.85%   +0.05%
- Complexity     2595     2607      +12
============================================
  Files           281      282       +1
  Lines          5127     5163      +36
  Branches        530      532       +2
============================================
+ Hits           4758     4794      +36
+ Misses          243      241       -2
- Partials        126      128       +2

Impacted Files
Coverage Δ

src/main/java/net/datafaker/Faker.java
83.33% <ø> (+16.66%)
:arrow_up:

...n/java/net/datafaker/annotations/FakeResolver.java
70.00% <70.00%> (ø)

...n/java/net/datafaker/providers/base/BaseFaker.java
90.75% <100.00%> (+0.49%)
:arrow_up:

... and 2 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

thanks for your contribution @RVRhub
lgtm from one side
however it would be great to have some documentation for that
//cc @bodiam since you mentioning something about that
with this PR it will be possible to make calls like
var person = Faker.populate(Person.class);
// or
var person2 = Faker.populate(Person.class, customSchema());

schema could be defined separately

@snuyanzin's sorry, I missed some of the conversions on this. Is the annotation support now dropped in favor of some schema method?

There are 2 reasons
After having several chats and POCs with @RVRhub we faced 2 issues:

it looks like the code is becoming polluted with annotations especially for classes with multiple fields
it's impossible to have several objects generated in different ways.

To address these issues we decided to have only one annotation @FakeForSchema which is a reference to a method providing a default schema to generate objects.
The idea is to build the solution based on java transformers approach https://github.com/datafaker-net/datafaker/pull/513 which already can generate objects.
So the objects could be generated in 2 ways:
1.
MyClass object = Faker.populate(MyClass.class);

this will generate an object with usage of default schema mentioned by  @FakeForSchema
2.
MyClass object = Faker.populate(MyClass.class, myschema);

this will allow to generate objects based on others schemas.
In this way it's possible to have a number of different schemas and generate objects based on them.
At the same time schemas and objects generations are decoupled

Okay, makes sense. Thanks for the explanation!


minor cleanup

Minor cleanup.
Remove old useless files and switch off codecov failures.

There are issues with the catalog parser. I'm getting it in other repos as well, so I don't think it's an OceanSpy bug. Non sure yet where it's coming from.

So we just wait for bugs to resolve?  Otherwise, it looks good to me. I can approve now if you prefer.

OK. The issue is ffspec 0.9.0. The master branch is already fixed, so we can just force ffspec!=0.9.0.
Feel free to merge if all tests pass!

OK. We can now merge this.


add an e2e with --all_incompatible_changes

bazel test //test/... --all_incompatible_changes
so we'll know if a new incompatible change in bazel will break us.
Should be very small change

done although commented out now (there's a separate issue on reviving it)


Dragonbane, Ferocity 2+ monsters, could they appear multiple times for each initiative drawn?

Description
When a monster with Ferocity 2 or 3 is added to combat, when drawing initiative the monster gets however many cards  as their ferocity and they act at all initiatives. Is there a way to make it so the monster appears at both positions in the Combat Encounter tracker?
Suggested solution
For example, Right now a Griffon (Ferocity 2) can draw 2 cards, but one card gets discarded. Instead just have the griffon appear twice in combat tracker. Helps take some of the guesswork out of it. I think Alien does this as well where a creature may act at 2 different initiatives.
Alternative
I guess you could just make all initiatives appear in the single monster line in the combat tracker if the above isn't possible?
Additional context
No response
Validations

[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

Nevermind, I'm a goofball, gotta click Begin Combat and the macros do their thing. I kept trying to increase the Draw setting under combat encounter settings.


Streamline binding of UI elements to TestElement properties

Description
Previously (e.g. in 5.6.2), TestElement.set(PropertyDescriptor, String?) was removing the property if the value was an empty string. I thought it was convenient for the UI, however now I realize that was a mistake. If the user calls port = "whatever" they expect the property should be set no matter if the value is empty string or if it accidentally matches a default one.
This PR changes .set behaviour so only null value would cause property removal.
TODO

[x] Ensure tests tests
[x] Apply apply JTextFieldBindEditor to Gui classes that use TestElementSchema so they remove property when the field is empty
[x] Add javadocs for the new classes, interfaces, and methods
[x] Check if this PR somehow resolves https://github.com/apache/jmeter/issues/6076. The PR does resolve 6076
[x] Analyze if we need an alternative to org.apache.jmeter.gui.JMeterGUIComponent#modifyTestElement that does not clear the element state. For most elements, modifyTestElement should reset the test element state, and then populate properties based on the UI state. However, if UI is composed from several sub-UI blocks, then we need to apply sub-block "UI to properties" transformation without clearing the properties. For instance, HttpDefaultsGui has UrlConfigGui block, and we would like to call something like .modifyTestElement(element) from HttpDefaultsGui.modifyTestElement, however, if urlConfigGui.modifyTestElement clears the properties, then we can't compose UI blocks.
Result: "Gui extensions" can be a separate sub-class of AbstractJMeterGuiComponent or JMeterGUIComponent that does not call super.modifyTestElement.., so they do not reset the test element state.
Check naming

[ ] interface PropertyDescriptorBinder (it includes updateElement and updateUi methods)
[ ] class JTextComponentBindEditor, class JCheckBoxBindEditor: they wrap regular JTextField and link them with PropertyDescriptors
[ ] class PropertyEditorCollection maintains a collection of PropertyDescriptorBinder. Should it be named like PropertyDescriptorBinderCollection?
[ ] org.apache.jmeter.gui.JMeterGUIComponent#makeTestElement. It is intended to "just create empty test element" when creating from UI
[ ] org.apache.jmeter.gui.JMeterGUIComponent#assignDefaultValues. It should assign default values after creating the test element. By default it assigns name, guiClass, etc. Subclasses could set their defaults. For instance, GraphQL sampler inherits from HTTP Request, and it sets method=post in assignDefaultValues.

Setting properties with API vs UI

If a property is set from code (e.g. from Java code), then we should store it in TestElement properties no matter if the value is empty or if the value is the same as default one. For instance, HTTP Request Defaults (and other "config" elements) override non-set properties only, so we might want to explicitly have a value in HTTP Request to avoid it being overridden by HTTP Request Defaults
If a UI element (e.g. JTextField) is empty (blank) we assume the value is unset. Currently, we have no way to distinguish between "value is empty string" vs "value is unset", so we just assume "blank" values to be the same as "unset". It means UI elements should convert "empty string text field" and "empty checkbox" to "property removal". Note that we can't integrate "remove empty property" into setter methods due to 1.

I factor UI converters into UI classes to make it happen without much duplication. For instance, JEditableCheckBox calls into removeProperty for unset checkboxes.
I added JTextFieldBindEditor to make it easier to teach the existing UI classes to "remove property on empty string"
Creating elements with UI
The way UI creates test elements is org.apache.jmeter.gui.JMeterGUIComponent#createTestElement. Historically, the recommendation was as follows:
public TestElement createTestElement() {
    TestElementXYZ el = new TestElementXYZ();
    modifyTestElement(el);
    return el;
}

modifyTestElement is a method that assigns the state of UI controls to TestElement's properties.
The drawback is that UI controls (e.g. JTextField) must be initialized to the appropriate default values and then modifyTestElement grabs those defaults and puts them to TestElementXYZ.
I suggest we should drift away from using modifyTestElement when creating test elements, and we should just set the property values as property values. Then we have a workable TestElement which we can display with JMeterGUIComponent#configure (it extracts properties and populates UI accordingly).
I think the change is backward compatible, and there's no rush in editing every component at once, however, it makes code simpler when "set default values in JTextField" calls are removed.
Before

JMeterGUIComponent#createTestElement creates test element and populates values based on UI controls (modifyTestElement).
JMeterGUIComponent#clearGui sets all controls to their default values
JMeterGUIComponent#modifyTestElement extracts data from UI and populates TestElement's properties
JMeterGUIComponent#configureTestElement somewhat duplicates modifyTestElement
JMeterGUIComponent#configure extracts data from TestElement's and populates UI elements

After

JMeterGUIComponent#createTestElement is a default method JMeterGUIComponent:
    default TestElement createTestElement() {
        TestElement element = makeTestElement();
        assignDefaultValues(element);
        return element;
    }

JMeterGUIComponent#makeTestElement is a method plugin authors should implement to instantiate the TestElement instance
    @Override
    public TestElement makeTestElement() {
        return new HTTPSamplerProxy();
    }

JMeterGUIComponent#assignDefaultValues assigns default property values like name, gui_class, test_class. Plugin authors could override it to add their defaults. For instance, HTTP Request wants to set method=GET, use_keepalive=true, and the implementation could be as follows:
    @Override
    public void assignDefaultValues(TestElement element) {
        super.assignDefaultValues(element);
        HTTPSamplerBaseSchema schema = HTTPSamplerBaseSchema.INSTANCE;
        // It probably does not make much sense overriding HTTP method with HTTP Request Defaults, so we set it here
        element.set(schema.getMethod(), HTTPConstants.GET);
        element.set(schema.getFollowRedirects(), true);
        element.set(schema.getUseKeepalive(), true);
        urlConfigGui.assignDefaultValues(element);
    }

JMeterGUIComponent#clearGui. In most (all?) cases, the method should not alter simple fields. When JMeter wants to display TestElement it calls JMeterGUIComponent#configure, and the expectation is that configure updates all the UI fields. That means there's no need to reset the fields. However, the UI might have extra state like "selected basic/advanced tab", and it might make sense to reset that state in clearGui.

JMeterGUIComponent#configure. No changes. It should update all UI controls based on the properties of the test element even in the case the property is absent. Note: for now, "unset properties that have defaults" must be displayed as empty string to avoid confusion. For instance, HTTP charset has default of UTF-8, however, we do not want to display it as if the user put UTF-8 explicitly.

JMeterGUIComponent#modifyTestElement should extract data from UI and pass to TestElement. It should treat empty string as "absence of a value", so it should remove the corresponding property. Classes like JTextFieldBindEditor make it easier to retrofit the existing code and make the behaviour consistent across all fields.

JMeterGUIComponent#configureTestElement. I suggest we deprecate configureTestElement. Of course, we can keep it in the source code, however, we should not use it. We should just add a default implementation of modifyTestElement and ask users to follow the regular pattern like:
    @Override
    public void modifyTestElement(TestElement element) {
        super.modifyTestElement(element); // populate base properties like name, comments
        // populate custom properties

org.apache.jmeter.gui.AbstractJMeterGuiComponent#editors is PropertyEditorCollection which helps to implement both modifyTestElement and configure at the same time. The idea is that we can link JTextField with a corresponding PropertyDescriptor, then it would know how to populate the field based on the given TestElement, and it would know how to get the UI value into the TestElement

Here's a sample for HTTP Request Sampler UI. concurrentDwn, useMD5 are "editable checkboxes" which already were linked to the properties, so they are passed as is. The rest (e.g. concurrentPool) are regular JTextField instances, so we link them with a property, and remove the boilerplate from modifyTestElement and configure
    protected HttpTestSampleGui(boolean ajp) {
        isAJP = ajp;
        init();
        HTTPSamplerBaseSchema schema = HTTPSamplerBaseSchema.INSTANCE;
        editors.addAll(
                Arrays.asList(
                        retrieveEmbeddedResources,
                        concurrentDwn,
                        new JTextFieldBindEditor(concurrentPool, schema.getConcurrentDownloadPoolSize()),
                        useMD5,
                        new JTextFieldBindEditor(embeddedAllowRE, schema.getEmbeddedUrlAllowRegex()),
                        new JTextFieldBindEditor(embeddedExcludeRE, schema.getEmbeddedUrlExcludeRegex())
                )
        );
        if (!isAJP) {
            editors.addAll(
                    Arrays.asList(
                            new JTextFieldBindEditor(sourceIpAddr, schema.getIpSource()),
                            // TODO: sourceIpType
                            new JTextFieldBindEditor(proxyScheme, schema.getProxy().getScheme()),
                            new JTextFieldBindEditor(proxyHost, schema.getProxy().getHost()),
                            new JTextFieldBindEditor(proxyPort, schema.getProxy().getPort()),
                            new JTextFieldBindEditor(proxyUser, schema.getProxy().getUsername()),
                            new JTextFieldBindEditor(proxyPass, schema.getProxy().getPassword()),
                            // TODO: httpImplementation
                            new JTextFieldBindEditor(connectTimeOut, schema.getConnectTimeout()),
                            new JTextFieldBindEditor(responseTimeOut, schema.getResponseTimeout())
                    )
            );
        }
    }

I'm happy with the changes, except there might be better names for the added classes and methods.


Update hostdb scan quanity/sleep time

Current default settings cant handle hostdb grow.
So hostdb have a lot outdated data.
Adjusted settings for siahub wallet.
Enough to keep fresh db for now.
After update we have big fall since many hosts not scanned fast/properly due big hostdb.
https://siahub.info/network

Actually problem is that scan doesnt cover DB size and every scan get only top N hosts.
https://github.com/NebulousLabs/Sia/blob/ec3fbc0dd35bc2ad0b476ab0c96d6e4ec3317045/modules/renter/hostdb/scan.go#L304
So in this moment we have some good hosts that actually online and work, but not scanned due quanity limit.

I believe this is not the best way to go.  (as a temporary fix i think this is ok)
As long as i understand this aproach can leave best host (the one that changed settings recently) with outdated info and almoust never scan it again.
Limiting scanned hosts centralize the network, as long as only best hosts will be regulary rescanned.
I believe that Score of the host can be tied to period of rescan. This way even not so good hosts will be rescanned sooner or later and there will be not so much network overload.

I'm going to go ahead and close this as a pull request, I think a full discussion is needed when searching for better options. At 1000 hosts or so, I think we're above what we should be scanning every block. I like the 200 hosts limit per 8 hours I think, we probably just need a more intelligent way to scan them.
The most important thing is that we're aware of all the hosts that might be interesting to us.


contact us form backend frontend done : #326 done

Description
A clear and concise description of what the PR does.

This PR does the following:
making contact us form frontend and backend functionality working

Related Issues
#326 done
Changes
List the detailed changes made in this PR.
added the contact route and added the conact us form with sending response to the project admin mail.
Testing Instructions
Detailed instructions on how to test the changes. Include any setup needed and specific test cases.

Pull this branch.
Run npm install to install dependencies.
Run npm test to execute the test suite.

Main things you need to care to making it correctly -

add your backend URL here in contact.jsx file in fetch request in place of "http://localhost:8080" (if does not work in case with localhost)

insert your email and passkey/ if you have 2-factor authentication is on and your gmail has not restricted security policies then your password will work anotherwise generate a passkey and put it in the .env file.

Screenshots (if applicable)

Additional Context
Any additional context or information that reviewers should be aware of.

This PR is based on the following...

Checklist
Make sure to check off all the items before submitting. Mark with [x] if done.

[X ] I have performed a self-review of my code
[ X] I have commented my code, particularly in hard-to-understand areas
[ X] My changes generate no new warnings
[X ] I am working on this issue under GSSOC

@sanjay-kv @MastanSayyad please review it


Admin Actions Log: 2024 - February 10

Requirements

Filling out the template is required.

All new code requires tests to ensure against regressions.

However, if your PR contains zero code changes, feel free to select the checkmark below to indicate so.

[ ] Have you ran tests against this code?

[X] This PR contains zero code changes.

Description of the Change
While checking our logs on the backend, I discovered that a package had malformed data, rendering it uninstallable.
This actions log details the issue, and it's resolution.

Thanks for taking a look at this @Daeraxa!


[Bug] AttributeError: 'MultimodalDPOTrainer' object has no attribute 'get_batch_logps'

Checklist

[X] 1. I have searched related issues but cannot get the expected help.
[X] 2. The bug has not been fixed in the latest version.
[X] 3. Please note that if the bug-related issue you submitted lacks corresponding environment info and a minimal reproducible demo, it will be challenging for us to reproduce and resolve the issue, reducing the likelihood of receiving feedback.

Describe the bug
mpo训练出现 AttributeError: 'MultimodalDPOTrainer' object has no attribute 'get_batch_logps'
我目前没有在trainer_dpo.py的MultimodalDPOTrainer里发现get_batch_logps，是漏提交了吗？
报错具体在：
all_logps, size_completion = self.get_batch_logps(
all_logits,
concatenated_batch["concatenated_labels"],
# average_log_prob=self.loss_type == "ipo",
is_encoder_decoder=self.is_encoder_decoder,
label_pad_token_id=self.label_pad_token_id,
)
Reproduction
No
Environment
transformers

Error traceback
No response

你好，可以试一下安装transformers==4.37.2和trl==0.9.6，这几个参数和函数都是trl.DPOTrainer自带的

好的，多谢


The @object is not compatible with ActiveJob

The @object variable which instantiated by RailsAdmin is not compatible with ActiveJo, means If you try to send this object to a backend job via ActiveJob' perform_later API it raises an exception which says Unsupported argument type: Foo. This error may lead someone to wrong direction because the class is not Foo, actually its type is RailsAdmin::Adapters::ActiveRecord::AbstractObject which delegates almost its all methods to ActiveRecord object.
I know this is by design but I've spent lots of time to figure it out and it's really hard to understand what is the problem because of this design, you may want to consider this as should be fixed or documented for future incidents.

Still having this issue.

More complete error message for easier Google hits:
ActiveJob::SerializationError (Unsupported argument type: <@object.class>):


Jaeger all-in-one complaints about missing parent spans

Describe the bug
I have an issue when jaeger-all-in-one incorrectly complains about missing parent spans:
Here's an example:
{
    "data": [
        {
            "traceID": "ef5dd64a1aa62bae",
            "spans": [
                {
                    "traceID": "ef5dd64a1aa62bae",
                    "spanID": "3e911c0058d13ebb",
                    "flags": 1,
                    "operationName": "trace_me",
                    "references": [
                        {
                            "refType": "CHILD_OF",
                            "traceID": "ef5dd64a1aa62bae",
                            "spanID": "ce8562a5c9781762"
                        }
                    ],
                    "startTime":<PHONE_NUMBER>993197,
                    "duration": 30,
                    "tags": [
                        {
                            "key": "internal.span.format",
                            "type": "string",
                            "value": "proto"
                        }
                    ],
                    "logs": [],
                    "processID": "p1",
                    "warnings": [
                        "invalid parent span IDs=ce8562a5c9781762; skipping clock skew adjustment"
                    ]
                },
                {
                    "traceID": "ef5dd64a1aa62bae",
                    "spanID": "ce8562a5c9781762",
                    "flags": 1,
                    "operationName": "top_trace",
                    "references": [],
                    "startTime":<PHONE_NUMBER>993035,
                    "duration": 4798745,
                    "tags": [
                        {
                            "key": "sampler.type",
                            "type": "string",
                            "value": "const"
                        },
                        {
                            "key": "sampler.param",
                            "type": "bool",
                            "value": true
                        },
                        {
                            "key": "internal.span.format",
                            "type": "string",
                            "value": "proto"
                        }
                    ],
                    "logs": [],
                    "processID": "p1",
                    "warnings": null
                }
            ],
            "processes": {
                "p1": {
                    "serviceName": "salt",
                    "tags": [
                        {
                            "key": "hostname",
                            "type": "string",
                            "value": "rockpro64"
                        },
                        {
                            "key": "ip",
                            "type": "string",
                            "value": "<IP_ADDRESS>"
                        },
                        {
                            "key": "jaeger.version",
                            "type": "string",
                            "value": "Python-4.4.0"
                        }
                    ]
                }
            },
            "warnings": null
        }
    ],
    "total": 0,
    "limit": 0,
    "offset": 0,
    "errors": null
}

The error says "invalid parent span IDs=ce8562a5c9781762", but ce8562a5c9781762 is right there in the JSON.
To Reproduce
Steps to reproduce the behavior:

Run jaeger all-in-one
Start producing a trace
Open the trace before it's full produced
Open the trace after it's fully produced
Observe lingering warnings about missing parents

Expected behavior
No complaints about a missing parent when parent is not in fact missing.
Screenshots
The screenshot corresponds to the first JSON snippet in this issue:

Version (please complete the following information):

OS: Linux 5.11-rc2
Jaeger version: 1.21.1
Deployment: Bare metal arm64

Additional context
The reason this happens seems to be because ClockSkew adjuster runs on real in-memory spans from memory storage engine, as opposed to copies of those spans. So if you happen to request the trace while it's not fully built and the parent is not yet flushed, you'll get a warning for every load. Those warnings are never cleared.
It's possible to get multiple warnings too:
                {
                    "traceID": "eae14db35410faa8",
                    "spanID": "ac4b22f86a3ff0e1",
                    "flags": 1,
                    "operationName": "trace_me",
                    "references": [
                        {
                            "refType": "CHILD_OF",
                            "traceID": "eae14db35410faa8",
                            "spanID": "1da4278e72b02ea1"
                        }
                    ],
                    "startTime":<PHONE_NUMBER>000068,
                    "duration": 30,
                    "tags": [
                        {
                            "key": "internal.span.format",
                            "type": "string",
                            "value": "proto"
                        }
                    ],
                    "logs": [],
                    "processID": "p1",
                    "warnings": [
                        "invalid parent span IDs=1da4278e72b02ea1; skipping clock skew adjustment",
                        "invalid parent span IDs=1da4278e72b02ea1; skipping clock skew adjustment"
                    ]
                }

good catch, the memory storage should return cloned data so that the caller is free to do whatever with it, similar to how remote storage backends work

good catch, the memory storage should return cloned data so that the caller is free to do whatever with it, similar to how remote storage backends work


docs: List ctags external provider

I created a plugin for a gradually improving ctags provider for some situations where LSP cannot be used.
refer: https://github.com/hedyhli/outline.nvim/issues/40

Thanks!


ASU-1454 | Make certain installments uneditable

Refactored installment update implementation, and made installments that are sent to SAP uneditable. Details in the commit messages.

Codecov Report

Merging #272 (fc5e1ef) into develop (adbac16) will increase coverage by 0.03%.
The diff coverage is 89.79%.

@@             Coverage Diff             @@
##           develop     #272      +/-   ##
===========================================
+ Coverage    93.26%   93.29%   +0.03%
===========================================
  Files          118      118
  Lines         4216     4236      +20
  Branches       375      377       +2
===========================================
+ Hits          3932     3952      +20
+ Misses         207      205       -2
- Partials        77       79       +2

Impacted Files
Coverage Δ

invoicing/api/serializers.py
93.57% <89.13%> (+2.01%)
:arrow_up:

invoicing/api/views.py
95.77% <100.00%> (-0.38%)
:arrow_down:

invoicing/models.py
94.33% <100.00%> (+0.05%)
:arrow_up:

invoicing/sap/utils.py
40.35% <0.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Remove node parameter to show the test coverage

In current unit test (make test), we use -node parameter, but with this parameter, the test coverage cannot show correctly:
https://travis-ci.org/github/redhat-developer/build/builds/683705277#L2116-L2118
After remove it, the test coverage can be shown:
[1588828474] BuildRun Suite - 10/10 specs •••••••••• SUCCESS! 5.558302ms PASS
coverage: 72.1% of statements
[1588828474] Build Suite - 8/8 specs •••••••• SUCCESS! 1.378707ms PASS
coverage: 70.2% of statements
[1588828474] Controllers Suite - 0/0 specs  SUCCESS! 420.789µs PASS
coverage: 50.0% of statements

And for unit test, the speed of single node or multiple nodes are similiar, no too much different, but we need to show the test coverage in our result for audit.

The test coverage result is correct in the Travis of this PR:
https://travis-ci.org/github/redhat-developer/build/builds/684122012

Related Ginkgo issue: https://github.com/onsi/ginkgo/issues/393. Investigating ...

Close this PR and use the better solution: https://github.com/redhat-developer/build/pull/179


[GH-#401] Made adjustments to header related serializations

Resolves #401 .

Looks fine. Will do some tests and then will approve it.


Feature homescreen

Description
Please include a summary of the change and which issue is fixed. Please also have relevant motivation and context. List any dependencies that are required for this change.

Created Home Not Logged In & Home Logged In screens. This includes the modal that displays the log-in modal.

This feature adds expo-av package that loads videos on an Expo app.

Home Not Logged In

Log In Modal

Home Logged In

Fixes #10
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

LGTM!white_check_mark
also might you by any chance be participating in Hacktoberfest this year?
I can add an acceptance label so that it's added to your progress.

I am not but now that you mentioned it, why not?
Will this repository need a Hactoberfest label added?

LGTM!white_check_mark
also might you by any chance be participating in Hacktoberfest this year?
I can add an acceptance label so that it's added to your progress.

I am not but now that you mentioned it, why not? Will this repository need a Hactoberfest label added?

Not the repository, just this PR. I can assign 'hacktoberfest-accepted' on this PR and it will count towards your progress.

oh I see,
That is okay then :)


Fixed MM-36358, bad merge resulting in crash

fixed the crash resulting from a bad merge.
PS, not sure how the e2e test passed before, did it?

Codecov Report

Merging #206 (d7cfcaf) into master (8b233a2) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #206   +/-   ##
=======================================
  Coverage   25.53%   25.53%
=======================================
  Files          25       25
  Lines        1402     1402
=======================================
  Hits          358      358
  Misses       1013     1013
  Partials       31       31

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 8b233a2...d7cfcaf. Read the comment docs.

The 2E2 tests only test an HTTP app, not an AWS one which this PR fixes.

Thanks @levb for resolving this. Please merge.


support cmd calling

Useful project and thanks :)
For better usage experience, I added:

A setup.py for easily calling. After installing:

diff2HtmlCompare file1.txt file2.txt

An option for specific output path:

diff2HtmlCompare -o your_report.html file1.txt file2.txt

BTW, output html can not work normally without deps.

upload these files to something like cdn
compile them into html file directly (maybe easier

Any suggestions?


Upgrade to new generator build

Is your feature request related to a problem? Please describe.
Update repo to a new generator build.
https://auro.alaskaair.com/getting-started/developers/generator/upgrade
This will also include publishing to the new @aurodesignsystem namespace

On hold until WC-Generator 3.0 is released

Repo has been updated using new version of generator, hence this issue is closed.


raspberry pi 4 - ubuntu - start up problem

Hi,
I just install ubuntu 19.10 on my raspberry pi 4b.
I just need some help.
When I install microk8s, I can not start a pod, it is pending, and when I try status an error is thown.
This are the commands:
sudo snap install microk8s --classic ==> OK
microk8s.kubectl start ==> OK
microk8s.status  ==> microk8s is not running. Use microk8s.inspect for a deeper inspection.
microk8s.kubectl create deployment nginx --image=nginx  ==> OK, but pod is in pending status
Any ideas ?
thankss
this is my inspect:
inspection-report-20200113_004202.tar.gz

@ktsakalozos  Can you be more specific as to what the work around is? #401 has to do with ZFS not ubuntu 19.10 on raspberry pi4. Thanks in advance.

If you do a microk8s.kubect describe node you should see your node reporting container runtime status check may not have completed yet, missing node capacity for resources: ephemeral-storage. On first glance I suspected this was because of the file system being zfs that why I pointed you to that comment. I was wrong. If you do a journalctl -u snap.microk8s.daemon-kubelet you will see kubelet complaining about cgroups not set correctly. Could you go over these instructions so you enable cgroups https://microk8s.io/docs/install-alternatives#arm ? Thank you.


Question about PBI B2B Tenant settings vs Documentation

The PBI tenant setting  Allow Azure Active Directory guest users to access Power BI which is described in the following article is not longer available in the tenant settings UI.
https://docs.microsoft.com/en-us/power-bi/admin/service-admin-portal#export-and-sharing-settings
Same comment for the setting Invite external users to your organization (documented but not visible in the tenant).
Now we have these 2 settings:

Share content with external users

Allow external guest users to edit and manage content in the organization

These 2 settings are explained here:
https://docs.microsoft.com/en-us/power-bi/guidance/whitepaper-azure-b2b-power-bi
One on my customer told me that this gap between articles is a bit confusing and would like to understand why we have this gap. I think this is just a question of document update.

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

ID: 3eb228f2-d033-a44b-5570-da815663e246
Version Independent ID: 1260b40c-f6bf-3e23-b60f-6966753424b1
Content: Power BI admin portal - Power BI
Content Source: powerbi-docs/admin/service-admin-portal.md
Service: powerbi
Sub-service: powerbi-admin
GitHub Login: @kfollis
Microsoft Alias: kfollis

Thanks for your comment, @mathiasekz. I agree that there is a need for a documentation update here. I'll assign a writer to take a look and make sure we're consistent across articles.

I am closing this issue now. The referenced tenant settings article is accurate and the settings documented match what is shown in UI. The referenced whitepaper is intended to present a single scenario and is not inclusive of all related settings. It's possible that at the time the issue was created that settings were in the process of being updated, creating the confusion and inconsistency.


Adding flags from gnomad to CohortAlleleFrequency

Also adding a notebook. Notebook could use some setup documentation

Just catching up here, and I know this was merged already, but I'm not certain about this proposed change to our schema. I had planned to review this with @larrybabb on Wednesday, but will comment here with my thoughts before we go too far with these changes.
ancillaryResults is a good place to put additional findings / results from the study; counts of homozygotes, meanDepth, popMaxFAF95 are all examples of this. I can see lowComplexityRegion being an ancillary result as well. heterozygousAlleleBalanceFlagged per @theferrit32's description sounds like it should be nested inside the popMaxFAF95 object, as should the qcFilters. I want us to be careful not to treat metadata as discrete ancillary findings. It is also possible that other ancillary findings (e.g. popMaxFAF99) may use different filters or have different counts for these fields.
I'll think on the name for heterozygousAlleleBalanceFlagged if this is still open for consideration.


Bundling the dynamic libraries in a GUI app on macos

sevenzip-go needs two dynamic libraries to operate, and it expects them to be in the executable's folder.

I am looking for a way to integrate this library into my GUI app. As far I know after bundling the app the dynamic libraries will reside inside the "Resources" directory of the app. Will it work?

I see 2 things here:

Looks like this repo is stale for some time...
What language will you write your app in ?
If its GO - you will not have a separate sevenzip-go library - you will statically link with this lib. If it is not GO - you don't need this library, since it is just GO wrapper for 7zip/p7zip.

So I bet your question should go to p7zip and c7zip repos.


feat: retrieves timeout propose and timeout commit dynamically per height according to the app version

The celestia-core portion of #3859

Marking the PR as ready for review to give reviewers enough time to go through the code and start their review early, though I may still make changes while it's under review.

Thanks Callum for your comments!

I don't think it's necessary to save the consensus timeouts  each height, only the last timeouts should be saved (and in theory we don't need to do that since we get all the values from the application even upon reboot).

The timeouts are saved for the purpose of correctness checks of the cometbft side of the code. To verify that the state (which includes the timeouts) handed to the consensus reactor from the state sync reactor or the blockchain/fast sync reactor is correct—regardless of the height at which the transition occurs—we can inspect the persisted state at any height to see if the timeout values are as expected.
Similarly, for the various execution paths of the consensus reactor, instead of pausing the reactor at each height to inspect the active timeouts, we can save these values and retrospectively validate their correctness.
I am open to suggestions for how to test the correctness without saving the timeouts.

I don't think we need  the RPC endpoint - it adds too much complexity and you should be able to assert that the values have been updated correctly by accessing the state store.

This is also added for the testing purposes on the celesita-app side. Please see this portion of MajorUpgradeV3 e2e test where the timeouts of the validators are checked.
Again, I am open to alternative ways of correctness check of versioned timeouts.
For the second part of your question "it adds too much complexity and you should be able to assert that the values have been updated correctly by accessing the state store." it is not clear to me whether the concern is about accessing the state store or something else? if accessing the store itself is the problem, then we are already doing the same thing for the ConsensusParams endpoint here.

its not a major deal, but in the future I think we can make reviewer's lives easier by limiting the scope of PRs. there are a lot of changes here such as unrelated spelling / doc stuff and RPC / storing the state that I think would have been possible to avoid.

I agree, I  myself am against large PRs. However, for this one, I initially suggested creating an ADR, but it was deemed unnecessary. If we had an ADR, he major design decisions could have been documented, followed by smaller PRs based on that design. Since there was no design document, I had to include everything in a single PR to ensure it made sense to the reviewer. But if it makes it easier to review, I can and will be willing to split the PR into smaller PRs.

if there are any remaining todos for edge cases or cleanups, then do you mind writing those up @staheri14 sometime next week?

Sure, will do next week!

Thanks for clarifying that saving timeouts and the RPC endpoint are for the celestia-app e2e tests. I had initially thought they were used in this repo for testing. My approach would be to measure the block time before the upgrade and measure the block time after the upgrade and assert that the first is close to 11 seconds and the second is close to 6 seconds

@rootulp @cmwaters
just removed rpc and storing the timeouts, and most importantly, set the timeouts after state sync after the call to Info
other nits with comments and spelling etc were handled in the first two commits, but I'm going through now to make sure I got all of them

I'll still need to fix the linter, so there will be at least one more commit


Add Cocoapods to CI/CD pipeline

Github actions pipeline are checking that code builds with following tools:

[X] Carthage
[X] Swift Package Manager 5.4
[ ] Cocoapods

Since library are distributing by all of that dependency management systems, Cocoapods building checks should be added to the pipeline too.

Because of lack Cocoapods modularity management this task appears unreachable.


add support for fenced_code extension

the fenced_code extension (for Markdown) allows for github style triple-backtick code blocks as well as PHP "Extra" style code blocks. Seems like, in particular, folks expect github style code blocks to just work.
https://pythonhosted.org/Markdown/extensions/fenced_code_blocks.html

@paltman this is pretty tiny, anything I need to answer to get this approved?

Sorry. Just lost track.


How can I have clients for many different HTTP links, to implement draft previews?

The site I'm working on queries for data from a CMS which supports previews for drafts and upcoming releases. When the user requests a preview, the front end is given a token, and based on this we add some query parameters to the GQL endpoint URL.
In the past I've done this by having a map of preview tokens (or null) to Apollo clients, and then in my getClient function taking in as an argument the preview token (or null), returning an existing client from the map if there's a matching one, and otherwise making a new client, adding it to the map, and returning it.
I'm not sure how to do something equivalent with registerApolloClient provided by this package. My first thought was that I could do something like this:
export const { getClient } = registerApolloClient((previewToken: PreviewToken | null) => {
  return new ApolloClient({
    link: authLink.concat(
      createHttpLink({
        uri: `my endpoint based on values from ${previewToken}`,
      })
    ),
    cache: new InMemoryCache(),
  });
});

But I'm getting
Argument of type '(previewToken: PreviewToken | null) => ApolloClient<NormalizedCacheObject>' is not assignable to parameter of type '() => ApolloClient<any>'.
  Target signature provides too few arguments. Expected 1 or more, but got 0.

Plus I don't know whether the underlying implementation would correctly keep the different clients separate.

@tremby this is an interesting use case! The registerApolloClient function uses React.cache under the hood to store this value. React's API does appear to take values, so theoretically we should allow you to pass args. Feel free to submit a PR if you'd like to implement.
@phryneas do you see any problem with allowing args to getClient and forwarding that to React.cache to allow multi-client instantiation?

I actually went ahead and tried my code snippet above, and as far as I can tell it's working perfectly with no code changes.
It's just that typescript is upset with me, because it thinks I shouldn't be allowed to pass any arguments to registerApolloClient. Perhaps we can update the types somehow?
I'm not sure what the correct signature would be, however.

I could be wrong actually. Nextjs's fetch caching is caching them separately. But I don't know what's going on under the hood with Apollo; maybe it's giving the same client all the time.

@tremby ah right that makes sense since we just pass makeClient directly to React.cache. You're right, this is more of a TS issue since we expect no args for that makeClient function.
To my knowledge, that React.cache uses the input values to determine whether to create a new cache entry or not. See this RFC, specifically the code block under that section which has the following comment:
// A cached function returns the same response for a given set of inputs —
// id, in this example. The `cache` proposal will also have a mechanism to
// invalidate the cache, and to scope it to a particular part of the UI.
const fetchNote = cache(async (id) => {
  const response = await fetch(`/api/notes/${id}`);
  return await response.json();
});

As far as I can tell, you should be getting separate clients for different arguments, so it should be working as expected.

Yeah, I was about to follow up: it is working correctly. Nothing extra needs to be passed through. React.cache is caching the function which already has all knowledge of what to do with the arguments. The different endpoints are being called as I expect, and I'm getting the preview data I expect back; that means I'm getting different Apollo clients returned.
So yeah, it's just a case of opening up the types, I think.
Would it be a case of making registerApolloClient a generic? Would it be something like...
export function registerApolloClient<Args extends any[] = any[]>(makeClient: (...args: Args) => ApolloClient<any>) {
  ...
}

Works for me, I'll open a PR.

For my current project I don't think I need to enable previews in areas other than those handled by RSC. But what if I did? Any thoughts on how I'd do something similar to this for ApolloWrapper?

OK, thanks for your response @phryneas. It looks like I need to reassess how I'm doing things.
I didn't realize I could change the URL at query time.
I am somewhat confused about the caches -- there's the Apollo cache and then there's Next's fetch cache. Your suggested code to avoid storing in the cache may avoid storing in Apollo's cache, but it's still storing in Next's fetch cache and I'm getting cache hits on successive requests. It's not immediately clear when to do fetchPolicy: "no-cache" vs context: { fetchOptions: { cache: "no-store" } } vs both vs neither. Something in the docs about this might be helpful.
Are you saying the Apollo client -- and therefore its cache? -- only survives a single request cycle? If so, is the Apollo cache really doing much at all, if I'm only making a couple of queries per request? Surely there's no harm in letting it populate, if it's never being reused after the request is over anyway. And if it's one cache per request cycle I also don't care about preview and live data being mixed.
(If it's a different preview token per CMS edit I can let Next's fetch cache populate too, since the URLs will be different so they'll have different cache keys. But I need to verify that first.)

I am somewhat confused about the caches -- there's the Apollo cache and then there's Next's fetch cache. Your suggested code to avoid storing in the cache may avoid storing in Apollo's cache, but it's still storing in Next's fetch cache and I'm getting cache hits on successive requests. It's not immediately clear when to do fetchPolicy: "no-cache" vs context: { fetchOptions: { cache: "no-store" } } vs both vs neither. Something in the docs about this might be helpful.

You are not the only one confused there - Vercel seems to slap a cache on top of every part of their stack that they can think of - and generally when you do things on the server with e.g. php, caches are always a late-stage opt-in optimizations most applications never need.
Personally, I'd opt out of most of these caches. They add a lot of headache, and I have real doubts on their usefulness.

Are you saying the Apollo client -- and therefore its cache? -- only survives a single request cycle?

Yes, Next.js has no concept of persistence of sessions, and every request is always isolated in itself, so you have to start with a new, empty cache every time.
The Apollo InMemoryCache can still do some useful things, like allowing you to fire a big composed query in a parent component and reading cache.readFragment in child components, but on the server it is more a client than a cache.


First tests

Btw the command npx jest <filename> can be used to run individual test files. Running all of them in development might get annoying since multiple fail