ci: switch to core18 for snap

Fixes https://github.com/microsoft/vscode/issues/116690
Fixes https://github.com/microsoft/vscode/issues/119436
vscode-encrypt fails to load with GLIBC_2.25 not found error.

ldd vscode-encrypt.node
  libstdc++.so.6 => /snap/core/current/usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fc887a3a000)
  libgcc_s.so.1 => /snap/core/current/lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fc887824000)
  libpthread.so.0 => /snap/core/current/lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc887607000)
  libc.so.6 => /snap/core/current/lib/x86_64-linux-gnu/libc.so.6 (0x00007fc88723d000)
  libm.so.6 => /snap/core/current/lib/x86_64-linux-gnu/libm.so.6 (0x00007fc886f34000)
  /lib64/ld-linux-x86-64.so.2 (0x00007fc8882bc000)

libc.so.6 from ubuntu16.04 core is not sufficient for support.
Switching to core18 matches with the build environment used for the native module
https://github.com/microsoft/vscode-linux-build-agent/blob/main/bionic-x64/Dockerfile

Relevant: https://github.com/microsoft/vscode/issues/119436

Hi @anonymouse64, I was informed that this change might be of interest to you. I chose core18 to match the build environment used today.
Side note: Should I revert https://github.com/microsoft/vscode/pull/119478 in favor of https://github.com/microsoft/vscode/pull/118116 in this PR, since we are using base: ?

If the snap that is built here is working correctly, then +1 from me, I'm happy to test a .snap file built from this PR if someone can make it available for download, I don't have the time or expertise to build VS code unfortunately. I do use the VS code snap on a daily basis however :-)

@anonymouse64 here is the snap package for testing https://az764295.vo.msecnd.net/insider/cebe99f55eee750bfa53ef644c00762ad2d21e22/code-insider-x64-1625157141.snap

unfortunately I don't think this is ready/working yet:
$ snap run code-insiders
*** stack smashing detected ***: terminated
/snap/code-insiders/x1/electron-launch: line 29: 324320 Aborted                 (core dumped) "$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" > "$GDK_PIXBUF_MODULE_FILE"
/snap/code-insiders/x1/usr/share/code-insiders/bin/../code-insiders: relocation error: /snap/code-insiders/x1/usr/share/code-insiders/libffmpeg.so: symbol pthread_cond_destroy version GLIBC_2.3.2 not defined in file libpthread.so.0 with link time reference

did anyone manage to run this version of VS code successfully when built as a snap with core18 base ? seems like a $PATH issue where it is using the wrong glibc from the host and not from the base snap

Can confirm the crash and that the dynamic libraries are linked to the host OS, @anonymouse64 any thoughts what can cause this to happen, we are not messing with ld paths in the build.

@deepak1556 I will defer to @sergiusens or @igorljubuncic for more help on that, I think that it might actually be that previously snapcraft was setting some paths for you, and it stopped doing this when you switched to using a base in the snapcraft.yaml.

Thanks @anonymouse64 , in case it helps we are using snapcraft:stable container to build our snaps.

I successfully built vscode with core20 - but you need to build it in a 20.04 container. Launching the 16.04 docker container will lead to the core dump issue as you see above. Here's the yaml that I used - but you need to edit the CI workflow to create a different snapcore container.
https://github.com/snapcore/snapcraft/blob/master/docker/Dockerfile
Similarly, if you want to use 18.04, you need an 18.04 build env.
The yaml (ignore the version, as I built it locally):
`name: vscode
version: "1.0"
summary: Code editing. Redefined.
description: |
Visual Studio Code is a new choice of tool that combines the
simplicity of a code editor with what developers need for the core
edit-build-debug cycle.
architectures:

build-on: amd64
run-on: amd64

grade: stable
confinement: classic
base: core20
parts:
code:
plugin: dump
source: ./code_1.54.3-1615806378_amd64.deb
source-type: deb
stage-packages:
- libx11-xcb1
- libx11-6
- libxcomposite1
- libxdamage1
- libxext6
- libxfixes3
- libxrandr2
- libasound2
- libatk1.0-0
- libatk-bridge2.0-0
- libatspi2.0-0
- libcairo2
- libdrm2
- libgbm1
- libgdk-pixbuf2.0-0
- libgtk-3-0
- libnspr4
- libnss3
- libpango-1.0-0
- libsecret-1-0
- libxcb1
- libxkbcommon0
- libxkbfile1
apps:
code:
command: usr/share/code/bin/code
common-id: code.desktop
environment:
DISABLE_WAYLAND: 1
GSETTINGS_SCHEMA_DIR: usr/share/glib-2.0/schemas
url-handler:
command: usr/share/code/bin/code --open-url
environment:
DISABLE_WAYLAND: 1
GSETTINGS_SCHEMA_DIR: usr/share/glib-2.0/schemas`

@igorljubuncic to clarify, the snap packaging is done in two steps:
First we build vscode application on a custom 18.04 container https://github.com/microsoft/vscode-linux-build-agent/blob/main/bionic-x64/Dockerfile and create a ci artifact of the build. This is the reason I chose core18 as we cannot move to 20.04 here yet.
Next in a separate pipeline we use snapcraft:stable container to run the snap commands for creating the package with the above artifact https://github.com/microsoft/vscode/blob/main/build/azure-pipelines/linux/snap-build-linux.yml

Launching the 16.04 docker container will lead to the core dump issue as you see above.

If I am reading https://github.com/snapcore/snapcraft/blob/master/docker/README.md correctly, snapcraft:stable is a 16.04 container ? Is there a 18.04 version published or should we build a custom version based on https://github.com/snapcore/snapcraft/blob/master/docker/Dockerfile ?

Yes, it is 16.04 - I am not aware of an existing 18.04 image. But you can spin off your own - just change the image declaration to download the right image.

Thanks for the clarification, that helps!

@igorljubuncic I am trying to switch to use gnome-3-34 for core18 but looks like the extension does not work with classic confinement. What is the way forward here ?

One thing you can do is expand a snapcraft.yaml that has a declared extension - and then you can manually declare all the pieces that are automatically hidden behind the scenes.
snapcraft expand-extensions will look for snapcraft.yaml and expand it on the standard output, but you can also redirect the output to a file, and compare the two declarations, with and without. Please try that and see if that helps.

note that you can't use the gnome extension with a classic snap, and furthermore you also can't use the gnome content interface providing snaps with a classic snap as well. Has anyone tried changing this snap to just use base: core in the snapcraft.yaml? that may be enough to switch from building with the "legacy" mode snapcraft and to using new snapcraft which understands the LZO compression option and will have more improvements. It's not as nice as fully upgrading to a newer base, but it could be a stepping stone.

@igorljubuncic thanks for the pointer, expanding it shows that the extension adds some plugs to use the gnome content interface which I don't think will work with classic snaps as mentioned by @anonymouse64 ?
plugs:
  desktop:
    mount-host-font-cache: false
  gnome-3-34-1804:
    default-provider: gnome-3-34-1804
    interface: content
    target: $SNAP/gnome-platform
  gtk-3-themes:
    default-provider: gtk-common-themes
    interface: content
    target: $SNAP/data-dir/themes
  icon-themes:
    default-provider: gtk-common-themes
    interface: content
    target: $SNAP/data-dir/icons
  sound-themes:
    default-provider: gtk-common-themes
    interface: content
    target: $SNAP/data-dir/sounds

@anonymouse64 we definitely want to use base:core18 as the application is being built on ubuntu:18.04 container. The main motivation for the move was some native dependencies didn't get required glibc version https://github.com/microsoft/vscode/pull/127320#issue-679056553
Does the above findings imply that we need strict confinement to use core18 base ? Or is there a way to use gnome-3-34 without snap interface ?

