Allow suppressing timer checks in widget tests

Internal: b/119772669
AutomatedTestWidgetsFlutterBinding._verifyInvariants does:
    assert(
      _currentFakeAsync.periodicTimerCount == 0,
      'A periodic Timer is still running even after the widget tree was disposed.'
    );
    assert(
      _currentFakeAsync.nonPeriodicTimerCount == 0,
      'A Timer is still pending even after the widget tree was disposed.'
    );

I tripped this assert in my widget test because the act of tearing down the widget tree triggers a Timer in my widget. (You can come talk to me for more details about this use case.)
My current workaround is to make my test call tester.pumpWidget(Placeholder()) to tear down the existing widget tree and flush my timers.  It would be nice if instead either:

I could suppress these assertions. (Why is it necessarily wrong for Timer objects to outlive the widget tree?) Also suggested by https://github.com/flutter/flutter/issues/17881#issuecomment-391858875.
I had an opportunity to clean up my Timer objects before the assertions are checked. tearDown runs too late; it might be nice if it ran before _verifyInvariants.

I'm seeing a lot of these errors in my codebase. Out of 220 tests in one module, 27 failed with this message:
The following assertion was thrown running a test: A Timer is still pending even after the widget tree was disposed. 'package:flutter_test/src/binding.dart': Failed assertion: line 1014 pos 7: '_currentFakeAsync.nonPeriodicTimerCount == 0'

@acherkashyn We are getting the same on CI. Could this be related to Flutter 1.5 update?

@eduplus It is clearly related, I started seeing this after upgrading to flutter 1.5.4

@acherkashyn @eduplus Is it possible for you to provide a small test case that reproduces this failure?

From offline discussion:
IMO it's right for tests to complain about leaked timers.  A leaked timer indicates a pretty significant bug, or that your test isn't doing all the work it should (i.e. to test that the created timer is doing what it's supposed to and finishes when it's supposed to).
That said, it'd probably be helpful to have FakeAsync tell you what created the leaked timer(s) so you can figure out what leaked it.

I still disagree after our offline discussion. =)
Is it always right to complain about pending timers?  Are there no valid reasons to have timers pending at the end of a test?
I think it's reasonable for tests to complain about them by default.  I don't fully agree that it must complain about them.  I don't think it's necessarily wrong to have a fire-and-forget timer, and the test framework shouldn't unilaterally decide for the test author what's relevant and correct for the test.
Additionally, this behavior is specific to testWidgetsfrom package:flutter_test. test from  package:test doesn't care, and it's not clear why pending timers should be worse or treated more strictly for Flutter tests than for general Dart tests.
If there can be valid cases for a pending timers, then there should be an escape hatch to bypass the assertion.  FakeAsync.flushTimers probably should be sufficient for most people, but it's not quite enough for all cases (such as the situation I described in the initial comment).

The risk is that you write a test not realizing that you're leaking a timer in your code, which leads to either a flaky test or an implementation that does bad things at runtime (allocates resources without freeing them).  It's almost certainly a sign that you're not properly covering a variant of the behavior you should care about as a test author.
I don't think we should make it easy for people to ignore this - we should instead make it easier to determine what's leaking the timer and how to not leak it.

(allocates resources without freeing them)

You keep using "leaked timer", and I keep using "pending timer". =) Leaked timers (something allocates more timers than necessary without canceling existing ones) are bad.  Pending timers aren't necessarily leaks.

It's almost certainly a sign that you're not properly covering a variant of the behavior you should care about as a test author.

In my case, I have a widget that uses a timer to throttle logging.  Yes, variations in the behavior should be tested, but it's really awkward that every consumer of the that widget has to deal with the pending timer in their own tests when it's not what they care about.  It's an implementation detail.

I don't think we should make it easy for people to ignore this - we should instead make it easier to determine what's leaking the timer and how to not leak it.

I am working on adding instrumentation to do that, but even with that information, a test author might not be able to do anything with it if the timer came from a dependency that they don't easily control.  That leaves them with FakeAsync.flushTimers, which is already pretty easy.
What if we had something like WidgetTester.expectPendingTimers(int count)?  At least that way someone could detect if the test no longer waits long enough or if some new timer gets added, and the test author would be forced to do something about it.

It all feels dangerous to me - you think you only should expect 1 pending timer, but suddenly that pending timer finished before the test ended because you didn't realize that adding another pump to it did that, and now you have a different timer that is pending and you don't want to be pending but don't realize it.
Even in your example, what happens when your timer finishes after the test finishes, allows the log(s) to go through, and now another test that is watching the logging buffer for expected strings fails because it had the misfortune of being run after your test?

It all feels dangerous to me - you think you only should expect 1 pending timer, but suddenly that pending timer finished before the test ended because you didn't realize that adding another pump to it did that, and now you have a different timer that is pending and you don't want to be pending but don't realize it.

Sure, but a bunch of things would need to be coincidentally aligned for that to happen.  Hypothetically  somebody today could accidentally leak a bunch of timers and happen to pump() long enough for all of those timers to fire, and that wouldn't be caught either.

Even in your example, what happens when your timer finishes after the test finishes, allows the log(s) to go through, and now another test that is watching the logging buffer for expected strings fails because it had the misfortune of being run after your test?

In my case it doesn't matter, because that logging buffer is also an internal implementation detail that isn't exposed.  I do agree that timers shouldn't be allowed to execute outside of the test since that breaks isolation; I think that pending timers should just be canceled.

Personally, I like the idea of having my tests helping me identifying the problem. The tests could cancel all the pending timers, but you production code will still have the issue since you didn't take care of it, and that's gonna be hidden from you.
In my case, the problem that I have is: I have a StreamSubscription, which I'm cancelling during the dispose of my Widget. StreamSubscription.cancel() returns a Future, and since I'm inside the dispose method which isn't async, the test are asserting the pending timers before the stream being cancelled.

Just started studying Dart / Flutter, so maybe I'm missing something.

@brunopinheiro, I have exact same use case (Canceling my stream subscription in my widget's dispose()). Wrapping the whole test case inside tester.runAsync() works (source). However I'd still like to know if you found any other solutions?
On a related now, Is it possible to know which timers are leaking/pending?

On a related now, Is it possible to know which timers are leaking/pending?

As of https://github.com/flutter/flutter/pull/37646, there should be a stacktrace that indicates what created the offending Timer. (Currently if there is a pending timer when the test completes, two stacktraces will be printed: one from where the Timer was created and one for the assert itself.  It might be worth suppressing the latter to reduce confusion.)

Hi @jamesderlin, Thanks for the response. I am using the latest flutter stable v1.9.1+hotfix.5 and I only see the stacktrace for assert failure itself. Has #37646 not landed in stable yet?
Here's a minimum reproducible test case:
import 'dart:async';

import 'package:flutter_test/flutter_test.dart';

void main() {
  testWidgets('locate timer leaks', (tester) async {
    Timer.periodic(
      Duration(seconds: 10),
      (t) => print('timer is active:${t.isActive}'),
    );
  });
}

#37646 is not in v1.9.1+hotfix.1.

Hey guys, I've encountered this error with this piece of code.
_recorderReady = _recorderReadyCompletion.future           .timeout(Duration(seconds: 5), onTimeout: () => Future.value(false));
I can see where the code is being called from but I now need to know how to cancel the timer.

testing the code above with the latest master
logs
00:05 +0: locate timer leaks
Pending timers:
Timer (duration: 0:00:10.000000, periodic: true), created:
#0      new _FakeTimer._ (package:quiver/testing/src/async/fake_async.dart:277:42)
#5      main.<anonymous closure> (file:///Users/nevercode/Desktop/projects/master/test/widget_test.dart:6:11)
#6      testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart:140:29)
<asynchronous suspension>
#7      testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart)
#8      TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:703:19)
<asynchronous suspension>
#11     TestWidgetsFlutterBinding._runTest (package:flutter_test/src/binding.dart:683:14)
#12     AutomatedTestWidgetsFlutterBinding.runTest.<anonymous closure> (package:flutter_test/src/binding.dart:1083:24)
#18     AutomatedTestWidgetsFlutterBinding.runTest (package:flutter_test/src/binding.dart:1080:15)
#19     testWidgets.<anonymous closure> (package:flutter_test/src/widget_tester.dart:133:24)
#20     Declarer.test.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/declarer.dart:172:27)
<asynchronous suspension>
#21     Declarer.test.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/declarer.dart)
#22     Invoker.waitForOutstandingCallbacks.<anonymous closure> (package:test_api/src/backend/invoker.dart:246:15)
#27     Invoker.waitForOutstandingCallbacks (package:test_api/src/backend/invoker.dart:243:5)
#28     Declarer.test.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/declarer.dart:170:33)
#33     Declarer.test.<anonymous closure> (package:test_api/src/backend/declarer.dart:169:13)
#34     Invoker._onRun.<anonymous closure>.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/invoker.dart:400:30)
(elided 35 frames from class _FakeAsync, class _RawReceivePortImpl, class _Timer, dart:async, dart:async-patch, and package:stack_trace)

══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following assertion was thrown running a test:
A Timer is still pending even after the widget tree was disposed.
'package:flutter_test/src/binding.dart':
Failed assertion: line 1119 pos 12: '() {
      if (   _currentFakeAsync.periodicTimerCount == 0
          && _currentFakeAsync.nonPeriodicTimerCount == 0) {
        return true;
      }

      debugPrint('Pending timers:');
      for (final String timerInfo in _currentFakeAsync.pendingTimersDebugInfo) {
        final int firstLineEnd = timerInfo.indexOf('\n');
        assert(firstLineEnd != -1);

        // No need to include the newline.
        final String firstLine = timerInfo.substring(0, firstLineEnd);
        final String stackTrace = timerInfo.substring(firstLineEnd + 1);

        debugPrint(firstLine);
        debugPrintStack(stackTrace: StackTrace.fromString(stackTrace));
        debugPrint('');
      }
      return false;
    }()'

When the exception was thrown, this was the stack:
#2      AutomatedTestWidgetsFlutterBinding._verifyInvariants (package:flutter_test/src/binding.dart:1119:12)
#3      TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:716:7)
<asynchronous suspension>
#6      TestWidgetsFlutterBinding._runTest (package:flutter_test/src/binding.dart:683:14)
#7      AutomatedTestWidgetsFlutterBinding.runTest.<anonymous closure> (package:flutter_test/src/binding.dart:1083:24)
#13     AutomatedTestWidgetsFlutterBinding.runTest (package:flutter_test/src/binding.dart:1080:15)
#14     testWidgets.<anonymous closure> (package:flutter_test/src/widget_tester.dart:133:24)
#15     Declarer.test.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/declarer.dart:172:27)
<asynchronous suspension>
#16     Declarer.test.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/declarer.dart)
#17     Invoker.waitForOutstandingCallbacks.<anonymous closure> (package:test_api/src/backend/invoker.dart:246:15)
#22     Invoker.waitForOutstandingCallbacks (package:test_api/src/backend/invoker.dart:243:5)
#23     Declarer.test.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/declarer.dart:170:33)
#28     Declarer.test.<anonymous closure> (package:test_api/src/backend/declarer.dart:169:13)
#29     Invoker._onRun.<anonymous closure>.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/invoker.dart:400:30)
(elided 33 frames from class _AssertionError, class _FakeAsync, class _RawReceivePortImpl, class _Timer, dart:async, dart:async-patch, and package:stack_trace)

The test description was:
  locate timer leaks
════════════════════════════════════════════════════════════════════════════════════════════════════
00:05 +0 -1: locate timer leaks [E]
  Test failed. See exception logs above.
  The test description was: locate timer leaks

00:05 +0 -1: Some tests failed.

doctor
[✓] Flutter (Channel master, 1.21.0-6.0.pre.17, on Mac OS X 10.15.5 19F101, locale en-GB)
    • Flutter version 1.21.0-6.0.pre.17 at /Users/nevercode/development/flutter_master
    • Framework revision e64fe11542 (12 hours ago), 2020-07-23 18:11:17 -0700
    • Engine revision 626244a72c
    • Dart version 2.9.0 (build 2.9.0-21.0.dev a3815b6590)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/nevercode/Library/Android/sdk
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.5, Build version 11E608c
    • CocoaPods version 1.9.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 46.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.12.2

[✓] Connected device (4 available)
    • Pixel 3a (mobile) • 965AY0WP5C • android-arm64  • Android 10 (API 29)
    • macOS (desktop)   • macos      • darwin-x64     • Mac OS X 10.15.5 19F101
    • Web Server (web)  • web-server • web-javascript • Flutter Tools
    • Chrome (web)      • chrome     • web-javascript • Google Chrome 84.0.4147.89

• No issues found!

the issue still occurs
thank you

Perhaps an API like tester.takeTimer similar to tskeException would be appropriate here

I was able to get my test to pass by calling await tester.binding.idle()

I was able to get my test to pass by calling await tester.binding.idle()

@supposedlysam-bb Can you please elaborate with an how you passed the test using the await tester.binding.idle() to work? I am also working on some sort of work around for it but unable to find it yet. It would a great help if you do that.

I was able to get my test to pass by calling await tester.binding.idle()

@supposedlysam-bb Can you please elaborate with an how you passed the test using the await tester.binding.idle() to work? I am also working on some sort of work around for it but unable to find it yet. It would a great help if you do that.

Awaiting idle is not a "work around," it's simply telling the test it should let the binding finish any outstanding work it has created and is completely valid in a test :)
The key here is to find out what timer is still running and figure out how to make sure it completes before your test is done.

Awaiting idle is not a "work around," it's simply telling the test it should let the binding finish any outstanding work it has created and is completely valid in a test :)
The key here is to find out what timer is still running and figure out how to make sure it completes before your test is done.

I have a "smoke test" that's supposed to make sure the app is able to be loaded without any runtime errors. This should be as simple as running the main class the app uses and expecting to find that widget in the test. However, I have a couple of timeout functions chained on Futures and they're causing the test to fail since they have "pending timers" when the test ends. Since the Timer gets created inside of the timeout function, how should I go about making my test pass? I can't get access to these timers.

I have a "smoke test" that's supposed to make sure the app is able to be loaded without any runtime errors. This should be as simple as running the main class the app uses and expecting to find that widget in the test. However, I have a couple of timeout functions chained on Futures and they're causing the test to fail since they have "pending timers" when the test ends. Since the Timer gets created inside of the timeout function, how should I go about making my test pass? I can't get access to these timers.

We now have support for tester.binding.delayed.
So you could do something like this in a test now:
  testWidgets('timer test', (WidgetTester tester) async {
    final Timer timer = Timer(const Duration(minutes: 1), () {
      print('It has been one minute');
    });
    await tester.binding.delayed(const Duration(days: 999));
  });

And nothing will complain.
Just be aware that if you do this in the LiveWidgetsTestBinding, or in an integration_test test, your test will actually wait 999 days and timeout.
I am still of the opinion that this is not advisable, but we now have an escape hatch if you truly want to run a test where you leak timers.


Enabled xUnit-XML-generation for ctest

This PR adds xUnit report generation to the gtest-based test executable.
A cmake function helps with configuring all test targets such that all
XML output files are put into one sub-directory called "testresults/".
Next step would be to make kokoro/sponge pick these reports up.
In case a change to the repo is needed, we should put this into this PR.

Can you add the chnages from
https://github.com/pierricgimmig/orbitprofiler/pull/236/files
into this PR?


feat: add Postgres SQL validator

SUMMARY

This PR adds a SQL validator for Postgres queries in SQL Lab. It uses the pgsanity module, which parses the query, providing syntax validation without having to talk to the database.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TEST PLAN

Create a superset_config.py:
SQLALCHEMY_DATABASE_URI = "postgresql://superset:superset@localhost/test"

FEATURE_FLAGS: Dict[str, Any] = {
    "SQL_VALIDATORS_BY_ENGINE": {"postgresql": "PostgreSQLValidator"},
}

And tested a few queries.
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

Codecov Report

Merging #11538 into master will decrease coverage by 5.29%.
The diff coverage is 55.00%.

@@            Coverage Diff             @@
##           master   #11538      +/-   ##
==========================================
- Coverage   66.62%   61.32%   -5.30%
==========================================
  Files         873      421     -452
  Lines       41870    26200   -15670
  Branches     3847        0    -3847
==========================================
- Hits        27894    16068   -11826
+ Misses      13875    10132    -3743
+ Partials      101        0     -101

Flag
Coverage Δ

cypress
?

javascript
?

python
61.32% <55.00%> (-0.83%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

superset/sql_validators/__init__.py
80.00% <50.00%> (ø)

superset/sql_validators/postgres.py
52.94% <52.94%> (ø)

superset/config.py
90.15% <100.00%> (ø)

superset/views/database/views.py
62.30% <0.00%> (-25.14%)
:arrow_down:

superset/db_engine_specs/mysql.py
79.59% <0.00%> (-12.25%)
:arrow_down:

superset/db_engine_specs/sqlite.py
65.62% <0.00%> (-9.38%)
:arrow_down:

superset/db_engine_specs/presto.py
73.65% <0.00%> (-8.64%)
:arrow_down:

superset/databases/commands/create.py
82.97% <0.00%> (-8.52%)
:arrow_down:

superset/databases/commands/update.py
85.71% <0.00%> (-8.17%)
:arrow_down:

superset/db_engine_specs/base.py
80.53% <0.00%> (-6.94%)
:arrow_down:

... and 473 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 6f2e36d...05dbeb9. Read the comment docs.


[BUG] Backing image disk state unknown after unmount disk

Describe the bug (🐛 if you encounter this issue)
It's a minor issue and come from test case test_backing_image_with_disk_migration step 8
After unmount the disk, the backing image disk state will become unknown not failed as described in test skeleton
May need help to confirm if this is correct behavior.
Status:
  Checksum:  bd79ab9e6d45abf4f3f0adf552a868074dd235c4698ce7258d521160e0ad79ffe555b94e7d4007add6e1a25f4526885eb25c53ce38f7d344dd4925b9f2cb5d3b
  Disk File Status Map:
    13c46a83-62b0-4127-9a5c-38feee53445a:
      Last State Transition Time:  2023-08-02T07:05:15Z
      Message:
      Progress:                    100
      State:                       ready
    47c0d1ae-aad4-4116-8f21-29ca12524350:
      Last State Transition Time:  2023-08-02T07:05:25Z
      Message:
      Progress:                    100
      State:                       ready
    ff49c632-aacf-45ba-ac22-8fd8ea41493e:
      Last State Transition Time:  2023-08-02T07:06:32Z
      Message:
      Progress:                    100
      State:                       unknown

To Reproduce
Perforrm test_backing_image_with_disk_migration until step 8 or

Create a new host disk in a 3 nodes cluster
Disable the default disk and add the extra disk with scheduling enabled for the current node.
Create a backing image
Create and attach a 3-replica volume with the backing image set

There should have a replica scheduled to the new disk
There should have 3 entries in the backing image disk file status map, and each are state ready

Unmount the host disk. Verify

The disk state in the backing image will become failed
The related download pod named <Backing image name>-<First 8 characters of disk UUID> is removed.

But actually the state is unknown, backing-image-manager pod on the disk fail node is still running
Expected behavior
Backing image disk state on unmnut node should become failed and backing-image-manager pod on disk failed node removed.
Or test skeleton need have update.
Support bundle for troubleshooting
supportbundle_b5ca39ef-141a-4ce9-be61-ce5a59790294_2023-08-02T07-17-15Z.zip
Environment

Longhorn version: master-head e1f1d3
Installation method (e.g. Rancher Catalog App/Helm/Kubectl): kubectl
Kubernetes distro (e.g. RKE/K3s/EKS/OpenShift) and version: v1.27.3+k3s1

Number of management node in the cluster: 1
Number of worker node in the cluster: 3

Additional context
https://github.com/longhorn/longhorn/issues/6422

It should be unknown
When BackingImageManagerController finds that the disk is not ready, it marks the bim.Status.CurrentState = longhorn.BackingImageManagerStateUnknown then update all the BackingImages in this Manager to Unknown
https://github.com/longhorn/longhorn-manager/blob/8cdf6820620161a0e2b1e71f2994a3c4f763917c/controller/backing_image_manager_controller.go#L291-L309
https://github.com/longhorn/longhorn-manager/blob/8cdf6820620161a0e2b1e71f2994a3c4f763917c/controller/backing_image_manager_controller.go#L369-L393
cc @shuo-wu

I think @shuo-wu have refactored the BackingImage after this test skeleton
I will verified the correct behavior and update the test.

Verified pass on longhorn master(longhorn-manager d88722)
Following all steps in test skeletons to perform test_backing_image_with_disk_migration, Longhorn behaved as expected.
`


refactor: Update to M3 theme specs

[x] update to M3 specs for #345
[x] fix package lock file

An unhandled exception occurred: Cannot find module @rollup/rollup-linux-x64-gnu. npm has a bug related to optional dependencies. Please try npm i again after removing both package-lock.json and node_modules directory.

[x] fix settings dialog format
[ ] fix color picker
[ ] use targeted chart config changes, instead of full reload
[ ] evaluate package size, consider limited scope themes

[ ] Plan next steps to add web workers

Fix these cosmetic issues:

[ ] Subheading size consistency
[ ] Toggle label vertical align middle

Keep an eye out for any reasons that would duplicate overlay indicator selections (glitch).


Builds not being triggered after migration to github app

Before opening, please confirm:

[X] I have checked to see if my question is addressed in the FAQ.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

App Id
d3o2mfqbaswdfz
Region
us-west-2
Amplify Hosting feature
Not applicable
Describe the bug
New commits are not triggering builds after going through the "Migrate to our GitHub App" steps. Prior to going through those migration steps new builds would be triggered upon commit. Within Github the app appears to be configured correctly and has access to the appropriate repo etc, and I also receive a success message from within Amplify.

I do not appear to have any webhooks installed on the repo, so it seems possible that it's failing on the last step to finalize the installation, where it should delete the old webhooks and install new ones, possibly it only deleted the old and no new one was installed.

Reproduction steps

Migrate to Github App
Commit change to repo
No build is kicked off

Build Settings
No response
Additional information
No response

Hi @christophersutton 👋🏽 I'm working on reproducing this behavior and syncing with the team on a workaround. In the mean time, have you tried reconnecting your repository in general settings?

Hi @hloriana, thanks for taking a look. I just reconnected in general settings and pushed to a feature branch but it's still not picking up the commit.

That webhook workaround is easy enough, many thanks. And yes the repo does belong to a Github organization.

For a workaround, please use this guide to setup an incoming webhook and use the curl command to trigger builds: https://docs.aws.amazon.com/amplify/latest/userguide/webhooks.html
We are deep diving on this issue. Thank you for your patience!

This solution is working, thanks!

Same for us.

+1 on the issue, the connected repo is private and part of an GitHub organization. Deploys were working normally earlier today until we switched to GH Apps.
Using the webhook workaround for now, but any news on this issue @hloriana?
Thanks!

Same here, builds not being triggered after migration.

Having the same issue, i see the "Migrate to our GitHub App" banner in the console even though i've migrated successfully multiple times. any ETA for the fix? or workaround that doesn't involve webhooks?

+1 Also having this issue with a public repository owned by an organization. The configuration has always been the same until I wanted to migrate to the GitHub app. I was already using the manual webhook for release builds, but this is blocking me from having automatic preview deployments for PRs! It seems like there have been several reports of this bug and multiple supposed fixes, what's going on here?

I have it working now, I just had to re connect the repo. There is a button in the "General" section.

I tried that already about five times to no avail, even after manually deleting the github webhook.

+1 on the issue, is there a method to add back the old webhooks to Github? Or what parameters should I put in Github's settings?

Can someone provide any update on this issue?

I could use an update as well. With the move away from CodeCommit this seems like a more important issue now. I've switched to github but the lack of triggered deployments will really throw a wrench in our gears.

@SukoonAdmin Just had some luck debugging my issue. Here's the steps I took to fix it:

Check in your GitHub repo settings under webhooks to see if a webhook for amplify exists
If it doesn't you'll need to manually create one.
If manually creating one the first thing is to go to the Amplify console under the app's build settings. You can add an incoming webhook (at the bottom of the page). Create this for the necessary branch then copy the URL it creates.
Go back to GitHub and follow the process of making a new webhook. Paste the URL and give it a name like amplify webhook. No secret is nessary.
Set the Content type to application/json.
Choose "Let me select individual events" and select the relevant events like push, pull_request, etc.
Click Add webhook.

I hope this helps.

i'd also like an update on this. if the workaround is to create a separate webhook, it seems there is something incorrect with the one being established by the app

Same issue here. We migrated our code from codecommit to github since codecommit may not be eventually supported. We followed the amplify cli to update repo to github. We are able to setup branches from github now, but new commits dont auto build into amplify anymore.
We tried deleting webhook in github and recreating through reconnect repository method, but that doesnt work either. In fact on clicking "Complete installation" in reconnect section, it takes us back to amplify's all app view (doesnt show any confirmation that installation is complete).
Please advice a fix for this. Thanks.

@Jay2113 it's pretty frustrating that there is no response from the amplify team on this. creating a manual webhook isn't the greatest of workarounds either b/c there is no secret protection and if that url was discovered, anyone could just invoke it.


Multimodal Tasks with the Gemini API Won't Analyze any Image

[REQUIRED] Step 2: Describe your configuration

Extension name: Multimodal Tasks with the Gemini API)
Extension version: 0.0.9
Configuration values:
Vertex API
gemini-1.0-pro-vision-001

[REQUIRED] Step 3: Describe the problem
When Adding any type of image from any source an any size or format even in base64
The Image is not being analyzed by gemini and the Model hallucinates any random image as if given to it.
Steps to reproduce:
Use My configuration and add a document to the given collection containing an imageURL field (I named it that way). You can try adding the ImageURL Field with {{ImageURL}} field to the base prompt in extension config or you can give it via writing it in the document and use any kind of image from any source let it be from the open web or from a open storage bucket from the same Firebase Project.
Expected result
It should work with the prompt and image and give back an analysis of the image in consideration of the actual prompt regarding it.
Actual result
Either Hallucinating any random image as if it was given to it in a vivid way or just say: Give me the image or an url to it

Thanks! Looking into this now :)


NeoModal class props warning

uugghh, we still stuck with oruga old version https://github.com/kodadot/nft-gallery/issues/8479

👋


Additional Kitchen Blocks

[ ] Toaster (will turn bread into toast at no cost other than time)
[ ] Spice Rack (storage)
[ ] Dining Table (storage)
[ ] Kitchen Counter / Cupboard (storage)
[ ] Freezer (will provide snowballs and ice to recipes)
[ ] Milk Canister (will store milk as a liquid to provide to recipes)

I was thinking a great item for storage would be a pantry. You could make it like the fridge and able to stack 1 on the other.


UnifiedNLP issues in nougat?

Sorry if I ask something obvious, but I didn't find anything in the issues.
I compiled android 7 applying the patch for android 6 (it applied cleanly).
I can grant the signature spoofing right to GMS after installation, but the unified NLP provider doesn't work
GMS works well in AOSP 7, unified NLP doesn't. This is confirmed by the self-check activity.
After a reboot I see in the logs:
3159  3159 W PackageManager: Not granting permission android.permission.INSTALL_LOCATION_PROVIDER to package com.google.android.gms (protectionLevel=18 flags=0x38083e44)

Afterwards the nlp cannot start:
6009  6023 E NlpLocationProvider: Exception
6009  6023 E NlpLocationProvider: java.lang.SecurityException: need INSTALL_LOCATION_PROVIDER permission, or UID of a currently bound location provider
6009  6023 E NlpLocationProvider:   at android.os.Parcel.readException(Parcel.java:1683)
6009  6023 E NlpLocationProvider:   at android.os.Parcel.readException(Parcel.java:1636)
6009  6023 E NlpLocationProvider:   at android.location.ILocationManager$Stub$Proxy.reportLocation(ILocationManager.java:1306)
6009  6023 E NlpLocationProvider:   at com.android.location.provider.LocationProviderBase.reportLocation(LocationProviderBase.java:136)
6009  6023 E NlpLocationProvider:   at org.microg.nlp.location.BackendFuser.updateLocation(BackendFuser.java:101)
6009  6023 E NlpLocationProvider:   at org.microg.nlp.location.BackendFuser.reportLocation(BackendFuser.java:132)
6009  6023 E NlpLocationProvider:   at org.microg.nlp.location.BackendHelper$Callback.report(BackendHelper.java:157)
 6009  6023 E NlpLocationProvider:   at org.microg.nlp.api.LocationCallback$Stub.onTransact(LocationCallback.java:55)
6009  6023 E NlpLocationProvider:   at android.os.Binder.execTransact(Binder.java:565)

Am I missing something obvious? The protectionlevel in the manifest are signature|privileged hence it should be working from what I understand.

Some people reported that in some ROM it works only when it is a system app but I'm not sure.

It used to work fine in aosp 6.0 and 6.0.1, I wasn't expecting the same patch to work on android 7 but it did.
I noticed something weird though: on android 6 the gms app was listed as such in fdroid, now it's listed as 'ug unifiedNlp (noGapps)'. Could this be a symptom that some other system app was compiled and is interfering with microg?

It is a bug/missing features in F-Droid (it cannot detect correctly the app with signature spoofing), it has nothing to do with the Android version.

Sorry if I insist, but I went from a self compiled aosp 6.0 source tree (with signature spoofing patch) to a self compile 6.0.1 source tree (with signature patch) and fdroid could detect the app just fine.
Then I self compiled aosp 7.0 source tree (with signature spoofing patch from android 6) and fdroid misdetects the app.
It seems to me it depends on the android version.

It's definitely something that changes in android 7. I get the warning
W PackageManager: Not granting permission android.permission.INSTALL_LOCATION_PROVIDER to package com.google.android.gms (protectionLevel=18 flags=0x38083e44)

even when using pm to install the package:
pm install-create -g -i com.google.android.gms
pm install-write <session> app /path/to/apk
pm install-commit <session>

every permission is granted (as it should happen with flag -g) but INSTALL_LOCATION_PROVIDER

How I alread said it is possible that this permission is granted only to apps in /system/priv-app although I'm not sure.
Have you tried just in case?
If you read over the internet a lot of people have the "detection" problem before Android 7 even exist.

First: this issue would usually belong to the UnifiedNlp repo.
As you build AOSP from source, the problem is probably somewhere else: AOSP is not compatible with network location providers (neither original version nor microG). Please check the details of microg/android_packages_apps_UnifiedNlp#55 for details on how to fix AOSP (this is for the AOSP-based Fairphone OS, but the requirements are the same). To my knowledge there haven't been any relevant changes between Android 6 and Android 7 in regard of network location providers.
The behaviour of INSTALL_LOCATION_PROVIDER not being granted is intentionally on current Android versions and was the case on Android 6.0 as well, you can safely ignore the message.
The issue with F-Droid is a known problem and has nothing to do with the Android version (it's not completely random, but you can safely consider it as such).

Alright, closing this and going to check https://github.com/microg/android_packages_apps_UnifiedNlp/issues/55 . Anyway on android 6 I did no further modifications to AOSP tree besides applying the patch provided in this repo.

Just to confirm, I've moved microg to /system/priv-app/, and location now works.

@pejakm how did you move it, just with mv as root? Or something more complex?

I botted into TWRP, mounted /system read-write, then ran mv /data/app/com.google.android.gms* /system/priv-app and rebooted, looks like it's working now.


Monsters are broken : Monsters not present in <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>

no monsters and no monster dll sidercar in release. This would ruin any dungeon that used them. The sidecar idea is obviously unreliable and should be abandoned because of this major flaw
This is obviously a bug rather than deliberate decision as removing content unilaterally and without notification (or update in changelog) because of bug reports would go against the philosophy of the mod as a "community effort where everything is optional".
The files in the side car do not match the files from PR #947 and the sidecar in general should be removed. Instead PR#947 should be reinstated

fixed on https://github.com/SolastaMods/SolastaCommunityExpansion/pull/1195


Refactor contentLength to use byteLength

The contentLength was previously calculated from the string length property.
This does not account for multi-byte characters.
Thus we will get the following error when using unicode characters such as, ¿:
 Request body length does not match content-length header

Closing this PR as we can't rely on Buffer being present in all contexts; I expect we'll have a release out tomorrow.


About convert.py

What is this file used for? Convolution parameter fusion in the inference stage is not directly read from the training model, but after the training model is converted by convert.py, then inference is performed?

What is this file used for? Convolution parameter fusion in the inference stage is not directly read from the training model, but after the training model is converted by convert.py, then inference is performed?

This file is used for converting ECBSR to a specific frontend for hardware deployment. For example, if you would like to deployt the ECBSR to MNN, you need to convert the pth model to onnx/pb/tflite, then use the toolchain of MNN for the rest steps. Or if you want to quantized the model with tensorflow, you can convert the model to pb-ckpt, then use the tools provided by tensorflow to quantize the model to int8-arithmetic.

Then the model after convert.py is the original training model, and does not use the re-parameter mechanism? So every time I make inferences, I need to perform a re-parameter step,Is that right？

Then the model after convert.py is the original training model, and does not use the re-parameter mechanism? So every time I make inferences, I need to perform a re-parameter step,Is that right？

Not really. The convert.py is used for converting the trained rep-parameterized model into a plain & neat model which is friendly for hardware deployment. One thing to be noted that, the reparameterization mechanism is activated on training mode, and each rep-block are folded back into a normal conv for inference.


Honeypot inserts input as text box rather than hidden field

The input inserted into forms by the Honeypot middleware use type="text". This puts an actual text box on the page. Shouldn't it be using type="hidden" so that it is actually hidden from real users?

You know what, scratch that. Stupid me not reading all the docs. Please just ignore this and forgive my ignorance... :tired_face:


TRG 1.01: Information about Policy Hub missing in Readme.

Current Behavior

./README.md does not contain information about the Policy Hub application.
Expected Behavior

Per TRG 1.01 we expect some information about the application or a link to the documentation explaining it.

fixed with #145


[TESTS] Add tests for matmul with out_dtype=float16

Currently, it is always None which defaults to float32
https://github.com/openai/triton/blob/f21b36c8c54f35a88e96d7217e2c6bc9cc02ee69/python/test/unit/operators/test_matmul.py#L179
I believe Hopper tests do cover it but it should be tested for non-Hopper as well.
https://github.com/openai/triton/blob/f21b36c8c54f35a88e96d7217e2c6bc9cc02ee69/python/test/unit/hopper/test_gemm.py#L223

It is tested here:
https://github.com/openai/triton/blob/main/python/test/unit/language/test_core.py#L2200


feat(gas): prepare call gas calculations

Feature Request

Calculate the MessageCallGas (cost and stipend) for executing call Opcodes.
Return this value from the prepare_call function
Charge gas accordingly in call opcodes

@enitrat I am taking this one.

@bajpai244 I just noticed I go confused and opened a duplicate #645


Spelling error in README.md

What:
reference was spelled as renference
Why:
could confuse people
How:
Text change

Thanks @PiereDome!


Support independent action for removed views

Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests


ActionView::Template::Error (File to import not found or unreadable: refinery/site_bar.

We were testing out the latest Refinery (HEAD) and, while it works pretty well in development, we get an error in production.
ActionView::Template::Error (File to import not found or unreadable: refinery/site_bar.
Load path: /Users/treybean/Sites/intermountain_cng
(in /Users/treybean/.rvm/gems/ruby-1.9.2-p290@intermountain_cng/bundler/gems/refinerycms-ff5375767781/core/app/assets/stylesheets/refinery/refinery.css.scss)):
4:   <%= yield :meta %>
5:   <%= ::Refinery::Setting.find_or_set(:site_name, 'Company Name') -%> - Refinery
6:   <%= csrf_meta_tag %>
7:   <%= stylesheet_link_tag 'refinery/refinery' %>
8:   <%= yield :stylesheets %>
9:   <%= render :partial => "refinery/admin/javascripts" %>
10:
Rendered<EMAIL_ADDRESS>(1.3ms)
Rendered<EMAIL_ADDRESS>(0.9ms)
Rendered<EMAIL_ADDRESS>within rescues/layout (4.7ms)
Using:

ruby 1.9.2-p290
refinery HEAD @ ff5375767781 on a fresh install.
rails 3.1.0.rc6

Steps to reproduce on OSX 10.7.1

./refinerycms/bin/refinerycms test_refinery
cd test_refinery/
RAILS_ENV=production bundle exec rake db:migrate
bundle exec rails s -e production
open http://localhost:3000
blam!

+1 this fixed my issue referenced by parndt


Navigation after login

Hi. React-native-router-flux allows authenticated users to be navigated to a main scene bucket from the login screen after login. Can that be achieved with react-navigation? If so, possible to advise how to achieve this using react-navigation? Tq

@myhendry There is a ReduxExample that you can use for inspiration :+1:

Thanks Alan :)


Added monthsTitle to Latvian locale

Hi,
I've added missing "monthsTitle" property in Latvian language.
Thanks.

Q
A

Bug fix?
yes

New feature?
no

BC breaks?
no

Related tickets
N/A

License
MIT

Thanks @chuvikovd!


understanding permission handler in flutter apps

NOTE: All 1st-time contributors should know Topic approval and PR submission does NOT guarantee your Topic/Article will be published. Our team of Peer Reviewers and Content Moderators will review all PRs that come in to make sure they adhere to the standard of quality we expect from the EngEd community.
We expect all community memebers to go through provided examples, resources, and previously published material before submitting content. As a rule of thumb, please only submit articles (pull requests) that are complete, formatted correctly, and include a fully polished article (ready to be published and error free).
All revisions and edits should be completed on your own forked repo (as to not take up room in the queue). Any PR that is submitted incomplete (meaning not ready to be published as is) will be closed. A PR being closed does NOT mean the article can not be published (or fixed) it simply means that the edits, revisions, and fixes will happen outside of the queue.
Topic Suggestion
Enter topic suggestion here...
Pre-submission advice
By following all our pre-submission advice and reviewing our Resources folder, you will maximise your chances of your topic being approved.
We ask that you please be patient as our team works through approving and publishing all articles/tutorials in a timely manner.
Allow 1-3 days for a topic to be reviewed and/or approved - allow 3-7 days for an articles to be reviewed and/or published (subject to vary depending on volume and/or backlog of articles).
Be sure to visit our Resources Page for tools, resources, and example articles that will help you propose and write a successful article.
Please ensure that you have only one open issue + linked pull request at a time. This will ensure that we complete the article in a timely manner from inception to publishing.)
We tend to stray away or tend not to publish reviews/comparisons of commercial product offerings.
Writing sample(s):
Include any links or writing samples - to help our team better gauge your writing quality.
Proposal Submission
Proposed title of article
understanding permission handler in flutter apps.
Use keyword research to improve your article's SEO.
Proposed article introduction
In android when a user wants to switch off a permission, there is always an option to switch off permissions.
Users can turn off access to required permissions for particular applications. This reason creates confusion among people who are new to android & flutter. Especially when they try to do similar activities with Flutter apps. There is no option to switch off the access for any permission.
So, what will happen if a user tries to revoke permission from flutter apps? Will it create issues in android or not? This article attempts to answer these questions.
In this article, we are going to see how Flutter apps ask permission from the user. We will also learn how to implement the logic to avoid crashes when the user revokes the permissions. We will discuss how to add the permission options in flutter apps.
For example, if the article is based on machine learning, use the following: [Machine learning] Introduction to Machine Learning.
If the article is based on developing an Android application, use the following: [Android] Developing Apps using Android.
ONLY viable topics to pick from:

API
Artificial Intelligence
Blockchain
Containers
Edge Computing
Languages
Machine Learning
Networking
Node.js
Security

Key takeaways

adding permission requests to a flutter app.
how the flutter engine manages permissions.
what use cases are best for custom permission handlers.

Article quality
This article explains flutter's permissions model in detail. We will be teaching you how to make custom handlers. We will show the workflow for both iOS and Google Play store permission systems. We will show use cases for custom handlers. covers Android custom permissions at a very low level, although not required knowledge.
References
Please list links to any published content/research that you intend to use to support/guide this article.
Conclusion
Finally, remove the Pre-Submission advice section and all our blockquoted notes as you fill in the form before you submit.
We look forwarding to reviewing your topic suggestion.
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

good topic @jasminemilito - approved. Thanks for submitting your article and we look forward to reviewing and hopefully publishing it. I’m sure our readers will enjoy and find your tutorial very beneficial.
From your description I can easily predict that you will use the permission_handler package. Please make sure to provide more in-depth information as you have stated in your description.
🚀

Also, in future suggestions, please take note of this section in the conclusion:

Finally, remove the Pre-Submission advice section and all our blockquoted notes as you fill in the form before you submit.

Make your suggestion clean so we can easily review it.


WASD plugin not consuming input correctly

When moving with WSAD and then pressing enter, the typed text will be sent as message.

I can't reproduce this.

Can't reproduce this either

I can also reproduce this on Mac.

This was fixed in 1f82fe4c8d0c330cd1019fe994895f6a8e029f8d


Miscellaneous Questions About the Solito Stack

I'm about to build my own product using a very similar stack to your Next/Expo one and had a couple questions if you'd be nice enough to answer them:

Are you using Firebase? How has that experience been with Expo? Anything I should be careful about? Specifically I like SWR and noticed your https://github.com/nandorojo/swr-firestore repo and also noticed Expo tries to cater to the Firebase crowd with https://docs.expo.dev/guides/using-firebase/
Suuuper interested to hear about this whole "using params for state management" thing you're doing. If you could point me towards any articles/videos/etc about that, or just give me a quick rundown on why you're doing that, that would be greatly appreciated.

Thank you again for all your help, transparency, and tools you're developing to make this stack an enjoyable experience!

yes, but just for auth. on the backend we’ve used firestore for over a year, but we’re changing to a dgraph graph db. if you’re good at backend caching and stuff, firestore should be okay for most stuff. it worked well for us. but i didn’t do the backend there, my cofounder did. firebase auth is great. we use RNFB on ios and firebase JS on Web.

my next.js talk (and the code on my website, linked to at the end) covers this.

talk: https://www.youtube.com/watch?v=0lnbdRweJtA
resources (including useParam hook): http://fernandorojo.co/conf

I'm all about DGraph (graph dbs > everything). Your stack keeps getting better and better.

my next.js talk (and the code on my website, linked to at the end) covers this.
I saw the talk but maybe I missed the part where you went over why you use it. https://gist.github.com/nandorojo/052887f99bb61b54845474f324aa41cc clarifies and is really interesting. I like that pattern a lot.

Alright, thank you so much for all your help!

I also discussed this stack in this podcast: https://reactnativeradio.com/episodes/rnr-224-react-native-web-on-nextjs-with-fernando-rojo
at minute 20:50, I go deeper into reasoning for using URLs/query parameters for our React State.

Very cool. Doing chores now so I'll definitely give it a listen! Thank you again.

@nandorojo Thoughts on using something like Turborepo with https://www.npmjs.com/package/@turborepo/adapter-expo for Solito?

I wouldn't use that, I think it's outdated. This is my metro file:
// Learn more https://docs.expo.io/guides/customizing-metro
/**
 * @type {import('expo/metro-config')}
 */
const { getDefaultConfig } = require('expo/metro-config')
const path = require('path')

const projectRoot = __dirname
const workspaceRoot = path.resolve(__dirname, '../..')

const config = getDefaultConfig(__dirname)

config.watchFolders = [workspaceRoot]
config.resolver.nodeModulesPath = [
  path.resolve(projectRoot, 'node_modules'),
  path.resolve(workspaceRoot, 'node_modules'),
]

config.transformer = {
  ...config.transformer,
  minifierPath: require.resolve('metro-minify-esbuild'),
  minifierConfig: {},
}

module.exports = config

I also installed metro-minify-esbuild

Yeah I figured it was outdated, but there are some other boilerplates like https://github.com/Enricopv/turbo-boilerplate that use Turborepo. I suppose my question is more generic: what do you think of Turborepo?

it seems useful, i use it for the next side. I don’t really see what value it adds for expo though. I’ve asked many times on twitter and get nothing. they don’t do remote caching for EAS, so i’m not sure what else it could do exactly, since you don’t want it for running expo start

What monorepo do you prefer and what is the folder structure? Tried looking at Solito examples but it's not ready. :(

@corysimmons Hey, im also trying out solito recently.
I made minimal monorepo example here. Hope this helps a little!

@kuk941025 That's awesome! Thank you so much!

@nandorojo Is there any chance of getting Solito (solito/link) to work outside of Next? Specifically I would love to use it across Next, Expo, and a Preact SPA. I looked at the solito/link build and noticed it uses next/link.

My plan with this library is to target Next.js on the Web side. However, you could peak into the Link code and fork it for any other Web libraries too.

Okay thank you.


Update and Add Tests for FileSet, Collocator and SPAREICE

Owing to the recent development of these classes, there are just a few tests working and most of them are obsolete. Hence, they need a review and many tests must be added. This issue acts as a ToDo list for tests and will be updated in future.
FileSet and FileHandler

[ ]  Test FileSet.align
[ ]  Test MHS_HDF.read
[ ]  Test AVHRR_HDF.read
[ ]  Test CloudSat.read

Collocator, Collocations and related functions

[ ]  Test Collocator.collocate
[ ]  Test Collocator.collocate_filesets or Collocations.search
[ ]  Test collapse
[ ]  Test expand

SPAREICE

[ ]  Test SPAREICE.retrieve
[ ]  Test SPAREICE.retrieve_from_collocations

@olemke and @lkluft ,
I would like to test the file handler of MHS, etc. Do you know a good way of doing this? For instance, is it possible to ship an original MHS file as test case?

Since it's likely that other similar test files need to be added in the future and they're of considerable size, it is not feasible to have them inside the typhon repository itself.
After discussion with @lkluft, we came to the conclusion that we should have a separate typhon-testfiles repository which can be optionally checked out alongside typhon. If this repository is present (location could also be set by the user via an environment variable TYPHONTESTFILES) the tests that require these additional files are executed and otherwise skipped.

I like this idea of separation. But wouldn't it be more consistent to move all test scripts and files (i.e. typhon/tests) to that repository?

The tests should always be part of the main package. Tests that need larger input files to run are an exception. Usually tests don't need any input files at all. Not being able to run tests without checking out a second package would be very inconvenient.
Having them separate from the main typhon package would also require two pull requests to add code and tests. We already get complaints that doing one pull request to commit code is too much of a hassle, requiring two would be a death sentence for test contributions.


luci-app-ocserv: uclibc's crypt() doesn't support sha2crypt

Signed-off-by: Nikos Mavrogiannopoulos<EMAIL_ADDRESS>

Thanks!


V2 - Company Not Found - Organization website does not accept capital letters

Prerequisite

Create a CLA group with CCLA enabled (I tried the flow where CLA Group is at foundation level and there is only 1 subproject for the foundation)
Add github repository for the CLA group

Steps to Follow

Login to Github as corporate contributor
Navigate to the repository used in prerequisite
Create PR
CLA check fails
Click on CLA NOT SIGNED
Contributor is redirected to Contributor Console
Click on Proceed as a Corporate Contributor
Click on building icon
Click on Organization not listed? + Click Here
Enter capital letter for organization website
Organization website should be valid URL. error message is displayed

with small letters

@nirupamav As per regex mentioned on org-service, only small characters are allowed. If you want capital letters then we need to change regex from org-service itself.

Verified that the issue is fixed


e2e test fails because of missing maven build dependency

There is an e2e test having the following BUILD.bazel file:

specs2_ite2e_test(
name = "e2e",
size = "large",
srcs = [
":sources",
],
data = [
"//tgs/vap-tgs-search-v7",
"//third_party/docker_images:vespa_7.tar",
],
jvm_flags = [
"-Dvap='$(rootpaths //tgs/vap-tgs-search-v7)'",
],
runtime_deps = [
"//e2e/src/it/resources",
],
deps = [
...
],
)

It depends on //tgs/vap-tgs-search-v7 artifact having the following BUILD.bazel file:

package(default_visibility = ["//visibility:public"])
load("@core_server_build_tools//packager:publisher.bzl","publisher_tags")
load("@wix_incubator_bazelizer//maven:defs.bzl", "maven_project")
load("@bazelizer//:execute_build.bzl", "execute_build")
filegroup(
name = "source",
srcs = glob([
"src//*",
"assembly//*",
]),
)
maven_project(
name = "maven",
flags = [
"--deps-drop-all",
"--deps-drop-exclude", "com.yahoo.vespa:*",
"--mvn-active-profiles", "vespa_7",
],
parent_project = "//srs/3party:maven_vespa_7",
pom_file = ":pom.xml",
)
execute_build(
name = "vap-tgs-search-v7",
srcs = [":source"],
project = ":maven",
outputs = [
"application.zip",
"vap-tgs-search-v7-1.0.0-SNAPSHOT.tar.gz",
],
tags = publisher_tags(
"com.wixpress.search.tgs",
"vap-tgs-search-v7",
"tar.gz",
classifier = "",
) + ["deployable"],
) + [""], # to make it build locally
deps = [
    "//deviantart/da-searcher-components:agg=._da-searcher-components-bundle-deps-v7",
],

)
The bazel test command fails:
bazel test //e2e/src/it/scala/com/wixpress/search/tgs/vap_tgs_search_v7/...
...
org.specs2.specification.core.FatalExecution: java.nio.file.NoSuchFileException: tgs/vap-tgs-search-v7/application.zip
Caused by: java.nio.file.NoSuchFileException: tgs/vap-tgs-search-v7/application.zip
...
We see that the following dependency file is missing:
/private/var/tmp/_bazel_gregoryb/96006f863e737e544cd95e9f71f4b21f/execroot/vespa_services/bazel-out/darwin-fastbuild/bin/e2e/src/it/scala/com/wixpress/search/tgs/vap_tgs_search_v7/e2e_test_runner.runfiles/vespa_services/tgs/vap-tgs-search-v7/application.zip

@jamesbond7 could you please run bazel build //tgs/vap-tgs-search-v7 explicitly?  Pay attention to what actually it produces as outputs at the end.
For example: for this repository e2e test it can be something like this
bazelisk build //tests/e2e/mvn-lib:mvn-lib
.....
....
Target //tests/e2e/mvn-lib:mvn-lib up-to-date:
    bazel-bin/tests/e2e/mvn-lib/libmvn-lib.jar
    bazel-bin/tests/e2e/mvn-lib/libmvn-lib_pkg.tar
    bazel-bin/tests/e2e/mvn-lib/a-1.0.0-SNAPSHOT.jar
INFO: Elapsed time: 4.619s, Critical Path: 4.48s
INFO: 1 process: 1 darwin-sandbox.
INFO: Build completed successfully, 2 total actions

In your case somewhere in this outputs should be application.zip. Also, it is worth checking if it is the correct output. For my example I will do it like
zipinfo bazel-bin/tests/e2e/mvn-lib/a-1.0.0-SNAPSHOT.jar
Archive:  bazel-bin/tests/e2e/mvn-lib/a-1.0.0-SNAPSHOT.jar
Zip file size: 2539 bytes, number of entries: 10
drwxr-xr-x  2.0 unx        0 b- stor 22-Nov-04 13:42 META-INF/
-rw-r--r--  2.0 unx      136 b- defN 22-Nov-04 13:42 META-INF/MANIFEST.MF
.....
.....

My aim in this questions
I am interested in the outputs that target the process to understand the root cause. Possibly the problem is not in //tgs/vap-tgs-search-v7 but in e2e test that tries to use it.
Will wait for your reply.
Regards, Bohdan

It looks like this patch fixed the issue: https://github.com/wix-incubator/bazelizer/commit/d8ba23e053a5a4ce9d6a6cbd438e23164a1e9867

Sounds good, and looks like it really make sense
On Fri, 4 Nov 2022 at 15:03, Gregory Bondar @.***>
wrote:

It looks like this patch fixed the issue: d8ba23e
https://github.com/wix-incubator/bazelizer/commit/d8ba23e053a5a4ce9d6a6cbd438e23164a1e9867
—
Reply to this email directly, view it on GitHub
https://github.com/wix-incubator/bazelizer/issues/33#issuecomment-1303506477,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABJNDXSSD2PMX26ZS44YXQTWGUCTPANCNFSM6AAAAAARQKDBEA
.
You are receiving this because you commented.Message ID:
@.***>


Recommendation: Make job's states selectively wait

Current behavior:
In our current state machine pattern, in order not to make the state machine stuck when running in process. We need to let them yield after each update() call.
Meanwhile, it is beneficial for some states to wait since they may stay in one state for a long time, such as upload/download.
We should make each state determine whether they want to wait and how long should they wait to avoid unnecessary waiting and allow every state machine to run in process.

@JasonYeMSFT doesn't remember why he opened this. Closing! 🙃


Unable to share screen on version 0.42+

Already reported ? *

[X] I have searched the existing open and closed issues.

Regression?
Yes
System Info and Version
 System/Version info
Hyprland, built from branch  at commit 918d8340afd652b011b937d29d5eea0be08467f5  (flake.lock: update).
Date: Tue Jun 25 12:06:02 2024
Tag: v0.41.2, commits: 4886

flags: (if any)

System Information:
System name: Linux
Node name: daemon
Release: 6.11.2-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Fri, 04 Oct 2024 21:51:11 +0000

GPU information:
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 32 [Radeon RX 7700 XT / 7800 XT] [1002:747e] (rev c8) (prog-if 00 [VGA controller])

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:

======Config-Start======

Config File: /home/josh/.config/hypr/hyprland.conf: Read Succeeded
################
### MONITORS ###
################

# See https://wiki.hyprland.org/Configuring/Monitors/
monitor = HDMI-A-1<EMAIL_ADDRESS>0x0, 1, bitdepth, 10, vrr, 1
monitor = DP-3<EMAIL_ADDRESS>3840x0, 1, bitdepth, 10, transform, 1

####################
### WORKSTATIONS ###
####################

workspace = 1, monitor:HDMI-A-1, persistent:true, default:true
workspace = 2, monitor:DP-3, persistent:true, default:true, layoutopt:orientation:top

###################
### MY PROGRAMS ###
###################

$terminal = wezterm
$fileManager = dolphin
$menu = wofi --show drun
$ms-edge = microsoft-edge-stable --password-store=kwallet -enable-features=UseOzonePlatform -ozone-platform=wayland
$signal = signal-desktop --use-tray-icon --ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-webrtc-pipewire-capturer
$brave = brave --password-store=kwallet --ozone-platform-hint=auto --ozone-platform=wayland
$youtube = flatpak run com.stremio.Stremio
$vpn = flatpak run com.protonvpn.www

####################
###  OTHER VARS  ###
####################

$scripts = ~/.config/hypr/scripts
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER

#################
### AUTOSTART ###
#################

# Auth and Keyring
exec-once = /usr/lib/polkit-kde-authentication-agent-1
exec-once = /usr/lib/pam_kwallet_init

# Clipboard
exec-once = wl-paste --type text --watch cliphist store #Stores only text data
exec-once = wl-paste --type image --watch cliphist store #Stores only image data

# Other
# exec-once = dbus-update-activation-environment DISPLAY XAUTHORITY WAYLAND_DISPLAY
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = waybar & hyprpaper & dunst & hyprctl dispatch workspace 1 & xrandr --output HDMI-A-1 --primary & zsh -c $scripts/speakers-tv.zsh

#############################
### ENVIRONMENT VARIABLES ###
#############################

# Toolkit Backend Variables
env = GDK_BACKEND, wayland
env = QT_QPA_PLATFORM, wayland;xcb
# env = SDL_VIDEODRIVER, wayland
env = CLUTTER_BACKEND, wayland

# XDG Specifications
env = XDG_CURRENT_DESKTOP, Hyprland
env = XDG_SESSION_TYPE, wayland
env = XDG_SESSION_DESKTOP, Hyprland

# Qt Variables
env = QT_AUTO_SCREEN_SCALE_FACTOR, 1
env = QT_WAYLAND_DISABLE_WINDOWDECORATION, 1
env = QT_QPA_PLATFORMTHEME, qt6ct

# Other
env = ELECTRON_OZONE_PLATFORM_HINT, wayland
env = HYPRCURSOR_THEME, rose-pine-hyprcursor
env = HYPRCURSOR_SIZE, 24
env = XCURSOR_SIZE, 24
env = WLR_DRM_NO_ATOMIC, 1
env = WLR_NO_HARDWARE_CURSORS, 1

# Workaround for GTK4 bug
# env = GSK_RENDERER, ngl

#####################
### LOOK AND FEEL ###
#####################

general {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    gaps_in = 5
    gaps_out = 10

    border_size = 2

    col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
    col.inactive_border = rgba(595959aa)

    layout = master

    # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
    allow_tearing = true
}

decoration {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    rounding = 10

    active_opacity = 1.0
    inactive_opacity = 1.0

    drop_shadow = yes
    shadow_range = 4
    shadow_render_power = 3
    col.shadow = rgba(1a1a1aee)

    blur {
        enabled = true
        passes = 3
        size = 3
        ignore_opacity = true
    }
}

animations {
    enabled = yes

    # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more

    bezier = myBezier, 0.05, 0.9, 0.1, 1.05

    animation = windows, 1, 7, myBezier
    animation = windowsOut, 1, 7, default, popin 80%
    animation = border, 1, 10, default
    animation = borderangle, 1, 8, default
    animation = fade, 1, 7, default
    animation = workspaces, 1, 6, default
}

dwindle {
    # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
    pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = true # you probably want this
}

master {
    # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
    allow_small_split = true
    orientation = center
    always_center_master = true
    mfact = 0.4
}

misc {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    disable_hyprland_logo = true
    disable_splash_rendering = true
    force_default_wallpaper = 0
    #focus_on_activate = true
}

#############
### INPUT ###
#############

input {
    kb_layout = us
    kb_variant =
    kb_model =
    kb_options =
    kb_rules =

    follow_mouse = 1
    #mouse_refocus = false

    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.

    touchpad {
        natural_scroll = false
    }
}

gestures {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    workspace_swipe = false
}

# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
device {
    name = epic-mouse-v1
    sensitivity = -0.5
}

###################
### KEYBINDINGS ###
###################

# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, T, exec, $terminal
bind = $mainMod, W, killactive,
bind = $mainMod, F, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, R, exec, $menu
#bind = $mainMod, P, pseudo, # dwindle
#bind = $mainMod, J, togglesplit, # dwindle

bind = $mainMod, A, exec, pwvucontrol

# Start your web browser
bind = $mainMod, B, exec, $brave
#bind = $mainMod, B, exec, microsoft-edge-stable --password-store=kwallet -enable-features=UseOzonePlatform -ozone-platform=wayland
bind = $mainMod SHIFT, B, exec, chromium --password-store=kwallet5 --ozone-platform-hint=auto --ozone-platform=wayland
#bind = $mainMod SHIFT, B, exec, chromium --password-store=kwallet5 --ozone-platform-hint=auto --ozone-platform=wayland
bind = $mainMod CTRL, B, exec, firefox
bind = $mainMod ALT, B, exec, $ms-edge --inprivate

# Passwords
# bind = $mainMod, P, exec, $brave --app-id=hkhckfoofhljcngmlnlojcbplgkcpcab
bind = $mainMod, P, exec, proton-pass --password-store=kwallet5 --ozone-platform-hint=auto --ozone-platform=wayland
bind = $mainMod SHIFT, P, exec, kwalletmanager5
bind = $mainMod CTRL, P, exec, zsh -c secret

# Games
bind = $mainMod, G, exec, steam
bind = $mainMod SHIFT, G, exec, heroic
bind = $mainMod ALT, G, exec, ludusavi

# Media
bind = $mainMod, Y, exec, freetube
#bind = $mainMod, Y, exec, $ms-edge --app-id=agimnkijcaahngcdmfeangaknmldooml
bind = $mainMod SHIFT, Y, exec, stremio

# VPN
bind = $mainMod SHIFT, V, exec, $proton_vpn

# Programming
# bind = $mainMod, C, exec, code --ozone-platform-hint=auto --enable-features=WaylandWindowDecorations
bind = $mainMod, C, exec, cursor

# Data
bind = $mainMod, D, exec, $brave --app-id=fnnddiokljlbkmeppnclajginnfbffgb

# Messaging
bind = $mainMod, M, exec, $signal
bind = $mainMod SHIFT, M, exec, slack --ozone-platform-hint=auto --enable-features=WebRTCPipeWireCapturer
bind = $mainMod ALT, M, exec, teams-for-linux --enable-features=WebRTCPipeWireCapturer
bind = $mainMod CTRL, M, exec, Discord --ozone-platform-hint=auto --enable-features=WebRTCPipeWireCapturer

# BLUETOOTH
bind = $mainMod, F5, exec, zsh -c bt-stunners-connect

# Email
# bind = $mainMod, E, exec, $brave --app-id=jnpecgipniidlgicjocehkhajgdnjekh
bind = $mainMod, E, exec, proton-mail --ozone-platform=wayland --enable-features=UseOzonePlatform,WaylandWindowDecorations

# Calendar
bind = $mainMod SHIFT, C, exec, $brave --app-id=ojibjkjikcpjonjjngfkegflhmffeemk

# Note taking
bind = $mainMod, N, exec, obsidian --ozone-platform=wayland --enable-features=UseOzonePlatform,WaylandWindowDecorations

# System
bind = $mainMod, F10, exec, systemctl suspend
bind = $mainMod SHIFT, F10, exec, shutdown now -r
bind = $mainMod CTRL, F10, exec, shutdown now

# Screen Capturing
bind = $mainMod, X, exec, zsh -c screen-capture-area-note
bind = $mainMod SHIFT, X, exec, zsh -c screen-record-area
bind = $mainMod ALT, X, exec, zsh -c screen-capture-window-copy
bind = $mainMod CTRL, X, exec, zsh -c $scripts/screen-capture-area-copy.zsh

# Monitor
bind = $mainMod, F1, exec, zsh -c $scripts/monitor-refresh-60.zsh
bind = $mainMod SHIFT, F1, exec, zsh -c $scripts/monitor-refresh-120.zsh
bind = $mainMod, F2, exec, zsh -c $scripts/monitor-2-off.zsh
bind = $mainMod SHIFT, F2, exec, zsh -c $scripts/monitor-2-on.zsh
# bind = $mainMod, F2, exec, zsh -c monitor-res-2k
# bind = $mainMod, F3, exec, zsh -c monitor-bitdepth-10
# bind = $mainMod SHIFT, F3, exec, zsh -c monitor-bitdepth-8

# Audio
bind = $mainMod, F3, exec, zsh -c $scripts/speakers-tv.zsh

# Other Tools
bind = $mainMod, A, exec, $ms-edge --app-id=eoijjdmppnkkcdhjpnnalmhdfjhkiidi

# Master Layout Controls
bind = $mainMod, Z, layoutmsg, focusmaster
bind = $mainMod SHIFT, Z, layoutmsg, swapwithmaster
bind = $mainMod ALT, Z, layoutmsg, addmaster
bind = $mainMod CTRL, Z, layoutmsg, removemaster

# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d

bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d

bind = $mainMod SHIFT, H, movewindow, l
bind = $mainMod SHIFT, L, movewindow, r
bind = $mainMod SHIFT, K, movewindow, u
bind = $mainMod SHIFT, J, movewindow, d

# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6

bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10

# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10

# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic

# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1

# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

##############################
### WINDOWS AND WORKSPACES ###
##############################

workspace = 1, monitor:HDMI-A-1, persistent:true, default:true
workspace = 2, monitor:DP-3, persistent:true, default:true, layoutopt:orientation:top

# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this
windowrulev2 = immediate, title:^(THE FINALS)$
windowrulev2 = immediate, title:^(Pal)$
#windowrulev2 = workspace 2, class:^(Slack)$
#windowrulev2 = workspace 2, class:^(signal)$
windowrulev2 = workspace 2, class:^(obsidian)$
windowrulev2 = workspace 1, title:^(Path of Exile)$
windowrulev2 = immediate, title:^(Path of Exile)$
windowrulev2 = immediate, title:^(DOOMEternal)$
windowrulev2 = immediate, title:^(Need for Speed™ Heat)$
windowrulev2 = immediate, title:^(Baldur's Gate 3)$
windowrulev2 = immediate, title:^(Cyberpunk 2077)$
windowrulev2 = immediate, title:^(Resident Evil 4)$

======Config-End========

Description
I'm unable to share my screen in Google Meets or OBS on every hyprland version since 0.41.2-3. I also tried the newest 0.44 but got the same result.
Let me know what logs I can include that would be helpful. I'll post my journalctl output after work since I need screen sharing working right now. The logs didn't show any errors the last I looked though.
How to reproduce
Install any version of hyprland post 0.41 and attempt to share screen with Google Meets or OBS.
Crash reports, logs, images, videos
No response

what's the xdph version? I feel like this is the wrong repo.

can you bisect then?

same problem! hyprland 0.44.0 (01c2ff34 commit) aquamarine 0.4.3 (9874e08 commit)

As a workaround on my system I switched my monitors from 10 to 8 bitdepth and now everything works.

@JoshElias I got hit by this one as well, and your workaround works!

does 0.45 fixed it? I checked obs, found can not add screen and window source. when back to xfce x11, the sources are on the menu, any workaround?

does 0.45 fixed it? I checked obs, found can not add screen and window source. when back to xfce x11, the sources are on the menu, any workaround?

Not on my system :(.
What I did was create a keybind that toggles 10 bit so I just hit that before I need to share my screen. Not ideal but makes it less inconvenient.
Not even sure it's a bug in Hyprland itself. Could be aquamarine or the xdg-deaktop-portal-hyprland.

does 0.45 fixed it? I checked obs, found can not add screen and window source. when back to xfce x11, the sources are on the menu, any workaround?

@vincentaxhe on my system OBS always worked even with 10 bit, it was Firefox and Chrome who refused to share screen on meet.google.com, I just disabled it since I cannot tell the difference that much anyways...

It must be a wayland thing, I try labwc and cosmic, same as hyprland, I try manually install hyprland 0.45, somehow can not login, I have to roll back with btrfs snapshot, My monitor cannot set 10bit or 8bit, when I ask AI, there is a 'grim' pipe or 'virtual device' solution, I did not understand. I dreamed download something or change some env option, obs can magicly working...


Update to latest libsyntax from Rust master

Recently libsyntax in the Rust nightlies had a breaking change to the API it exposes.  This was the problem described here: https://github.com/serde-rs/quasi/issues/35
This pull request updates Syntex to be compatible with the latest libsyntax.
I have tested this change using the guidelines from CONTRIBUTING.md (e.g. the hello_world project), and also tested this change on a branch of my own project that uses Serde heavily: https://travis-ci.org/benashford/rs-es/builds/115641770 (although I did also have to manually hack at Quasi, due to the previously referenced issue).
Also recent changes in the Rust nightlies include using rustc_unicode, since there doesn't seem to be a stable equivalent of this, this pull request adopts the naming convention, but the functions that used rustc_unicode have instead their old non-unicode implementations.
(This is my first contribution to both this project, and anything connected with Rust's syntax, so I won't be offended if you point out any glaring errors or omissions.)

@benashford: thanks! I'm testing it out now.

Ideally we'd find / duplicate the rustc_unicode in one of the https://github.com/unicode-rs projects, but none of them seem to have the Pattern_White_Space table. @kwantam: do you know what crate of yours would be the appropriate one to host this table?

Cool, thank you.
Regarding rustc_unicode I get the impression it's only just begun being used in libsyntax so it should be more apparent how it's used over time, if it becomes more heavily involved perhaps a fork of that similar to libsyntax/Syntex?  But they could be overkill.

@benashford: That's the idea of unicode-rs :) It's just split up the unicode support into multiple crates so that end users don't end up bundling in unnecessary unicode tables.


Seed Data changes should be possible without a migration

In EF6 it was possible to make changes to seed data and simply re-run the project in EF Core that is not longer possible.
I would like an option to seed data as part of my application startup in a way that doesn't involve a migration as managing this data via migrations is creating literally days more work for me at the moment.

@TehWardy You can write a method that will seed the database and run it at startup, just like in EF6. The only difference is that you have to make the call to seed the database--it won't happen automatically. This is by design, since running it automatically was both error-prone and limiting in how it works.


Drag & Drop node to scripts sometimes handles incorrectly

Godot version:
3.1.1 - 3.2beta1
OS/device including version:
Win10
Issue description:
Sometimes drag&drop behaves incorrectly - instead pushing string to the script it focus to the scene. This is very irritating and should be fixed ASAP.
Steps to reproduce:

Minimal reproduction project:
It's easy to reproduce in any simple project...

You can press F3 while still dragging to open script editor again.

It's probably because of something set to show the thing in the scene when it is clicked on.  If this is intended behavior(it seems like it would do more harm than good, though), then it should only show it on mouseup if the mouse is still hovering over the item, rather than showing it on mousedown.


TidyUp: Remove redundant closing tags.

A new inspection was created.

The inspection completed: No new issues


Independent price-snapshot subgraph

This PR splits the price-snapshot entity into a separate subgraph. This was done in order to lighten the protocol-metrics subgraph and speed up the deployment/indexing of changes for each.
This also adds an initial version of delta and volatility tracking. For now, between OHM and USD.

Deployed to: https://thegraph.com/hosted-service/subgraph/0xjem/price-snapshot