[BUG] Stretchly spawns a lingering process on each break

Prerequisites

[x] I'm using latest version: v 1.6.0
[x] I've checked Known issues
[x] I've checked Open issues
[x] I've read Code of Conduct. By filing an Issue, you are expected to comply with it, including treating everyone with respect.

Description

I looked at task manager and noticed there are hundreds of stretchly processes. I closed and restarted stretchly. I see there are a few Stretchly.exe in task manager, and on each break a new process is spawned.
Operating system: Windows 10 20H2
Steps to Reproduce

Open task manager. Count how many Stretchly.exe there are.
Right click on stretchly tray menu and skip to next break.
Repeat step 2 while watching number of stretchly processes in task manager goes up.

Expected behavior: Number of stretchly process (and memory usage) remains roughly constant.
Actual behavior: Stretchly keeps spawning processes.
Reproduces how often: 100%
Additional Information
None
Debug information

config.json (I have never edited this manually)
{
	"microbreakDuration": 20000,
	"microbreakInterval": 600000,
	"breakDuration": 300000,
	"breakInterval": 2,
	"breakNotification": true,
	"microbreakNotification": true,
	"breakNotificationInterval": 30000,
	"microbreakNotificationInterval": 10000,
	"microbreak": true,
	"break": false,
	"microbreakStrictMode": false,
	"breakStrictMode": false,
	"morningHour": 6,
	"microbreakPostpone": true,
	"breakPostpone": true,
	"microbreakPostponeTime": 120000,
	"breakPostponeTime": 300000,
	"microbreakPostponesLimit": 1,
	"microbreakPostponableDurationPercent": 30,
	"breakPostponesLimit": 1,
	"breakPostponableDurationPercent": 30,
	"mainColor": "#478484",
	"transparentMode": false,
	"opacity": 0.9,
	"audio": "crystal-glass",
	"volume": 1,
	"fullscreen": true,
	"ideas": true,
	"naturalBreaks": true,
	"naturalBreaksInactivityResetTime": 300000,
	"allScreens": true,
	"useIdeasFromSettings": false,
	"language": "en",
	"notifyNewVersion": true,
	"isFirstRun": false,
	"posLatitude": 0,
	"posLongitude": 0,
	"useMonochromeTrayIcon": true,
	"useMonochromeInvertedTrayIcon": true,
	"silentNotifications": true,
	"monitorDnd": true,
	"microbreakStartSoundPlaying": false,
	"breakStartSoundPlaying": false,
	"themeSource": "system",
	"endBreakShortcut": "CmdOrCtrl+X",
	"breakWindowWidth": 0.85,
	"breakWindowHeight": 0.85,
	"checkNewVersion": true,
	"breakIdeas": [
		{
			"data": [
				"Not alone",
				"Do you find it hard to take a break alone? Try to do it with a co-worker. Aside from making it easier to stick to breaks, you will have a chance to get to know them better. Taking breaks together increases productivity."
			],
			"enabled": true
		},
		{
			"data": [
				"Step away",
				"Do you ever notice how your brain can figure things out by itself? All it takes is to step away from the computer and take a break to think about something totally unrelated."
			],
			"enabled": true
		},
		{
			"data": [
				"Microbreaks",
				"Rest is a key component in ensuring the performance of the musculoskeletal system. Frequent breaks can decrease the duration of a task and help lower the exposure to ergonomic injury risk."
			],
			"enabled": true
		},
		{
			"data": [
				"Meditation",
				"Research studies suggest that mindfulness-based exercises help decrease anxiety, depression, stress, and pain, and help improve general health, mental health, and quality of life. Not sure how to start? There are numerous apps to help you out."
			],
			"enabled": true
		},
		{
			"data": [
				"Blink",
				"Looking at screens for a long time causes you to blink less, thus exposing your eyes to the air. Blink rapidly for a few seconds to refresh the tear film and clear dust from the eye surface."
			],
			"enabled": true
		},
		{
			"data": [
				"Ergonomics",
				"Improper height and angle of the keyboard, mouse, monitor or working surface can cause health problems. Take some time to read about desk ergonomics."
			],
			"enabled": true
		},
		{
			"data": [
				"Move",
				"There are a lot of ways you can exercise within your office. Try marching in place or doing desk push-ups."
			],
			"enabled": true
		},
		{
			"data": [
				"Change",
				"Do you have a stability ball or standing work desk?
			],
			"enabled": true
		},
		{
			"data": [
				"Notice",
				"Are you daydreaming or having trouble focusing? It is a sign that you need to take a break."
			],
			"enabled": true
		},
		{
			"data": [
				"Tech",
				"How about taking a no-tech walk?"
			],
			"enabled": true
		},
		{
			"data": [
				"Metabolism",
				"Emerging research shows that sitting for long periods of time contributes to risk of metabolic syndrome, heart attack and stroke risk and overall death risk, among others. Taking regular walking breaks can help your circulation, working to counteract some of those problems."
			],
			"enabled": true
		},
		{
			"data": [
				"Active Meetings",
				"How about moving meetings from the conference room to the concourse? Walking not only burns calories but it may even foster a sense of collaboration."
			],
			"enabled": true
		},
		{
			"data": [
				"Fruit",
				"Take your time and eat some fruit. Slowly. Notice the flavor, the texture, the freshness."
			],
			"enabled": true
		},
		{
			"data": [
				"Bathrooms",
				"Walk to the farthest bathroom in the worksite facility when going to the restroom."
			],
			"enabled": true
		},
		{
			"data": [
				"Coffee break",
				"Going on coffee break? Consider doing a 5-minute walk every time you go for one."
			],
			"enabled": true
		},
		{
			"data": [
				"Colleagues",
				"Do not email or message office colleagues, walk to their desks to communicate with them."
			],
			"enabled": true
		}
	],
	"microbreakIdeas": [
		{
			"data": "Go grab a glass of water.",
			"enabled": true
		},
		{
			"data": "Slowly look all the way left, then right.",
			"enabled": true
		},
		{
			"data": "Slowly look all the way up, then down.",
			"enabled": true
		},
		{
			"data": "Close your eyes and take few deep breaths.",
			"enabled": true
		},
		{
			"data": "Close your eyes and relax.",
			"enabled": true
		},
		{
			"data": "Stretch your legs.",
			"enabled": true
		},
		{
			"data": "Stretch your arms.",
			"enabled": true
		},
		{
			"data": "Is your sitting posture correct?",
			"enabled": true
		},
		{
			"data": "Slowly turn head to side and hold for 10 seconds.",
			"enabled": true
		},
		{
			"data": "Slowly tilt head to side and hold for 5-10 seconds.",
			"enabled": true
		},
		{
			"data": "Stand from chair and stretch.",
			"enabled": true
		},
		{
			"data": "Refocus eyes on an object at least 20 meters away.",
			"enabled": true
		},
		{
			"data": "Take a moment to think about something you appreciate.",
			"enabled": true
		},
		{
			"data": "Take a moment to smile at being alive.",
			"enabled": true
		}
	],
	"showBreaksAsRegularWindows": false,
	"appExclusions": [],
	"pauseForSuspendOrLock": true
}

Hi, that's how electron works. Stretchly is built with electron.

Ouch. So I need to manually restart Stretchly regularly to avoid memory leak?

I might be wrong but I don't think it is a memory leak. Look for example on Slack or other electron based apps, they have many processes as well.

Having many processes isn't a problem if it doesn't grow. But in stretchly's case it starts off with 4, then goes up by 1 every break. I rarely reboot so over time there are literally hundreds of processes.

Ok, I don't have Windows but let me try on Linux. Just quited Stretchly, started again and I have 8 processes running.  We'll update later if I don't forget.
I am doing regular close() so if there is a issue, it's probably electron

https://www.electronjs.org/docs/api/browser-window#winclose
https://github.com/hovancik/stretchly/blob/trunk/app/main.js#L222

Not sure if same, will have to read later, but quick search finds this: https://github.com/electron/electron/issues/21586

I think it has some sort of memory leak issue.
For me on Linux - ubuntu 20.04, snap version. I also experience the VRAM leak issue.
The application will eat up all the VRAM slowly. I have not experienced this issue from version 1.4. but it happens in 1.5 and 1.6.

I get the same issue with .deb version installed in Ubuntu 14.04 and 16.04 LTS, stretchly spawns after each break and consumes ~1GB memory .

I get this too on Windows 10.

Hello,
I love the app. Have now updated to the 1.6. Every time a break starts, a new process is started on each monitor. But the old processes are not closed. One process consumes 19 MB Ram for me, so 10 min break * 3 monitor * 19 MB = 350 MB Ram per hour * 10 hours => 3,5 GB Ram per day extra.
Emergency solution:
A cronjob kills stretchly daily and then restart stretchly.