@deepak1556 well not necessarily, you can keep using classic and use a core18 base, but the gnome extension is our preferred way of setting up the environment variables and other such things so that most strictly confined applications "just work" out of the box without special fiddling in the YAML. You can of course setup everything that is setup by the extension manually, and without the content interface connections. The content interface simply shares the files from these other snaps with your snap so that your snap does not need to ship those files and there is less duplication across different graphical gnome apps.
There are a few options to move forward if you determine that you do indeed need the libraries and files from these gnome content snaps.
1.) You can simply copy the files from these other snaps into your own snap and put them in equivalent locations, for example the files that gnome-3-34-1804 content plug shares are put at $SNAP/gnome-platform - you can add a part to your snapcraft.yaml which copies these files into $SNAPCRAFT_PART_INSTALL/gnome-platform and it will work the same as if you had the content interface connected, albeit your snap will be slightly larger. Another disadvantage of this is that you need to handle updates to these other snaps yourself when you build these snaps, i.e. normally if there is an update/fix to the gnome-3-34-1804 snap, it can be pushed out and dependent strict applications can get it immediately without needing to rebuild their snap like gnome-calculator for example, but here since you are copying the files into your snap you need to rebuild the snap to benefit from the updates. this may not be an issue for VS code, since updates to the snap seem to be relatively recent judging by at least the updates I get on my machine...
2.) You can in fact use files from other snaps in a classic snap like with plugs for a strict snap, by doing the mounts that correspond to the implementation of the content interface manually, i.e. mount --bind /snap/gnome-3-34-1804/current/gnome-platform $SNAP/gnome-platform will do the same thing as the content interface plug mentioned above, your snap just needs to make sure that gnome-3-34-1804 is installed, which it can actually do since it is a classic snap and not strictly confined. The issue with this is that you need to be careful to make sure that snaps you depend on are installed, and that you (maybe) monitor for changes to the source bind mounts, because for example if you do the bind mount as I mentioned above in a shell script that is part of the launch of VS code, then a refresh happens to gnome-3-34-1804, your snap will still have the previous revision mounted, since bind mounts don't follow new symlink targets IIRC. This may not be a big deal since your application will just continue to use the old revisions of the dependent snaps until the user reboots their machine or logs out or something like that and you perform the mounts again.
3. We (snapd developers) are aware of this limitation and have it generally as a TODO to make content interfaces work with classic snaps the same way they do with strict snaps, and the biggest part of that work was actually already done to support parallel instances of classic snaps, but there is still a bit of work left to do to fully enable this use-case. So you could just wait until we enable the content interface for classic snaps, but it's not on our immediate roadmap so it could be a few months (or maybe even a year or two) before this is available to use, but the VS code snap is not the only one that suffers from this issue, so the more snaps that are suffering from this situation the more likely we are to fix it sooner I suppose.
I would recommend experimenting a bit with 1 as a start

Thanks @anonymouse64 , I will give 1) a try looks like it might get this PR moving again.

Over the past few days, I tried a couple of different setups to get the gnome-3-34 libraries working with our snap. Recording the experience below for inputs:

Since we can't use the gnome plugs, I had to embed the desktop-launch wrapper which exports the correct libraries from gnome-platform
1.a) First attempt was to use the gnome-3-34-extension step from the expand-extensions output https://github.com/microsoft/vscode/pull/127320/commits/927fbf60f2ca998d82cfb8cd6935ce555de3fa4e , the generated wrapper can be used via the command-chain definition.
Pros:

The wrapper is generated from snapcraft repo, so we get changes as they are updated.

Cons:

The wrapper has a hard check about gnome plug connection https://github.com/snapcore/snapcraft/blob/d9c7027d8afce7be7901678482f98bb50d1c5a86/extensions/desktop/common/desktop-exports#L63-L66 which will fail with our snap.

1.b) Second attempt was to maintain a copy of the desktop-launch wrapper in the vscode repro minus the snap-ctl checks and exports not needed for our app https://github.com/microsoft/vscode/blob/2227c757498d0cdf462c2e155c1d69df12f67d89/resources/linux/snap/electron-launch
Pros:

Can perform vscode specific customizations (Will talk more about it below)

Cons:

Maintainability is an issue as we can quickly diverge from upstream code if not tracked in an automated way

With 1.b) I was able to get a working snap that fixed the issues originally mentioned in this PR and also made sure to not regress the issues addressed in https://github.com/microsoft/vscode/pull/70884. But there were other issues that came from this setup,

Since the wrapper exports some xdg env variables, it can break vscode behavior in two scenarios

Users click a link that launches an external application
Launching application from the integrated terminal
Solution:

One idea is to remember the original value of these env variables in the wrapper and replace them just before the external  calls happen, we already do a variation of this today for GDK_PIXBUF_* variables https://github.com/microsoft/vscode/blob/4508c29d350b4a14f37c035dc243408290a9648c/src/vs/base/common/processes.ts#L104-L126 and https://github.com/microsoft/vscode/blob/4508c29d350b4a14f37c035dc243408290a9648c/src/vs/platform/native/electron-main/nativeHostMainService.ts#L484-L497

There were some new library loading errors on startup, looks like they are missing from the gnome-platform and defaulted to system installed versions. Thoughts on how to fix this ?

> code-insiders --version
Warning: Schema "org.gnome.system.locale" has path "/system/locale/".  Paths starting with "/apps/", "/desktop/" or "/system/" are deprecated.
Warning: Schema "org.gnome.system.proxy" has path "/system/proxy/".  Paths starting with "/apps/", "/desktop/" or "/system/" are deprecated.
Warning: Schema "org.gnome.system.proxy.http" has path "/system/proxy/http/".  Paths starting with "/apps/", "/desktop/" or "/system/" are deprecated.
Warning: Schema "org.gnome.system.proxy.https" has path "/system/proxy/https/".  Paths starting with "/apps/", "/desktop/" or "/system/" are deprecated.
Warning: Schema "org.gnome.system.proxy.ftp" has path "/system/proxy/ftp/".  Paths starting with "/apps/", "/desktop/" or "/system/" are deprecated.
Warning: Schema "org.gnome.system.proxy.socks" has path "/system/proxy/socks/".  Paths starting with "/apps/", "/desktop/" or "/system/" are deprecated.
/usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so: undefined symbol: g_date_time_format_iso8601
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so
Cannot load module /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-ibus.so: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-ibus.so: undefined symbol: ibus_input_context_set_client_commit_preedit
/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-ibus.so does not export GTK+ IM module API: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-ibus.so: undefined symbol: ibus_input_context_set_client_commit_preedit
1.59.0-insider
2227c757498d0cdf462c2e155c1d69df12f67d89
x64

Given the above loading errors and env variable issues, I tried to reduce the wrapper code to only the essential ones https://github.com/microsoft/vscode/pull/127320/commits/a468471a83328fe3d30fa51af84b05d3e1355af9 , here is the related snap build.

https://github.com/microsoft/vscode/issues/63194 regressed, looks like I need to keep the font configuration hook that generates the cache from the gnome-platform and relevant font config changes from https://github.com/snapcore/snapcraft/blob/d9c7027d8afce7be7901678482f98bb50d1c5a86/extensions/desktop/common/desktop-exports#L287-L329 . This will also require me to add the hack for preserving XDG_DATA_HOME and XDG_CONFIG_HOME.
There is still one gvfsdbus related loading error,

$ code-insiders --version
/usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so: undefined symbol: g_date_time_format_iso8601
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so
1.59.0-insider
a468471a83328fe3d30fa51af84b05d3e1355af9
x64

Another major disadvantage of this entire setup is that our bundle size nearly doubled, went from 200MB -> 500MB
@anonymouse64 @igorljubuncic this the current status of the PR, any inputs on improving the above setup ? I haven't be able to try 2) from https://github.com/microsoft/vscode/pull/127320#issuecomment-879377726 due to lack of technical expertise, if there are existing examples that would help. Also, if you think 1.b) setup looks good, can you provide insights on fixing the gvfsdbus loading error.
/cc @joaomoreno @Tyriar for overall

