Issue 105: bcrypt->bcryptjs for Windows support

bcrypt is compiled for *nix kernels only. This change uses native JS version of bcrypt to allow support for Windows.
Note that this does come at a cost - bcrypt performance is about 2.7x faster in the C++ *nix implementation vs this native JS implementation, see the documentation. If this is not acceptable, you should probably officially drop support for Windows.

I merged this but should be noted that bcryptjs being a javascript implementation of bcrypt might also be less secure too regarding crypto.
That said: I think we should rather aim to support Windows at this stage, since usage of bcrypt (and crypto in genereal) is still pending a proper review.
Thanks for the PR @tadhgpearson :)


add support for Jetaudio

Hi, Jetaudio is one of the best Android music apps out there. Would it be possible to add support?
Best wishes,
TR

I will try to work on this. :)

@HumbleBeeBumbleBee your pretty active in this! I'd love to get involved with SLS more too but the lack of communication from @tgwizard had put me off.

@inverse yeah, I have the time to burn, plus it'll be good practice.
I wish I was better at Java so I could help maintain this project.
Right now I am building a collection based on Github and Google Play Reviews that looks like this.
nl == not labelled OR needs label

======
GitHub
======

APPS
====
#175		nl	Beatport		https://play.google.com/store/apps/details?id=com.sfx.beatport
#174 #97 #2		DS audio		https://play.google.com/store/apps/details?id=com.synology.DSaudio
#172 #126		VLC				https://play.google.com/store/apps/details?id=org.videolan.vlc
#168		nl	MortPlayer		https://play.google.com/store/apps/details?id=de.stohelit.folderplayer
#160		nl	VK App			https://play.google.com/store/apps/details?id=com.vkontakte.android
#148		nl	AIMP			https://play.google.com/store/apps/details?id=com.aimp.player
#124 #53		Plex			https://play.google.com/store/apps/details?id=com.plexapp.android
#96			nl	DI.FM			https://play.google.com/store/apps/details?id=com.audioaddict.di
				SKY.FM			https://play.google.com/store/apps/details?id=com.audioaddict.sky
#71			nl	GrooveShark		http://mobile.grooveshark.com/android
#68			nl	Tunein			https://play.google.com/store/apps/details?id=tunein.player
				TuneinPro		https://play.google.com/store/apps/details?id=radiotime.player
#66			nl	Sony Music Unlimited
#63				Cloudskipper	https://play.google.com/store/apps/details?id=cloudtv.cloudskipper&hl=en
#59				Jetaudio		https://play.google.com/store/apps/details?id=com.jetappfactory.jetaudio
				JetaudioPlus	https://play.google.com/store/apps/details?id=com.jetappfactory.jetaudioplus
#55				Songza			https://play.google.com/store/apps/details?id=com.ad60.songza
#51				Slacker Radio	https://play.google.com/store/apps/details?id=com.slacker.radio
#23				Andless			http://code.google.com/p/andless/
#21				Queek			https://play.google.com/store/apps/details?id=org.sais.queekhd
#20				Rhapsody		https://play.google.com/store/apps/details?id=com.rhapsody

BUGS
====
#170		nl
#176 #174	nl	PlayerPro		https://play.google.com/store/apps/details?id=com.tbig.playerpro
				PlayerProTrial	https://play.google.com/store/apps/details?id=com.tbig.playerprotrial
#169		nl
#73 #16
#69			nl
#62			nl
#58 #40 #27		WinAmpReceiver
#56
#45

FEATURES
========
#18

Maybe Closable
==============
#4
#12
#30
#34
#36

Closable
========
#3
#6
#19
#22
#43
#47
#54
#64
#65
#70
#107 #105 #39
#111
#155 #149 #100 #99 #44
#171
#178

==================
GooglePlay Reviews
==================
Google Music
MusixMatch					https://play.google.com/store/apps/details?id=com.musixmatch.android.lyrify
PowerAmpTrial				https://play.google.com/store/apps/details?id=com.maxmpz.audioplayer
PowerAmpFull				https://play.google.com/store/apps/details?id=com.maxmpz.audioplayer.unlock
MXPlayer					https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad
MXPlayerPro					https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.pro
8tracks						https://play.google.com/store/apps/details?id=com.e8tracks
Rocket						https://play.google.com/store/apps/details?id=com.jrtstudio.AnotherMusicPlayer
RocketPremium				https://play.google.com/store/apps/details?id=com.jrtstudio.AnotherMusicPlayer.Unlocker
SomaFm						https://play.google.com/store/apps/details?id=com.somafm
iHeartRadio					https://play.google.com/store/apps/details?id=com.clearchannel.iheartradio.tv
TTPod						https://play.google.com/store/apps/details?id=com.sds.android.ttpod
Shuttle						https://play.google.com/store/apps/details?id=another.music.player
Shuttle+					https://play.google.com/store/apps/details?id=com.simplecity.amp_pro

|Unsure about
YouTube						https://play.google.com/store/apps/details?id=com.google.android.youtube
Subsonic					https://play.google.com/store/apps/details?id=net.sourceforge.subsonic.androidapp

|not found
LEWA player

Features
========
Love Tracks

Devices & Stock
===============
Xperia E1
Doesn't work on my note 4
Don't support Sony tablet S player
No HTC M8 player support.

Crowd Funding
=============
Does not detect Android Music Player Since Lollipop, stopped working. Would love an update and would gladly pay for one.

Comments
========
Keith Anderson - Does not support Rhapsody OK app for what it is but why is Rhapsody still in your list
Tino Mehlmann - Great little tool I would really hate to see it not being maintained at all anymore.

Summary
=======
Many complaints about Google Play not being supported anymore.

I think I might add a branch with it as markdown so @tgwizard can review it.

Instructions
Preferences>Misc>Use Last.fm scobbling>Simple Last.fm Scrobbler

jetAudio support Last FM Scrobbling, please turn on that option on preferences.

Thanks.

-From the developer.


Create CONTRIBUTING.md

Fixes #51

I have added the email to the club for contacting because I couldn't find any other group like Gitter etc.
@LalitNM Is this fine now?

I have added the email to the club for contacting because I couldn't find any other group like Gitter etc.
@LalitNM Is this fine now?

Leave it for now, just fix broken links of code of conduct and meaningful commit message. You need to add these files. for code of conduct you can you can check this.

@LalitNM Done!

@guptabhaskar Could you also include to use kpbot command to claim issues?

@guptabhaskar Could you also include to use kpbot command to claim issues?

I already added it in CONTRIBUTING.md line 30. 🤔

Cool. Sorry didn't notice, looks good.

Everything looks good @guptabhaskar. But you have to clean git history, so that we can merge this in master. You need to use rebase your branch to upstream/master and clean then make only three commits for

adding contributing.md

adding code_of_condect.md

adding commit_message.md

Everything looks good @guptabhaskar. But you have to clean git history, so that we can merge this in master. You need to use rebase your branch to upstream/master and the final PR should only have three commits for

adding contributing.md
adding code_of_condect.md
adding commit_message.md

I haven't done this before. Will this require me to create another fresh PR with 3 commits or is there some other way?

The best possible way which hits my mind is

Save the files which you want to add in this PR locally some where else(not in your local repository).

Reset hard 8-10 commits using git reset --hard HEAD~10(to reset 10 commits).

Add upstream to your local repository using git remote add upstream <link to upstream>.

Fetch upstream using git fetch upstream.

Rebase to upstream using git rebase upstream/master.

Add your files one by one and commit them one by one..

force-push them to branch with which you have made this PR(your master) in this case.

And Do read about these things, you can fix the problem in this PR only, no need to make another PR.

Is it fine now? @LalitNM


How / why is this different ?

Hi, thanks for this node... but can you make it clear in the readme how and why this is different from the standard email node ?  Why would you use this one ? Why not enhance the existing one ? Thanks

Hi,
I need an email node that outputs the original payload instead of mail body. Output the original payload enable me to do more things if sent successful.
To enhance the existing one i need to break compatibility.
Thanks.


Use negotiation cache to check if an endpoint does not support …

… HTTP/2 in event loop scheduler
Motivation:
A user can set the default maximum number of event loops to handle HTTP/2 and HTTP/1 connections per endpoint. If he/she creates a client specifying h1x and h2x, we obviously know which HTTP version is used. However, if http or https is used, we do not know the specific version so it's hard to figure out how many event loops we need to use.
If we use the information from SessionProtocolNegotiationCache from the previous connection, we know that the endpoint supports the specific HTTP version, so we can use that.
Modifications:

Use SessionProtocolNegotiationCache to find the endpoint supports HTTP/2

Use the information to assign the maximum number of event loops for the endpoint

Result:

DefaultEventLoopScheduler respects maxNumEventLoopsPerHttp(1|2)Endpoint set from ClientFactoryBuilder.

Thanks for reviewing! 😉


Validating builders are not generated for inner messages

I have recently noticed that VBuilders are not generated for any inner messages, e.g.:
message Foo {

    Bar bar = 1 [(required) = true];

    message Bar {
        string value = 1 [(required) = true];
    }
}

Validating builder is only generated for the Foo message, but not for the Bar and all the validation options just could not be used.

@alexander-yevsyukov FYI. This may not get resolved right away. But I am assigning that to you to avoid concurrent ValidatingBuilder-related modifications.


OTel agent/collector failing with duplicate volume/volumeMount

Using the operator to deploy the OTel variants of the Jaeger agent/collector requires adjusting the health_check port, which is done by supplying config. Minimal example from a minikube deployment (reproduced after initially hitting the issue in a full kubernetes cluster):
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: simplest
spec:
  strategy: production
  agent:
    image: jaegertracing/jaeger-opentelemetry-agent:latest
    strategy: DaemonSet
    config:
      extensions:
        health_check:
          port: 14271
  collector:
    image: jaegertracing/jaeger-opentelemetry-collector:latest
    config:
      extensions:
        health_check:
          port: 14269
  storage:
    type: elasticsearch
    options:
      es:
        server-urls: http://jaeger-es-http:9200

