tools/test-backend --help should display how to run a single test

This is complementary to #1070.

Hi @timabbott, I think it's a good starter project for me. If no one is working on it, shall I start working on it?

Go for it @aakash-cr7!  https://github.com/zulip/zulip/blob/master/README.dev.md#running-the-test-suite has some partial details on how you can run it; you can also do e.g. test-backend zerver.tests.test_hooks to run a test file or ./tools/test-backend zerver.tests.test_bugdown.BugdownTest to run a test class.

@timabbott Thanks for letting me work on this! I have read the README.dev.md. As you mentioned, we can use  ./tools/test-backend zerver.tests.test_bugdown.BugdownTest to run a test class.
Currently ./tools/test-backend --help displays the options:

Could you please explain exactly how do you want me to display "how to run single tests"?

Yep, see: https://docs.python.org/2/library/optparse.html#generating-help
(basically pass the usage argument to optparse.OptionParser)

Thanks for pointing that out @timabbott. I have made some changes. ./tools/test-backend --help gives the following information along with command to run a single test.

What do you think?  Am I in the right direction? Should I also add node tests and casper tests e.g. and command?

I would probably use more newlines in your examples, and keep in mind this uses .s not /s, e.g.:
Usage: test-backend [options]
    test-backend # Runs all backend tests
    test-backend zerver.tests.test_bugdown # run all tests in a test module
    test-backend zerver.tests.test_bugdown.BugdownTest # run all tests in a test class
    test-backend zerver.tests.test_bugdown.BugDownTest.test_inline_youtube # run a single test

Adding similar help text to the node and casper suites would be great too (well, the Node one doesn't even support running a single test right now, so changing that would be part of the project I suppose).
Would do one commit for each so we can merge each one as it's ready

I have made the changes according to your suggestions.
So now the ./tools/test-backend --help works like this:

./tools/test-js-with-casper --help works like this:

How does it look @timabbott ? Since Node doesn't support running a single test, do we need to mention that in the node suite?

It's better to post textual output rather than screenshots because some people (like me) have a bad internet connection and sometimes images don't load inline. To post output properly, you can use fenced code blocks - https://help.github.com/articles/creating-and-highlighting-code-blocks/#fenced-code-blocks

The backend tests one looks great.  The casper one I think should be formatted more similarly to the backend one; the content seems fine.  For test-js-with-node, I think ultimately we'll want to add support for running a single test (opened https://github.com/zulip/zulip/issues/1127 for this) and we can consider documenting that to be part of that issue.
I agree with @sharmaeklavya2's comments that it'd be better to use fenced code blocks for displaying sample terminal output.

Great! I will format the casper options and open a PR.
@sharmaeklavya2 point noted! I will use fenced code blocks for sample output.

Fix merged in #1130.


support datagrip show database information

Proposed changes
Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue.
Fix #4331
Types of changes
What types of changes does your code introduce to Doris?
Put an x in the boxes that apply

[] Bugfix (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)
[] Documentation Update (if none of the other choices apply)
[] Code refactor (Modify the code structure, format the code, etc...)

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[x] I have create an issue on (Fix #ISSUE), and have described the bug/feature there in detail
[x] Compiling and unit tests pass locally with my changes
[] I have added tests that prove my fix is effective or that my feature works
[] If this change need a document change, I have updated the document
[] Any dependent changes have been merged

Further comments
后面有可能支持到表也能列出来。

You could add a UT in SelectStmtTest.

You could add a UT in SelectStmtTest.

好的，我后面看看UT怎么加。


Fix warnings in python scripts.

See title.
Also enabled Flake8 to exit non-zero if there are warnings, seems like there is no harm to that right now. We can always disable that again if it really gets in the way.

Codecov Report

Merging #3874 into master will decrease coverage by 4.78%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3874      +/-   ##
==========================================
- Coverage   75.56%   70.78%   -4.79%
==========================================
  Files         145      145
  Lines        6896     6896
  Branches      426      426
==========================================
- Hits         5211     4881     -330
- Misses       1685     2015     +330

Impacted Files
Coverage Δ

...core/database/cosmosdb/RxObservableImplicits.scala
0% <0%> (-100%)
:arrow_down:

...core/database/cosmosdb/CosmosDBArtifactStore.scala
0% <0%> (-95.08%)
:arrow_down:

...sk/core/database/cosmosdb/CosmosDBViewMapper.scala
0% <0%> (-92.6%)
:arrow_down:

...whisk/core/database/cosmosdb/CosmosDBSupport.scala
0% <0%> (-81.82%)
:arrow_down:

...abase/cosmosdb/CosmosDBArtifactStoreProvider.scala
0% <0%> (-58.83%)
:arrow_down:

...la/whisk/core/database/cosmosdb/CosmosDBUtil.scala
92% <0%> (-4%)
:arrow_down:

Continue to review full report at Codecov.

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


Figure out how to bind gunicorn to url

This is the same issue described in #20. Please see that issue.


onErrorRetry not triggered after tab blur+focus with useSWRImmutable

Bug report
Description / Observed Behavior
useSWRImmutable stops retrying errored requests if you switch to a different browser tab then go back to the application.
This happens using the default onErrorRetry as well as a custom one.
Expected Behavior
Like useSWR, useSWRImmutable should keep retrying until the request ends successfully.
Of course, once the first successful request is finished useSWRImmutable should never run again, unlike useSWR.
Repro Steps / Code Example
https://codesandbox.io/s/useswrimmutable-onerrorretry-bug-89n0de
Additional Context
SWR version 2.1.2

This also happens using useSWR when revalidateOnFocus is set to false

I encountered this today.
Tried to resolve this issue in swrimmutable.
I am pretty sure there is some issue in middleware an in the way we are using mergeobjects helper func as even if i set the  values of revalidate keys to true in index.ts of swrimmutable, even then also the keys are coming as false in final config. And it's not revalidating on focus.
I'll debug more😅

I encountered this.
I tried to debug it.
When it comes to softrevalidate on focus and reconnecting. we check these conditions
on focus - if (  getConfig().revalidateOnFocus &&   now > nextFocusRevalidatedAt &&  isActive()  )
and on reconnect -  if (  getConfig().revalidateOnReconnect &&  isActive()  )
But, in the case of swrimmutable we don't want to revalidate the data but what if API fails and we have to run errorOnRetry. then we have to revalidate and there comes executing softRevalidate.
I think we should also add a condition checking getConfig().shouldRetryOnError
any thoughts @promer94


sort: Rework merge batching logic

Fixes #6944
Rework the way batching is done with sort such that it doesn't open more input files than necessary. Previously, the code would always open one extra input file which causes problems in ulimit scenarios. Add additional test case.

Cool
seems that some jobs are failing

I fixed the windows compilation issue hopefully (I don't have a Windows setup to test on though), but the cargo deny advisory failure is a mystery to me.
I see the cargo deny issue when I checkout the mainline too so I don't think that's an issue with my changes - if anyone has some insight into that then please let me know!

Any idea why it doesn't fix the GNU tests about this ?
thanks
2024-12-15T08:38:54.0704735Z FAIL: tests/sort/sort-merge-fdlimit
2024-12-15T08:38:54.0704803Z ===================================
2024-12-15T08:38:54.0704807Z
2024-12-15T08:38:54.0704869Z 11
2024-12-15T08:38:54.0704931Z 1
2024-12-15T08:38:54.0704995Z 6
2024-12-15T08:38:54.0705053Z 3
2024-12-15T08:38:54.0705160Z 12
2024-12-15T08:38:54.0705269Z 13
2024-12-15T08:38:54.0705384Z 17
2024-12-15T08:38:54.0705504Z 4
2024-12-15T08:38:54.0705626Z 5
2024-12-15T08:38:54.0705781Z 14
2024-12-15T08:38:54.0705892Z 15
2024-12-15T08:38:54.0706004Z 8
2024-12-15T08:38:54.0706121Z 16
2024-12-15T08:38:54.0706280Z 10
2024-12-15T08:38:54.0706397Z 7
2024-12-15T08:38:54.0706522Z 9
2024-12-15T08:38:54.0706631Z 2
2024-12-15T08:38:54.0706893Z sort: failed to open temporary file: Too many open files
2024-12-15T08:38:54.0707133Z FAIL tests/sort/sort-merge-fdlimit.sh (exit status: 1)

Unfortunately there are several issues that need to be fixed before sort-merge-fdlimit will pass - there are several places in the code that aren't optimal in their use of file-descriptors.
I've written a new test case as part of this PR to demonstrate the issue that this PR fixes - the test case would previously fail but now passes.
What's the best way for me to proceed with fixing these issues? I can understand that on one hand it would be nice to have a single PR that can fix the sort-merge-fdlimit test (i.e. this would confirm that my changes are legit and not a waste of time). On the other hand, if there are several distinct issues then the fixes will be easier to code-review as separate PRs.
Let me know how you want me to queue this stuff up :+1:


Generate signals by fixed_node macro

Let's implement this feature according to the new specification (signal sources) once it's stabilized. Signals table is not crucial for functionality as its purpose is mostly informational.


add support for Instagram

I'd like to add Instagram to your list of supported providers.

@paullang Noob question, but how do you generate/compile the other files from the instagram.ts file? I"m trying to add in Linkedin and not sure where to start modifying files...

@7200rpm in the package.json the package.json in this repo you can see what build scripts are configured to run via npm.  So you can use the following if you add or modify *.ts files.
npm run tsc
If you just want to use my instagram provider as-is while waiting for @nraboy to merge this PR and publish to the NPM registry, then you can add the following to your application's package.json so that that npm CLI will download mine from github instead of the official one from NPM.
"dependencies": {
"ng2-cordova-oauth": "paullang/ng2-cordova-oauth#instagram"
}
If you are concerned about me deleting my repo, then you can fork my repo and reference your own
"dependencies": {
"ng2-cordova-oauth": "7200rpm/ng2-cordova-oauth#instagram"
}
BTW, I'm considering switching to Auth0 for my own project
http://blog.ionic.io/ionic-2-and-auth0/

Hey for whatever reason GitHub didn't notify me about this PR.  I'm going to look at it today and get it merged.
Best,

Thank you for contributing!


Updates for Deno 2

In prep for tackling #78, I have updated dependencies and also needed to handle a type assertion case because of how Typescript in Deno 2 handles error parameters in a try ... catch statement. This pull should bring everything up-to-date for running in Deno v2.
Hopefully nothing vastly breaking here but thought it best to open a seperate pull for these changes as they don't relate to #78.

Thank you!

I don't believe this pull introduced any breaking changes, but while updating things I did notice that dnt fails to build the npm package with the following error:
$ deno task build-npm 1.12.11
Task build-npm deno run --allow-run=npm --allow-env --allow-sys --allow-read --allow-write --allow-net=jsr.io _scripts/build_npm.ts "1.12.11"
[dnt] Transforming...
[dnt] Running npm install...

added 10 packages, and audited 11 packages in 2s

found 0 vulnerabilities
[dnt] Building project...
[dnt] Type checking ESM...
src/deps.ts:7:30 - error TS6137: Cannot import type declaration files. Consider importing 'estree' instead of '@types/estree'.

7 export type * as ESTree from "@types/estree";
                               ~~~~~~~~~~~~~~~

error: Uncaught (in promise) Error: Had 1 diagnostics.
          throw new Error(`Had ${diagnostics.length} diagnostics.`);
                ^
    at getProgramAndMaybeTypeCheck (https://jsr.io/@deno/dnt/0.41.3/mod.ts:468:17)
    at build (https://jsr.io/@deno/dnt/0.41.3/mod.ts:354:17)
    at eventLoopTick (ext:core/01_core.js:175:7)
    at async file:///[...]/vento/_scripts/build_npm.ts:12:1

I tried downgrading back to Deno 1.46.3 and got the same thing so it's definitely not a Deno 2 issue. For additional context, _npm/src/deps.ts has this content:
export * as path from<EMAIL_ADDRESS>export * as html from<EMAIL_ADDRESS>
export * as astring from<EMAIL_ADDRESS>export * as meriyah from "meriyah";
export * as walker from "estree-walker";
export type * as ESTree from "@types/estree"; // appears this is the source of the error

Looks like a bug in DNT package. Downgrading it to 0.41.2 works fine. But 0.41.3 fails.


[Bug]:

What happened?
Erro na instalação
How to reproduce the bug
Quando tento instalar recebo esse erro:
Problem 1
- Root composer.json requires leandrocfe/filament-ptbr-form-fields * -> satisfiable by leandrocfe/filament-ptbr-form-fields[dev-master, dev-develop, 0.1.0, 9999999-dev].
- leandrocfe/filament-ptbr-form-fields[dev-master, dev-develop, 0.1.0] require illuminate/contracts ^10.0 -> found illuminate/contracts[v10.0.0, ..., 10.x-dev] but these were not loaded, likely because it conflicts with another require.
You can also try re-running composer require with an explicit version constraint, e.g. "composer require leandrocfe/filament-ptbr-form-fields:*" to figure out if any version is installable, or "composer require leandrocfe/filament-ptbr-form-fields:^2.1" if you know which you need.
Package Version
2.17.36
PHP Version
8.1.17
Laravel Version
9.19
Which operating systems does with happen with?
No response
Notes
No response

composer update?

É necessário o laravel 10


Installation break

Hello,
I'm using react-native 0.41.2, and I have this problem, even If I entirely import the component in my src dir :
Does anyone know where the problem is from ?
Thanks

Ok I delete Prop-types options, and it works

@hugohow : Can you explain your solution a little more please because i'm facing the same issue. Thanks !


The MEDS v0.3 configuration interface being pursued in #55 is poor

In particular, there is functionally no dependence on MEDS_cohort_dir in the later stages other than to infer other directories. Given that not all stages have the same interface, this duplicated parameter should be removed.

I think we can close this issue since we updated to using:

input_dir instead of MEDS_cohort_dir
output_tabularized_dir for the generated tabularized data.

See the config for tabularization here.


Error when building plugin

Hi,
I made some changes on the plugin and I'm facing the following error when trying to build the plugin for Kibana 7.10.2 version:
ERROR in /../elk/7.10.2/kibana/plugins/enhanced_table/kibana.json
│          Bundle for [enhancedTable] lists [kibanaUtils, share, charts, visDefaultEditor] as a required bundle, but does not use it. Please remove it.
When I remove these bundles from kibana.json file, I'm able to build the plugin correctly. However, Kibana shows the following error as the bundles were excluded:
ERROR in ./public/data_load/kibana_cloned_code/courier.ts
│          Module not found: Error: import [../../../../../src/plugins/kibana_utils/public] references a public export of the [kibanaUtils] bundle, but that bundle is not in the "requiredPlugins" or "requiredBundles" list in the plugin manifest [/../elk/7.10.2/kibana/plugins/enhanced_table/kibana.json]
│           @ ./public/data_load/kibana_cloned_code/courier.ts 3:0-85 80:20-39 141:26-45
│           @ ./public/data_load/enhanced-table-request-handler.js
│           @ ./public/enhanced-table-vis.js
│           @ ./public/plugin.ts
│           @ ./public/index.ts
│           @ /Users/hamza/Desktop/work/elk/7.10.2/kibana/packages/kbn-optimizer/target/worker/entry_point_creator.js
Could you tell me how you were able to build your packages?
Regards

I was able to build my plugin package without errors by following your steps. However, when trying to install the plugin, I have this error:
Plugin installation was unsuccessful due to error "No kibana plugins found in archive"
Did you face the same error?
Also when I compare the content of your release (enhanced-table-1.11.0_7.10.2.zip) and what I packaged (my-enhanced-table), these differences are noticed:
Only in kibana/my-enhanced-table/: server Only in tmp/kibana/enhanced-table/: target Only in kibana/my-enhanced-table/: translations Only in kibana/my-enhanced-table/: yarn.lock

Finally I was able to build correctly my plugin with kibana 7.10.2. I made the following steps to do so:

Changed package.json by replacing/adding these 2 lignes:
...
"build": "yarn plugin-helpers build",
"plugin-helpers": "node ../../scripts/plugin_helpers",
...

Removed from kibana.json the following lines:
...
 "requiredBundles": [
       "kibanaUtils",
       "kibanaReact",
       "share",
       "charts"
]
...

executed yarn build

`

Thanks for the share! very interesting to know.
Happy to see it finally works.
that said, I’m surprised to see yarn plugin-helpers build.
Do you have a global plugin-helpers installed?

No, it's a shorcut to  ../../scripts/plugin_helpers. In other words, I have a line in my package.json as follow:
"plugin-helpers": "node ../../scripts/plugin_helpers",
Just to complete the "solution" described in my previous post: the lines    "requiredBundles": [ 	"kibanaUtils",        "share",        "charts",        "visDefaultEditor" ] must be added in dev mode and removed before to lunch yarn build. Otherwise, Kibana will not start properly without these lines in dev mode.

Oups, indeed.
I misread your previous comment.
Thanks again for sharing your feedback.
If I have to do breaking changes with Kibana v7.11, I will create a branch and apply what you did.

That said, the change you have to do in package.json between dev mode and build mode is quite sad. All configuration should be on git, and so, be the same, whatever your action.
I think that it would be nice to open an issue about that on Kibana's repository. Could you do this?

Given that there is no feedback since more than one year, I close the issue.


Saving lyrics doesn't work for audio files from network shares

I access my audio file from a NAS via a Windows network share (eg. \\nas01\Multimedia\Audio....).
The lyrics are shown in the panel but not being saved neither to the album's directory nor as tags.
If I choose some local directory, everything works as expected.

I can confirm the exact same symptoms here. This occurs when the save directory is set to "Save to the same directory as the track" (NB: not the default setting).
When the save directory is set to "Save to the configuration directory" (the default), lyrics are successfully saved locally (in my case, to "%appdata%\foobar2000\lyrics").
To try and track down the problem I turned on "Debug logging enabled", but cannot locate where this log is saved. Can you tell me where it is?
Environment:

foobar2000 1.6.11
Windows 10 Enterprise 21H2
foobar2000 library on NAS being accessed via SMB3 share, the user account has read/write permission

Thank you. The relevant debug lines are as follows:
INFO-OpenLyrics: Saving lyrics to a local file...
INFO-OpenLyrics: Save file name format '[%tracknumber%] [%title%]' with directory class 'TrackFileDirectory' evaluated to 'file://\\homenas01\music\The Psychedelic Furs\Mirror Moves\01 The Ghost In You'
ERROR-OpenLyrics: Failed to save lyrics to Local files: Invalid path syntax

fyi this is fixed for v1.3 (the next release) but until that's released, the following workaround should get it working:
Map the network share as a network drive (so that Windows assigns it a drive letter) and then add the mapped drive path to your library (instead of the network share path, the one starting with "\...").


fix: Status – remove redundant privatePersonalDetails dependencies

Details
This fixed the infinite loader on the SetTime page of the custom Status.
Fixed Issues
$ https://github.com/Expensify/App/issues/33369
PROPOSAL: https://github.com/Expensify/App/issues/33369#issuecomment-1864877043
Tests
Same as QA
Offline tests
Same as QA
QA Steps

Go offline
Go to Settings > Profile > Status
Click "Clear after"
Click Custom
Click Time

[ ] Verify the Time Picker is loaded successfully

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/12595293/d5c7d6b6-c3a2-43e0-8c64-201c232a97f1

Android: mWeb Chrome
https://github.com/Expensify/App/assets/12595293/48f53c92-c1e6-4623-a3b6-fdc497afc87e

iOS: Native
https://github.com/Expensify/App/assets/12595293/30cf2247-c11e-4b23-b061-94e8724f7ea2

iOS: mWeb Safari
https://github.com/Expensify/App/assets/12595293/233ceec8-5c50-4d18-9d5c-36b84cac529e

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/12595293/e3824a46-6941-4032-89c4-f1b5920dbeda

MacOS: Desktop
https://github.com/Expensify/App/assets/12595293/13a0bd35-8626-401a-bf86-f4dd4630cbc0

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/28352309/fa8b2d93-e840-4ae0-bf54-e6c32f75ee0e

Mobile Web - Chrome
https://github.com/Expensify/App/assets/28352309/e1a2fe91-c50d-423c-8f31-632e4b229e97

Mobile Web - Safari
https://github.com/Expensify/App/assets/28352309/efccd570-4381-4a78-91ee-d28bb792278b

Desktop
https://github.com/Expensify/App/assets/28352309/a42eae04-5b9e-404c-8155-03f032a7ed0d

iOS
https://github.com/Expensify/App/assets/28352309/c389d08d-d1c3-4fec-8a1d-478dcf0c4b0d

Android
https://github.com/Expensify/App/assets/28352309/75d4dfa1-333b-4514-8380-15f19fbb84cf

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/blimpich in version: 1.4.17-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
cancelled 🔪

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/mountiny in version: 1.4.17-8 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


update the docstring of diff

As per #1040, don't document the dim parameter of Dataset.diff and DataArray.diff as optional.

[x] Fixes #1040
[ ] Tests added
[x] Passes isort -rc . && black . && mypy . && flake8
[x] Fully documented, including whats-new.rst for all changes and api.rst for new API

LGTM, thanks @keewis

Thanks, I'll merge on green.


Disable fit-textareas on Safari

The feature has been uselessly slow for months and I haven't had time to fix it (again), so we should disable it on Safari. PR welcome before the 21.2.1 release

Fixed by https://github.com/refined-github/refined-github/pull/4447


Anvils can have their damage refreshed by breaking and replacing them

The thallasium, terminite and aeternium anvils using a blockstate for their destruction value instead of three separate blocks like the vanilla anvil means that the player can break any of these anvils when they are damaged and place them back down to 'repair' them, effectively cheating around needing to replace the anvil.
This could be resolved by introducing new items for each damaged variant of these anvils like the vanilla anvil that place their respective blocks with the appropriate destruction value, and then having these anvils drop the correct anvil based on their destruction value when broken. They could alternatively drop some blocks and ingots of their respective metals when broken when not at destruction = 0, less of each the more damaged they are, to avoid needing to make new items.

I think I know a better way than adding more items

Added in 0.9.2


Fix 763 incorrect wordwrap

This PR fixes #763 by changing word wrapping to not strip spaces.
A test case showing ASCII art, which is the point of #763 is added to TextFormatterDemo to show.
In fixing this, I ended up fixing another word wrap bug that I had punted on: incorrect wrapping of long words or when width is very narrow. As a result of this I updated the unit tests to no longer have BUGBUGs in them and they now test for the correct behavior!

Very good indeed. Thanks @tig.


Check version in the snap file on ATS upgrade

This PR resolve the snap file incompatibility when we upgrade/downgrade trafficserver.
It puts the version bytes into records.snap and check this version when running traffic server.
If the version does not match the current program, the snap file will be deleted.

Are there any other issues you are concerned about? @bryancall

[approve ci autest]

Cherry picked to 8.1.0


Added "Silo" to Media > Image

@vsouza @dkhamsing @lfarah Author states the lib is under development. Shall we add it right away or hold it back until a stable version is available?

Hello!
Build is stable and working :)

Added Ody

Thank you!

Hey, umm i think i messed up, it was supposed to be on images and its on video :( is there a way to fix that or do i have to make a new pull request? im sorry

Oh, don't worry. I already moved both projects to the right category. Thank you for the heads up.

Thank you!


Refactoring executor

to run task more efficiency, especially CPU

[x] Change not ready task waiting logic

Current version hold 1 thread to wait child task, but new one is just sleep 1 sec and return to task queue.

[x] Change retry logic

Current version hold 1 thread to retry task, but new one is just return to task queue and wait

[x] Divide logic into external class LocalExecutor not in RunCommand

Coverage increased (+0.8%) to 96.047% when pulling 7e0edb0b4f2e56904649c0e6322b1b45ae845601 on new-executor into b804cfd7c8123ea87b5d3003bc53698678f7de61 on master.

Coverage increased (+0.8%) to 96.047% when pulling 7e0edb0b4f2e56904649c0e6322b1b45ae845601 on new-executor into b804cfd7c8123ea87b5d3003bc53698678f7de61 on master.

Coverage increased (+0.8%) to 96.047% when pulling 7e0edb0b4f2e56904649c0e6322b1b45ae845601 on new-executor into b804cfd7c8123ea87b5d3003bc53698678f7de61 on master.

Coverage increased (+0.8%) to 96.041% when pulling 7c9fcf4c70ed0293d5d3819b60bbed050505163b on new-executor into 3641ea62ab1eec392e7f4fe1987d2474a2dfe748 on master.

Coverage increased (+1.03%) to 96.278% when pulling dc6b4da7f5fcf05c1ece1edc4f4de637bc184b12 on new-executor into 3641ea62ab1eec392e7f4fe1987d2474a2dfe748 on master.

Coverage increased (+0.5%) to 95.782% when pulling 7afa49452bca820e3b3a2fd4242eae6f74e5f95d on new-executor into 3641ea62ab1eec392e7f4fe1987d2474a2dfe748 on master.

Coverage decreased (-0.4%) to 95.782% when pulling 41e673a6c49dbf4b39aaefbadb4bc149b9a238a3 on new-executor into 8332ffeb38dcfb50e041a7670adacf767f4699cc on master.

Coverage increased (+1.08%) to 96.334% when pulling f758e2012cd58316202230a37d18fdb169cb956c on new-executor into 8332ffeb38dcfb50e041a7670adacf767f4699cc on master.

Coverage increased (+1.1%) to 96.354% when pulling 3e1fb6e79532245ef8f551e8900ccd7d2b46ca54 on new-executor into 8332ffeb38dcfb50e041a7670adacf767f4699cc on master.

Coverage increased (+1.1%) to 96.352% when pulling 3f183d3e339606faa116e2703c97f5a396fce9cc on new-executor into 8332ffeb38dcfb50e041a7670adacf767f4699cc on master.

Coverage increased (+1.1%) to 96.35% when pulling 9b3559181c74ced5094c06aab03a5f52a6006935 on new-executor into 8332ffeb38dcfb50e041a7670adacf767f4699cc on master.

Coverage increased (+1.1%) to 96.354% when pulling 29abde8c9d1c3cf3dfc208d82c0328a87c6594a0 on new-executor into 8332ffeb38dcfb50e041a7670adacf767f4699cc on master.

Coverage increased (+1.1%) to 96.354% when pulling 29abde8c9d1c3cf3dfc208d82c0328a87c6594a0 on new-executor into 8332ffeb38dcfb50e041a7670adacf767f4699cc on master.

Coverage increased (+1.1%) to 96.359% when pulling e2951236f6197d387b334d5ca92d2acba66fb382 on new-executor into 8332ffeb38dcfb50e041a7670adacf767f4699cc on master.

Coverage increased (+1.1%) to 96.359% when pulling 90a94d4ebbdc23fcbef1c26abf7b7993a0a10d5b on new-executor into 8332ffeb38dcfb50e041a7670adacf767f4699cc on master.

Coverage increased (+1.1%) to 96.359% when pulling fe309d783a694a9acf7a13fbb121d099d0e5f706 on new-executor into 8332ffeb38dcfb50e041a7670adacf767f4699cc on master.

Coverage increased (+1.1%) to 96.357% when pulling 2af68d1fc296602c4a663d0d277ccbb912ff1563 on new-executor into 8332ffeb38dcfb50e041a7670adacf767f4699cc on master.

Coverage increased (+1.1%) to 96.357% when pulling 254a8f37995f96c1f8776d8eb382561f1edbbe2f on new-executor into 8332ffeb38dcfb50e041a7670adacf767f4699cc on master.

Coverage increased (+1.1%) to 96.359% when pulling b96433d17993d0f20a04bbd06412e3255a76c843 on new-executor into 8332ffeb38dcfb50e041a7670adacf767f4699cc on master.

Coverage increased (+1.1%) to 96.354% when pulling 40298700b806b47ea62d679b7b6ace5f332fc90f on new-executor into 8332ffeb38dcfb50e041a7670adacf767f4699cc on master.

Coverage increased (+1.02%) to 96.269% when pulling 2991e3c86a0ba059a9a964ae880497e554cc8f15 on new-executor into 8332ffeb38dcfb50e041a7670adacf767f4699cc on master.

Coverage increased (+1.02%) to 96.266% when pulling 02e2a2eb29655831f39dbb45f19d51484f35a7a4 on new-executor into 8332ffeb38dcfb50e041a7670adacf767f4699cc on master.

Coverage increased (+1.06%) to 96.312% when pulling 1d9b27296e889004f30bce7ed6d01d77a2fedd1f on new-executor into 8332ffeb38dcfb50e041a7670adacf767f4699cc on master.

Coverage increased (+1.06%) to 96.31% when pulling aae8ada2e7f040c4cb30946a36e7f987e38b35c6 on new-executor into 8332ffeb38dcfb50e041a7670adacf767f4699cc on master.

Coverage increased (+1.06%) to 96.31% when pulling 7b67be8cadc1478595d80c049fb1375f8167b21d on new-executor into 18ef6e451d82334d2f89bf4e8bee5a765a9d1e67 on master.


Readme update

Trying markup looks

I can see that the changes are highly justified...

more comments !

Just re-open it ....


Add test and code, that allows for tag 'include' only ONE 'only' argument

add extra check for tag 'include' that argument 'only' provided only once

I've made a mistake here,
look https://code.djangoproject.com/ticket/32139#comment:3
closing


Full install against a clean target requires 2 reconciler runs.

the install-data lane won't run for a dataset until the control tables have a record for that dataset
the install-meta lane inserts records into the control tables

on a clean run both the install-meta and install-data lanes are running simultaneously, so it's a gamble whether the install-data gets to a dataset before the install-meta does
if the install-meta gets there first, the install-data will go through, if install-data gets there first, it will just skip to the next dataset

Proposal
Add a new event source for the update-meta lane.
In this model, the update meta lane would not run or refire an event if the event source was the update meta lane, and would instead log a warning.  This should prevent any chance of an infinite loop, while allowing event refires from the full reconciler.


IV-1711 Using full path for rsc as /usr/local/bin may not be in the d…

…efault path.

Looks good.


ft.dfs training_window doesn't accept Timedelta

Bug/Feature Request Title
ft.dfs training_window doesn't accept Timedelta

Bug/Feature Request Description
ft.dfs could not parse the timeDelta I passed in for training_window .
fm, features = ft.dfs(
    cutoff_time=cutoff,
    entityset=es,
    target_entity="transactions",
    agg_primitives=['mean', 'trend'],
    trans_primitives=["month", "time_since_previous"],
    ignore_variables={"transactions": ["year", "year_month"]},
    max_depth=3,
    verbose=True,
    training_window=pd.Timedelta(3, "M")
)

Expected Output
some features and a new dataframe
Output of featuretools.show_info()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-44-e968247ca5ac> in <module>
----> 1 ft.show_info()

AttributeError: module 'featuretools' has no attribute 'show_info'

The actual error was:
Built 57 features

Elapsed: 00:00 | Remaining: ? | Progress:   0%|          | Calculated: 0/11 chunks
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-41-3b1ada997f04> in <module>
      8     max_depth=3,
      9     verbose=True,
---> 10     training_window=pd.Timedelta(3, "M")
     11 )

/opt/anaconda3/lib/python3.7/site-packages/featuretools/utils/entry_point.py in function_wrapper(*args, **kwargs)
     44                     ep.on_error(error=e,
     45                                 runtime=runtime)
---> 46                 raise e
     47
     48             # send return value

/opt/anaconda3/lib/python3.7/site-packages/featuretools/utils/entry_point.py in function_wrapper(*args, **kwargs)
     36                 # call function
     37                 start = time.time()
---> 38                 return_value = func(*args, **kwargs)
     39                 runtime = time.time() - start
     40             except Exception as e:

/opt/anaconda3/lib/python3.7/site-packages/featuretools/synthesis/dfs.py in dfs(entities, relationships, entityset, target_entity, cutoff_time, instance_ids, agg_primitives, trans_primitives, groupby_trans_primitives, allowed_paths, max_depth, ignore_entities, ignore_variables, seed_features, drop_contains, drop_exact, where_primitives, max_features, cutoff_time_in_index, save_progress, features_only, training_window, approximate, chunk_size, n_jobs, dask_kwargs, verbose, return_variable_types)
    212                                                   n_jobs=n_jobs,
    213                                                   dask_kwargs=dask_kwargs,
--> 214                                                   verbose=verbose)
    215     else:
    216         feature_matrix = calculate_feature_matrix(features,

/opt/anaconda3/lib/python3.7/site-packages/featuretools/computational_backends/calculate_feature_matrix.py in calculate_feature_matrix(features, entityset, cutoff_time, instance_ids, entities, relationships, cutoff_time_in_index, training_window, approximate, save_progress, verbose, chunk_size, n_jobs, dask_kwargs, profile)
    265                                                  cutoff_df_time_var=cutoff_df_time_var,
    266                                                  target_time=target_time,
--> 267                                                  pass_columns=pass_columns)
    268
    269     feature_matrix = pd.concat(feature_matrix)

/opt/anaconda3/lib/python3.7/site-packages/featuretools/computational_backends/calculate_feature_matrix.py in linear_calculate_chunks(chunks, features, approximate, training_window, profile, verbose, save_progress, entityset, no_unapproximated_aggs, cutoff_df_time_var, target_time, pass_columns)
    528                                           cutoff_df_time_var,
    529                                           target_time, pass_columns,
--> 530                                           backend=backend)
    531         feature_matrix.append(_feature_matrix)
    532         # Do a manual garbage collection in case objects from calculate_chunk

/opt/anaconda3/lib/python3.7/site-packages/featuretools/computational_backends/calculate_feature_matrix.py in calculate_chunk(chunk, features, approximate, training_window, profile, verbose, save_progress, no_unapproximated_aggs, cutoff_df_time_var, target_time, pass_columns, backend, entityset)
    349                                            ids,
    350                                            precalculated_features=precalculated_features,
--> 351                                            training_window=window)
    352
    353             id_name = _feature_matrix.index.name

/opt/anaconda3/lib/python3.7/site-packages/featuretools/computational_backends/utils.py in wrapped(*args, **kwargs)
     34         def wrapped(*args, **kwargs):
     35             if save_progress is None:
---> 36                 r = method(*args, **kwargs)
     37             else:
     38                 time = args[0].to_pydatetime()

/opt/anaconda3/lib/python3.7/site-packages/featuretools/computational_backends/calculate_feature_matrix.py in calc_results(time_last, ids, precalculated_features, training_window)
    323                                                     precalculated_features=precalculated_features,
    324                                                     ignored=all_approx_feature_set,
--> 325                                                     profile=profile)
    326             return matrix
    327

/opt/anaconda3/lib/python3.7/site-packages/featuretools/computational_backends/pandas_backend.py in calculate_all_features(self, instance_ids, time_last, training_window, profile, precalculated_features, ignored, verbose)
    105                                                  time_last=time_last,
    106                                                  training_window=training_window,
--> 107                                                  verbose=verbose)
    108         large_eframes_by_filter = None
    109         if any([f.primitive.uses_full_entity

/opt/anaconda3/lib/python3.7/site-packages/featuretools/entityset/entityset.py in get_pandas_data_slice(self, filter_entity_ids, index_eid, instances, entity_columns, time_last, training_window, verbose)
    289                                                     instance_ids=instances,
    290                                                     time_last=time_last,
--> 291                                                     training_window=training_window)
    292
    293             eframes = {filter_eid: toplevel_slice}

/opt/anaconda3/lib/python3.7/site-packages/featuretools/entityset/entityset.py in related_instances(self, start_entity_id, final_entity_id, instance_ids, time_last, training_window)
   1001         df = start_estore.query_by_values(instance_vals=instance_ids,
   1002                                           time_last=time_last,
-> 1003                                           training_window=window)
   1004         # if we're querying on a path that's not actually a path, just return
   1005         # the relevant slice of the entityset

/opt/anaconda3/lib/python3.7/site-packages/featuretools/entityset/entity.py in query_by_values(self, instance_vals, variable_id, columns, time_last, training_window)
    238         instance_vals = self._vals_to_series(instance_vals, variable_id)
    239
--> 240         training_window = _check_timedelta(training_window)
    241         if training_window is not None:
    242             assert (isinstance(training_window, Timedelta) and

/opt/anaconda3/lib/python3.7/site-packages/featuretools/utils/wrangle.py in _check_timedelta(td, entity_id, related_entity_id)
     53         return td
     54     elif not (is_string(td) or isinstance(td, (tuple, int, float))):
---> 55         raise ValueError("Unable to parse timedelta: {}".format(td))
     56
     57     # TODO: allow observations from an entity in string

ValueError: Unable to parse timedelta: 91 days 07:27:18

You're right that we currently do natively support pandas Timedeltas. For now, you can can pass the string "3 days" or "3 minutes" and it would get converted internally to the pandas Timedeltas. We will work on enhancing our support in a future release.
Thanks for bringing this up!


Support externally managed textures

I started playing with this, but opening this issue for comment/discussion.
The specific use case is the Oculus Compositor. The Oculus SDK has an API for creating one or more texture sets that you are expected to draw to each frame. You then submit the frame to the SDK, and it handles composition, distortion, and presentation to the headset from the drawn texture. Because of this handshake, the Oculus SDK creates and owns the OpenGL texture handle.
To present to the compositor via glium, the moral equivalent of binding the Oculus-owned texture to a SimpleFrameBuffer is required. I don't see a way to do that currently.
One approach is to add something like unsafe fn from_unowned() to TextureAny and a similar method to all the texture types. This would wrap an externally managed texture id for broad use around glium.
Making it safe is challenging (impossible?) since lifetime/ownership is of the handle must be shared. I suppose there are more localized changes (e.g. extending ColorAttachment/DepthAttachment with an external texture reference type) that would limit the unsafe scope.

The problem is that there is a HashMap<FramebufferAttachments, FramebufferObject> (pseudo code) in the context.
When you draw on a texture for the first time, it creates a framebuffer object and adds it to the hashmap. In the destructor of TextureAny, all framebuffer objects where one of the attachments is the given texture are destroyed.
If you allow drawing on a texture by id, glium would need to create a temporary framebuffer object which would be recreated every time. The alternative is to make the user manually handle the cleanup of the framebuffer objects when a texture is destroyed, but that's not nice either. If the framebuffer is not destroyed, glium could reuse an existing framebuffer object with a newly-created texture.
The alternative to add from_unowned is nicer. Adding into_inner (or a similar name), which cleans up framebuffer objects but doesn't destroy the texture, could be useful as well.

Or maybe add from_id(id: u32, owned: bool).
If owned is true, the texture will be destroyed by glium.


MF-1342 - Use environment variables in docker-compose to use tagged version of image

Resolves #1342

Codecov Report

Merging #1343 (044a997) into master (8c87ee8) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1343   +/-   ##
=======================================
  Coverage   60.02%   60.02%
=======================================
  Files         113      113
  Lines        8904     8904
=======================================
  Hits         5345     5345
  Misses       3090     3090
  Partials      469      469

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 8c87ee8...044a997. Read the comment docs.

Codecov Report

Merging #1343 (044a997) into master (8c87ee8) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1343   +/-   ##
=======================================
  Coverage   60.02%   60.02%
=======================================
  Files         113      113
  Lines        8904     8904
=======================================
  Hits         5345     5345
  Misses       3090     3090
  Partials      469      469

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 8c87ee8...044a997. Read the comment docs.

I do not like removing documentation about ENV vars from README files and adding just links to docker-compose. I know this would be easier to maintain, but on the other hand hinders readability and quick understanding of deployment.

I don't agree with this.
We did not remove the env var table with all the explanation, we just removed unnecessary and quite useless "docker-compose-like" sections that we need to maintain with no benefit whatsoever (it does not explain the meaning of the variables better than the table in README, nor it explains usage better than the real compose file).

I also do not support adding docker-compose tag as an ENV var, which can be misleading that it is a part of a service, somebody might even think of using it in the Kubernetes. It is not, it is used only in docker-compose, and docker-compose is used ONLY in development.

I do agree with this. This env var can be misinterpreted as a service-related configuration, rather than deployment-related stuff. That's both dangerous and wrong. However, I don't see how providing a version for docker-compose in any way implies that it's production-ready.

I do not like removing documentation about ENV vars from README files and adding just links to docker-compose. I know this would be easier to maintain, but on the other hand hinders readability and quick understanding of deployment.

I don't agree with this.
We did not remove the env var table with all the explanation, we just removed unnecessary and quite useless "docker-compose-like" sections that we need to maintain with no benefit whatsoever (it does not explain the meaning of the variables better than the table in README, nor it explains usage better than the real compose file).

I also do not support adding docker-compose tag as an ENV var, which can be misleading that it is a part of a service, somebody might even think of using it in the Kubernetes. It is not, it is used only in docker-compose, and docker-compose is used ONLY in development.

I do agree with this. This env var can be misinterpreted as a service-related configuration, rather than deployment-related stuff. That's both dangerous and wrong. However, I don't see how providing a version for docker-compose in any way implies that it's production-ready.

I also do not support adding docker-compose tag as an ENV var, which can be misleading that it is a part of a service, somebody might even think of using it in the Kubernetes. It is not, it is used only in docker-compose, and docker-compose is used ONLY in development.
I dont think there is a place for confusion it just requires a basic knowledge of docker and kubernetes, it is clear that environment variables used for services are in the environment section of docker-compose

I do not really want to support people giving them the wrong idea that docker-compose can be used for running stable releases. If they want to do it, I would rather let them change version by hand. We keep latest for a reason - to demotivate people using docker-compose for production, where Kubernetes should be used.  <

Latest stays on master, this is just for the people that are experimenting with releases, when they checkout the release tag .env will be populated with appropriate version tag to start appropriate docker versions

I am generally not convinced by this PR.
I do not like removing documentation about ENV vars from README files and adding just links to docker-compose. I know this would be easier to maintain, but on the other hand hinders readability and quick understanding of deployment.
I also do not support adding docker-compose tag as an ENV var, which can be misleading that it is a part of a service, somebody might even think of using it in the Kubernetes. It is not, it is used only in docker-compose, and docker-compose is used ONLY in development.
I do not really want to support people giving them the wrong idea that docker-compose can be used for running stable releases. If they want to do it, I would rather let them change version by hand. We keep latest for a reason - to demotivate people using docker-compose for production, where Kubernetes should be used.

I also disagree, as its already really well-argued by @dusanb94 and @mteodor here and here I don't have much to add, except that both root README and documentation should be updated with note or section which will say that docker-compose is meant and designed to be used in development environments, even if Docker is aiming that can be used in production and clustered with Swarm, We highly recommend Kubernetes for production.
I didn't saw any notice/recommendation in our documentation or readme, more like Mainflux can be easily deployed on Kubernetes platform than Should be.  People who still want to use it to run it in production (even if it's possible), ignoring doc, readme, and recommendations, should be ignored also.
IMHO this PR is a nice improvement and it elimitantes development pain.

OK, I see that majority is for this PR, and makes sense. I would just need one more thought to consider: do we leave MF_RELEASE_TAG in the ENV var table (in the README), or we move it in the sentence below, adding information that docker-compose can be manipulated with this?
This was we could remove ambiguity that this ENV var is related to what service really accepts (in the table) and what is used for  deployment via docker-compose.

OK, I see that majority is for this PR, and makes sense. I would just need one more thought to consider: do we leave MF_RELEASE_TAG in the ENV var table (in the README), or we move it in the sentence below, adding information that docker-compose can be manipulated with this?
This was we could remove ambiguity that this ENV var is related to what service really accepts (in the table) and what is used for deployment via docker-compose.
@nmarcetic @dusanb94 @mteodor please give your thoughts on this.

Service actually does accept MF_RELEASE_TAG which is a docker image tag. I would put this NOTE in root README.md, the section that explains how to run compose file (and here I will also mention with a bolded label at the section bottom that docker-compose is meant and designed to be used for development and testing environments, and Kubernetes for production, Linkedin to K8s section if official doc). Same for an official doc, running the Mainflux section.
IMHO this way, everything is super clear. Don't spare words, mention it everywhere where you are mentioning Running Mainflux.

@drasko @nmarcetic I think that we should remove this env var from the service README because it's explained elsewhere and has nothing to do with the service configuration. Root README sounds like a good candidate.

OK, this makes sense - we can put it in the root README, under the Install section.
I am not sure if we need as an additional note in microservice READMEs (not in the table, but in a separate sentece). I think not, it is redundant - people will usually deploy looking at the Install section of central README (or by looking in the docker-compose and figuring out). I let @mteodor decide on this.

On a second though - better just put it in the root README, because this is Mainflux-wide setting, not per-service setting.


feat(http): add content-type argument

Seems like the default should work:
let args = [1,2,3];
undefined
let example = args[4] || "oopsie";
undefined
example
"oopsie"


Shorten diagnostics event names

Shortening diagnostic event names as recommended.
"DO - keep the names reasonably short (< 16 characters). Keep in mind that event names are already qualified by the Listener so the name only needs to be unique within a listener. Short names make IsEnabled() faster."
https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/DiagnosticSourceUsersGuide.md#event-names

The line you've quoted is about diagnostic source event names, not activity names. Unfortunately, Activity user guide also shows a short name like "Http_in" but it doesn't seem to be consistent with what corefx itself is doing e.g. https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/DiagnosticsHandlerLoggingStrings.cs#L17
cc @lmolkova should we update the guildelines with more up-to-date naming rules for activities?
Also filed https://github.com/Azure/azure-sdk/issues/554 to add this topic to .net guidelines.

this is technically a breaking change - existing listeners won't receive any events if they expect an exact match with the old name. I'm ok with it if we are breaking things this time anyway.

updating guidance. I've thought it's a good idea to keep activity names small until https://github.com/grpc/grpc-dotnet/pull/348#discussion_r296426969
Someone can use Activity without DiagnosticSource or write one listener for all sources (yes, this is hard and not efficient, but possible).

So while I think a fully qualified name is overkill in the majority of cases, I'm not sure short name is good guidance either. I hope with the Activity vs OpenTelemetry we'll come up with better guidelines including this part.

@lmolkova you are right, this is a breaking change.
The change broke ApplicationInsights DependencyCollector https://github.com/microsoft/ApplicationInsights-dotnet-server/blob/2.11.2/Src/DependencyCollector/Shared/Implementation/EventHandlers/EventHubsDiagnosticsEventHandler.cs
EventHubsDiagnosticsEventHandler still depends on fully qualified event names emitted by EventHubclient. Hence, the version 4.1 is not usable, when dependency telemetry tracking is essential.
`
public override void OnEvent(KeyValuePair<string, object> evnt, DiagnosticListener ignored)
{
Activity currentActivity = Activity.Current;
        switch (evnt.Key)
        {
            case "Microsoft.Azure.EventHubs.Send.Start":
            case "Microsoft.Azure.EventHubs.Receive.Start":
                break;
            case "Microsoft.Azure.EventHubs.Send.Stop":
            case "Microsoft.Azure.EventHubs.Receive.Stop":
                this.OnDependency(evnt.Key, evnt.Value, currentActivity);
                break;
        }
    }

`

I opened an issue in microsoft/ApplicationInsights-dotnet repository
https://github.com/microsoft/ApplicationInsights-dotnet/issues/1317


git merge --squash tests_chain_in_vector to master

supercedes #193, using a single squashed commit instead of multiple commits.

Note that this fails 3 tests in travis, but this is by design, for hard follows soft test cases that haven't been fixed yet but might be soon with #201.
haskoin git:(tests_chain_in_vector_mergecandidate1) grep -i 'failed' /Users/thomashartman/dev/haskoin-arena/haskoin/.stack-work/logs/haskoin-core-0.3.0.log
    Path m/0'/1/2': [Failed]
    Path m/0/2147483647': [Failed]
    Path m/1/2'/3/4': [Failed]
 Failed  0

This is stale, reopen if necessary.

Tests in
tests/Network/Haskoin/Crypto/ExtendedKeys/Units.hs
now follows spec in
https://en.bitcoin.it/wiki/BIP_0032_TestVectors
Looks good to me.


Plugin for users to be able create Zapier integrations when a memory created. ($1500)

Is your feature request related to a problem? Please describe.
Users want to be able to connect Zapier with their Friend app. Users want a trigger "on memory creation" and action "create memory in Friend App"
Describe the solution you'd like
You need to make a "Zapier" plugin for Friend app, in which the user will be able to authorize Zapier app and connect Friend app to other apps
Along with that you need to submit the integration into Zapier marketplace. You can ping me or @josancamon19 once you have the code for integration ready
You need code for 2 features:

Trigger on memory creation (should work as a trigger in Zapier once new memory is created).
Example: I am wearing friend and just finished a conversation => memory got created. I want to be able to put it into my notion table through zapier (so I need to have a trigger on memory creation)
Action (Create memory) - should work as an action in zapier so that users are able to create "memories" in friend app. Example: you created a new page in notion => it should automatically go to Friend's backend

Learn how to create plugins here
Describe alternatives you've considered
Check example: https://zapier.com/apps/mem/integrations
Additional context
This is a paid task. Reward is $1250 in cash. Simply link your PR with this task and we will check it asap. Check how Contributions and bounties work here
If no one is assigned to this task, then no one is working on it. We don't lock bounty tasks unless you've created PRs before.

@kodjima33 Can i be assigned this task?

Currently working on this

This should be in the folder plugins/example

@josancamon19 I never delivered before because the task is was working on got assigned to someone else in the middle of me doing it

Please check the contribution guide, I asked to create a PR or show progress while you get it assigned, I didn't see progress, that's why. Supper happy to try again, and assign you another task. @taaha161

@jainpawan21 no respond or update, unassigning task.

Should I...🤔

hey @beastoin - feel free to go ahead and try building this. We won't be able to assign tasks with no prior submitted PRs

Yes @kodjima33 . Drop your proposal first, show you can get the job done, assigns will come after - that is the way. Simple. Just waiting for my first PR be merged then I can move to the next.

Proposal & First draft version for this task(and tasks related to Automated Workflow Platform) will be drop in next 8 hours. Stay tune.
Your Team is great! @kodjima33 / kudos @josancamon19
P/S: My first PR just be merged.

Thinhs change logs

Proposal v1.0 is read:
Thinhs_Proposal_Plugin_for_users_to_be_able_create_Zapier_integrations_when_a_memory_created._(1500)_535.pdf

What's next?

✅ Draft the proposal
☑ Waiting for feedback / assigns
☑ Implement (make it happen)

Good day!

hi @josancamon19 please take a look (any time that works for you).
p/s: guys, who want to help on finish tasks related to Automation Platform likes Zapier, Make.com, feel free to use this proposal as a reference, take everything you want from this (likes my meme!), to kill your task fast, with high-quality.

Hey, will work on this for the hackathon :)

Assigned to @beastoin

Thinhs change logs

Got the assignment, now we will focus on the implementation.
What's next?

✅ Draft the proposal
✅ Waiting for feedback / assigns
☑ Implement (make it happen)

Good day!

Thinhs change logs

Omi(Dev) Zapier App is live on the sandbox mode, auth ready.

Omi Zapier Plugin archived 2 features: Zapier auth, subscribe/unsubcribe webhook from Zapier.

Architect updates with 3 flows: auth(green), trigger new memory created(red), action create memory(blue)
.

What's next?

✅ Draft the proposal
✅ Waiting for feedback / assigns
☑ Implement (make it happen) (30%)

✅ Create Zapier App for Friend

✅ Create Friend Zapier App
✅ Create Friend Zapier Plugin
✅ Integrate with auth

☑ Create Trigger Friend’s memory created on Friend Zapier (1/2)

✅ Subscribe / Unsubscribe
☑ Define output model and testing

☑ Create Action Save memory to Friend
☑ Publish Zapier App

Good day!

Thinhs change logs

Trigger New memory created is now ready. Means: You can choose Omi > New memory created trigger when creating new Zapier Zap, all sync with your Friend.

What's next?

✅ Draft the proposal
✅ Waiting for feedback / assigns
☑ Implement (make it happen) (50%)

✅ Create Zapier App for Friend

✅ Create Friend Zapier App
✅ Create Friend Zapier Plugin
✅ Integrate with auth

✅ Create Trigger Friend’s memory created on Friend Zapier (1/2)

✅ Subscribe / Unsubscribe
✅ Define output model and testing

☑ Create Action Save memory to Friend
☑ Publish Zapier App

Good day!

Thinhs change logs

Action is now ready.
What's next?

✅ Draft the proposal
✅ Waiting for feedback / assigns
☑ Implement (make it happen) (70%)

✅ Create Zapier App for Friend

✅ Create Friend Zapier App
✅ Create Friend Zapier Plugin
✅ Integrate with auth

✅ Create Trigger Friend’s memory created on Friend Zapier

✅ Subscribe / Unsubscribe
✅ Define output model and testing

✅ Create Action Save memory to Friend
☑ Publish Zapier App

☑ Feature feedback
☑ Code review
☑ Deploy @ Submit to Zapier

Good day!

Hey man! this looking good 🚀 @beastoin
Could you start creating a draft PR of this?
Thanks

yes @josancamon19 , the PR & feature demo will be dropped today.

Thinhs change logs

PR & Feature Demo have been dropped @ https://github.com/BasedHardware/Omi/pull/593 , waiting for feedback & code review 🏄♀
What's next?

✅ Draft the proposal
✅ Waiting for feedback / assigns
☑ Implement (make it happen) (70%)

✅ Create Zapier App for Friend
✅ Create Trigger Friend’s memory created on Friend Zapier
✅ Create Action Save memory to Friend
☑ Publish Zapier App

☑ Feature feedback
☑ Code review
☑ Deploy @ Submit to Zapier

Good day!

Hey man! this looking good 🚀 @beastoin
Could you start creating a draft PR of this?
Thanks

hi @josancamon19 please find the PR / Feature Demo at https://github.com/BasedHardware/Omi/pull/593/
Cheer!

Finished by @beastoin taking to production today.


HelloHacktoberfest - Java

hey can you assign this to me?

@Zhreyu Sure. Done, also do checkout the other repo of ToDoApp and give both stars if you like the repo.


Houwei t / Adragon69

Consult https://github.com/RoyaleAPI/cr-api-ux/wiki/Family-Config for detailed description of all the fields. Here are some tips:

color: should be all lower case
key: will be used in the URL. Convention is to use all lower case
emblem: do not include the file extension .png
description and links: delete the lines if you have none
tag:  do not include the # hash tag with the clan tags

Fill in the configuration below:
name: Houwei t
key: Adragon69
color: Bolt_02
emblem: Flame_02
info:
  logo:
  description: >

Adragon69 offer Clash Royale players with many clans depending on your statistics. We also offer a friendly environment for all players across our clans and future clans as well. Our top clans are competitive but if you want to play casual, there will always be space in our lower clans. We play friendly battle with each other to grow together and practice. Hope you see you in one of our clans soon! Thanks you for reading!

  social:
    - discord: https://discord.gg/HWd7YmF
    - youtube: https://www.youtube.com/channel/UCh5BxJZbEobZ7ytfXIwAbDA

clans:
  - name: Houwei t
    tag: YJVVL88G
  - name: Houz t
    tag:LP20GC8P
  - name: Call Of Psychos
    tag:YYVVP0P9
  -name: Adragon69
    tag:Q0QJQCR0

The name of the family is Adragon69


Every decompiled lua's dont work

Is it normal? No one lua dont work.

It is a decompilation, meant for analysis, if you want to run the dumped luas, you have to load the dumped bytecode instead, which you must extract out of the raw dumps.

how to load the dumped bytecode tho


Missing semicolon when generating lambda permissions

When running amplify update function to add permissions to a function to execute another function, the generated CloudFormation template section is missing a semicolon:
{
    "Effect": "Allow",
    "Action": [
        "lambda:Create*",
        "lambda:Put*",
        "lambda:Add*",
        "lambda:Get*",
        "lambda:List*",
        "lambda:Invoke*",
        "lambda:Update*",
        "lambda:Delete*",
        "lambda:Remove*"
    ],
    "Resource": [
        {
            "Fn::Join": [
                "",
                [
                    "arn:aws:lambda:",
                    {
                        "Ref": "AWS::Region"
                    },
                    ":",
                    {
                        "Ref": "AWS::AccountId"
                    },
                    ":function",
                    {
                        "Ref": "functionGoalFunctionName"
                    }
                ]
            ]
        }
    ]
}

The line ":function" should actually be ":function:"

The offending line of code seems to be https://github.com/aws-amplify/amplify-cli/blob/3bda2852ef0433e80f8e415d8ca34a340d25588b/packages/amplify-category-function/provider-utils/awscloudformation/service-walkthroughs/lambda-walkthrough.js#L632
See also #1595, which had the same issue with invalid arn generation. Perhaps Fn::Sub should be used instead of Fn::Join since it provides a more complete view of the whole arn string, which means simple typos are more easily caught
"Resource": {
    "Fn::Sub": [
       "arn:aws:cognito-idp:${region}:${account}:userpool/${userpool}",
	{
	   "region": {
		"Ref": "AWS::Region"
	   },
	   "account": {
		"Ref": "AWS::AccountId"
	   },
           "userpool": {
	      "Ref": "UserPoolIDRef"
	   }
	}
    ]
}

Or better yet, write some tests for the template generation. A shared utility function for generating this template code would also be super useful, since it would reduce the likelihood of typos like this. Something like generateResourceArn(service: string, resourceType: string, resourceId: string): StringJsonFn (StringJsonFn is just a type representing a json function like "Fn::Sub" or "Fn::Join" which returns a string).
The policy generation line for this issue would then be
policy = {
    Effect: 'Allow',
    Action: actions,
    Resource: [
      generateResourceArn('lambda', 'function', `${categoryName}${resourceName}Name`),
    ],
  }

and the policy generation for the cognito issue would be
policy = {
    Effect: 'Allow',
    Action: actions,
    Resource: [
      generateResourceArn('cognito-idp', 'userpool', `${category}${resourceName}UserPoolId`),
    ],
  }

Obviously this is harder than just saying "make a function". The function needs to be a little smart: the lambda arn separates the resourceType and the resourceId with a colon, while the cognito-idp arn uses a slash. Ideally the function would have some internal logic (and tests for that logic) which would determine which format to use based on the parameters.
We could go even further and generate the entire policy through a function makePolicy(effect: 'Allow' | 'Deny' | ..., actions: string[], resources: Array<string | StringJsonFn>). In an untyped codebase shared functions like this really help reduce the chances of bugs due to typos.

Closing this issue as the fix has been merged.
@WhiteAbeLincoln Thanks for the suggestions. I'll review these with the team.
Should you have a specific implementation in mind, PRs are welcome.


Collect free sound files

Let's download free sounds such as swimming klaxon for instance, and may be pronounced numbers. This will be useful for playing this sound in some use cases of AVT application.

Found interesting sounds at https://freesound.org/search/?g=1&f=&q=bip.
Let's now download bips and other annoying sounds - not yet done.


New Footer in theme does not honour SharePoint settings to hide site creation button

To replicate create a new communication site. There will be a new footer with the words:
Powered by SharePoint communication sites. Click here to create your own. Get Mobile App.

This does not honour the settings option in the admin centre, allowing users to create sites.

Category

[ ] Question
[ ] Typo
[x ] Bug
[ ] Additional article idea

Expected behaviour is to not see the link to create new communication sites. Only workaround is to remove the footer via script globally looping through the sites.

Thanks for your feedback.
This channel is for developer related issues. We will certainly provide the feedback to the right team that own Communication sites but I'm closing this issue here in Git Hub


Text in terms of use

Terms of use page:
https://wallet-test.decred.org/#/termOfUse
mentions Copay in a number of places and needs to be updated.

fixed

Great, looks good now so closing this.


executable code blocks

It would be good to have the ability to modify / execute / compile code blocks. This would help students to tweak existing examples to get a better picture of what the code does, and also allow gutenberg to check that all the code blocks compile / run without errors on a deployment

For the python code blocks I think pyiodide would be an easy solution to this. Here is an example of using this in react:
https://github.com/xhluca/react-pyodide-template

@jackleland and I reckon we can cobble something together on this. The languages we want to serve are:

Python
C++
Rust
Bash
(TypeScript/JavaScript)

We want to use pre-existing solutions, however many are necessary, and will prefer self-hosted ones over remote API ones.

Following discussion with @alasdairwilson, @fcooper8472, @jackleland, @alexallmont:

It's not clear that we actually want students to be able to execute code in the browser - it may prevent them learning how to use stuff themselves
Interpreted languages (Python/R) are much easier to do than compiled ones (C++/Rust)
Preserving state is a tricky problem - hidden code lines are difficult for course authors, difficult for students to see. Otherwise determining appropriate state is hard
@alexallmont is working on a template devcontainer setup for VSCode that course authors could use to allow students to follow course material on their own local system. Would allow access to system configuration information while not making things intimidating for new learners of a language.
@alasdairwilson mentioned the possibility of automatically parsing Python courses into downloadable Jupyter code books.

This issue is being closed because the overall conclusion is that executable code blocks will not serve students' learning needs.
Instead, we will provide pre-configured computational environments for course authors to identify in course metadata. Those environments will be GitHub templates, and can be customised if necessary. Course authors can create a repository and link to it in the metadata to identify it as the course execution environment repository. That repository can be cloned into VSCode or opened in GitHub Codespaces by the students.
We'll write a CI that will attach to the course material that will pursue the course execution environment to its target repository, spin up the relevant devcontainer environment, and step through code blocks one by one. This will identify errors, but not differences between output and expected output.


Change version of autoflake for pre-commit

I got the following error when running the pre-commit. This seems to have to do with the fact that distutils got removed in Python 3.12.
autoflake................................................................Failed
- hook id: autoflake
- exit code: 1

Traceback (most recent call last):
  File "/Users/nicolasruhling/.cache/pre-commit/repos25c4xze/py_env-python3.12/bin/autoflake", line 5, in <module>
    from autoflake import main
  File "/Users/nicolasruhling/.cache/pre-commit/repos25c4xze/py_env-python3.12/lib/python3.12/site-packages/autoflake.py", line 32, in <module>
    import distutils.sysconfig
ModuleNotFoundError: No module named 'distutils'

Apparently, this dependency got fixed in a newer autoflake version (currently v1.4 is specified in the .pre-commit-config.yaml but the most recent is v2.3.0).
Is there any reason not to adapt to that version?
The error disappeared for me with this change.

Then let's just update the versions in pre-commit. Would you care to open a PR?

Updating the other versions would also be nice. :wink:

Nice! I did it by hand already but there seems to be an error with black in the tests


Doesn't restart after stopping the virtual machine

I got the updated UTM application from the Apple store. Then I launched Ubuntu Focal Desktop as a virtual machine. (https://cdimage.ubuntu.com/focal/daily-live/current/). I am not having any problem starting or using the machine. But I have a problem like the virtual machine restarts after I stop it.
Repro Steps:
Download the iso file I linked
Follow the doc for install. Which is https://mac.getutm.app/gallery/ubuntu-20-04
Stop the machine. (Instead, you can turn off the virtual machine.)
Try to restart. You will see that it does not open again.
Operating System: macOS Big Sur
Architecture: M1
UTM Version: 2.0.25

Can you enable debug logging from the config and attach a debug log?

Same problem with windows 10 arm. After shutting down I can't launch it any more. It trying to repair but shows blue screen.

here is the debug log
debug.log

Version 2.0.27 issue still there.

Is there an any update?

If there is an update, this issue would be updated...

okey, thanks

Version 2.0.28 issue still there.

Version 2.1.1 same issue.

You don't need to comment after every update. The fact that the issue is open means that it's not fixed.

This is a duplicate of #2503


Add webpack loader to the docs/integrations page

Please send a PR in the ESLint repo. This site is generated from those files.