Improve TS types

It would be great to be able to learn more about the library right from VS Code by using the types, function comments and type files.
Function comments:
It looks like the function comments can be shared between Rust and TS right away, like it is done for debugRenderGraph:

Comment in https://github.com/dabreegster/route_snapper/blob/main/route-snapper/src/lib.rs#L696
… is visible in VS Code and TS as …/**
* Render the graph as GeoJSON points and line-strings, for debugging.
* @returns {string}
*/
  debugRenderGraph(): string;

So one step would be to write more detailed function comments that cover the cases in https://github.com/dabreegster/route_snapper/blob/main/user_guide.md#wasm-api. I don't know if new lines will be accepted there, but that would be helpful (like a full JS Doc description block).
Input/output types:
The other part is having detailed input / output types. Right now a lot of them are just string or any. One has to explore the shape of the files even though they are pretty defined by the library:
Example:
/**
- * @param {any} raw_waypoints
+ * @param {{ lon: number, lat: number, snapped: boolean }[]} raw_waypoints
*/
-  editExisting(raw_waypoints: any): void;
+  editExisting(raw_waypoints: { lon: number, lat: number, snapped: boolean }[]): void;

I looked into this a bit (this article sounded good) and it sounded like one need an extra crate like https://lib.rs/crates/tsify to create those better types. Some will auto generate but one can customize this as well.

Thanks for finding tsify and an article walking through it! This indeed looks promising. I'll try and start on this during this week. There are some unknowns, like expressing the output of renderGeojson -- the Point features and LineString features have different properties. To express that precisely, I might need to write some interesting new types on the Rust side and make sure they serialize to GeoJSON the right way. Or it might be simpler to use some of the wasm-bindgen options to specify a manually written TS block, and not actually have the Rust compilation process verify this is the shape of the output.


doc(contrib-snip): Clarified mailing list subscription information

This PR simply clarifies what happens when you send your first e-mail to the mailing list.
(oh, and I also snuck a typo fix in there)

Thanks, this looks great! Would you also mind updating the relevant section in the README?

Will do.
Is there any reason you wouldn't just want the README to .. include:: the other contributing restructured text?

TBH, I don't know how well GH would handle that when rendering the markup. An alternative would be to just link to the relevant page on RTD. I suppose the same could be said for the Contributing section, although that may be better modified in a separate PR, since I think there needs to be some additional work to reconcile CONTRIBUTING.md and the RTD page regarding the same topic.

Relevant portion of the README has been updated! :-)

Looks good, thanks!


E01 Notes

[x] Node (rename to Level)
[x] CSG Box (10x10
[x] Turn on Snap!
[x] Kinematic Body - Rename "player"
[x] Add mesh instance to player - capsule,
[x] Unselectable Children on Player
[x] Rotate capsule 90 degress (snap, angle is bottom left)
[x] Material - Spatial - Redish
[x] CSG Material? Blue (selected CSG)
[x] Add a Directional light

[x] Move and turn in a good direction
[x] Enable shadows

Ctrl + K --> Block comment
Code:
extends KinematicBody

var speed = 5
var velocity = Vector3()

# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):

	velocity = Vector3()
	if Input.is_action_pressed("ui_right"):
		velocity.x += 1
	if Input.is_action_pressed("ui_left"):
		velocity.x -= 1
	if Input.is_action_pressed("ui_down"):
		velocity.z += 1
	if Input.is_action_pressed("ui_up"):
		velocity.z -= 1

	velocity = velocity.normalized() * speed

	velocity = move_and_slide(velocity)

DEFAULT:
extends KinematicBody
Declare member variables here. Examples:
var a = 2
var b = "text"
Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta):
pass

extends KinematicBody

var speed = 5
var velocity = Vector3()

# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):

	velocity = Vector3()
	if Input.is_action_pressed("ui_right"):
		velocity.x += 1
	if Input.is_action_pressed("ui_left"):
		velocity.x -= 1
	if Input.is_action_pressed("ui_down"):
		velocity.z += 1
	if Input.is_action_pressed("ui_up"):
		velocity.z -= 1

	velocity = velocity.normalized() * speed

	velocity = move_and_slide(velocity)

Fart attack game!
var ray_origin = Vector3()
var ray_target = Vector3()

func _physics_process(delta):

	var mouse_position = get_viewport().get_mouse_position()

	ray_origin = $Camera.project_ray_origin(mouse_position)
	ray_target = ray_origin + $Camera.project_ray_normal(mouse_position) * 2000

	var space_state = get_world().direct_space_state
	var intersection = space_state.intersect_ray(ray_origin, ray_target)

	if not intersection.empty():
		var pos = intersection.position
		$Floor/Player.look_at(pos, Vector3.UP)


v1.9 backports 2021-04-29

#15803 -- handle IP addresses modification in running nodes and CEPs (@aanm)
#15077 -- pkg/k8s: add DeepEqual code generation for Service (@aanm)

PR #15803 depends on #15077, so both had to be backported
Once this PR is merged, you can update the PR labels via:
$ for pr in 15077 15803; do contrib/backporting/set-labels.py $pr done 1.9; done

test-backport-1.9

test-1.12-netnext

test-backport-1.9


(bug) snapshot comparison intermittent out of order

Describe the bug
If we make two back to back snapshot comparison requests, it will be possible the snapshot is written in different order depending on the run. This is observed in non-image snapshot, but not clear exists in image snapshot or not
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
The snapshot is generated in the same order everytime.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. OSX, Windows, Linux]
Linux
Cypress Version [e.g. 22]
cypress-4.6.0

Additional context
none

I'll see if I can produce a test case.

That would be helpful, your problem is not clear now.


Add a "shift" parameter to Camera.

This has the effect of translating the viewport, without changing its
size. This is an effect similar to using a shift lens.

In this PR I temporarily changed how gltf_viewer implements the sidebar (it's actually kind of cool because it doesn't require a viewport change, which would trigger the froxelizer update).
This miss the Java API, which is why it's a draft.

Apparently useful to our users. Except to do it right now they need to hack the projection matrix. Unity has a similar camera feature. It replicates the shift feature of tilt shift lenses too.

And I like that it allows to implement something very similar to moving the viewport, but without having to reset it, meaning no relocation of the targets or update to the froxels.


External Message Entity Auto-Filling Fix

Proposed changes:

Fixed external message's tracker update call to enable slot-autofilling when an entity is passed in via the trigger_intent API endpoint

Status (please check what you already did):

[ ] added some tests for the functionality
[ ] updated the documentation
[x] updated the changelog (please check changelog for instructions)
[x] reformat files using black (please check Readme for instructions)

I'll be on vacation till next Friday - so might make sense to request somebody else in the meantime.


[fp16] create a new port

What does your PR fix?
There was no port request for this project.
This is one of the 3rd party libraries for the PyTorch project. The PR will be used for future support of the libtorch port.
Which triplets are supported/not supported? Have you updated the CI baseline?
This port is a header-only library, so every triplet must be available.
Does your PR follow the maintainer guide?
The library doesn't have a tag/release.

PR Structure

[x] Make separate Pull Requests per port.  The PR requires #16339

Manifests and CONTROL files

[x] vcpkg format-manifest

Versioning

[x] Follow common conventions for the "version" field
... we use the date that the commit was accessed by you, formatted as YYYY-MM-DD.

This PR will be rebased after #16339 is merged. To prevent merge, it will remain in the draft mode.

LGTM now, thanks for adding this new port @luncliff.


KotlinJs Implementation For Ballot Encryption

[x] fix clashing attribute and method names by appending 'Attribute' to the attribute names
[x] replace javaClass based equal methods in commonMain with instance checks
[x] add jsMain method and class stubs
[ ] isolate kotlinx.coroutines.runBlocking from common code

Added wrapper for BigInteger to commonMain module
Moved group implementation to commonMain module
Moved implementation of VerifyDecryption and VerifyEncryptedBallot to jvmMain module
Moved cli tests to jvmTest module
Cleaned up tests in commonTest to only use pure kotlin


[Feature Request] sap.m.MenuButton event "arrowButtonPressed" / "beforeMenuOpen"

Would it be possible to introduce a second event at sap.m.MenuButton besides the defaultAction event for the case the "arrowButton" is pressed / before the menu is opend?
Use case: Update the menu / the menu items every time before the menu is opend.

Hello @lhendrik,
Thank you for sharing this finding. I've created an internal incident<PHONE_NUMBER>. The status of the issue will be updated here in GitHub.
Best Regards

Hello @lhendrik,
Thanks for sharing your use case, we'll need more info in regards to that.
Why the items are not loaded during the instantiation?
If your need is to have them lazy loaded have you thought of how the user will be indicated that after a click over the arrow, there'll be some delay until the list opening?
Thanks & Regards,
Diana

Hello @DMihaylova,
thanks for your response.
The items should be loaded at latest possible as they can change (in OData response). I tested it by introducing an custom Event on the sap.m.MenuButton, yes, of course there is a delay when the user clicks on the arrow and the items are loaded then before diyplayed. Until now this delay was small enough as the number of items is small. Nevertheless i understand your point.
Regards
lhendrik

Hello @lhendrik,
Now there's new "beforeMenuOpen" event available in master and will be part of version 1.94 :)
Thanks & Regards,
Diana

Thanks for introducing the new event


Grouped Layer Control

This would be a nice option to bring in:
https://github.com/ismyrnow/Leaflet.groupedlayercontrol

I'm going to rework&redesign angular-leaflet-directive to be compatible with Leaflet v1.0. It will mantain almost all its functionality, and will be compatible with the current features of the directive, but I must start from a fresh point, so I'm going to close this issue. If you think it must be worked with the new version, please reopen it.


Future never resolves on IOS13

🐛 Bug Report
When I try to getCurrentLocation, it never resolves. I'm not expert on IOS, so please if I forgot to do something, just explain it to me.
Future<Position> getCurrentPosition({
    LocationAccuracy accuracy = LocationAccuracy.best,
    GeolocationPermission geolocationPermission =
        GeolocationPermission.location,
  }) =>
      _geolocator.getCurrentPosition(
        desiredAccuracy: accuracy,
        locationPermissionLevel: geolocationPermission,
      );

Podfile:
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
        '$(inherited)',

        ## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
         'PERMISSION_LOCATION=1',
      ]

Info.plist:
	<key>NSLocationWhenInUseUsageDescription</key>
	<string>Need location when in use</string>
	<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
	<string>Always and when in use!</string>
	<key>NSLocationUsageDescription</key>
	<string>Older devices need location.</string>
	<key>NSLocationAlwaysUsageDescription</key>
	<string>Can I haz location always?</string>

EDIT:
I've tested on a real Android device and the problem is happening too.
My manifest location permissions:
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />

Expected behavior
Return a Position.
Reproduction steps
Just call geolocator.GetCurrentPosition.
Version: 5.1.5.
Platform:

[x] :iphone: iOS (Tested with IOS Simulator)
[x] :robot: Android (Tested on a Xiomi Pocophone F1 with Android 10QkQ1.190828.002)

I'm getting the same error. This is happening both on iOS and Android.....

I'm getting the same error on simulator running iOS 10.3 or iOS 13.4 and also on my iPad with iOS 13.4.
mycode.dart:
Position pos = await Geolocator()
              .getCurrentPosition(
                  locationPermissionLevel:
                      GeolocationPermission.locationWhenInUse,
                  desiredAccuracy: LocationAccuracy.high)

Info.plist:
<key>NSLocationAlwaysUsageDescription</key>
<string>Can I haz location always?</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Need location when in use</string>

Version: 5.3.1

Same problem for me on Android 8.0. I consider writing a 10-sec timer directly on the source code that throws if reached.

@brenoasm are you experiencing this issue on the simulator or a real device?
On the simulator it is important to configure the  simulator to emit a location. This can be done using the following menu items of the simulator application: Features -> Location -> (select a option other then "none").

@mvanbeusekom What if a real device doesn't emit a location? It shouldn't if the user had turned off GPS, should it?

@mvanbeusekom I've tested on the Simulator for IOS (I don't have an IPhone to test it on a real device). I've tested it on a real Android device and got the same problem... I'll edit and add my Android device information.

I have the same issue with real android device...

@mvanbeusekom Thanks for your help. Your Tipp for the simulators worked for me.
I haven´t changed anything, but it is now working on the iPad again.

Tested on an iOS simulator and an iOS device, I had no problem but I have the same problem on an Android emulator

I will try to explain my case in detail.
First, the issue happens in both Android and iPhone devices (I'm using Testflight to test the app with my QA team), but also in Android Emulator and iOS Simulator.
The method 'getCurrentPosition' sometimes doesn't return a position, but after a succession of tries it does. I usually have this problem when I install the app for the first time. After a period of time, suddenly the method start to bring you the current position.
The problem of this issue is that it doesn't happens always. You can install the app, and sometimes in the first try the method return the current position...
Extra notes:

If the method start to work well and I do a hot reload or a hot restart, the method continues to work well
The method doesn't throw any exception... but if you put an 'await' it stops indefinitely
I tried to use an older version of Geolocator, and the problem persist
I'm using Google Maps in my project, so I thought "maybe there is a conflict with a recent version of Maps... ?". Nope. I compile with old versions of Google Maps and the problem persist
The curious thing is that some weeks ago I didn't experience this issue...

My environment:
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.12.13+hotfix.9, on Linux, locale en_GB.UTF-8)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Android Studio (version 3.6)
[✓] IntelliJ IDEA Community Edition (version 2019.3)
[✓] Connected device (2 available)

• No issues found!

Temporary solution in my project:

I added a timeout to the 'getCurrentPosition' method, and if it returns 'null' I start a timer and try again and again... after a little while (sometimes seconds, sometimes even a minute) the method returns the current position
If I need an initial position, I use the method 'getLastKnownPosition()'

I guess #375 and #386 are related to this problem

Same problem here, LG G6, Android 9.0.
Never resolves.
There is an odd way how I can get it to work:
I start google maps app to get the position there. For that I need to activate the positionsensor and wifi (probably mobil dataconnection would also work, not tested).
So I get the position in google maps.
After that it also works in my app (no matter whether the my app was startet afterwards or already running).
If I terminate wifi or switch off the position then it doesn't work anymore, even if I switch them on again.

Same issue, Android 10, OnePlus 7 Pro.
The above described trick with google maps didn't work for me, but somehow after some time the location started resolving without me doing anything specific. i was just reading a previously opened page in the browser, then switched back to my app and saw a a dialog that told me the location - the dialog is set up to show when the future resolves, so eventually it did resolve, but it took awhile. After that the location was resolving fine on every attempt.
As mentioned above after reboot the location doesn't resolve anymore.
On the simulator everything works just fine.

After the message of @SchmadenSchmuki, I made some tests in my project, and this is my conclusion: There is something wrong with the Google Maps Plugin that affects Geolocator plugin. There is an incompatibility between them.
This is the flow of my app when I start it for the first time:

It shows a splash screen
Meanwhile, the app connect to an API to pull user data
I use Geolocator to locate the current position of the user
The app quits the splash screen, and then I show a map showing where the user is located

With this flow, the app fails. The 'getCurrentPosition()' method of Geolocator fails, it never returns a value. NOTE: the methods 'isLocationServiceEnabled()' and 'getLastKnownPosition()' works fine.
BUT if I change the flow to:

The splash screen
Connect to the API to pull user data
Renderize the map with a random location
Use Geolocator to locate the current position of the user
Move the camera of the map to the current position

IT WORKS!!!!!
So, my conclusion is that, in some way, the Google Maps plugin occupy "something" that blocks others plugins to use the geolocation service. When the Google Maps renderizes, it frees that "something" and then everyone can work without problem.
If someone else can confirm that, we can open an issue to Flutter guys to see this

@KnucklesEQ thank you very much for the extensive reporting. I will start debugging this issue and spend more of my time reproducing and hopefully fixing the issue. It would be very helpful if others here could verify if they are all also using the Google Maps plugin?
Never the less I think there are multiple issues (differences between Android 9 + Android 10, iOS sometimes takes many seconds to return a location, using Geolocator in combination with Google Maps) and I will start focusing on all of those and see if I can improve the situation. This will take some time though so please bear with me while I do my best and will try to leave updates here on my progress.

I'm not using Maps plugin. I've noticed that when I grant permission only while the app is running (locationWhenInUse), the next time I ask it will not show and never resolves (Android only, on IOS It never worked since I opened this issue).

I'm not using Google Maps plugin.

Not using Google Maps plugin either.
(When having problems I checked if the google maps app also has problems to get the location and then I saw that getting the location there had an effect on my app)

more details:
the issue occurs when the following conditions are true

i'm using location manager (Geolocator().forceAndroidLocationManager = true)
i'm using default location accuracy, which is LocationAccuracy.best
i am inside

i traced it through the code and what happens is that under the first 2 conditions the location provider that gets picked is 'gps' and the device just can't pick up the gps signal inside. I stepped out to the balcony and almost immediately things started working normally.
I didn't try playing with location accuracy to see how it affects location provider choice, but i did try just forcing the provider to 'network' (by hardcoding). That works, but the accuracy on the retrieved location obviously wasn't very good - ~1080 meters.

@minusminuszero is right, it's the same for me.
So for me it's doing what it should, also immediately after reboot, sorry for the inconveniences.
(I don't set the location manager, so it's forceAndroidLocationManager = false in my case. I use LocationAccuracy.best and guess it would also work with LocationAccuracy.high, probably doesn't work for a lower accuracies because in these cases the locationsymbol doesn't show up, but there is already an issue for that.)

more details:
the issue occurs when the following conditions are true

i'm using location manager (Geolocator().forceAndroidLocationManager = true)
i'm using default location accuracy, which is LocationAccuracy.best
i am inside

i traced it through the code and what happens is that under the first 2 conditions the location provider that gets picked is 'gps' and the device just can't pick up the gps signal inside. I stepped out to the balcony and almost immediately things started working normally.
I didn't try playing with location accuracy to see how it affects location provider choice, but i did try just forcing the provider to 'network' (by hardcoding). That works, but the accuracy on the retrieved location obviously wasn't very good - ~1080 meters.

How did you go about forcing the "network" location? This would be sufficient for me in terms of fixing the issue as it happens indoors at least

How did you go about forcing the "network" location? This would be sufficient for me in terms of fixing the issue as it happens indoors at least

I did so by hardcoding the value for location provider directly in geolocator plugin code. I suppose choosing the low accuracy would have the same effect, but i didn't try.

Probably the method should have a timeout param, no?

Is the Flutter/Geolocator team working on this issue?

Yes we are

Thank you @mvanbeusekom!
Do you know what is the source of the problem?
Have you found a way to bypass it (or some kind of temporary solution)?
(downgrading to 4.0.3 did not solve it for us)

On the simulator it is important to configure the simulator to emit a location. This can be done using the following menu items of the simulator application: Features -> Location -> (select a option other then "none").
That fixed the issue for me. But it's a very confusing bug as it just fails without any exceptions or anything.

On the simulator it is important to configure the simulator to emit a location. This can be done using the following menu items of the simulator application: Features -> Location -> (select a option other then "none").

That fixed the issue for me. But it's a very confusing bug as it just fails without any exceptions or anything.

Yup, for me too.
Please add timeout in location request and throw an exception in simulator that has no location set.
Thanks :)

I have the same problem on iOS, I'm also using the google maps plugin.
I have an app that uses getLocationStream but I don't get a permission dialog until I go on the tab where I have a google map.
I have another app where I didn't use google maps anymore but forgot to remove the plugin and I had the same problem. I removed the google maps plugin and now it's working correctly.

Any updates on this?

Hello everybody, I am working hard on this problem. Basically we have decided to build the geolocator from scratch and fix multiple problems at once.
Points that will be included are:

Fix permission issues;
Add timeout to getCurrentLocation and getPositionStream methods;
Move to federated plugin structure so we are ready for web support;
Update to Android v2 plugin;

First step to take was to move out the geocoding features and host them in their own plugin (which is now available on pub.dev.
Second step was to create and unit-test all the necessary Dart code, which is now ready and can be viewed on the federated_plugin branch.
The next steps are to add iOS and Android implementations and fix the example app. This is what I am working on now, hopefully I will be able to finish everything in the coming two weeks (please keep in mind that I also need to do this in spare time ;)).
Anyway I want to thank everybody for there patience and feedback, please hang on just a little bit longer.

@mvanbeusekom
That's good news. I'm glad you're taking the time to provide us with this plugin.
A big thank you goes out to you!
I look forward to the following updates.
Thanks and best regards

Nice! Let us know when it's released so we can test.

For a temporary workaround you can check the status at the device with the method GeolocationStatus checkGeolocationPermissionStatus(). If the location is off, this method returns "disabled". Then you do not need to call the getCurrentPosition() method.
Example:
  Future<Position> getCurrentPosition() async {
    Position position;
    GeolocationStatus status = await _geolocator.checkGeolocationPermissionStatus();

    if (status != GeolocationStatus.disabled) {
      position = await _geolocator.getLastKnownPosition();

      if (position == null && status == GeolocationStatus.granted) {
        position = await _geolocator.getCurrentPosition(
          desiredAccuracy: LocationAccuracy.high,
          locationPermissionLevel: GeolocationPermission.locationWhenInUse,
        );
      }
    }

    return position;
  }

Little update here, this morning I have pushed a new update to the federated_plugin branch which includes full support on iOS including a Flutter example App.
We have also started working on Android which supports checking permission status, we'll be implementing requesting permissions and handling location services now.
Feel free to check out the code, note that is includes quite a lot of breaking changes which will all be documented. For now I just wanted to let everybody know that there is progress although it takes some time. Again thanks for all your patience.

When will the pub package be updated?

Little update here, this morning I have pushed a new update to the federated_plugin branch which includes full support on iOS including a Flutter example App.
We have also started working on Android which supports checking permission status, we'll be implementing requesting permissions and handling location services now.
Feel free to check out the code or even try to integrate is in a test app and run on iOS. Note that is includes quite a lot of breaking changes which will all be documented. For now I just wanted to let everybody know that there is progress although it takes some time. Again thanks for all your patience.

Will you be updating the geolocator package at pub.dev with this change?

Thanks for working hard on this. Will you be updating the geolocator package at pub.dev with this change?
Also is this the file for the example you mentioned above: position_updates_example_widget.dart?

No I won’t be publishing to pub.dev as of yet. This is a whole rework of the geolocator plugin and does not support Android yet. Once Android and the documentation is finished I will release it on pub.dev.
Yes this widget is part of the example app and demonstrates how you could listen for position updates.

Hi,
Thanks for this package.
Any chance to complete all above mentioned tasks for Android in this week ?

Hello everybody, I am working hard on this problem. Basically we have decided to build the geolocator from scratch and fix multiple problems at once.
Points that will be included are:

Fix permission issues;
Make sure the getCurrentLocation is retrieved within a reasonable time;
Add timeout to getCurrentLocation and getPositionStream methods, so that if acquiring the location takes longer then expected the request will timeout and you can restart the request;
Improve potential error messages;
Move to federated plugin structure so we are ready for web support;
Update to Android v2 plugin;

First step to take was to move out the geocoding features and host them in their own plugin (which is now available on pub.dev.
Second step was to create and unit-test all the necessary Dart code, which is now ready and can be viewed on the federated_plugin branch.
The next steps are to add iOS and Android implementations and fix the example app. This is what I am working on now, hopefully I will be able to finish everything in the coming two weeks (please keep in mind that I also need to do this in spare time ;)).
Anyway I want to thank everybody for there patience and feedback, please hang on just a little bit longer.

Any update on this ? We had integrated this package with my app. Only issue is getting location taking longer then expected very first.

Any updates on when the reworked version will be released? @mvanbeusekom

@dalmia007, I don’t have a date yet but progress being made. I have added rudimentary support for Android on the branch feature/federated_android. It contains requesting permissions, getting last known location, getting the current location and location updates all using the fused location provider client (part of the Google Play Services).
I am still working on the following:
Android specific:

Implementation for the above features when Google Play Services are not available;
Automatically resolve issues when location services are not enabled;

General:

Update the documentation

Feel free to check it out here

@mvanbeusekom thank you so much for the update! 👍

I am sorry to tell this but it crashed twice now, enough to revert to 4.0.3 already.
E/AndroidRuntime(19881): java.lang.RuntimeException: Failure delivering result ResultInfo{who=@android:requestPermissions:, request=24, result=-1, data=Intent { act=android.content.pm.action.REQUEST_PERMISSIONS (has extras) }} to activity {com.packagename.consumer.app/com.packagename.consumer.app.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void com.baseflow.geolocator.permission.PermissionResultCallback.onResult(com.baseflow.geolocator.permission.LocationPermission)' on a null object reference
Happened when I pressed allow grant on the dialog and also when I pressed deny. Let me if I missed something.

@Dohmanlechx just making sure, did you get this on 6.0.0-rc.x or on the 5.3.2 version?

I did get this on 6.0.0-rc.1 (the IDE asked me to "update" to 5.3.2+2, FYI)

@Dohmanlechx thanks to your feedback I did find an issue. Apparently in your case the geolocator is getting feedback from another plugin (I am guessing you are using the permission_handler to handle permissions since the requestCode == 24 which is the same as the permission_handler) which it tries to process which obviously fails. In these cases the geolocator should simply ignore those messages since they don't belong to the geolocator. I will fix this today and release a new release candidate.
Thanks for your feedback!

Oh, indeed, we are using permission_handler. Good find!

All credits go to you @Dohmanlechx ;). Thanks to your feedback I was able to discover this bug and will be able to release a new version in soon.

@Dohmanlechx I have just release version 6.0.0-rc.3 which should fix the bug you experienced.

Very cool, tested carefully on the Android Emulator, granting & denying, manipulating the location, worked perfectly. Worked fine on my real Android device as well.
But no system request is showing for the iOS Simulator at all, guess it's intended? However, it won't crash at least and the app works as wished without any location available. Unfortunately still not able to test on my iPhone due to Xcode connection problem and I don't want to deploy a build to TestFlight just to test now. Will let you know as soon as I've tested on iPhone.
But so far, so good!

I regret to inform this but it worked like a disaster on my iPhone XS Max, OS 13.6.1.
First time fetching the position worked just like the old version, returned correct position but it still took 7-8 seconds.
But from the second time and further it just kept throwing instantly. I had to change from Exception err to dynamic err due to:
Unhandled Exception: type ‘_TypeError’ is not a subtype of type ‘Exception’.
I'm getting those when it's failing (after the first time fetching):

2020-08-26 14:01:45.670206+0200 Runner[4565:206487] flutter: Could not fetch location: Bad state: No element
2020-08-26 14:01:45.670416+0200 Runner[4565:206487] flutter: Could not fetch location: Instance of ‘NoLocationFoundException’

(NoLocationFoundException is my custom class)
Bad state: No element isn't telling much unfortunately... beneath is my code:
static Future<void> _getUserLocation({bool isSneaky = false}) async {

  void _throw(dynamic err) {
    print("Could not fetch location: $err");
    if (!isSneaky) Fluttertoast.showToast(msg: getTranslation("location_fetch_error"));
    throw NoLocationFoundException();
  }

  await GeolocatorPlatform.instance
      .getCurrentPosition(
        desiredAccuracy: LocationAccuracy.high,
        timeLimit: const Duration(seconds: _TIMEOUT_DELAY),
      )
      .then((position) => _userLatestPosition = position)
      .catchError(
    (err) {
      // Debug only, remove later
      Fluttertoast.showToast(msg: "error: $err");

      if (err is TimeoutException) {
        GeolocatorPlatform.instance.getLastKnownPosition().then((position) {
          if (position == null) _throw(err);
          return position;
        }, onError: (err) {
          _throw(err);
        });
      } else if (err is PermissionDeniedException) {
        XxlPermissionsHandler.request(Permission.camera);
      } else {
        _throw(err);
      }
    },
  ).catchError((err) => _throw(err));
}

I sincerely hope you can reproduce this on your iPhone.

@Dohmanlechx, thank you for the extensive feedback, I think I found the problem here. Now I need to find a good way to fix it ;)
In short the getCurrentPosition method calls the getPositionStream and takes the first element and then closes the stream. The problem is that the getPositionStream has code like this:
    if (_positionStream != null) {
      return _positionStream;
    }

Which you can guess causes the Bad state: No element exception when calling the getCurrentPosition for the second time, because it will be calling first on an already closed stream. I will be working on this and release a new candidate soon.

@Dohmanlechx, you issue where you get the "Bad state: No element" should have been fixed in 6.0.0-rc.4 which I just published. I was not able to reproduce the problem, but I was able to make sure that the getCurrentPosition will use a new stream when you call it a second (and any subsequent) time.
I would really appreciate it is you can give it another try and let me know if it works.
On issue I noticed is that you directly use the GeolocatorPlatform.instance.<some_method>, by doing this you are by passing any logic that is located in the geolocator package and go straight to the default implementation that is in the geolocator_platform_instance package. As for now there is no specific implementation in the geolocator package but it is still better not to by pass it.
If you import the geolocator package you should be able to directly call the global methods, for example:
import 'package:geolocator/geolocator.dart';

final position = await getCurrentPosition();

If you run into collisions or simply like to prefix the global methods you can add an alias to the import, like so:
import 'package:geolocator/geolocator.dart' as geolocator;

final position = await geolocator.getCurrentPosition();

Thanks, I also changed the code according to your suggestions.
The crash is gone now but unfortunately, it's still too unstable. 3 out of 10 times it's extremely fast (really wish it was 10 out of 10 times), but 7 out of 10 times the Time Limit (10 seconds) exceeds and the function throws. Did you test on your iPhone, spamming the getCurrentPosition()? I tested on iPhone XS Max, OS 13.6.1.
4.0.3 is slow but stable
6.0.0-rc.4 is fast but unstable
But no worries, this is completely okay and absolutely no disaster for us, especially since I wrote own time limit for the version 4.0.3.

@Dohmanlechx glad to hear the crash is solved, that is something at least ;)
I am really interested in why you are still receiving slow updates since I cannot reproduce it. I created a very simple demo App to try it out:
main.dart:
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  List<Position> _positions = <Position>[];

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: Scaffold(
        body: ListView.builder(
          itemCount: _positions.length,
          itemBuilder: (BuildContext context, int index) {
            return ListTile(title: Text(_positions[index].toString()),);
          },),
        floatingActionButton: FloatingActionButton(
          child: Icon(Icons.add),
          onPressed: () => getCurrentPosition().then((position) {
            setState(() {
              _positions.add(position);
            });
          }),
        ),
      ),
    );
  }
}

Info.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>$(DEVELOPMENT_LANGUAGE)</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>geocoding_issue</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>$(FLUTTER_BUILD_NAME)</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>$(FLUTTER_BUILD_NUMBER)</string>
	<key>LSRequiresIPhoneOS</key>
	<true/>
	<key>UILaunchStoryboardName</key>
	<string>LaunchScreen</string>
	<key>UIMainStoryboardFile</key>
	<string>Main</string>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UISupportedInterfaceOrientations~ipad</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationPortraitUpsideDown</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UIViewControllerBasedStatusBarAppearance</key>
	<false/>
	<key>NSLocationWhenInUseUsageDescription</key>
	<string>The example App requires access to the device's location.</string>
</dict>
</plist>

So each time I hit the floating action button getCurrentPosition is called and the result is added to the ListView. I have tested this App on my personal iPhone 7, my wife's iPhone 6 and the simulator (all running the latest iOS version) but I can spam the button and the location is returned almost immediately. I am really puzzled why you have a different experience. Maybe you can test this sample code and see if you still have the same problem?

I really admire your persistence. I created a new project and used your codes, almost broke the iPhone screen by spamming the button, the location returned immediately all the time. Awesome! Tomorrow I will try find time to troubleshoot in our code, beginning with running getCurrentPosition() directly in the Widget and then move it further and further away until its intended place in order to find the culprit. I suspect it is because the permissions plugin, but we will see.

Thanks for the feedback and the kind words, really appreciate it. I put a lot of effort in rebuilding the geolocator and this issue was the one that really made me decide to start it, so I would really like it to be good this time ;)
Please let me know how it goes and if I can help.

So I'm quite hopeless now. I removed the old code and ran this directly in the Widget:
Fluttertoast.showToast(msg: "Location started");

getCurrentPosition(
  timeLimit: const Duration(seconds: 10) // Also tried without timeLimit
).then((position) {
  MyLocationHandler.userLatestPosition = position;
  Fluttertoast.cancel();
  Fluttertoast.showToast(msg: "Location: $position");
}).catchError((err) {
  print(err);
});

And it was straight-up broken. No error messages, only the time limit message. Also tried to remove the time limit and then it never emitted something, maybe after 20-30 seconds. I've tried uninstalled and installed the plugin. I can just suspect there are some legacy iOS codes lying somewhere, it's a 1-2-year-old project. So the conclusion would be something is really broken in our project.

getCurrentPosition().then((position) {
   print(position);
}).catchError((err) {
   print(err);
});

Tried this directly in the Widget and every time I clicked, a location was logged on the console! So it's definitively our code. So it's on us now, thanks for everything!

Though, this sometimes happens while fetching position:
I/flutter (  393): ══╡ EXCEPTION CAUGHT BY SERVICES LIBRARY ╞══════════════════════════════════════════════════════════
I/flutter (  393): The following PlatformException was thrown while de-activating platform stream on channel
I/flutter (  393): flutter.baseflow.com/geolocator_updates:
I/flutter (  393): PlatformException(error, No active stream to cancel, null)
I/flutter (  393):
I/flutter (  393): When the exception was thrown, this was the stack:
I/flutter (  393): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:572:7)
I/flutter (  393): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:161:18)
I/flutter (  393): <asynchronous suspension>
I/flutter (  393): #2      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:334:12)
I/flutter (  393): #3      EventChannel.receiveBroadcastStream.<anonymous closure> (package:flutter/src/services/platform_channel.dart:554:29)
I/flutter (  393): #4      EventChannel.receiveBroadcastStream.<anonymous closure> (package:flutter/src/services/platform_channel.dart:551:18)
I/flutter (  393): #18     MethodChannelGeolocator.getPositionStream.<anonymous closure> (package:geolocator_platform_interface/src/implementations/method_channel_geolocator.dart:135:13)
I/flutter (  393): (elided 24 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
I/flutter (  393): ════════════════════════════════════════════════════════════════════════════════════════════════════

@mvanbeusekom I am not able to get the position at all using the newest 6.0.0+1 version. Tried on iOS simulator, Android emulator API 29, physical OnePlus 6. Timeout is thrown every time.

I don't know what else I can add here to support you in finding the issue, getCurrentPosition returns timeout or just hangs if timeLimit parameter is not specified. I have tried different location accuracies. Does anyone have this issue?

@mvanbeusekom , I've read through all of these, and I am upgrading to the latest version to fix the 10 second delay issue.
Maybe I'm missing something, but there's something that I can no longer do in the new version (geocoding).
I used to be able to manually set a Position to the city center (in case the user denies location), by doing the following:

Position userLocation;
List<Placemark> listAddresses = [];
if(permission.toString() != "PermissionStatus.granted"){
        listAddresses = await placemarkFromAddress("$city, $state");
         userLocation = listAddresses[0].position;
    }else{
getCurrentPosition...
}

Now, it seems placemarkFromAddress has been changed into locationFromAddress, so I tried to adapt doing the following changed in my formula:

Position userLocation;
List<Location> listAddresses = [];
if(permission.toString() != "PermissionStatus.granted"){
        listAddresses = await locationFromAddress("$city, $state");
         userLocation = listAddresses[0].position;
    }else{
getCurrentPosition...
}

But I'm getting the following error:
A value type 'Location' can't be assigned to a variable of type 'Position'.
How can I convert location into Position, or ultimately, in case the user denies the location, how can I now set his Position to his city center?
Thanks.

I updated to the newest version, fixed the problem for me 👍👍👍

I updated to the newest version, fixed the problem for me 👍👍👍


🦺[Tech debt] Add card disclaimer toast

Overview

Adds a alert/toast that shows when the user taps on Card
Adds localizations

Screenshots

Clip

@kcw-grunt Make sure all the changes in this commit https://github.com/litecoin-foundation/loafwallet-android/commit/9c0a5305278385df5df1ad9aa5cbff6148149469 are done!


Make UC available as a package

It would be cool if you could manage the UC framework as any other dependency.

Closed with #124


Flatter AMUSE namespace?

The AMUSE namespace is not all that easy to remember at the moment, and different from what is used in other major projects.
For example:
# Expected:
import amuse.units
x = 1 | units.cm
# this does not work

# Actual:
from amuse.units import units
x = 1 | units.cm

and:
from amuse.datamodel import Particles

(which I always forget)
This leads to the use of things like
from amuse.lab import *

which are not at all ideal...
I would suggest we try to make the AMUSE namespace somewhat flatter, in the way that projects like astropy/numpy/scipy and others work.
E.g.:
# import everything under amuse namespace
import amuse
# or, for a shorter namespace:
import amuse as am

particle = amuse.Particle()
particle.x = 1 | amuse.units.cm

# imports units directly
import amuse.units
x = 1 | units.cm

Similarly, we could then have (these are suggestions)
# import particles
import amuse.particles

# import all interfaces
import amuse.interfaces
# or only one
import amuse.interfaces.hermite0 as Hermite

hmm, I don't think things like:
  from amuse.units
  d=1| units.m

are supposed to work. I think
  from amuse import units
  d=1|units.m

could be nice, but then you would also want:
  from amuse import constants

not sure if this will fit...in any case you would only want changes that don't break existing
scripts...as a side node, I consider things like
  import numpy as np
  import amuse as am

bad form, don't do it...

Regarding the latter point: in the case of numpy, they use "np" everywhere in their documentation...

maybe something like: https://github.com/ipelupessy/amuse/tree/simplified_namespaces
I am not sure if it will work 100%, and in any case in general I am not in favour of obfuscation of namespace, in case you didn't notice;-)

Yes, moving all that is now in lab to the amuse main init would be a good idea, and allowing
for "from amuse import *" .
I do not want the renaming to am in our examples like numpy always seems to do in their examples, (why not call the package np?).
But yes, having from amuse import  is helpful (btw we already do this for datamodel where we import particles etc into the datamodel init)

BTW instead of interfaces, I would name these the codes.

Ok, great!
"codes" is probably better than "interfaces", yes.
I would try to avoid
from amuse import *

as it is unclear to the user what this specifically imports, but being able to import specific things directly from amuse (if you want to avoid the amuse namespace) would be very helpful.

#312 relates to this

After a discussion today:

amuse.lab should have all the basics available for importing (generally speaking: all the things that are required for the examples in the book)
Community codes should be available in lab.py
Community codes should be available under their current name (with not necessarily predictable capitalisation) as well as a spelling with only the first letter capitalised (e.g. Bhtree, Simplex, Ph4).

I think this has been mostly fixed


How to parse maven plugin configuration to CLI command?

Hi,
I am creating OWASP dep check process and I want to standardize it to perform check on pieplines using dependency-check CLI, but I have encountered one problem.
Using dependency-check maven plugin and having below configuration:
<profile>
            <id>owasp</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.owasp</groupId>
                        <artifactId>dependency-check-maven</artifactId>
                        <version>8.2.1</version>
                        <configuration>
                            <failBuildOnCVSS>7</failBuildOnCVSS>
                            <suppressionFile>${project.basedir}/owasp-dependency-check-suppressions.xml</suppressionFile>
                            <scanSet>
                                <fileSet>
                                    <directory>${project.basedir}</directory>
                                    <includes>
                                        <include>pom.xml</include>
                                    </includes>
                                </fileSet>
                            </scanSet>
                        </configuration>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

, report tells me that I have some new vulnerabilities and its ok.
But using dependency-check CLI from command line like this:
dependency-check/bin/dependency-check.sh --project "MY PORJECT" --scan './PROJECT_PATH/pom.xml' --failOnCVSS 7 -- suppression ./PROJECT_PATH/owasp-dependency-check-suppressions.xml
report tells that there is no vulnerabilities at all, I'm not sure if it performs check anyway because all takes about 4 seconds.
If I switch CLI command paths to:
dependency-check/bin/dependency-check.sh --project "MY PORJECT" --scan './PROJECT_PATH/' --failOnCVSS 7 -- suppression ./PROJECT_PATH/owasp-dependency-check-suppressions.xml
, now I have got many vulnerabilities witch I didnt have while performing check by maven plugin.
So finally, my question is: how to CLI command will look like to have same output as in maven plugin configuration which I provided?
Thank you in advance.

We would need to know a lot more about the project structure, what type of maven project (JAR, WAR, etc.), do you include bower or other front end tools? What types of findings are showing up with the CLI that aren't reported by Maven? Are the findings from the CLI actually false positives?
The CLI and the Maven plugin may have a common core engine - how they detect dependencies is vastly different.

In general, we always suggest using the maven or gradle plugin instead of the CLI... I would not recommend changing.

Thanks for quick answer.
It's JAR project. In fact I didn't check all vulnerabilities if they actually are false positives.
I found that CLI sees doubled vulnerabilities, example:
...some other bulnerabilities...
my-project-1.0.0.jar: CVE-12345

So vulnerability CVE-12345 is in a specific dependency and in project summary?
I found this strange, because I did not see such behavior when I was using CLI in frontend project with package-lock.json and package.json files.
But as you suggested I will try to use maven plugin whenever it will be possible.
Thank you.

Looks like a spring-boot JAR? This is happening because the CLI is scanning the files on disk as opposed to the actual Maven project. Also, my bet is that there is a false positive or two.

Yes, this is spring-boot jar. Ok so I know what was the cause.
Thank you very much.
I'm closing issue.


Add ClearProgressBar call to fix Build Window freeze on Unity 2020

Overview
Unity made some fixes to harden the requirement to call EditorUtility.ClearProgressBar() after calling EditorUtility.DisplayProgressBar, which ended up causing us to end up in an infinite loop. Adding this call resolves it.
Changes

Fixes: https://github.com/microsoft/MixedRealityToolkit-Unity/issues/9723

/azp run


Errors appear multiple time in the Errors and Warnings window

VSCode Version: 0.10.11
OS Version: Windows 10 Enterprise

The button in the status bar says 2 errors 0 warnings which is correct. The popup shows a lot of times the same 2 errors. There is some disconnect there.
Steps to Reproduce:
I'm not sure how to reproduce it, although I'm guessing that the fact that my build task was a "watch" and it was giving the same errors multiple times helped.
I'm using this project: https://github.com/Microsoft/vscode-react-native although those particular changes aren't on mainline yet.
The last part of the output was:
src\extension\commandPaletteHandler.ts(32,68): error TS2346: Supplied parameters do not match any signature of call target.
src\extension\commandPaletteHandler.ts(97,16): error TS2346: Supplied parameters do not match any signature of call target.
[13:43:18] TypeScript: 2 semantic errors
[13:43:18] TypeScript: emit succeeded (with errors)
[13:43:18] Starting 'check-imports'...
[13:43:18] Starting 'check-copyright'...
[13:43:19] Finished 'check-imports' after 1.19 s
[13:43:19] [check-copyright] error ..\out\common\extensionMessageSender.js: missing copyright notice
[13:43:19] 'check-copyright' errored after 1.21 s
[13:43:19] Error in plugin 'check-copyright'
Message:
Failed copyright check
[13:43:19] Finished 'build' after 2.7 s
[13:43:19] Starting 'check-imports'...
[13:43:19] Starting 'check-copyright'...
[13:43:20] Finished 'check-imports' after 1.29 s
[13:43:20] Finished 'check-copyright' after 1.3 s
[13:43:20] Starting 'build'...
src\extension\commandPaletteHandler.ts(32,68): error TS2346: Supplied parameters do not match any signature of call target.
src\extension\commandPaletteHandler.ts(97,16): error TS2346: Supplied parameters do not match any signature of call target.
src\test\debugger\appWorker.test.ts(131,84): error TS2304: Cannot find name 'packagerPort'.
[13:43:22] TypeScript: 3 semantic errors
[13:43:22] TypeScript: emit succeeded (with errors)
[13:43:22] Starting 'check-imports'...
[13:43:22] Starting 'check-copyright'...
[13:43:23] Finished 'check-imports' after 1.3 s
[13:43:23] Finished 'check-copyright' after 1.32 s
[13:43:23] Finished 'build' after 2.95 s
[13:43:24] Starting 'check-imports'...
[13:43:24] Starting 'check-copyright'...
[13:43:25] Finished 'check-imports' after 1.36 s
[13:43:25] Finished 'check-copyright' after 1.37 s
[13:43:25] Starting 'build'...
src\extension\commandPaletteHandler.ts(32,68): error TS2346: Supplied parameters do not match any signature of call target.
src\extension\commandPaletteHandler.ts(97,16): error TS2346: Supplied parameters do not match any signature of call target.
[13:43:27] TypeScript: 2 semantic errors
[13:43:27] TypeScript: emit succeeded (with errors)
[13:43:27] Finished 'build' after 1.65 s
I was solving all the errors, the one I solved disappear, the ones I hadn't solved yet started multiplying after each rebuild it seems and appearing multiple times.

While I was writing this issue the issue change, and now the correct erros appear on the pop-up, yet the summary in the status bar says -10...

@digeff if you use a wachting build task you need to instruct VSCode when an 'incremental' build starts and when it ends. Otherwiese VS Code can not know when to clear old errors.
The properties on a problemMatcher are
	watching: {
		activeOnStart: boolean; // whether it is active when the build starts (e.g. no begin pattern printed on start
		beginsPattern: string; // regexp (as string) when an incremental build starts
		endsPattern: string; // regexp (as string) when an incremental build ends
	}

And example for the problem matcher for the tsc compiler can be found here: https://github.com/Microsoft/vscode/issues/4316


Cleaned up exception handling

Cleaned up exception handling in the whole code base to improve logging and exception reporting:

Added exception chaining
Restricted some generic invocations

Completed review of Factory and lib. Frontend and some files in creation/lib are still to review
Also improved docstrings
These changes were initially in PR #326. I decided to separate them out in their own PR

Only rebase and suggestions after Bruno's approval


Make code completion work for modules developed as part of a project

Hello!
Spyder Version: Git version (4dev)
Python Version: 3.6
Operating system: Arch Linux

It seems PYTHONPATH manager can't load codecompletion for custom folders added in it. It only works for default folder project, not even for folders exist in default project folder.

This was fixed in Spyder 3.1.4.

Thanks for your attention. but I still have this error.

Then this is related to #4410, a more robust solution for sending spyder_path to plugins will be implemented in spyder3.2.2


[Discord Login] redirect login code doesn't work of relative path doesn't end with /

Not able to reproduce


Species Special Abilities are missing, when import data from OggDude Dataset

Most species abilities are too situational to add.  Twilek for example only get the setback removal in Arid environments, no way to add that specifically.  Best bet is to add it to the description in OggDude and reimport or just update it in the species in Foundry.  I personally add it to the biography tab for each character so they can see it easily.
If your asking to just add it as text in the description, that's doable.

I think this text should be in the description

Will be in version 1.2


Manually attach a ref to a wrapper?

I'm working on converting an older set of test fixtures from React Test Utils to enzyme, and I have a test that was taking the rendered component (rendered with React Test Utils) and manually attaching a ref to it, like this:
const focusStub = sinon.stub();
component.refs.someRef = { focus: focusStub };

...and then it executes some logic and runs an assertion to ensure that the focus stub was called as expected.
I'm having some trouble figuring out how I can do this with an enzyme wrapper. Is something like this possible with enzyme? Can someone point me in the right direction?
Thanks.

wrapper.instance().refs.someRef = { focus: focusStub };?

/me dies
That should have been a lot more obvious to me. Not sure why I didn't consider that. Thanks very much.


[Linux] Source configuration/data from standard locations

Presently, GAM uses its own directory structure; however if one wants to package this application for system installation, GAM will not (and should not) have access to alter its installation directories. GAM should be looking in standard Linux configuration directories: $XDG_CONFIG_HOME/gam/<configfile> if available, then /etc/gam/<configfile> for the system defaults. Individual user tokens should be sourced from $XDG_CONFIG_HOME/gam/<tokenfile> (and the program should refuse to work if the token is world-readable).
These changes would allow packaging into Archlinux for users to install.

Here's a hacky example that is currently applied to the Archlinux AUR package:
--- src/var.py	2018-08-03 14:30:31.000000000 -0600
+++ src/var.py	2018-08-11 12:02:27.184546770 -0600
@@ -20,6 +20,18 @@
 GAM_LATEST_RELEASE = GAM_ALL_RELEASES+u'/latest'
 GAM_PROJECT_APIS = u'https://raw.githubusercontent.com/jay0lee/GAM/master/src/project-apis.txt'

+try:
+    XDG_CONFIG_DIR = os.environ['XDG_CONFIG_HOME']
+except KeyError:
+    XDG_CONFIG_DIR = os.path.expanduser("~") + '/.config/'
+CONFIG_DIR = unicode(XDG_CONFIG_DIR) + u'gam/'
+
+try:
+    os.makedirs(CONFIG_DIR, mode=0700)
+except OSError:
+    if not os.path.isdir(CONFIG_DIR):
+        raise
+
 TRUE = u'true'
 FALSE = u'false'
 true_values = [u'on', u'yes', u'enabled', u'true', u'1']

@ainola is it worth submitting this as a patch to see if it'll be merged in?

The hack certainly is better than nothing for the AUR package but I'm afraid larger-scale changes need to happen before this gets merged in. For one, the logic for saving the token is broken IIRC and one needs to generate it with the incumbent method and move the tokens manually.
I think GAM needs to adopt the mentality of a system package rather than standalone; Now that there's an effort underway to clean up the codebase it very well may be worth our time to standardize locations (XDG directories for Linux, Library for mac, etc).

This is absolutely still relevant.

GAM7 now supports storing config in a folder specified by the GAMCFGDIR env variable. PTAL and see if this solves this issue.


Store editor version in project.godot

Backward compatible/neutral soution for https://github.com/godotengine/godot-proposals/issues/4355
Automatically adds current editor version right below the config_version in project.godot.
While it's true, that editor version in Godot 4.0 is appended to application/config/features, features were not backported to 3.x and I'm not sure if it is the right place for editor version anyway. It's not obvious that "4.0" in application/config/features array means editor version 4.0. Applying simple, universal and more human readable solution seems like a good first step to use it in future PRs (to show editor version in project manager, to warn the user about version difference).
Also storing version at the top prevents moving it up and down depending on the order and count of settings  in other sections. It's more convenient from the perspective of reading the text file or comparing diffs in version control tool.

I'm not sure storing the full version in project.godot is a good idea. It's very common to switch between versions in a given project, back and forth, and having it modify a file typically tracked in version control is IMO a hassle.

@akien-mga I'm not sure if the comment about "belonging" is about the whole PR or just the full version, so I'll try to clarify this. In other engines (Unity/Unreal) editor version belongs to files tracked by version control by default.
There are multiple reasons for this:

bug fixes or known bugs in specific versions of the engines
breaking changes in API
changes in behavior of some logic (like changes in physics engine)
plugins compatibility (not only in terms of API differences, but also in terms of brebuilt binaries in some cases)
external tools compatibility
you know where to start trying to upgrade the project to newer version (in Unity I usually take smaller steps by upgrading to the latest minor version and then jumping to the next major version)
you know on which version the project broke because of some game engine bugs
it's useful for configuring CI/CD (you know just by looking at the config file, which engine version is the project compatible with)
when you share the project with someone (or you are just collaborating on game with larger team), you don't have to tell everyone which engine version they have to download; this is true also for projects from game jams, just knowing it's Godot is not enough in some cases

It's not a hassle, it's an essential part of the workflow (at least my workflow with projects made with Unity and Unreal, so I'm hoping for an improvement in Godot too).
And I agree that VERSION_FULL_CONFIG (that's what I proposed originally) would be better - more beneficial for work with MRPs for example. Please let me know if I should change this now or we are waiting for more comments.

I've just resolved the branch conflict, no other changes yet.

As noted here, this PR is obsolete, the editor version is now stored inside the project.godot file.


It would be great if the Text could be in front of the spinner.
I created my own frames which gives me
. Loading
.. Loading
... Loading
..... Loading
...... Loading
....... Loading
...... Loading
..... Loading
.... Loading
... Loading
.. Loading
. Loading
:-) but I would like Loading in front (and keep loading as a text 👍 )

Hi @tvdsluijs, looks like this feature is in demand and I guess there is already a PR for it (#52). The only reason that PR is being held upon is I cannot think of a reason to add this feature. Maybe if you could share a use case for it, I can think more. Also, let me know if #52 is resolving this or I'm not understanding your feature request.

@ManrajGrover Perhaps you could consider using an enumeration controlled placement argument which defaults to the original placement? I think a spinner/progress indicator with a text prefix is a fairly common pattern. pip is one example of this.
Consider that these two support this mode as well:

https://pypi.python.org/pypi/progress
https://github.com/tqdm/tqdm

Hi @mverteuil, thank you for sharing your thoughts.

Perhaps you could consider using an enumeration controlled placement argument which defaults to the original placement

I didn't quite get this.

I think a spinner/progress indicator with a text prefix is a fairly common pattern. pip is one example of this.
Consider that these two support this mode as well:
https://pypi.python.org/pypi/progress
https://github.com/tqdm/tqdm

This makes sense. But should one expect user to provide a custom progress bar? One reason for this being different from tqdm is tqdm focuses more on iterative tasks while this library focuses on async tasks. I can add support for iterative tasks with this feature but I would keep it at spinners and not progress bars.
Would you check if #52 is serving the feature request?

Perhaps you could consider using an enumeration controlled placement argument which defaults to the original placement

This comment is grounded in the implementation that exists in #52. For example, instead of using right=False, you could use placement=Placement.LEFT. This allows more flexibility and makes having multiple options be mutually exclusive down the road easier. I may be overreaching a bit with that concern. I think that PR is a good start, but my issue lies in the signature.
I agree with you about keeping it spinners, as there are other projects that support progress bars already. I was more trying to indicate that those projects have some flexibility in labelling the progress.

@mverteuil We can work through the signature. Providing Placement enum is a good idea but I'm not sure if it's an overkill. I don't see any other positions where spinner can be placed (other than left or right). But yeah, we can surely have placement keyword argument and have default string as 'right'.

This feature has been added in #57. This will be made available in next release. 😄 Thanks to @stephen-bunn 🙌


Add new beautiful color schemes

Hi @bpostlethwaite!
I’ve implemented the colormaps mentioned in #5.
There are compressed versions of them, original maps have 256 steps each, here the number of steps is reduced to 32, the tests in draw.js show that this is a good balance between size and veritability.
There is a bunch of new files, mostly source colormaps and draw.js script comparing compressed/original colormaps. I’ve whitelisted index.js and colorScales.js, so that should not be a trouble for npm users.
Please have a look and merge/publish to npm if everything is ok.
Looking forward to play with new maps in gl-spectrum :)
Thanks!

Excellent - I will thoroughly review this week / weekend. Thanks for the PR!

Hi Ben! Is there any news on that?
@bpostlethwaite

@bpostlethwaite I temporarily used my fork here, should say some schemes are quite nice, especially cmocean. But I did not manage to craft coefs to render each scheme beautifully. Anyways, looking forward.

hey @dfcreative sorry I have been swamped recently. I'll check this out this week.

@bpostlethwaite any news?

@bpostlethwaite technically I can remove draw.js and all the colormap samples info from the PR to simplify review. Thought they do not affect installed package at all.

aight reviewing right now!

seems pretty good to me! There are some unnecessary changes considering we are just updating colour maps but I don't have objections.

Thanks again and sorry for the delay

@bpostlethwaite Could you also publish minor update to npm?
Thanks!

done https://www.npmjs.com/package/colormap


Can you help me get this compiled

I had the same problem as the other guy with esp not showing unless I pressed ESC, so I am trying to setup the new version but I have no idea how to even get this into a dll, I put it in visual studio(2013) and also in another compiler(resource hacker) but there  is always some errors and I just can't seem to get it working and I really wanna try this hack, if you have any spare time I hope you wouldn't mind helping me with this. My discord name is meatwad#9449

google.com or just use the pre-compiled dll. the cheat is so simple and easy to compile.

sorry for my ignorance on compiling code but I honestly have no idea how to get this working

Hi,
Install Visual Studio 2017 and Clang

Clang @M-Tass what for? Just VS 2017 is needed at least thats what I use

you do need VC++ tools @xbRead. the install ends up being about 6-8GB


HDDS-7139. INVALID_TOKEN is handled as internal error in S3G

What changes were proposed in this pull request?
Providing wrong signature (authentication) for S3 request should result in access denied (403), but currently it results in server error (500) instead:
$ kinit -kt /etc/security/keytabs/scm.keytab<EMAIL_ADDRESS>$ ozone sh bucket create /s3v/bucket
$ ozone sh key put /s3v/bucket/passwd /etc/passwd
$ curl -i -X GET 'http://s3g:9878/bucket/passwd' -H 'Authorization: AWS scm/scm@EXAMPLE.COM:asdfqwerty'
HTTP/1.1 500 Server Error
...

Server-side log:
s3g_1       | 2022-08-18 17:58:41,466 [qtp1178587240-20] WARN server.HttpChannelState: unhandled due to prior sendError
s3g_1       | javax.servlet.ServletException: javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: INVALID_TOKEN org.apache.hadoop.ozone.om.exceptions.OMException: User<EMAIL_ADDRESS>request authorization failure: signatures do NOT match
...
s3g_1       | Caused by: INVALID_TOKEN org.apache.hadoop.ozone.om.exceptions.OMException: User<EMAIL_ADDRESS>request authorization failure: signatures do NOT match
s3g_1       | 	at org.apache.hadoop.ozone.om.protocolPB.OzoneManagerProtocolClientSideTranslatorPB.handleError(OzoneManagerProtocolClientSideTranslatorPB.java:696)
s3g_1       | 	at org.apache.hadoop.ozone.om.protocolPB.OzoneManagerProtocolClientSideTranslatorPB.getS3VolumeContext(OzoneManagerProtocolClientSideTranslatorPB.java:1205)
s3g_1       | 	at org.apache.hadoop.ozone.client.rpc.RpcClient.getS3VolumeContext(RpcClient.java:510)
s3g_1       | 	at org.apache.hadoop.ozone.client.ObjectStore.getS3Volume(ObjectStore.java:167)
s3g_1       | 	at org.apache.hadoop.ozone.s3.endpoint.EndpointBase.getVolume(EndpointBase.java:133)
s3g_1       | 	at org.apache.hadoop.ozone.s3.endpoint.ObjectEndpoint.get(ObjectEndpoint.java:289)

This patch makes S3G handle INVALID_TOKEN as permission problem.
https://issues.apache.org/jira/browse/HDDS-7139
How was this patch tested?
Added Robot test case.
https://github.com/adoroszlai/hadoop-ozone/actions/runs/2887470108

Thank you, @adoroszlai for the patch and @Galsza for the review.

Thanks @kerneltime for reviewing and committing it.


0.17.0 deb install fails

Describe the bug
Failed to install package 'tusk_0.17.0_amd64.deb'
To Reproduce
Tried twice, failed both times
Expected behavior
I expect it to install like every version before it
Screenshots

Technical Info (please complete the following information)

OS: Linux Mint 18.3
Tusk Version: 0.17.0

Additional context
Add any other context about the problem here.

@Amandaville Thanks for trying my suggestion. There's now an error log that may help solve the problem. From the log it appears the previous version of Tusk has files that the installer does not want to overwrite.
@klaussinani makes the suggestion to completely purge the previous version. I believe this will solve the problem and the --force switch (had you chosen to use it) may have done this for you as it forces the version you are installing over any existing versions and tries to fix any dependencies.
I'm not sure if the version of Tusk via Snap is the same version as is in the .deb file -- if the annoying security feature is part of Tusk in either version then the work around is to move images you want to copy into the your local drive in off the /home/username/Pictures directory perhaps???
Note: Just so you know -- I am not a developer that works on Tusk, but am a software developer familiar with how Linux works and I offered assistance that perhaps will help the actual Tusk team to solve this issue.

@RyanNerd Thanks for all the help.  I purged the previous Tusk installation and the .deb file installed with no errors.  Thanks for the explanation about the --force switch.  I will keep that in my toolbox for the next time I have a similar issue.  I appreciate your suggestion to move my images to my /home directory but I have nearly 2TB of images and a /home directory with less than 100MB of space left on the SSD, so that's not an option.  I'm good now that the .deb install completed, but I'm still curious if the Appimage has the same security limitations and @klaussinani hasn't replied yet.  Aside from that inquiry, this issue can be closed.

Unfortunately, that is true for Snapcraft as well. Due to the snap's strictly confined nature, read & write operations on files outside of the user's the generic $HOME variable are not possible.
More info, about Snapcraft's architecture regarding package confinements & environment, is available on the official docs:

Snap Confinement
Environment Variables

Unfortunately, that is true for Snapcraft as well. Due to the snap's strictly confined nature, read & write operations on files outside of the user's the generic $HOME variable are not possible.
More info, about Snapcraft's architecture regarding package confinements & environment variables, is available on the official docs:
* [Snap Confinement](https://docs.snapcraft.io/snap-confinement/6233)

* [Environment Variables](https://docs.snapcraft.io/environment-variables/7983)

Thank you for the reply, it saves me a lot of time.  Since my workflow requires access to directories outside of $HOME, I will stick with the .deb install.


Removed guest based caching

Guests are treated as normal users
@drewwills

Looks good! :+1: It's an improvement that announcements for guest users have the same caching behavior as authenticated users.
But it begs the question... should announcements be cached for all users?

@drewwills I think it should be cached for everyone, but I'd like to do that using annotations like @Cacheable and not doing it the way it was done for guests. Doing it that way would take a bit longer to the point that I think this should be merged and we can work on the caching after the new year.


It's highly likely the singer has an error. You can use the Singer Error Check in the Tools > Singer window to generate an error log so you can find the issue (It's usually a file that isn't exported as a 44100 sample rate, 16bit Mono WAV file, or an oto.ini error).
This is also only a problem in this way with Worldline-R, so if you would like it to not crash if theres an error in a VB, you can switch to a CLASSIC resampler like resampler.exe, TIPs, and so on to have it react more flexibly.

It's highly likely the singer has an error. You can use the Singer Error Check which you can find under the cog icon in the Tools > Singer window to generate an error log so you can find the issue (It's usually a file that isn't exported as a 44100 sample rate, 16bit Mono WAV file, or an oto.ini error).
This is also only a problem in this way with Worldline-R, so if you would like it to not crash if theres an error in a VB, you can switch to a CLASSIC resampler like resampler.exe, TIPs, and so on to have it react more flexibly.

using TIPs fixed it! thank you :3


socket.error: [Errno 61] Connection refused

I've gotten this app to run but when I try to run:
celery inspect active
I get a:
socket.error: [Errno 61] Connection refused
Any ideas how I can fix this?
Thank you

Do you have a stack trace for the error?

(venv) Jacobs-MacBook-Pro:flasky-with-celery jacob$ celery inspect active Traceback (most recent call last):   File "/Users/jacob/Documents/pythonTests/venv/bin/celery", line 11, in <module>     sys.exit(main())   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/__main__.py", line 30, in main     main()   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/bin/celery.py", line 81, in main     cmd.execute_from_commandline(argv)   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/bin/celery.py", line 769, in execute_from_commandline     super(CeleryCommand, self).execute_from_commandline(argv)))   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/bin/base.py", line 311, in execute_from_commandline     return self.handle_argv(self.prog_name, argv[1:])   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/bin/celery.py", line 761, in handle_argv     return self.execute(command, argv)   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/bin/celery.py", line 693, in execute     ).run_from_argv(self.prog_name, argv[1:], command=argv[0])   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/bin/base.py", line 315, in run_from_argv     sys.argv if argv is None else argv, command)   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/bin/base.py", line 377, in handle_argv     return self(*args, **options)   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/bin/base.py", line 274, in __call__     ret = self.run(*args, **kwargs)   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/bin/celery.py", line 324, in run     return self.do_call_method(args, **kwargs)   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/bin/celery.py", line 346, in do_call_method     callback=self.say_remote_command_reply)   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/bin/celery.py", line 385, in call     return getattr(i, method)(*args)   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/app/control.py", line 81, in active     return self._request('dump_active', safe=safe)   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/app/control.py", line 71, in _request     timeout=self.timeout, reply=True,   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/app/control.py", line 307, in broadcast     limit, callback, channel=channel,   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/kombu/pidbox.py", line 283, in _broadcast     chan = channel or self.connection.default_channel   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/kombu/connection.py", line 757, in default_channel     self.connection   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/kombu/connection.py", line 742, in connection     self._connection = self._establish_connection()   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/kombu/connection.py", line 697, in _establish_connection     conn = self.transport.establish_connection()   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/kombu/transport/pyamqp.py", line 116, in establish_connection     conn = self.Connection(**opts)   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/amqp/connection.py", line 165, in __init__     self.transport = self.Transport(host, connect_timeout, ssl)   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/amqp/connection.py", line 186, in Transport     return create_transport(host, connect_timeout, ssl)   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/amqp/transport.py", line 299, in create_transport     return TCPTransport(host, connect_timeout)   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/amqp/transport.py", line 95, in __init__     raise socket.error(last_err) socket.error: [Errno 61] Connection refused
I have included the traceback for the error above.

This is Celery failing. Was the command just celery inspect active, or did you also have the -A option to point celery to your project? If that was missing, try adding the same -A you use for running the workers.

So I did the command celery worker -A inspect active and celery -A inspect active and now I get the error for both:
Traceback (most recent call last):   File "/Users/jacob/Documents/pythonTests/venv/bin/celery", line 11, in <module>     sys.exit(main())   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/__main__.py", line 30, in main     main()   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/bin/celery.py", line 81, in main     cmd.execute_from_commandline(argv)   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/bin/celery.py", line 769, in execute_from_commandline     super(CeleryCommand, self).execute_from_commandline(argv)))   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/bin/base.py", line 309, in execute_from_commandline     argv = self.setup_app_from_commandline(argv)   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/bin/base.py", line 469, in setup_app_from_commandline     self.app = self.find_app(app)   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/bin/base.py", line 489, in find_app     return find_app(app, symbol_by_name=self.symbol_by_name)   File "/Users/jacob/Documents/pythonTests/venv/lib/python2.7/site-packages/celery/app/utils.py", line 240, in find_app     found = sym.celery AttributeError: 'module' object has no attribute 'celery'

-A takes an argument. See how you run the workers, this should be the same.

I used this command celery -A celery_worker.celery inspect active
and now have the error: Error: No nodes replied within time constraint. printed in red.
(Redis is running)

Hmm. It appears this is a Celery bug. I'm not clear if it is solved or not, people are still seeing this. See https://github.com/celery/celery/issues/1456 and https://github.com/celery/celery/issues/3453.

I will look at those, thank you.


Error: error during handshake,how to solve this problem！

May 23 12:41:35 datalake cosmovisor[2388114]: 12:41PM INF Starting IndexerService service impl=IndexerService module=txindex
May 23 12:41:35 datalake cosmovisor[2388114]: 12:41PM INF ABCI Handshake App Info hash="4\x01"��U�\x10H�s\aX-\x0f}�tM \v�`#Ra\x1a���q�" height=2383300 module=consensus protocol-version=0 software-version=6.4.1
May 23 12:41:35 datalake cosmovisor[2388114]: 12:41PM INF ABCI Replay Blocks appHeight=2383300 module=consensus stateHeight=2383300 storeHeight=2383301
May 23 12:41:35 datalake cosmovisor[2388114]: 12:41PM INF Replay last block using real app module=consensus
May 23 12:41:35 datalake cosmovisor[2388114]: Error: error during handshake: error on replay: wrong Block.Header.AppHash.  Expected 340122B3C355CA1048E07307582D0F7DB6744D200B8C602352611A92C7DD71DE, got 67366325F099CABB1667AB169584B746EFF7D83777EA3C6B845B470DF1B519BA
May 23 12:41:35 datalake cosmovisor[2388109]: 12:41PM ERR  error="exit status 1" module=cosmovisor
May 23 12:41:35 datalake systemd[1]: cosmovisor.service: Main process exited, code=exited, status=1/FAILURE

Do we need to backport more db / snapshot related fixes to the v6.x line?
cc @p0mvn

Yes, I'll work on this and get back once v6.x is updated and released

Yes, I'll work on this and get back once v6.x is updated and released

Is it a bug of osmosis? , if it's a bug, when will this be fixed?

Do we need to backport more db / snapshot related fixes to the v6.x line?
cc @p0mvn

Do we need to backport more db / snapshot related fixes to the v6.x line?
cc @p0mvn

Is it a bug of osmosis? , if it's a bug, when will this be fixed?

This happened at height 2383300 which is the v5 upgrade. This just means they didn't change their binary at the correct height

This happened at height 2383300 which is the v5 upgrade. This just means they didn't change their binary at the correct height

Thank you for replying to me so quickly, if this happens, how can I fix it, because it took me a few months to sync to 2383300, I don't want to sync data from 0 anymore, can you tell me how to fix it, thank you very much!

Can I ask why you are syncing from genesis? Firstly, it's very odd that it took months to do and secondly, if you just need the chain data you can download a archive snapshot from chainlayer instead.
But to answer your question, you need to set the upgrades in this order:
V3,V4,V6,V8
This is due to the hardforks that took place. When you get an app hash error, the DB is corrupt and there is nothing you can do about it AFAIK

V3,V4,V6,V8

The archive snapshot file currently has a size of 4.0T. I can't download it in a limited time. I have tried downloading it, but it is updated every time it is halfway through the download, which causes the download to fail every time.
And I used the osmosis-install.py provided by you for the full node synchronization. There is no configuration cosmovisor in it. Will it automatically upgrade V3, V4, V5, V6, V8? Because the memory is only 16G, when upgrading V5 An error was reported, so I set the swap memory to 32G, and reduced 6.4.1 in V5 to V5.0.0. Could it be the database confusion caused by my downgraded version?

Yes that's correct, it should have been left at V6. If you did use the get.osmosis.zone tool, it would do all these upgrades for you. With that being said, I highly don't recommend running an archive node with 16GB base memory. I would say it would require 32GB base and that's a hard minimum. I'd be more inclined to say 64GB min for archive node

是的，没错，它应该留在V6。如果您确实使用了 get.osmosis.zone 工具，它会为您完成所有这些升级。话虽如此，我强烈不建议运行具有 16GB 基本内存的存档节点。我会说它需要 32GB 的基础，这是一个很难的最低要求。我更倾向于说存档节点最少 64GB

Understand, I saw your reply last time, I was going to set the swap memory to 64G, but this error occurred later, but I have seen your upgrade document V5 version can use V5.0.0? , let's not talk about this, now that this situation has happened, is there any way to remedy it, I'm going to go crazy all over again

Yes that's correct, it should have been left at V6. If you did use the get.osmosis.zone tool, it would do all these upgrades for you. With that being said, I highly don't recommend running an archive node with 16GB base memory. I would say it would require 32GB base and that's a hard minimum. I'd be more inclined to say 64GB min for archive node

Understand, I saw your reply last time, I was going to set the swap memory to 64G, but this error occurred later, but I have seen your upgrade document V5 version can use V5.0.0? , let's not talk about this, now that this situation has happened, is there any way to remedy it, I'm going to go crazy all over again

I'm really sorry but once you hit app hash you have to resync. So here's the things: you can upgrade in order (v3,v4,v5,v6,v7,v8), but then you risk corruption which is what happened to you. Instead, if you follow the order I showed (3,4,6,8). Also to clarify, the installer used cosmovisor with this order. We don't use 5 and 7 since that would risk corruption

I'm really sorry but once you hit app hash you have to resync. So here's the things: you can upgrade in order (v3,v4,v5,v6,v7,v8), but then you risk corruption which is what happened to you. Instead, if you follow the order I showed (3,4,6,8). Also to clarify, the installer used cosmovisor with this order. We don't use 5 and 7 since that would risk corruption

Where can I download the snapshot data of 2 million heights?

https://quicksync.io/networks/osmosis.html
There are some folks (valnodes) working on tooling that could potentially lower some of the replication factor of data in the archive nodes, but that won't really help you either.
Whats your goal in having an archive node? Can maybe suggest ways to tune your syncing to improve it. But I would just recommend getting everything to sync from genesis done via cosmovisor as get.osmosis.zone does.


Add website analytics

Why are these changes needed?
Add clarity analytics to website.
Related issue number

Checks

[ ] I've included any doc changes needed for https://microsoft.github.io/autogen/. See https://microsoft.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

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

Project coverage is 35.68%. Comparing base (f63f056) to head (cac2151).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2201      +/-   ##
==========================================
- Coverage   37.53%   35.68%   -1.86%
==========================================
  Files          77       77
  Lines        7710     7710
  Branches     1655     1655
==========================================
- Hits         2894     2751     -143
- Misses       4573     4727     +154
+ Partials      243      232      -11

Flag
Coverage Δ

unittests
35.68% <ø> (-1.85%)
:arrow_down:

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add an optional flag to disable swagger in Pinot servers.

Description
Allow optional start of the swagger as the Reflection lib has multi-thread access bug (#7271 ). It is not always possible to pin the Reflection lib on 0.9.9. So this optional setting will disable the swagger because it is NOT an essential part of Pinot servers.
Upgrade Notes
Does this PR prevent a zero down-time upgrade? (Assume upgrade order: Controller, Broker, Server, Minion)

[ ] Yes (Please label as backward-incompat, and complete the section below on Release Notes)

Does this PR fix a zero-downtime upgrade introduced earlier?

[ ] Yes (Please label this as backward-incompat, and complete the section below on Release Notes)

Does this PR otherwise need attention when creating release notes? Things to consider:

New configuration options
Deprecation of configurations
Signature changes to public methods/interfaces
New plugins added or old plugins removed

[ ] Yes (Please label this PR as release-notes and complete the section on Release Notes)

Release Notes

Documentation

Codecov Report

Merging #7341 (78e3fc9) into master (892a0c1) will decrease coverage by 6.90%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #7341      +/-   ##
============================================
- Coverage     71.57%   64.67%   -6.91%
+ Complexity     3293     3287       -6
============================================
  Files          1504     1457      -47
  Lines         74311    72213    -2098
  Branches      10798    10583     -215
============================================
- Hits          53189    46701    -6488
- Misses        17505    22143    +4638
+ Partials       3617     3369     -248

Flag
Coverage Δ

integration1
?

integration2
?

unittests1
69.27% <ø> (-0.09%)
:arrow_down:

unittests2
14.53% <ø> (+0.03%)
:arrow_up:

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

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


Fluctuations in training results under the same configuration

Dear author, thank you for your excellent work. As a beginner, I encountered a problem during the code copying process. I trained with the same configuration, but the results varied between 56.8 and 57.1. Is there a way to ensure consistency in training results? This will enable me to modify your code more effectively.

Thanks for your attention to our work!
It is suggested that use the fixed random seed in training process and dataloader. You can change line 27 in 'train.sh' from '--no-use_seed' to 'use_seed' and cancel the annotation in line 142-143 of 'DFormer/utils /dataloader/dataloader.py' to fix the two processes.
However, the training results still cannot be the same every time, and it is normal for the results to fluctuate within a small range. The reported performance in our paper is also obtained by averaging the results of several trainings.


[DOCFIX] Update docx of the Chinese version

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/16264/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/16282/
Test PASSed.


Add testnet/mainnet type for assets

When retrieving all assets from the @chain-registry package, it is not possible to differentiate between mainnet/testnet assets, only for the chain is it possible. A boolean should be added if possible. What do you think about it? Thanks in advance.

This should be handled by the package looking at which folder the chain/asset data comes from (testnets vs top level).


Not working with new db structure

Whenever i load profiles or leaderboards i get an error stating that the table isn't recognised.

You should use guweb's development branch, main is currently outdated and cannot run on gulag servers above 3.5.3.
Thanks for opening an issue!


Spec conformance for variable creation code actions

Description:
$title

This task has been completed and issues created for the identified broken cases. Hence closing this issue.


Reduce opacity of 'Powered by PayButton.org' text to 0.4

I thought I accomplished this with this commit: https://github.com/PayButton/paybutton/commit/330d38cc22772d3bf89a39adff452a0b80807f7e but it didn't seem to work when I built it in my test env.

hey please assign this issue to me


Global jpegopti

I have jpegopti and pngopti installed so i can just type jpegopti in the terminal, no need for a path.
I can't seem to allow for that, if i define binDirectory: '' (empty string) it's looks for /jpegopti.
Would it be possible to have only the command called? No need for different settings across servers then

The command "templates" that are used can be changed, so it is just a matter of changing the template for the command you are having trouble with, and making it so it doesn't use the binDirectory:
---
After: 'silverstripe-optimisedimage/config#core'
---
ImageOptimiserService:
  availableCommands:
    jpg:
      jpegoptim: 'jpegoptim -p -m%3$d --strip-all %2$s'

Hope that makes sense!

Super, thanks :-)


GDrive install error

Hello,
Just like wytr before me, I am stuck on step 20 of the wiki guide for adding Google Drive API.
I have followed the instructions as listed, and receive the same error:
pi@rpizero2w:~ $ gdrive account add
No valid arguments given, use 'gdrive help' to see available commands

Following your advice to wytr, I attempted to build gdrive from scratch (gdrive was not listed in/under [$ ls] to begin with.)
After selecting gdrive, and entering the command
$ cargo build --release

as prompted, the following error occurs:
error: failed to get 'google-drive3' as a dependency of the package 'gdrive v3.9.1' (/home/pi/gdrive)'

caused by:
  failed to load source for dependency 'google-drive3'

caused by:
  unable to update https://github.com/prasmussen/google-apis-rs?branch=resumable-fix#lf754445

caused by:
  failed to fetch into: /home/pi/ .cargo/git/db/google-apis-rs-9de08c63e04c0b9f

caused by:
  network failure seems to have happened
  if a proxy or similar is necessary 'net.git-fetch-with-cli' may help here
  https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli

caused by:
  SSL error: received early EOF; class=Ssl (16); code=Eof (-20)

Do you use the Raspberry Pi Zero2?
I've update the RPi4 version. However didn't find the time for the Zero2.
I will immediately make up for the loss.
Once ready, you're the first to know.

Yes, I am setting up a home surveillance network using 4 raspberry pi zero 2 W. My plan is to install this on each of them.
Thank you for your time, I look forward to your update

Please download the NEW version.

I can confirm the new Zero Two W update is a success. I successfully flashed, installed and ran the new version on both of my zero two w's.
Now I have another issue: I have set up overlay as per your settings wik, and I successfully receive email notifications for recordings,  but no video files are being sent to my Drive account.

By enabling the overlay, videos are temporarily stores in RAM before uploading to Gdrive.
Most likely the limited size of RAM on the RpiZ2 (500 MB) is casing your issue.
I will look into the matter. Although, I'm afraid this can't be solved.