Hi @deepak1556, thanks for all of the work on that, it looks like you made some good progress. At this point I would say you should go with option 1b, I think sorting out the libgvfsdbus.so error is likely easier than attempting to follow through my suggestion in 2, since that was more of a hypothetical technical idea than a concrete plan since there are many gotchas when dealing with mount namespaces you probably don't want to dig into.
I can't say for sure what the problem is or how to fix it, but I can say that this statement:

they are missing from the gnome-platform and defaulted to system installed versions

Suggests that the right thing to do is to ship that library with your snap so that you can be sure that the version of that library that is used matches/works with what you ship in your snap. This is the general policy of snaps and their dependencies, to ship what you need with the snap.

our bundle size nearly doubled, went from 200MB -> 500MB

I'm curious, what are the two measurements here for? I just want to see if you are comparing "shipping libs in the snap + using lzo" to "not shipping libs in the snap + using xz" because that's not a great comparison for size purposes, it would be better to get 4 measurements if possible:

size of snap using lzo compression not using option 1b (i.e. the status quo AIUI)
size of snap using xz compression not using option 1b (i.e. the status quo, but with xz)
size of snap using lzo compression using option 1b
size of snap using xz compression using option 1b

Because the switch from lzo -> xz does itself increase the size of the snap demonstrably, usually on the order of +30-40% for most snaps I've looked at

This blocks #168427.

This iteration I tried to revamp this PR and update our snap base to core20, although overall build is looking good there are a couple of issues that needs to be addressed before getting to the finish line. Following test was made on Fedora 36

[ ] dlopen calls from the binary end up loading libraries from the system and not the ones bundled with the snap

Some example failures, first when trying to load EGL for software rendering, second when trying to load curl for uploading crash reports. There are more scenarios in the runtime, just these two are caught on startup,

Failed to load EGL library: libEGL.so.1: /snap/core20/current/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /lib64/libEGL.so.1)

 dlopen:libcurl.so: cannot open shared object file: No such file or directory
[0223/173421.249105:ERROR:http_transport_libcurl.cc(118)] dlopen:libcurl-gnutls.so.4: cannot open shared object file: No such file or directory
[0223/173421.249113:ERROR:http_transport_libcurl.cc(118)] dlopen:libcurl-nss.so.4: cannot open shared object file: No such file or directory
[0223/173421.249118:ERROR:http_transport_libcurl.cc(118)] dlopen:/snap/core20/current/lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.33' not found (required by /lib64/libcurl.so.4)

Library is available at following locations inside /snap/code-insiders/current

$ cd /snap/code-insiders/current/
[parallels@fedora current]$ find . -name libEGL*
./gnome-platform/usr/lib/x86_64-linux-gnu/libEGL.so
./gnome-platform/usr/lib/x86_64-linux-gnu/libEGL.so.1
./gnome-platform/usr/lib/x86_64-linux-gnu/libEGL.so.1.1.0
./gnome-platform/usr/lib/x86_64-linux-gnu/libEGL_mesa.so.0
./gnome-platform/usr/lib/x86_64-linux-gnu/libEGL_mesa.so.0.0.0
./usr/share/code-insiders/libEGL.so

[parallels@fedora current]$ find . -name libcurl*
./usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.3
./usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4
./usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4.6.0
./usr/lib/x86_64-linux-gnu/libcurl-nss.so.3
./usr/lib/x86_64-linux-gnu/libcurl-nss.so.4
./usr/lib/x86_64-linux-gnu/libcurl-nss.so.4.6.0
./usr/lib/x86_64-linux-gnu/libcurl.so.4
./usr/lib/x86_64-linux-gnu/libcurl.so.4.6.0

Reading up on how snapcraft adjusts RPATH for classic confinement to be able to load the correct libraries https://snapcraft.io/docs/classic-confinement, I have added a step in the prime stage to output the final adjusted RPATH of the binary and this is the current output

+ patchelf --print-rpath /__w/1/s/.build/linux/snap/x64/code-insiders-x64/prime/usr/share/code-insiders/code-insiders
 $ORIGIN/../../lib/x86_64-linux-gnu:$ORIGIN:/snap/core20/current/lib/x86_64-linux-gnu

Given the presence of $ORIGIN/../../lib/x86_64-linux-gnu:$ORIGIN, I would expect both EGL and curl libraries to be loaded from within the snap, dlopen search order https://man7.org/linux/man-pages/man3/dlopen.3.html should have first attempted the RPATH, so why is it loaded from the system ?

Currently the following library locations https://github.com/snapcore/snapcraft/blob/ce9c24ee02e4d6ace4502eb8f2fb63095b40764d/extensions/desktop/common/desktop-exports#L68-L71 from gnome-platform are not part of the final RPATH, should this be patched in as part of the prime step ?

[ ] Gpu process crashes on launch with SIGSEGV

Chromium gpu process tries to establish gpu memory buffers via libgbm and then attempts to load libgallium_dri.so which eventually crashes inside this library. Quick check confirms that libgdm.so.1 is available inside the snap package but the mesa libraries is not available either in the gnome snap or core20 snap. So looks like we ended up loading a system installed library. Should I bundle the mesa content snap https://github.com/MirServer/mesa-core20 to address this issue ?

@joaomoreno this is now good to go 🚀


Add optimistic violations data to deleteMoneyRequest

Details
Optimistically clears violation data when deleting a transaction
Fixed Issues
$ https://github.com/Expensify/Expensify/issues/344464
Tests

In OldDot, create a new Control policy as userA
Open the browser console and run the snippet below:

p = Policy.getCurrent();
p.policy.isPolicyExpenseChatEnabled = "true";
p.save();

Invite userB to the policy Workspace > <workspace> > Members > Invite
On the Expenses page, turn on Expense Violations and set a Max Expense Amount of $5
In NewDot, log into the userB's account
Request money from the Workspace and set an amount higher than $5
Open the transaction thread, by pressing the request preview
Inspect the data in Onyx, verify that you have a transactionViolation_ for that request
Delete the request and verify that the transactionViolation_ is removed from Onyx
Add the following code above this line so it throws when you call DeleteMoneyRequest

throw new ExpError('123', 'error');

Repeat steps 6-8, but this time verify that the delete errored and that the transactionViolation_ key is back in Onyx.

[x] Verify that no errors appear in the JS console

Offline tests
N/A
QA Steps
N/A

[ ] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos
https://github.com/Expensify/App/assets/22219519/1e09ddb1-7c9a-49fe-bc04-90b5a4502c0d

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

Thanks, I missed that, good catch

Thanks. I will do during weekend

Awesome

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/108292595/9667fdba-4979-41cd-b30d-650a624b5089
https://github.com/Expensify/App/assets/108292595/533701df-6f85-4a0d-aa84-476758499df2

MacOS: Desktop

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/cead22 in version: 1.4.12-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
cancelled 🔪

🍎 iOS 🍎
cancelled 🔪

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/cead22 in version: 1.4.12-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
cancelled 🔪

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/Julesssss in version: 1.4.12-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Make it possible to turn off the Tokio runtime feature

Motivation and Context
This is an incremental step towards supporting multiple async runtimes.
Description
These changes make it possible to disable the Tokio runtime feature by doing the following, for example:
[dependencies]
aws-sdk-s3 = { version = "VERSION", default-features = false, features = ["client"] }

The approach taken is to change all the runtime crates to no longer default to using Tokio runtime, and then have the generated service crates turn on the rt-tokio features by default. That way, the features only need to be tweaked on the crates customers will directly depend on.
These changes have not:

Vetted whether this makes it possible to use async-std
Done anything with the aws-config crate

More work is needed after this PR.
Testing

[x] Created a cargo project out of tree that references the generated aws-sdk-s3, and used cargo tree -e features to determine that nothing was enabling the Tokio runtime feature
[x] Compiled and ran the S3 and DynamoDB examples
[x] Compiled and ran the S3 integration tests

Checklist

[ ] I have updated CHANGELOG.md if I made changes to the smithy-rs codegen or runtime crates
[ ] I have updated aws/SDK_CHANGELOG.md if I made changes to the AWS SDK, generated SDK code, or SDK runtime crates

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

CI has revealed this opens a can of worms with our existing feature matrix. We're going to need to a decent amount of work to get all the runtime crates building with their various combinations of features. To give one example, DVR requires both rustls and test-util, but currently only states test-util. I'm also observing other weird issues such as the timeout tests never timing out when aws-smithy-client only has the test-util feature enabled in addition to the defaults.
Converting this to a draft for now.

I'm also observing other weird issues such as the timeout tests never timing out when aws-smithy-client only has the test-util feature enabled in addition to the defaults.

I saw that pop up intermittently throughout development of the Timeouts feature and it made me feel like I was going nuts. It didn't come up in the final checks before merge so I thought it was fixed, sorry about that.


http://diffa.lshift.net is unconfigured

Page does not exist! Read the Full Documentation
Instructions for setting up username.github.com *
etc etc.

I've restored the gh-pages branch, and the website is back!


[HW]

Name: Ibnu Haidar
Email<EMAIL_ADDRESS>Linkedin Profile: https://www.linkedin.com/in/ibnuhaidar/
Attach the homework screenshots below for both step II and step III:

Thank all instructors

Hey there Ibnu, thank you for your submission. Nice job getting Through the workshop materials. The only thing we are missing is step 3 of the homework.
3. Complete the following short courses: Cassandra Data Modeling and Cassandra Query Language. Take screenshots of the "Congratulations" page from each course.
Please post an image of the "completed" screen once finished.


General Flexible Array data Structure

created a Repository of Data structure/C++/Arrays, and within put a general flexible array implemented in C++.

It’s 4th time you requested for change. Well, i guess next time you’ll come
up with an other change. To my knowledge I am not aware of this function.
On Wed, 19 Oct 2022 at 8:16 PM Lakshay @.***> wrote:

@.**** requested changes on this pull request.
A folder named "Arrays" is redundant. Also, add the driver function to
your code
—
Reply to this email directly, view it on GitHub
https://github.com/LakshaySK106/Algorithms/pull/110#pullrequestreview-1147795921,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZSHT35LB3XFJBLXNSUJKL3WEAGF3ANCNFSM6AAAAAARJGUAQU
.
You are receiving this because you authored the thread.Message ID:
@.***>

We call the main function the driver function.
Also, @mosafdarr you need to accept one thing if you're contributing to an open-source community you must follow their guidelines and you should make feature-added PRs with a brief description. Sometimes it may possible that your PR not get accepted even after a 2-3 week-long conversation and you believe your code is error-free. At the beginner level, you must start contributing with a little patience, and later you'll be contributing to an organization. Ppl doing this just for the sake of a hactoberfest-accepted label and making PRs of little GFGs codes with no description and not even following the contributing guidelines.
In general, if you ever feel any queries just ask the admin before making any PR and do submit the useful codes.


git: add attributes file to force LF endings

This is up to you to merge but I think it is good to have.

Agreed! LGTM :).


edc_capitalprojects concat with previous version

currently no established process for concat the email updated edc_capitalprojects with the previous version.
Enhancement:
use the scriptor process to make this integrated with established process like other data library updates.

#216 has most up to date working on this
the next steps would be:

finished the edc_capitalprojects.py script that would pull the loaded previous latest version table from recipe engine.
join with the new table ingested with geopandas under local library\tmp\ dir
write the joined table to library\tmp\EDCCapital
update the edc_capitalprojects.yml template to run the python script before the uploading step. Also add the note in the template that edc_capitalprojects.sh should be run before step 1
use data library as normal to run the workflow

Hey @td928 I remember I was the one who uploaded this dataset to data libraries, if you have a quick second today, can you walk me through this issue?

@mbh329 yeah for sure! although I might wait until we make a decision on whether this work will stay. Amanda is going to look at my work so far and determine whether it would be worth the efforts to do all the steps listed above.

Sounds good


Settlement reference rebase

Hi @jasperat, I've reviewed these changes. The changes I expected are all here. Ed.


Alert for INFO level, even if the "previousLevel" is the SAME (INFO)

Good afternoon all !
I am receiving an issue:
Everytime that I restart kapacitor or update a tickscript and save it (restart that tick), I am receiving INFO alerts, even if the previous level is INFO. Example for log:
{"id":"lwsn_portal_status_DART_hostname_teste","message":XXXXX","time":"2021-12-22T20:49:58.44Z","duration":0,"level":"INFO","data":{"series":[{"name":"lwsn_web_transaction","tags":{"agent_type":"ts","hostname":"xxxxxxx","id_agent":"418"},"columns":["time","inquire_time_taken_status","status_service","status_service_down","status_service_up"],"values":[["2021-12-22T20:49:58.44Z",1,"UP",-1,3]]}]},"previousLevel":"INFO","recoverable":false}
And I am using .stateChangesOnly().
Any ideas?

@nathanielc , Can you help me on this?


Changing path via adress bar causes page to refresh

Need to investigate. May be caused by incorrect React Router usage.

Google Music app works the same way if I change pre # part of the URL. Maybe if I switch to hash router problem will be solved.


Add GlitchedCassie with more arg & fix ConfrontingPlayers & add new prop to Scp173Ctrl & fix set class command

I don't understand why there are old commite
Grrr

Thanks for this PR however, I decided not to release another Synapse 2 version.
Therefore, I won't accept this PR but most of the ideas of this PR are already implemented into Synapse 3 and will be released with it


Update PLv8 to 3.1.4 - which is the latest release.

This may or may not fix #2361

BTW, PostGIS 3.3 was just released a few days ago, too. Let's update that too.


APEXMALHAR-2447 Notification from AbstractFileInputOperator when scanning directory

APEXMALHAR-2447 Added notification in AbstractFileInputOperator, when scanning the directory for the first time. Implementations can use this information in different ways such as notifying downstream operators with a control tuple that a new directory has been scanned.

can you assign someone to review this pull request. thanks

@sanjaypujare please review

Is the purpose of this JIRA to identify new directories? The code seems to be calling the hook visitDirectory() the first time the path is scanned.  This is irrespective of whether new directories are identified..

To give a notification for the top level directory that can be used to do
activities pertaining to the directory itself such as the one specified in
the JIRA APEXMALHAR-2447. Are you asking about notification when new
sub-directories are created under the top level directory?
On Thu, Mar 23, 2017 at 11:37 PM, Bhupesh Chawda<EMAIL_ADDRESS>wrote:

Is the purpose of this JIRA to identify new directories? The code seems to
be calling the hook visitDirectory() the first time the path is scanned.
This is irrespective of whether new directories are identified..
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/apache/apex-malhar/pull/583#issuecomment-288945097,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AK30FNYC8QNiYurJS-wztyQ-Q-T4feRxks5ro2SwgaJpZM4Mfkau
.

@prasannapramod What I mean is if scanDirectory only runs once, it would not notice any new directory which is created after the path is scanned. This is basically kind of a batch use case where you scan the path once and process anything that is there. Once done, you do not scan for any new files / directories in that path.
If there any specific use case you are trying to address? I did some changes to see if we can achieve the batch use case. Please see if the following helps: https://github.com/apache/apex-malhar/pull/567/files#diff-8b18d6df947f93d70436ad9b32645463

@bhupeshchawda As per my understanding the JIRA is about, Input operator does not read any tuples if the input directory is empty. So output directory is not created.  I provided a fix in form of notification in AbstractFileInputOperator and the implementations can use it for whatever purpose they seem fit.

@DT-Priyanka please review.

Can you please put some clear comments on how it should be used by concrete sub-classes. And update our concrete implementations to do it.
Also, we have handled similar case in FileSplitterInput class, check TimeBasedDirectoryScanner.scan() method. Just refer it once to see if something similar could help.

@DT-Priyanka I looked into this and to reliably know about empty folders independent of the scanner being used I would need to modify the scanner contract to return folder paths along with filepaths. Otherwise, I would need to make changes specifically in the directory scanner which would not available if some other scanner is used. What do you suggest?

I didn't quiet understand that. Can you please elaborate the approach first and then limitation. Sorry I might have forgot some discussions we had around this before.

@DT-Priyanka scanDirectory() method in AbstractFileInputOperator, only returns files, not folders, which means when the directory is empty whether parent directory or subdirectory is empty I cannot get the path as it doesn't return folder path. For ex:  Let's consider directory 'a' ,'b' parent directories. Directory 'c' is inside directory 'b'. Now, we have 2 empty directories. Directory 'a' & directory 'b/c'. But scanDirectory() method doesn't return this folder path. So, we cannot return notify about the empty directories. But when a file placed inside directory 'a', then the scanner returns file path. It's not returning folder paths because it's not in scanner contract to return it.
Two things are possible, first is to make a change in the scanner to do the callback but then it only works for that scanner and user set their own scanner then there will be no callback.
Second is to change the contract of the scan method to also return folder paths along with file paths and also return folder paths even if the folder is empty.

scanDirectory method does scan for empty folder as well, we don't have any check to filter out directories in scan method. You can write a quick test and ses "scanDirectory" method does list empty folders as well.

@DT-Priyanka In line number 718, scanDirectory is calling scan method and the if block in the scan method on line 1075 is not adding the folder to the set containing paths being return. In line number 1080, it's adding normal files only. So you can see scanner is not returning folders. So should I change the contract?

Oops, sorry I was looking into someother branch of malhar (3.5) Just took a look back, the behaviour was changed while fixing https://issues.apache.org/jira/browse/APEXMALHAR-2374
We need to understand the downside of sending back folder paths. And see which is the best way to fix it.

Here is my suggestion,
In scan method we do add all discovered directory paths to "pathSet", so they will be added to "pendingFiles". While iterating over "pedningFiles" in emitTuples method you can check for "isDirectory", provided it's true, you can always send a control tuple or you can do it selectively when directory is empty. I will say better send it always.
Let me know if this does sounds good to you.

@DT-Priyanka I already had this on the mind and did necessary changes in the branch. So will go ahead rise a pull request with this change. Thanks

@DT-Priyanka please see.

Please change branch name to APEXMALHAR jira name

@DT-Priyanka regarding chnaging branch name, doing so will require me to close pull request and reopen a new one. Instead can i use the same branch but ensure the commit message and pull request header have the apexmalhar jira number.

@prasannapramod  it is okay to close this PR and open new one. But please rename the branch, as per recent discussions it's important that we follow these guidelines.
Code looks okay to me. Once you rename the branch I should merge it. In new PR please provide reference to this one.

Pull request is closed as new pull request is raised against apex malhar.

https://github.com/apache/apex-malhar/pull/619


Allow disabling all output from xout, to ease multi-threading support

Added DisableOutput(void) member function to both elx::ElastixFilter and  elx::TransformixFilter, which allows skipping an internal xoutSetup call, during GenerateData(). Effectively suppressed the output that is otherwise produced, when doing xl::xout["some-stream"] << "some-output".
Aims to ease multi-threading support, as discussed with Konstantinos Ntatsis (@ntatsisk) .

Hi @N-Dekker, I tried this PR locally and I confirm that it solves the issues with multi-threading in the application I am working on. The results and the performance gain is as expected. I only had to repeat the changes for Transformix since I use that in parallel as well. So, could you also add TransformixFilter::DisableOutput() together with skipping its xoutSetup call here? Thanks!

Discussed at the weekly internal elastix sprint. Marius (@mstaring) and Stefan (@stefanklein) think it's OK  😃


No integration with params

What is preventing this library from providing insight into params and providing the ability to update them with the push and replace actions? No support for route params is the one thing holding me back from trying to adopt this library.

I enjoy the simplicity of this choice. I don't have to go hunting for the difference between react-router and this lib — instead I rely on location and history from react-router. Here's an example from my search component where I want to keep the path, but only change the q param:
search(q) {
  const { location, history, pushPath } = this.props;
  const newPath = history.createPath(location.pathname, { ...location.query, q });
  pushPath(newPath);
}

What if I want to do this from another action creator in a store and don't have access to props?

Maybe @jlongster and others has got some ideas here, but in my mind there's a couple of different options:

Inject both deps
const { location, history, someActionCreator } = this.props;
someActionCreator(location, history);

https://github.com/rackt/react-router/blob/master/docs/guides/advanced/NavigatingOutsideOfComponents.md and inject location

Use redux-router which rely on middleware to handle this

Currently history has no way of getting the current location, so location must be passed to the action creator somehow. One potential option for redux-simple-router would be to put the current location in the store (instead of the path and state), but I'm not sure how that would work. E.g. if pushPath should keep the same api as today, it needs access to history in order to call history.createLocation, but currently only syncReduxAndRouter has access to it. If we want to give pushPath access to history we can't keep the code as stateless as it is, so we'll have to create an instance of redux-simple-router on which you can get pushPath. (Without using the history methods I think we can easily end up in a place where we try to re-implement how it handles location etc).
The library is just about a 100 lines of code, so it would be awesome if you played around with it and found a way to make it work (that's basically what I've been doing myself with the lib to make it work for my use cases).

The solution I've found is to keep routing confined to components.
Instead of doing all routing at the top level via Router and Route components each component (usually the top App one) is responsible for routing of all it's child components. For example, inside the top level App component, I might render:
{renderRoutes(path, {
    '/': IndexView,
    '/create': CreateView,
    '/item/:id': ItemView,
    'item/:id/edit': EditView
})}

All that's needed to do routing is the current path which can be passed into the top level component from your redux store. renderRoutes then checks the path against the patterns and renders the appropriate component (IndexView, CreateView, etc). renderRoutes also derives a params object from the path and the selected route pattern, then passes that params object to the child component.
Here's a gist of the renderRoutes function if you want to look at it.

I think the above responses have answered it pretty well. The goal of this library is to be as simple as possible and encourage using react-router directly. The more we try to abstract it away, the more we take on for maintaining and documenting. If you look at the code it's already quite complex to make sure both are in sync just for URLs. You can use redux-router if you want more tight integration, but if you compare the different codebases you'll see how much more complex things get.


shooting

Why doesn't Vandal shoot in a row?
Can you shoot in a row?

yeah vandal just 1 tap with CD how to fix it

Added Full-Auto Mode. The problem is fixed


CAR support in MapSim and the command line tool

for simplicity I assume we always do full-sky in the tool, using SONoiseSimulator directly we can instead provide a different shape and wcs

need to merge this, @msyriac feedback is still welcome.


question: mutex performance

This library protects the backend with a package-level mutex, how is the performance impact?
Are there any use cases that we can't recommend flextime?

Thanks for the question.
Actually, the time acquisition itself is not too low-cost process, so the overhead of flextime will not be a big deal.
I've added a benchmark in #9, and here are the results. The overhead is about this level, so it won't be much of a problem.
$ go test -bench . -benchmem
goos: darwin
goarch: amd64
pkg: github.com/Songmu/flextime
BenchmarkFlextime_Now-8                 13926559                83.9 ns/op             0 B/op          0 allocs/op
BenchmarkStd_Now-8                      17668424                68.3 ns/op             0 B/op          0 allocs/op
BenchmarkFlextime_Now_concur-8           5111466               204 ns/op               0 B/op          0 allocs/op
BenchmarkStd_Now_concur-8                5730296               202 ns/op               0 B/op          0 allocs/op
PASS
ok      github.com/Songmu/flextime      5.303s

Great thanks.
This package makes testing about std time pkg a lot easier. :clap:


Instance and TInstance: Own=Shared by default

Simplifies most of Instance usages, and is consistent with Ref/TRef.
bors try

bors try

bors r+


Added MyAnalytics service plan ID to Office 365 E5

MyAnalytics service plan ID 33c4f319-9bdd-48d6-9c4d-410b750a4a5a added to Office 365 E5 license

@jofried : Thanks for your contribution! The author, @ajayanti1, has been notified to review your proposed change.

Hi, @Jak-MS
Aruna is a new publisher who was stymied by the conflict so I published the content for her. I'm not the author of this PR, but
#please-close


Add relevant content to the minor sidebar

Now that we've removed facebook/twitter and news posts, we have this sidebar with a lot of flexibility. Let's encourage users to explore the site more


Set maxlength on EditView

I have a current application where I want to insert a number (u32) in a EditView but with limited space. I know that excact, maximum length (10) and dont want the cursor to scroll to position 11, when I type in more that 10 characters, because the first one then disappears.
I tried to solve it via callbacks
EditView::new()
    .on_edit(move |cursive: &mut Cursive, s: &str, cur: usize| {
        cursive.call_on_id("comid", |view: &mut EditView| {
            view.set_cursor(cmp::min(cur, 9));
        });
    })
    .with_id("comid")
    .fixed_width(10)

but no way, even worse, it will insert the characters at the current posotion, resulting in shifting all the content to the right.
I understand, that this is a desired behavoir for any text, but not in my application.
So i request two (and ½) changes:

[ ] Add an option to replace instead of insert content in a textview
[ ]  Add a method to set the maximum length of a editview to not let the cursor go out of this range
[ ] (optional) listen on the Insert key to toggle the replace/insert behavoir

Thanks for the report!
EditViews are indeed missing features to limit their content sizes.
As for replacing, that's interesting; I'll see what I can do.

I see that this is partialy implemented. You can use set_max_content_width to set the max width, but the options above still apply.
If you type in x characters the cursor will jump to the x+1 position, meaning that the first character will not be shown anmymore.
Also it is not possible to overwrite the characters under the cursor, but instead you have to delete some first.


Questions about the DETR's performance

Thank you very much for your work.
Because the experiments were conducted on DDETR, I would like to know if this training strategy has any enhancement to the original DETR?
And I have some care for the growth of its training GPU memory usage.
If you have the corresponding data then thank you very much.

@ddwhzh Thanks for your interest. We will include more details on the concern on the training GPU memory consumption in the arXiv revision soon.
In general, the additional memory consumption is mild.

THX


Update README.md

https://rustup.sh seems to be a malicious link. https://rustup.rs is the correct link for the tool in question

thanks!


Error UnpicklingError: invalid load key, '<'. at the start of [training]

Hello - having issues with the training step of the process on the google colab notebook.  I've tried 2 different datasets both created with the latest windows version.  All prior steps in the colab execute good.  Dataset copied to google drive as a zip and unzipped files with no difference. Runtime set as GPU.
Any help is appreciated.  Thx.
INFO:root:Setting batch size to 38, learning rate to 0.0003082207001484488. (15GB GPU memory free)
INFO:root:Loading model...
INFO:root:Loaded model
INFO:root:Loading data...
2 train files, 1 test files
INFO:root:Loaded data
UnpicklingError                           Traceback (most recent call last)
 in ()
20     iters_per_checkpoint=checkpoint_frequency,
21     iters_per_backup_checkpoint=backup_checkpoint_frequency,
---> 22     train_size=1-validation_size,
23 )
3 frames
/usr/local/lib/python3.7/dist-packages/torch/serialization.py in _legacy_load(f, map_location, pickle_module, **pickle_load_args)
775             "functionality.")
776
--> 777     magic_number = pickle_module.load(f, **pickle_load_args)
778     if magic_number != MAGIC_NUMBER:
779         raise RuntimeError("Invalid magic number; corrupt file?")
UnpicklingError: invalid load key, '<'.

oh good, someone else is getting this error too. I'm getting the same error as well.
INFO:root:Setting batch size to 28, learning rate to 0.0002645751311064591. (15GB GPU memory free)
INFO:root:Loading model...
INFO:root:Loaded model
INFO:root:Loading data...
1690 train files, 423 test files
INFO:root:Loaded data

UnpicklingError                           Traceback (most recent call last)
 in ()
20     iters_per_checkpoint=checkpoint_frequency,
21     iters_per_backup_checkpoint=backup_checkpoint_frequency,
---> 22     train_size=1-validation_size,
23 )
3 frames
/usr/local/lib/python3.7/dist-packages/torch/serialization.py in _legacy_load(f, map_location, pickle_module, **pickle_load_args)
775             "functionality.")
776
--> 777     magic_number = pickle_module.load(f, **pickle_load_args)
778     if magic_number != MAGIC_NUMBER:
779         raise RuntimeError("Invalid magic number; corrupt file?")
UnpicklingError: invalid load key, '<'.

Hi @Rleuc and @mellow-tnk. Please could you link me to a zip of your dataset for me to test with (or send to me via email if you'd like to keep it private)

@BenAAndrew
I sent you a link to goole drive file with my  dataset.
@mellow-tnk
Would like to try your soln, but how exactly do you run a collab offline?
Thanks!

@Rleuc
just install it to your computer using the installation guide. There's a window executable you can use.
https://github.com/BenAAndrew/Voice-Cloning-App/blob/main/install.md

Thanks @mellow-tnk
Unfortunately working with AMD graphics card and local training not an option with CPU only version.
@BenAAndrew I tried with the full David A. dataset and get the same error.

@BenAAndrew Hi, would it be possible to create an empty or initial checkpoint file manually to get past this error? If so, what is the format? I just don't have a local nvidia card to start.
Thanks

uberduck is supporting this. you can go to their discord and use their other voice cloning colab in the meantime. It's in the #notebook room and there's a lot of active participation and people helping each other.

@Rleuc uberduck is supporting this. you can go to their discord and use their other voice cloning colab in the meantime. It's in the #notebook room and there's a lot of active participation and people helping each other.

can u send the link

@steve4655 @Rleuc
I have found a solution to this. Take the pretrained.pt file that gets downloaded in the notebook files section and place into the checkpoints folder in your drive. Also, the transfer learning path should be set to 'None'. I also had to edit the checkpoint path in the notebook as the form was not giving an option to select from the drop-down.
This should get the training started.

just using 'transfer_learning_path=None' did the job for me!
thanks :)

@g2zer0 Using transfer_learning_path is very beneficial to improving the quality of your model. Setting the transfer learning path to None will work, but it's not recommended. I've been training a model for quite some time now without the transfer learning and though the sound of voice sounds great, all it says is gibberish.
The cause of the pickling error is because the automatic downloading that happens in the Colab with gdown isn't working properly. The pretrained model is too large for virus scanning, so instead of downloading the model, gdown downloads Google Drive's HTML virus scanning message.
You can verify this by going into the Colab file explorer and downloading the failed model from /content/Voice-Cloning-App/pretrained.pt. It'll be there after running the "Install and import ML packages" section.
The gdown maintainers are aware that large files can't be downloaded with gdown, and you can read about it here.
In short, download pretrained.pt manually in a browser, put it in your drive somewhere, and change the transfer_learning_path to that new location.

@colossatr0n ah, that explains the gibberish result :) thank you for explaining.


⚠ Adacta-fintech.com has degraded performance