With this configuration in place, the operator produces a duplicate volume and volumeMount for the otel config, and thus fails reconciliation repeatedly:
time="2020-10-20T01:46:51Z" level=error msg="failed to apply the changes" error="Deployment.apps \"simplest-query\" is invalid: spec.template.spec.containers[1].volumeMounts[1].mountPath: Invalid value: \"/etc/jaeger/otel/\": must be unique" execution="2020-10-20 01:46:51.030423915 +0000 UTC" instance=simplest namespace=observability
time="2020-10-20T01:46:52Z" level=error msg="failed to apply the changes" error="Deployment.apps \"simplest-query\" is invalid: spec.template.spec.containers[1].volumeMounts[1].mountPath: Invalid value: \"/etc/jaeger/otel/\": must be unique" execution="2020-10-20 01:46:52.101401604 +0000 UTC" instance=simplest namespace=observability
time="2020-10-20T01:46:53Z" level=error msg="failed to apply the changes" error="Deployment.apps \"simplest-query\" is invalid: spec.template.spec.containers[1].volumeMounts[1].mountPath: Invalid value: \"/etc/jaeger/otel/\": must be unique" execution="2020-10-20 01:46:53.187396068 +0000 UTC" instance=simplest namespace=observability
time="2020-10-20T01:46:54Z" level=error msg="failed to apply the changes" error="Deployment.apps \"simplest-query\" is invalid: spec.template.spec.containers[1].volumeMounts[1].mountPath: Invalid value: \"/etc/jaeger/otel/\": must be unique" execution="2020-10-20 01:46:54.272854654 +0000 UTC" instance=simplest namespace=observability
time="2020-10-20T01:46:55Z" level=error msg="failed to apply the changes" error="Deployment.apps \"simplest-query\" is invalid: spec.template.spec.containers[1].volumeMounts[1].mountPath: Invalid value: \"/etc/jaeger/otel/\": must be unique" execution="2020-10-20 01:46:55.359538151 +0000 UTC" instance=simplest namespace=observability

This appears to be as a result of a few factors:

The operator state has the agent config saved back into it from previous runs
The operator state is merged together including the config volume/volumeMount to prepare the agent
otelconfig.ShouldCreate returns true when 'agent options' are empty, but 'agent config' is not empty, triggering otelconfig.Update, which adds the duplicate volume/volumeMount (first time through I assume this was fine, because the operator state didn't also have it?)
Any de-duplication of volumes/volumeMounts occurs before the OTel config is handled (during merge/CA handling)

Operator state:
kubectl -n observability get jaegers.jaegertracing.io -oyaml
...
  spec:
    agent:
      image: jaegertracing/jaeger-opentelemetry-agent:latest
      options: {}
      resources: {}
      strategy: DaemonSet
      volumeMounts:
      - mountPath: /etc/jaeger/otel/
        name: simplest-agent-otel-config
        readOnly: true
      volumes:
      - configMap:
          defaultMode: 420
          items:
          - key: config
            path: config.yaml
          name: simplest-agent-otel-config
        name: simplest-agent-otel-config
...

From taking another look, I think the port override on the agent config is actually an error, as this is already the default port. That should mean for this case that particular problem can be resolved by removing the override. If the collector has the same problem, it won’t be resolved the same way, as the override is needed.
If the config needs to be specified this way for any other reason, then it would likely still run into the same issue, as it’s based on the presence of the config, not the health check port specifically.

I was able to reproduce the issue with your example CR, thank you!
I opened a PR that should fix this. I also published an image based on that PR: quay.io/jpkroehling/jaeger-operator:pr1268. Are you able to confirm that this fixes the issue?

Following up this conversation in that PR, thanks!


GithubReleaseMonitor: add tagprefix and tagcontains to be used in git…

GithubReleaseMonitor: add tagprefix and tagcontains to be used in github tags filtering
Melange Pull Request Template

Functional Changes

[ ] This change can build all of Wolfi without errors (describe results in notes)

Notes:
SCA Changes

[ ] Examining several representative APKs show no regression / the desired effect (details in notes)

Notes:
Linter

[ ] The new check is clean across Wolfi
[ ] The new check is opt-in or a warning

Notes:

May want to add a comment to remove TagFilter (or at that it's deprecated).

done


Add a weakCompareExchange variant that only takes a single ordering

Resolves https://github.com/apple/swift-atomics/issues/75
Checklist

[X] I've read the Contribution Guidelines
[X] My contributions are licensed under the Swift license.
[X] I've followed the coding style of the rest of the project.
[X] I've added tests covering all new code paths my change adds to the project (if appropriate).
[X] I've verified that my change does not break any existing tests.
[ ] I've updated the documentation if necessary.

@swift-ci test


Luigi Subsample Keys

Add a split key and a subsample key and sort by split key and then by subsample key to get stable subsampling for the three datasets. #107

This looks good. We had talked about trying to use sklearn to do stratified subsampling -- but I think that won't be necessary when we are using the full test set. Can probably be included in a separate PR if we decide to go that route.

Agree on @jorshi 's feedback, specifically we have issues if all labels are not in every split, but I think that could be a subsequent PR


Security policy and process for the project

@vaninrao10 and I have been collaborating on creating the Security Policy for the project. This text is the draft that we ended up with and we are submitting it for review to the project governance maintainers.

LGTM but IANAM

From chatting with Toddy, I pointed out it's a good idea with the interest of clarity to lay out the names of maintainers who compose the security team in a table. It's common for projects to do that so reporters have a sense of who the private reports are going to. The way the text currently reads says it's a subset although the way that GitHub disclosure reports are set up, it notifies everyone with a commit bit. In addition and or as an alternative, you could also define the subteam in the maintainers.md file.


Match adddebt/deletedebt/cleardebts/splitdebt/find/finddebt to UG

Now [t/]... refers to tag/1 tag/2 tag/3, while [t/<tag...>] would refer to tag/1 2 3

Codecov Report
Base: 72.66% // Head: 72.66% // No change to project coverage :thumbsup:

Coverage data is based on head (d992dd5) compared to base (fbe7bce).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff            @@
##             master     #190   +/-   ##
=========================================
  Coverage     72.66%   72.66%
  Complexity      688      688
=========================================
  Files           105      105
  Lines          2272     2272
  Branches        299      299
=========================================
  Hits           1651     1651
  Misses          509      509
  Partials        112      112

Impacted Files
Coverage Δ

...n/java/paymelah/logic/commands/AddDebtCommand.java
97.29% <ø> (ø)

...ava/paymelah/logic/commands/ClearDebtsCommand.java
100.00% <ø> (ø)

...ava/paymelah/logic/commands/DeleteDebtCommand.java
96.36% <ø> (ø)

...main/java/paymelah/logic/commands/FindCommand.java
100.00% <ø> (ø)

.../java/paymelah/logic/commands/FindDebtCommand.java
100.00% <ø> (ø)

...java/paymelah/logic/commands/SplitDebtCommand.java
100.00% <ø> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Docker image can't be built

Docker version

Client: Docker Engine - Community
 Version:           20.10.7
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        f0df350
 Built:             Wed Jun  2 11:56:40 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.7
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       b0f5bc3
  Built:            Wed Jun  2 11:54:48 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.6
  GitCommit:        d71fcd7d8303cbf684402823e425e9dd2e99285d
 runc:
  Version:          1.0.0-rc95
  GitCommit:        b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

According to Running with Docker section in README.md, there is no need to provide any additional build arguments to build the Docker image, however I can reproduce the build failure on different machines:
 ---> Running in 7645acdb0293
Removing intermediate container 7645acdb0293
 ---> 5e6d3a0443f7
Step 52/67 : USER dependabot
 ---> Running in 36d75e79772f
Removing intermediate container 36d75e79772f
 ---> eb2c678d2165
Step 53/67 : RUN mkdir -p /opt/bundler/v1   && mkdir -p /opt/bundler/v2
 ---> Running in e8200de2084e
mkdir: cannot create directory ‘/opt/bundler/v1’: Permission denied
The command '/bin/sh -c mkdir -p /opt/bundler/v1   && mkdir -p /opt/bundler/v2' returned a non-zero code: 1

After insert one additional Dockerfile instruction: RUN ls -al /opt/ to debug the issue, I found that the permission seem to be interesting:
Step 53/68 : RUN ls -al /opt/
 ---> Running in 869a74d784a9
total 48
drwxr-xr-x  13 dependabot dependabot 4096 Jun 14 13:44 .
drwxr-xr-x 100 root       root       4096 Jun 14 13:56 ..
drwxr-xr-x   3 root       root       4096 Jun 14 13:44 bundler
drwxr-xr-x   3 root       root       4096 Jun 14 13:44 composer
drwxr-xr-x   3 root       root       4096 Jun 14 13:44 dep
drwxr-xr-x  11 root       root       4096 Jun 14 13:42 go
drwxr-xr-x   3 root       root       4096 Jun 14 13:44 go_modules
drwxr-xr-x   3 root       root       4096 Jun 14 13:44 hex
drwxr-xr-x   3 root       root       4096 Jun 14 13:44 npm_and_yarn
drwxr-xr-x   3 root       root       4096 Jun 14 13:44 python
drwxr-xr-x   7 dependabot dependabot 4096 Jun 14 13:43 rust
drwxr-xr-x   3 root       root       4096 Jun 14 13:44 terraform

So looks like the user dependabot is the owner of /opt/ but not the content under /opt/, even though there is --chown=dependabot:dependabot with the upper COPY instruction, it seems to apple only on the deeper destination, not every level of the path.
The quick fix is to add an additional Dockerfile instructions: RUN chown -R dependabot:dependabot /opt/, and then the image could be built with success on my side, not sure if this is also a problem for the others, or it's just me.
Would like to send a pull request to it if it's confirmed an issue, thanks.

I can see some updates here: https://hub.docker.com/r/dependabot/dependabot-core/tags
So I assume it's not an everywhere problem ...
Took a look at these two:

https://github.com/dependabot/dependabot-core/blob/main/.github/workflows/ci.yml
https://github.com/dependabot/dependabot-core/blob/main/.github/workflows/docker.yml

The difference might be the BUILDKIT.

After setting DOCKER_BUILDKIT=1, I can directly build the image with success, even more, the Docker image size is different:
REPOSITORY                    TAG                 IMAGE ID       CREATED             SIZE
with-build-kit                latest              4b6ba3b9e9ff   11 minutes ago      4.19GB
without-build-kit             latest              268b0e15fb5c   50 minutes ago      6.44GB

Still think may need to modify the Dockerfile, as buildkit seems to be more like an enhancement, not a requirement 🤔

@PeterDaveHello oh interesting! Yeah not sure what happens if you build without buildkit as the cached version of core is built using it so might get weird results because of the mismatch 🤔
We'd like to avoid doing a recursive chown as this increase the docker image a lot as all files get added to a new layer.

@feelepxyz maybe just create the directories earlier with the correct permission? Maybe still need to figure out why the buildkit can avoid the permission issue, and before that, make buildkit a requirement to build the image, maybe have the permission fix in the meanwhile? I can send a pull request to revise the doc.

I'm going to close this as Buildkit is very much the "new default" of Docker... so for most folks it should work fine w/o needing to explicitly enable it as long as they're using a relatively modern version of docker.


Add Full Website

In this PR, I made the following changes ♻

Created Full Math Magician Website. 🚀

Added Home.js and Quote.js components to the application.
Installed React-Router-Dom.
Added navigation to page with use of Routers.
Implemented Navigation <Link> elements to respond to page routes.
Updated Home.js with page Home page elements. ⬇
Added Style to Home page through the use of React CSS modules.
Update Quote.js page with Quote element.
Added style to Quote page.
Adjusted Calcculator page to suit full page design.
Fixed Linter errors. 🧰

Thank You for taking a deep dive into my project, @andersonlebon .


Add a wiki: Rhythm Heaven Wiki

Link to origin wiki: https://rhythmheaven.fandom.com/wiki/Home
Link to destination (independent) wiki: https://rhwiki.net/wiki/Home

Hi @GunBlazer - Rhythm Heaven Wiki is already in Indie Wiki Buddy as of version 2.4.0. If you're on 2.4.0+ and you're not seeing the Rhythm Heaven Wiki redirect, please let me know.


Implement add_image_rounded()

Me want add_image_rounded(), so me implement add_image_rounded() xD
But in all seriousness yeah, I saw that nearly everything had some way to add rounding to it but not images, and it's right there in ImGui so I figured it wouldn't be difficult to implement and in fact it wasn't.

Thanks!
Note that we use a tick mark system ✗/✓ in cimgui.pxd which allow a script to estimate how many functions are mapped :)


providers/dhcp - Wrap errors

Description:
Issues affected:

Relates #308

This change is

Reviewed 3 of 3 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


FromJson and ToJson don't seem to work correctly

Hi, first and foremost love the work you're doing for the library!
It seems that FromJson / ToJson don't work so well, as the query from the loaded world never gets executed. The query from the world being saved is executed as it should. Feels like some issues with serialization, but not sure if it's the bindings.
Here's a quick copy-pastable console app with Flecs.NET.Debug
// Create world
using var world = World.Create();

// Create entities in world
for (var index = 0; index < 100; index++)
{
    var country = world.Entity();
    var province = world.Entity();
    country.Add<Country>();
    province.Add<Province>();
    country.Set(new Country()
    {
        Name = ("Hello world from saved and loaded world" + index).ToCharArray()
    });
    province.Set(new Province()
    {
        Name = index
    });
    province.ChildOf(country);
}

// Query entities on saved & loaded world
var query2 = world.QueryBuilder()
    .With<Province>()
    .Build();

query2.Each((Iter it,
             int i,
             ref Province c) =>
{
    var parent = it.Entity(i).Parent();
    Console.WriteLine(parent.Get<Country>().Name); // triggered
});

// Serialization

using var newWorld = World.Create();
var a = newWorld.FromJson(world.ToJson()); // a = true

// Query entities on saved & loaded world
var query = newWorld.QueryBuilder()
    .With<Province>()
    .Build();

query.Each((Iter it,
            int i,
            ref Province c) =>
{
    var parent = it.Entity(i).Parent();
    Console.WriteLine(parent.Get<Country>().Name); // never triggered
});

Note: just switched over to 4.0.1-dev-2024-04-30-06-41-46 on gitlab (was using 3.2.11 on nuget) and that seems to have the issue resolved. Not sure what the resolution of this can be

Hmm. Seems that it does correctly serialize components but not relationships. See below

Json serialization and deserialization is not possible with worlds that have managed types yet. I'm currently waiting on a few features to be implemented in flecs to be able to support them properly.


Bundle analysis

Provide a way to analyze the output bundle.

We can use https://github.com/btd/rollup-plugin-visualizer and it's CLI to generate a single stats file.


Dragging items from a CtrItemSlot to a CtrlInventoryGrid doesn't work

Discussed here.
Title says it all.

Should be fixed in v2.3.8


Support for ssl CA File?

I'm having issues connecting to mongodb from transporter:
you@vps:~/# transporter run --config config.yaml application-es.js clear js sessions config -> {  } Mongo Config {URI:mongodb://user:password@host:port/mongodb Namespace:database.collection Ssl:0xc8211ac6a2 Timeout: Debug:true Tail:false Wc:0 FSync:false Bulk:false} setting start timestamp:<PHONE_NUMBER>072705024
When I log from my laptop I use the sslCAFile option, does transporter support that option? how do I set it?

@razlupercio yes, you can provide the CA file in the config.yaml by something like the following:
mongoadaptor:
    type: mongo
    uri: mongodb://username:password@hostname:port/database
    ssl:
      cacerts:
      - /path/to/ca_cert.pem


PRs updated via tibdex/auto-update don't trigger certain required checks

We have a CI workflow that is triggered by:
on:
  pull_request_target:
    types: [ opened, synchronize, reopened, ready_for_review ]
  push:
    branches:
      - production

We also have a CircleCI workflow configured via the "CircleCI Checks" GitHub app.
If I go into the GitHub web interface and click the "Update Branch" button, all my workflows are triggered. If, instead, I enable Auto-Merge and let tibdex/auto-update trigger the update, only my CircleCI workflow runs. The GitHub actions just show "Expected — Waiting for status to be reported" but never trigger.
Is this something you have run into? Any idea how to get GitHub to trigger my CI workflow when this action triggers an update?

Sounds like this limitation which can be solved with https://github.com/marketplace/actions/github-app-token.

Amazing! Thank you so much… I'll give that a shot.


Last minute changes to various stuff

Update galaxy short intro for

new CSS / defaults
new tool run description format

Some last minute changes to qc/mapping
updates to IGV launch help (thanks @shiltemann!)

Merci and good luck!

Danke


Takeoff and Land Services Not Triggered

Hi,
I've recently been working on using teleop_xbox360.launch and hover_vicon.launch to run.
In both cases, the ServiceProxy calls in controller.py (in crazyflie_demo) cause md5sum errors
self._land = rospy.ServiceProxy('land', Empty)
self._takeoff = rospy.ServiceProxy('takeoff', Empty)
These get resolved when I swap out Empty with actual Takeoff and Land services (after I added the corresponding imports). However, even though there is no error, no takeoff/land actually gets triggered.
I also tried passing arguments for groupMask, height, and duration for the Vicon test (setting group mask to 1), but in that case I get some kind of serialization error, so I switched back to calling no-args self._takeoff() and self._land() (but with the Empty argument in the ServiceProxy call still swapped with Takeoff and Land).
I've tried with Ubuntu 20.04 / Noetic and Ubuntu 18.04 / Melodic (latter in a VM) and gotten the same issues. I've tried a couple of different versions of the firmware for both the Crazyradio PA and the Crazyflie itself. I saw in other posts that this could be due to ROS version mismatches, but in each case I was running a single installation of ROS on the OS. There is a conda setup for the Ubuntu 20 setup, but no virtual environment in the Ubuntu 18 one.
I can get the CF2 to fly using just the axes in teleop mode, but the button triggers don't seem to take effect. I also am able to send cmd_vel messages in a separate script, but nothing I've tried for Takeoff and Land seem to be working.
Is this possible due to some underlying change or am I just missing something simple? I changed some stuff in the VICON launch files and scripts to match what I needed, but the teleop-relevant files are unchanged barring what I wrote above about controller.py.

This could be a regression, since I do not frequently test crazyflie_ros by itself but mostly when used in conjunction with the Crazyswarm. Is there a particular reason why you want to use crazyflie_ros over the Crazyswarm?

Thanks for the quick reply!
I'm working on a system that was developed solely with crazyflie_ros as a dependency (as opposed to also using Crazyswarm). I know the two repos are being merged, but I'm somewhat new to both and wasn't sure how much I'd need to change to integrate Crazyswarm, so I was trying to run things in my local copy of the project while making as few changes as possible.
I'll try an older copy of crazyflie_ros to see if that runs, and if not I'll switch to using in conjunction with Crazyswarm. Either way, I'll post what I find out.

 I haven't tried commits further in the future, so I can't say whether this is the place where the regression happened, but it is sometime after this commit that it does.
A friend was able to use commit 4859db0f1d713e2ee4bd4c08166ba5a060ec20a8, which is the Aug 30, 2020 commit. I didn't try this commit out myself as I'd gotten it running using the older one by this time, but perhaps the issue was resolved with one of the changes in yesterday's commit.

Thanks for the update! The Aug 30 commit shouldn't have changed anything with respect to this issue, but perhaps some prior change did. Should we close this issue then or is there anything else you'd need from my side?

Hm, the issue has cropped again occasionally. This might just be unfamiliarity with how things are working internally, but could it be that the takeoff service as defined in crazyflie_server is conflicting with how it's defined in crazyflie_controller/src/controller.cpp? Since one definition uses Empty and the other uses, e.g., Takeoff, the md5sums would would be difference for the two services and the names would be the same.
As for why it occurs sometimes and not others, my best guess at the moment is that it has something to do with the non-guaranteed node start order in ROS.

I think what I said above just might be the issue. I've pretty consistently been getting the md5sum error today, so I tried commenting out the takeoff and land service advertising in crazyflie_server and ran catkin_make. On the next launch of hover_vicon.launch, takeoff was working again.

Great finding! The controller itself is actually deprecated, since it is now recommended to use the on-board controllers (which are more sophisticated in the first place). I only kept it around as a (bad) example, but also didn't test it for a long time because I personally don't use it.

Ah, got it - thank you! I guess we'll be wanting to do a migration on our side at some point then.


fix up and explain gcloud cmds

/cc @dinosaure kindly review, thanks for the hand-holding!

Thanks! I'm ready to merge upon a glance from @dinosaure :)

Thanks @mbacarella and @dinosaure!


Fix(snapshot): custom uuid to consider from control plane while creating snapshot.

bors try

bors try

bors merge


community curation page

We link to this page. Maybe we should make it more up to date and punchy.
https://www.pombase.org/community/fission-yeast-community-curation-project

@mah11 Any suggestions here?
Cold we make a short summary from the  community curation paper on the current status etc?

@mah11 Any suggestions here?

No; I've been waiting for you to provide something specific enough to act on.

I have added a link to the paper. If you want any other changes, please make specific suggestions.

I think this is fine.


Update for Laravel 7

Merge this, please

@svenluijten

@egorsmkv https://github.com/svenluijten/super-basic-auth/releases/tag/v2.3.0

Thanks!


refactor stream to support canceling Read and Write

Closes #748.
Depends on #1033.

Codecov Report

Merging #1035 into master will increase coverage by 0.05%.
The diff coverage is 96.67%.

@@            Coverage Diff             @@
##           master    #1035      +/-   ##
==========================================
+ Coverage   90.73%   90.78%   +0.05%
==========================================
  Files         104      104
  Lines        7153     7180      +27
==========================================
+ Hits         6490     6518      +28
+ Misses        430      428       -2
- Partials      233      234       +1

Impacted Files
Coverage Δ

internal/protocol/protocol.go
100% <ø> (ø)
:arrow_up:

internal/wire/rst_stream_frame.go
100% <100%> (ø)
:arrow_up:

h2quic/server.go
60.91% <100%> (ø)
:arrow_up:

internal/wire/stop_sending_frame.go
100% <100%> (ø)
:arrow_up:

stream.go
95.12% <96.46%> (+0.91%)
:arrow_up:

Continue to review full report at Codecov.

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


Cache not updating after mutation when using fallback data in useQuery

Describe the bug
When using mutation hooks with fallback data set in the useQuery hook, the cache does not update after triggering a mutation. Specifically, after passing fallback data to useQuery via fetchQueryFallbackData, useUpdateMutation doesn't seem to update the cache as expected.
To Reproduce
Steps to reproduce the behavior:

Implement useQuery with fallbackData as shown in the example below:// Server component
const [, fallbackData] = await fetchQueryFallbackData(
   supabase.from('users').select('id,avatar_url,name').eq('id', id).single(),
 );

// Client component
const { data: user } = useQuery(
  supabase.from('users').select('id,avatar_url,name').eq('id', id).single(),
  { fallbackData },
);

Trigger a mutation using useUpdateMutation to update a user record:const { trigger: updateUser } = useUpdateMutation(supabase.from('users'), ['id']);

Observe that the cache doesn't update after the mutation is triggered, even though it should.

Expected behavior
The cache should be updated after a mutation when using useQuery with fallbackData.
Additional context

Next.js v14 using the app router.
Setting revalidateIfStale: true, either directly in the hook or globally via SWRConfig, resolves the issue and updates the cache as expected.

Additionally, the Supabase clients I'm using for both the server and the client are set up following this guide: https://supabase.com/docs/guides/auth/server-side/nextjs?queryGroups=router&router=app

did you try to pin-point the cause? cache updates are working in normal circumstances, and I wonder what causes it to break here. if revalidateIfStale: true causes a revalidation, then the cache item is hit correctly and the update is not being applied. can you show the full code, including how you call the updateUser mutation? does removing the fallbackData change anything?

I’ve made some progress on the issue. Here’s what I found:
I noticed that when passing only the fallbackData directly to the useQuery hook, the cache was not populated correctly. The SWR cache would only contain the key without any data. This was confirmed by inspecting the cache with:
const { cache } = useSWRConfig();

When fallbackData is set, the value for the cache key doesn’t include the data, which causes mutations not to work properly. However, when I remove fallbackData, the cache correctly contains the data and updates as expected.
What worked:
Instead of passing just fallbackData to the useQuery hook, I used both the key and the data returned from fetchQueryFallbackData and passed them to SWRConfig (setting fallback instead of fallbackData in useQuery also works). This ensured that the cache was populated correctly and that mutations worked.
Hypothesis:
It seems that when passing only fallbackData, SWR treats it as a temporary value for the initial render, but it doesn’t associate the data with the cache key or persist it. As a result, the cache isn’t set properly and subsequent mutations fail to apply. By using the key generated by fetchQueryFallbackData, the cache is correctly associated with the data, allowing it to be updated by mutations. This issue arises specifically when revalidateIfStale is set to false, otherwise the cache would be populated on mount as normally.
I believe this should be corrected in the documentation. Currently, it mentions that you can either pass fallbackData directly to useSWR or define it globally in SWRConfig, but it seems that they don't behave the same way. The correct procedure should be set fallback on either the useQuery hook or globally in SWRConfig.
Let me know if you agree with the analysis, I can do a PR updating the docs!

After further testing I realized that I was wrong about the solution in my previous comment. I was incorrectly setting the fallback in SWRConfig.
Initially I was passing it as [string, any] as returned by the fetchQueryFallbackData function instead of { [key: string]: any }, meaning that the fallback was being ignored, causing the cache to have no data and triggering a revalidation on mount. Once I fixed that and set the fallback correctly, the behavior matched what I observed when using fallbackData directly in the hook.
This means that currently, neither approach correctly handles the fallback, setting fallback correctly in SWRConfig produces the same behavior as setting fallbackData directly in the hook, the cache isn't populated with the data regardless of where fallback is set and mutations fail to apply.

I ended up using the react-query package. If I remember correctly, the root cause of the issue was that setting fallbackData in SWR does not prepopulate the cache. As a result, subsequent mutations fail because there is no existing cache data to mutate.
This behavior contrasts with react-query, where you have Initial Query Data and Placeholder Query Data. initialData is persisted to the cache, while placeholderData is not. In SWR, fallbackData behaves similarly to placeholderData, meaning it only serves as a temporary placeholder when data is undefined.
Found a comment that proves this: https://github.com/vercel/swr/issues/2114#issuecomment-1327657957


[WIP]fix(tests) : Update UI tests to run both Agile and SDD template parallely

Note: If there are pending changes to the PR, prefix the PR title with "WIP" and add the label "DO NOT MERGE"
Mandatory

[ ] What does this PR do?

[ ] What issue/task does this PR references?

[ ] Are the tests Included?

Optional

[ ] Is the documentation Included?

[ ] Are the Release Notes included?

[ ] @mention(s) to expected reviewer(s) included

closing this PR will be opening a new PR


Add text size in editor settings

I would like to add a new option - text size
Was added "textsize" and also changes have been made to SimpleEditor, DynamicFragment and SettingsEditor
Max possible text size: 32
Before making this request, I tested it and it works. I am attaching screenshots

Soon...


Add XcodePlugin support

Replicating upstream SwiftGen/SwiftGenPlugin#4 in our fork until it gets merged 🕯

sorry, wrong fork 🙈


Memory issues arising when trying to make dataArray values JSON serializable

What is your issue?
Need to return the data values in a JSON serializable format, calling .tolist and .to_dict consume so much memory that it produces a Memory Error
When trying to get the data values via the 2 methods above from a dataset the size of 831 MiBs the system memory being used jumped to 43 G before crashing (on a system of 64 G memory capacity). Producing a Memory Error
Need more memory efficient way of returning final data values.
Addressed in the following PR: https://github.com/pydata/xarray/pull/7323

@adanb13 - thanks for opening this issue. It would be helpful if you can share a sample workflow that produces the memory error that you mention above.

Closing due to lack of response. @adanb13 - please feel free to reopen this if you would like to discuss this topic more.


Revise API for manual exports

This is the next revision on our journey to improve path handling 😅

Make public API more consistent and more powerfull:

Function
Includes Dependencies
To

TS::export
❌
TS_RS_EXPORT_DIR

TS::export_all
✔
TS_RS_EXPORT_DIR

TS::export_all_to
✔
custom

Before, we had

TS::export, which is now TS::export_all and
TS::export_to, which kept its name got removed

Aditionally, this PR adds TS::export and TS::export_all_to.

To make this work, I (again) changed TS::output_path.
After the previous PR, it returned TS_RS_EXPORT_DIR + export_to.
The same functionality is now in the function TS::default_output_path(), while the new TS::output_path() now only returns export_to, without reading any environment variables

I transfered that new naming scheme for the functions to export.rs.

@escritorio-gustavo I'd love to hear what you think about this.
I took care in writing nice docs for it, and I think this is overall a good change.
Todos

[x] TS::export_to: Imports are generated useing the "default" TS_RS_EXPORT_DIR + export_to path, instead of the one the user provided
[x] Remove TS::export_to
[x] Can generate_imports be simplified?

No, we actually need the output directory in case a type wants to import from a parent directory.

[x] TS::export_to_string: Can/should we enable formatting for this?

Seems like we can't, since our formatter needs a path to be provided. We could use the default path, but since I'm not sure why it wants a path, I left it as-is.

[ ] Is there a better name for TS::output_path() and TS::default_output_path()?

Okay, my internet is failing a lot here. I submitted a review with three comments... The Github GUI showed six, duplicating all of them... I deleted the duplicates, and that deleted the originals as well 🤦

From my side, this is ready for merge @escritorio-gustavo

our formatter needs a path to be provided. We could use the default path, but since I'm not sure why it wants a path, I left it as-is.

It seems like the formatter is only interested in the file extension, it probably formats .js, .jsx, .ts etc diferently

Even GitHub has some trouble with JS lol


Improve error message for invalid input "-a -b" (one arg)

How to reproduce:
class App {
    @Option(names = "-a", groups = "ALL") boolean a;
    @Option(names = "-b", groups = "ALL") boolean b;
}

CommandLine.populate(new Args(), "-a -b"); // NOT "-a", "-b" !

Gives this cryptic error message:
UnmatchedArgumentException: Unknown option: - -b

The parser takes this as a POSIX clustered option group, matches the "-a" part, then tries and fails to match the remainder " -b" (with leading space) by prefixing with a - and going through the logic in processClusteredShortOptions again. This results in the surprising error message.
One option to improve this is to add the original option cluster in the error message.

Note to self:
Index: src/main/java/picocli/CommandLine.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/main/java/picocli/CommandLine.java	(date<PHONE_NUMBER>077)
+++ src/main/java/picocli/CommandLine.java	(date<PHONE_NUMBER>077)
@@ -8503,6 +8503,9 @@
                         }
                         // remainder was part of a clustered group that could not be completely parsed
                         if (tracer.isDebug()) {tracer.debug("No option found for %s in %s%n", cluster, arg);}
