SPFx error during gulp serve

Target SharePoint environment
SharePoint Online
What SharePoint development model, framework, SDK or API is this about?
💥 SharePoint Framework
Developer environment
Linux
What browser(s) / client(s) have you tested

[ ] 💥 Internet Explorer
[X] 💥 Microsoft Edge
[ ] 💥 Google Chrome
[ ] 💥 FireFox
[ ] 💥 Safari
[ ] mobile (iOS/iPadOS)
[ ] mobile (Android)
[ ] not applicable
[ ] other (enter in the "Additional environment details" area below)

Additional environment details

browser version: I use Edge Version 114.0.1807.1 (Official build) dev (64-bit), but error prevents browser from opening
SPFx 1.17.1
Node.js 16.19.1
WSL2
Ubuntu 22.04 LTS

I reproduced the error on multiple machines.  I did not attempt it on SPFx v1.17.0, but all SPFx versions < 1.17.x do not have this issue.
Describe the bug / error
NOTE: "mydevtenant" represents my actual tenant domain in all entries below
In OOTB HelloWorld webpart, the following error happens during gulp serve
❯ gulp serve
Build target: DEBUG
[07:54:48] Using gulpfile ~/..code/play/latest2/gulpfile.js
[07:54:48] Starting 'serve'...
[07:54:48] Starting gulp
[07:54:48] Starting subtask 'spfx-serve'...
[07:54:48] [spfx-serve] To load your scripts, use this query string: ?debug=true&noredir=true&debugManifestsFile=https://localhost:4321/temp/manifests.js
[07:54:48] Starting server...
[07:54:48] Finished subtask 'spfx-serve' after 77 ms
[07:54:48] Starting subtask 'pre-copy'...
[07:54:48] Finished subtask 'pre-copy' after 15 ms
[07:54:48] Starting subtask 'copy-static-assets'...
[07:54:48] Starting subtask 'sass'...
[07:54:48] Server started https://localhost:4321
[07:54:48] LiveReload started on port 35729
[07:54:48] Running server
[07:54:48] Opening https://mydevtenant.sharepoint.com/_layouts/workbench.aspx using the default OS app
[07:54:48] Finished subtask 'sass' after 313 ms
[07:54:48] Starting subtask 'lint'...
[07:54:48] [lint] eslint version: 8.7.0
[07:54:48] Starting subtask 'tsc'...
[07:54:48] [tsc] typescript version: 4.5.5
  Request: '/sockjs-node/info?t=1682686488020'
[07:54:50] Finished subtask 'copy-static-assets' after 1.9 s
[07:54:50] 'serve' errored after 2.73 s
[07:54:50] Error: Exited with code 3
    at ChildProcess.<anonymous> (/home/don/..code/play/latest2/node_modules/opn/index.js:84:13)
    at Object.onceWrapper (node:events:628:26)
    at ChildProcess.emit (node:events:513:28)
    at ChildProcess.emit (node:domain:552:15)
    at maybeClose (node:internal/child_process:1100:16)
    at Socket.<anonymous> (node:internal/child_process:458:11)
    at Socket.emit (node:events:513:28)
    at Socket.emit (node:domain:552:15)
    at Pipe.<anonymous> (node:net:301:12)
    at Pipe.callbackTrampoline (node:internal/async_hooks:130:17)
About to exit with code: 1
Process terminated before summary could be written, possible error in async code not continuing!
Trying to exit with exit code 1

The browser does not open
Running gulp serve --nobrowser does not produce the error.
'mydevtenant.sharepoint.com` is my tenant domain, set in the environment variable SPFX_SERVE_TENANT_DOMAN

❯ echo $SPFX_SERVE_TENANT_DOMAIN
mydevtenant.sharepoint.com

If I replace {tenantDomain} with my tenant domain directly in the serve.json file, the error is the same
I built the HelloWorld webpart solution 3 times. Only change was framework. I tried all 3: minimal, no framework, and React. All have the same issue.

Steps to reproduce

Set up dev environment as follows

❯ npm ls -g
/home/don/.nvm/versions/node/v16.19.1/lib
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>

Set SPFX_SERVE_TENANT_DOMAIN environment variable

❯ export SPFX_SERVE_TENANT_DOMAIN=mydevtenant.sharepoint.com

Create new webpart solution with yo @microsoft/sharepoint
Select default options, any framework
After creation and dependency installation, run gulp serve

Expected behavior
Expectation is that gulp serve runs without errors and browser opens to the workbench site listed in the "Opening ..." line.

@DonKirkham - thanks for reporting the issue.
I can repro it on WSL.
Will be investigating further

The {tenantDomain} placeholder in the debugging profile (launch.json) also does not work. The page that is opened is https://%7Btenantdomain%7D/_layouts/workbench.aspx
The default type of "edge" is also incorrect, but I turned that in as a separate issue. #8936

The {tenantDomain} is replaced with OS variable if that exists.
Otherwise yes, it will just open the URL you mentioned above.

The only environment variable I know of is SPFX_SERVE_TENANT_DOMAIN. It is set as shown below:
❯ echo $SPFX_SERVE_TENANT_DOMAIN
mydevtenant.sharepoint.com

Sorry @DonKirkham - I'm a bit confused now.
Were you able to make gulp serve work in WSL2?
Your initial issue is the serve task is failing completely.
But now you're saying the problem is with incorrect URL in the browser.

Sorry for the confusion.  The original reported error is still occurring unless you use the --nobrowser option.
I have made an assumption that the original error is related to the {tenantDomain} placeholder, but I could be badly mistaken (again) since replacing the {tenantDomain} placeholder in the serve.json file with a real url results in the same error.
The {tenantDomain} issue in launch.json might be unrelated since manually replacing it with a real url results in no errors during debug. (If you used --nobrowser to in the gulp serve command.
These may be two unrelated issues, but since I think they have something to do with adding the {tenantDomain} placeholder functionality, I added the second part here.  I can open a separate issue, if needed.

@DonKirkham - good new and bad news :)
Bad news: it didn't work in previous versions of SPFx too as the issue is not related to SPFx directly.
We're using gulp-open (yes, I know it's old) which indirectly uses is-wsl of version. And it returns false for WSL2.
Now good news is: https://github.com/microsoft/rushstack-legacy/pull/24
When this one is merged we will update SPFx build routine and release new version.

fixed in 1.17.2

tested and confirmed fixed!  Thanks Alex


Rename *.ql files to *.overpassql

*.overpassql is now the recommended file extension for Overpass QL: OSM Wiki: Overpass QL § File extension
(Disclaimer: I added that section after some discussion.)
I propose to rename all Overpass QL files in this repo to *.overpassql for consistency.
Context: GitHub's syntax highlighting engine requires that 200 repositories use the same file extension before they consider supporting that syntax and file extension: https://github.com/github/linguist/issues/5890

Makes sense, I'll do it.

Thanks for the quick renaming!

No worries, TBH I forgot this repo existed


checker service options not recognized

My very simple config/packages/dev/ ecs.yaml file on a brand new Sf4 installation with ECS 5.1 required in:
services:
    PhpCsFixer\Fixer\FunctionNotation\MethodArgumentSpaceFixer:
        on_multiline: true

Running anything in console gets me:
In FileLoader.php line 168:

  The configuration key "on_multiline" is unsupported for definition "PhpCsFixer\Fixer\FunctionNotation\MethodArgumentSpaceFixer" in "/home/myuser/Projects/eo_datacore/config/packages/dev/ecs.yaml". Allowed configuration keys are "alias", "parent", "class", "shared",
  "synthetic", "lazy", "public", "abstract", "deprecated", "factory", "file", "arguments", "properties", "configurator", "calls", "tags", "decorates", "decoration_inner_name", "decoration_priority", "autowire", "autoconfigure", "bind" in /Users/yivi/Projects/eo_datac
  ore/config/packages/dev/ecs.yaml (which is loaded in resource "/home/myuser/Projects/eo_datacore/config/packages/dev/ecs.yaml").

In YamlFileLoader.php line 793:

  The configuration key "on_multiline" is unsupported for definition "PhpCsFixer\Fixer\FunctionNotation\MethodArgumentSpaceFixer" in "/Users/yivi/Projects/eo_datacore/config/packages/dev/ecs.yaml". Allowed configuration keys are "alias", "parent", "class", "shared",
  "synthetic", "lazy", "public", "abstract", "deprecated", "factory", "file", "arguments", "properties", "configurator", "calls", "tags", "decorates", "decoration_inner_name", "decoration_priority", "autowire", "autoconfigure", "bind".

Should I be doing something differently?

Hi, it might be autolaoding issue (if that will be the case, there should be better exception added).
Are you sure that class is loaded?

Great :+1:
Well, in that case the exception should tell you, not me. My bad.
I'll keep this open to fix that. Thanks for letting me know :)

Sorry, actually the class is loaded. For a second I thought I was me messing up, but I see the autoloader generated correctly.
If I do $methosArgumentSpaceFixer = new \PhpCsFixer\Fixer\FunctionNotation\MethodArgumentSpaceFixer(); within bin/console I see that the the object is instantiated correctly.
So the lack of Exceptions is actually correct.
Although it does seem to be related to not finding the class, somehow. Changing the configuration so it attempts to configure a known-inexistent class, since that seems like a standard Sf error on finding a misconfigured service.
Pretty sure I am doing something wrong and yet another facepalm will come out of this... but everything looks fine...

What exact console command do you run?
I'll try to reproduce.

I get the error running any command. Even running bin/console on its own.
Would my composer.json be useful?

Could you pass it here? Bin console?
You should run:
vendor/bin/ecs

Oh, I think you're trying to add ECS to your Symfony app :)
Symfony autoloads every config in /configs. Config for ECS should be anywhere else, e.g. ecs.yml.