In a1a8978, Adacta-fintech.com (https://www.adacta-fintech.com) experienced degraded performance:

HTTP code: 200
Response time: 2365 ms

Resolved: Adacta-fintech.com performance has improved in 44637c4 after 9 minutes.


query: add endpointset flow

[ ] I added CHANGELOG entry for this change.
[ ] Change is not relevant to the end user.

Changes

This PR is part of implementing the Unified Endpoint Proposal.
I have implemented Info gRPC Service in #4282 and also added --endpoint flag. But new endpoint flow is baked into the existing storeset flow. This can make the migration process difficult as discussed here. So I have added new endpoint flow in a separate file.
Most of the code is copied from storeset.go but I have tried to make it more generic.

Verification

Added unit tests. ( Again similar to unit tests of storeset but made more generic and covered some additional scenarios relevant to endpoint )

@hitanshu-mehta just an FYI your first link is broken - it should be https://thanos.io/tip/proposals-accepted/202101-endpoint-discovery.md/

@hitanshu-mehta just an FYI your first link is broken - it should be https://thanos.io/tip/proposals-accepted/202101-endpoint-discovery.md/

Changed it. Thank you!

@bwplotka Agree with the reasons. I will do the required changes :)

WDYT? @hitanshu-mehta ? Up for challenge? I am happy to work with you and do reviews everyday so this can land for Thanos v0.22.0 which we plan to cut on Monday.

Up for the challenge!! Thank you the help and lets merge it by Monday 🚀

🎉

🎉 hi, could it support file sd?


As a user, I can find important items on the board by using the customisable "Quick Filters" above >> Try clicking the "Only My Issues" Quick Filter above

Creating Quick Filters
You can add your own Quick Filters in the board configuration (select Board > Configure)

➤ Nick Skinner commented:
Joined Sample Sprint 2 1 days 4 hours 10 minutes ago


feat: add assemblyscript-json's Value Serializer

This PR uses JSON.Value from assemblyscript-json.  This allows deserializing fields in any order.

@gagdiez I think you have to add me to the project in order for tests to run or choose to run them manually.
But otherwise this should be good to go.  Unfortunately I had to remove the current JSON string serializer because having both that and the Value one made the compiler unhappy for some reason.  I plan to look into this as I have seen it in other issues.
Also I wanted to make the parse and stringify exported individually as then you could choose to do import * as JSON ... if that is what you want but making it class/namespace removes the option of importing one individually.
Let me know what you think!


EKF: Add additional velocity interface to use landing beacon data

See https://github.com/PX4/Firmware/pull/8160 for details

@priseborough I ask you if it is possible to extend this velocity interface to include the vertical velocity Z component? The reason is that for the case of the beacon, we are using the X/Y velocities, but when we have full pose estimation of a landing target being visually tracked (which I'll be adding the extension after PX4/Firmware#8160 is merged), we also have the Z component of it.

It is possible, but should be done in conjunction with extending the landing_target_pose message. This  should include the z states, corresponding variances and separate validity for the vertical states.
When this is in place I will create another PR for ecl/EKF.

It is possible, but should be done in conjunction with extending the landing_target_pose message. This should include the z states, corresponding variances and separate validity for the vertical states.
When this is in place I will create another PR for ecl/EKF.

Sounds good to me. Will add it then when I do I do the upgrade.

SITL test log here: https://logs.px4.io/plot_app?log=97145626-db8c-4743-90f8-c4632a3bcde8
The following plot shows the velocity innovations from the GPS and landing target.


Add Pulse installation instructions

I'm gonna close this out since I can't figure out what Pulse is and the user that submitted the PR didn't provide any explanation and deleted their account.


add test for double free in loader_impl.c

Description
add test for double free in loader_impl.c
just compile the core_plugin so you have this /plugins/core_plugin in your build folder.
Fixes #(issue_no)

Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[ ] Documentation update

Checklist:

[ ] I have performed a self-review of my own code.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] I have made corresponding changes to the documentation.
[ ] My changes generate no new warnings.
[ ] I have added tests/screenshots (if any) that prove my fix is effective or that my feature works.
[ ] I have tested the tests implicated (if any) by my own code and they pass (make test or ctest -VV -R <test-name>).
[ ] If my change is significant or breaking, I have passed all tests with ./docker-compose.sh build &> output and attached the output.
[ ] I have tested my code with OPTION_BUILD_SANITIZER or ./docker-compose.sh test &> output and OPTION_TEST_MEMORYCHECK.
[ ] I have tested with Helgrind in case my code works with threading.
[ ] I have run make clang-format in order to format my code and my code follows the style guidelines.

If you are unclear about any of the above checks, have a look at our documentation here.

cmake -DOPTION_BUILD_LOADERS_PY=On -DOPTION_BUILD_LOADERS_NODE=On -DOPTION_SELF_CONTAINED=ON  -DOPTION_BUILD_LOADERS_C=On  -DOPTION_BUILD_TESTS=On -DOPTION_BUILD_EXTENSIONS_LOAD=ON -DCMAKE_BUILD_TYPE=Debug .. && make core_plugin core_plugin-create-plugin-dir metacall-plugin-extension-double-free-test rapid_json_serial && ./metacall-plugin-extension-double-free-testd

https://github.com/metacall/core/commit/3e2a90e0cd66ab342d07b69d12a00b43ac250516
https://github.com/metacall/core/commit/2a1ebfa2333425606eb5cdb8d48c3aa65b099488
https://github.com/metacall/core/commit/d4e344169ea1681b18d07f362f51364d5a6d5574
The code is a spaghetti but we will improve this eventually.


Cleared logs come back after switching to other function and come back

Steps:

Run a function to create some logs
Click Clear, which correctly clears the logs window
Go to a different function and come back

Result: the cleared logs are back
We need to make the clear action really clear the logs, and not simply blank the current logs window.

Cleared logs come back even toggling between tabs in the same function.

Yeah, this is kind of annoying. It acts more like a bug.

Clearing milestone for re-triage

Closing since it's very difficult to implement this with our current design. The right solution is https://github.com/Azure/azure-functions-ux/issues/608


Upgrade Parcel V2

https://trello.com/c/7NnXpdY6
We recently received a number of Dependabot security warnings [1] caused our dependency on Parcel V1.
This upgrade was a bit fiddly because most of our build dependencies were out-of-date and the fact that Parcel V2 doesn't work on Node V10.
I therefore broke the process up into steps:

Removing noise caused by newline character differences (469c510)
Cleaning up unused / miscategorized dependencies (d773a9f...471a9f5)
Upgrading build dependencies(21c005d...4bfc7db)
Upgrading Node V14 (38d6d4c)
Upgrading Parcel V2 (1c85226...18ed4b1)

[1]
https://github.com/futurelearn/markdown-editor/security/dependabot/example/package-lock.json/glob-parent/open
https://github.com/futurelearn/markdown-editor/security/dependabot/example/package-lock.json/is-svg/open
https://github.com/futurelearn/markdown-editor/security/dependabot/example/package-lock.json/node-forge/open

Thanks for working on this @sebjacobs! I have a few questions regarding the changes made so far so I've left a few comments.

Thanks for taking a look @kohrVid! I have tweaked the tsconfig.json based on your feedback (
b7c93da) and have had another go at switching from node-sass to sass (0c4103f).

I'm personally having trouble running the Cypress tests for this branch locally (I get the following error: UnhandledPromiseRejectionWarning: Error: Could not locate the bindings file) but as the tests seem to pass in CI, I wonder if I there's just an issue with my setup.

🤔 I wonder whether there's some additional cache you need to clear after upgrading to Node v14. For example:

.cache
node_modules
example/node_modules
example/.parcel-cache
or example/dist?

I was able to run the tests, but one of the consistently fails for me: supports multiple code blocks of different languages with:

CypressError: Timed out retrying: expected '' to have value '~javascript\nvar name = "code";\n~\n\n~python\ndef name:\n    code\n~', but the value was '~javascript\nvar name = "code";\n~\n\n~~~\ndef name:\n    code\n~~~'

I also have to manually click "Run all tests" in Cypress before anything happens, but this was the case before.

@squiddy-bot merge


fix: moved axios to dev dependencies

This PR resolves CS-41235.

@vkalta Please resolve the conflict.


feat: add interpolation for config options

Exclude errors from 'mpi' mod missing
Allow variable interpolations on config options

TODO

Add docs
Include in changelog

Another thing we should probably add is glob expansion of paths /usr/include/**/

I am closing this in favour of #284 which has just been merged. Overloading get does not work when you combine path interpolation with glob patterns since the glob patterns will attempt to be erroneously interpolated by get. I have also left a comment as to why it is okay and not unsafe to operate directly on the strings (see PR review).
During the next few weeks I will be porting some of the changes proposed here into master, async functionality


[BUG]

Describe the bug 🐛
python -m pip install git+https://github.com/kraanzu/dooit.git

using the above command the installation failed on my system,

macos catalina
using pip3 provided by macos homebrew python 3.10.4

the installation failed because i did not have the poetry python package installed.
To Reproduce 🐣
easy fix,
$(brew --prefix)/bin/pip3 install poetry

resolved the poetry build dep issue.
Expected behavior  🤔
not exactly sure, but would consider the installtion to install the package without issues or errors during the installation process.
Screenshots 🧐
see below
Desktop (please complete the following information):  🤖
stated above
Additional context 📝
─λ /usr/local/bin/pip3 install --verbose git+https://github.com/kraanzu/dooit.git                                                           0 (0.000s)
Using pip 22.1.1 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)
Collecting git+https://github.com/kraanzu/dooit.git
  Cloning https://github.com/kraanzu/dooit.git to /private/var/folders/f7/qpd710l91bvcz5f6lbpm1p840000gn/T/pip-req-build-_xa435_e
  Running command git version
  git version 2.36.1
  Running command git clone --filter=blob:none https://github.com/kraanzu/dooit.git /private/var/folders/f7/qpd710l91bvcz5f6lbpm1p840000gn/T/pip-req-build-_xa435_e
  Cloning into '/private/var/folders/f7/qpd710l91bvcz5f6lbpm1p840000gn/T/pip-req-build-_xa435_e'...

  Installing build dependencies ... done
  Running command Getting requirements to build wheel
  Error in sitecustomize; set PYTHONVERBOSE for traceback:
  AssertionError:
  Getting requirements to build wheel ... done
ERROR: Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/pip/_internal/cli/base_command.py", line 167, in exc_logging_wrapper
    status = run_func(*args)
  File "/usr/local/lib/python3.10/site-packages/pip/_internal/cli/req_command.py", line 205, in wrapper
    return func(self, options, args)
  File "/usr/local/lib/python3.10/site-packages/pip/_internal/commands/install.py", line 341, in run
    requirement_set = resolver.resolve(
  File "/usr/local/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 75, in resolve
    collected = self.factory.collect_root_requirements(root_reqs)
  File "/usr/local/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 506, in collect_root_requirements
    req = self._make_requirement_from_install_req(
  File "/usr/local/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 468, in _make_requirement_from_install_req
    cand = self._make_candidate_from_link(
  File "/usr/local/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 215, in _make_candidate_from_link
    self._link_candidate_cache[link] = LinkCandidate(
  File "/usr/local/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 291, in __init__
    super().__init__(
  File "/usr/local/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 161, in __init__
    self.dist = self._prepare()
  File "/usr/local/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 230, in _prepare
    dist = self._prepare_distribution()
  File "/usr/local/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 302, in _prepare_distribution
    return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
  File "/usr/local/lib/python3.10/site-packages/pip/_internal/operations/prepare.py", line 428, in prepare_linked_requirement
    return self._prepare_linked_requirement(req, parallel_builds)
  File "/usr/local/lib/python3.10/site-packages/pip/_internal/operations/prepare.py", line 497, in _prepare_linked_requirement
    dist = _get_prepared_distribution(
  File "/usr/local/lib/python3.10/site-packages/pip/_internal/operations/prepare.py", line 58, in _get_prepared_distribution
    abstract_dist.prepare_distribution_metadata(
  File "/usr/local/lib/python3.10/site-packages/pip/_internal/distributions/sdist.py", line 48, in prepare_distribution_metadata
    self._install_build_reqs(finder)
  File "/usr/local/lib/python3.10/site-packages/pip/_internal/distributions/sdist.py", line 118, in _install_build_reqs
    build_reqs = self._get_build_requires_wheel()
  File "/usr/local/lib/python3.10/site-packages/pip/_internal/distributions/sdist.py", line 95, in _get_build_requires_wheel
    return backend.get_requires_for_build_wheel()
  File "/usr/local/lib/python3.10/site-packages/pip/_internal/utils/misc.py", line 685, in get_requires_for_build_wheel
    return super().get_requires_for_build_wheel(config_settings=cs)
  File "/usr/local/lib/python3.10/site-packages/pip/_vendor/pep517/wrappers.py", line 172, in get_requires_for_build_wheel
    return self._call_hook('get_requires_for_build_wheel', {
  File "/usr/local/lib/python3.10/site-packages/pip/_vendor/pep517/wrappers.py", line 332, in _call_hook
    raise BackendUnavailable(data.get('traceback', ''))
pip._vendor.pep517.wrappers.BackendUnavailable: Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 89, in _build_backend
    obj = import_module(mod_path)
  File<EMAIL_ADDRESS>line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'poetry'

I've added poetry to dependencies in this commit
Was it the only problem or you came across any other errors else while installing?

I can confirm the installation worked without any issues.


Can't install

When trying to install I get the error:
> bundle
Fetching source index for http://rubygems.org/
You have requested:
  neo4j ~> 1.3.0

The bundle currently has neo4j locked at 1.3.0.
Try running `bundle update neo4j`

# Gemfile
source 'http://rubygems.org'

gem "neo4j", "~> 1.3.0"
gem "devise-neo4j"

Don't understand what's wrong since the devise-neo4j has the correct dependency on neo4j.rb
s.add_runtime_dependency "neo4j", "~> 1.1"
Also, I'm using devise-neo4j with neo4j.rb version 1.3.0
I can't reproduce this error:
When I run bundle with that gemfile it works:
andreas@andreas-dell:~/qwe$ bundle
Fetching source index for http://rubygems.org/
Using rake (<IP_ADDRESS>)
Using multi_json (1.0.4)
Using activesupport (3.1.3)
Using builder (3.0.0)
Using i18n (0.6.0)
Using activemodel (3.1.3)
Using erubis (2.7.0)
Using rack (1.3.5)
Using rack-cache (1.1)
Using rack-mount (0.8.3)
Using rack-test (0.6.1)
Using hike (1.2.1)
Using tilt (1.3.3)
Using sprockets (2.0.3)
Using actionpack (3.1.3)
Using addressable (2.2.6)
Using bcrypt-ruby (3.0.1)
Using orm_adapter (0.0.5)
Using warden (1.1.0)
Installing devise (1.5.2)
Using rack-ssl (1.3.2)
Using json (1.6.3)
Using rdoc (3.11)
Using thor (0.14.6)
Using railties (3.1.3)
Using will_paginate (3.0.pre4)
Using neo4j (1.3.0)
Using multipart-post (1.1.4)
Using faraday (0.6.1)
Using multi_xml (0.2.2)
Using oa-core (0.2.6)
Using oauth (0.4.5)
Using oauth2 (0.4.1)
Using oa-oauth (0.2.6)
Using ruby-openid (2.1.8)
Using rack-openid (1.3.1)
Using ruby-openid-apps-discovery (1.2.0)
Using oa-openid (0.2.6)
Using devise-neo4j (1.0.3)
Using bundler (1.0.21)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

Urhh. That's totally my fault.
What happened I guess is that I still was using some of MRI gems.
So I deleted Gemfile.lock and bundled everything again which of course fixed the issue.
You can close the issue.
My apologies  the hassle.