Enable users to change their password when logged in

Following our security report recommendation (see ticket for link to report)
The Trello ticket: https://trello.com/c/TieWrBG5/44-password-reset-link-from-logged-in-session

@Wynndow I think all the comments have been addressed now.

I'm fine with this I think, but just so the argument has definitely been rehearsed: one of the reasons we proposed just having "reset password" instead of "change password" was (apart from it would be less work to implement, which is now moot) that it had the benefit of ensuring the user did still have (sole) access to their email account.
So you couldn't get access to someone's account and then change the password, without an email notification going out.
The danger here is that someone could have their password changed without any email notification going out (unless I've missed where you do that), and so be unaware that their account had been breached.

It's a good question - it wasn't specifically mentioned in the pen test recommendations, but we were considering sending an email notification along the lines of "your password has been changed", which shouldn't be too hard to do (with some help from a friendly content person). Would releasing this first and doing the email notification later pose a significant security risk?

@Wynndow @galund We updated this pull request with email alert functionality now. Let us know if you think it might be ready for merging ☺

OK, I've pushed a commit that changes the flow so the user sees the 'success' message even if the alert email fails. Instead of raising a 5xx error, we just log an error message.
After trying and failing to find a sensible way to assert that we've done that logging, I settled for moving the logging itself to a new helper. This means we can patch current_app.logger without affecting the test client's request. It moves away from what I've been trying to do regarding helper functions, which is to keep Flask objects like current_app, current_user etc in the app views only, so we can better keep track of what app context is being applied where. If anyone can see a another way round it I'd be happy to change this.

@Wynndow @galund I think all the comments have been addressed now.


Add Italian locale (2nd attempt)

Everything seems fine. I will merge this as soon as i'm done with the other translations.
Thank you very much for your time!


Rework Action

v2 used some deprecated stuff which will be removed soon
Reworks some dumb/fragile hacks

Fixes CTRL-216


Bot crashes at random.

He guys i was wondering what to do when this pops up: http://imgur.com/HNcRTC5 i dont realy know how to put this issue in question format so i hope its ok like this.

https://github.com/Twentysix26/Red-DiscordBot

woops man i used the wrong picture :(
http://imgur.com/Rn78tPV

I believe this is a bug that happens when the bot reconnects to discord after it gets disconnected.  I'm not sure if this is a lib bug or something I have to fix though, will look into it a bit more.


Editor freeze on search previous

Godot version:
3.1.1
Issue description:
I encountered an editor freeze that might happen when using search previous (Shift + F3) in the code editor. No idea what exactly causes it, but it results in this loop running infinitely:
https://github.com/godotengine/godot/blob/3c78837218bafed0324d67f4f721fed8887a4369/scene/gui/text_edit.cpp#L5039-L5045
It only happens if the search bar is invisible.
Steps to reproduce:

Copy this code into script editor:

func update_extents() -> void:
    pass

Double click update_extents and press Ctrl + F, so the search for update_extents will start.
Press Escape to close search and make sure the text is unselected.
Place the cursor between n and t
Press Shift + F3

6a842fb commit adds another reproduction steps (which are not valid before the fix), but infinite loop stays the same.

Create or open a script file with content:

123
123

Ctrl+F and type 23
Press Shift + F3 or use buttons on search toolbar to search_prev

Not sure, should I create another Issue, or we can just reopen this one?


AttributeError: 'Retry' object has no attribute 'copy'

The elasticapm Python client fails with AttributeError: 'Retry' object has no attribute 'copy' during HTTP retries.
The Elastic APM UI points towards the following lines being responsible for the crash https://github.com/elastic/apm-agent-python/blob/c9a1f7a74b4b8e39af06f9b383037a3ae49ca42b/elasticapm/instrumentation/packages/urllib3.py#L66-L68
To Reproduce
Configure a requests session with urllib3 retries as described below. Then point it at a flaky endpoint.
class TimeoutHTTPAdapter(HTTPAdapter):
    def __init__(self, retries: int, *args: Any, **kwargs: Any) -> None:
        self.timeout = kwargs.pop("timeout", 30)
        self._retries = retries
        super().__init__(*args, **kwargs)

    def send(
        self, request: requests.PreparedRequest, **kwargs: Any
    ) -> requests.Response:
        kwargs.setdefault("timeout", self.timeout)
        return super().send(request, **kwargs)

def session_with_retries(
    retries: int = 3,
    backoff_factor: float = 1,
    timeout: int = 30,
    status_forcelist: Collection[int] = (408, 429, 500, 502, 503, 504),
) -> requests.Session:

    retry_strategy = Retry(
        total=retries,
        backoff_factor=backoff_factor,
        status_forcelist=status_forcelist,
        allowed_methods=Retry.DEFAULT_ALLOWED_METHODS.union(["POST", "PATCH"]),
    )
    adapter = TimeoutHTTPAdapter(
        retries=retries, max_retries=retry_strategy, timeout=timeout
    )

    s = requests.Session()
    s.mount("http://", adapter)
    s.mount("https://", adapter)
    return s

Environment

OS: Linux
Python version: Python 3.11
Framework and version: urllib3==2.0.6 and requests==2.31.0
APM Server version: 8.10.4
Agent version: elastic-apm==6.19.0

Background

This appears to be related to the recent urllib3 fixes https://github.com/elastic/apm-agent-python/pull/1822 and https://github.com/elastic/apm-agent-python/issues/1816

hello all, can you please suggest older previous version of elastic apm agent which is stable and has not that type of issues?

@cluster-master  You need to use an older version of urllib3; no version of the agent has a fix for this yet.

@StephanErb could you please provide an example requests session method call please? Just need the method and what parameters you are passing, no need for actual values. Thanks.

You can find a public example here which triggers the issue: https://github.com/kubernetes-client/python/blob/master/kubernetes/client/rest.py#L217-L221
I don't seem to be able to reproduce it with anything else any longer besides the Kubernetes client.

@StephanErb thanks!

@StephanErb the kubernetes code pass args as kwargs though so it'll not pass thru the same code path. Do you have another stack trace?

@xrmx does that help?
kubernetes==27.2.0
urllib3==2.2.1
elastic-apm==6.20.0

@StephanErb that's useful, thanks! Looks like I really need a TimeoutError and not having an http connection.


improve server url handling

In the current version two server urls can be stored (default and server). If both urls are stored the tool will always use the "server" url.
It should be possible to switch between urls with a command or specify which url is to be used with the current command. ( maybe server_1 and server_2 )
If the generic config for issue fields is implemented, the config must always be according to which url is in use
Login data must be server specific, this could be solved by adding profiles for each server.
The profile must contain:

the server url
a configuration file for this jira instance (see issue #2)

The profile might also contain:

login data for this server
a server certificate

Profile folder can also contain the server field configuration, data, schemas, etc. Not encrypted.

with the server profiles the encryption module will be removed. The api token will be stored in plain text until a better solution is found. Username and password will not be stored anymore but must be provided on the commandline any time the tool is used
(if no token is available in the server profile).

this issue adresses the same objective as #32.
#32 was closed for this reason


Setting Clean = True gives a TFS error

Agent version and platform
Version of your agent? 2.122.1
Windows Server 2016 Standard
VSTS type and version
On Premise TFS 2018
What's not working?
Setting Clean = True gives a TFS error
We migrated from TFS 2015 and installed new agent to communicate with new TFS. We have *.dg file created for dotnet restore command just under working folder s subdirectory. We had in previous version enabled settings for cleaning the sources in Get sources step build.
Our workspace mapping is the same as on the old server:
server path $/ProjectName/DEV maps to local path under $(build.sourcesDirectory) as ProjectName_DEV
Under previous agent, mapped directory only was deleted, but now we get rid of whole s subdirectory
Agent and Worker's diag log
When agent is restoring sources, I get following error:
2017-12-28T13:27:06.5891032Z ##[command]tf vc scorch C:\Agent2017_work\28\s /recursive /diff /unmapped /loginType:OAuth /login:.,******** /noprompt
2017-12-28T13:27:07.5266002Z No appropriate mapping exists for C:\Agent2017_work\28\s.
2017-12-28T13:27:07.5422211Z ##[warning]Exit code 100 returned from process: file name 'tf', arguments 'vc scorch C:\Agent2017_work\28\s /recursive /diff /unmapped /loginType:OAuth /login:.,******** /noprompt'.
2017-12-28T13:27:07.5422211Z ##[command]tf vc workspace /delete ws_28_9;4f7cb749-501b-484a-8094-b59f3592064a /collection:http://serverName:8080/tfs/ProjectCollection/ /loginType:OAuth /login:.,******** /noprompt
2017-12-28T13:27:10.2078597Z ##[command]tf vc workspace /new /location:local /permission:Public ws_28_9 /collection:http://serverName:8080/tfs/ProjectCollection/ /loginType:OAuth /login:.,******** /noprompt
2017-12-28T13:27:10.8016260Z ##[command]tf vc workfold /unmap /workspace:ws_28_9 $/ /collection:http://serverName:8080/tfs/ProjectCollection/ /loginType:OAuth /login:.,******** /noprompt
2017-12-28T13:27:11.4266014Z ##[command]tf vc workfold /map /workspace:ws_28_9 "$/ProjectName/DEV" C:\Agent2017_work\28\s\PTDE_DEV /collection:http://serverName:8080/tfs/ProjectCollection/ /loginType:OAuth /login:.,******** /noprompt
2017-12-28T13:27:12.0047232Z ##[command]tf vc get /version:8946 /recursive /overwrite C:\Agent2017_work\28\s /loginType:OAuth /login:.,******** /noprompt

@rudidlo Garima is no longer with Microsoft, and I'm not sure if she had made any progress on this before leaving (I know it's open source, but we don't expect her to continue the work while off earning yet another degree 😁).
As this is almost a year old, is this still an issue for you?

Closing unless someone replies with a "me too".


Add point to add with renderer

Hi all!

We already discussed the directory/readme names; I used the common readme titles for the new readmes.

The screenshot names were pretty inconsistent within the common designs.

I kept the How it works section from the new readmes, because I thought they were better, but let me know if you disagree.
Thanks!

Thanks guys, that's those changes made!


problem when using DynamicRNNLayer

i think we should define cell_fn in the way of reuse in DynamicRNNLayer.
ValueError: Attempt to have a second RNNCell use the weights of a variable scope that already has weights: 'model/dynamic_rnn/rnn/basic_lstm_cell'; and the cell was not constructed as BasicLSTMCell(..., reuse=True).  To share the weights of an RNNCell, simply reuse it in your second calculation, or create a new one with the argument reuse=True.
。
codes like the follow:
input_data = tf.placeholder(tf.float32, [batch_size, None,2])
targets = tf.placeholder(tf.float32, [batch_size, None])
# Testing (Evaluation)
input_data_test = tf.placeholder(tf.int32, [1, 1])
targets_test = tf.placeholder(tf.int32, [1, 1])
def inference(x, is_training, num_steps, reuse=None):
    """If reuse is True, the inferences use the existing parameters,
    then different inferences share the same parameters.
    Note :
    - For DynamicRNNLayer, you can set dropout and the number of RNN layer internally.
    """
    print("\nnum_steps : %d, is_training : %s, reuse : %s" %
                                            (num_steps, is_training, reuse))
    initializer = tf.random_uniform_initializer(init_scale, init_scale)
    with tf.variable_scope("model", reuse=reuse):
        tl.layers.set_name_reuse(reuse)
        network = tl.layers.InputLayer(
                    inputs = x,
                    name ='layer')
        network = tl.layers.DynamicRNNLayer(network,
                                  cell_fn = tf.contrib.rnn.BasicLSTMCell,
                                  n_hidden = 2,
                                  dropout = 0.7 if is_train else None,
                                  sequence_length = None,
                                  #sequence_length = DynamicRNNLayer.retrieve_seq_length_op2(a),
                                  return_seq_2d = False,     # stack denselayer or compute cost after it
                                  name = 'dynamic_rnn')
        network = tl.layers.DropoutLayer(network, keep=keep_prob, is_fix=True, is_train=is_training, name='drop1')
      # Alternatively, if return_seq_2d=False, in the above RNN layer,
        # you can reshape the outputs as follow:
        network = tl.layers.ReshapeLayer(network,
              shape=[-1, int(network.outputs._shape[-1])], name='reshape')
        network = tl.layers.DenseLayer(network,
                    n_units=1,
                    W_init=tf.random_uniform_initializer(-init_scale, init_scale),
                    b_init=tf.random_uniform_initializer(-init_scale, init_scale),
                    act = tf.identity, name='output_layer')
    return network, lstm1

# Inference for Training
network, lstm1 = inference(input_data,
                        is_training=True, num_steps=num_steps, reuse=None)
# Inference for Validating
network_val, lstm1_val = inference(input_data,
                        is_training=False, num_steps=num_steps, reuse=True)
# Inference for Testing (Evaluation)
network_test, lstm1_test = inference(input_data_test,
                        is_training=False, num_steps=1, reuse=True)

this problem is the same as this one :  https://github.com/zsdonghao/text-to-image/issues/2
please have a look.
actually if you use TF1.2 , it will automatically reuse the RNN cell.~

thanks!


Consider not utf-validating fields which are unused.

So apparently serde_qs still parses and validates the utf-8 of fields that are not in the struct it is attempting to parse to. I think it probably shouldn't.
My issue is ultimately that PayPal is feeding me an invalidly urlencoded ü (u with an umlaut), as %FC rather than %C3%BC.
However... it is in a query string field that I am not even using in my structure (It is in address_street). I do not think that serde_qs should fail in this case.
The output is along the lines of "invalid utf-8 sequence of 1 bytes from index 4".
When parsed via Node.js's querystring.decode(), it shows up as an unknown utf-8 character, rather than failing to parse.

Hey @Fishrock123. That's a great suggestion. I can do a few things:

Be more lenient with decoding errors in characters
Collect errors but only report them if that field shows up in deserialization

The latter would be a great improvement. You could even report for which key the invalid value as found.

Hey @Fishrock123. That's a great suggestion. I can do a few things:

Be more lenient with decoding errors in characters
Collect errors but only report them if that field shows up in deserialization

The latter would be a great improvement. You could even report for which key the invalid value as found.

I agree that 2. would be very nice!

I agree that 2. would be very nice!

I have a simpler suggestion here - perhaps non-strict mode can ignore faultily encoded characters and just spit them out as the unicode "unknown character" character?

Fixed by https://github.com/samscott89/serde_qs/pull/62 in 0.10.0 - thanks!


Door in same  position calls _on_body_entered() from each Scene of transition.

Using Godot 3.1.1 Stable, Windows 10, Building with GLES3 for Windows Desktop (debug builds only)
Steps To Reproduce

Downloaded and imported project.
Duplicated Grasslands level to "NewLevel".
Added a Door from Grasslands to "NewLevel".
Made the existing Door in "NewLevel" (previously the Cave Door), point back to Grasslands as an exit.
Run the game.
Run into the "NewLevel"
Run back out to "Grasslands"
Observe the game will transition to Grasslands for a quick moment and then automatically transition you to the Cave.

Work Around Overview
I still haven't pin pointed the actual bug, but I have a workaround that is acceptable for the moment.
Fundamentally, you need to disable the Player's collisions after the first door collision. This will prevent any other potential collisions from happening. Something like the following in Door.gd's _on_body_entered() call:
func _on_body_entered(body):
    if not body is PlayerController:
        return

    emit_signal("player_entered", map_path)

    # Must disable collision to prevent the collision from being
    # picked up in the following scene.
    body.disable_collisions()

Now you need to re-enabled the collisions after any other signals may occur, but before the player starts playing again. This can be done in LevelLoader.gd's change_level() call:
func change_level(scene_path):

    if map:
        map.get_ysort_node().remove_child(player)
        remove_child(map)
        map.call_deferred('free') #queue_free()

    map = load(scene_path).instance()
    add_child(map)

    map.get_ysort_node().add_child(player)
    var spawn = map.get_node("PlayerSpawningPoint")
    player.reset(spawn.global_position)

    # Player collisions were disabled in Door.gd. We must
    # wait a complete frame (after setting player to
    # spawn point) to flush all the collisions.
    yield(get_tree(), "idle_frame")

    # Now we can re-enabled Player collisions.
    player.enable_collisions()

    for monster in get_tree().get_nodes_in_group("monster"):
        monster.initialize(player)
    map.initialize()
    emit_signal("loaded", map)

And finally, it seemed like pausing the tree in Game.gd's change_level() call outside of the yield(transition) calls was causing some weird conditions, so I only pause the tree around the actual level transition:
func change_level(scene_path):

    yield(transition.fade_to_color(), "completed")
    tree.paused = true

    level_loader.change_level(scene_path)
    for door in level_loader.get_doors():
        door.connect("player_entered", self, "_on_Door_player_entered")

    tree.paused = false
    yield(transition.fade_from_color(), "completed")

And the enable_collisions() and disable_collisions() implementations in PlayerController.gd are:
func enable_collisions():
    $CollisionPolygon2D.set_deferred("disabled", false)

func disable_collisions():
    $CollisionPolygon2D.set_deferred("disabled", true)

Sorry for the code snippets. I would have done a fork and PR but I'm not convinced this fix is complete, its just a good enough work around for now.

I have the same issue, however the code proposed here doesn't work for me : (
Running in editor on:
Godot 3.2.stable (steam version)
MacOS Catalina 10.15.3

@LeTristanB, Sounds about right. I was shooting from the hip with that stuff. I ended up replacing all the gdquest code from my project, but I did still run into the issue where the collision event seems to be passed to a newly loaded scene. I'll have to look at the referenced code base again to see if I could actually patch it correctly for Godot 3.2. For now, the following is my new handler ... not sure if this pattern would work? (Just guessing for the time being.)
func _on_body_entered(body : Object, signame : String, tgtname : String, run_data : Dictionary = {}, park_data : Dictionary = {}):
    if body is Player:
        if park_data.has('doorexit'):
            body.set_global_position(park_data.doorexit.get_global_position())
            yield(get_tree(), "idle_frame")
            #reconnect_events()
        g.call_deferred(signame, tgtname, run_data, park_data)

The extra arguments (i.e. tgtname, run_data, and park_data) just have to do with managing state. You can ignore that. signame is the function that gets called in response to triggering the signal handler. (It actually ends up calling a function called "change_client_scene" which does a load() -> remove_child(old_scene) -> add_child(new_scene)). I think the net effect of what I am doing is performing a double yield. First yielding for a frame and then doing a deferred call to the actual signal handler. This double yielding seems to have done the trick in my subsequent projects. Still doesn't feel quite right from a design pattern though.

Thanks for the report.
If I get it right, if you have doors in two different levels but that overlap with the player's location, and you spawn the player on that door, it triggers the two doors at once? From the way the game is coded, that's to be expected.
This project would need some serious code refactoring if we were to make it so you can use it as a template or something.
What I'd do is ensure the player doesn't spawn on a door, i.e. if it does, move it away from the door. Or have doors teleport to another location. See how we did this in the 2D platformer:

Portals (equivalent of doors) https://github.com/GDQuest/godot-platformer-2d/blob/master/game/src/Objects/Portal.gd
Checkpoint system https://github.com/GDQuest/godot-platformer-2d/blob/master/game/src/Objects/Checkpoint.gd
Level loader https://github.com/GDQuest/godot-platformer-2d/blob/master/game/src/Autoload/LevelLoader.gd

It's simple but it works well, we can teleport the player to any portal on any map

if you have doors in two different levels but that overlap with the player's location, and you spawn the player on that door, it triggers the two doors at once?

Not quite. I think when a player is added (add_child) to a new map, if on the new map there is a door at the position where the player was in the previous map, the door on the new map will detect a collision, despite if the player not spawning at that door's location. The bug looks like it's in the engine, not the project logic per se.
Here's a video of the unwanted teleport in action (the player should not spawn back to grassland because the player never touches the cave door to grassland):
https://media.giphy.com/media/LmNqxjAFJlbfwWFWHf/source.mov
Here's how to set it up the maps to reproduce:


Update Nuget to 6.2.1

Tool name
Nuget
Tool license
Apache License, Version 2.0
Add or update?

[ ] Add
[X] Update

Desired version
6.2.1
Approximate size
No response
Brief description of tool
No response
URL for tool's homepage
No response
Provide a basic test case to validate the tool's functionality.
No response
Platforms where you need the tool

[ ] Azure DevOps
[ ] GitHub Actions

Virtual environments where you need the tool

[ ] Ubuntu 18.04
[ ] Ubuntu 20.04
[ ] Ubuntu 22.04
[ ] macOS 10.15
[ ] macOS 11
[ ] macOS 12
[ ] Windows Server 2019
[ ] Windows Server 2022

Can this tool be installed during the build?
No response
Tool installation time in runtime
No response
Are you willing to submit a PR?
No response

Nuget recently announced a security vulnerability in v6.2.0 or lower. As per the docs, the windows-latest virtual env uses v<IP_ADDRESS> of nuget.
https://github.com/NuGet/Announcements/issues/62
Please update Nuget to 6.2.1. Thanks.

Just noticed that this Nuget update has been included in the new release and is being deployed. 😊
Thanks. I can close this issue.


Cosign 2.2.1 breaks verify with KMS key

Description
Cosign 2.2.1 seems to have an issue with verify:
cosign verify --key azurekms://<AZUREKEYVAULT>/signtest <REGISTRY>.azurecr.io/bla:bla

Error: no matching signatures
main.go:69: error during command execution: no matching signatures

Howeber, running the same command with 2.2.0 works
cosign verify --key azurekms://<AZUREKEYVAULT>/signtest <REGISTRY>.azurecr.io/bla:bla

Verification for <REGISTRY>.azurecr.io/bla:bla --
The following checks were performed on each of these signatures:
  - The cosign claims were validated
  - Existence of the claims in the transparency log was verified offline
  - The signatures were verified against the specified public key

[{"critical":{"identity":{"docker-reference":"<REGISTRY>.azurecr.io/bla"},.....]

Version
GitVersion:    2.2.1
GitCommit:     12cbf9ea177d22bbf5cf028bcb4712b5f174ebc6
GitTreeState:  "clean"
BuildDate:     2023-11-07T12:39:46Z
GoVersion:     go1.21.3
Compiler:      gc
Platform:      darwin/arm64

@haydentherapper Any thoughts of what changed in v2.2.1 ?

@malancas  any guesses if anything changed with the azure code?

The same problem?
Error: no matching signatures: unable to verify RFC3161 timestamp bundle: no TSA root certificate(s) provided to verify timestamp
main.go:69: error during command execution: no matching signatures: unable to verify RFC3161 timestamp bundle: no TSA root certificate(s) provided to verify timestamp

Not sure, but maybe this code broke us https://github.com/sigstore/cosign/compare/v2.2.0...v2.2.1#diff-8a85c8e688d61e16b8af8e09832ed2bef89c1163b0e9601a8363c782c387c006L651

@haydentherapper I'm only seeing minor and patch updates to the underlying Azure dependencies but I'll take a look at what changed and see if anything stands out.

@philwelz Are you still having this issue with the latest version of Cosign?

I am unable to replicate this, if this issue continues, feel free to reopen.


PhotoViewGallery does not switch image sometimes and the onTapUp callback dose not run.

PhotoViewGallery does not scroll sometime and the onTapUp callback dose not run.
What is the current behavior?
When i am scrolling the gallery horizontal to switch the image , the gallery does not response.  I set onTapUp callback to the options, but the tapup callback does not run.
Versions:
photo_view  0.9.0
OS:Android ,have not test ios yet
Flutter:Flutter 1.9.1+hotfix.6
I am using flutter_advanced_networkimage  as the imageprovider , is it related?

The example has the same problem on my device too.

me too! Did you solve it?

After I upgraded the flutter version to 1.12.13+hotfix.5, This problem seems to be solved。

I couldn't find the root cause for this, must be nin the framework. A diferent approach for the gallery ahs to be made.

I also encountered the same problem!

Mee too :(

Anyone solve this issue?

I shall ask any of you to test the code on #266 for the gesture detection.

Same issue here, no solutions yet? :( Or alternatives? Pardon me if I'm mistaken, but I haven't found any similar package.

Issue still persists with the latest dev version of flutter and photo_view (hooked up to git).

When update to the latest master version of flutter, the same problem appear.

I also encountered the same problem!

For further discussions about this, check #304 and #293


x/text: message.MatchLanguage does not return desired language

What version of Go are you using (go version)?
go version go1.10.3 darwin/amd64
Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
GOOS="darwin"
GOARCH="amd64"

What did you do?
Run the example on https://godoc.org/golang.org/x/text/message
Note: Slightly changed because example is not correct. Behavior is the same.
p := message.NewPrinter(message.MatchLanguage("nl"))
p.Printf("Hoogte: %1.f meter\n", 1244.9) // Prints Hoogte: 1.244,9 meter

What did you expect to see?
It should print the desired output, comma as decimal deliminator.
Output is the following which is English formatting.
Hoogte: 1.244,9 meter

What did you see instead?
Hoogte: 1,244.9 meter

MatchLanguage fallsback to English as can be seen from here:
base, _ := message.MatchLanguage("nl").Base()
fmt.Println(base.String()) // Prints en

I'll start looking into this

I found a issue with your example, the correct fmt string is: Hoogte: %.1f meter\n.
I fixed the documentation and it did work for me when I run it.
What version of Go are you using (go version)?
go version go1.9 darwin/amd64

What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/tiago/Documents/devel/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/jc/8sd7n5hd49bdl3008z2rmqgh0000gp/T/go-build755876682=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"

@belimawr it's not only that unfortunately. What is the output? Comma should be used as decimal separator but dot is used instead. MatchLanguage is falling back to English. If I use language.Dutch it prints correctly but not with message.MatchLanguage("nl").
 p = message.NewPrinter(language.Dutch)
 p.Printf("Hoogte: %.2f meter\n", 1244.9134) // Prints Hoogte: 1.244,91 meter

OK, after reading the code and its tests it was more clear. We need to setup catalog otherwise it is always the default fallback language English. I think documentation should reflect this behavior. Following code works for English and Dutch with Dutch as the fallback language. It would be exteremly nice to have this in the sample code in documentation.
c := catalog.NewBuilder(catalog.Fallback(language.Dutch))
c.SetString(language.Dutch, "", "")
c.SetString(language.English, "", "")
message.DefaultCatalog = c

@kaskavalci I see your point. The thing is that the default catalog is empty and the fallback is English. I looked more at the code and documentation for catalog, and I'm not sure that the best method to get the language is message.MatchLanguage because it uses message.DefaultCatalog (that is empty by default) under the hood.
If the objective of that piece of documentation is to show how to use message.NewPrinter to get a printer that can print localised numbers, you could just use:
p := message.NewPrinter(language.Make("nl"))
p.Printf("Hoogte: %.1f meter\n", 1244.9) // Prints Hoogte: 1.244,9 meter

I created another issue #26767 before this investigation to improve the documentation, however now I'm not sure if it's a documentation issue, or a design issue.


Update test.lua to include some image examples

For those both new to lua and nanovg, this would be really helpful.
How do you load(from file) and draw an image  ?
I have tried
im = ctx.image.load(file)
to no avail

I am here with the images toying around:
local function loadData(ctx)
  im = ctx:image("nanovg/example/images/image1.png", "flipy")
  return {
    context = ctx,
    im = im,
  }
end

loaded = loadData(ctx)

local function drawImages(ctx, width, height)
  ctx.strokeWidth = 2
  ctx:beginPath()
  ctx.fillStyle = loaded.im
  ctx:fill()
end

But nothing is displayed on screen, do you have any idea ?

maybe you should do some draw operations between beginPath and fill ?

The examples/images.lua now contains Image usage sample


adafruit_feather_nrf52840: tests/subsys/portability/cmsis_rtos_v2/portability.cmsis_rtos_v2 fails when building

Describe the bug
The test in tests/subsys/portability/cmsis_rtos_v2/portability.cmsis_rtos_v2 fails to build for the following two Zephyr targets:

adafruit_feather_nrf52840/nrf52840/sense
adafruit_feather_nrf52840/nrf52840/sense/uf2

The following compilation error is reported:
/home/filip/zephyrproject/zephyr/drivers/sensor/voltage_divider/voltage.c:118:41: warning: implicit
declaration of function 'K_TIMEOUT_ABS_TICKS'; did you mean 'Z_TIMEOUT_MS_TICKS'? [-Wimplicit-function-declaration]
  118 |                 data->earliest_sample = K_TIMEOUT_ABS_TICKS(
      |                                         ^~~~~~~~~~~~~~~~~~~
      |                                         Z_TIMEOUT_MS_TICKS
/home/filip/zephyrproject/zephyr/drivers/sensor/voltage_divider/voltage.c:118:41: error: incompatible types when assigning to type 'k_timeout_t' from type 'int'
/home/filip/zephyrproject/zephyr/drivers/sensor/voltage_divider/voltage.c: In function 'voltage_ini
':
/home/filip/zephyrproject/zephyr/drivers/sensor/voltage_divider/voltage.c:145:33: error: incompatible types when assigning to type 'k_timeout_t' from type 'int'
  145 |         data->earliest_sample = K_TIMEOUT_ABS_TICKS(0);

To Reproduce
Steps to reproduce the behavior:

west build -p -b adafruit_feather_nrf52840/nrf52840/sense tests/subsys/portability/cmsis_rtos_v2
See error

Expected behavior
Build doesn't end with an error.
Impact
Showstopper (failing CI). See #80038.
Environment (please complete the following information):

OS: Linux
Toolchain: Zephyr SDK
Commit SHA or Version used: 185432c96dd74fb30edc334f973a5a42876d22f0

well, when a board enables more than the basic and the test has its own requirement, worlds collide. This test should just be built/run on simulation platforms IMO and not on every other board we have.


fix: pin ansible-playbook-grapher

This commit adds a pin to
ansible-playbook-grapher for
debugging.

Tracking a solution here: https://github.com/haidaraM/ansible-playbook-grapher/issues/119


Missing valid instructions

Widening reductions (vfwredosum.vs, vfwredusum.vs, vwredsum.vs, vwredsumu.vs) should allow LMUL=8
vrgatherei16.vv should only disallow LMUL=8 for e8

The first point should be fixed now.
The current design just masks standalone LMUL and SEW, so I can't add LMUL=8 SEW!=8, vrgatherei16.vv for now. I'll have to look into restructuring the code, or allowing a special cases.

The latest commit 7b3f7b6 fixes this, I'll update the results page soon.
I've now updated the instruction cycle count measurement code to remove the destination vector dependency that processors without vl prediction suffer from. This fixes the weird 4, 4, 5, 8 LMUL scaling on the C908, with proper measurements it's now 1, 2, 4, 8.
Implementing that required a big rewrite and yet another preprocessor, but the code now allows for fine-grained SEW and LMUL masking.

A couple months ago I was working on a very-generated risc-v/rvv instruction benchmarking thing (as in, JS generates 570MB of assembly which then becomes a 129MB binary) and it's largely complete (having things like separate throughput & latency tests, register cycling galore for removing dependencies (also tests intentionally leaving them in), precise argument initialization, testing different constants where applicable; rather inspired from uops.info) but I just kinda stopped working on it and haven't published it (doesn't help that I have no risc-v hardware).
here's a screenshot of qemu (VLEN=256) timings in it :)
Probably should put in the last bits of effort on that, but the leftovers are rather annoying (making the UI less clunky; displaying multiple archs in the same table (questions on vl/vlmax matching); probably 0.7.1 support otherwise the previous point is somewhat pointless; have latency tests between different-width/type operands which is a massive mess largely due to it being technically impossible to do properly)

The table was also inspired by uops.info, but mine is way less sophisticated then that or yours.
I was looking into adding RISC-V support to llvm-exegesis, which does something very similar, but I need to have bare-metal support to test on RTL simulations.

probably 0.7.1 support otherwise the previous point is somewhat pointless

I'm planning to drop 0.7.1 support soon, since I've not got two rvv 1.0 boards, don't have ssh access to a C920 anymore, and there will be some more releases this year.


Change the target directory into which go get clones the repo

What version of Go are you using (go version)?
go version go1.10.4 linux/amd64
Does this issue reproduce with the latest release?
Yes, reproduced with go version go1.11 linux/amd64
What operating system and processor architecture are you using (go env)?
Linux/amd64, specifically Fedora 28
What did you do?
Cloning a private gitlab repository using go get. The url looked something like git.foo.io/main-serivces/subcategory/my-service. I had to add .git explicitly: go get git.foo.io/main-services/subcategory/my-service.git.
Don't think it's relevant, but worth noting: the repo was empty when I cloned it.
What did you expect to see?
I expected/hoped to find my code under $GOPATH/src/git.foo.io/main-services/subcategory/my-service
What did you see instead?
Instead, the path was $GOPATH/src/git.foo.io/main-services/subcategory/my-service.git
There's 2 possible solutions that I'd like to propose.

Add a flag to go get to specify the target path where you want to checkout the package, or a flag to strip the .{git|svn|whatever} from the path. Arguably, this should be the default behaviour, that can be disabled using a flag.
If this should not be the default behaviour, I'm thinking a flag like -s[trip]=.git might be worth adding.

either change the last catchall regexp in cmd/go/internal/get/vcs.go, or add a next-to-last one that handles generic .git repo's (ie a url containing \bgit\.\b, or simply ending in .git), and trim the .git` from the target directory/path

I'm perfectly happy working on either one of these solutions, depending on which would be the preferred approach. If this is a bad idea, feel free to tell me so, and I'll leave it at that, although I'd like to know why this would not be a useful feature.

Closing because this seems to be an issue related to gitlab (incorrect meta - only applies to subgroups).
https://gitlab.com/gitlab-org/gitlab-ce/issues/42264


🚀 Feature: Use typescript-eslint's project service option

Bug Report Checklist

[X] I have tried restarting my IDE and the issue persists.
[X] I have pulled the latest main branch of the repository.
[X] I have searched for related issues and found none that matched my issue.

Overview
I'm hopeful EXPERIMENTAL_useProjectService will be the future standard for typed linting. It's not stable yet (hence the "experimental" in the name) but hopefully will be for typescript-eslint v8.
Filing an issue to track that I'll use it in this repository once it's stable.
Additional Info
No response

Oh, ha, duplicate of #1211.


Installation guide-CEA documentation

Make a list of the steps involved in installation of CEA along with screenshots or the add the text output provided by the command prompt

Installation Guide.docx
Gave a detailed explanation of steps involved in CEAforArcGIS installation. Do let me know if you have any comments

Great work! Can you update the online documentation to reflect this? This will require writing in markdown. Ping me if you need any pointers.


[bug] gitea incompatible with git v2.28.0

gitea: v1.12.3 and newer
source: https://gitlab.alpinelinux.org/6543/aports/-/jobs/173882

failed test: TestCantMergeUnrelated (integrations/pull_merge_test.go:253)
looks like error message of git has changed in a way gitea can not understand jet

more specific: you can not create an pull with branches who have unrelated histories anymore

modules/git/repo_compare.go -> (repo *Repository) GetCompareInfo() cant handle it

traced down to repo.GetDiffNumChangedFiles(remoteBranch, headBranch)

git diff -z --name-only base...unrelated

v2.27.0: EADME.md^@somewher-over-the-rainbow^@
v2.28.0: fatal: refusing to merge unrelated histories


Implement IBC UpdateClient

Tracking issue for implementation of IBC UpdateClient messages, which implement light client updates for IBC clients.

In progress as of #578


If/else conditional mapping

What kind of change does this PR introduce? (check one with "x")
[] Bugfix
[*] Feature
[] Code style update (formatting, local variables)
[] Refactoring (no functional changes, no api changes)
[] Other... Please describe:

Fixes: #204
What is the current behavior?
Today we have ternary expression but ternary expression cannot work with object or array. and ternary expression also difficult to maintain if the condition is complex.
So we come up with if/else condition mapping. the proposal we list in #204
What is the new behavior?
We able to do if/else conditional mapping that user can map value base on different condition
Example:

Single field/Primitive type

{
  "myInput": {
    "@if($.pathParams.myParam == \"abc\")": "This is param for abc",
    "@elseif($.pathParams.myParam == \"foo\")": "This is param for foo",
    "@elseif($.pathParams.myParam == \"xxxx\")": "This is param for xxx",
    "@else": "This is param for else"
  }
}

Work with object mapper

{
  "bookDetail": {
    "mapping": {
      "id": "=$.book.id",
      "name": "=$.book.id",
      "address": "=$.book.address",
      "category": {
        "@if($.book.price >= 100)": "High",
        "@elseif($.book.price >= 50 && $.book.price < 100)": "Medium",
        "@else": "Low"
      }
    }
  }
}

Work with array mapping

{
  "store": {
    "mapping": {
      "@if($.store.name == \"Walmart\")": {
        "@foreach($.store.books, \"book\")": {
          "id": "=$loop.city",
          "name": "=$loop.state",
          "address": "=$.store.address",
          "category": {
            "@if($.book.price >= 100)": "High",
            "@elseif($.book.price >= 50 && $.book.price < 100)": "Medium",
            "@else": "Low"
          }
        }
      },
      "@elseif($.store.name == \"Target\")": {
        "@foreach($.store.books, \"book\")": {
          "id": "=$loop.city",
          "name": "=$loop.state",
          "address": "=$.store.address",
          "category": {
            "@if($.book.price >= 100)": "Good",
            "@elseif($.book.price >= 50 && $.book.price < 100)": "Average",
            "@else": "Poor"
          }
        }
      },
      "@else": {
        "@foreach($.store.books, \"book\")": {
          "id": "=$loop.city",
          "name": "=$loop.state",
          "address": "=$.store.address"
        }
      }
    }
  }
}

Are you proposing adding this outside of the of object mapping?  Basically an expression of sorts?
I'm not sure about this:
{
  "myInput": {
    "@if($.pathParams.myParam == \"abc\")": "This is param for abc",
    "@elseif($.pathParams.myParam == \"foo\")": "This is param for foo",
    "@elseif($.pathParams.myParam == \"xxxx\")": "This is param for xxx",
    "@else($.pathParams.myParam == \"else\")": "This is param for else"
  }
}

This is not an expression and goes outside of the norm of any expressions I know.  We have more flexibility in object/array mapping because it is a little closer to scripting and basically a collection of expressions.  We got away from this inferred mapping type syntax.
Maybe consider doing an custom function... maybe something like:
"= utils.case($.pathParams.myParam, "abc", "abc result", "foo", "foo result", "#default", "the else")"

Are you proposing adding this outside of the of object mapping? Basically an expression of sorts?
I'm not sure about this:
{
  "myInput": {
    "@if($.pathParams.myParam == \"abc\")": "This is param for abc",
    "@elseif($.pathParams.myParam == \"foo\")": "This is param for foo",
    "@elseif($.pathParams.myParam == \"xxxx\")": "This is param for xxx",
    "@else($.pathParams.myParam == \"else\")": "This is param for else"
  }
}

This is not an expression and goes outside of the norm of any expressions I know. We have more flexibility in object/array mapping because it is a little closer to scripting and basically a collection of expressions. We got away from this inferred mapping type syntax.
Maybe consider doing an custom function... maybe something like:
= utils.case($.pathParams.myParam, "abc", "abc result", "foo", "foo result", "#default", "the else")

I would avoid calling it expression, I like to call it mapper.  As of today, we have strict mapper, object mapper, and if/else mapper.

Strict mapper it's a single expression
Object mapper is a collection of expressions work on the complex data type
if/else is collection of object mapper and strict mapper base on condition.

If/else is another mapper so it should work with any field,  it also easier to use for UI or developer,  comparing with a static function or ternary expression we have today
I don't like function because if/else case makes function hard to use and read, there might be too many arguments and complex/long conditions.  The example you shared is a switch case but we are talking about if/else.  A little different.
I like if/else because it is applicable for all fields no matter it is a top field with primitive type or leaf field on the complex type, as long as the user knows if/else formula they should be good to go.  There is no reason that if/else works with a leaf node but not work with a single field(top field).

What is the use case for this?  Is this typically used for only one input.. or are they going to be used to "flavor" an activity.
for example:
{
  "myInput1": {
    "@if($.pathParams.myParam == \"dev\")": "This is param for abc",
    "@elseif($.pathParams.myParam == \"test\")": "This is param for foo",
    "@elseif($.pathParams.myParam == \"prod\")": "This is param for xxx",
    "@else": "This is param for else"
  },
  "myInput2": {
    "@if($.pathParams.myParam == \"dev\")": "This is param for abc",
    "@elseif($.pathParams.myParam == \"test\")": "This is param for foo",
    "@elseif($.pathParams.myParam == \"prod\")": "This is param for xxx",
    "@else": "This is param for else"
  }
}

Also shouldn't
    "@else($.pathParams.myParam == \"else\")": "This is param for else"

just be:
    "@else": "This is param for else"

@fm-tibco Right. Only @if and @elseif' have the condition, @else` doesn't have the condition. (edited description) so it should just
 "@else": "This is param for else"

if/else designs for single field only, it cannot work across fields, but 2 dependent fields can have their own if/else, so the example you have myInput1 and myInput2 is a valid case.
Why:

User can do if/else on the root attribute field as well, today only way is the ternary expression which is not good., mentioned above
Keep consistent with all fields no matter it is child or root or primitive or object field, we support if/else for all fields type. We can say that if/else just map framework it doesn't care about field type.

Use case:
Customers have a use case where they want to send data to different CRM target systems using rest invoke where they want to change URL base on data.
I think it is really useful in real app design.

@mellistibco @fm-tibco Any progress?

How about something like:
"myInput": {
	"@switch($.pathParams.myParam)" :
	{
		"abc":"This is param for abc",
		"foo":"This is param for foo",
		"@default":"This is param for else"
	}
}

@fm-tibco  The question more like what is the difference between if/else and switch.  We can add switch supports as well If you want. but today we focusing on if/else because we want base on conditions with operator ||``&&``<, >=, <, <=, == etc. I think that cannot be done with switch.

You had mentioned that readability is a concern.. and the current if/else is a little hard to read... hence why I suggested something like the switch.

Just trying to simplify the structure so its not completely like scripting, maybe even something like:

"myInput": {
	"@if($.pathParams.myParam)" :
	{
		">abc":"This is param for abc",
		"<foo":"This is param for foo",
		"@else":"This is param for else"
	}
}

@fm-tibco em... if, elseif else mostly on the same node level.  now it moves as child node of @if.
Question:  How we handle nested @if  if we go with this structure?  such as the example(Work with array mapping) in the description?

Btw, my suggestions are just some possible alternatives to the syntax. I think the main thing I'm pointing out is that we use "mapping" to denote that we are doing something special, hence why I chose to follow something similar to you a mapping is defined
This could be possiblity:
{
  "store": {
    "@if": {
      "$.store.name == \"Walmart\"": {
        "@foreach($.store.books, \"book\")": {
          "id": "=$loop.city",
          "name": "=$loop.state",
          "address": "=$.store.address",
          "category": {
            "@if($.book.price >= 100)": "High",
            "@elseif($.book.price >= 50 && $.book.price < 100)": "Medium",
            "@else": "Low"
          }
        }
      },
      "$.store.name == \"Target\"": {
        "@foreach($.store.books, \"book\")": {
          "id": "=$loop.city",
          "name": "=$loop.state",
          "address": "=$.store.address",
          "category": {
            "@if($.book.price >= 100)": "Good",
            "@elseif($.book.price >= 50 && $.book.price < 100)": "Average",
            "@else": "Poor"
          }
        }
      },
      "@else": {
        "@foreach($.store.books, \"book\")": {
          "id": "=$loop.city",
          "name": "=$loop.state",
          "address": "=$.store.address"
        }
      }
    }
  }
}

{
  "bookDetail": {
    "mapping": {
      "id": "=$.book.id",
      "name": "=$.book.id",
      "address": "=$.book.address",
      "category": {
        "@if":
        {
          "$.book.price >= 100": "High",
          "$.book.price >= 50 && $.book.price < 100)": "Medium",
          "@else": "Low"
        }
      }
    }
  }
}

@fm-tibco ok, I am fine with this structure.   @mellistibco @vijaynalawade  any thoutghts?

We had a call to discuss this.  and we come up with below possible solutions
We need to maintain the order of elseif so we came up with the below proposals.

Changed elseif to the array to have the ordered.

{
  "myInput": {
    "@if($.pathParams.myParam == \"abc\")": "This is param for abc",
    "@elseif": [
      {
        "$.pathParams.myParam<foo": "This is param for foo"
      }
    ],
    "@else": "This is param for else"
  }
}

Having @fm-tibco's proposal to change to the array to maintain order. first one would be if condition then elseif

"myInput": {
  "@if" :[
    {
      "$.pathParams.myParam<foo":"This is param for foo"
    }，
    {
      "$.pathParams.myParam<foo":"This is param for foo"
    }，
    {
      "@else":"This is param for foo"
    }
  ]
}

We can add a switch case as well

"myInput": {
  "@switch($.pathParams.myParam)" :
  {
    "abc":"This is param for abc",
    "foo":"This is param for foo",
    "@default":"This is param for else"
  }
}

We also found another alternative way which something like condition table which can handle if/else and switch

"myInput": {
  "@Conditions" :[
    {
      "$.pathParams.myParam<foo":"This is param for foo"
    }，
    {
      "$.pathParams.myParam>foo":"This is param for foo"
    }，
    {
      "$.pathParams.myParam == 200":"200"
    }，
    {
      "@otherwise": "otherwise"
    }
  ]
}

@mellistibco @fm-tibco @vijaynalawade:  Let's thinking more and get final conclusion as soon as possible

How about "@condition/@conditional" which has a verbose generalized syntax, but also support an optional shorthand when using the same variable?
general:
  "myInput": {
  "@conditional" :[
    {
      "$.pathParams.myParam1<foo":"This is param for foo"
    }，
    {
      "$.pathParams.myParam2>foo":"This is param for foo"
    }，
    {
      "$.pathParams.myParam == 200":"200"
    }，
    {
      "@otherwise": "otherwise"
    }
  ]

shorthand:
"myInput": {
  "@conditional($.pathParams.myParam)" :[
    {
      "<foo":"This is param for foo"
    }，
    {
      ">foo":"This is param for foo"
    }，
    {
      "==200":"200"
    }，
    {
      "@otherwise": "otherwise"
    }
  ]

How about "@condition/@conditional" which has a verbose generalized syntax, but also support an optional shorthand when using the same variable?
general:
  "myInput": {
  "@conditional" :[
    {
      "$.pathParams.myParam1<foo":"This is param for foo"
    }，
    {
      "$.pathParams.myParam2>foo":"This is param for foo"
    }，
    {
      "$.pathParams.myParam == 200":"200"
    }，
    {
      "@otherwise": "otherwise"
    }
  ]

shorthand:
"myInput": {
  "@conditional($.pathParams.myParam)" :[
    {
      "<foo":"This is param for foo"
    }，
    {
      ">foo":"This is param for foo"
    }，
    {
      "==200":"200"
    }，
    {
      "@otherwise": "otherwise"
    }
  ]

This looks good to me.  @mellistibco please share your thoughts. thx

looks good to me, seems like the best option...


feat: allow ToS and Privacy Policy to be edited

Migrates ToS and Privacy Policy to be editable in a Filament admin form.
Restores prefixes to route groups that were removed in #1926

Prerequisites
If this PR changes PHP code or dependencies:

[x] I've run composer format and fixed any code formatting issues.
[x] I've run composer analyze and addressed any static analysis issues.
[x] I've run php artisan test and ensured that all tests pass.
[x] I've run composer localize to update localization source files and committed any changes.

If this PR changes CSS or JavaScript code or dependencies:

[ ] I've run npm run lint and fixed any linting issues.
[ ] I've run npm run build and ensured that CSS and JavaScript assets can be compiled.

It would be helpful to add a "Pages" link to the admin dashboard quick links sidebar. My approach was to make that sidebar match the sidebar in filament:

Sorry, I forgot to note why I didn't do this. Basically I intentionally left it out because it will break/invalidate the ASL/LSQ interpretation videos for the quick links. Perhaps we should put it in anyways, but that's why I left it out.

It would be helpful to add a "Pages" link to the admin dashboard quick links sidebar. My approach was to make that sidebar match the sidebar in filament:

Sorry, I forgot to note why I didn't do this. Basically I intentionally left it out because it will break/invalidate the ASL/LSQ interpretation videos for the quick links. Perhaps we should put it in anyways, but that's why I left it out.

I didn't realize there were ASL videos for the admin-facing pages too. Okay.

The Markdown editor has significant contrast issues in dark mode:

I filed an issue with Filament. https://github.com/filamentphp/filament/issues/9497

It would be helpful to add a "Pages" link to the admin dashboard quick links sidebar. My approach was to make that sidebar match the sidebar in filament:

Sorry, I forgot to note why I didn't do this. Basically I intentionally left it out because it will break/invalidate the ASL/LSQ interpretation videos for the quick links. Perhaps we should put it in anyways, but that's why I left it out.

I didn't realize there were ASL videos for the admin-facing pages too. Okay.

Quite a bit of the content was pulled for ASL/LSQ interpretation and should be up on the dev site now. Even some things I hadn't anticipated like notifications and alerts. I've made the change to this part for now though and will come in my next push. I'm still debating though, and it might get pulled out again, but it is something that will need to be updated at some point.

The Markdown editor has significant contrast issues in dark mode:

I filed an issue with Filament. filamentphp/filament#9497

@greatislander this probably won't be addressed before our F&F release. I've filed a new issue to track it. See: #1965


mne coreg save with scaled mri fails if fiducials haven't been saved

Hi, when trying to save a -trans file from MNE coreg after scaling the MRI the dialog box doesn't open if the fiducials file has not been saved.
Problem:
I tried tracking the problem and I think it arises because the dialog box that asks if one wants to save the fiducials fails to open due to:
coreg_gui.py; line 926:
"rc = confirm(None, msg, title, cancel=True, default=CANCEL,
parent=self.info.ui.control)"
because the function "confirm" takes parent as first argument and is also receiving it as keyword argument:
/pyface/confirmation_dialog.py; line 22:
"def confirm(parent, message, title=None, cancel=False, default=NO):"
Possible solutions:
I've tried fixing it and I'v seen that both of the following changes fix the issue but I don't  know which one is preferable:
"rc = confirm(None, msg, title, cancel=True, default=CANCEL)"
"rc = confirm(self.info.ui.control, msg, title, cancel=True, default=CANCEL)"
I'll be happy to make a pull request if you think this is ok and if you tell me which way is preferable.
Thanks for everything, cheers,
Eze
Error Traceback:
Exception occurred in traits notification handler for object: <mne.gui._coreg_gui.CoregPanel object at 0x7fc2ab01dca8>, trait: save, old value: , new value: 0
Traceback (most recent call last):
File "/home/eze/soft/anaconda3/envs/mne3/lib/python3.6/site-packages/traits/trait_notifiers.py", line 519, in _dispatch_change_event
self.dispatch( handler, *args )
File "/home/eze/soft/anaconda3/envs/mne3/lib/python3.6/site-packages/traits/trait_notifiers.py", line 614, in dispatch
handler( *args )
File "/home/eze/soft/anaconda3/envs/mne3/lib/python3.6/site-packages/traitsui/ui.py", line 1023, in dispatch
self.method(self.info)
File "/home/eze/soft/anaconda3/envs/mne3/lib/python3.6/site-packages/mne/gui/_coreg_gui.py", line 927, in object_save_changed
parent=self.info.ui.control)
TypeError: confirm() got multiple values for argument 'parent'
Sys info:
Platform:      Linux-4.15.0-33-generic-x86_64-with-debian-buster-sid
Python:        3.6.6 |Anaconda, Inc.| (default, Jun 28 2018, 17:14:51)  [GCC 7.2.0]
Executable:    /home/eze/soft/anaconda3/envs/mne3/bin/python
CPU:           x86_64: 8 cores
Memory:        15.6 GB
mne:           0.17.dev0
numpy:         1.15.0 {blas=mkl_rt, lapack=mkl_rt}
scipy:         1.1.0
matplotlib:    2.2.2 {backend=Qt5Agg}
sklearn:       0.19.1
nibabel:       2.3.0
mayavi:        4.6.1 {qt_api=pyqt5}
cupy:          Not found
pandas:        0.23.3
dipy:          Not found

rc = confirm(self.info.ui.control, msg, title, cancel=True, default=CANCEL) sounds like the better choice.