+                        String tmp = args.pop();
+                        tmp = tmp + " (while processing option: '" + arg + "')";
+                        args.push(tmp);
                         handleUnmatchedArgument(args);
                     } else {
                         args.push(cluster);


[Windows] Ensure files open with FILE_SHARE_DELETE

On Windows, open() doesn't set FILE_SHARE_DELETE by default meaning that
if another handle requests deletion privileges, it will always fail
unless the original handle is closed.
An example of where this happens is
{
    guard let fh = FileHandle(forWritingAtPath: somePath) else { ... }
    defer { try! FileManager.default.removeItem(atPath: somePath) }
    fh.write()
}

Without FILE_SHARE_DELETE, the defer happens before the FileHandle's deinit occurs, causing removeItem to fail because it can't open somePath for deletion.

@millenomi @compnerd

@swift-ci please test

@swift-ci please test


Issue with back navigation

Hi,
I noticed when the user presses the back button on desktop or hardware back button on phone, the frame goes to previous page, but the viewmodel OnNavigatedTo code fires again.
The scenario I am presenting is this. In my app, I have a listview (on mobile) or gridview (on desktop) which displays list of shows on MainPage. The user can scroll up or down, and click on the show he/she likes. This takes him to ShowDetailsPage where the information about the show is displayed (in pivot form on mobile, or scrollviewer in desktop). There is list of actors on this show page, which when clicked on one of the actors, navigates to CastDetailsPage.
Now, the problem happens is that is the user presses back button, it goes back to ShowDetailsPage and loads the last show that you were watching, but it tries to fetch the data again, and also the scroll position is lost (or in case of mobile, the first pivot item gets highlighted). Similarly, if back is clicked again, it correctly goes to the MainPage, but again the page data reloads (either from internet or local cache), and re-binds the list or gridview taking the user all the way to the top.
Any suggestion for fixing this?
The app I am referring to is: https://www.microsoft.com/en-us/store/apps/series-tracker/9nblggh3slj9
Thanks

This is not a Template 10 issue, this is an issue around Page Cache. What is happening, in short, is your page is reloading every time you navigate to it. The behavior you are expecting is more like a browser, right? Where the page does not reload if it is in the back stack. This is not default behavior in Windows, but you can do it. I wrote a whole article on it here: https://github.com/Windows-XAML/Template10/wiki/Docs-|-Navigation-Cache

Thanks.
I tried and it worked fine for me. I definitely don't need this on every page (where fresh load is needed), but on one of the pages, it resolved the issue for me.
Thanks again.


Update recurrent weights for spiking neural networks

Thanks for such a nice library of FORCE learning! This is very helpful!
I think currently tension only supports the learning of readout weights for spiking neural networks. I was wondering if there's a way to also update the recurrent weights during the training of SNN, similar to what full-FORCE did? And where can I customize the learning steps if needed?

By design the user is not allowed to update the recurrent weight for SNNs. This is because the SNN just an implementation of  this paper. If you go to equation 13, the recurrent weight is broken down into a static component and a learned decoder (that is a function of the readout weight), so the recurrent weight is updated when the readout weight is updated. For SNNs in this package, the 'recurrent kernel' is just the static component of the weight matrix times G, which isn't supposed to be updated.
Could you clarify what you mean by learning step?

Thank you very much for the quick reply!

By design the user is not allowed to update the recurrent weight for SNNs. This is because the SNN just an implementation of this paper. If you go to equation 13, the recurrent weight is broken down into a static component and a learned decoder (that is a function of the readout weight), so the recurrent weight is updated when the readout weight is updated. For SNNs in this package, the 'recurrent kernel' is just the static component of the weight matrix times G, which isn't supposed to be updated, as the actual recurrent weight is updated indirectly when the readout weight is updated.

For SNN, I wonder if this indirectly updated recurrent weights are used to compute the neuron voltage in the next timestep in tension? I checked the original implementation of the nature communications paper, but only found that the static recurrent weight itself is used to compute the postsynaptic current at every timestep.

Could you clarify what you mean by learning step?

Sorry for the possible misunderstand here. By learning I mean the training process, like the train_step function of the FullFORCEmodel. Is it possible to define a customized SNNModel and write my own train_step to introduce the update of recurrent weight for spiking neural nerworks, separately from the readout weight?

For SNN, I wonder if this indirectly updated recurrent weights are used to compute the neuron voltage in the next timestep in tension? I checked the original implementation of the nature communications paper, but only found that the static recurrent weight itself is used to compute the postsynaptic current at every timestep.

From Eq. 11 of the Nature paper, the synaptic current is updated using the recurrent weight, not just the static recurrent weight, which is how it's done with tension (see compute_current method, noting that self.recurrent_kernel is the static recurrent weight * G).

Sorry for the possible misunderstand here. By learning I mean the training process, like the train_step function of the FullFORCEmodel. Is it possible to define a customized SNNModel and write my own train_step to introduce the update of recurrent weight for spiking neural nerworks, separately from the readout weight?

Note that in the implementation here there's no explicit variable defining the recurrent weight from the paper; you would have to construct it based on Eq. 13 using the other variables.  If you wanted to update the static recurrent weight, first you would have to hack this line by changing recurrent_kernel_trainable=True (I hard coded this since the static weight is not supposed to be trainable). You can then sub-class SpikingNNModel and tweak the train_step based here. In your case it seems like you would want to write your own custom update_recurrent_kernel so the highlighted part would have to be updated

Thanks for the explanations!
One more question: In compute_current, the current is computed as self.I_bias + backend.dot(h, self.recurrent_kernel) + backend.dot(out, self.feedback_kernel) + backend.dot(inputs, self.input_kernel). I can see the bias term, static recurrent weight related term, feedback term and input term here. Since the trained readout weight self.output_kernel is also served as the learnt weight for the synaptic weight $\omega$, I wonder how self.output_kernel is used here? I cannot find it in compute_current.
In addition, I found that compute_current is overriden in OptimizedSpikingNN:
self.I_bias + ipsc + backend.dot(out, self.feedback_kernel) + backend.dot(inputs, self.input_kernel). Here ipsc replaces backend.dot(h, self.recurrent_kernel) and is computed with jd, where jd = tf.math.reduce_sum(self.recurrent_kernel[v_mask[0] == 1], axis=0, keepdims=True). I still cannot see how the learnt recurrent weight contributed by self.output_kernel is applied here.
I'm confused with the computation here and I would very much appreciate it if you could explain more about it! Thank you!

The output kernel is used in backend.dot(out, self.feedback_kernel), where out is the output of the network or equivalently, the firing rate of each neuron times the read out weights as computed from this line in the forward pass. This is effectively the second part of Eq. 13 multiplied by the neuron firing rate; I re-used the previously computed network output to save on computation. The same applies to your second question regarding OptimizedSpikingNN.

Ah I see. So basically the learnt readout weight is indirectly used as the synaptic weight of the SNN by adding the feedback part. Thank you for the explanations. This is super helpful!

On Jul 8, 2023, at 10:10, lubin-liu @.***> wrote:

The output kernel is used in backend.dot(out, self.feedback_kernel), where out is the output of the network or equivalently, the firing rate of each neuron times the read out weights as computed from this line in the forward pass. This is effectively the second part of Eq. 13 multiplied by the neuron firing rate; I re-used the previously computed network output to save on computation. The same applies to your second question regarding OptimizedSpikingNN.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.


filter class not loaded

I'm using swagger gradle plugin to generate openapi spec from jax rs.
As part of it, I have extended the ResolveTask
    @TaskAction
    def generateDoc() {
        def modelConverter = ["my.EntityConverter"] as LinkedHashSet
        setModelConverterClasses(modelConverter)
        setFilterClass("my.ApiOperationFilter")
        println "Model converter classes ${getModelConverterClasses()}, ${getModelConverterClasses()?.size()}"
        println "Filter class ${getFilterClass()}"
        super.resolve()
    }

Everything works except filter class doesn't get invoked.
When I use this in a gradle task, I can see that filter class is getting added to the Resolve Task
but anything I print in the filter class simply doesn't get invoked.
Any idea what might be wrong.
Here is filter class
public class ApiOperationFilter extends AbstractSpecFilter {
  private static Logger LOGGER = LoggerFactory.getLogger(ApiOperationFilter.class);

  @Override
  public Optional<OpenAPI> filterOpenAPI(
      OpenAPI openAPI,
      Map<String, List<String>> params,
      Map<String, String> cookies,
      Map<String, List<String>> headers) {
    LOGGER.info("Adding common schemas");
    System.out.println(">>Adding common schemas");
    //  some processing
    return super.filterOpenAPI(openAPI, params, cookies, headers);
  }

  @Override
  public Optional<io.swagger.v3.oas.models.Operation> filterOperation(
      Operation operation,
      ApiDescription api,
      Map<String, List<String>> params,
      Map<String, String> cookies,
      Map<String, List<String>> headers) {
    LOGGER.info("Adding common responses");
    System.out.println(">>Adding common responses");
   // some processing
    return Optional.of(operation);
  }

}

Hi, maintainers, any update on this? Seems critical. I was able to manually add to sources of gradle plugin  filter invocation by just coping it from another single place where it gets invoked and use local jar, but thought that it will be addressed fast.

@frantuma just a ping. Thank you.

Thanks for reporting this! #3183 adds support for filter to maven and gradle plugins; this is available in latest snapshot and upcoming release. Closing ticket, please reopen if you're still experiencing issues


Could not resolve type in @extends tag

Question on StackOverflow
There is a warning when I compile this code using interfaces
/**
 * @interface
 * @extends {IReused}
 */
function IRegistration() {
}

/**
 * @interface
 */
function IInitializable() {
}

/**
 * @param {IReused} initializer
 */
IInitializable.prototype.initializedBy = function (initializer) { };

/**
 * @interface
 * @extends {IOwned}
 */
function IReused() {
}

/**
 * @interface
 */
function IOwned() {
}

But when I change all interfaces to classes everything just works.
/**
 * @constructor
 * @extends {IReused}
 */
function IRegistration() {
}

/**
 * @constructor
 */
function IInitializable() {
}

/**
 * @param {IReused} initializer
 */
IInitializable.prototype.initializedBy = function (initializer) { };

/**
 * @constructor
 * @extends {IOwned}
 */
function IReused() {
}

/**
 * @constructor
 */
function IOwned() {
}

Also when using interfaces when I remove the IReused parameter from the initializedBy function everything works as expected.
I've also noticed that if I change the order of the interfaces the compiler does not output a warning
/**
 * @interface
 */
function IOwned() {
}

/**
 * @interface
 * @extends {IOwned}
 */
function IReused() {
}

/**
 * @interface
 * @extends {IReused}
 */
function IRegistration() {
}

/**
 * @interface
 */
function IInitializable() {
}

/**
 * @param {IReused} initializer
 */
IInitializable.prototype.initializedBy = function (initializer) { };

Slightly simplified repro case below. Thanks for the report. In general, the compiler is sensitive to code ordering, and you should be defining the supertype before the subtype (owned, then reused, then registration).
/** @param {Parent} x */
function f(x) {}

/**
 * @interface
 * @extends {Parent}
 */
function Child() {}

/**
 * @interface
 * @extends {Grandparent}
 */
function Parent() {}

/** @interface */
function Grandparent() {}

This also occurs with some extern interfaces in our codebase that extend other external interfaces, is it expected that we order our extern files aswell?

Will this bug ever be fixed?

I'm not sure we recognize this as a true bug - and it's definitely low priority. Ordering the interfaces properly addresses the issue.

@ChadKillingsworth Thanks for the quick reply. I'm having a different issue with the same symptoms, which can not be resolved by reordering and is a blocker for my library's development 😞  . Should I add it to this ticket or create a new one?

I would create a different issue. If it's not due to the ordering of interfaces, it's different.


Map, Pin and Shapes BindableProperty support

Pin and Shapes (Polyline, Polygon, Circl) has BindableProperties (ex: Pin.PositionProperty ) but these are not implement.
Also I should make Map.Pins, Map.Polygons ... as bindable.

v1.4.0 contains part of this.
But do not test yet.

@ticktackmobile give me interest link for "Readonly" BindableProperty.

SetValue(Xamarin.Forms.BindablePropertyKey,System.Object) - Xamarin

Hi, it would be nice to implement an IList<Pin> BindableProperty to the map.Pins property.
This way, we could do things like this :
<maps:Map {Binding Pins, Mode=Whatever} />
For people who work with the MVVM pattern, this feature is pretty essential.
Thanks

While this is in progress, I have been using a workaround. Since Map only has one IList<Pin> instance for the Pin property, I make my own Map2 class (uninspired name I know) with a new ObservableCollection<Pin> BindableProperty. Then, everything hooks up with MVVM. And yes, it does depend on the current implementation of Map, but hopefully that will only be temporary.

hi, thanks for your suggestion. I am not using the plugin at the moment. It would be nice to have a neat implementation of this feature.

Hi @jdluzen,
Would you show me your Map2 implementation?

Sure, it's nothing terribly interesting. Though the trick to getting the Pins' getter / setter to be called from XF in the right order is BindingMode.OneWayToSource.
public class Map2 : Map
    {
        public static readonly BindableProperty PinsProperty = BindableProperty.Create(nameof(Pins), typeof(ObservableCollection<Pin>), typeof(Map2), null, BindingMode.OneWayToSource);

        public Map2()
        {
            Pins = (ObservableCollection<Pin>)base.Pins;
        }

        public new ObservableCollection<Pin> Pins
        {
            get
            {
                return (ObservableCollection<Pin>)GetValue(PinsProperty);
            }
            set
            {
                SetValue(PinsProperty, value);
            }
        }

Thanks @jdluzen .
I'll use as reference in my implementation.

You can take a look at line 74 for a clean implementation of this feature. It use an
IEnumerable<T> interface instead of an ObservableCollection<T>. Even better,
IList<T> provide a more convenience API to developers.
You probably don't want your users restricted to supply an observable collection.
https://github.com/TorbenK/TK.CustomMap/blob/master/TK.CustomMap/TK.CustomMap/TKCustomMap.cs

@dreamsystems @jdluzen  I didn't see this issue earlier. However if you are interested, I implemented it there:
https://github.com/amay077/Xamarin.Forms.GoogleMaps/pull/151
Feel free to suggest improvements :)

I recommend to use extension library named Xamarin.Forms.GoogleMaps.Bindings which provide binding for XAML by Xamarin.Forms behaviors.


Cannot using home/end key after install oh-my-zsh

I using a pure Ubuntu:14.04 env.
After I install oh-my-zsh by curl.
I cannot using home/end key anymore.
I didn't change any settings in .oh-my-zsh folder.

I can confirm that keys HOME and END do not work on MACOS Yosemite 10.10.3. Home key scrolls the console screen to the first line of output and End scrolls to the last line on output.

This looks similar to #3757.
Before discussing this any further, it would be nice to figure out, in that order:

what you guys think the behavior of Home and End keys should be;
what exactly is happening instead;
and why.

For those of you who think it should work (Home to the beginning of line, End to the end of line), it probably depends on your OS/desktop-env/term-emulator.
Vanilla Zsh does not provide any binding for the Home and End keys. FYI, the usual terminal shortcuts for beginning and end of line are respectively Ctrl+A and Ctrl+E.
For instance, the behavior @damijanc is experiencing is correct. Jumping to beginning or end of terminal output is what Home and End are supposed to do in default-configured Terminal.app with vanilla Zsh and OMZ without plugins.
If you really want Home and End to move the cursor to the beginning or end of line, you can use the settings of your terminal emulator to bind them to ^A and ^E.

For those of you who used to have it working but do not anymore, then if it is OMZ's fault it means the behavior was broken by a particular update. In that case, please help us tracking that update down, using git bisect or something.

@ncanceill It appears OMZ sets home and end keys to behave this way by default: https://github.com/robbyrussell/oh-my-zsh/blob/master/lib/key-bindings.zsh#L37
However, those keys may not be set in $terminfo which could be leading to the trouble here. It's worth any user experiencing this problem to run autoload zkbd and go through the steps in zkbd. Source the file generated and then bind them how you want.
Speaking of which; does OMZ load files from ~/.zkbd/ ?
@damijanc could you provide output of infocmp please?

It's my infocmp
  #	Reconstructed via infocmp from file: /lib/terminfo/x/xtermxterm|xterm-debian|X11 terminal emulator,	am, bce, km, mc5i, mir, msgr, npc, xenl,
colors#8, cols#80, it#8, lines#24, pairs#64,
acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
clear=\E[H\E[2J, cnorm=\E[?12l\E[?25h, cr=^M,
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
ind=^J, indn=\E[%p1%dS, invis=\E[8m,
is2=\E[!p\E[?3;4l\E[4l\E>, kDC=\E[3;2~, kEND=\E[1;2F,
kHOM=\E[1;2H, kIC=\E[2;2~, kLFT=\E[1;2D, kNXT=\E[6;2~,
kPRV=\E[5;2~, kRIT=\E[1;2C, kb2=\EOE, kbs=\177, kcbt=\E[Z,
kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
kdch1=\E[3~, kend=\EOF, kent=\EOM, kf1=\EOP, kf10=\E[21~,
kf11=\E[23~, kf12=\E[24~, kf13=\E[1;2P, kf14=\E[1;2Q,
kf15=\E[1;2R, kf16=\E[1;2S, kf17=\E[15;2~, kf18=\E[17;2~,
kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~,
kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~,
kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R, kf28=\E[1;5S,
kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~, kf31=\E[18;5~,
kf32=\E[19;5~, kf33=\E[20;5~, kf34=\E[21;5~,
kf35=\E[23;5~, kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q,
kf39=\E[1;6R, kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~,
kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~,
kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~,
kf48=\E[24;6~, kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q,
kf51=\E[1;3R, kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
kf8=\E[19~, kf9=\E[20~, khome=\EOH, kich1=\E[2~,
kind=\E[1;2B, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
kri=\E[1;2A, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l,
rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
vpa=\E[%i%p1%dd,

@linlinlinlin In your case this seems to be a common issue with putty, can you provide the terminal type string that putty is configured to use? Does following this http://superuser.com/a/104016 help?

@jgrar  In putty, I try to set  Terminal-type from xterm to  putty. It works.
But actually I am using XShell on Windows. Terminal-type options in XShell are xterm/vt100/vt102/vt220/vt320/linux/scoansi/ansi. I do not know what should I type for XShell.
Few more questions:

Why does bash didn't have to change terminal-type on client side?
is it possible to modify settings on server to solve this issue? Instead of change client options in every client side.

@linlinlinlin

As per my understanding, setting the type to linux should work, if it doesn't could you try all of them and report back?
I don't know what bash does differently to zsh in this regard but I'm looking into it
The terminal type string that the client gives the server indicates which terminfo database is to be used, so you need to make sure you're setting your client up correctly, in this case providing the best terminal type string.

In my opinion; if using bash in putty maps keys as you'd expect but using ZSH & OMZ in putty doesn't (can you confirm that?), then we can compare the difference at these two points and should be able come up with a fix. I'm investigating it at the moment because I have my own similar issue with mosh and ZSH & OMZ, but it would be a great help if others can join in and give more detail.

If I change to linux in Xshell software, it works for home/end key but the shell color getting weird. So, I change back to default xterm.

if using bash in putty maps keys as you'd expect but using ZSH & OMZ in putty doesn't.

Confirmed.

When I change to bash, the HOME/END key works fine, but oh-my-zsh not.
My SSH Client is Xshell

I have same problem and fixed with this answer: http://superuser.com/a/104001/24760

@linlinlinlin This problem by default zsh does not have key bindings for Home and End keys. Try using the following commands to set bindings:
bindkey "\033[1~" beginning-of-line
bindkey "\033[4~" end-of-line

What is the reason does not set these bindkey as default in zsh?
Also, I have to set keypad bindkey by myself:
# Keypad
# 0 . Enter
bindkey -s "^[Op" "0"
bindkey -s "^[Ol" "."

Observations:
Home/End Keys work fine in: Vanilla ZSH and robbyrussel work fine.
Using Bitvise SSH client, and gnome-terminal &
Issues:
For example, the:POWERLEVEL9K theme does not work in this way.

Hum, this is starting to go very wide.
I think we need to exhibit a clean configuration procedure to reproduce the issue.

@ncanceill For me on Ubuntu 15.04 with gnome-terminal, if I have an entirely empty .zshrc (i.e. not even pointing to omz) then Home/End 'work', by which I mean I have the following:
$ bindkey $key[Home]
"^[OH" beginning-of-line
$ bindkey $key[End]
"^[OF" end-of-line

and using Home/End does move the cursor to the beginning/end of line. If on the other hand .zshrc solely consists of:
function zle-line-init {} # Note absence of `zle -N zle-line-init`

then bindkey reports the same, but using Home/End does not move the cursor. In practice this means that using a plugin which sets or requires zle-line-init to be set (e.g. vi-mode, or external plugin zsh-autosuggestions) prevents me from using Home/End.

I can confirm that the home/end buttons are breaking with a .zshrc as @mickk-on-cpp  described. It was tested by starting zsh with ZDOTDIR=/the/new/dir/ zsh and only a .zshrc in that folder with this:
function zle-line-init {}

In my zsh installation it also broke the history searching when tapping the up button and having written some command already. For example having run adb devices, running some other non-adb commands in-between and then writing ad and hitting the up button would auto-complete to adb devices. (I don't know what plugin is doing this.) If I disabled the theme I use (bhilburn/powerlevel9k) then it would suddenly work again. I found this bug after doing a git bisect and ending up with bhilburn/powerlevel9k@b31d0f as the commit that broke it. Not sure if this is a bug in zsh, oh-my-zsh or powerlevel9k (if it even is a bug and not a feature).
I use Konsole 5 on Debian Stretch.

This is related to https://github.com/bhilburn/powerlevel9k/issues/131. I hope #2735 fixes that, but I haven't got time to check that.

Thanks @mickk-on-cpp, I will try to look into it this week-end.

Yeah, this sure looks like the "keypad transmit" aka "application" mode (smkx/rmkx) issue from #2735: the code setting up the key bindings, and the code controlling the terminal behavior during ZLE line editing have different expectations about what character sequences the keypad keys will be sending. (And @dritter, yes, I believe #4191 or #4192 will fix this for you.)
It's a bug in the overall system setup, but it's hard to pinpoint exactly where the bug lies: the problem is getting several layers of a complicated, finicky system all in sync. (And the original cause is a series of unfortunate design choices and historical bugs going all the way back to the original terminals of the '70s.) And for OMZ/zsh, we want to get it in sync not just for one computer, but in a portable, reproducible way that works across multiple machines and operating systems.
The system configuration needs to determine whether keypad transmit mode is going to be used during ZLE editing, and configure everything to be consistent with that. OMZ has been heading toward "yes" the past couple years, and Zsh itself seems to have settled on that, based on their developer mailing list activity. I think that's the right answer, too, because that's what makes it work with terminfo, which lets you define key bindings portably across different terminals and operating systems (and is more readable). What makes it difficult is that not everybody agrees, or even understands the problem in the same way. And that goes all the way up to distribution packagers: OpenSUSE doesn't even recognize the transmit vs local mode distinction for some of the term definitions they ship.
I think @ncanceill is right: this goes really wide, and needs to be settled by considering all the related issues at once, instead of doing quick fixes for each. Have a look at #4344, the terminal-related tracking issue. I think that literally at least a dozen of the issues listed there are variants of this one, having to do with keypad transmit mode and closely related terminal settings. We probably need to decide on a behavior, get everything consistent in OMZ, and then document this in a Wiki page for future reference.
Debugging Notes
Folks, when you're trying to reproduce, an empty ~/.zshrc is not enough to get a "clean" shell session. There are also system-level /etc/z* files that set up key bindings and terminal behavior, and these vary widely between systems in ways that will affect this issue. (E.g. different OSes, and different versions of OSes, may be very different, including changes in default transmit/local keypad settings.) To get a really clean shell session, you need to run zsh -f (the -f skips startup files), probably run it under env -i (to get a really clean environment), and run it under a fresh terminal session (to make sure there's no terminal state left over from a prior process issuing control sequences). To do this, set up a new "profile" in your terminal emulator which runs env -i zsh -l -f instead of the default login shell. OMZ isn't going to work under that, but it will be about the closest you can get to "clean, stock zsh under a clean terminal".

I'm also using a pure Ubuntu:14.04 env.
But after I installed oh-my-zsh by curl.
I cannot using home/end key anymore while I'm using the omz but works absolutely fine with bash.
Also, my Home and end keys are on the numpad which work when NumLock is disabled.
Moreover, I too didn't change any settings in .oh-my-zsh folder.

@tshrjn: Could you run omz_diagnostic_dump and post the results as a gist, so we can see the details of your system configuration?

Ubuntu users, especially @mickk-on-cpp and @JimmyAx: take a look at /etc/zsh, and in particular, /etc/zsh/zshrc. I just looked at my own Ubuntu 14 box, and it comes with an extensive system-wide config file.
The Ubuntu /etc/zsh/zshrc defines its own zle-line-init and zle-line-finish functions, which emit smkx/rmkx. This means that by default (no .zshrc, but not running zsh -f), under stock Ubuntu 14.04, you're in keypad application mode when editing the command line, and terminfo-based bindings work. When you make a ~/.zshrc that defines an empty zle-line-init function, you are clobbering the existing one and redefining it to not emit smkx, leaving it in "keypad local" mode when editing the command line. In this mode, the arrow keys and home and end send different character sequences so the "regular" terminfo-based key bindings won't work.
This is consistent with #2735.
The way the code is now, this is how the startup sequence works:

Ubuntu's /etc/zsh/zshrc defines zle-line-* to do [sr]mkx
OMZ's lib/key-bindings redefines zle-line-*, to still do [sr]mkx
If you load vi-mode, it will redefine zle-line-* with broken ones that don't do [sr]mkx
If you load the old Powerlevel9K theme, it would redefine zle-line-* with broken ones that don't do [sr]mkx. (Though this just got fixed recently, in bhilburn/powerlevel9k#136.)

If [sr]mkx is happening, then key bindings (or other things) based on terminfo entries for the keypad keys may not work. (Depending on exactly which keys and which terminal you're using.)

Home and End specifically don't break for me this way in gnome-terminal or iTerm2 for me. But those emulators seem to send the same sequences for Home/End in both keypad-application and keypad-local mode. Different emulators may act differently.
PuTTY in particular may complicate this because its behavior with respect to keypad application/local mode is itself user configurable.

@damijanc:

I can confirm that keys HOME and END do not work on MACOS Yosemite 10.10.3. Home key scrolls the console screen to the first line of output and End scrolls to the last line on output.

This may also be an issue with the specific terminal emulator you are using. Are you using Terminal.app or iTerm2? By default, Terminal.app is configured to capture Home and End keystrokes itself and use them to scroll the window, instead of passing them along as character sequences to the shell running inside it.

If you're set up this way, the key bindings are irrelevant because those keystrokes will never make it to the shell. If you want to use the Home, End, PgUp, or PgDown keys to control your programs inside Terminal.app, you must reconfigure your Terminal.app profile. Unfortunately, there's no easy way to do this. It doesn't give you any presets like "act like xterm" or whatever; you'll need to enter the escape sequences manually, or find a source for a profile file out on the internet.

Also, setting $TERM to linux is probably the wrong approach for everybody. The linux term entry refers specifically to the Linux virtual console, the command line terminal that appears on a Linux machine's local monitor when you are not running X Windows, or you press Ctrl-Alt-N to switch to one. It does not mean a generic terminal emulator running on Linux. The Linux virtual console's key mappings and control sequences are different in some ways from xterm and many other popular terminal emulators, so if you set TERM=linux, it will probably break something or other for you.

@apjanke I can confirm that if I do e.g. printf '%s' ${terminfo[smkx]}, then Home/End works as expected. Until the next time I switch to Command mode and go back to Insert mode, which I suppose is expected as well.
I'm not sure yet how I will act on it, I suppose I can always scour all those configuration files and brew my own zle-line-* hooks.

@mickk-on-cpp: Thanks for checking. That's kind of a good sign; it means you're probably running in to a known issue that we might be able to sort out.
You might look through them and see if you can find what's defining the zle-line-* hooks that don't do the [sr]mkx right and fix that. There aren't that many things which define these hooks. If it's only in OMZ that this breaks for you, it might be the vi-mode plugin that's doing it, in which case you could push for #4191 to be merged, or just merge that in to a copy of vi-mode in your $ZSH_CUSTOM directory. And the fact that it stops working when you switch between Command and Insert mode makes it sound like you have hooks which unconditionally emit rmkx upon zle-keymap-select (otherwise I think your terminal would stay in application mode until you were done editing the line). That's expected if it's the vi-mode plugin that's doing this to you.
You could also just add additional bindings to your ~/.zshrc using the hardcoded sequences for the transmit-mode Home/End sequences your terminal sends, as a temporary workaround. Might also be a good safety precaution, because it might fix the issue where those keys do destructive things to your command line when this isn't working. (Because otherwise the unrecognized escape sequence is treated as an Esc and then some other keys, which looks like a vi editor command sequence.)
If you wanted to make your own hooks, you could copy -start and -finish from lib/key-bindings.zsh, and grab zle-keymap-select from here and I think it'd work fine. (Stick 'em in your ~/.zshrc after loading OMZ.) Powerlevel9k is the only thing I've seen in these threads that needs additional custom behavior.

Hey folks, #4191 got merged, which should fix this. Want to update your OMZ and see if things are working for you now?

@apjanke Still seems to be buggy in both pure tty and Konsole (TERM=xterm)

On my Mageia laptop in Zsh in pure TTY the [End] and [Home] keys work in emacs mode, but don’t in vi mode. In Konsole (KDE’s terminal emulator) they just don’t work properly in Zsh at all.

Okay. At this point, what isn't working? Are Home and End working in emacs mode in Konsole for you yet? That should have been fixed by #4191, unless there's something else going on.
Unless you've added extra bindings for Home and End in vi mode, they won't work there by default. There are no bindings for them in zsh by default, and Oh My Zsh only defines bindings for them in emacs mode. See #3435 for related discussion, if that's it.
For maintainers: Maybe it would be nice to add bindings for Home/End/PgUp/PgDn in the vi-mode plugin. They don't have default bindings that we'd be clobbering. And since their character sequences start with Esc for many terminals, if those sequences are unbound, they could be interpreted as possibly-destructive vi key sequences which switch to vi command mode and then do something.

@jgrar In putty, I try to set Terminal-type from xterm to putty. It works.

One other thing about Putty: the putty terminfo entry in OS X, and probably other OSes, says that the terminal does not support keypad application mode switching (even though Putty actually does), and it uses the keypad local mode character sequences in its entries for the cursor keys and other keypad capabilities. So switching your $TERM to putty effectively disables keypad application mode and sets up key bindings to work in keypad local mode.
$ infocmp xterm putty | grep '[sr]mkx\|cuu1\|cud1\|cub1'
	cud1: '^J', '\ED'.
	cuu1: '\E[A', '\EM'.
	kcub1: '\EOD', '\E[D'.
	kcud1: '\EOB', '\E[B'.
	kcuu1: '\EOA', '\E[A'.
	rmkx: '\E[?1l\E>', NULL.
	smkx: '\E[?1h\E=', NULL.

I’ve got rid of the previous workaround and everything works as expected. I had some quirks when I was using the workaround and they’re now gone, so this is a tremendous improvement on my end.

Ok I'm officially closing the issue. If someone still has issues, please comment and I'll open it again.

I am still have same issue without setting
bindkey "\033[1~" beginning-of-line
bindkey "\033[4~" end-of-line

@linlinlinlin: Could you run omz_diagnostic_dump and post the results as a gist so we can see the details of your configuration? Unfortunately, this is a matter of dealing with a lot of moving parts and getting them all lined up with each other.

@apjanke My omz_diagnostic_dump output
https://gist.github.com/linlinlinlin/c17ce49480ec1e0792f4

@linlinlinlin Is that broken home/end happening when you're connecting from Putty? This is probably a Putty-specific issue. After some testing, I found Putty is emitting different sequences for Home and End than most other terminals. By default, it sends those ^[[1~ and ^[[4~ sequences.
This probably isn't going to be fixed for putty in OMZ itself any time soon, if at all. You can either configure Putty to declare its $TERM as putty instead of xterm (if all your target hosts have a putty terminfo entry), or you can just leave this workaround in your ~/.zshrc. It'll get Putty's default Home/End behavior working, and shouldn't hurt anything.
bindkey "\033[1~" beginning-of-line
bindkey "\033[4~" end-of-line

@apjanke : Yes, I am using Putty or XShell software to connect to my host. The way to change xterm or bindkey methods both are works for me. I will using workaround method. Thanks!

I also seem to be having some issues with home/end/delete keys not doing what they're supposed to.
I'm running arch linux with uxvrt, zsh, and oh-my-zsh, with git and vi-mode plugins, on the agnoster theme.
Pressing the any of these keys (delete/home/end), capitalizes/lowercases words instead of doing what they're supposed to. Everything's fine though once I explicitly set their bindings using beginning-of-line end-of-line etc.

OMZ's default key bindings are applied to emacs mode, so they're not available in vi mode by default. The vi-mode plugin provides some bindings for the vi keymaps, but these don't currently include Home or End.
If you're in vi-mode, an unbound character sequence can be interpreted as a sequence of vi command key strokes, since they begin with an Esc (^[) character. That's probably why the capitalization/lowercase is happening.
The vi insert and command modes use two different keymaps. Key bindings are per-keymap. The default map in vi mode is viins (insert mode), so bindkey calls without an explicit keymap get applied to it, and not to vicmd. So to get your keys working fully in vi mode, you'll need to bind the keys in both in the vicmd and viins keymaps, using bindkey's -M <keymap> option. Something like this.
if [[ "${terminfo[khome]}" != "" ]]; then
  bindkey -M viins "${terminfo[khome]}" beginning-of-line      # [Home] - Go to beginning of line
  bindkey -M vicmd "${terminfo[khome]}" beginning-of-line
fi
# ... and so on for each key ...

I use emacs mode and have bash as my shell.
Whenever I start zsh in my login shell, I experience this issue.
Even with num lock enabled, I don't get any key presses from the num pad and after I exit from zsh (back into my login shell bash) I don't get any key presses from num pad there either.
Num pad then just stops working on that tty once I use zsh in login shell, no matter how many times I logout-login, it doesn't work on that tty lgin shells anymore unless rebooted. It however works fine after startinx X session. But then back to login shell, it doesn't work again.
Because of this issue I had to change my shell to bash

I have this issue when enabling vi-mode plugin, here is the difference in key bindings:
grep "beginning-of-line" omz_diagdump_20171113-153* | grep -v ":#"
omz_diagdump_20171113-153207.txt:"^A" beginning-of-line
omz_diagdump_20171113-153207.txt:"^[OH" beginning-of-line
omz_diagdump_20171113-153321.txt:"^A" beginning-of-line

First file 153207 w/o vi-mode, second 153321 with.

@cono Have this issue when enabling vi-mode plugin, too! And seems "^[OH" not binding to beginning-of-line!
Here is my omz_diagnostic_dump for Home and End key work wierd.

Details at https://github.com/robbyrussell/oh-my-zsh/issues/7330.


Test doi-service#328 on pdscloud-gamma

A new doi-service release 2.2.1 is deployed on pdscloud-gamma. Please verify that https://github.com/NASA-PDS/doi-service/issues/328 still works as expected, and if python 3.9.10+ is still required.
Reference this specific Testrail test case with v2.2.0 here.

A new doi-service release 2.2.1 is  deployed on pdscloud-gamma.  Please verify that doi-service #328 still works as expected, and if python 3.9.10+ is still required.
Reference this specific Testrail test case with v2.2.0 here.

tested with v2.2.1 with no error


Fix some code quality and bug-risk issues

Remove length check in favour of truthiness of the object
Fix dangerous default argument
Remove unnecessary comprehension

Find the other issues found here - https://deepsource.io/gh/pnijhara/autobahn-python/issues/?category=recommended
This PR also adds .deepsource.toml configuration file to run DeepSource analysis on the repo with. Upon enabling DeepSource, the analysis will run on every PR and commit to detect 560+ types of issues in the changes — including bug risks, anti-patterns, security vulnerabilities, etc.
To enable DeepSource analysis after merging this PR, please follow these steps:

Signup on DeepSource with your GitHub account and grant access to this repo.
Activate analysis on this repo here.

You can also look at the docs for more details. Do let me know if I can be of any help!

as you mention, the change only makes sense if we subscribe to DeepSource
adding DeepSource requires to grant the following permissions. it's unclear to me what this list actually means, and why that is needed. if so, I would like to trigger DeepSource from GitHub. I don't need the other directly. I will not grant anything that comes with write access to anything in this repo.
also not sure how I would connect it to crossbario organization, rather than my persional oberstet account ..

The screenshot is the GitHub oAuth2 login. By authorizing DeepSource on this screen, you would be able to sign in to DeepSource using your existing GitHub account. DeepSource only need access to your verified email address, so they can identify you.
After this step, you can connect DeepSource to the crossbario organization (you will be guided after the signup step in the UI). Once you connect, DeepSource only gets read-only access to the repositories you select — it does not ask for any kind of write access. DeepSource need the read access to automatically subscribe to push events from your repository, so the moment you make a commit or a pull-request, DeepSource can start running analysis — similar to CI tools that you use like Travis.
Detailed steps: https://deepsource.io/docs/quickstart/create-account.html#connect-github

ok, got it. thanks for explanation! for completeness: a later screen during the signup process describes exactly the set of permissions (which is perfect):

I've merged the PR, and only then clicked "analyze repo" on deepsource.io, and the analysis has run successfully it seems
https://deepsource.io/gh/crossbario/autobahn-python/
awesome=)

btw: also thanks for the actual fixes. I've had a quick glances at some of the other reported issues .. some of these are definitely worth fixing. others, I guess we need to play with settings a bit (eg line length or such)
follow up issues:

https://github.com/crossbario/autobahn-python/issues/1383
https://github.com/crossbario/autobahn-python/issues/1384

one more Q: I would give "Autofix" a try .. but it wants more permissions than only creating new PRs (which is fine), it also asks for "direct write". just PRs isn't enough?
Direct write access (if that means direct push to master or sth): nope.
The only permission I would give is: create new PRs, and change exactly those newly created PRs. essentially, exactly what anyone has. so deepsource code fork the repo and create a PR from there. zero permissions needed on the forked repo?

and one more Q: how/where do I mark issues as invalid?
eg https://deepsource.io/gh/crossbario/autobahn-python/issue/PYL-E0602/occurrences is invalid (https://github.com/crossbario/autobahn-python/blob/27708178d5e0c55122c952169573fe14ccd874de/setup.py#L38)

"write" permission on github is indeed push access to every repo that user owns, AFAIK.

Is it possible to "dismiss" warnings/errors generated by the tool?
e.g. this is neat https://deepsource.io/gh/crossbario/autobahn-python/issue/PTC-W1006/occurrences (looking for "secret" in the source, I guess?) but in a method that starts with test_ in a file that starts with test_ should probably be ignored.
So being able to say "I, a human, have looked at this warning and find it to be wrong/spurious/etc" would be good. I see it also finds SHA1 hash usage -- but also that's part of an RFC so same thing applies ("I have looked, and want to continue using sha1").

Autofix app's write permissions
For the DeepSource Autofix app, the following permissions are used:

Content (Read and Write): Repository contents, commits, branches, downloads, releases, and merges.
Pull requests (Read and Write): Pull requests and related comments, assignees, labels, milestones, and merges.
Metadata (Read only): Search repositories, list collaborators, and access repository metadata.

Neither DeepSource nor DeepSource Autofix GitHub apps writes to master (or) default branch except for .deepsource.toml file. All proposed Autofix changes are pushed to a separate branch and sent for approval as a pull request.
Invalid issues
For the invalid issues, you could either report to us as a false positive (or) ignore them across the repository, only the specific occurrence, only on specific file patterns.
Ignore issue
To ignore an issue, you can do one of the following:

Add skipcq as a comment with the issue's short-code at the end of the line, or one the line above it to silence the issue. More details here - https://deepsource.io/docs/how-to/silence-issues.html#silencing-a-specific-issue
Ignore issue for a specific file pattern or across the repository from the dashboard.

Report false positive
When you ignore an issue, there is an option to report false positive. All false positive reports are looked at by the DeepSource's analyzer team and will be resolved in a few days.

Secret exposed issues in test files
Ref: https://deepsource.io/gh/crossbario/autobahn-python/issue/PTC-W1006/occurrences
These issues are not raised on test files. The issue is raised in this case due to a mistake in test_patterns. The correct test_patterns should be **/test/**. Otherwise autobahn/wamp/test/test_auth.py won't match */test/**. Will send a pull request with the fixes in a while.
@oberstet @meejah

Refer #1385

@pnijhara thanks again for explanations and help!

Autofix: ok, I see. we can't give those permissions
ignoring specific issues: perfect. we'll use the in-comment markers
invalid issue: ok, this is quite cool that you promise to look at those! I might use that if I find one which makes sense to file (the one in https://github.com/crossbario/autobahn-python/pull/1379#issuecomment-628231927 is indeed invalid - but I can't imagine how you could detect it automatically, so won't file that one - just mark it invalid in our code)


Can't start a container with the given example of binding a volume

When I'm trying to do this:
        // config bind is : /Users/user/.miner_bind
        container.start({'Binds':[config.bind + '/:/data']}, function (err, data) {
            if (!err) {
                console.log('Container started.');
                tmux.run(con.Name.replace('/', ''));
            } else {
                console.log(err);
                process.exit(1);
            }
        });

I'm getting this:
Binding to location: /Users/user/.miner_world/:/data
{ message: 'starting container with non-empty request body was deprecated since v1.10 and removed in v1.12' }
{ Error: (HTTP code 400) unexpected - starting container with non-empty request body was deprecated since v1.10 and removed in v1.12
    at /Users/user/minecraft_server/miner/node_modules/docker-modem/lib/modem.js:240:17
    at getCause (/Users/user/minecraft_server/miner/node_modules/docker-modem/lib/modem.js:270:7)
    at Modem.buildPayload (/Users/user/minecraft_server/miner/node_modules/docker-modem/lib/modem.js:239:5)
    at IncomingMessage.<anonymous> (/Users/user/minecraft_server/miner/node_modules/docker-modem/lib/modem.js:214:14)
    at emitNone (events.js:91:20)
    at IncomingMessage.emit (events.js:188:7)
    at endReadableNT (_stream_readable.js:975:12)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)
  reason: undefined,
  statusCode: 400,
  json: { message: 'starting container with non-empty request body was deprecated since v1.10 and removed in v1.12' } }

Check the updated example.

Yes!! This worked. Thanks. Now I can continue. :) 👍


getForm doesn't return proper model for formReducer('') handling all forms - formValue is incorrect

The Problem
When formReducer handles all forms states (empty string as a model [just like here: https://davidkpiano.github.io/react-redux-form/docs/api/createForms.html]),  component's internal call of getForm (https://github.com/davidkpiano/react-redux-form/blob/master/src/components/form-component.js#L406)  returns incorrect state.
It creates some errors when reading from $form state.  For example: $form.intents, are never handled (memory leak), computing form-level validity is wrong and some others.
Steps to Reproduce
Create formReducer(''), that handles all forms states, check formValue of any .
Reproducible Code Example
https://codepen.io/marcinm2h/pen/GxjPrE
You can see in console formValue of  as it is logged in onUpdate handler.

Seems like you know a probable fix, want to open a PR?

I've found out that the problem occurs when I'm not passing initial state to formReducer(''), because initially state[formsReducerKey] doesn't have any sub-forms. Those are created on form actions.
Then this invalid formKey is cached, and later when I have state[formsReducerKey][subFormModel] in my state getFormStateKey(state, modelString, s) would compute it's model correctly, but it gets the incorrect one from cache/
I'm not sure if I should avoid cacheing on empty string model (''), or should just avoid initializing this kind of formReducer without initial state 🤔.


chore: replace date to last_commit_date

It’s today (the build date) when it’s not a git repo.
Maybe build_or_git_commit_date

It’s today (the build date) when it’s not a git repo. Maybe build_or_git_commit_date

@zmstone  git_commit_or_build_date should be better.  👍

we check git_commit first


Die brunch

Fully replace Brunch and Bower with Gulp
Explicitly require all modules instead of assuming some will be in the global scope
Copy index.mustache over to SingularityService instead of depending on a symlink
Replace ZeroClipboard with Clipboard.js

drops mic

:bow: