Remove the word "sexy" from the UI

Display a sexy logo for your publication

I cringe every time I read this. It is unprofessional and it is borderline if not completely sexist.
I don't want to upload a sexy logo, I just want to upload my logo. The phrase works just fine without the unnecessary adjective:

Display a logo for your publication

http://notapattern.net/2014/10/14/ways-men-in-tech-are-unintentionally-sexist/
From #5:

By sexualizing something that does not need to be sexualized, you’re creating a college-frat-boy type environment, as well as implicitly conflating quality with sexual attractiveness.

If you think "sexy" is "sexist" then I'm pretty certain you don't understand the meaning of either one of those words. Further reading: http://www.theatlantic.com/magazine/archive/2015/09/the-coddling-of-the-american-mind/399356/

Why is it such a big deal to remove this word?

There's no way you read what I linked to in the space of 8 minutes – which explains precisely the answer to that question. So if you don't respect my time, why should I respect yours?

We, I have read the article. You're entitled to your opinion on this, but your reaction to this change makes me wonder what the goal of Ghost is.
Is Ghost trying to be a simple publishing platform that allows everyone to share their stories with the world? Or is Ghost trying to be a simple publishing platform that allows some people to share their stories with the world?
Making interfaces more inclusive furthers the goals of Ghost more than exclusionary interfaces. Why resist this change?

@JohnONolan:
There's no way you read what I linked to in the space of 8 minutes

I did read the article.
I think it is possible for us to have a polite and productive conversation about this. But I would prefer that we leave out the ad hominem, adversarial tone.
I didn't want to start an argument, all I really wanted to do was remove a word from the UI. For that matter, any adjective in that phrase is extraneous. Even "Display an awesome logo for your publication" should simply be "Display a logo for your publication."

While I completely respect your opinion, I don't agree with either your premise or your conclusions – which is fine – we don't always have to agree.

Would it be possible to hear from the top/lead contributor @ErisDS on this? #justcurious

For what it's worth, I completely disagree that this should be removed.

I got a good chuckle, and while Ghost is very much a professionally used
platform, there actually isn't a clear cut definition for what
'professional' entails. If you have ever worked for the back-end of an
extremely large company, you'd realize that they comments, methods and
array names typically have something quirky (such as this) that pops up
regularly. If you don't like it, you can personally change it on your own
projects.
It's not sexist, because it can be used equally from both directions and in
case we forget the obvious - it's not referring to a human in any way,
shape or form. It's a personification and hardly worth having an issue
over. If something like this makes you cringe, I wish you the best of luck
in the real-world.

To be frank, this is at least the second instance where I've seen the Ghost group present the product (and by extension, themselves) as rather unprofessional.  That isn't intended to offend as much as it is to inform - to give you an outsider's perspective on how things can come across.
I get the desire to seem 'edgy'.  I lived through the .com boom and bust, and I understand the desire to stand out by being different - but sometimes, different isn't necessarily good.
John (and Hannah), it's your baby, and you've every right to shepherd it as you see fit.    If it's the former, this sort of thing (along with some of the extremely off-color comments in the checkins) is going to have to stop, and the sooner, the better.
Not trying to rain on anyone's parade, but I'm willing to stick my neck out and say that Dave and I are almost certainly far from the only ones bothered by the lack of professionalism, and that's something you may want to take into consideration before knee-jerking.  You may be OSS, but it's also a product you sell - image, particularly in this arena, is everything.  Think hard about what you want that image to be.
I'm not going to get into a net.religion war over this, and this will be my first and last commentary on the subject...just wanted to offer my two cents that Dave does not stand alone here (and not ignoring your comment either, Daniel! :).
Rodney

Frankly, I think the use of the adjective adds a sort of quirkiness to the platform.  Many newer platforms are being descriptive and make the platform seem more human in dialog.  I'm going to agree that the term "sexy" is not sexist.  In fact, if you look at the [Merriam Webster definition][1] you'll see that it doesn't have to mean anything sexual.
For what it's worth, if you think this is bad, you should read the Linux kernel source... and that's used in countless corporate environment.
[1]:http://www.merriam-webster.com/dictionary/sexy

@djensen47 SJW detected, case #433

I'm a bot and this action was completed automatically
Project based off of https://github.com/atourianski/SJW-detector


"Go to type definition" and other navigations not working

Issue Description
This has going on for years, but I don't see any solution. No solution provided on previous issues makes the navigations work. It simply does not work. Pressing F12, selecting "go to type definition", etc, over a method that is defined in the same folder, always results in "No definition found for 'method name'", unless the method is in the same file.
Steps to Reproduce
-Go to a method call.
-Press F12
Expected Behavior
Should go to the method definition
Actual Behavior
"No definition for for 'method'"
Logs
OmniSharp log
Post the output from Output-->OmniSharp log here
C# log
Post the output from Output-->C# here
Environment information
VSCode version: 1.76.0
C# Extension: 1.25.4
Dotnet Information
.NET SDK:
 Version:   7.0.201
 Commit:    68f2d7e7a3
Runtime Environment:
OS Name:     Windows
OS Version:  10.0.19044
OS Platform: Windows
RID:         win10-x64
Base Path:   C:\Program Files\dotnet\sdk\7.0.201\
Host:
Version:      7.0.3
Architecture: x64
Commit:       0a2bda10e8
.NET SDKs installed:
5.0.103 [C:\Program Files\dotnet\sdk]
7.0.201 [C:\Program Files\dotnet\sdk]
.NET runtimes installed:
Microsoft.AspNetCore.All 2.1.25 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.25 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.25 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.12 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.3 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.3 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Other architectures found:
x86   [C:\Program Files (x86)\dotnet]
registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x86\InstallLocation]
Environment variables:
Not set
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download

Visual Studio Code Extensions

Extension
Author
Version

csharp
ms-dotnettools
1.25.4

vim
vscodevim
1.25.2

vscode-dotnet-runtime
ms-dotnettools
1.6.0

A lot has changed with O# since this issue was opened. If you are still having problems, please open a new issue at https://github.com/omnisharp/omnisharp-roslyn/issues


[TCK Challenge]: ee.jakarta.tck.data.web.validation.Rectangles has two bad methods

Specification
@Delete, spec/src/main/asciidoc/method-query.asciidoc
Assertion
Automatic query methods, QBN findBy...
TCK Version
SNAPSHOT (Locally built)
Implementation being tested
HIbernate
Challenge Scenario
Something else
Full Description
The ee.jakarta.tck.data.web.validation.Rectangles repository interface has what looks to be two invalid methods:
@Repository
public interface Rectangles extends DataRepository<Rectangle, String> {
...
    void deleteAllBy();

    @Size(min = 0, max = 3)
    List<Rectangle> findAllByOrderByIdAsc();
}

Additional Context
The deleteAllBy method is not a QBN method, and its usage in the TCK implies it should be annotated with @Delete to function as an automatic query method that deletes all entities in the repo.
The findAllByOrderByIdAsc method fails to parse as a QBN method because there is no predicate between the By and OrderBy, and the current documented QBN grammar does not allow for an empty predicate. It does not seem like there is an approriate QBN method for the given TCK usage to attempt to return all entities and order them by id. It seems like the correct method would be:
    @Size(min = 0, max = 3)
    @Find
    @OrderBy(value = "id")
    List<Rectangle> findAllByOrderByIdAsc();

Is there an existing challenge for this?

[X] I have searched the existing issues

I wonder if this is just an error in the grammar. Perhaps it was supposed to be:
<query-method> ::= <subject> [<predicate>] [<order-clause>]
<subject> ::= (<action> | "find" <find-expression>) [<ignored-text>] "By"
<action> ::= "find" | "delete" | "update" | "count" | "exists"

I also wonder why the grammar isn't:
<query-method> ::= <subject> [<ignored-text>] <restriction> [<order-clause>]
<subject> ::= <action> | "find" <find-expression>
<restriction> ::= "All" | "By" <predicate>
<action> ::= "find" | "delete" | "update" | "count" | "exists"

Then sensible things like findAllOrderByIdAsc() and deleteAll() would be legal, but insensible things like deleteAllBy(), countBy(), and findAllBy()` would not.

While I'm looking at the grammar, I also wonder why it's necessary to allow ugly things like findByNameOrderByNameAscId.
Wouldn't it be better to simplify this:
<order-clause> ::= "OrderBy" { <order-item> } ( <order-item> | <property> )
<order-item> ::= <property> ("Asc" | "Desc")

To this:
<order-clause> ::= "OrderBy" (<property> | <order-item> {<order-item>})
<order-item> ::= <property> ("Asc" | "Desc")

I also wonder why the grammar isn't:
<query-method> ::= <subject> [<ignored-text>] <restriction> [<order-clause>]
<subject> ::= <action> | "find" <find-expression>
<restriction> ::= "All" | "By" <predicate>
<action> ::= "find" | "delete" | "update" | "count" | "exists"

Oh no, that doesn't work either, since it accepts findFIrst10All().

In https://github.com/jakartaee/data/pull/658 I propose to sort out these things.

To fix the immediate issue with the TCK, I would say these methods should be switched to @Delete and @Find with @OrderBy as Scott suggests (and the methods could be given better names as well). That repository is under the validation package and I'm pretty sure its real intent is to cover interoperability with Jakarta Validation, not to cover Query by Method Name.  It was likely written before we had the grammar and before a lot of other things that went into the spec.
This also brings up some issue with Query by Method Name with respect to finding/deleting all entities, which it looks like Gavin already has a solution in the above pull. We can use that pull for discussion.

Agreed, a lot of what we are finding now is that as the spec has been updated the TCK test have become invalid.
I think we should make sure to work that calculation into our timeline, the more changes we make the the spec the more we break tests in the TCK.
I'd like to see TCK tests updated alongside changes to the spec both for consistancy and also so we can all see examples of how spec updates changes user applications.
I'll go ahead and fix these tests.

I believe that this issue is fixed by #658.


opnode: refactor RPC server / config, prototype batch RPC endpoint (work in progress)

This PR implements the RPC server for batch-submitter.
Changes:

Clean up output submitter test mock, use mocking lib
Move WithdrawalContractAddress to the rollup node chain config, where the other system-critical addresses are defined. This address should never suddenly change, it's not a CLI parameter.
Update e2e test with config changes
Get rid of rpc l2 client bindings that were used in output submitter. Instead introduce a read-only l2 source, and move the l2 logic into the l2 package. Next goal is to unify better with the other l2 client bindings, to de-duplicate the readonly methods with the read/write bindings, and cache things.
Extend l2 client bindings with block ref getters and block getter
Method to convert L2 block to batch

RPC design for batch submitter
Based on discussion with @cfromknecht :
Light-weight batch-submitter, focused on managing its own transactions. The only stateful thing it has is that it remembers the last (not even each individual) block hash of each of the batches it submitted.
We can host the state in some reliable/redundant/fast external database in production, but should have a default for testing that just stores this state locally (literally only a list of recent block hashes, about ~20 KB for a worst-case reorg of 20 min of L2 data that is all sequenced but never submitter/confirmed).
The batch-submitter can then ask the rollup-node for batches, and give any arbitrary list of block-hashes. The first common hash with the canonical L2 chain will be the resumption point (i.e. all L2 blocks with higher block height will be included in the batches). The rollup-node returns an encoded bundle of batches, possibly including compression etc. The result should be built to be smaller than the requested size .
TODOs:

[ ] Fix batch rpc endpoint to respect parameter of desired max size
[ ] More sanity limits
[ ] Testing
[ ] Clean up the L2 source. It should have caching like the new L1 downloader. And unify more of the RPC methods with the engine API source, and type things better (e.g. no string "blockTag")

We can remove the prototype batch-submitter from driver-loop once we integrate the external batch-submitter in the E2E test.
Similarly I think we should integrate the withdrawals process (just like we do deposits), and the output-root submitter.

Codecov Report

Merging #301 (914dcb0) into main (069ea2e) will decrease coverage by 1.55%.
The diff coverage is 14.89%.

@@            Coverage Diff             @@
##             main     #301      +/-   ##
==========================================
- Coverage   55.08%   53.52%   -1.56%
==========================================
  Files          42       42
  Lines        3028     3133     +105
==========================================
+ Hits         1668     1677       +9
- Misses       1181     1276      +95
- Partials      179      180       +1

Impacted Files
Coverage Δ

opnode/flags/flags.go
100.00% <ø> (ø)

opnode/node/config.go
40.00% <ø> (ø)

opnode/rollup/types.go
21.05% <ø> (ø)

opnode/service.go
0.00% <0.00%> (ø)

opnode/l2/util.go
30.30% <6.45%> (ø)

opnode/node/api.go
20.65% <10.52%> (-25.69%)
:arrow_down:

opnode/l2/source.go
40.76% <20.58%> (-7.15%)
:arrow_down:

opnode/node/node.go
72.02% <40.00%> (-1.36%)
:arrow_down:

opnode/node/server.go
75.51% <100.00%> (+14.49%)
: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 069ea2e...914dcb0. Read the comment docs.


Add image as background

I am trying to add an image in the background. Ideally, I would like it to cover the entire webpage, header included.
Does anybody know how to do that?

I second this; for a non-html and non-css programmer like me it seems very difficult to add a background image

Yes I can do that

What background image would you like to add?

I am trying to add an image in the background. Ideally, I would like it to cover the entire webpage, header included. Does anybody know how to do that?

The following method works for me:

Go to /_sass/_reset.scss/
Delete line #10 and add a few other lines:
#10: background-image: url(https://your-url);
#11: background-size: 100%;
#12: background-repeat: no-repeat;
#13: background-attachment: fixed;
#14: background-position: center;

I am trying to add an image in the background. Ideally, I would like it to cover the entire webpage, header included. Does anybody know how to do that?

The following method works for me:

Go to /_sass/_reset.scss/
Delete line L10 and add a few other lines:
L10: background-image: url(https://your-url);
L11: background-size: 100%;
L12: background-repeat: no-repeat;
L13: background-attachment: fixed;
L14: background-position: center;

Thanks for your sharing. The code runs successfully, but my image does not display. I try to figure it out but it still emty. Is there any difference in the setting?


[stable/nginx-ingress] Update stats exporter

Use 'sophos/nginx-vts-exporter' instead of 'quay.io/cy-play/vts-nginx-exporter'
which is based on an outdated fork. The new image is built from the original repo
at https://github.com/hnlq715/nginx-vts-exporter.

/cc @mgoodness

/lgtm


Prevent Emacs from changing "~/.emacs.d/init.el", write changes to "~/.doom.d/config.el" instead

Describe the feature
I noticed that when I activate a disabled command such as scroll-left by hitting
<C-next> followed by y to enable it permanently, Emacs will write the setting (put 'scroll-left 'disabled nil)to ~/.emacs.d/init.el. This generates an error when I run doom upgrade regarding changes to this file that must be discarded. I believe these changes should be automatically written to ~/.doom.d/config.el instead.
doom doctor is unable to detect this issue, maybe it would be a good idea for it to warn about these changes.
System information

((emacs
  (version . "27.0.91")
  (features . "RSVG IMAGEMAGICK GLIB NOTIFY KQUEUE ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS JSON PDUMPER LCMS2 GMP")
  (build . "May 14, 2020")
  (buildopts "--disable-dependency-tracking --disable-silent-rules --enable-locallisppath=/usr/local/share/emacs/site-lisp --infodir=/usr/local/Cellar/emacs-plus/HEAD-747e0a2/share/info/emacs --prefix=/usr/local/Cellar/emacs-plus/HEAD-747e0a2 --with-xml2 --without-dbus --with-gnutls --with-imagemagick --with-json --with-modules --with-rsvg --with-ns --disable-ns-self-contained")
  (windowsys . batch)
  (daemonp . server-running))
 (doom
  (version . "2.0.9")
  (build . "HEAD -> develop 0f3bd5710 2020-06-13 03:03:11 -0400")
  (dir . "~/.doom.d/"))
 (system
  (type . darwin)
  (config . "x86_64-apple-darwin18.7.0")
  (shell . "/usr/local/bin/bash")
  (uname . "Darwin 18.7.0 Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64 x86_64")
  (path "/usr/local/opt/openjdk/bin" "~/.pyenv/shims" "~/.pyenv/bin" "~/.local/bin" "~/.emacs.d/bin" "~/scripts/bin" "~/.nimble/bin" "~/scripts/cline_scripts/" "~/.emacs.d/bin" "/usr/local/opt/sqlite/bin" "/usr/local/bin" "/usr/bin" "/bin" "/usr/sbin" "/sbin" "/Library/TeX/texbin" "/opt/X11/bin" "/Library/Frameworks/Mono.framework/Versions/Current/Commands" "~" "~/.fzf/bin" "/usr/local/Cellar/emacs-plus/HEAD-747e0a2/libexec/emacs/27.0.91/x86_64-apple-darwin18.7.0"))
 (config
  (envfile . envvar-file)
  (elc-files . 0)
  (modules :completion company (ivy +fuzzy +prescient) :ui doom modeline (popup +defaults) treemacs :editor (evil +everywhere) fold multiple-cursors snippets word-wrap :emacs (dired +ranger +icons) electric undo vc :term eshell shell :checkers syntax spell grammar :tools (eval +overlay) (lookup +dictionary +offline) magit pdf :lang emacs-lisp markdown (org +roam) sh :app irc :config (default +bindings +smartparens))
  (packages (nswbuff) (org-pomodoro) (nswbuff) (olivetti) (super-save) (eyebrowse) (elpy) (clipmon) (evil-god-state) (unkillable-scratch) (yafolding) (recursive-narrow) (git-auto-commit-mode) (electric-operator) (evil-swap-keys) (evil-god-state) (evil-smartparens) (eyebrowse) (shut-up) (super-save) (evil-better-visual-line) (apheleia :recipe (:host github :repo "raxod502/apheleia")) (evil-snipe :disable t))
  (unpin "n/a")
  (elpa "n/a")))

As of 1d709e3 this issue should be resolved. Let me know if that isn't the case and I'll reopen it. Thanks for bringing it to my attention!

Thanks! Will doom upgrade pick up thins change already?

Yup!


Document how to work around dynamic linking problems caused by glibc updates

With the recent update to glibc 2.34, a lot of people have been running into problems caused by nixpkgs and their non-NixOS distribution switching glibc version at a different pace (and the problem is probably also possible to run into on NixOS, albeit rarer). I've seen two different class of issues recently:

Missing internal glibc versions (of version GLIBC_PRIVATE): https://github.com/NixOS/nixpkgs/issues/169332
Missing versioned (up to date) public symbols, in this case GLIBC_2.34 when an older version gets loaded by accident: https://github.com/NixOS/nixpkgs/issues/170550#issuecomment-1111002983, https://github.com/NixOS/nixpkgs/issues/169040, https://discourse.nixos.org/t/opening-links-in-brave-from-discord-is-broken-version-glibc-2-34-not-found/18764, https://discourse.nixos.org/t/glibc-2-33-vs-2-34-rust-madness/18909/3, …

Related discussion (on solving the technical problem):

https://discourse.nixos.org/t/could-we-robustly-protect-against-errors-version-glibc-2-33/18343
https://github.com/NixOS/nixpkgs/issues/31189

I think a great help short of solving the problem altogether would be documenting it and how to work around it in a central place, i.e. the nixpkgs manual. Then it becomes easier to link to an answer to the recurring question. I lack the time and precise understanding of the problem at the moment, so it'd be great if someone could pick this up!
I think most important is to document the causes and how to diagnose / guess the appropriate one: Usually this issue is caused by the use of something impure (e.g. OpenGL drivers, compiled artifacts in some build directory, ...) that assume the wrong kind of ABI compatibility.

"Yes, glibc has great ABI compatibility, but only one way. ". If that's the case then why is it so hard to persuade unstable nixos that maybe it should be using the latest version.
export LD_PRELOAD=/nix/store/jd21wzn6z4sw68gpk01xj33l2j4rzbjy-glibc-2.34-115/lib/libc.so.6
I am randomly preloading things that look sorta like libc in the hope that one of them migh have the right kind of elf header. We shouldn't fall in a heap when libc gets upgraded. home-manager won't even downgrade. If anyone knows what magic I should be pasting where it would be much appreciated.

Very likely cause of #167735 too.

@gilescope As I understand, people want to avoid export LD_PRELOAD to strengthen purity, for instance if the software is newer than the host and needs a recent glibc to work, or a fixed glibc to avoid bugs coming from different versions. As you say, this comes at the high price of having issues when the distribution is newer than the installed packages, as the drivers will require a GLIBC that is too recent compared to the one hardcoded in the old sofware, leading to the GLIBC_PRIVATE error. In my opinion, I'd say that more errors comes from this last case, and I'd be in favor of changing the way nix works.
I don't know much of the internals of glibc, but I can imagine a generic solution that combines the best of both world (runnable on newer systems, and purity when running on older systems): if we wrap all packages, we could check in the wrapper the GLIBC version used by the drivers of the system. If the version is newer than the GLIBC used by the current system, then we export LD_PRELOAD, and if it is older or equal, then we do nothing more. Note that this comes at the price of wrapping all executables, but I don't see any other solution and I'm not skilled enough to understand the solution provided in https://github.com/NixOS/nixpkgs/issues/31189 and I have no idea if this works with libwayland-client.

@sternenseemann Is the fix for this just to randomly try LD_PRELOAD?

No, ideally you just update the impure stuff on your system to line up with whatever nixpkgs provides at the moment. Preloading the right version for a specific binary (not globbaly) can be a good workaround if that's not attainable.

Right now on 22.05:
$ /nix/store/c1gvl27x3jnzc1z842r24xj37b7rlraw-nixos-system-virtualbox-21.05.4678.932ec35ff8a/bin/switch-to-configuration switch
Can't load '/nix/store/s6rwwwgyh7lyay0l1j33p7ai9l8w6q89-perl-5.32.1-env/lib/perl5/site_perl/5.32.1/x86_64-linux-thread-multi/auto/Net/DBus/DBus.so' for module Net::DBus: /nix/store/jsp3h3wpzc842j0rz61m5ly71ak6qgdn-glibc-2.32-54/lib/libc.so.6: version `GLIBC_2.34' not found (required by /nix/store/jl1b87dsbdy1xai0sjfqpmp4fhgy8dv8-xz-5.2.5/lib/liblzma.so.5) at /nix/store/wmpankr1aiwv9qd2533fav779yrcicry-perl-5.32.1/lib/perl5/5.32.1/XSLoader.pm line 93

An attempt to solve this: https://github.com/NixOS/nixpkgs/pull/177788

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/buildfhsuserenv-creates-a-small-root-directory/31220/1

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/help-understanding-the-libgl-abi-problem-and-possible-solutions/42022/1


help : how to give props to page from layout using Outlet component

Hi,
Thank you for your package that is very usefull and simple to use.
I need to give props from layout to generated page (using ).
I tried to give like usually  and from my page, use this props : export default function MyPage({props}) or export default function MyPage(props) but it is always undefined or empty.
Am I missing something ?
My final purpose is to change a layout content (header) depending of the generated page, so I want to pass the useState discard function using props.
Thank you for your help

Sorry, you can delete this issue, I found by myself using the useOutletContext hook from react-dom-router.

Hey @bcallar, thanks your comment.
Thanks for sharing your findings, I wasn't aware of the useOutletContext hook.


Request for More Examples of Usage

The learning curve of this project could be greatly lowered if there were examples to follow along in the documentation, specially for usage of the different plugins.
For now, I'm better understanding the value of each one by manually installing, adding, generating and viewing the output, which is a tedious and cumbersome task.
I suggest more examples of usage overall, specially for each individual plugin.
I'll be happy to add examples once I tame what exactly each one can do (I'm loving this project but learned about it only 2 days ago :P)

That "tedious and cumbersome task" sounds like a great PR. Share the wealth!

We updated the website with more docs, examples, live demo and getting started sections. cli also has init command that should help.
Closing :)


Consolidate build tooling

We currently have a wide mix of these, and we should probably consolidate:

parcel, rollup, vite
tsup, tsc, esbuild
ts-node, tsx

If we're able to get rid of parcel in network package, we should remove engines from package.json (it's only there to fix parcel build issues).

Context from discord:

Vite
Pro - 1 tool that can build everything
Pro - Doubles as a test config don't need to configure babel or anything like with jest
Pro - Should have less hacky than otherwise ways of configuring dev builds to work with hot reloading
Con - Bit of overkill
Tsup
Pro - Really fast even for prod build since it uses esbuild instead of rollup
Pro - Really simple to configure
Pro - Definitely much simpler tool than vite
Con - You are forced to use different tool once you need to bundle an actual website or non typescript or struggle configuring it with tsup
Tsc
Pro - It's typescript it's kinda the most obvious tool to use
Pro - Simplist to configure (sometimes)
Con - less forgiving than using esbuild
Con - slow
Con - boring
Parcel
con - meh
Rollup
Pro - most well documented build tool in js ecosystem
Pro - Plugin for everything
Pro - one build tool can do everything
Con - vite is basically a better version of rollup

Based on this I think we should try to consolidate to use vite everywhere

vite -> tsup happened in https://github.com/latticexyz/mud/pull/660
just need to do parcel/rollup ones now!


Epics 1 and 2 UI tested

This PR now has epics 1 and 2 with the exception of user story 2.4, all of which are now tested via the e2e tests. Comments have been added to detail where each test has came from along with what each test is doing in verbal terms rather then having the dev attempt to figure out what the test is doing during run time.
It should be noted that the original e2e script was used and that the current testlint.py requires a modification to be run. This is already fixed within the performance testing branch

Codecov Report

Merging #210 (f08762b) into master (ab1100f) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #210   +/-   ##
=======================================
  Coverage   93.31%   93.31%
=======================================
  Files          35       35
  Lines         942      942
=======================================
  Hits          879      879
  Misses         63       63

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 ab1100f...f08762b. Read the comment docs.

Codecov Report

Merging #210 (f08762b) into master (ab1100f) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #210   +/-   ##
=======================================
  Coverage   93.31%   93.31%
=======================================
  Files          35       35
  Lines         942      942
=======================================
  Hits          879      879
  Misses         63       63

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 ab1100f...f08762b. Read the comment docs.


publish<EMAIL_ADDRESS>

Requested by: @ceorourke
Merge target: (default)
Quick links:

View changes
View check runs

Assign the accepted label to this issue to approve the release.
Leave the #retract comment under this issue to retract the release (original issuer only).
Targets

[ ] github
[ ] pypi
[ ] sentry-pypi

Targets marked with a checkbox have already been executed.  Administrators can manually tick a checkbox to force craft to skip it.

@ceorourke can you retract this?

#retract


Rename elevation/azimuth to tx/rx in SonarRanges.msg

As discussed in #9, the SonarRanges.msg is designed to accommodate instruments used for ship-based mapping, where the difference in position between transmit and receive times is significant. For these instruments, tx/rx is the right nomenclature.

Resolved.
SonarRanges.msg has a unit vector describing the return's location; SonarDetections.msg uses tx/rx angels.


crypto.getRandomValues is incorrectly typed using a union type

TypeScript Version:  3.0.0-dev.201xxxxx

Search Terms:
getRandomValues crypto.getRandomValues
Code
function test(): Uint8Array {
    return crypto.getRandomValues(new Uint8Array(16));
}

Expected behavior:
No error
Actual behavior:
Type 'Uint8Array | Int8Array | Int16Array | Int32Array | Uint16Array | Uint32Array | Uint8ClampedArray ...' is not assignable to type 'Uint8Array'.
  Type 'Int8Array' is not assignable to type 'Uint8Array'.
    Types of property '[Symbol.toStringTag]' are incompatible.
      Type '"Int8Array"' is not assignable to type '"UInt8Array"'.

Playground Link:
https://www.typescriptlang.org/play/#src=function test()%3A Uint8Array {
    return crypto.getRandomValues(new Uint8Array(16))%3B%0D%0A%7D
Related Issues:
I found this one: https://github.com/Microsoft/TypeScript/issues/17610
However, while it does appear to suggest this issue shouldn't happen, I am able to reproduce this

Duplicate of https://github.com/Microsoft/TypeScript/issues/23646. should be fixed in typesript@next

man, github search really let me down here, I did a search of this and did not find that issue.


v4 alpha3 Bootstrap generates error "Cannot find module 'Bootstrap'"

It looks like alpha3 of bootstrap in NPM comes precompiled and doesn't work the way alpha 2 did. There is no 'Bootstrap' exported module. (?)

I'm hoping the package authors pick this up. I'm not seeing an alpha3 repo that structures the files the same was as alpha2 did. It would require changing how the add-on includes bootstrap and I'm not comfortable doing that.

ok any eta or short-term solution? should I include bootstrap a different way? this is now blocking my client app!

Are you needing alpha3? If not, change your package.json to read the alpha2 version like this:
"bootstrap": "4.0.0-alpha.2",

and you should be fine.

Hey guys, I'd take a look a kaermorchen's ember bootstrap 4 instead of this one. I'm built this add-on for a toy app I was building and haven't touched it since. Kaermorchen's looks more up to date. Hopefully that'll solve your problems!
https://github.com/kaermorchen/ember-cli-bootstrap-4

Found the quick/patch fix. Change the main path within this file "node_modules/bootstrap/package.json" from
"main": "./dist/js/npm"
to
"main": "dist/js/bootstrap"

@rudymacias submit pr?

I pinned the alpha 2 version of bootstrap to the latest release of ember-bootstrap-4 (0.1.1). I think this should fix the issue.
@rudymacias @csprocket777 @ignotus0001 @erichonkanen

My package.json dependency is just like this. "ember-bootstrap-4": "0.1.1",
There is no "bootstrap": "4.0.0-alpha.2",
How to change to v4 alpha3?

@bennycwong  With alpha 4 the issue is solved, so you can unpin the alpha 2 version. Everything works just fine with the alpha 4 version.

@juliankmazo This has been updated. Please give it a try.


SwiftPM manifest file

Hello,
is it possible to add a package description file for Swift Package Manager?
I've done something similar:
// swift-tools-version:5.1

import PackageDescription

let package = Package(
    name: "TrueTime",
    products: [
        .library(
            name: "TrueTime-iOS",
            targets: ["TrueTime-iOS"]
        ),
        .library(
            name: "TrueTime-Mac",
            targets: ["TrueTime-Mac"]
        ),
        .library(
            name: "TrueTime-tvOS",
            targets: ["TrueTime-tvOS"]
        )
    ],
    dependencies: [
        // .package(url: /* package url */, from: "1.0.0"),
    ],
    targets: [
        .target(
            name: "TrueTime-iOS",
            dependencies: [],
            path: "Sources"
        ),
        .target(
            name: "TrueTime-Mac",
            dependencies: [],
            path: "Sources"
        ),
        .target(
            name: "TrueTime-tvOS",
            dependencies: [],
            path: "Sources"
        )
    ]
)

but it's only the first step since there are also the C files to put into an include directory where Xcode can find them.
Is there any plan to support this?

+1 I'd like to use TrueTime.swift in a package I'm working on, and I need SPM support as well.

bump +1

I have package manager support on my fork https://github.com/jay18001/TrueTime.swift/

Is there any reason why there is no Swift PM support yet?

@jay18001 I couldn't get your fork to work.
I get the error:
"https://github.com/jay18001/TrueTime.swift/ has no Package.swift manifest for version 5.1.0"

Hi @nobinajohan,
You have to use use the commit hash -> 80f4900a6d369f71da204b752cd16a637d7b7ecc.

@jay18001 Please can you tag your commit and create stable version since to use it as dependency in published package it needs to be have stable version.

@jay18001 Please can you tag your commit and create stable version since to use it as dependency in published package it needs to be have stable version. Check this comment: https://forums.swift.org/t/dependencies-could-not-be-resolved-because-package-yeelampa-is-required-using-a-stable-version-but-yeelampa-depends-on-an-unstable-version-package-requester-and-root-depends-on-yeelampa-0-1-0/53840/2

Created tag in my fork for this use: https://github.com/pragnesh-is/TrueTime.swift/tree/5.2.0


When will the next release be?

Hi,
How soon do you think it will be until the next release? In particular, I'm looking forward to a release with the fixes for issue #222 ... I'd rather install a release than a specific commit or latest master.
Thank you!

As soon as #240 is ready

I just released version 2.3.3


General user view for an external resource (i.e. Elderberry)

http://mlibrary.github.io/elderberry/press/book/item/external.html


Text synthesis using markov chains

Implementing a method generating text using markov chains. Might not yield the best results but who knows

Beta version implemented, needs quite a lot of tuning but works


Official Gradle Wrapper Validation Action

See: https://github.com/gradle/wrapper-validation-action
As this project uses Android project with Gradle Wrapper – adding a validation action may prevent malicious tamper attempts on it.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Duplicate array key.

Issue description:
Hello.
I have found a duplicate key in the array. Is it a mistake?
Version used:
3.0.33
Code to reproduce the issue (config + field(s))

Was fixed on develop in #1954


*: correct io type for raft engine write and purge

What is changed and how it works?
Issue Number: Ref #14462
What's Changed:
so background purge can be rate limited.

Check List
Tests

Unit test
Integration test

Release note
None

Before:

After:

With configuration:
rocksdb.rate-bytes-per-sec: 0B
storage.io-rate-limit.level-zero-compaction-priority: low
storage.io-rate-limit.max-bytes-per-sec: 500MiB

/merge


多选模式下禁用项仍可通过勾选父级被默认勾选

[ ] I'm sure this does not appear in the issue list of the repository

Basic Info

Package Name And Version<EMAIL_ADDRESS>Browser: chrome<IP_ADDRESS>

What is expected?
a-cascader多选模式下即使勾选父级  禁用项仍然保持不被勾选的状态

重复：close #1715


[Feature Request] "push" style server monitoring

Thx for nice project.
Some of my servers don't have public routable address, and on servers with have public ip it's tiresome to config firewall on each one.
It would be nice if hub can listen on a http port and receive "push" from agent.

This is on the radar for the future but not something I'm jumping into immediately.
The setup I think would have you specify user / pass on the agent then send data using the REST API. Password auth would need to be enabled.
For those having trouble with the current setup, it may be possible to connect using services like Cloudflare tunnel, WireGuard, or Tailscale.

The setup I think would have you specify user / pass on the agent then send data using the REST API. Password auth would need to be enabled.

Maybe different token for each client instead of user/pass will be more secure.

Someone started a discussion on this, so I'm going to move conversation on this topic over there.
See #51


Feature/adds development container

This PR adds config and scripts for a devcontainer running on the rust/bullseye variant. The WASI-SDK and Spin versions used at build time, can be modified by changing args passed to Dockerfile in devcontainer.json.
Compilation of cPython and spin-python-sdk are performed in a post creation command script since they rely on the repository being available (not the case during build time when using on GitHub codespaces)
I've tested it successfully as is on both GitHub Codespaces, and on an x86 linux host, but it could probably use a little more testing in other configs, ie: on windows, or maybe with different versions of wasi-sdk / spin version, though I don't know the currently compatibility story there, so maybe not relevant.
Known issues:

Doesn't currently work on newer (m1, m2) MacOS hosts due to glibc2 issues with spin installer on aarch64 bullseye. (believe related to spin/168 and similar to bartholomew/150
Based on previous experience locally, I also expect to have trouble with compiling cPython on newer MacOS hosts as well once past the spin installer

Opening up draft PR to facilitate discussion and collect feedback on experience, or thoughts on improvements to the config, extensions, included python tooling etc.

It seems there's an issue with trying to switch the variant to buster. When you do so, the spin install script fails for a missing version of glibc (See output below). Looks to be related to https://github.com/fermyon/spin/issues/168 and https://github.com/fermyon/bartholomew/issues/150 as well, not necessarily an issue with the python sdk or the devcontainer, other than maybe don't use buster.
reproducible by building the devcontainer manually:
docker build --build-arg VARIANT=buster .devcontainer/.
Step 10/10 : RUN cd /tmp     && curl -fsSL https://developer.fermyon.com/downloads/install.sh | bash -s -- -v $SPIN_VERSION     && sudo mv spin /usr/local/bin/     && cd -
 ---> Running in 54c0fee46bb9
Step 1: Downloading: https://github.com/fermyon/spin/releases/download/canary/spin-canary-linux-amd64.tar.gz
Done...

Step 2: Decompressing: spin-canary-linux-amd64.tar.gz
crt.pem
spin.sig
README.md
LICENSE
spin
./spin: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./spin)
./spin: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.29' not found (required by ./spin)
The command '/bin/sh -c cd /tmp     && curl -fsSL https://developer.fermyon.com/downloads/install.sh | bash -s -- -v $SPIN_VERSION     && sudo mv spin /usr/local/bin/     && cd -' returned a non-zero code: 1

Does installing the build dependencies, like described here: https://developer.fermyon.com/spin/install#building-spin-from-source help?

I hadn't tried it, but I suspect it probably would since it should link against the correct glibc. Wasn't sure of the best way to go on it. Since it's being used for development, my initial thought was to just duplicate the environment that the main spin repo is build in, to keep things the same. Though, it wouldn't be linked, so there's just a much a chance of getting out of sync, so maybe building from scratch based on the selected variant and spin version. 🤔

hmm...I had thought I responded to that last question already, I guess not. Long story short, switching to building spin from source didn't fix the issue, I started running into the same glibc error messages from the wasi sdk as well. After taking another look at the intent of a devcontainer, to get a dev environment with dependencies up and running quickly and reproducibly, I'm going to limit the devcontainer install/build to the prerequisite installed dependencies listed in the README and get a user right up to the point where they can run the build scripts (build-python.sh and make) to match the instructions in the README, rather automating the full build when the container starts up. I think this will work better with future changes that will require changes to the build system, cpython versions etc.

Alright, I think I have it in a good place. Tested it on Ubuntu, Ubuntu in WSL , and on Github Codespaces by pulling the repo from scratch, building the devcontainer in vscode and then following the instructions in the readme to build the plugin, then test it with the example hello world app. I made an update to the readme about needing to do a git submodule update before trying to run the build-python.sh.

Thanks @jasonwashburn. One last thing is to to make sure your commits are signed before we can merge them.

I'm sure you guys are busy, just checking back to make sure there's not something additional you'd like to me to do with this?

Sorry about that @jasonwashburn, I'm not sure what happened there!  I've merged it now - thanks for putting this together!


 This seems wrong, as there is no connection from "embryonic/larval fat body" to "embryonic fat body". So if I search for example for "embryonic/larval fat body AND ancestors" I don't get "embryonic fat body".   (In general, I think there are still a lot of issues in places with the whole 'embryonic' vs. 'embryonic/larval' thing.

This issue is resolved by #1141


Update int_all_graph_resources.sql

This is a:

[x ] bug fix PR with no breaking changes
[ ] new functionality

Link to Issue
Closes #302
Description & motivation
Before the script was identifying a model's type by finding the latest position a model type's folder name appears in the model's directory path. Now the folder name has been concatenated with a '/' before meaning the search is for a key directory not the just the key word.
Integration Test Screenshot

Checklist

[ ] I have verified that these changes work locally on the following warehouses (Note: it's okay if you do not have access to all warehouses, this helps us understand what has been covered)

[ ] BigQuery
[ ] Postgres
[ ] Redshift
[ ] Snowflake
[ ] Databricks
[ ] DuckDB

[ ] I have updated the README.md (if applicable)
[ ] I have added tests & descriptions to my models (and macros if applicable)

@b-per replaced concat with dbt.concat and introduced get_directory_pattern() as requested. Has some issues as get_directory_pattern() wasn't returning the delimiter as a string once the code was compiled so the only work around I found is using "'" + get_directory_pattern() + "'".

Thanks @DVDylanRoe and sorry for the delay. We are going to release a new version of the repo soon and we will take this change in account.

Moving it to #317


JSON gem 1.6.2 binaries?

Attempting to build a windows binary and I am receiving this notification that is breaking the rake process
Gem json is binary, but 1.6.2 does not have a published binary
Before I dug any deeper into it I wanted to check with you because you've probably already came across this and have a fix.
Thanks!

Ah, actually user-error on this one :) addamh was moving and running the 57k .exe when the whole generated folder was needed. Oops! I'll improve the docs on this and there is a fix for not using Bundler slated for next release.


the version of capybara we test against prints a backtrace at rspec start time

https://travis-ci.org/rspec/rspec-support/jobs/85119467
$ ruby --version
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
$ cd rspec-dev/repos/rspec-rails
$ bundle exec rspec
/Users/me/Projects/rspec-dev/repos/rspec-rails/spec/spec_helper.rb:4: warning: method redefined; discarding old configuration=
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bin/rspec:23:in  `<main>'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bin/rspec:23:in  `load'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/exe/rspec:4:in  `<top (required)>'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/runner.rb:41:in  `invoke'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/runner.rb:73:in  `run'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/runner.rb:88:in  `run'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/runner.rb:101:in  `setup'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/configuration_options.rb:21:in  `configure'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/configuration_options.rb:108:in  `process_options_into'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/configuration_options.rb:108:in  `each'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/configuration_options.rb:109:in  `block in process_options_into'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/configuration.rb:1273:in  `requires='
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/configuration.rb:1273:in  `each'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/configuration.rb:1273:in  `block in requires='
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/configuration.rb:1273:in  `require'
    from /Users/me/Projects/rspec-dev/repos/rspec-rails/spec/spec_helper.rb:15:in  `<top (required)>'
    from /Users/me/Projects/rspec-dev/repos/rspec-rails/spec/spec_helper.rb:15:in  `require'
    from /Users/me/Projects/rspec-dev/repos/rspec-rails/lib/rspec/rails.rb:13:in  `<top (required)>'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:214:in  `load_dependency'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `block in require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
    from /Users/me/Projects/rspec-dev/repos/rspec-rails/lib/rspec/rails/vendor/capybara.rb:2:in  `<top (required)>'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:214:in  `load_dependency'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `block in require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/capybara-2.2.1/lib/capybara/rspec.rb:1:in  `<top (required)>'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:214:in  `load_dependency'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `block in require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/capybara-2.2.1/lib/capybara.rb:5:in  `<top (required)>'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/capybara-2.2.1/lib/capybara.rb:318:in  `<module:Capybara>'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:214:in  `load_dependency'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `block in require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/capybara-2.2.1/lib/capybara/dsl.rb:1:in  `<top (required)>'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:214:in  `load_dependency'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `block in require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
/Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/dsl.rb:82: warning: previous definition of feature was here
/Users/me/Projects/rspec-dev/repos/rspec-expectations/lib/rspec/matchers/dsl.rb:9: warning: method redefined; discarding old exist
/Users/me/Projects/rspec-dev/repos/rspec-expectations/lib/rspec/matchers.rb:600: warning: previous definition of exist was here
/Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/memoized_helpers.rb:288: warning: method redefined; discarding old subject
/Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/memoized_helpers.rb:295: warning: method redefined; discarding old subject
/Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/memoized_helpers.rb:295: warning: previous definition of subject was here
/Users/me/Projects/rspec-dev/repos/rspec-rails/spec/generators/rspec/install/install_generator_spec.rb:30: warning: method redefined; discarding old use_transactional_fixtures
/Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/memoized_helpers.rb:288: warning: method redefined; discarding old subject
/Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/memoized_helpers.rb:295: warning: method redefined; discarding old subject
/Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/memoized_helpers.rb:295: warning: previous definition of subject was here
Run options: include {:focus=>true}

Even if I remove these lines, the backtrace is still shown:
$ bundle exec rspec
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bin/rspec:23:in  `<main>'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bin/rspec:23:in  `load'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/exe/rspec:4:in  `<top (required)>'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/runner.rb:41:in  `invoke'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/runner.rb:73:in  `run'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/runner.rb:88:in  `run'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/runner.rb:101:in  `setup'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/configuration_options.rb:21:in  `configure'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/configuration_options.rb:108:in  `process_options_into'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/configuration_options.rb:108:in  `each'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/configuration_options.rb:109:in  `block in process_options_into'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/configuration.rb:1273:in  `requires='
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/configuration.rb:1273:in  `each'
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/configuration.rb:1273:in  `block in requires='
    from /Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/configuration.rb:1273:in  `require'
    from /Users/me/Projects/rspec-dev/repos/rspec-rails/spec/spec_helper.rb:11:in  `<top (required)>'
    from /Users/me/Projects/rspec-dev/repos/rspec-rails/spec/spec_helper.rb:11:in  `require'
    from /Users/me/Projects/rspec-dev/repos/rspec-rails/lib/rspec/rails.rb:13:in  `<top (required)>'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:214:in  `load_dependency'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `block in require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
    from /Users/me/Projects/rspec-dev/repos/rspec-rails/lib/rspec/rails/vendor/capybara.rb:2:in  `<top (required)>'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:214:in  `load_dependency'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `block in require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/capybara-2.2.1/lib/capybara/rspec.rb:1:in  `<top (required)>'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:214:in  `load_dependency'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `block in require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/capybara-2.2.1/lib/capybara.rb:5:in  `<top (required)>'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/capybara-2.2.1/lib/capybara.rb:318:in  `<module:Capybara>'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:214:in  `load_dependency'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `block in require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/capybara-2.2.1/lib/capybara/dsl.rb:1:in  `<top (required)>'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:214:in  `load_dependency'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `block in require'
    from /Users/me/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:229:in  `require'
/Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/dsl.rb:82: warning: previous definition of feature was here
/Users/me/Projects/rspec-dev/repos/rspec-expectations/lib/rspec/matchers/dsl.rb:9: warning: method redefined; discarding old exist
/Users/me/Projects/rspec-dev/repos/rspec-expectations/lib/rspec/matchers.rb:600: warning: previous definition of exist was here
/Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/memoized_helpers.rb:288: warning: method redefined; discarding old subject
/Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/memoized_helpers.rb:295: warning: method redefined; discarding old subject
/Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/memoized_helpers.rb:295: warning: previous definition of subject was here
/Users/me/Projects/rspec-dev/repos/rspec-rails/spec/generators/rspec/install/install_generator_spec.rb:30: warning: method redefined; discarding old use_transactional_fixtures
/Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/memoized_helpers.rb:288: warning: method redefined; discarding old subject
/Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/memoized_helpers.rb:295: warning: method redefined; discarding old subject
/Users/me/Projects/rspec-dev/repos/rspec-core/lib/rspec/core/memoized_helpers.rb:295: warning: previous definition of subject was here
Run options: include {:focus=>true}

They look like Rails warnings to me?

This is a circular require warning in capybara. I fixed it there: https://github.com/jnicklas/capybara/pull/1622
I have no idea why the first line of the backtrace (the important one) is removed. Maybe somewhere set_backtrace is being called and the first line removed for some reason.

@deivid-rodriguez we're still experiencing this. Do you know how we might fix it?

@samphippen It should disappear if you use capybara 2.6.0 or greater. But I remember something about you testing against the oldest capybara version you support. So not really sure...

@deivid-rodriguez yeah, we're pinned at 2.2.1, so unless we can get the patch backported and released in to the 2.2.x series, there's nothing we can do here.
@yujinakayama WDYT about closing this?

@samphippen Maybe you can get that release out, asking is free :)

This is one to fix in 4.0 by bumping our minimum version of capybara right now IMO.

Wondering if this is still the case. I have personally never experienced this.

It seems a stale issue. I think we should close it.

We have a relaxed constraint now, I'm closing this.


FINERACT-1431:ClientIdentifierPassportCountries

Description
Describe the changes made and why they were made.
Ignore if these details are present on the associated Apache Fineract JIRA ticket.
Checklist
Please make sure these boxes are checked before submitting your pull request - thanks!

[ ] Write the commit message as per https://github.com/apache/fineract/#pull-requests

[ ] Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.

[ ] Create/update unit or integration tests for verifying the changes made.

[ ] Follow coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions.

[ ] Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/api-docs/apiLive.htm with details of any API changes

[ ] Submission is not a "code dump".  (Large changes can be made "in repository" via a branch.  Ask on the developer mailing list for guidance, if required.)

FYI our guidelines for code reviews are at https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide.

@francisguchie I commented a couple of things that need to be addressed first. Hope that makes sense.

@galovics
excuse my omissions please - let me work with @rrpawar96  to get this solved

@rrpawar96 have you managed to look at what we discussed ?

@francisguchie, @galovics  Apologies for the late.
@galovics, Comments have been addressed and now the properties of countries are getting loaded while booting.
I have done a small twist I have removed the country code from database and providing the country code and country name to user from properties file itself.
So it goes like this:

when the user fetches the country list from code value API, it provides countries list (along with country code) from properties file (getCountriesList() function- loaded in startup)
when the user selects country and saves in the identifier, country-code gets saved. and when the user fetches this identifier, the country-code gets translated to country name. (translateCountryList() function - loaded in startup)
So only country which is saved in identifier is getting translated instead of translating whole country list (which would have been required in step (1) but now its not,  and loading the properties file and the translation at startup time.
Let me know, if it is ok with this way.

@rrpawar96
we are going to redo this PR is this ok with you?

Hi @francisguchie, and @galovics, The comments have been addressed, Please re-review.

@rrpawar96
The functional tests are ok for - I hope @galovics  can recheck code soon

@rrpawar96
there are conflicts on this branch

@rrpawar96 .. I see the great work you are doing here. Please just fix the merge conflicts and am sure @galovics will be glad to merge this one... So close.

@rrpawar96 ... might seem like a minor thing, but let's be consistent with the PR titles... here the title should be:
FINERACT-1431: Country Drop down for Passport - identities

This ensures that things are properly matched in Jira (aka that this PR is linked to the Jira ticket).... and it's also nicer to read. The camel case thing here is hard to grok if you read the git logs... and using spaces (after the colon) is not forbidden; please keep in mind that someone needs to read this.

@rrpawar96 ... might seem like a minor thing, but let's be consistent with the PR titles... here the title should be:
FINERACT-1431: Country Drop down for Passport - identities

This ensures that things are properly matched in Jira (aka that this PR is linked to the Jira ticket).... and it's also nicer to read. The camel case thing here is hard to grok if you read the git logs... and using spaces (after the colon) is not forbidden; please keep in mind that someone needs to read this.

Comment has been addressed @vidakovic

Hope it is ready now to get merged @vidakovic @galovics

@rrpawar96  @galovics I like the progress thank you very much

@galovics  @awasum  kindly advise what is left to be done on this PR

@rrpawar96  this branch has Conflicts please address them

@rrpawar96 , @francisguchie , Please add unit or integration test and address the merge conflicts so this can be merged. I know it has taken long but we almost there.

@rrpawar96  i am available for any input i will share what i have so we can be fast on this


fix github pull request template comment typo

just fix this particular template comment mark, :)
cc @sijie

@sijie thanks, i'm new here, how would i do to trigger this PR to be merged, or nothing need, :)

you can use " retest this please " to trigger all the three jenkins jobs.

run java8 tests

run java8 tests

@sijie seems the UT is a bit unstable :), and many sleep-wait that waste much time. run java8 tests again.

@yittg yes tests are flaky especial the ASF jenkins server is in a shared environment where there are many variants.

// "Couldn?t find any executable in /home/jenkins/tools/maven/apache-maven-3.5.0"
run java8 tests


Not working if UAE PASS app installed on same device

Not working if UAE PASS app installed on same device

@MdFarhanRaja you need to check deep linking part in your code


Feature: Add bridge for crashlytics crash method

For testing purposes having access to crashlytic's crash method (Crashlytics.getInstance().crash(); on Android, [[Crashlytics sharedInstance] crash]; for iOS) (look: https://firebase.google.com/docs/crashlytics/force-a-crash) would help testing the Crashlytic integration.

this is the only issue holding me from using this plugin....
Any plans to add?

I'd like to have this feature as well.
I was testing it and I can crash it on Android and receive the report however I am not receiving reports on iOS, I've crashed the App a few times but no report at all.
Thoughts?
tkx

v2 has https://github.com/chemerisuk/cordova-plugin-firebase-crash#logerrormessage


engine/schema: force index in user_vm_view to speed up instance listing

The user_vm_view can end up not picking the right index to join against the user_ip_address table causing full table scan on the user_ip_address table. This could be related to a MySQL bug
https://bugs.mysql.com/bug.php?id=41220
In a test environment with 20k shared networks and over 20M IPs, the listVirtualMachines API was found to take over 17s to return list of just 10 VMs. However, with this fix it would now take under 200ms to return the list. (MySQL Server: 8.0.36)
MySQL slow query logging showed ~nearly 20M table scans of the IP address table:
# User@Host: cloud[cloud] @ localhost [<IP_ADDRESS>]  Id:    39
# Query_time: 8.227541  Lock_time: 0.000014 Rows_sent: 12  Rows_examined: 19,667,235
SET timestamp=1715410270;
SELECT user_vm_view.id, user_vm_view.name /*snipped*/ FROM user_vm_view
WHERE user_vm_view.id IN (4,6,7,8,9,10,11,12,13,14,15,16);

Visual explain:

This may not be worse than what it already is, I'm open to more ideas and suggestions.
Addresses #7910
Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[x] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)
[ ] build/CI

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[x] Major
[ ] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[x] Major
[ ] Minor
[ ] Trivial

@blueorangutan package

@rohityadavcloud a [SL] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: ✔ el7 ✔ el8 ✔ el9 ✔ debian ✔ suse15. SL-JID 9841

@blueorangutan test

@rohityadavcloud a [SL] Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

[SF] Trillian test result (tid-10407)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 42731 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr9198-t10407-kvm-centos7.zip
Smoke tests completed. 131 look OK, 0 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test
Result
Time (s)
Test File

cc @NuxRo - if you have any insights from a production env (user/customer)? Thanks.

Tested this on a 4.18 and 4.19 env; with large number of simulator hosts and networks in one env; and in case of my KVM-based homelab with MySQL 8.0.36 on Ubuntu 22.04.
Before the change:
explain analyze select * from user_vm_view where id in (1,2,3,4,5);
...
| -> Nested loop left join  (cost=75824 rows=305) (actual time=0.149..0.2 rows=2 loops=1)
    -> Nested loop left join  (cost=50766 rows=297) (actual time=0.146..0.195 rows=2 loops=1)
        -> Nested loop left join  (cost=26363 rows=289) (actual time=0.145..0.192 rows=2 loops=1)
            -> Nested loop left join  (cost=2597 rows=281) (actual time=0.142..0.188 rows=2 loops=1)
                -> Left hash join (autoscale_vmgroup_vm_map.instance_id = vm_instance.id)  (cost=2569 rows=281) (actual time=0.141..0.187 rows=2 loops=1)
                    -> Nested loop left join  (cost=2243 rows=281) (actual time=0.13..0.175 rows=2 loops=1)
                        -> Left hash join (affinity_group_vm_map.instance_id = vm_instance.id)  (cost=2215 rows=281) (actual time=0.129..0.174 rows=2 loops=1)
                            -> Nested loop left join  (cost=8670 rows=281) (actual time=0.125..0.169 rows=2 loops=1)
                                -> Left hash join (resource_tags.resource_id = vm_instance.id)  (cost=1607 rows=214) (actual time=0.116..0.155 rows=2 loops=1)
                                    -> Nested loop left join  (cost=17858 rows=214) (actual time=0.108..0.147 rows=2 loops=1)
                                        -> Nested loop left join  (cost=285 rows=208) (actual time=0.102..0.136 rows=2 loops=1)
                                            -> Nested loop left join  (cost=8.34 rows=0.00322) (actual time=0.0978..0.13 rows=2 loops=1)
                                                -> Nested loop left join  (cost=8.32 rows=0.00322) (actual time=0.0966..0.128 rows=2 loops=1)
                                                    -> Nested loop left join  (cost=8.31 rows=0.00322) (actual time=0.0928..0.124 rows=2 loops=1)
                                                        -> Nested loop left join  (cost=8.1 rows=0.0022) (actual time=0.0854..0.109 rows=2 loops=1)
                                                            -> Nested loop left join  (cost=8.08 rows=0.0022) (actual time=0.0847..0.108 rows=2 loops=1)
                                                                -> Nested loop left join  (cost=8.07 rows=0.0022) (actual time=0.084..0.107 rows=2 loops=1)
                                                                    -> Nested loop left join  (cost=7.85 rows=0.0022) (actual time=0.0823..0.104 rows=2 loops=1)
                                                                        -> Nested loop left join  (cost=7.83 rows=0.0022) (actual time=0.079..0.101 rows=2 loops=1)
                                                                            -> Nested loop left join  (cost=7.78 rows=0.0022) (actual time=0.0783..0.0997 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.76 rows=0.0022) (actual time=0.0761..0.0973 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.75 rows=0.0022) (actual time=0.073..0.0939 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.73 rows=0.0022) (actual time=0.0699..0.0891 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.59 rows=0.0015) (actual time=0.061..0.0765 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.58 rows=0.0015) (actual time=0.06..0.0753 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.57 rows=0.0015) (actual time=0.0563..0.0712 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.56 rows=0.0015) (actual time=0.0522..0.0668 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.54 rows=0.0015) (actual time=0.0484..0.0627 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.49 rows=0.0015) (actual time=0.0476..0.0617 rows=2 loops=1)
                                                                                -> Nested loop inner join  (cost=7.34 rows=0.0015) (actual time=0.0459..0.0592 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.29 rows=0.0015) (actual time=0.0433..0.0552 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.26 rows=0.0015) (actual time=0.0402..0.0492 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.24 rows=0.0015) (actual time=0.0376..0.0463 rows=2 loops=1)
                                                                                -> Nested loop inner join  (cost=7.23 rows=0.0015) (actual time=0.0356..0.0439 rows=2 loops=1)
                                                                                -> Inner hash join (vm_instance.domain_id = domain.id)  (cost=7.22 rows=0.0015) (actual time=0.0314..0.0377 rows=2 loops=1)
                                                                                -> Filter: ((vm_instance.id in (1,2,3,4,5)) and (vm_instance.removed is null))  (cost=2.22 rows=0.05) (actual time=0.0152..0.0208 rows=2 loops=1)
                                                                                -> Index range scan on vm_instance using PRIMARY over (id = 1) OR (id = 2) OR (3 more)  (cost=2.22 rows=5) (actual time=0.00957..0.019 rows=5 loops=1)
                                                                                -> Hash
                                                                                -> Table scan on domain  (cost=0.55 rows=3) (actual time=0.00709..0.00885 rows=3 loops=1)
                                                                                -> Single-row index lookup on account using PRIMARY (id=vm_instance.account_id)  (cost=0.75 rows=1) (actual time=0.00255..0.00256 rows=1 loops=2)
                                                                                -> Single-row index lookup on guest_os using PRIMARY (id=vm_instance.guest_os_id)  (cost=0.75 rows=1) (actual time=0.00103..0.00104 rows=1 loops=2)
                                                                                -> Single-row index lookup on host_pod_ref using PRIMARY (id=vm_instance.pod_id)  (cost=0.75 rows=1) (actual time=0.00129..0.00131 rows=1 loops=2)
                                                                                -> Index lookup on projects using fk_projects__project_account_id (project_account_id=vm_instance.account_id)  (cost=0.917 rows=1) (actual time=0.0025..0.0027 rows=0.5 loops=2)
                                                                                -> Single-row index lookup on user_vm using PRIMARY (id=vm_instance.id)  (cost=0.994 rows=1) (actual time=0.00184..0.00185 rows=1 loops=2)
                                                                                -> Index lookup on instance_group_vm_map using fk_instance_group_vm_map___instance_id (instance_id=vm_instance.id)  (cost=1.67 rows=1) (actual time=0.00101..0.00101 rows=0 loops=2)
                                                                                -> Single-row index lookup on instance_group using PRIMARY (id=instance_group_vm_map.group_id)  (cost=1 rows=1) (actual time=368e-6..368e-6 rows=0 loops=2)
                                                                                -> Single-row index lookup on data_center using PRIMARY (id=vm_instance.data_center_id)  (cost=0.75 rows=1) (actual time=0.00192..0.00193 rows=1 loops=2)
                                                                                -> Single-row index lookup on host using PRIMARY (id=vm_instance.host_id)  (cost=0.75 rows=1) (actual time=0.00204..0.00205 rows=1 loops=2)
                                                                                -> Single-row index lookup on vm_template using PRIMARY (id=vm_instance.vm_template_id)  (cost=0.75 rows=1) (actual time=0.00186..0.00188 rows=1 loops=2)
                                                                                -> Single-row index lookup on iso using PRIMARY (id=user_vm.iso_id)  (cost=0.75 rows=1) (actual time=471e-6..471e-6 rows=0 loops=2)
                                                                                -> Index lookup on volumes using i_volumes__instance_id (instance_id=vm_instance.id)  (cost=1.89 rows=1.47) (actual time=0.00574..0.0061 rows=1 loops=2)
                                                                                -> Single-row index lookup on service_offering using PRIMARY (id=vm_instance.service_offering_id)  (cost=0.511 rows=1) (actual time=0.00224..0.00225 rows=1 loops=2)
                                                                                -> Single-row covering index lookup on svc_disk_offering using PRIMARY (id=volumes.disk_offering_id)  (cost=0.538 rows=1) (actual time=0.00154..0.00156 rows=1 loops=2)
                                                                                -> Single-row index lookup on disk_offering using PRIMARY (id=volumes.disk_offering_id)  (cost=0.538 rows=1) (actual time=0.00105..0.00106 rows=1 loops=2)
                                                                            -> Single-row index lookup on backup_offering using PRIMARY (id=vm_instance.backup_offering_id)  (cost=0.682 rows=1) (actual time=369e-6..369e-6 rows=0 loops=2)
                                                                        -> Single-row index lookup on storage_pool using PRIMARY (id=volumes.pool_id)  (cost=0.538 rows=1) (actual time=0.00164..0.00165 rows=1 loops=2)
                                                                    -> Index lookup on security_group_vm_map using fk_security_group_vm_map___instance_id (instance_id=vm_instance.id)  (cost=1.45 rows=1) (actual time=983e-6..983e-6 rows=0 loops=2)
                                                                -> Single-row index lookup on security_group using PRIMARY (id=security_group_vm_map.security_group_id)  (cost=0.511 rows=1) (actual time=326e-6..326e-6 rows=0 loops=2)
                                                            -> Single-row index lookup on user_data using PRIMARY (id=user_vm.user_data_id)  (cost=0.511 rows=1) (actual time=332e-6..332e-6 rows=0 loops=2)
                                                        -> Filter: (nics.removed is null)  (cost=1.61 rows=1.46) (actual time=0.00693..0.0074 rows=1 loops=2)
                                                            -> Index lookup on nics using fk_nics__instance_id (instance_id=vm_instance.id)  (cost=1.61 rows=1.46) (actual time=0.0065..0.00712 rows=1.5 loops=2)
                                                    -> Single-row index lookup on networks using PRIMARY (id=nics.network_id)  (cost=0.368 rows=1) (actual time=0.00188..0.00193 rows=1 loops=2)
                                                -> Filter: (vpc.removed is null)  (cost=0.368 rows=1) (actual time=594e-6..594e-6 rows=0 loops=2)
                                                    -> Single-row index lookup on vpc using PRIMARY (id=networks.vpc_id)  (cost=0.368 rows=1) (actual time=502e-6..502e-6 rows=0 loops=2)
                                            -> Index lookup on user_ip_address using fk_user_ip_address__vm_id (vm_id=vm_instance.id)  (cost=20896 rows=64676) (actual time=0.00278..0.00278 rows=0 loops=2)
                                        -> Index lookup on ssh_details using i_name_vm_id (vm_id=vm_instance.id, name='SSH.KeyPairNames')  (cost=0.843 rows=1.03) (actual time=0.00454..0.00517 rows=1 loops=2)
                                    -> Hash
                                        -> Filter: (resource_tags.resource_type = 'UserVm')  (cost=0.0742 rows=1) (actual time=0.00231..0.00231 rows=0 loops=1)
                                            -> Table scan on resource_tags  (cost=0.0742 rows=1) (actual time=0.00217..0.00217 rows=0 loops=1)
                                -> Filter: (async_job.job_status = 0)  (cost=0.329 rows=1.32) (actual time=0.00674..0.00674 rows=0 loops=2)
                                    -> Index lookup on async_job using i_async__instance_type_id (instance_type='VirtualMachine', instance_id=vm_instance.id)  (cost=0.329 rows=1.32) (actual time=0.00574..0.00631 rows=1 loops=2)
                            -> Hash
                                -> Table scan on affinity_group_vm_map  (cost=0.0777 rows=1) (actual time=0.00141..0.00141 rows=0 loops=1)
                        -> Single-row index lookup on affinity_group using PRIMARY (id=affinity_group_vm_map.affinity_group_id)  (cost=5.33e-6 rows=1) (actual time=379e-6..379e-6 rows=0 loops=2)
                    -> Hash
                        -> Table scan on autoscale_vmgroup_vm_map  (cost=0.0903 rows=1) (actual time=0.00626..0.00626 rows=0 loops=1)
                -> Single-row index lookup on autoscale_vmgroups using PRIMARY (id=autoscale_vmgroup_vm_map.vmgroup_id)  (cost=4e-6 rows=1) (actual time=354e-6..354e-6 rows=0 loops=2)
            -> Index lookup on custom_cpu using i_name_vm_id (vm_id=vm_instance.id, name='CpuNumber')  (cost=0.843 rows=1.03) (actual time=0.00181..0.00181 rows=0 loops=2)
        -> Index lookup on custom_speed using i_name_vm_id (vm_id=vm_instance.id, name='CpuSpeed')  (cost=0.843 rows=1.03) (actual time=0.00152..0.00152 rows=0 loops=2)
    -> Index lookup on custom_ram_size using i_name_vm_id (vm_id=vm_instance.id, name='memory')  (cost=0.843 rows=1.03) (actual time=0.00172..0.00172 rows=0 loops=2)

After the view/change was applied, this is the explain analyze:
explain analyze select * from user_vm_view where id in (1,2,3,4,5);
...
| -> Nested loop left join  (cost=75824 rows=305) (actual time=0.161..0.213 rows=2 loops=1)
    -> Nested loop left join  (cost=50766 rows=297) (actual time=0.158..0.208 rows=2 loops=1)
        -> Nested loop left join  (cost=26363 rows=289) (actual time=0.155..0.204 rows=2 loops=1)
            -> Nested loop left join  (cost=2597 rows=281) (actual time=0.153..0.2 rows=2 loops=1)
                -> Left hash join (autoscale_vmgroup_vm_map.instance_id = vm_instance.id)  (cost=2569 rows=281) (actual time=0.151..0.198 rows=2 loops=1)
                    -> Nested loop left join  (cost=2243 rows=281) (actual time=0.14..0.186 rows=2 loops=1)
                        -> Left hash join (affinity_group_vm_map.instance_id = vm_instance.id)  (cost=2215 rows=281) (actual time=0.139..0.185 rows=2 loops=1)
                            -> Nested loop left join  (cost=8670 rows=281) (actual time=0.135..0.18 rows=2 loops=1)
                                -> Left hash join (resource_tags.resource_id = vm_instance.id)  (cost=1607 rows=214) (actual time=0.124..0.165 rows=2 loops=1)
                                    -> Nested loop left join  (cost=17858 rows=214) (actual time=0.118..0.158 rows=2 loops=1)
                                        -> Nested loop left join  (cost=285 rows=208) (actual time=0.112..0.148 rows=2 loops=1)
                                            -> Nested loop left join  (cost=8.34 rows=0.00322) (actual time=0.108..0.141 rows=2 loops=1)
                                                -> Nested loop left join  (cost=8.32 rows=0.00322) (actual time=0.107..0.14 rows=2 loops=1)
                                                    -> Nested loop left join  (cost=8.31 rows=0.00322) (actual time=0.102..0.135 rows=2 loops=1)
                                                        -> Nested loop left join  (cost=8.1 rows=0.0022) (actual time=0.0945..0.118 rows=2 loops=1)
                                                            -> Nested loop left join  (cost=8.08 rows=0.0022) (actual time=0.0934..0.117 rows=2 loops=1)
                                                                -> Nested loop left join  (cost=8.07 rows=0.0022) (actual time=0.0925..0.116 rows=2 loops=1)
                                                                    -> Nested loop left join  (cost=7.85 rows=0.0022) (actual time=0.0907..0.113 rows=2 loops=1)
                                                                        -> Nested loop left join  (cost=7.83 rows=0.0022) (actual time=0.0869..0.109 rows=2 loops=1)
                                                                            -> Nested loop left join  (cost=7.78 rows=0.0022) (actual time=0.086..0.108 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.76 rows=0.0022) (actual time=0.0837..0.105 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.75 rows=0.0022) (actual time=0.0804..0.102 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.73 rows=0.0022) (actual time=0.0771..0.0969 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.59 rows=0.0015) (actual time=0.0686..0.0846 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.58 rows=0.0015) (actual time=0.0674..0.0832 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.57 rows=0.0015) (actual time=0.063..0.0784 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.56 rows=0.0015) (actual time=0.0588..0.0739 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.54 rows=0.0015) (actual time=0.0539..0.0687 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.49 rows=0.0015) (actual time=0.0529..0.0675 rows=2 loops=1)
                                                                                -> Nested loop inner join  (cost=7.34 rows=0.0015) (actual time=0.0508..0.0645 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.29 rows=0.0015) (actual time=0.0473..0.0596 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.26 rows=0.0015) (actual time=0.044..0.0536 rows=2 loops=1)
                                                                                -> Nested loop left join  (cost=7.24 rows=0.0015) (actual time=0.0408..0.05 rows=2 loops=1)
                                                                                -> Nested loop inner join  (cost=7.23 rows=0.0015) (actual time=0.0379..0.0467 rows=2 loops=1)
                                                                                -> Inner hash join (vm_instance.domain_id = domain.id)  (cost=7.22 rows=0.0015) (actual time=0.0333..0.04 rows=2 loops=1)
                                                                                -> Filter: ((vm_instance.id in (1,2,3,4,5)) and (vm_instance.removed is null))  (cost=2.22 rows=0.05) (actual time=0.0165..0.0225 rows=2 loops=1)
                                                                                -> Index range scan on vm_instance using PRIMARY over (id = 1) OR (id = 2) OR (3 more)  (cost=2.22 rows=5) (actual time=0.0107..0.0207 rows=5 loops=1)
                                                                                -> Hash
                                                                                -> Table scan on domain  (cost=0.55 rows=3) (actual time=0.00857..0.0105 rows=3 loops=1)
                                                                                -> Single-row index lookup on account using PRIMARY (id=vm_instance.account_id)  (cost=0.75 rows=1) (actual time=0.00288..0.00289 rows=1 loops=2)
                                                                                -> Single-row index lookup on guest_os using PRIMARY (id=vm_instance.guest_os_id)  (cost=0.75 rows=1) (actual time=0.00147..0.00149 rows=1 loops=2)
                                                                                -> Single-row index lookup on host_pod_ref using PRIMARY (id=vm_instance.pod_id)  (cost=0.75 rows=1) (actual time=0.00161..0.00163 rows=1 loops=2)
                                                                                -> Index lookup on projects using fk_projects__project_account_id (project_account_id=vm_instance.account_id)  (cost=0.917 rows=1) (actual time=0.00257..0.00277 rows=0.5 loops=2)
                                                                                -> Single-row index lookup on user_vm using PRIMARY (id=vm_instance.id)  (cost=0.994 rows=1) (actual time=0.00227..0.00228 rows=1 loops=2)
                                                                                -> Index lookup on instance_group_vm_map using fk_instance_group_vm_map___instance_id (instance_id=vm_instance.id)  (cost=1.67 rows=1) (actual time=0.00128..0.00128 rows=0 loops=2)
                                                                                -> Single-row index lookup on instance_group using PRIMARY (id=instance_group_vm_map.group_id)  (cost=1 rows=1) (actual time=480e-6..480e-6 rows=0 loops=2)
                                                                                -> Single-row index lookup on data_center using PRIMARY (id=vm_instance.data_center_id)  (cost=0.75 rows=1) (actual time=0.00241..0.00243 rows=1 loops=2)
                                                                                -> Single-row index lookup on host using PRIMARY (id=vm_instance.host_id)  (cost=0.75 rows=1) (actual time=0.0021..0.00211 rows=1 loops=2)
                                                                                -> Single-row index lookup on vm_template using PRIMARY (id=vm_instance.vm_template_id)  (cost=0.75 rows=1) (actual time=0.00223..0.00224 rows=1 loops=2)
                                                                                -> Single-row index lookup on iso using PRIMARY (id=user_vm.iso_id)  (cost=0.75 rows=1) (actual time=516e-6..516e-6 rows=0 loops=2)
                                                                                -> Index lookup on volumes using i_volumes__instance_id (instance_id=vm_instance.id)  (cost=1.89 rows=1.47) (actual time=0.00561..0.00597 rows=1 loops=2)
                                                                                -> Single-row index lookup on service_offering using PRIMARY (id=vm_instance.service_offering_id)  (cost=0.511 rows=1) (actual time=0.00235..0.00236 rows=1 loops=2)
                                                                                -> Single-row covering index lookup on svc_disk_offering using PRIMARY (id=volumes.disk_offering_id)  (cost=0.538 rows=1) (actual time=0.00163..0.00164 rows=1 loops=2)
                                                                                -> Single-row index lookup on disk_offering using PRIMARY (id=volumes.disk_offering_id)  (cost=0.538 rows=1) (actual time=0.00116..0.00117 rows=1 loops=2)
                                                                            -> Single-row index lookup on backup_offering using PRIMARY (id=vm_instance.backup_offering_id)  (cost=0.682 rows=1) (actual time=448e-6..448e-6 rows=0 loops=2)
                                                                        -> Single-row index lookup on storage_pool using PRIMARY (id=volumes.pool_id)  (cost=0.538 rows=1) (actual time=0.00186..0.00188 rows=1 loops=2)
                                                                    -> Index lookup on security_group_vm_map using fk_security_group_vm_map___instance_id (instance_id=vm_instance.id)  (cost=1.45 rows=1) (actual time=0.00113..0.00113 rows=0 loops=2)
                                                                -> Single-row index lookup on security_group using PRIMARY (id=security_group_vm_map.security_group_id)  (cost=0.511 rows=1) (actual time=422e-6..422e-6 rows=0 loops=2)
                                                            -> Single-row index lookup on user_data using PRIMARY (id=user_vm.user_data_id)  (cost=0.511 rows=1) (actual time=550e-6..550e-6 rows=0 loops=2)
                                                        -> Filter: (nics.removed is null)  (cost=1.61 rows=1.46) (actual time=0.00757..0.00803 rows=1 loops=2)
                                                            -> Index lookup on nics using fk_nics__instance_id (instance_id=vm_instance.id)  (cost=1.61 rows=1.46) (actual time=0.0071..0.00775 rows=1.5 loops=2)
                                                    -> Single-row index lookup on networks using PRIMARY (id=nics.network_id)  (cost=0.368 rows=1) (actual time=0.00215..0.00219 rows=1 loops=2)
                                                -> Filter: (vpc.removed is null)  (cost=0.368 rows=1) (actual time=572e-6..572e-6 rows=0 loops=2)
                                                    -> Single-row index lookup on vpc using PRIMARY (id=networks.vpc_id)  (cost=0.368 rows=1) (actual time=473e-6..473e-6 rows=0 loops=2)
                                            -> Index lookup on user_ip_address using fk_user_ip_address__vm_id (vm_id=vm_instance.id)  (cost=20896 rows=64676) (actual time=0.00279..0.00279 rows=0 loops=2)
                                        -> Index lookup on ssh_details using i_name_vm_id (vm_id=vm_instance.id, name='SSH.KeyPairNames')  (cost=0.843 rows=1.03) (actual time=0.0045..0.0051 rows=1 loops=2)
                                    -> Hash
                                        -> Filter: (resource_tags.resource_type = 'UserVm')  (cost=0.0742 rows=1) (actual time=0.00301..0.00301 rows=0 loops=1)
                                            -> Table scan on resource_tags  (cost=0.0742 rows=1) (actual time=0.00283..0.00283 rows=0 loops=1)
                                -> Filter: (async_job.job_status = 0)  (cost=0.329 rows=1.32) (actual time=0.00744..0.00744 rows=0 loops=2)
                                    -> Index lookup on async_job using i_async__instance_type_id (instance_type='VirtualMachine', instance_id=vm_instance.id)  (cost=0.329 rows=1.32) (actual time=0.00641..0.007 rows=1 loops=2)
                            -> Hash
                                -> Table scan on affinity_group_vm_map  (cost=0.0777 rows=1) (actual time=0.00142..0.00142 rows=0 loops=1)
                        -> Single-row index lookup on affinity_group using PRIMARY (id=affinity_group_vm_map.affinity_group_id)  (cost=5.33e-6 rows=1) (actual time=496e-6..496e-6 rows=0 loops=2)
                    -> Hash
                        -> Table scan on autoscale_vmgroup_vm_map  (cost=0.0903 rows=1) (actual time=0.00693..0.00693 rows=0 loops=1)
                -> Single-row index lookup on autoscale_vmgroups using PRIMARY (id=autoscale_vmgroup_vm_map.vmgroup_id)  (cost=4e-6 rows=1) (actual time=484e-6..484e-6 rows=0 loops=2)
            -> Index lookup on custom_cpu using i_name_vm_id (vm_id=vm_instance.id, name='CpuNumber')  (cost=0.843 rows=1.03) (actual time=0.00205..0.00205 rows=0 loops=2)
        -> Index lookup on custom_speed using i_name_vm_id (vm_id=vm_instance.id, name='CpuSpeed')  (cost=0.843 rows=1.03) (actual time=0.00172..0.00172 rows=0 loops=2)
    -> Index lookup on custom_ram_size using i_name_vm_id (vm_id=vm_instance.id, name='memory')  (cost=0.843 rows=1.03) (actual time=0.00216..0.00216 rows=0 loops=2)


EstResidentialDensity and ur, v2.0.0, year 2010

Something seems off with the binning for EstResidentialDensity and ur, v2.0.0, year 2010.  I think they should be the same, since EstResidentialDensity = 3 (urbanized area) does not exist within this cohort? In other words, (EstResidentialDensity = 1) = (ur = R)?

I thought we calculated "ur" based on "EstResidentialDensity", when we expected to see patients with "EstResidentialDensity = 3"?

Upstream issue.