Yes, it's in a symfony project. I wrote "Sf4" in my first message, but in hindsight I should have been a bit less obscure.
Yup,  vendor/bin/ecs works. But bin/console (e.g to scaffold new entities, to clear the cache, etc), breaks down.
But moving it to the root folder of the project seems to work.
I thought configuration could be shared with Symfony.
Sorry about that, and thanks a lot for your help.

Great :)
Well, it's an external tool. That would be like using PHPunit XML in your Symfony app config.


[WIP] Fix English messages in RSpec files

Coverage remained the same at 100.0% when pulling 9572d808d6da94bbe6d395d426b381d13746fc72 on nard-tech:feature/fix-english into afe97fdee604a02db38681488702855553438aa5 on alfa-jpn:master.

Coverage remained the same at 100.0% when pulling 9572d808d6da94bbe6d395d426b381d13746fc72 on nard-tech:feature/fix-english into afe97fdee604a02db38681488702855553438aa5 on alfa-jpn:master.

Coverage remained the same at 100.0% when pulling 9572d808d6da94bbe6d395d426b381d13746fc72 on nard-tech:feature/fix-english into afe97fdee604a02db38681488702855553438aa5 on alfa-jpn:master.


⚠ ClamAV has degraded performance

In 7be85b0, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 80 ms

Resolved: ClamAV performance has improved in 0e27c05.


Fixes #4033 Remote attach with source reference crashes VS

Fixes #4033 Remote attach with source reference crashes VS
Handles non-absolute paths by generating a false URI

I wasn't able to test this fully because for some reason I can't remote debug right now (and local-remote debugging doesn't show it, because the file is available). But all the pieces work individually :)

(We use opaque DocumentUri throughout our tests with the python:// scheme - it means we can find/use the analysis for it, but it won't be transformed back into a local path.)

I have verified the fix, it works.


Make close behavior better for send attachment dialog

Also changes 'Close' -> 'Cancel' in mobile header for this page.
r? @keybase/react-hackers

Hmm am I missing something? I only see that you're renaming 'onClose' to 'onCancel'

@akalin-keybase it's because of this

@keybase/react-hackers looks like this is still broken, bump


SavedModel FROM OFFICAL DOCS always returns the same class( use OFFICAL DOCS' CODE TO PREDICT)

Hello every1!
I'm learning tensorflow to predict multi classes images. And I first use OFFCIAL DOCS to learn.
url's here( a transfer learning ex):
tensorflow.google.cn/tutorials/images/transfer_learning
and I add only two lines of code to export my model, like this:
# keras_model_path = './keras_save'
# model.save(keras_model_path)

After that, i tried to use this model to make a simple prediction of dogs and cats, like this:
from keras.models import load_model
from keras.preprocessing import image
import tensorflow as tf
import numpy as np

model = load_model('keras_save')

img = image.load_img('imgs_to_predict/1.jpg', target_size=(160,160))
img_array = tf.expand_dims(image.img_to_array(img), 0)
predictions = model.predict(img_array)
score = tf.nn.softmax(predictions[0])

class_names = ['cats','dogs'] # right names, use a code to print when generated the model

print(
    "This image most likely belongs to {} with a {:.2f} percent confidence."
    .format(class_names[np.argmax(score)], 100 * np.max(score)))

and, it's basically from this offical doc, here:
tensorflow.google.cn/tutorials/images/classification
the last part of it, the only thing is the image which the doc used is from Internet.
When trying to make a classification, the output always :
This image most likely belongs to cats with a 100 percent confidence.
even it's a cat, a dog ,or a sunflower from the offical doc.
I'm wondering what's wrong with it, and thanks for all guys who answering my question. Appreciate! :)

Was able to reproduce the issue with TF v2.3, TF v2.4 and TF-nightly. Please find the gist of it here. Thanks!

@ghost,
Sorry for the delayed response. Can you please let us know if this issue still persists? Thanks!


Step3 json

https://dev-dot-johndallard-step-2020.uc.r.appspot.com
^ The link to the version of my site for Step 3 - JSON

I added the spacing in that function. Please let me know if that's how you want it to be presented.

After talking to Cam, I think I now understand what you meant @zkoogle


Fix setValue function in Board

One of the areas where there has been some reversal of row and column assignments has been in the Board object, specifically the setValue function which assigns a value to a grid square within the board matrix. While this is mostly syntactical in nature, it should be fixed before the codebase grows too much more to avoid confusion during implementation of further features and future maintenance.
The tasks for this issue are as follows:

Set the row and column variables such that the correct variable names is being passed into the game board (I.E. [row][col])
Review code and find all places where setValue is called and correct the order in which the variables are passed to reflect the above change

Upon my initial inspection, it appears setValue is only called in PieceController, which at least isolates the issue to 2 files.
I can also take on this issue if it's okay to do so.

just took care of it I'll submit a pull request now!


Recommended sensors

Hi there,
would you recommend any specific sensors to be used with cartographer?
Thanks in advance

Cartographer works with a wide array of sensors and the difference in cost can be enormous. So, it is difficult to recommend anything specific.
The 3D backpack setup (which is well tested) used two Velodyne VLP-16's and a Microstrain 3DM-GX5-25.

@kentsommer Do you happen to know which of the numerous seemingly similar Microstrain ROS nodes were used with the 3DM-GX4-25?  There seem to be at least 3 possible options for Microstrain IMUs.

closing, as inactive for a long time


[BUG] Seedfarmer 4.0.4 doesn't actually delete the modules if they were deleted from manifests

Describe the bug
Seedfarmer successfully finish seedfarmer apply in case if the module was deleted from .yaml manifest or/and the folder with this module was also deleted, but it doesn't actually delete resources, i.e.:

it deletes cached code from bucket
it deletes entries from SSM parameters storage
BUT it doesn't delete the CloudFormation stacks and relevant resources

To Reproduce
Steps to reproduce the behavior:

Have a project with two modules which are referencing to different folders
Create inital deployment with seedfarmer apply
Delete one of the module from manifest and delete the folder with this module as well
Do seedfarmer apply again
See the result described above

Expected behavior
It was expected that after seedfarmer apply all relevant resouces will be deleted
Additional context
The testing has been done for StepFunction and LogGroup modules

@ktulhax Thanks for this issue.  The only resources SF creates are the seedkit (for the entire project via CodeSeeder), the module role (with an attached modulestack if defined) and leverages SSM (no resources there).  All other resources are created and destroy by the module.
In your case, you successfully deleted the cached bundle and the SSM metadata for the module (indicating that the module reported back that the destroy was successful).  The only remaining resource that SF is aware of this the module role.
Can you provide more info regarding the CFN stack that persists?  The name will indicate the usage .  Also provide any other pertinent info (the module you are using .... a sample manifest with no proprietary info, etc).  We will investigate your use case.

Closing due to lack of info / inability to reproduce


Pet rubber duck

may I suggest a rubber duck? to help in debugging sessions
as in rubber duck debugging

I like this idea!
@tonybaloney you can assign this one to me. Shall we go single color (yellow) for the duck?

Released in 0.11.0


Add token authentication support

Prepare for Azure AD token authentication.
Remove extra UUID, allow django-helusers module have full control over this attribute.
Refs #LIIK-131

Codecov Report

Merging #77 into master will decrease coverage by 0.07%.
The diff coverage is 69.23%.

@@            Coverage Diff             @@
##           master      #77      +/-   ##
==========================================
- Coverage   95.59%   95.51%   -0.08%
==========================================
  Files          84       84
  Lines        4745     4753       +8
  Branches      165      167       +2
==========================================
+ Hits         4536     4540       +4
- Misses        196      198       +2
- Partials       13       15       +2

Impacted Files
Coverage Δ

users/models.py
100.00% <ø> (ø)

city-infrastructure-platform/settings.py
78.31% <69.23%> (-2.77%)
: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 558f1dd...877870c. Read the comment docs.


delete underlying data on hive tests to prevent CI errors

Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[ ] My PR addresses the following Gobblin JIRA issues and references them in the PR title. For example, "[GOBBLIN-XXX] My Gobblin PR"

https://issues.apache.org/jira/browse/GOBBLIN-XXX

Description

[ ] Here are some details about my PR, including screenshots (if applicable):

Tests

[ ] My PR adds the following unit tests OR does not need testing for this extremely good reason:

Commits

[ ] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Codecov Report

Merging #3337 (863a316) into master (08db23e) will decrease coverage by 3.55%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #3337      +/-   ##
============================================
- Coverage     46.55%   43.00%   -3.56%
+ Complexity    10138     1940    -8198
============================================
  Files          2051      394    -1657
  Lines         79547    16876   -62671
  Branches       8880     2075    -6805
============================================
- Hits          37036     7258   -29778
+ Misses        39086     8819   -30267
+ Partials       3425      799    -2626

Impacted Files
Coverage Δ

...in/java/org/apache/gobblin/cluster/HelixUtils.java
32.23% <0.00%> (-5.79%)
:arrow_down:

.../org/apache/gobblin/cluster/GobblinTaskRunner.java
63.46% <0.00%> (-0.33%)
:arrow_down:

...gobblin/compaction/mapreduce/MRCompactionTask.java

.../compaction/verify/CompactionWatermarkChecker.java

...lin/writer/initializer/MultiWriterInitializer.java

...e/gobblin/writer/commands/MySqlWriterCommands.java

.../apache/gobblin/runtime/task/BaseAbstractTask.java

...java/org/apache/gobblin/metrics/MetricContext.java

...copy/predicates/RegistrationTimeSkipPredicate.java

.../gobblin/data/management/dataset/DatasetUtils.java

... and 1650 more

Continue to review full report at Codecov.

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


Small device filters modal is stuck in the "middle" of the page

Description

The small device filters modal appears in the middle of the "page" rather than the middle of the viewport. This means that if there are any results displayed it will be scrolled way down to the middle of the results view rather than in the center of the page.
Reproduction

Change your browser to a small device width
Go to the search results page: https://wordpress.org/openverse/search/image?q=galah&license=cc0,pdm
Open the filters modal
You'll see a darkened background but no filter modal. Scroll down until you see the modal, it'll be about halfway down the results view.

Expectation

The filter modal should appear front and center without having to scroll to find it.
To fix this we could try to use the new VModal component, but it'll require some modifications to match the current style. Alternatively we could just lift the styles and positioning logic from the VModal component and revisit this later to actually use the component here. That's probably the best "stop-gap" solution for this.
Resolution

[ ] 🙋 I would be interested in resolving this bug.

Blocked by https://github.com/WordPress/openverse-frontend/pull/447
There's no way to reliably vertically position the modal at the moment because of the WP header outside the iframe. Currently the modal container uses height: 100% but in the iframe that "100%" refers to the entire iframe height. We could use 100vh but because the WP header takes up space outside the iframe, we'd actually need calc(100vh - wp-header-height) and I'm not sure how to do that.
If we merge the issue linked above first then we should be able to just use 100vh.

Duplicate of https://github.com/WordPress/openverse-frontend/issues/536


feat(Carousel): Add touch swipe support

[ ] Bug fix
[x] New feature
[ ] Chore
[ ] Breaking change
[x] There is an open issue which this change addresses
[x] I have read the CONTRIBUTING document.
[x] My commits follow the Git Commit Guidelines
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.

[ ] I have updated the documentation accordingly.

[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

#1696

This looks good, but can we expose a prop to control if touch is enabled (similar to bootstrap). It can default to true.
Also, can we check the y-axis to not trigger the swipe if y-movement is more than x-movement (for people just swiping to scroll up/down)

Look good. Merge into master and close issue?


fetch_details: undefined method `[]' for nil:NilClass (NoMethodError)

Report
What did you do?
bundle exec danger local
What did you expect to happen?
I expected the Dangerfile to be run to PR of local branch
What happened instead?
$ bundle exec danger local
Running your Dangerfile against this PR - https://github.com/<organization>/<repo_name>/pull/7335
Turning on --verbose

Traceback (most recent call last):
        11: from /Users/fadhlimaulidri/.rvm/gems/ruby-2.5.5@repo/bin/ruby_executable_hooks:24:in `<main>'
        10: from /Users/fadhlimaulidri/.rvm/gems/ruby-2.5.5@repo/bin/ruby_executable_hooks:24:in `eval'
         9: from /Users/fadhlimaulidri/.rvm/gems/ruby-2.5.5@repo/bin/danger:23:in `<main>'
         8: from /Users/fadhlimaulidri/.rvm/gems/ruby-2.5.5@repo/bin/danger:23:in `load'
         7: from /Users/fadhlimaulidri/.rvm/gems/ruby-2.5.5@repo/gems/danger-6.3.1/bin/danger:5:in `<top (required)>'
         6: from /Users/fadhlimaulidri/.rvm/gems/ruby-2.5.5@repo/gems/claide-1.0.3/lib/claide/command.rb:334:in `run'
         5: from /Users/fadhlimaulidri/.rvm/gems/ruby-2.5.5@repo/gems/danger-6.3.1/lib/danger/commands/local.rb:55:in `run'
         4: from /Users/fadhlimaulidri/.rvm/gems/ruby-2.5.5@repo/gems/danger-6.3.1/lib/danger/commands/local_helpers/local_setup.rb:43:in `setup'
         3: from /Users/fadhlimaulidri/.rvm/gems/ruby-2.5.5@repo/gems/danger-6.3.1/lib/danger/commands/local.rb:56:in `block in run'
         2: from /Users/fadhlimaulidri/.rvm/gems/ruby-2.5.5@repo/gems/danger-6.3.1/lib/danger/danger_core/dangerfile.rb:266:in `run'
         1: from /Users/fadhlimaulidri/.rvm/gems/ruby-2.5.5@repo/gems/danger-6.3.1/lib/danger/danger_core/environment_manager.rb:52:in `fill_environment_vars'
/Users/fadhlimaulidri/.rvm/gems/ruby-2.5.5@repo/gems/danger-6.3.1/lib/danger/request_sources/github/github.rb:118:in `fetch_details': undefined method `[]' for nil:NilClass (NoMethodError)

Your Environment

Which CI are you running on?
local
Are you running the latest version of Danger?
yes - 6.3.1
What is your Dangerfile?
message("Hello, this worked")

Are you in a git repo?

Are you in a git repo?

@orta : yes, of course

Looks like somehow you're not getting any pull request data then, maybe it is a private repo and you aren't auth'd?
https://github.com/danger/danger/blob/master/lib/danger/request_sources/github/github.rb#L116-L120

true, it's a private repository.
when i try bundle exec danger local, how Danger get the PR?
i have branch A where i run bundle exec danger local, this branch have open PR as https://github.com/orgz/repo/pull/7344. but at log i get https://github.com/orgz/repo/pull/7335 as descrition above

When you use bundle exec danger local Danger looks through the git log looking for a commit with a message like 'Merged pull request  from', parses out a number looking like '#1234' and uses that as the pull request's id.

i see. thank you @telyn


Fix camel case inconsistency

fixes #224

How can one use your fix without it being merged into master and released on pub dev. And I am using ferry_generator which depends on gql_code_builder so I have not explicitly added this library as it's already a dependency for ferry.

@vishalrao8 I just rebased, so you should be able to set a dependency override on this PR's commit.
I've been having issues with multipack which is causing some tests to fail.
Once https://github.com/gql-dart/gql/pull/192 is merged, I should be able to merge this.

I can't find any way to put dependency override for this particular PR in pubspec.yaml file.

pull this repo in your local and do
dependency_overrides:
  gql_code_builder:
    path: ../../../gql/codegen/gql_code_builder


Support batch size scaling with dataloaders passed directly to fit()

🚀 Feature
This was first suggested/reported in #4000 and addressed in #4006 but then reverted in #4040 due to some GPU testing failure.
Currently, batch size scaling cannot be used with dataloaders passed directly to trainer.fit() as exception is raised at:
https://github.com/PyTorchLightning/pytorch-lightning/blob/fe34bf2a653ebd50e6a3a00be829e3611f820c3c/pytorch_lightning/tuner/batch_size_scaling.py#L56-L58
The reason why this limitation was set is explained in #4006.

This limitation was set in place, to secure that the user had a field self.batch_size that we could alter.
To remove this limitation we instead replaces the dataloader with a newly instantiated dataloader with altered batch size.

Motivation
Pitch
Alternatives
Additional context

The limitation has been discovered in the current tuner revamp PR: https://github.com/PyTorchLightning/pytorch-lightning/pull/11089#discussion_r782849342.
TODO after #11089 lands.

If you enjoy Lightning, check out our other projects! ⚡

Metrics: Machine learning metrics for distributed, scalable PyTorch applications.

Lite: enables pure PyTorch users to scale their existing code on any kind of device while retaining full control over their own loops and optimization logic.

Flash: The fastest way to get a Lightning baseline! A collection of tasks for fast prototyping, baselining, fine-tuning, and solving problems with deep learning.

Bolts: Pretrained SOTA Deep Learning models, callbacks, and more for research and production with PyTorch Lightning and PyTorch.

Lightning Transformers: Flexible interface for high-performance research using SOTA Transformers leveraging Pytorch Lightning, Transformers, and Hydra.

cc @borda @akihironitta @rohitgr7

looking forward to this, on how it can be done!

still open?

Yes @joonas-yoon. Help wanted


MGDOBR-1082: E2E test fix for run-local script

MGDOBR-1082
PR owner checklist
Please make sure that your PR meets the following requirements:

[ ] Your code is properly formatted according to this configuration.
Run mvn clean verify -DskipTests so that imports are correctly set.
[ ] Your commit messages are clear and reference the JIRA issue e.g: "[MGDOBR-1] - $clear_explanation_of_what_you_did"
[ ] The layers in the kustomize folder have been updated accordingly.
[ ] All new functionality is tested
[ ] Pull Request title is properly formatted: MGDOBR-XYZ Subject
[ ] Pull Request contains link to the JIRA issue
[ ] Pull Request contains link to any dependent or related Pull Request
[ ] Pull Request contains description of the issue
[ ] Pull Request does not include fixes for issues other than the main ticket

PR reviewer(s) checklist

[ ] Check if code and Github action workflows have been modified and if the modification is safe
[ ] If the modification is safe, add the safe to test label

How to trigger pipelines and use the bots:

Run the end to end pipeline
Annotate the pull request with the label: safe to test. If you want to run the pipeline again, remove and add it again.

Rebase the pull request
Comment with: /rebase.

Deploy BOT
Comment with `/deploy <dev,stable> when the PR has been merged to deploy to a target environment.

@Aakanksha0311 Can you please squash your commits and format the commit message properly (see the description for format)?

@Aakanksha0311 Can you please squash your commits and format the commit message properly (see the description for format)?

Sure!


Fixed SplitButton secondary button alignment on touch

Reverted the Secondary Button alignment and adjusted the padding.
Fix #835.

/azp run


[WB-5841][CLI-765] fix "backend has shutdown"

https://wandb.atlassian.net/browse/WB-5841
https://wandb.atlassian.net/browse/CLI-765
Fixes #1982
Description
When you interrupt a running cell in colab, then try to restart it, sometimes it can raise an error that the "wandb backend has shutdown" and require you to restart your interpreter.
@KyleGoyette traced this to an issue where interrupt_count in the internal thread was never reset after resuming the execution of the thread. This means once the interrupt count reached 2, the internal proc could never resume execution.
This PR simply resets this parameter so that the thread can continue executing when the user resumes it
Testing
How was this PR tested?
Tested manually on the colabs provided in https://wandb.atlassian.net/browse/CLI-765 and https://wandb.atlassian.net/browse/WB-5841. Definitely fixed in the case of https://wandb.atlassian.net/browse/WB-5841 and unable to reproduce in https://wandb.atlassian.net/browse/WB-5841.
Release Notes
Below, please enter user-facing release notes as one or more bullet points.
If your change is not user-visible, write NO RELEASE NOTES instead, with no bullet points.
------------- BEGIN RELEASE NOTES ------------------
Fixes "backend has shutdown" error when attempting to rerun colab cells
------------- END RELEASE NOTES --------------------

@KyleGoyette i added a test that hits this case, I don't think it will be counted for coverage though since it is running in the notebook.

@KyleGoyette verified that this test fails on master and passes on the PR branch

Coverage is definitely not counting the internal process here. Would be good to get a direct test on the internal_process. But that being difficult, I'd leave it up to Jeff whether this is all right.

Tested with the latest version of wandb+service/nexus, and it all seems to work now, thus closing.


Not all items craftable

not all of the items from Balkon's Weapons mod are in this mod! please add them all, like the flail spear boomerang Warhammer etc.

1.) Yeah we WILL add them all...
2.)  Is reading so hard?
3.) Solved, because see 2.)

P.S.: Before I forget: ALL items of our mod are craftable. So the title is not right. For crafting recipes use NEI or JEI. Some recipes in our Wiki are outdated

How do I find all of the items and the recipes?? (Dont say TooManyItems mod
it doesnt work for me)
On Tue, Feb 23, 2016 at 5:27 PM, Nico<EMAIL_ADDRESS>wrote:

P.S.: Before I forget: ALL items of our mod are craftable. So the title is
not right. For crafting recipes use NEI or JEI. Some recipes in our Wiki
are outdated
—
Reply to this email directly or view it on GitHub
https://github.com/TheOnlySilverClaw/Reforged/issues/123#issuecomment-187943555
.

Well, a lot of them should be in the Wiki, not sure how up-to-date it is, though.

Yeah, they aren't updated yet... I will update them, when everything is ready... As I said use NEI or JEI... Those are the best ones... TMI doesn't have the ability to show crafting recipes...

Where is the wiki
On Mon, Feb 29, 2016 at 7:02 AM, Nico<EMAIL_ADDRESS>wrote:

Yeah, they aren't updated yet... I will update them, when everything is
ready... As I said use NEI or JEI... Those are the best ones... TMI doesn't
have the ability to show crafting recipes...
—
Reply to this email directly or view it on GitHub
https://github.com/TheOnlySilverClaw/Reforged/issues/123#issuecomment-190183860
.

https://github.com/TheOnlySilverClaw/Reforged/wiki
But I highly recommend those (NEI is only available for 1.8, JEI for both 1.8 and 1.8.9):
NEI: Download here
JEI: Download here

If you cannot be bothered to read the front page or install NEI, you should probably not play with WIP mods. I'm locking this now.

Why didn't I come up with that idea? XD


CFE_ES_ProcessCoreException and CFE_ES_ResetCFE are not ISR safe (GSFC DCR 18593)

The functions CFE_ES_ResetCFE and CFE_ES_ProcessCoreException are not ISR safe. They must be called from the context of a running task.

In GSFC's MMS FSW, sometimes and exception can occur from an ISR. When this happens, the CFE_ES_ProcessCoreException code will not work, since it has multiple calls to take a semaphore.
Similarly, the CFE_ES_ResetCFE cannot be called from an ISR to reset the system, as it will hang.

This needs to be addressed with a long term solution or strategy for current and future platforms.

For MMS, it may be fixed by simply handling the exception completely within the PSP.
For future releases of the cFE we need to look at possibly re-writing the CFE_ES_ProcessCoreException and CFE_ES_ResetCFE functions to be ISR safe.

Imported from trac issue 91.  Created by sstrege on 2015-08-27T14:05:52, last modified: 2016-08-22T15:51:05

Trac comment by jphickey on 2015-08-31 11:49:04:
This is a duplicate of #76


broken links in word2vec tutorial docs

Some of the links to word2vec_basic.py currently give a 404 -- they point to https://tensorflow.googlesource.com/tensorflow/+/master/tensorflow/g3doc/tutorials/word2vec/word2vec_basic.py . They should probably point to the version at  https://www.tensorflow.org/versions/master/tutorials/word2vec/word2vec_basic.py , right?

Yeah, we haven't pushed the new website that has these link fixes yet.  We'll probably do so soon.

Pushed website, fixed!


[Windows 2019] Microsoft.VisualStudio.MinShell.Msi.Resources cannot be installed (vs_Enterprise)

Description
Installing vs_Enterprise fails (I'm currently at 0ed014bc91145fb672999e94cadf7d789166966d). Namely: Microsoft.VisualStudio.MinShell.Msi.Resources.
Area for Triage:
Bug

Question, Bug, or Feature?:
==> azure-arm: Provisioning with powershell script: /agent/_work/1/s/images/win/scripts/Installers/Install-VS.ps1
    azure-arm: Downloading Bootstrapper ...
    azure-arm: Downloading package from: https://aka.ms/vs/16/release/vs_Enterprise.exe to path C:\Users\installer\AppData\Local\Temp\vs_Enterprise.exe .
    azure-arm: Enable short name support on Windows needed for Xamarin Android AOT, defaults appear to have been changed in Azure VMs
    azure-arm: Starting Install ...
    azure-arm: Something went wrong with the install.
    azure-arm:
    azure-arm: You can troubleshoot the package failures by:
    azure-arm:
    azure-arm:     1. Search for solutions using the search URL below for each package failure
    azure-arm:     2. Modify your selections for the affected workloads or components and then retry the installation
    azure-arm:     3. Remove the product from your machine and then install again
    azure-arm:
    azure-arm: If the issue has already been reported on the Developer Community, you can find solutions or workarounds there. If the issue has not been reported, we encourage you to create a new issue so that other developers will be able to find solutions or workarounds. You can create a new issue from within the Visual Studio Installer in the upper-right hand corner using the "Provide feedback" button.
    azure-arm:
    azure-arm: ================================================================================
    azure-arm:
    azure-arm: Package 'Microsoft.VisualStudio.MinShell.Msi.Resources,version=16.8.30530.185,language=en-US' failed to install.
    azure-arm:     Search URL
    azure-arm:         https://aka.ms/VSSetupErrorReports?q=PackageId=Microsoft.VisualStudio.MinShell.Msi.Resources;PackageAction=Install;ReturnCode=1601
    azure-arm:     Details
    azure-arm:         MSI: C:\ProgramData\Microsoft\VisualStudio\Packages\Microsoft.VisualStudio.MinShell.Msi.Resources,version=16.8.30530.185,language=en-US\Microsoft.VisualStudio.MinShell.Msi.Resources.msi, Properties:  REBOOT=ReallySuppress ARPSYSTEMCOMPONENT=1  MSIFASTINSTALL="7"  VSEXTUI="1"
    azure-arm:         Return code: 1601
    azure-arm:         Return code details: The Windows Installer Service could not be accessed. This can occur if the Windows Installer is not correctly installed. Contact your support personnel for assistance.
    azure-arm:     Log
    azure-arm:         C:\Users\installer\AppData\Local\Temp\dd_setup_20210122154013_004_Microsoft.VisualStudio.MinShell.Msi.Resources.log
    azure-arm:     Impacted workloads
    [Removed Tools to be installed to reduce the ticket's length]
    azure-arm:     Impacted components
    [Removed Tools to be installed to reduce the ticket's length]
    azure-arm:
    azure-arm: Non zero exit code returned by the installation process : 1
==> azure-arm: Provisioning step had errors: Running the cleanup provisioner, if present...
==> azure-arm:
==> azure-arm: The resource group was not created by Packer, deleting individual resources ...
==> azure-arm: Removing the created Deployment object: 'pkrdp9brsnc1ovo'
==> azure-arm:
==> azure-arm: The resource group was not created by Packer, deleting individual resources ...

Virtual environments affected

[ ] Ubuntu 16.04
[ ] Ubuntu 18.04
[ ] Ubuntu 20.04
[ ] macOS 10.15
[ ] macOS 11.0
[ ] Windows Server 2016 R2
[X] Windows Server 2019

Expected behavior
Install Microsoft.VisualStudio.MinShell.Msi.Resources correctly
Actual behavior
Package 'Microsoft.VisualStudio.MinShell.Msi.Resources,version=16.8.30530.185,language=en-US' failed to install.
Repro steps
Using 0ed014bc91145fb672999e94cadf7d789166966d, I started the pipeline for Windows 2019. Although we use Shared Image Gallery as a destination, the rest of the pipeline is identical.

I noticed that I changed vm_size to Standard_D4s_v3. Reverted back to Standard_DS4_v2. Unsure why it wouldn't work on certain VM size but at least it's working.

I noticed that I changed vm_size to Standard_D4s_v3. Reverted back to Standard_DS4_v2. Unsure why it wouldn't work on certain VM size but at least it's working.

Hi @martingem!
I haven't seen any issues using Standard_D4s_v3 and Standard_D4s_v4 except this one with docker https://github.com/actions/virtual-environments/pull/2525
Have you tried multiple times?

Hi @martingem!
I haven't seen any issues using Standard_D4s_v3 and Standard_D4s_v4 except this one with docker https://github.com/actions/virtual-environments/pull/2525
Have you tried multiple times?

Yes @miketimofeev, I was and still am at 4f6ab057d8edbf7823368597fa181d3b6101ff94, but for some reason that change to Standard_DS4_v2 isn't cutting it with said error. I tried 4 times, and I brang back Standard_D4s_v3 and it works now.

Yes @miketimofeev, I was and still am at 4f6ab057d8edbf7823368597fa181d3b6101ff94, but for some reason that change to Standard_DS4_v2 isn't cutting it with said error. I tried 4 times, and I brang back Standard_D4s_v3 and it works now.

if in your log file you have
Could not register type library for file C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\dte90.olb
Firstly open CMD or Windows PowerShell as administrator and execute the following command

sfc /scannow

to scan for corruptions in Windows system files and restore corrupted files
Then reboot your computer,
Disable all antivirus software on your computer, including Windows Defender
Reopen VS Installer to repair or retry your VS installation.

it solved my problem


Misleading heading

(Hyper-V & HAXM) should be (Hyper-V OR  HAXM)
Not everyone reads such docu in detail.

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

ID: 4e37d642-2051-8d70-9968-dfb484122a6a
Version Independent ID: 178ea80c-2b99-0c44-eeb6-9db319439b33
Content: Hardware Acceleration for Emulator Performance (Hyper-V & HAXM) - Xamarin
Content Source: docs/android/get-started/installation/android-emulator/hardware-acceleration.md
Product: xamarin
Technology: xamarin-android
GitHub Login: @davidortinau
Microsoft Alias: daortin

Thanks for submitting an issue and we apologize for the delayed response. The requested updates haven't been made since the creation of the issue, and the timeline for resolution may vary based on resourcing, so the issue is being moved to an internal repo to better track it.


Code running twice when loading a new Waypoint, then displays normally when code is edited

Challenge Waypoint: Import a Google Font has an issue.
User Agent is: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0.
Please describe how to reproduce this issue, and include links to screenshots if possible.
When each Waypoint loads, the current code appears to be running twice.  When I edit the code, it refreshes and displays properly.  This has happened on every Waypoint for me so far (I just started from the very beginning today).

 Currently Chrome is the only browser officially supported by FCC. However, we do have a bug open to track this issue.
Closing as a duplicate of #2706
Thanks and happy coding!


Fix initial update when no restore state available

The first time a tracker entity was created, its state was unknown. This was due to a bug that didn't use the retrieved location data when no restore state was available. The state would only become valid after the next update. This change fixes that problem.

Fixes #13


[Question] PushNotifications sample

Hello.
Could you provide any samples, how it should used with push-notifications, which were received in Inactive mode ?

I wonder, how to set badge when app was closed?(On Android, of course, because on iOS it's impossible)

I guess you should use a service for that. Never tried.


Implemented better way to map inputs in godot

With this commit I've added a way to map stick (axis) input inside Godot actions.
Basically now is possible to map together axis and buttons in order to simplify the life of developer and allow to change bindings at runtime easily.
Please check this video to see it in action: https://youtu.be/tKd7rEfwpIo

Related to #14482 and #14641.

I don't understand why people want dealing with axis instead of actions.
To make this simple I would just define a get_action_value() that returns a value between 0 and 1 telling how "strong" is the action pressed. So that you can map a single action both to a single key and a single axis+direction.

This is really useful. Would simplify a lot of my personal input handling code!

@groud I like get_action_value so if others like it too, I will rename it

It's a little bit more than a renaming, it's just avoiding replacing the (axis+direction) way of mapping by an axis (without direction) mapping. While it work pretty well by now.
Also that would make it compatible with analog buttons or analog keyboard key.

Oh.. in this case I've already did it, check this Screen Shot

I also like Grouds idea for the name.
Love this change @AndreaCatania

Oh.. in this case I've already did it, check this Screen Shot

Precisely, this is what I don't want, but the contrary. The previous system allowed to bind both an axis and a key to the same action with no more complex stuff.

With this PR you can bind key and axis to the same action, you can know the action axis and also if it's pressed or released.
Can you please give me an example in order to understand exactly what you mean?

Well, by now we have this:

Which works fine but just requires something to retreive how "strong" is the action. So what i suggest is adding a get_action_value() telling how "strong" is the action when pressed.
So in code you would do:
if (is_action_pressed("my_action")):
   velocity += get_action_value("my_action") * SPEED

Where get_action_value returns something between 0 and 1 depending on how strong is the action.
(and always 1 when the action is used with the key).
If you bind the action to a negative axes, the value from get_action_value is still between 0 and 1 by getting the absolute value of the axis.

@Groud the downside of that approach is that you'd need to do:
motion.y -= get_action_value("move_up")
motion.y += get_action_value("move_down")

While @AndreaCatania solution would allow you to do:
motion.y = get_action_value("move_y")

That said, I don't mind the extra line of code to combine them and it would fit well in the current input mapping making the change far less impactful. For a lot of already made games you can leave everything as is but just changing get_action_pressed for get_action_value where you need analogue precision.
With for instance the car simulation I'm working on throttle and brake could be one joystick axis (gamepad play) or two trigger axis (steering wheel and peddles) so the breakup into a separate throttle and breaking action makes far more sense.
So yeah, I think Grouds suggestion would work out well.

It looks nice and seems to be just what I want for my project.
By the way, does it also support using mouse motion or wheels as an axis, or do we need another issue/PR to implement that?
And does an axis input repeats its value when it's in the 'neutral' position, or does it work the same way as a trigger type input (emits events only when it's 'pressed')?

Sure, it leads to more lines of code, but it's more consistent in the binding as a key cannot have a negative value. Else it would mean that you would have actions that can go into negative values and other that can't. Even if it's a little bit counter-intuitive at the beginning, it means any action can be binded to any type of input, which is, IMHO, easier to manage at the end :)

@groud thing is, the current solution does not have a direction for key (pressed is always 1) but you have a direction for axis which is why every axis appears twice. Its not just taking the absolute of the axis, it is "for a positive axis, return the value as if when positive else 0" and "for a negative axis, return the values negated if negative else 0". Andrea just reversed that, returning the axis value as is, but allowing keys to return either 1 or -1 or assumably any value which can be handy.
But don't get me wrong, the more I think of it, the more I believe your suggestion is the better one. Right now we have a separate implementation for action pressed and action value. Your suggestion might require an extra line of code, it offers more flexibility and its simpler to understand. It also prevents confusion between people who want to use actions for normal key pressed actions and for axis input.
That all said, I had a quick look through the code and this change could take a bit of work. I would suggest adding a value to the Action structure and then enhancing this loop:
https://github.com/godotengine/godot/blob/master/main/input_default.cpp#L332
To not just set action.pressed to true but also action.value to the value we want. It'll mean enhancing the event class to return the value for that event, which for a key event would be 0 or 1, for a joystick event would be between 0.0 and 1.0 and for mouse event i guess based on the relative mouse movement?
It also means adding a 2nd parameter for the value to:
https://github.com/godotengine/godot/blob/master/main/input_default.cpp#L469
And making sure that defaults to 1.0 for backwards compatibility
And making sure:
https://github.com/godotengine/godot/blob/master/main/input_default.cpp#L480
Sets it to 0.
All in all it does feel like an elegant solution if done right.

I don't understand what is the benefit to have a value between 0 and 1, since with the approach that you said you have to create always an action for each axis direction and also you have to bind keys to these.
Also you have to check for each axis direction if the action occurs, and this is useless for most of the times.
I don't know, but I don't see a lot of situation where split the two axis in four other make sense, or makes life easier, even because in order to support it I've to add more checks to it, and I don't like it.
I think that at the end the most of the times you will end with a GDScript like this:
motion.y -= get_action_value("move_up")
motion.y += get_action_value("move_down")
motion.x -= get_action_value("move_right")
motion.x += get_action_value("move_left")
plus all code to split these in the engine.
It add useless complexity, so for me it doesn't worth and doesn't make the life easy

@AndreaCatania When you look at character movement in a top down map, you are absolutely right. But in many other use cases you'll fine your self doing this:
if get_action_value("move_y") >= 0.0:
  do_crouch(false) # make sure character stands up
  do_jump(get_action_value("move_y")) # jump with input relating to strength of jump
elif get_action_Value("move_y") < 0.0:
  do_crouch(true) #make sure character is crouched

Instead I can do:
do_crouch(get_action_pressed("crouch"))
do_jump(get_action_value("jump"))

For my brake example it gets even worse. I would have to do something like:
if i_have_a_gamepad:
  if get_action_value("throttle") >= 0.0:
    accelerate(get_action_value("throttle"))
  else:
    brake(-get_action_value("throttle"))
else:
  accelerate(get_action_value("throttle"))
  brake(get_action_value("break"))

It may seem weird to handle both accelerate and brake actions at the same time if you have separate axis for them but anyone who has driven go-karts knows how much fun using them at the same time can be :) You can even see these are separate properties in the physics engine
The code simplifies to:
  accelerate(get_action_value("throttle"))
  brake(get_action_value("break"))

So yes, I fully agree with you, for normal top down games where you just need a value between -1.0 and 0.0 for character movement, you need two lines of code where one will do. But at the added price of far more setup in the input mapping.
There is no right or wrong here imho. Both have pro's and con's. What I like about Grouds suggestion is that it doesn't change anything in the input mapping, it just adds to the information you can gather about the state of controllers. I also feel it makes it easier to setup more complex control situation such as my acceleration/braking scenario where it is more likely you're dealing with two separate axis.

Yeah, but this solution complexifies the mapping system by introducing actions that can have two different directions. In you case, if you want to map a key to a double-direction action, you have to map two keys under the action.  As an example, for your move_x action you would have to map the left key as negative and the right key as positive, while both are under the same action. It makes the input mapping confuse just for removing 2 lines of code. While, let's be honest, you usually have those lines only once in your code.
Thus I don't think the gain in code lines worth the (relative) complexity it adds to the input mapping. To be honest, I found the current system a little bit weird at the beginning, but I find it a lot more consistent and finally easy to understand.

btw
motion.y = get_action_value("move_down") - get_action_value("move_up") # in 2D, other way around in 3D ;)
motion.x = get_action_value("move_right") - get_action_value("move_left")

= win :)

Did not look much at this as I have no connectivity (will hopefully do
tomorrow)..
If this is just for axis, api should be get_axis_value and we should have a
different category for naming and remaping axes, instead of trying to fit
it to the action system IMO
On Feb 18, 2018 19:53, "Bastiaan Olij"<EMAIL_ADDRESS>wrote:

btw
motion.y = get_action_value("move_down") - get_action_value("move_up") # in 2D, other way around in 3D ;)
motion.x = get_action_value("move_right") - get_action_value("move_left")
= win :)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/pull/16797#issuecomment-366555592,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z27WOSRGEdkW0u70o8hFI1npf5wvsks5tWKnLgaJpZM4SJxpL
.

If this is just for axis, api should be get_axis_value and we should have a different category for naming and remaping axes, instead of trying to fit it to the action system IMO

We already have something to retreive an axis but it does not solves the initial problem of having to deal with code for actions (=keys pressed or not) and joysticks into different parts of the code. I think my solution solve the problem pretty well, but well, I'm not unbiased. ^^

@reduz having just added both keyboard support and axis support to my demo racing game (and it being indirectly responsible for @AndreaCatania to spend time on this I think) I would beg to differ. I think enhancing the action system is worth considering as it would simplify a lot of coding. I do like @groud suggested approach most so far :)

But an action is an action, it's something that happened at a given time.
This is not an action, so it's confusing. I prefer it's named according to
what it really is.
On Feb 18, 2018 20:07, "Bastiaan Olij"<EMAIL_ADDRESS>wrote:

@reduz https://github.com/reduz having just added both keyboard support
and axis support to my demo racing game (and it being indirectly
responsible for @AndreaCatania https://github.com/andreacatania to
spend time on this I think) I would beg to differ. I think enhancing the
action system is worth considering as it would simplify a lot of coding. I
do like @groud https://github.com/groud suggested approach most so far
:)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/pull/16797#issuecomment-366556732,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z23_gOBW1nTWh64T2JijNmn_SXFBkks5tWK1NgaJpZM4SJxpL
.

But this was never a purely action based system, it's part of the Input
system.
On Feb 18, 2018 20:21, "Bastiaan Olij"<EMAIL_ADDRESS>wrote:

But an action is an action, it's something that happened at a given time.
This is not an action, so it's confusing. I prefer it's named according to
what it really is.
@reduz https://github.com/reduz I think that is the problem.
Semantically you are absolutely correct. This change makes it no longer
purely an action based thing as in "if the user triggers action A, B should
happen". But when you're looking at it from a practical perspective, even
today it is already much more then that. Look at this code fragment that is
in nearly every Godot platform game:
func _process(delta):
if Input.get_action_pressed("move_left"):
position.x = position.x - (delta * MOVE_SPEED)
elif Input.get_action_pressed("move_right"):
position.x = position.x + (delta * MOVE_SPEED)
That already is "not an action". We're already "abusing" the action system
here because practically speaking the action system allows us to define
keyboard, mouse and joystick mappings in a way that we can write code that
doesn't make us worry about the input device the user is using.
The case may thus be that the action system is wrongly named not that this
small change is not out of place. While it is used for action based events
("a jump action triggering a jump event which initiates the jump action")
it is used for so much more.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/pull/16797#issuecomment-366557697,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z20tWP2lKrL1rm9QLUy3NFV3TXrd9ks5tWLCOgaJpZM4SJxpL
.

@reduz note btw, that this is not just for axis, the whole goal here is to map an action like "move forward" to a key (W), an axis (axis 1 positive) and maybe even mouse movement, exactly like the current mapping already does, but instead of getting a true/false, we get a value between 0.0 and 1.0. When the key is pressed it will return 1.0, if the joystick is used, the value is between 0.0 and 1.0

Too much messages to reply: 000
so:
First thing is that I never said that I've removed the old actions APIs (that would be a stupid thing to do IMO since the actions APIs are fine) So this is the list of supported API in this moment with this PR

is_action_just_pressed
is_action_just_released
is_action_pressed
is_action_released
is_action_just_changed
get_action_axis_value

As you can see I've only added two APIs this mean that all old approach still valid and correct to use, but in addition you will have (if required) the possibility to get value of the axis.
For example now is possible to have a Joypad where the buttons has a pressure, now we can map it easily.

@AndreaCatania When you look at character movement in a top down map, you are absolutely right. But in many other use cases you'll fine your self doing this:
[ETC......]

@BastiaanOlij As I've said above you can and you MUST continue to use this approach:
do_crouch(get_action_pressed("crouch"))
do_jump(get_action_value("jump"))

This PR has the only objective to add a way to map Sticks inside the current actions in order to have the same mapping for all kind of devices.
With this you will have the benefit to centralize all the code to handle inputs inside one function
You can change button binding at runtime without care about device type
You have less actions to handle.

@AndreaCatania Yeah, but this solution complexifies the mapping system by introducing actions that can have two different directions. In you case, if you want to map a key to a double-direction action, you have to map two keys under the action. As an example, for your move_x action you would have to map the left key as negative and the right key as positive, while both are under the same action. It makes the input mapping confuse just for removing 2 lines of code. While, let's be honest, you usually have those lines only once in your code.
Thus I don't think the gain in code lines worth the (relative) complexity it adds to the input mapping. To be honest, I found the current system a little bit weird at the beginning, but I find it a lot more consistent and finally easy to understand.

@groud You are saying that this solution makes things confusing and less consistent, but I never saw a single post that complain this approach to UE4, and also people seems happy for this implementation on YouTube and also Twitter. I think that this approach makes things a lot easier.
Doesn't exists a single game, or at least very few, where you get a benefit to separate the two axis of joystick in other four. The sticks are always used to move the camera position or orientation and the range -1 to 1 is perfect for this scenario.
Also I want to talk about range of inputs, with this PR you will get a different range according to the input, for example as discussed before if you have a Stick the axis range will be -1 to 1 but if you have a shoulder trigger (for example L2) the range will be 0 to 1. So the function get_action_axis_value will return always the natural value that you expect, or 0 if the button doesn't simulate the axis.

But an action is an action, it's something that happened at a given time. This is not an action, so it's confusing. I prefer it's named according to what it really is.

@reduz I thing that move a stick is also an action, and you can use is_action_just_changed to know if this action is just triggered or not.

However I would be glad if you compile the code and you test it with your current project and then would bring to me the problems that you have found, so I can try to figure out how I can improve it

Just a few more cents from my side after talking somewhat more in depth with Odino to kick ideas around and understand his reasoning better.
I think Odino's approach does make more sense to me now but I see the sense in a number of the things raised especially in it potentially being confusing in the action system.
I think Reduz probably highlighted this best when we discussed if this should be part of the action system. While there is overlap in this all being about input, in the long run this is about what makes sense for building a game that uses analogue input with a fallback to a keyboard.
So here is my suggestion for making this better:

split the interface, make it clear that the action mapping is different from axis mapping even though they are similar. Either a separate tab or two sections on the input tab.
Actions are about singular events. The user presses W, the user presses Spacebar, and mapping that to equivalent joystick actions.
Axis mapping is about getting named access to axis on a joystick with the ability for the user to change that mapping if they have different controllers and with a fallback to keyboard input that simulates axis. These are not event driven actions but purely state driven.
call the field in which you put -1.0 or 1.0 scale to indicate you apply a scale to this input. I liked this about the screenshot I was shown about UE4. I see sense in being able to put other values in here. D could be mapped to 0.5 instead of 1.0. Pushing your stick all the way to the right means the character moves at its fastest which may not be what you want with keyboard input because you don't have the control over speed.
don't use action in the names of the new functions. Call them has_axis_changed and get_axis_value. They are not action based.

Just my take on it at this point in time :)

I completely disagree, I already had to deal with Inputs for games and always faced the problem of "should I define an action or use an axis", this happens every time with other engine and is a pain to work with.
The current system is fine, but just need a way to retrieve analog values. I think my solution is quite elegant in solving this problem while requiring no even a single more line of code, as shown by @BastiaanOlij. The axis system, with negative and positive values, introduce a new concept where the border between actions and axis is too fuzzy and thus confusing.
As an example I'll take a crouch system in a platformer, you might want either to bind it to the down direction (using an axis value) or a button. In the current system, you create a crouch action, and you can bind it to either the negative y axis or a button. Thus the following code works in both situations:
if (is_action_pressed("crouch")):
   //crouch can be binded to either negative vertical axis or a button

While in your system, you would have to change your code depending on whether you use the button or an axis.
if (is_action_pressed("crouch")):
    if (get_axis_value("crouch") < 0):
      // crouch for value < 0, but it does not work for buttons as the value is 1
or
if (is_action_pressed("crouch")):
   // crouch for a button, but it does not work with an axis as you have to check if the value is negative

And yes, even if you keep the old system, you introduce a new possibility that might confuse people in whether they should use an axis or two different actions.
I strongly believe the current system limits the confusion and provides you with a single and consistent way of dealing with Inputs.
And it's not because people are not complaining about it with UE4 that it's good.

Also, to support what I'm saying:
https://answers.unrealengine.com/questions/445561/when-to-use-action-mapping-and-when-to-use-axis-ma.html

Basically here you are mixing two completely different things since you never want to use an axis to crouch your character, since it has no sense.
I never saw a game where you use the stick to make an action like crunch, and also if it exist it's a very near corner case.
if (is_action_pressed("crouch")):
    if (get_axis_value("crouch") < 0):
      // crouch for value < 0, but it does not work for buttons as the value is 1

However I don't understand the above code since, if you want to crouch with button you just need to set a button and not to simulate an axis.
So I really don't understand your worries, I didn't changed how action works, I've only added the possibility for a button to simulate an axis if you want.
Also if you set a button to simulate an axis is_action_pressed will works anyway even if you set a value of -1001292
As I explained to @BastiaanOlij if you support the splitting of the axis the main problem is this:
You will always use the stick to move something: camera rotation, camera position, character, vehicles, something... and for each of these you will need a range that go from -1 to 1 so in the GDScript you'll write something to combine the splitted axis to one axis.
In addition to this problem you have to create more actions, this mean that the engine for each input event of each tick it has to execute the code to split the axis and also have to check the event through more actions.
All this useless code has no sense since we are splitting the axis in the backside (not for free) but then we will combine it in the GDScript (not for free).
Also remember that if you need to execute an action like crouch you don't need axis values so you don't have to simulate it.

I never saw a game where you use the stick to make an action like crunch

Almost all platformers actually. So no, it's not a corner case.

Also if you set a button to simulate an axis is_action_pressed will works anyway even if you set a value of -1001292

Sorry but this "a button simulates an axis" is completely unintuitive, and I think bad UX.

so in the GDScript you'll write something to combine the splitted axis to one axis.

Yeah, but you're using this only once in the code, and instead of a "button simulating an axis" you have a perfectly distinguished "go left" and "go right" actions, that can be bound to either a key or an axis+direction. So while your system replaces get_action_value("move_down") - get_action_value("move_up") by a get_action_value("move_x") it induces complexity in the input mapping system for very little gain.
I'm sorry, but I'm strongly against merging this PR as is, as it would break what I think is a great idea with Godot Input's management: any action can be bound either to a button, a key, or an axis+direction, that's it. No "actions can be axis, or not. And a key can be mapped to a signel action or mapped to a value on a given axis".
The current solution is perfectly straightforward and works fine in all situations, even if it requires you to write a little bit more code. And it does not bring the confusion between what should be handled with actions and what should be handled with axis, which, depending on the game, might be hard to choose.

Please don't forget that when working with values, the players move at different speeds depending on whether they are moved with a joystick or with the keyboard.
Questions
When does is_pressed() return true? get_action_value() > 0?
How dead zone get handled? Does it need to be configured first?
Does get_action_value() from a key press does also return a value between 0.0 and 1.0?

I've added new tab inside project settings in order to make more clear that you are defining different thing, here how it looks like: https://youtu.be/J3UCXsTIDtU
@puppetmaster- yes it will move depending how much you push the axis

When does is_pressed() return true? get_action_value() > 0?

If you use get_action_value on a simple action it always return 0 even it it's pressed

How dead zone get handled? Does it need to be configured first?

The dead zone for axis to be catched as a pressure is the same as before 50% of its total way, there's no dead zone if you want to know axis value.

Does get_action_value() from a key press does also return a value between 0.0 and 1.0?
It returns 0 or 1 or a different thing depending on the axis factor that you set.

If there has been any mention of defining thresholds for axis -> action mapping, I've missed it. Turning an axis into an action should require a threshold value.

I like using an axis based system like this and being able to have keys with -1 to 1 values. There are very few times I've ever needed to check if the value is positive or negative (IE. a few times there's been forward to accelerate and back to brake) and when I have it isn't a big issue. However, having to check each key and then the joysticks separately is very annoying and makes the code much more confusing and error prone (which this fixes). However, even with Andrea's change (and unless I'm missing something) I don't see why a person couldn't still use the current approach if they really want to. So, this update actually allows for both approaches whereas before it only allowed for one.

If there has been any mention of defining thresholds for axis -> action mapping, I've missed it. Turning an axis into an action should require a threshold value.
EDIT: This is relevant if groud's system or both systems are added.

@raymoo True, but the possibility to use an axis as an action is currently in the system and the threshold is 0.5
Here we are doing the opposite simulate an axis using the buttons

Oh, I see. I wasn't aware you could already do that. I feel though that axes mapping should be a separate system from the action system, since that's what seems to be causing the conflict.

@raymoo I already did it, check this: https://github.com/godotengine/godot/pull/16797#issuecomment-366673543

If we have to merge such an axis system, I figured out that an older PR does it too: #14641.
It looks a little bit cleaner.

Will this be implemented in G3.1?

I hope so.

How does this PR compare to https://github.com/godotengine/godot/pull/14641 ?
@groud Actions and Axis values are completely separate things. Getting booleans is useful for many things, and getting floats is useful for many things. Names like get_action_value are confusing.
To further explain why this feature is useful and what features it could have, here's a screenshot and explanation of the Input axis system in Unity:

Unlike Godot's inputs, which are true or false, Unity's Input axis system returns a float between -1 and 1, allowing one variable for in-game axis behavior (instead of moving left or right depending on booleans, you can move horizontally and multiply by the axis variable).
The behavior of an axis can also be adjusted with options such as gravity. An input can be set to either instantly jump between 0 and 1, for a behavior similar to booleans, or spend some time in-between. For simple character movement, where you can define moving forward/backward and left/right, a gradual transition between 0 and 1 or -1 makes the character movement VASTLY smoother. In real life, there is no instantaneous acceleration.
Furthermore, I currently can't use the Input class to get mouse movement. Input can currently only bind mouse buttons, and mouse movement can't be translated to simple booleans. This is a serious oversight for any games that wish to get input from the mouse movement.

@groud Actions and Axis values are completely separate things. Getting booleans is useful for many things, and getting floats is useful for many things. Names like get_action_value are confusing.

No they are not, you're just seeing it like Unity's and other game engines see this this. But the only difference between them is that Axes handle float values and Actions handle boolean ones.
So what I propose is just to give actions a "strenght" value, so that you can use get_action_value("go_left") to ponderate how strong you want to go to the left. It's easier that choosing between creating an Axis or two Actions when you're not sure if your gameplay is going to be boolean or not. Everything you mention is also possible with my solution. Basically, my point is that I prefer having to remap action whenever I'm not sure about whether to use an Axes or and Action. Input mapping is a tedious task.
Regarding #14641 it also adds Axes support but is cleaner in terms of both UI and API. Also it does not introduce this confusing "Simulate Axis" value, since it separates completely Axes from Actions and does not try to make a link between them.

@groud A strength of "go_left" between 0 and 1 would still require me to write two pieces of code, one for moving left and one for moving right, for every place where I need two opposite directions. An axis system of allowing -1 to 1 is much better as I only need to write code for each axis I need. I already know to start off that my inputs are not going to be boolean.
Another idea occured to me, we could have everything be axis values internally, but have a boolean method that returns true if > 0.5. Maybe even a "neg direction" check if < -0.5. This would allow you to map inputs one way but still easily pull out booleans.

Well yeah, having to write something like motion.y = get_action_value("move_down") - get_action_value("move_up") is one of the flaws we mentioned. However, I believe it worth it since:

You usually handle inputs only in a single place in your game
It avoids confusing people when then have to choose between Axes and Action, if they are not sure about the gameplay they want.
It avoid creating a new way of handling Inputs in general, while still providing the exact same features.

But yeah, finally the question is whether if we want users to write a little bit more code, or if we want them to spend more time in the Axes/Actions menu. I personnaly hate having to remap inputs when my gameplay changes, that's why I prefer my solution.

I guess I am overstating the benefits of a -1 to 1 range, something like "up minus down" does seem simple enough to program. Anyway, anything is better than booleans for my use case.
I would still like to state that, for keyboards, a get_action_value is only useful if we can control the "gravity" etc of values (rate to go towards 1 when pressed, rate to drop back to 0 when released)

I would still like to state that, for keyboards, a get_action_value is only useful if we can control the "gravity" etc of values (rate to go towards 1 when pressed, rate to drop back to 0 when released)

Sure, that kind of things could be modified in the InputMap menu.
Anyway, to be honest this seems to be something quite controversial. I believe we should organize a vote or something like that, to see what people think about both idea.

@aaronfranke

Another idea occured to me, we could have everything be axis values internally, but have a boolean method that returns true if > 0.1. Maybe even a "neg direction" check if < -0.1. But 0.1 could be anything, maybe 0.5 is better? This would allow you to map inputs one way but still easily pull out booleans.

Currently this implementation does it

I strongly prefer the solution in https://github.com/godotengine/godot/pull/16902 by @groud to this one.

Just wanted to say that this is exactly what I need and would save me a lot of work with my game Vegg. Both implementation concepts of @AndreaCatania and @groud seem to be good and even though one would fit better for my current game the other one would require just minimal workarounds. And for other games it would be the other way around.
Might even port my game from Godot 2 to Godot 3 if this gets merged.

In the last commit I've improved input mapping for multiplayer games by adding per controller mapping. Check this video and let me know what do you think about: https://youtu.be/vCBu6CSsnjo

Why was it closed? (Superseded by another PR I guess? But it would be good to mention here for clarity)

Akien ye correct, I closed it because reduz like more the approach of splitting joy axis, so this pr will be merged: #16902

For what's worth it, i prefer having axis mapped from -1 to 1. I don't see the use case for [0,1]. I actually think it would be annoying to work with.

[0,1] makes sense for throttle or trigger inputs, but of course [0,1] fits within [-1,1]

What about the multiplayer controller mapping? I like the per controller mapping, it would be very useful for making local multiplayer games.

What about the multiplayer controller mapping? I like the per controller mapping, it would be very useful for making local multiplayer games.

Actually, you can map and define per-player actions by doing something like that:

You create a set of actions to be mapped for each player
You duplicate the action for each player via code, while renaming them by using something like "jump_PlayerID", "shoot_PlayerID"... (you change the player ID)
You check each action using something like Input.is_action_pressed("jump_"+player_id)

I know you can do that, but it still would be nice to have it done semi-automatically like it does in this PR. I've done that sort of mapping before whenever I've tried to implement local multiplayer. It seemed like a pretty nice addition, without having to manually type in all of the names, but it's not that hard to work around it.

Regarding multiplayer controller mapping per player thing...

What about the multiplayer controller mapping? I like the per controller mapping, it would be very useful for making local multiplayer games.

Actually, you can map and define per-player actions by doing something like that:

You create a set of actions to be mapped for each player
You duplicate the action for each player via code, while renaming them by using something like "jump_PlayerID", "shoot_PlayerID"... (you change the player ID)
You check each action using something like Input.is_action_pressed("jump_"+player_id)

I've proposed a somewhat refactored approach regarding how input states can be decoupled from input polling system here: godotengine/godot-proposals#104.
The proposal is centered around having an easier way to control multiple characters within a game session, not necessarily multiple players per session, but there may be some connections which I can't see for myself being useful what was proposed here.
Talking specifically, my proposal aims to provide some encapsulated input state which can basically reflect the global input state the same way you'd use an Input singleton, but also having an InputState resource which can be synced and/or shared between player/character instances. What I imagine could be useful is assigning some special controller mapping identifier within each state so that the input polling system can retrieve only those states which are actually relevant/matches the identifier.
My current implementation #35240 only has a master instance of an InputState. What could possibly be useful is actually dynamically allocating the necessary input states whenever you have more than one controller being connected. Compare:
# Local single-player
var state = Input.state as InputState
var player = state.get_id()
# ... input handling code for the player goes here ...
if state.is_action_pressed("shoot"):
    pass

vs
# Local multi-player
for i in Input.get_local_state_count():
    var state = Input.get_local_state(i) as InputState
    var player = state.get_id()
    # ... input handling code for EACH player/controller goes here ...
    match player:
        0:
            if state.is_action_pressed("shoot"):
                shoot_apples()
        1:
            if state.is_action_pressed("shoot"):
                spam_eggs()
     # etc.

Thoughts?


SQLAlchemyBackend does not go with scrapy_splash

Args for splash is dumped with json in SplashMiddleware.
     body = json.dumps(args, ensure_ascii=False, sort_keys=True, indent=4)

However,  the QueueModel used by sqlalchemy backend does not record the field about request.body.
One possible solution is to add a new field and the process of storing and accessing to request. After so, frontera on my pc seems to function well with scrapy_splash except for that url/domain fprintmws needs replacing.
class QueueModelMixin(object):
    __table_args__ = (
        {
            'mysql_charset': 'utf8',
            'mysql_engine': 'InnoDB',
            'mysql_row_format': 'DYNAMIC',
        },
    )

    id = Column(Integer, primary_key=True)
    partition_id = Column(Integer, index=True)
    score = Column(Float, index=True)
    url = Column(String(1024), nullable=False)
    fingerprint = Column(String(40), nullable=False)
    host_crc32 = Column(Integer, nullable=False)
    meta = Column(PickleType())
    # to add body=Column(String(1024))
    headers = Column(PickleType())
    cookies = Column(PickleType())
    method = Column(String(6))
    created_at = Column(BigInteger, index=True)
    depth = Column(SmallInteger)

Yeah, I absolutely agree with adding this field.

I'm not sure String(1024) is enough. Body is required to handle POST or PUT requests properly, this is not specific to scrapy-splash. Also, request bodies are binary, not strings. So something like LargeBinary (a blob) looks like a better fit.

As for the issue with scrapy_splash, I found a relatively simple solution.  Just like how frontera.contrib.scrapy.schedulers.frontier.FronteraScheduler deals with redirected request, the request to SPLASH_URL can be cached to the pending queue rather than persisted to backend
    def enqueue_request(self, request):
        if not self._request_is_redirected(request):
            self.frontier.add_seeds([request])
            self.stats_manager.add_seeds()
            return True
        elif self.redirect_enabled:
            self._add_pending_request(request)
            self.stats_manager.add_redirected_requests()
            return True
        return False

The possible solution would be like below
    def __init__(self, crawler, manager=None):
      self.settings = crawler.settings

    def enqueue_request(self, request):
        #  add scheduler support for splash request avoid sending to backend.
        splash_url = self.settings.get('SPLASH_URL')
        if splash_url and splash_url in request.url:
            self._add_pending_request(request)
            self.logger.info('Recycle SplashRequest to pending queue')
            return True
        elif not self._request_is_redirected(request):
            self.frontier.add_seeds([request])
            self.stats_manager.add_seeds()
            return True
        elif self.redirect_enabled:
            self._add_pending_request(request)
            self.stats_manager.add_redirected_requests()
            return True
        return False

It would save the job to customize sqlalchemy model and fingerprint module. It seems to work fine on my pc. (frontera-0.7.0, scrapy-1.2.2)

@dingld the only cons is that will not survive process restart, but for some applications this isn't necessary. For a general purpose solution I would extend SQLA backend with the fields needed. Anyone would like to make a PR?

Dear @dingld
I have faced the same issues with splash and followed your answer to make mine working. My question is, how can I override into my code base so I don't have edit the library code?
Thanks.


[Android] ListView/FlatList not able to scroll inside Content component

I have a FlatList inside a Content component with some other components that make the Content over height and scrollable. The problem I have that the FlatList was not able to scroll when Content scrollable.
react-native, react and native-base version
react: 16.0.0-alpha.12
react-native: 0.45.1
native-base: 2.2.0
Expected behaviour
The List should scrollable
Steps to reproduce (code snippet or screenshot)
My list:
                   <FlatList                         style={{                             width: '100%',                             borderWidth: 1,                             borderColor: '#e0e1e2',                             marginTop: 10,                             height: 270,                             flex: 1                         }}                         data={positions}                         renderItem={this.renderPosition}                         keyExtractor={(item, index) => item.id}                     />
Is the bug present in both ios and android or in any one of them?
Android only

same issu

@thienlhh Remove the height from the FlatList. If you really need the list to be taking up only that much of space. Wrap it with a View maybe and apply the height there

Thanks @shivrajkumar for tip, may be I'll try later as my project running to deadline. I have to use an other workaround by using NestedScrollView

Thanks @shivrajkumar for tip, may be I'll try later as my project running to deadline. I have to use an other workaround by using NestedScrollView

I am encountering this same issue, and I do not have a fixed height set for the FlatList, but on a View as suggested by @shivrajkumar.

@jkeller22 Were you able to resolve this as per suggestion

did anyone find any solution?

@thienlhh In this case, if possible use a <View/> instead of <Content/>.

As wrapping the ListView inside the ScrollView the parent scroll action dominates the child scroll action which leads only ScrollView to scroll.

See React Native issue comment here

Closing the issue due to no response

Did any of suggested earlier and nothing seems to be helping. Any update? My FlatList not even nested, still it is showing no signs of life or scrollability in particular...

@alexgnatrow can you try this https://github.com/facebook/react-native/issues/1966#issuecomment-285130701


graph: use pub_key over id in import-json

LND graph files label this field pub_key, but we were previously generating sub-graphs with a library that output id instead. Updating this to perfectly fit lnd's describegraph output.
This commit also updates to use latest reduced versions of the graph in tests (LN 10/100) which have pub_key rather than ID.

ACK


Add support for collectd-zookeeper plugin.

https://github.com/signalfx/collectd-zookeeper

Done https://github.com/anryko/grafana-influx-dashboard/commit/bec7681d713b708ff28b018c0776c8c13bc5056c.


quartata: Watch turkmencarpets-online

quartata requests the watch of the watch_keyword turkmencarpets-online. See the Metasmoke search here

Only hit is a FP


remove .env.*

Why? I just added these files.

@Ross-Hunter a common developer practice it to ignore .env and not include it in the repo.  This keeps folks from accidentally sharing secrets, passwords, etc from the world.  I see there is a DEVISE_SECRET in .env.development and .env.test.  I'm guessing that devise_secret is the secret key for the SF email service. If you have access to the key you can use SF's email service to send spam or worse. I would suggest we don't publish that key to the internet especially in our repo.
Try This
I use msecure to encrypt those keys in a file on my local machine.  When i need to use the keys, like after I clone a repo, I create a new .env file and fill it with the required key-value pairs, and drop it into the app folder (i.e., adopt-a-drain/ ).  The application (i.e., AAD) is written to use those .env vars when they are set. We use the dotenv GEM to load up the environment variable automatically from the .env file. This is only done by a developer in their development environment.
Anything worth doing is worth over doing
Heroku has its own way of handling environment variables so it doesn't use the .env file. The Heroku admin has to transfer these manually into the Heroku settings found in lgrow-staging and lgrow-production. This minimizes the security exposure.
Finally
The github readme.md usually has instructions on how to build a .env for development purposes.  We have instructions in the our repo readme.md that does just that.

.env.development & .env.test are perfectly fine for shared non-secret variables. A developer should also create a local .env file as well to hold sensitive information, and it should be gitignored. Removing these files breaks the test environment, and creates more work for developers on the project. It is a valid point that these files existing might tempt someone to commit a real secret, but I believe that to be a small risk, and can be mitigated by adding a comment to the top of these files.
This devise secret is used for creating password reset tokens and the like. I'm not sure where it came from, or why it was committed to the repo, but it was, and unfortunately that can't be undone. If you would like to generate a new one and throw it in there that's fine, but I do not believe we are endangering anyone by leaving this developer-use-only one committed.
A new devise secret has been generated for the deployed environments and that should never be committed to any source control.

Consider:
Recently, users of AAD have been targeted with phishing attempts. We don't know if AAD is at fault but I take seriously my responsibility to protect the team and the users of AAD.  Education is the most important way to defend against security issues and predictability of process is a very good way to educate a group.
You recently, sent a link to the 12-factor app (https://12factor.net/config) principles.   I quote "...Env vars are easy to change between deploys without changing any code; unlike config files, there is little chance of them being checked into the code repo accidentally;."  I read this as don't store environment variables in your repository.
I believe that configuring our git repository to ignore environment/config files is important to our overall security. I strongly suggest we adopt this as our rule going forward.


Code Syntax highlighting not working if File ends with Uppercase Letter (.C) instead of lowcase letter (.c)

Syntax highlighting not working if File ends with Uppercase Letter (.C) instead of low case letter (.c)

During a debug section
Open test.c using "Open Source file..." button and see code Syntax highlighting  working
Close the File, rename it extension to ".C" (uppercase)
Open Again the same file and see there is no code syntax highlighting.

Thanks for the report, this will be fixed in our next release.