Sorry guys, but looks like noone is working on this on Electron's side: https://github.com/electron/electron/issues/21586


2727 global analytics

https://trello.com/c/h3595yEp/2727-show-cookie-banner-when-global-analytics-is-configured-for-a-form
Pulls in latest from Metadata Presenter for Analytics handling

Replacing with https://github.com/ministryofjustice/fb-runner/pull/974 for clean commit history


css: Use SCSS nesting in app_components.scss.

I posted a few comments; thanks for working on this @vrongmeal!  Not merging anything this it's still tagged as a draft.

I merged all but the last commit, which is broken:

(static/js/components.js is what creates tab-switcher` elements dynamically).  I general, if you think some CSS is broken, it's worth removing it and taking a look at the actual UI element it's supposed to be part of to make sure it actually works :)

@timabbott I made the changes accordingly. I should have tested, was a little over-confident with that one 😅

@vrongmeal I think you lost part of your changes.  git reflog should be able to help you find the parts you lost.

@timabbott apparently the changes in CSS have been already merged into the master. This is (now) the fix for the issue that was caused due to the .allowed-overflow commit !

See commit 30da8bdf9b82b89528869bbc20378dc517a19a6b

Oops, yeah.  Merged this as 25b063ad95a713143646092c70b26dd9250accf2 after tweaking the commit message for clarity given the previous merge.  Thanks @vrongmeal!


Added missing q parameter to filter the drafts list (users_drafts)

this commit fixes #1061

This file is auto-generated, and so cannot be modified with a pull request. I'll run the code generator and see if this addresses your issue.
Also please upgrade to the master branch, as v1-master is deprecated.


Google API

Hi, is there any way to upgrade MTranslate for using Google API codes (https://cloud.google.com/translate/docs/auth#using_an_api_key)? For example, Because the base link is a little bit different with the primary base link in your code,  I'm not sure if I change the base link what will happen? Google API's base link is https://translation.googleapis.com/language/translate/v2?key=YOUR_API_KEY. Do you have any idea? Thanks.

The goal of mtranslate is to not use keys, there is no way it would work just by changing base link.

No this wouldn't work so easily
I don't see why you want to do that.

Yes, you're right, but the problem is Google will limit the requests. I have to translate more than 3 million sentences with Google Translate, and the speed is insufficient. Approximately, 2000 sentences per day :(

Then yes, you should probably go for the official API, you should find one pretty easily.
But I believe you will have to pay for that much requests per day.
Otherwise you could eventually try with proxies but I wouldn't recommend it if you plan to do that much requests


Use req_body field if present

When we call couch_httpd:json_body/1 we can have req_body already set.
In this case we should return the field as is without any attempt to
decompress or decode it. This PR brings the approach we use in chttpd
into couch_httpd.
backported from https://github.com/apache/couchdb/pull/3268

This also depends on https://github.com/apache/couchdb/pull/2991

The PR which backport both is here https://github.com/apache/couchdb/pull/3277


Invariant Violation: loadable: SSR requires @loadable/babel-plugin, please install it

🐛 Bug Report
I have configed '@loadable/babel-plugin' in babel.config.js, but when i use SSR to render react file ,then i got this error message

this is my config file

and this is  SSR

this is client side route file

i want to get some help and to fix it

Try to hoist loadable plugin. I reckon plugin-syntax-dynamic-import "eats" all imports before loadable plugin.

Try to hoist loadable plugin. I reckon plugin-syntax-dynamic-import "eats" all imports before loadable plugin.

i have try do it, but it still not working

I have similar trouble

I've double-checked the babel plugin code, and it seems to be legitly not working - the problem is "classical" - https://jamie.build/babel-plugin-ordering.html - different plugins are conflicting with each other.
It's easy to fix it, as explained in the linked page, but it would make loadable plugin slightly slower.
However, we don't have a choice.

I've double-checked the babel plugin code, and it seems to be legitly not working - the problem is "classical" - https://jamie.build/babel-plugin-ordering.html - different plugins are conflicting with each other.
It's easy to fix it, as explained in the linked page, but it would make loadable plugin slightly slower.
However, we don't have a choice.

but How to fix this problem

I have similar trouble, SSR requires @loadable/babel-plugin, please install it

@lovewinders - trouble is with @loadable/babel-plugin (however you are correct, it's required)

@lovewinders - trouble is with @loadable/babel-plugin (however you are correct, it's required)

my question issue is https://github.com/gregberge/loadable-components/issues/484

@theKashey any update on how to solve this? I am facing the same issue.

Update: you can't solve it, there is a really small change to be made to the babel plugin, but I can't find enough time to tackle it.
However, I could do the change, open a PR, and let you test it, so we would share a feature development burden.

@theKashey sure I can test it. Let me know once you've made a PR.

The "fix" is really super simple, see PR. It would be great if any of you would just copy-paste this gist to @loadable/babel/lib/index.js and check if it works. 99% that it is.

Hi @theKashey,
Thank you for your PR. I tried your fix solution, but it seems the error is still there. BTW, I think your gist is meant to replace<EMAIL_ADDRESS>

:(
Just to double check - could you edit a file with loadable to burst possible compilation cache. If it will would not work - then I would gently ask someone for an example to find the real root cause.

I have the same issue while wrap @loadable-component as a function call, like so:
// Loadable component
import React from 'react'
import loadable from '@loadable/component'

export default loader => loadable(loader, { fallback: <p> Loading...</p> })

and call it from routes definition:
// routes.js
import Loadable from 'components/Loadable'

const Index = Loadable(() => import('@/pages/Index'))

after remove this wrap and import @loadbale/component directly, errors was gone:
// routes.js
import loadable from '@loadbale/component'

const Index = loadable(() => import('@/pages/Index'))

Hope to be helpful :)

Hi,
I had the similar problem. Im my case i wasn't using .bablerc. I have configured bable in webpack.
webpack.config.[evn].js
module.exports = {
  mode: 'production',
  .
  .
  .
  module: {
    rules: [
      {
        test: /\.(ts|tsx)$/,
        exclude: /node_modules/,
        use: [
          {
            loader: require.resolve('babel-loader'),
            options: {
              babelrc: false,
              plugins: ['@loadable/babel-plugin'],
            },
          },
     }
   ]
}]}
}

The "fix" is really super simple, see PR. It would be great if any of you would just copy-paste this gist to<EMAIL_ADDRESS>and check if it works. 99% that it is.

Hi @theKashey
I have same issue and i copy-paste it but it not helped me , what can i do for solving it ?

i have this issue only when i create my own custom loadable function:
import baseLoadable from '@loadable/component';

export const loadable = (importCb, options) => {
	return baseLoadable(
		() => importCb().then(module => // do some stuff),
		options
	);
}

using the library loadable function works

@suhanw @chen86860  Hi! I faced the same problem as you and managed to solve it via "magic-comments". If you still want to use your own custom functions you can try to use this approach too: https://loadable-components.com/docs/babel-plugin/#magic-comments
For example, based on @suhanw comment, try to call your custom loadable function like this:
loadable(/* #__LOADABLE__ */ () => import ('./someModule'), {options})

I ran into this problem as well. We have a wrapper around loadable that we also call loadable so that the Babel plugin can recognise it (as per the docs), but it still didn't work and adding magic comments didn't work either.
After a while I realised we also have a lazyLoadOnVisible(() => import('...'), options) which also wraps loadable and this was the source of the problem. Adding the magic comment to those calls solved it!
So for use it's working as documented. The wrapper we call loadable works without magic comments, the wrapper that is called something else needs the magic comments to work.
So for anyone else finding this issue:

The babel plugin converts () => import('...') to an object with some metadata
If the base loadable() function gets a function instead of an object, this error happens
Make sure you have added the Babel plugin (and possibly check plugin ordering)
Make sure the plugin can recognise which () => import('...') to convert either by:

Wrap it in any function called loadable() OR
Preceded by /* #__LOADABLE__ */

@suhanw Your comment is pretty old by now so you might have moved passed this already, but, I think the reason that custom function isn't working is that it passes in a function that is impossible for loadable to convert into an object.
Maybe the resolveComponent option could help you achieve the thing you want to do?

Thanks @Ephem ! I honestly can't remember what I wanted to accomplish 😅 but TIL about resolveComponent

I get this issue and I have tried all of the above with no luck apart from my application complaining with the same error described above:
SSR requires @loadable/babel-plugin, please install it
My components are loaded in like the following:
`
import loadable from '@loadable/component';
const fallback = Loading;
const viewPage = loadable(/* #LOADABLE */ () => import('../pages/platform/View/container/ViewPage'), {
ssr: true,
fallback,
resolveComponent: (component) => component.default
});
`
Kind of running out of ideas 🤷

@negomansini I'm not sure if there are other reasons this error can happen, but from my understanding for some reason () => import('../pages/platform/LoginPage') is not getting turned into the object loadable expects somewhere in your application.
I don't think the magic comment is necessary here, but shouldn't hurt either.
Are you 100% sure the Babel plugin is added for every environment you have (in case you have separate builds for client and server for example) and that no other Babel plugin is interfering?
What helped me narrow my case down was trying to do a minimal reproduction by commenting out all routes and adding a single test route with a single loadable component on it. I hope you'll be able to figure it out! 😄

Hey! thanks for the reply. Yeah i've only got one route active at the moment to test this. I am using Webpack 5, and this is only relating to my server side builds.
My .babelrc file is what I am using. if i remove a plugin from the list my build fails so its definitely reading from this file... I have also tried specifying the plugins at the webpack level but still no luck... Yeah really coming to the end of what else I could try....
{
    "presets": [
        "@babel/env",
        "@babel/react",
        [
            "@babel/preset-typescript",
            {
                "onlyRemoveTypeImports": true
            }
        ]
    ],
    "plugins": [
        "@loadable/babel-plugin",
        "babel-plugin-transform-typescript-metadata",
        ["@babel/plugin-proposal-decorators", { "legacy": true }],
        ["@babel/plugin-proposal-class-properties", { "loose": true }],
        "@babel/plugin-proposal-nullish-coalescing-operator",
        "@babel/plugin-proposal-object-rest-spread",
        "@babel/plugin-proposal-optional-chaining",
        "@babel/plugin-transform-runtime"
    ]
}

Not sure whether it's a correct solution but it worked in my case. I used
import loadable from "@loadable/component";
const LoadableMyComponent = loadable(() => import("../LoadableMyComponent"));

in place of
import Loadable from "@loadable/component";
const LoadableMyComponent = Loadable(() => import("../LoadableMyComponent"));

small l l instead of L is working

IMPORTANT! In my case it was the case that there was a process deleting .babelrc which is essential for the module loading !

In my case, the version for @loadable/component and  @loadable/server was a mismatch. I resolved it by using the same version for both packages.

I was facing the same issue with typescript. So, I added typescript support on top of server-side-rendering example. Hope it helps someone. Server Side Rendering with TS

In my case I had a typo in import loadable from "@loadable/component";


Release 0.7.2

Summary
Prepares the 0.7.2 release
Details and comments

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 86.784%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
8786

Relevant Lines:
10124

💛  - Coveralls


Fix(TDI-34953):Enable tJDBCOutput print sql.

What is the current behavior? (You can also link to an open issue here)
https://jira.talendforge.org/browse/TDI-34953
What is the new behavior?
Please check if the PR fulfills these requirements

[ ] The commit message follows Talend standard
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features) ?
[ ] The code coverage on new code >75%
[ ] The new code does not introduce new technical issues (sonar / eslint)

What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build / CI related changes
[ ] Other... Please describe:

Does this PR introduce a breaking change?

[ ] Yes
[ ] No

If this PR contains a breaking change, please describe the impact and migration path for existing applications: ...
Other information:

The query should be logged before execution, otherwise, it will be hidden by Execution.

Pull request test result: success :star:
Sonar results

Pull request test result: success :star:
Sonar results

Pull request test result: failure :x:

Pull request test result: success :star:
Sonar results

Pull request test result: failure :x:


Update Spanish translation (E1.31 + UI)

@tornel what are the changes to the italian translation ? :open_mouth:

an error on my part when I clicked save and shouldn't (too little sleep and too much coffee  :disappointed:)
corrected in those two last commits

Alrighty then, thanks :+1:


Scene code runs before having data from engine

The scene should wait for the engine to send an initial state before starting to run the scene's code. Without this, a system that queries for the root entity, the player entity or the camera entity will not find these in the first frames of the scene.
It's possible for creators to work around this by adding a check like in the example below. But without this check, the scene fails. The console reads that component 1 from entity 1 can't be found. Removing this complication would help make code a lot simpler for content creators in some cases.
const cube = engine.addEntity()

Transform.create(cube, {
  position: Vector3.create(3, 1, 3),
})

MeshRenderer.setBox(cube)

function CubeRotateSystem() {
  // comment out the next line & the scene breaks
  if (!Transform.has(engine.PlayerEntity)) return
  const transform = Transform.getMutable(cube)
  transform.rotation = Transform.get(engine.PlayerEntity).rotation
}

engine.addSystem(CubeRotateSystem)

playground link

The update should come as part of the initial crdtGetState call by the onStart function

@pbosio

The update should come as part of the initial crdtGetState call by the onStart function
@pbosio

@menduz that is correctly called and components are updated, but scene-runtime does an eval of the scene code before calling sceneModule.runStart() https://github.com/decentraland/scene-runtime/blob/main/src/worker-sdk7/index.ts#L91-L105
can we move the runStart to be called before the eval? 🤔

the eval is what actually enables this function to exist. it must happen before calling it

the eval is what actually enables this function to exist. it must happen before calling it

yeah I imagine that was the case, but, what is the suggested implementation for this?
making sure that onStart is called before anything else of the scene code?

This is the code of the engine.update, it processes the update messages received on the onStart and sent to the rendererTransport.onmessage
Can we validate the camera transform is coming through as package in the result of crdtGetState? and all the way to this function?
I think we may find where the issue is by only writing tests this time

yeah I imagine that was the case, but, what is the suggested implementation for this?
making sure that onStart is called before anything else of the scene code?

It is the first thing that gets called, for sure. Unless you have top level declarations with side effects. But it is not the case of this example.

yeah I imagine that was the case, but, what is the suggested implementation for this?
making sure that onStart is called before anything else of the scene code?

It is the first thing that gets called, for sure. Unless you have top level declarations with side effects. But it is not the case of this example.

I will check, but I vaguely recall adding logs to the onStart function and to the index.ts of my scene and the index.ts was called sooner than onStart
but I will check again and let you know what I find

If you compile this code
export async function onStart() {
  console.log('XXXX')
}

console.log('OOOO')

it will print
OOOO
XXXX

And that is expected (and the only viable thing to do).
But then if you run this:
import * as sdk from '@dcl/sdk'

export async function onUpdate(deltaTime: number) {
  console.log('OnUpdate', deltaTime)
  return await sdk.onUpdate(deltaTime)
}

export async function onStart() {
  console.log('OnStart')
  return await sdk.onStart()
}

sdk.engine.addSystem(function() {
  console.log('SystemRun')
})

console.log('TopLevelDeclaration')

You will/should see the logs
TopLevelDeclaration
OnStart
OnUpdate 0.0
SystemRun
OnUpdate x.x
SystemRun
OnUpdate x.x
SystemRun
OnUpdate x.x
SystemRun

Ok, my bad, I misunderstood the issue.
so we are expecting to work for systems but not expecting to work for top level declaration.
I thought it was already working in systems, but I'll check again.
Are we planning to add a callback for the scene so devs can setup stuff when we know that initial data is set?
I've assumed that that was Nico's major concern

oh, very interesting
so in the example above, if I add the following, it would get logged after the onStart & the top level declaration
executeTask(async () => {
  console.log('ExecuteTask')
})

TopLevelDeclaration
OnStart
ExecuteTask
OnUpdate 0.0
SystemRun
...etc

It should! Do you confirm?

Yep, confirmed, that's working as intended

Issue was happening on playground but working well on preview
fixed here: https://github.com/decentraland/sdk-playground/pull/25


Viewport Responsiveness

Hi,
I want to use cytoscape for a company dashboard, but one of our requirements it is viewable on mobile. So far I have had no issues making dash look good on mobile using some css hacks/media queries etc.
But I am struggling to make cytoscape responsive. It seems that the layout is fit to the viewport on initial render but any change to the viewport size does not fire the appropriate fit callback.
Is this intended or configurable?
On resize (not fit to viewport):

On refresh (fits now):

I have the same concern. Though it might require adding more functionality to the cytoscape javascript library for that. Attempted to resize some of the galleries on http://js.cytoscape.org/.

There is a solution in the works attempting to fix this problem. A branch containing a beta version of this solution should be released shortly for testing.

https://github.com/plotly/dash-cytoscape/tree/responsive-graph-beta
A new branch has been made containing the responsive graph feature. Note that by default this feature is turned off so that default behavior remains the same. To turn it on, use responsive=true. More testing is needed before this feature can be finalized. Please let me know if there are any bugs.

hey mj3cheun, sorry for the delay, I just tested this and it works, thank you!

Closing this since https://github.com/plotly/dash-cytoscape/pull/92 was merged.


Issue #5: Resolved

Implementation of add-dev, remove-dev and change-dev were implemented.

Awesome @StrajnarFilip!
This is very good PR with a just a few remaining issues to look at.

Please add at least one test instance for each adaptation (add-dev, remove-dev)

Please update README with new functionalities

toml file we use for tests should not be altered


Make program cross platform and add support for Other folder

Closes #5

Initially I had not even considered the time complexity for the program. Now it works just as I expect it to. Many thanks.


Fixed: crash when request has no META attribute

I'm having crash using template tag user_agents, because when I'm compressing my JavaScript & CSS files on deploy (using django-compressor) the request doesn't have the META attribute.
Log
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/cm/envs/cm/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/home/cm/envs/cm/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/cm/envs/cm/local/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/home/cm/envs/cm/local/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute
    output = self.handle(*args, **options)
  File "/home/cm/envs/cm/local/lib/python2.7/site-packages/django/core/management/base.py", line 533, in handle
    return self.handle_noargs(**options)
  File "/home/cm/envs/cm/local/lib/python2.7/site-packages/compressor/management/commands/compress.py", line 274, in handle_noargs
    self.compress(sys.stdout, **options)
  File "/home/cm/envs/cm/local/lib/python2.7/site-packages/compressor/management/commands/compress.py", line 221, in compress
    rendered = parser.render_nodelist(template, context, node)
  File "/home/cm/envs/cm/local/lib/python2.7/site-packages/compressor/offline/django.py", line 114, in render_nodelist
    return node.nodelist.render(context)
  File "/home/cm/envs/cm/local/lib/python2.7/site-packages/django/template/base.py", line 844, in render
    bit = self.render_node(node, context)
  File "/home/cm/envs/cm/local/lib/python2.7/site-packages/django/template/base.py", line 858, in render_node
    return node.render(context)
  File "/home/cm/envs/cm/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 305, in render
    match = condition.eval(context)
  File "/home/cm/envs/cm/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 898, in eval
    return self.value.resolve(context, ignore_failures=True)
  File "/home/cm/envs/cm/local/lib/python2.7/site-packages/django/template/base.py", line 624, in resolve
    new_obj = func(obj, *arg_vals)
  File "/home/cm/envs/cm/local/lib/python2.7/site-packages/django_user_agents/templatetags/user_agents.py", line 21, in is_tablet
    return get_and_set_user_agent(request).is_tablet
  File "/home/cm/envs/cm/local/lib/python2.7/site-packages/django_user_agents/utils.py", line 41, in get_and_set_user_agent
    request.user_agent = get_user_agent(request)
  File "/home/cm/envs/cm/local/lib/python2.7/site-packages/django_user_agents/utils.py", line 26, in get_user_agent
    ua_string = request.META.get('HTTP_USER_AGENT', '')
AttributeError: 'NoneType' object has no attribute 'META'

This looks good. @selwin what do you think?


[BUG]无法正常安装，路径错误！！！

无法正常安装，路径错误！
go-admin tested by
	go-admin.test imports
	./tables: "./tables" is relative, but relative import paths are not supported in module mode

版本信息:

GoAdmin 版本：1.2.23
golang 版本：1.18.3
浏览器环境：egde
开发环境：windows10和Linux(Centos8)

Linux下安装记录
[root@144 go-admin]# make install
go mod tidy
go: finding module for package github.com/GoAdminGroup/go-admin/adapter/gin
go: finding module for package github.com/GoAdminGroup/go-admin/engine
go: finding module for package github.com/GoAdminGroup/go-admin/modules/db/drivers/sqlite
go: finding module for package github.com/GoAdminGroup/go-admin/template
go: finding module for package github.com/GoAdminGroup/go-admin/template/chartjs
go: finding module for package github.com/GoAdminGroup/themes/sword
go: downloading github.com/GoAdminGroup/themes v0.0.43
go: finding module for package github.com/gin-gonic/gin
go: downloading github.com/gin-gonic/gin v1.8.1
go: finding module for package github.com/GoAdminGroup/go-admin/modules/db
go: finding module for package github.com/jinzhu/gorm
go: downloading github.com/jinzhu/gorm v1.9.16
go: finding module for package github.com/GoAdminGroup/go-admin/context
go: finding module for package github.com/GoAdminGroup/go-admin/modules/config
go: finding module for package github.com/GoAdminGroup/go-admin/template/types
go: finding module for package github.com/GoAdminGroup/themes/sword/components/card
go: finding module for package github.com/GoAdminGroup/themes/sword/components/chart_legend
go: finding module for package github.com/GoAdminGroup/themes/sword/components/description
go: finding module for package github.com/GoAdminGroup/themes/sword/components/progress_group
go: finding module for package github.com/GoAdminGroup/go-admin/plugins/admin/modules/table
go: finding module for package github.com/GoAdminGroup/go-admin/tests
go: finding module for package github.com/GoAdminGroup/go-admin/tests/common
go: finding module for package github.com/GoAdminGroup/go-admin/tests/frameworks/gin
go: finding module for package github.com/GoAdminGroup/go-admin/tests/web
go: finding module for package github.com/gavv/httpexpect
go: downloading github.com/gavv/httpexpect v2.0.0+incompatible
go: found github.com/GoAdminGroup/go-admin/adapter/gin in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/engine in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/modules/db/drivers/sqlite in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/template in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/template/chartjs in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/themes/sword in github.com/GoAdminGroup/themes v0.0.43
go: found github.com/gin-gonic/gin in github.com/gin-gonic/gin v1.8.1
go: found github.com/GoAdminGroup/go-admin/modules/db in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/jinzhu/gorm in github.com/jinzhu/gorm v1.9.16
go: found github.com/GoAdminGroup/go-admin/context in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/modules/config in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/template/types in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/themes/sword/components/card in github.com/GoAdminGroup/themes v0.0.43
go: found github.com/GoAdminGroup/themes/sword/components/chart_legend in github.com/GoAdminGroup/themes v0.0.43
go: found github.com/GoAdminGroup/themes/sword/components/description in github.com/GoAdminGroup/themes v0.0.43
go: found github.com/GoAdminGroup/themes/sword/components/progress_group in github.com/GoAdminGroup/themes v0.0.43
go: found github.com/GoAdminGroup/go-admin/plugins/admin/modules/table in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/tests in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/tests/common in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/tests/frameworks/gin in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/tests/web in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/gavv/httpexpect in github.com/gavv/httpexpect v2.0.0+incompatible
go: downloading github.com/jinzhu/inflection v1.0.0
go: downloading github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5
go: downloading github.com/jinzhu/now v1.0.1
go: downloading github.com/magiconair/properties v1.8.1
go: downloading gopkg.in/yaml.v2 v2.4.0
go: downloading github.com/stretchr/testify v1.7.1
go: downloading github.com/gin-contrib/sse v0.1.0
go: downloading github.com/mattn/go-isatty v0.0.14
go: downloading golang.org/x/net v0.0.0-20210226172049-e18ecbb05110
go: downloading google.golang.org/protobuf v1.28.0
go: downloading golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97
go: downloading github.com/denisenkom/go-mssqldb v0.0.0-20200206145737-bbfc9a55622e
go: downloading gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127
go: downloading golang.org/x/text v0.3.6
go: downloading github.com/davecgh/go-spew v1.1.1
go: downloading github.com/pmezard/go-difflib v1.0.0
go: downloading gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
go: downloading github.com/go-playground/validator/v10 v10.10.0
go: downloading github.com/pelletier/go-toml/v2 v2.0.1
go: downloading github.com/ugorji/go/codec v1.2.7
go: downloading github.com/goccy/go-json v0.9.7
go: downloading github.com/json-iterator/go v1.1.12
go: downloading golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069
go: downloading github.com/google/go-cmp v0.2.0
go: downloading github.com/BurntSushi/toml v0.3.1
go: downloading github.com/pkg/errors v0.8.1
go: downloading golang.org/x/lint v0.0.0-20190930215403-16217165b5de
go: downloading honnef.co/go/tools v0.0.1-2019.2.3
go: downloading github.com/kr/pretty v0.1.0
go: downloading github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe
go: downloading gitea.com/xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a
go: downloading github.com/360EntSecGroup-Skylar/excelize v1.4.1
go: downloading github.com/go-playground/universal-translator v0.18.0
go: downloading github.com/leodido/go-urn v1.2.1
go: downloading github.com/go-playground/locales v0.14.0
go: downloading github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421
go: downloading github.com/modern-go/reflect2 v1.0.2
go: downloading go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee
go: downloading github.com/kr/text v0.1.0
go: downloading github.com/onsi/ginkgo v1.7.0
go: downloading github.com/onsi/gomega v1.4.3
go: downloading golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5
go: downloading github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826
go: downloading github.com/hpcloud/tail v1.0.0
go: downloading gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7
go: downloading gopkg.in/fsnotify.v1 v1.4.7
go: downloading gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
go: downloading github.com/google/go-cmp v0.5.5
go: downloading github.com/kr/pretty v0.3.0
go: downloading github.com/go-playground/assert/v2 v2.0.1
go: downloading github.com/kr/text v0.2.0
go: downloading github.com/rogpeppe/go-internal v1.8.0
go: downloading golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543
go: finding module for package github.com/gobuffalo/packr/v2
go: finding module for package github.com/gobuffalo/packr/v2/file/resolver
go: downloading github.com/gobuffalo/packr v1.30.1
go: downloading github.com/gobuffalo/packr/v2 v2.8.3
go: finding module for package github.com/valyala/fasthttp
go: downloading github.com/valyala/fasthttp v1.37.0
go: finding module for package github.com/sclevine/agouti
go: downloading github.com/sclevine/agouti v3.0.0+incompatible
go: finding module for package github.com/ajg/form
go: downloading github.com/ajg/form v1.5.1
go: finding module for package github.com/fatih/structs
go: downloading github.com/fatih/structs v1.1.0
go: finding module for package github.com/google/go-querystring/query
go: downloading github.com/google/go-querystring v1.1.0
go: finding module for package github.com/gorilla/websocket
go: downloading github.com/gorilla/websocket v1.5.0
go: finding module for package github.com/imkira/go-interpol
go: downloading github.com/imkira/go-interpol v1.1.0
go: finding module for package github.com/moul/http2curl
go: downloading github.com/moul/http2curl v1.0.0
go: finding module for package github.com/xeipuuv/gojsonschema
go: downloading github.com/xeipuuv/gojsonschema v1.2.0
go: finding module for package github.com/yalp/jsonpath
go: downloading github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0
go: finding module for package github.com/yudai/gojsondiff
go: downloading github.com/yudai/gojsondiff v1.0.0
go: finding module for package github.com/yudai/gojsondiff/formatter
go: finding module for package github.com/buaazp/fasthttprouter
go: downloading github.com/buaazp/fasthttprouter v0.1.1
go: finding module for package github.com/fasthttp-contrib/websocket
go: downloading github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072
go: finding module for package github.com/valyala/fasthttp/fasthttpadaptor
go: finding module for package github.com/smartystreets/goconvey/convey
go: downloading github.com/smartystreets/goconvey v1.7.2
go: finding module for package gopkg.in/natefinch/lumberjack.v2
go: downloading gopkg.in/natefinch/lumberjack.v2 v2.0.0
go: found github.com/gobuffalo/packr/v2 in github.com/gobuffalo/packr/v2 v2.8.3
go: found github.com/gobuffalo/packr/v2/file/resolver in github.com/gobuffalo/packr/v2 v2.8.3
go: found github.com/valyala/fasthttp in github.com/valyala/fasthttp v1.37.0
go: found github.com/sclevine/agouti in github.com/sclevine/agouti v3.0.0+incompatible
go: found github.com/ajg/form in github.com/ajg/form v1.5.1
go: found github.com/fatih/structs in github.com/fatih/structs v1.1.0
go: found github.com/google/go-querystring/query in github.com/google/go-querystring v1.1.0
go: found github.com/gorilla/websocket in github.com/gorilla/websocket v1.5.0
go: found github.com/imkira/go-interpol in github.com/imkira/go-interpol v1.1.0
go: found github.com/moul/http2curl in github.com/moul/http2curl v1.0.0
go: found github.com/xeipuuv/gojsonschema in github.com/xeipuuv/gojsonschema v1.2.0
go: found github.com/yalp/jsonpath in github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0
go: found github.com/yudai/gojsondiff in github.com/yudai/gojsondiff v1.0.0
go: found github.com/yudai/gojsondiff/formatter in github.com/yudai/gojsondiff v1.0.0
go: found github.com/buaazp/fasthttprouter in github.com/buaazp/fasthttprouter v0.1.1
go: found github.com/fasthttp-contrib/websocket in github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072
go: found github.com/valyala/fasthttp/fasthttpadaptor in github.com/valyala/fasthttp v1.37.0
go: found github.com/smartystreets/goconvey/convey in github.com/smartystreets/goconvey v1.7.2
go: found gopkg.in/natefinch/lumberjack.v2 in gopkg.in/natefinch/lumberjack.v2 v2.0.0
go: downloading github.com/magiconair/properties v1.8.5
go: downloading gopkg.in/ini.v1 v1.62.0
go: downloading golang.org/x/net v0.0.0-20220225172249-27dd8689420f
go: downloading golang.org/x/crypto v0.0.0-20220214200702-86341886e292
go: downloading go.uber.org/zap v1.17.0
go: downloading golang.org/x/text v0.3.7
go: downloading github.com/gobuffalo/packd v1.0.1
go: downloading github.com/markbates/oncer v1.0.0
go: downloading github.com/markbates/safe v1.0.1
go: downloading golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9
go: downloading github.com/andybalholm/brotli v1.0.4
go: downloading github.com/klauspost/compress v1.15.0
go: downloading github.com/valyala/bytebufferpool v1.0.0
go: downloading github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415
go: downloading go.uber.org/atomic v1.7.0
go: downloading go.uber.org/multierr v1.6.0
go: downloading github.com/jtolds/gls v4.20.0+incompatible
go: downloading github.com/smartystreets/assertions v1.2.0
go: downloading github.com/karrick/godirwalk v1.16.1
go: downloading github.com/markbates/errx v1.1.0
go: downloading github.com/gobuffalo/logger v1.0.6
go: downloading github.com/sirupsen/logrus v1.8.1
go: downloading github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f
go: downloading github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1
go: downloading golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
go: downloading golang.org/x/term v0.0.0-20210927222741-03fcf44c2211
go: downloading golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1
go: finding module for package github.com/yudai/golcs
go: finding module for package github.com/sergi/go-diff/diffmatchpatch
go: downloading github.com/sergi/go-diff v1.2.0
go: downloading github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82
go: finding module for package github.com/yudai/pp
go: downloading github.com/yudai/pp v2.0.1+incompatible
go: found github.com/sergi/go-diff/diffmatchpatch in github.com/sergi/go-diff v1.2.0
go: found github.com/yudai/golcs in github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82
go: found github.com/yudai/pp in github.com/yudai/pp v2.0.1+incompatible
go-admin tested by
	go-admin.test imports
	./tables: "./tables" is relative, but relative import paths are not supported in module mode
make: *** [Makefile:14: install] Error 1

Win10下错误记录
I:\Go_workspace\src\go-admin>go mod tidy
go: finding module for package github.com/GoAdminGroup/go-admin/engine
go: finding module for package github.com/GoAdminGroup/go-admin/adapter/gin
go: finding module for package github.com/GoAdminGroup/go-admin/template
go: finding module for package github.com/GoAdminGroup/go-admin/modules/db/drivers/mysql
go: finding module for package github.com/GoAdminGroup/go-admin/template/chartjs
go: finding module for package github.com/GoAdminGroup/themes/sword
go: finding module for package github.com/gin-gonic/gin
go: finding module for package github.com/GoAdminGroup/go-admin/context
go: finding module for package github.com/GoAdminGroup/go-admin/modules/config
go: finding module for package github.com/GoAdminGroup/go-admin/template/types
go: finding module for package github.com/GoAdminGroup/themes/sword/components/card
go: finding module for package github.com/GoAdminGroup/themes/sword/components/chart_legend
go: finding module for package github.com/GoAdminGroup/themes/sword/components/description
go: finding module for package github.com/GoAdminGroup/themes/sword/components/progress_group
go: finding module for package github.com/GoAdminGroup/go-admin/plugins/admin/modules/table
go: finding module for package github.com/GoAdminGroup/go-admin/tests
go: finding module for package github.com/GoAdminGroup/go-admin/tests/common
go: finding module for package github.com/GoAdminGroup/go-admin/tests/frameworks/gin
go: finding module for package github.com/GoAdminGroup/go-admin/tests/web
go: finding module for package github.com/gavv/httpexpect
go: found github.com/GoAdminGroup/go-admin/adapter/gin in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/engine in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/modules/db/drivers/mysql in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/template in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/template/chartjs in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/themes/sword in github.com/GoAdminGroup/themes v0.0.43
go: found github.com/gin-gonic/gin in github.com/gin-gonic/gin v1.8.1
go: found github.com/GoAdminGroup/go-admin/context in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/modules/config in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/template/types in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/themes/sword/components/card in github.com/GoAdminGroup/themes v0.0.43
go: found github.com/GoAdminGroup/themes/sword/components/chart_legend in github.com/GoAdminGroup/themes v0.0.43
go: found github.com/GoAdminGroup/themes/sword/components/description in github.com/GoAdminGroup/themes v0.0.43
go: found github.com/GoAdminGroup/themes/sword/components/progress_group in github.com/GoAdminGroup/themes v0.0.43
go: found github.com/GoAdminGroup/go-admin/plugins/admin/modules/table in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/tests in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/tests/common in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/tests/frameworks/gin in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/GoAdminGroup/go-admin/tests/web in github.com/GoAdminGroup/go-admin v1.2.23
go: found github.com/gavv/httpexpect in github.com/gavv/httpexpect v2.0.0+incompatible
go: finding module for package github.com/gobuffalo/packr/v2
go: finding module for package github.com/gobuffalo/packr/v2/file/resolver
go: finding module for package github.com/valyala/fasthttp
go: finding module for package github.com/sclevine/agouti
go: finding module for package github.com/ajg/form
go: finding module for package github.com/fatih/structs
go: finding module for package github.com/google/go-querystring/query
go: finding module for package github.com/gorilla/websocket
go: finding module for package github.com/imkira/go-interpol
go: finding module for package github.com/moul/http2curl
go: finding module for package github.com/xeipuuv/gojsonschema
go: finding module for package github.com/yalp/jsonpath
go: finding module for package github.com/yudai/gojsondiff
go: finding module for package github.com/yudai/gojsondiff/formatter
go: finding module for package github.com/buaazp/fasthttprouter
go: finding module for package github.com/fasthttp-contrib/websocket
go: finding module for package github.com/smartystreets/goconvey/convey
go: finding module for package github.com/valyala/fasthttp/fasthttpadaptor
go: finding module for package gopkg.in/natefinch/lumberjack.v2
go: found github.com/gobuffalo/packr/v2 in github.com/gobuffalo/packr/v2 v2.8.3
go: found github.com/gobuffalo/packr/v2/file/resolver in github.com/gobuffalo/packr/v2 v2.8.3
go: found github.com/valyala/fasthttp in github.com/valyala/fasthttp v1.37.0
go: found github.com/sclevine/agouti in github.com/sclevine/agouti v3.0.0+incompatible
go: found github.com/ajg/form in github.com/ajg/form v1.5.1
go: found github.com/fatih/structs in github.com/fatih/structs v1.1.0
go: found github.com/google/go-querystring/query in github.com/google/go-querystring v1.1.0
go: found github.com/gorilla/websocket in github.com/gorilla/websocket v1.5.0
go: found github.com/imkira/go-interpol in github.com/imkira/go-interpol v1.1.0
go: found github.com/moul/http2curl in github.com/moul/http2curl v1.0.0
go: found github.com/xeipuuv/gojsonschema in github.com/xeipuuv/gojsonschema v1.2.0
go: found github.com/yalp/jsonpath in github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0
go: found github.com/yudai/gojsondiff in github.com/yudai/gojsondiff v1.0.0
go: found github.com/yudai/gojsondiff/formatter in github.com/yudai/gojsondiff v1.0.0
go: found github.com/buaazp/fasthttprouter in github.com/buaazp/fasthttprouter v0.1.1
go: found github.com/fasthttp-contrib/websocket in github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072
go: found github.com/valyala/fasthttp/fasthttpadaptor in github.com/valyala/fasthttp v1.37.0
go: found github.com/smartystreets/goconvey/convey in github.com/smartystreets/goconvey v1.7.2
go: found gopkg.in/natefinch/lumberjack.v2 in gopkg.in/natefinch/lumberjack.v2 v2.0.0
go: finding module for package github.com/yudai/pp
go: finding module for package github.com/sergi/go-diff/diffmatchpatch
go: finding module for package github.com/yudai/golcs
go: found github.com/sergi/go-diff/diffmatchpatch in github.com/sergi/go-diff v1.2.0
go: found github.com/yudai/golcs in github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82
go: found github.com/yudai/pp in github.com/yudai/pp v2.0.1+incompatible
go-admin tested by
        go-admin.test imports
        ./tables: "./tables" is relative, but relative import paths are not supported in module mode

在module模式下引入相对路径是不允许的。在main_test.go文件中使用了import "./tables"，修改成 import “{{module_name}}/tables”即可。
或者偷懒直接删除main_test.go不做测试也是OK了的。
推荐修改成 import “{{module_name}}/tables”。

http://doc.go-admin.cn/zh/install/


Clarify documentation around update locks

Clarify that a release can only be updated if all of the services can be updated. Locks are per-service, but having the update lock in a single service will prevent all services from updating to a new release.

[garethtdavies] This issue has attached support thread https://jel.ly.fish/#/9fe731c6-917c-49cc-98e0-6cde7cef53d7

This was resolved via https://github.com/balena-io/balena-supervisor/pull/1219


Dashboard: Add loading screen

Feature Description
When the dashboard is loading is a primitive loading screen is displayed, showing the words, "Please wait..." with a white background.

Styling on this loading page should improved, not only to make it look a little nicer, but also adds some sort of loading animation / progress bar ( that does not need to be actuate ), to give the user some feeling like that "something" is happening, to improve user's perception of speed of the application.
Follow up from https://github.com/google/web-stories-wp/issues/8279
Alternatives Considered

Additional Context

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

Implementation Brief

@csossi  - this just updates the visual of the loading screen.
it should match the screenshots of 'after' attached to the PR

weird, so the build didn't finish. try again?

Verified in QA


ASP.NET Core client side Blazor applications can't be run in VSCode

This was originally reported over in https://github.com/aspnet/AspNetCore/issues/9451 and it seems that the dialog to add build assets to the project can't detect Blazor client side applications because they're not true runnable applications on their own.
To fix this there's two steps:

Make runnable project detection understand Blazor client side applications
Update the run .net core console app to utilize dotnet run --no-build instead of dotnet *.dll. The distinction about using dotnet run enables the Blazor project to hijack the run process and properly boot a runnable application.

/cc @danroth27

I don't think this plan will work -- launch.json configurations need to be for both running and debugging and, at least the .NET Debugger, will not be able to work if you launch the problem using dotnet run.

Hmmm interesting. Why is it that dotnet run can't be debugged?

dotnet run will launch the target in a child process. The .NET Debugging APIs have no support for child process debugging.

Actually, thinking more - this is a much bigger problem than just tweaking launch.json a little.
For a pure client app - what you want F5 to do is start the Blazor web server not under a debugger, and then after it is ready, launch Chrome (or whatever supported web browser), and connect the Chrome debug adapter to it.
For a 'Blazor (ASP.NET Core hosted)' app it might make sense to debug both at the same time.

I see I see, ya good point. @SteveSandersonMS / @danroth27 is Blazor debugging in the browser in a viable state?

@NTaylorMullen Debugging Blazor in the browser is still pretty rough. Eventually thought we do want to have an integrated experience where you can just F5 and have VS launch the browser with remote debugging enabled and then correctly attach.

For comparison, in VS we also don't support F5 for client-side Blazor apps. You have to Ctrl-F5, and it's been that way for over a year now.

Here are my suggestions:

Don't do anything right now in terms of launch.json generation. We can leave this bug open to consider doing something someday for it.
Update the documentation to point point at running the dotnet watch task.


Fix last line about string about output

It should render "Kemal cool = true" and not  "Kemal is cool"

Ah, nice catch 👍

Thanks for the great work and creating Kemal ;-)


Fallback forward with path variable

fixes #1271
Adds possibility to pass path variable from original route to fallback uri.
It is a possible solution to the issue #1271

Have you tried accessing the parameters via ServerWebExchange.getRequest().getQueryParams()?

Have you tried accessing the parameters via ServerWebExchange.getRequest().getQueryParams()?

Not yet. But I can try.
The problem that I have here is that I have a dynamic URI, like:
/service-one/{id_resource}/details
When this endpoint fails, I want to redirect to fallback using the same path variable:
/service-two/{id_resource}/details
But today I just can redirect to static fallback uri.
Make sense ?

right, those are in a request attribute. I just have to find the name, basically, it's just a map.

Have you tried accessing the parameters via ServerWebExchange.getRequest().getQueryParams()?

I tried to replace exchange.getAttributeOrDefault(URI_TEMPLATE_VARIABLES_ATTRIBUTE, Collections.emptyMap()) by exchange.getRequest().getQueryParams(), but queryParam is empty.

Sorry, getQueryParams() was wrong. Everything should be in URI_TEMPLATE_VARIABLES_ATTRIBUTE isn't it?

Sorry, getQueryParams() was wrong. Everything should be in URI_TEMPLATE_VARIABLES_ATTRIBUTE isn't it?

Yes, everything is in it. I'm getting a map using this constant
This way I can build a fallbackUri with pathVariables and it worked well.
Right now I`m just concerned about compatibility, do you see anyway to improve the code ?

I guess I'm asking why you can't use that in the fallback instead of this PR.

I guess I'm asking why you can't use that in the fallback instead of this PR.

Oh sorry, now I understood. I will try! And send a feedback.
I think it will work, but I need to customize a controller in gateway.
With this PR it would be possible through routes config.

@spencergibb  the way I found to solve was creating a custom filter. I made a example in this repo: https://github.com/brunogs/fallback
This works but could be easier.


Add typosquatting check

Add a list of typosquatting packages. Here is a list: https://blog.phylum.io/phylum-discovers-revived-crypto-wallet-address-replacement-attack

Tracking: https://anaconda.atlassian.net/browse/PAT-181


Permalink ending by a slash

I notice that all permalinks ends with a slash.
I can delete them manually and can probably add a hook for that but does a better workaround exist to have permalinks without a slash at the end ?
Thank's :)

@kiuKisas This is enforced by design because of the SSG nature of Elder.js. All paths are actually foo/index.html and by enforcing consistency it keeps people from shooting themselves in the foot SEO wise.
I'm open to different opinions here.
See wrapPermalinkFn.ts

Seems fair, I'll stay with an helpers as I don't think editing the code for that worth it

It would be nice to document this behavior. I was expecting elderjs mapping /foo to /foo.html and /foo/ to /foo/index.html.
It should also throw an error if route.permalink doesn't end with a slash.

wrapPermalinkFn.ts:
      if (permalink.slice(-1) !== '/') {
        if (settings.debug.automagic) {
          console.warn(
            `The permalink function for route "${routeName}" does not return a string with a ending slash. One has been added. To disable this warning, fix the function's return value to include a ending slash.`,
          );
        }
        permalink = `${permalink}/`;
      }

@eight04 it is behind a flag.
We could totally make it a warning.


Fix config in SDK

I've made an issue to extend interpolator with NonEmptyStrings.
On Mon 13. Nov 2023 at 11:18, Michał Pałka @.***> wrote:

@.**** commented on this pull request.
In core/src/main/scala/besom/util/NonEmptyString.scala
https://github.com/VirtusLab/besom/pull/287#discussion_r1390911785:

opaque type NonEmptyString <: String = String

object NonEmptyString:
def apply(s: String): Option[NonEmptyString] =
if s.isBlank then None else Some(s)

given nonEmptyStringOps: {} with
extension (nes: NonEmptyString)

 inline def +++(other: String): NonEmptyString = nes + other

concat? The point is that this should be just like ++ for normal strings
but because of subtyping it doesn't seem possible to reuse ++
—
Reply to this email directly, view it on GitHub
https://github.com/VirtusLab/besom/pull/287#discussion_r1390911785, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACBVNUXZ7FJ7PCQEBZ3EKD3YEHXWFAVCNFSM6AAAAAA7GNVXD2VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTOMRXGAYDCNZTG4
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


An asynchronous call is already in progress

SMTP it's not implemented properly probably. I cannot send two messages simultaneously.
 Unexpected Server Exception:
System.InvalidOperationException: An asynchronous call is already in progress. It must be completed or canceled before you can call this method.
   at System.Net.Mail.SmtpClient.SendAsync(MailMessage message, Object userToken)
   at FluentEmail.Smtp.SendMailEx.SendMailExImplAsync(SmtpClient client, MailMessage message, CancellationToken token)
   at FluentEmail.Smtp.SmtpSender.SendAsync(IFluentEmail email, Nullable`1 token)
   at FluentEmail.Core.Email.SendAsync(Nullable`1 token)

Take a look here: https://stackoverflow.com/questions/50036795/getting-error-while-sending-bulk-email-an-asynchronous-call-is-already-in-progr

I'm with the same issue here

@rafalschmidt97 may you need to use IFluentEmailFactory instead of IFluentEmail, so you can do something like this:
foreach(mail in mails){
await _emailFactory.Create().To(mail.destination)
                        .Subject(mail.subject)
                        .Body(mail.message)
                        .SendAsync()
}

I had the same issue with an API endpoint that sends out emails using smtp sender.  If it gets called while while it's still processing the first request this happens. Ended up redesigning the way the endpoint is triggered by the client.

The problem is the SMTP client, which (as mentioned above) cannot handle more than one mail at the time. So you need to tell FluentEmail how to get the next SmtpClient instance when needed:
serviceCollection.AddSingleton<FluentEmail.Core.Interfaces.ISender>(x =>
{
    return new FluentEmail.Smtp.SmtpSender(new Func<SmtpClient>(() =>
    {
        var client = new SmtpClient("SMTP server", 25);
        client.SendCompleted += delegate (object sender, System.ComponentModel.AsyncCompletedEventArgs e)
        {
            if (e.Error != null)
                System.Diagnostics.Trace.TraceError($"Error sending email: {e.Error.Message}");
            if (sender is SmtpClient)
                (sender as SmtpClient).Dispose();
        };
        return client;
    }));
});

SmtpSender controls how to create the next SmtpClient and by injecting your own instance then you can decide what should happen.

I have found the cause of the issue to be the SmtpClient is reused throughout the entire lifetime of the application. A fix can be made in applications without pulling my patch by explicitly using the function version of AddSmtpSender. For example AddSmtpSender(() => new SmtpSender("smtp.example.com", 25) instead of AddSmtpSender("smtp.example.com", 25).

This solution caused me to have another problem.
The smtpclient gets disposed.
I use emailfactory to create my mails and to send them.
I also send mails whenever an error occurs.
When the first mails gets send and later on in the code an error occurs, i get the message that the smtpclient is disposed when trying to send an errorMail

This solution caused me to have another problem.
The smtpclient gets disposed.
I use emailfactory to create my mails and to send them.
I also send mails whenever an error occurs.
When the first mails gets send and later on in the code an error occurs, i get the message that the smtpclient is disposed when trying to send an errorMail

What solution cause problems?

For example AddSmtpSender(() => new SmtpClient("smtp.example.com", 25)) instead of AddSmtpSender("smtp.example.com", 25).

I already fixed this now.
I configured a smtpclient before adding it to the AddSmtpSender function
I fixed my error by configuring the smtpclient in the AddSmtpSender function


all your java project can not run for gradle

as mentioned in topic,the project can not run ,may you fix it?
Could not get unknown property 'artifactory_username' for Credentials [username: null] of type org.gradle.internal.credentials.DefaultPasswordCredentials_Decorated.

Thank you for the feedback.  We have updated the Readme under the Installation section to let you and other developers know how to remove the Artifactory configurations that are causing the build errors you are seeing.  Please go to the build.gradle files at the project and module levels and follow the instructions in the added comments.  They show you which lines to delete if you are not using Artifactory.  Please let us know if you find any other issues and thank you for your contributions.

Thank you for the feedback. We have updated the Readme under the Installation section to let you and other developers know how to remove the Artifactory configurations that are causing the build errors you are seeing. Please go to the build.gradle files at the project and module levels and follow the instructions in the added comments. They show you which lines to delete if you are not using Artifactory. Please let us know if you find any other issues and thank you for your contributions.

it works ,thanks for help..


Dependency conflict Sylius/Sylius and Sylius/PayPalPlugin on Sylius-Standard

https://github.com/Sylius/PayPalPlugin/blob/master/composer.json#L46
Long story short latest Sylius-Sylius 1.12 had changed some code to work with the newest doctrine orm and dbal packages. Like that:

https://github.com/Sylius/Sylius/commit/431169f1c3c64bdb4408922b18e439cb7be8610a

Yet due to the dependencies matrix and using Sylius/PayPalPlugin on the Sylius-Standard template the pipelines are DEAD 💀. The reason is that the matrix composer installs doctrine/orm version 2.9 which does not have the getObjectManager method.
Error:  Migration Sylius\Bundle\CoreBundle\Migrations\Version20161209095131 failed during Execution. Error: "Call to undefined method Doctrine\ORM\Event\OnFlushEventArgs::getObjectManager()"
In ImagesRemoveListener.php line 40:

  [Symfony\Component\ErrorHandler\Error\UndefinedMethodError]
  Attempted to call an undefined method named "getObjectManager" of class "Do
  ctrine\ORM\Event\OnFlushEventArgs".

Problem 1
    - Root composer.json requires doctrine/orm ^2.13 -> satisfiable by doctrine/orm[2.13.0, 2.13.1].
    - sylius/paypal-plugin v1.4.0 conflicts with doctrine/orm 2.13.1.
    - sylius/paypal-plugin is locked to version v1.4.0 and an update of this package was not requested.

I believe it's already fixed 🖖 Thank you, @Ferror!


I just wanted to say that. Your work is very valuable.

THE BEST..!!! This is plain and simple, no composer BS, straight forward and simple . Thank you very much.

Exactly, I also just discovered this package and I really like it
This is what I wanted all along, a simple XLSX generator, just throw in arrays, and boom, you're done.
Just like spatie's array-to-xml

Awesome work @shuchkin - thank you so much


Calling signInWithProvider does not trigger onAuthStateChange

@Shiba-Kar Thank you for opening this issue. We will investigate this issue and get back to you on this thread as soon as we can, but the team is a bit busy with Supabase launch week, so it might take some time and I apologize in advance for it.

@dshukertjr @bdlukaa  Any progress as I was trying to use signInWithProvider since a month but once redirecting back to the app the session is null.

@dshukertjr https://github.com/supabase-community/supabase-flutter/blob/main/lib/src/supabase_auth.dart#L155-L173
After investigating a little the issue, I believe the call should happen on the deep-link handling.

I think this issue can be closed. Please open a new one if you still encounter this.


WebDriver BiDi clients implement cross-browser e2e scenario: print to PDF

Cross-browser e2e scenario of navigating + printing the page to PDF.
Includes:

[ ] WebDriver BiDi specification.
[ ] WPT tests.
[ ] Implementations in Chromium passing the WPT tests.
[ ] Implementations in Firefox passing the WPT tests.
[ ] Implementations in Safari passing the WPT tests.
[ ] Support in Puppeteer.

closed in favor of https://github.com/GoogleChromeLabs/chromium-bidi/milestone/5


bcbio/variation/validate.py error

I ran into the following error using different installations and files:
File "/software/bcbio/anaconda/lib/python2.7/site-packages/bcbio/variation/validate.py", line 294, in _pick_best_quality_score
if rec.info.get("VQSLOD") is not None:
File "pysam/libcbcf.pyx", line 2642, in pysam.libcbcf.VariantRecordInfo.get (pysam/libcbcf.c:40036)
ValueError: Invalid header
I ran into this error using both the stable and development branch. The easiest way to reproduce it is using the test scripts run_tests.sh. It occurs when processing tests/data/automated/run_info-variantcall.yaml. See the attached log snipet for details.
log_snipet.txt

Guus;
Thanks much for the report and apologies about the issue. The latest release of pysam looks to be stricter about testing retrieval of INFO field values from a VCF when they're not present in the header. I pushed a fix to avoid the problem, so if you update to the latest development it should work cleanly again. Thank you again for reporting this and let us know if you run into any other issues.

if you update to the latest development it should work cleanly again

While CNVkit was updated, it didn't bring in the needed commit. I ended up patching it manually.

Luca -- thanks for following up. Apologies, I pushed the fix to CNVkit as well but have not yet updated the bioconda package. I'm working on that and once it's in place both places should work cleanly. If you're stuck before that happens an alternative approach is to temporarily downgrade pysam:
bcbio_conda install -c conda-forge -c bioconda pysam=0.11.1

Sorry again about the issue and hope this helps.

This error also occurs during runs with the exome_with_validation and cancer_tumor_normal sample test runs. Downgrade of pysam as described above solved the issue.
Thanks!

This should be fixed in the latest version of CNVkit from bioconda so an alternative fix is to do:
bcbio_conda install -c conda-forge -c bioconda cnvkit

Either will work to clean up a problem pysam/cnvkit install. Thanks much for following up.


Styles on ng-sidebar not working

I am newbie to Angular2. Could you help me with below issue.
Stylings marked via the class mentioned as sidebarClass isn't getting applied.

I'm not entirely sure what your screenshot is supposed to show, but #20 might help.

I downloaded the demo code and tried running it. When I did that, styles specified via sidebarClass, demo-sidebar, was not getting applied. Screenshot was to showcase style-less sidebar.
Using /deep/ on the aside element of ng-sidebar worked for me.

That's weird. What browser are you using?

I am using Chrome

That's really weird, it works perfectly fine in Chrome for me. I'll close this anyway since I'm not entirely sure what's wrong but feel free to reopen it if as needed.


Doesn't work in test files with go 1.8 beta

Please see https://github.com/golang/go/issues/18153.
Only go test is affected.

You're right. You have to explicitly set color.NoColor = false so that it works. I've made a comment there: https://github.com/golang/go/issues/18153#issuecomment-264388969 I'm not sure what the underlying change is. I want to first understand it before I try to fix it here or if it's an issue at https://github.com/mattn/go-isatty (@mattn)

This is now fixed in go tip. Thanks @blitzprog for the feedback again.


docker: Add gfortran support

Add gfortran support for all docker except target of *-none* and *-andriod*.
Close #1457

/ci try

/ci try
lets try again!

/ci try

Is any idea about why aarch64-linux-android failed? It seems that it just need more time to finish the build.

As libc/3618 has beed merged, let's try again @Emilgardis

/ci try

It doesn't seem to be my fault. Should we try again? Or could we merge it?

timeout again. Could we adjust the settings of action?

it should already be maxed out: https://github.com/cross-rs/cross/actions/runs/8907127039/workflow#L188 however I rememember something about it not applying like you would expect. Lets just try again


Add public method to RadzenTabs to enable setting selected tab

Is your feature request related to a problem? Please describe.
I want to be able to programmatically set which RadzenTab is selected
Describe the solution you'd like
A public method like _tabsRef.SetSelectedIndex(0); that would only do work changing the selected tab if it wasnt already the passed in value.
Describe alternatives you've considered
currently Im workign around this by doing:
            _tabs.SelectedIndex = 1;
            await _tabs.SetParametersAsync(ParameterView.FromDictionary(new Dictionary<string, object?>()
            {
                {"SelectedIndex", 0}
            }));

This forces the behavior I want but its pretty ugly and I might be forcing it to happen when index 0 is already the selected tab. As I have to set the parameter to 1, before calling SetPArametersAsync passing in the desired 0 value.

Have you tried using the SelectedIndex parameter instead?
<RadzenTabs @bind-SelectedIndex=@selectedIndex>

I just tried that and it has no effect, setting SelectedIndex seems to work when initializing only, Im responding to a user action and want to set the SelectedIndex after the component was initialized and rendered long ago. my work around is to:
_tabs.SelectedIndex = 1;
await _tabs.SetParametersAsync(ParameterView.FromDictionary(new Dictionary<string, object?>()
            {
                {"SelectedIndex", 0}
            }));

as i want it to reset to 0 but the SetParametersAsync method requires the value to actually be different:
public override async Task SetParametersAsync(ParameterView parameters)
    {
      if (parameters.DidParameterChange<int>("SelectedIndex", this.SelectedIndex))
        this.selectedIndex = parameters.GetValueOrDefault<int>("SelectedIndex");
      await base.SetParametersAsync(parameters);
    }

which is why I manually set it to 1 before calling SetParametersAsync with the desired 0 value.

Setting the SelectedIndex seems to work just fine. Not sure why it isn't working for you.

Can you provide a simple reproduction where setting SelectedIndex doesn't work?

interesting, let me try again

the two way binding does work, i was setting it on the wrong element in haste.


tar.gz release does not contain LICENSE

Description of issue or feature request:
Release tarballs (like tuf-0.14.0.tar.gz) do not contain a LICENSE file
This prevents vendoring tuf using the vendoring tool: I could patch the license in but unfortunately the license file check is done on unpatched sources
python3 setup.py sdist produces a tarball with the LICENSE file (and many other files that are not in our release tarball) -- what's this about?

Wow. python2 setup.py sdist and python3 setup.py sdist produce radically different results :open_mouth: I guess the 'universal' in universal wheels only refers to target python...
I have no idea why but setuptools3 seems to include all files in project root directory -- this seems to not be documented. The documentation says we should add files into MANIFEST.in if we want to distribute but not install (which seems to be what most projects do with LICENSE files).

Yikes. I thought I had produced the last two release tarballs with Python 3's setuptools3...
We should update the docs/RELEASE.md to strongly recommend using python3 and add LICENSE to MANIFEST.in.
I can make those changes today.

I think at least being explicit in MANIFEST.in makes sense.
I don't think I understand how these different results happen yet: distutils is the one that actually does the sdist building and I can't see anything in the dosc (https://docs.python.org/3/distutils/sourcedist.html#specifying-the-files-to-distribute) or the code that would imply that what I saw with python3 is intentional: no mention of including all files in root by default as an example.

Documenting for posterity: the differences between py3 and py2 were the results of having setuptools_csm installed: that will by default add all files from git.
The original issue tar.gz release does not contain LICENSE is still valid.


Add a key argument to DataSources.set_domain_result_file_path()

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

Project coverage is 87.84%.  Consider uploading reports for the commit 321b92d to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1445   +/-   ##
=======================================
  Coverage   87.84%   87.84%
=======================================
  Files          81       81
  Lines        9550     9546    -4
=======================================
- Hits         8389     8386    -3
+ Misses       1161     1160    -1