No user creation in ldap with config.ldap_create_user = true in the Devise Initializer

On a clean Rails 4 install I am testing out Devise with devise_ldap_authenticatable.
With config.ldap_create_user = true set in the Devise initializer, when I signup a new user no entry is created in the ldap.  While tailing the ldap logs I see no request being made to create the user.  While observing the development log output in Rails it looks as if it is just querying the Rails relational database instead of calling out to the LDAP.
As well as the user not getting created, the user is "Logged In" anyway even though no ldap entry was created.  After logging out and attempting to login again with the credentials that the user used to signup, the user is unable to login.
It seems that if this config.ldap_create_user is set to true that if no entry is created in the ldap for whatever reason the user should not be logged in anyway.
Is there some other configuration that I may be missing?

Even if this is off-topic, I've been looking for this too ! This should be added to the gem if someone's willing to code it.

@Startouf  I think the main issue here is that different servers have different requirements. Eventually you would have to get down to the code and figure out what attributes you need to set up for your server.. If you ignore all attributes from the sample, it is 3 lines of code anyway. Seems already pretty simple..

Yes you're right, my point was that I didn't know it was possible to add to the ldap using this gem. I thought I had to fall back to Net::Ldap to do this (though it's most likely not that much more difficult)

Any news ? Still looking for that


Unexpected output size for depthwise convolution with stride=2, dilation=3

Please make sure that this is a bug. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:bug_template
System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): CentOS
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary): Apr5 tf-nightly-gpu
TensorFlow version (use command below): v1.12.0-11808-ga1e3d4490d 1.14.1-dev20190405
Python version: 3.6
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version: 10.1
GPU model and memory: Tesla

You can collect some of this information using our environment capture script
You can also obtain the TensorFlow version with
python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"
Describe the current behavior
input shape = [?, 128, 128, 8]
output = depthwise_conv2d(input, filters=8, kernel_size=3,
strides=(2, 2),
dilation_rate=(3, 3),
padding='same')
output shape = [?, 65, 65, 8]
Describe the expected behavior
Expected output shape:
output = [?, 64, 64, 8]
Code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate the problem.
Other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.

@olegarch, In order to expedite the trouble-shooting process, please provide a code snippet to reproduce the issue reported here. Thanks!

Automatically closing due to lack of recent activity. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!


zfarm Suggestion: Calculate for D-S stancedance

Usually, you get a better resource earn rate if you start out in D and switch over to S right before you get to the cell with the cache. Can you add an option to zfarm to calculate the effectiveness of this (extremely handson) stancedance for each level?

This is borderline cheating and I don’t want to encourage it, so I won’t implement this feature. Anyway, you can just use the optimal D zone for this, it’ll usually be the same as the optimal D+S zone.


Weight regularization must move out of layers

Weight regularization must move out of each layer to a common location.

:octocat: cibot: Thank you for posting issue #762. The person in charge will reply soon.


"pod install" step missing

Following the install and run instructions for ios on a fresh cloned project will fail because the pods are not installed.
Once you run cd example/ios && pod install everything goes fine.
Thank you 😄

I added this in #46

@orta I wonder if this isn't something that could be done in the npm script?

Yeah it can easily be added in the npm script.
Something like:
"install:ios": "bundle install --binstubs ./examples/ios; bundle exec pod install;

Submitted PR to @orta's fork to add the npm script. https://github.com/orta/native-navigation/pull/1

I think it should be noted that you actualy need pod


Fix: Use regular ThreadLocal instead of the netty one in Schema

Motivation
Since pulsar-client-schema does not depend on netty, we can't use FastThreadLocal from netty or it will cause dependency problems when user pull in pulsar-client.

run java8 tests

rerun java8 tests


[BEAM-9305] Allow value provider query strings in _CustomBigQuerySource

This PR relates to https://issues.apache.org/jira/browse/BEAM-9305 and allows for the usage of ValueProvider query strings in _ReadFromBigQuery.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[x] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

R: @pabloem
As I have little experience with the BQ module, I'm a bit unsure if the test was placed in the correct module.

Since estimate_size is called before split and the uses self.query, I realised the value provider evaluation actually needs to take place before split is called. Does this make sense?

How about something like this instead @pabloem ? I noticed that gcs_locationsupports ValueProviders and is wrapped & initialised in the _ReadFromBigQuery transform. This reduces clutter in the _CustomBigQuerySource.

Adding @kamilwu as you were mentioned in the Jira ticket too.

@kamilwu Looks like the AnnotateText PTransform mention in CHANGES.md was removed in https://github.com/apache/beam/commit/0cc577134b9e98b32020efab2ca07ccd1665f7cb#diff-8b1c3fd0d4a6765c16dfd18509182f9d.
So I added it back again.

I'm srry @EDjur - the expand method runs at template construction, so the change currently will not work with parameters provided at execution time. You'd need to call get on the valueprovider in estimate_size/split/etc like we had discussed.

The gcs_location value provider is evaluated in the expand method: https://github.com/apache/beam/pull/11040/files#diff-683ba04a0e750cf0456b9b119393ad64R1587. Is that a bug then?

ah good catch. Yes, that would make it a bug..

Is that a bug then?

Yes, this might be a bug. I don't know a good solution at the moment though... this is more complicated, because we have to fallback to temp_location from pipeline options if gcs_location is empty

@EDjur Could you create a JIRA ticket regarding gcs_location value provider evaluation and assign it to me afterwards? Thanks.

Sure, JIRA ticket is at https://issues.apache.org/jira/browse/BEAM-9506

LGTM, let's wait for @pabloem's final review as well

Thanks @EDjur for the contribution! Thanks @kamilwu for reviewing

It looks like this change may have broken apache_beam.io.gcp.bigquery_io_read_it_test.BigqueryIOReadIT.test_bigquery_read_1M_python in Python postcommits, e.g. https://builds.apache.org/job/beam_PostCommit_Python2/2036/
Could you take a look @EDjur and/or @kamilwu?

Thanks for catching this @TheNeuralBit . I have https://github.com/apache/beam/pull/11206 out to fix this.

Thank you for catching it @pabloem :)


Added a modification in scale for the pre-title on mobile devices

Added pre-title scale modifications to match that of the census logo.
Looks good on mobile and desktop.
See examples:

 Rescale hero pre-title image for mobile

 Rescale hero pre-title image for mobile


base compaction threads

@siddontang @lishihai9017 PTAL

@hhkbp2 PTAL

@lishihai9017 PTAL

LGTM

LGTM

Please fix the conflict.
@zhangjinpeng1987


Already push local sphinx documentation to GitHub?

While preparing for unit3 I would like to make sure, if we are already supposed to push the local sphinx documentation to the remote repository.

the build folder is excluded via .gitignore
what about the files make.bat and Makefile in doc?
should everything in source be included?

The build folder will be excluded from the repository, but all the other files should be there (see the example repo).


[LDPlayer] Start Quest button not pressable with FGA on

Describe the bug
Can't press the Start Quest button when turning FGA overlay on from outside the node.
Turning FGA off does not enable the button by itself. Entering a servant/CE select screen or going back to reselect a support with FGA off enables the button.
Starting from within the button works perfectly fine, it's just the button not working.
Video
debug mode recording from within the app
video from the emulator recording, with the workaround
Device Info (please fill at-least 'Device model'):

Device model: LDPlayer emulator

This was a bug from a few months ago: When you click on the dots at the top to change the party (for example 1st dot to change to the 1st party), and you're already on that party, the Start Quest button doesn't do anything anymore.
The workaround introduced back then was to not click on the dot if it's already yellow.
Ths works on 99 % of all devices, but on your emulator it seems to fail. I can't tell you why, though.

Well, I guess nothing to do about it then.


MDP solving with LP

Bug solved: Linear Programming was using Fortran Like Order which was sending wrong values to the h matrix

test_LP.py modified in order to test Linear Programming

I didn't even have time to change the test_LP.py file author. If you add it please put @silgon in the file ;). I also have a question on how you created the files. Because it says Created on $date. Were they generated automatically? if so, how?

I know it's a pull request, but I also noticed something.  You should also change this:
f = self._cvxmat(_np.ones((self.S, 1)))
h = _np.array(self.R).reshape(self.S * self.A, 1)
h = self._cvxmat(h, tc='d')
M = _np.zeros((self.A * self.S, self.S))
for aa in range(self.A):
   pos = (aa + 1) * self.S
    M[(pos - self.S):pos, :] = (
        self.discount * self.P[aa] - _sp.eye(self.S, self.S))
M = self._cvxmat(M)

to this:
f = self._cvxmat(_np.ones((self.S, 1)))
M = _np.zeros((self.A * self.S, self.S))
h = np.zeros((self.A * self.S,))
for aa in range(self.A):
    pos = (aa + 1) * self.S
    M[(pos - self.S):pos, :] = (
        self.discount * self.P[aa] - _sp.eye(self.S, self.S))
    # if R has dimensions (S, A)
    h[(pos - S):pos] = np.dot(P[aa], R[:, aa])
    # if R has dimensions (S,)
    # h[(pos - S):pos] = np.dot(P[aa], R)
M = self._cvxmat(M)
h = self._cvxmat(h, tc='d')

Look at the commented code, it should be probably a function that takes into account the dimension of R


Recent updates to the custom LED theme page include enhanced color pi…

Updates to the custom LED theme page include enhanced color picker placement options (top, bottom, left, or right) to ensure it never appears off-screen and remains accessible. Additionally, new button layouts for Haute42 (13 & 16 buttons) and DuelPad (16 buttons) have been added to the preview layout options dropdown list.
updates made to the custom led theme page
users can now select where the color picker will appear top, bottom, left, or right preventing picker appearing off screen and unusable
updates made to the preview layout options drop down list
added Haute42 13 & 16 button layouts
added DuelPad 16 button layout

I have another push coming with some minor updates
I tested on
Safari
Chrome
MS Edge
Brave
Firefox
Arc

I made the size 450px on push

I did some tightening up and made it closer to the original 400px its now at 425px

There is an issue on the Haute42 13 layout, if you shrink the screen to narrow the A2 and A1 buttons slightly overlap

I spaced the A1 button a little more to the right to fix it

new push on the way

Hey @KeyOnTech, thanks for the PR! We appreciate the effort to make things easier while we're reworking the LED system.
I've taken a look through the code and tested it out, and here are my notes.
Rename layouts to match existing layouts in the Display Configuration page

Stickless 13 A to Stickless 13
Stickless 16 A to Stickless 16
Stickless 16 B to Stickless 16A (TBD, but let's go with this for now)

That last 16 button layout doesn't exist in the Display Configuration currently, so we may want to add that. Probably not a blocker for this PR, but something I'll need to follow up on.
Using the gradient feature on the new layouts doesn't quite work

This is because the matrices for the new layouts in Buttons.js are incorrect. These will need to be updated. For example, the Stickless 16 layout should be:
export const STICKLESS_16_A_LAYOUT = [
	[null, 'Left', null, null],
	['A1', 'Down', null, null],
	[null, 'Right', null, 'L3'],
	['A2', 'B3', 'B1', 'Up'],
	[null, 'B4', 'B2', 'R3'],
	[null, 'R1', 'R2', null],
	[null, 'L1', 'L2', null],
];

Which will produce:

Consolidate button arrays into BUTTTON_LAYOUTS objects
I think the button arrays should be rolled into the BUTTON_LAYOUTS objects, into properites named mainButtons and auxButtons. Then this section can be removed, and instead bind directly against BUTTON_LAYOUTS[ledLayout].mainButtons here or BUTTON_LAYOUTS[ledLayout].auxButtons here.
Color Picker Placement
This feature works fine and I don't see a problem including it.

Hey sorry for the delay on replying
I'm just seeing your Github messages for updates I need to make to the the code. Still learning the PR Github features lol
Some I already made others I need to review thanks
I'll go through your notes and make some updates
thanks

gradient button selector not working fixed, moving to next issue

Fixed: Rename layouts to match existing layouts in the Display Configuration page
Fixed: Using the gradient feature on the new layouts doesn't quite work
Fixed: Consolidate button arrays into BUTTTON_LAYOUTS objects

That last 16 button layout doesn't exist in the Display Configuration currently, so we may want to add that. Probably not a blocker for this PR, but something I'll need to follow up on.
i started to add this part.  I made everything alphabetical and added the 16 A. Its looks like its just 2 drop down lists but I dont know where these values get saved.  If the new values will affect the rest of the application when they get saved and how this will affect the rest of the project.
I did not push this code not sure if you wanted to keep this.
`
const BUTTON_LAYOUTS = [
{ label: 'Beatmania 5 Key Left', value: 0 }, // BUTTON_LAYOUT_BM_5KEY_A
{ label: 'Beatmania 7 Key Left', value: 1 }, // BUTTON_LAYOUT_BM_7KEY_A
{ label: 'Beatmania Turntable Left', value: 2 }, // BUTTON_LAYOUT_BM_TURNTABLE_A
{ label: 'Blank', value: 3 }, // BUTTON_LAYOUT_BLANKA
{ label: 'Board Defined', value: 4 }, // BUTTON_LAYOUT_BOARD_DEFINED_A
{ label: 'Buttons Angled', value: 5 }, // BUTTON_LAYOUT_BUTTONS_ANGLED
{ label: 'Buttons Basic', value: 6 }, // BUTTON_LAYOUT_BUTTONS_BASIC
{ label: 'Custom', value: 7 }, // BUTTON_LAYOUT_CUSTOM
{ label: 'Dancepad', value: 8 }, // BUTTON_LAYOUT_DANCEPADA
{ label: 'DDR Dancepad Left', value: 9 }, // BUTTON_LAYOUT_DANCEPAD_DDR_LEFT
{ label: 'DDR Dancepad Solo', value: 10 }, // BUTTON_LAYOUT_DANCEPAD_DDR_SOLO
{ label: 'Fightboard', value: 11 }, // BUTTON_LAYOUT_FIGHTBOARD_STICK
{ label: 'Fightboard Mirrored', value: 12 }, // BUTTON_LAYOUT_FIGHTBOARD_MIRRORED
{ label: 'Gitadora Fret', value: 13 }, // BUTTON_LAYOUT_GITADORA_FRET_A
{ label: 'Gitadora Strum', value: 14 }, // BUTTON_LAYOUT_GITADORA_STRUM_A
{ label: 'Keyboard', value: 15 }, // BUTTON_LAYOUT_KEYBOARDA
{ label: 'Keyboard Angled', value: 16 }, // BUTTON_LAYOUT_KEYBOARD_ANGLED
{ label: 'Open_Core0 WASD', value: 17 }, // BUTTON_LAYOUT_OPENCORE0WASDA
{ label: 'PIU Dancepad Left', value: 18 }, // BUTTON_LAYOUT_DANCEPAD_PIU_LEFT
{ label: 'Popn Left', value: 19 }, // BUTTON_LAYOUT_POPN_A
{ label: 'Stick', value: 20 }, // BUTTON_LAYOUT_STICK
{ label: 'Stickless', value: 21 }, // BUTTON_LAYOUT_STICKLESS
{ label: 'Stickless 13', value: 22 }, // BUTTON_LAYOUT_STICKLESS_13
{ label: 'Stickless 14', value: 23 }, // BUTTON_LAYOUT_STICKLESS_14
{ label: 'Stickless 16', value: 24 }, // BUTTON_LAYOUT_STICKLESS_16
{ label: 'Stickless 16 A', value: 25 }, // BUTTON_LAYOUT_STICKLESS_16_A
{ label: 'Taiko', value: 26 }, // BUTTON_LAYOUT_TAIKO_A
{ label: 'Twinstick', value: 27 }, // BUTTON_LAYOUT_TWINSTICKA
{ label: 'VLX', value: 28 }, // BUTTON_LAYOUT_VLXA
];
const BUTTON_LAYOUTS_RIGHT = [
{ label: 'Arcade', value: 0 }, // BUTTON_LAYOUT_ARCADE
{ label: 'Beatmania 5 Key Right', value: 1 }, // BUTTON_LAYOUT_BM_5KEY_B
{ label: 'Beatmania 7 Key Right', value: 2 }, // BUTTON_LAYOUT_BM_7KEY_B
{ label: 'Beatmania Turntable Right', value: 3 }, // BUTTON_LAYOUT_BM_TURNTABLE_B
{ label: 'Blank', value: 4 }, // BUTTON_LAYOUT_BLANKB
{ label: 'Board Defined', value: 5 }, // BUTTON_LAYOUT_BOARD_DEFINED_B
{ label: 'Buttons Angled', value: 6 }, // BUTTON_LAYOUT_BUTTONS_ANGLEDB
{ label: 'Capcom', value: 7 }, // BUTTON_LAYOUT_CAPCOM
{ label: 'Capcom 6', value: 8 }, // BUTTON_LAYOUT_CAPCOM6
{ label: 'Custom', value: 9 }, // BUTTON_LAYOUT_CUSTOM
{ label: 'DDR Dancepad Right', value: 10 }, // BUTTON_LAYOUT_DANCEPAD_DDR_RIGHT
{ label: 'Dancepad', value: 11 }, // BUTTON_LAYOUT_DANCEPADB
{ label: 'Fightboard', value: 12 }, // BUTTON_LAYOUT_FIGHTBOARD
{ label: 'Fightboard Mirrored', value: 13 }, // BUTTON_LAYOUT_FIGHTBOARD_STICK_MIRRORED
{ label: 'Gitadora Fret', value: 14 }, // BUTTON_LAYOUT_GITADORA_FRET_B
{ label: 'Gitadora Strum', value: 15 }, // BUTTON_LAYOUT_GITADORA_STRUM_B
{ label: 'Keyboard', value: 16 }, // BUTTON_LAYOUT_KEYBOARDB
{ label: 'Keyboard 8', value: 17 }, // BUTTON_LAYOUT_KEYBOARD8B
{ label: 'Noir 8', value: 18 }, // BUTTON_LAYOUT_NOIR8
{ label: 'Open_Core0 WASD', value: 19 }, // BUTTON_LAYOUT_OPENCORE0WASDB
{ label: 'PIU Dancepad Right', value: 20 }, // BUTTON_LAYOUT_DANCEPAD_PIU_RIGHT
{ label: 'Popn Right', value: 21 }, // BUTTON_LAYOUT_POPN_B
{ label: 'Sega 2P', value: 22 }, // BUTTON_LAYOUT_SEGA2P
{ label: 'Stickless', value: 23 }, // BUTTON_LAYOUT_STICKLESSB
{ label: 'Stickless 13', value: 24 }, // BUTTON_LAYOUT_STICKLESS_13B
{ label: 'Stickless 14', value: 25 }, // BUTTON_LAYOUT_STICKLESS_14B
{ label: 'Stickless 16', value: 26 }, // BUTTON_LAYOUT_STICKLESS_16B
{ label: 'Stickless 16 A', value: 27 }, // BUTTON_LAYOUT_STICKLESS_16B_A
{ label: 'Taiko', value: 28 }, // BUTTON_LAYOUT_TAIKO_B
{ label: 'Twinstick', value: 29 }, // BUTTON_LAYOUT_TWINSTICKB
{ label: 'Viewlix', value: 30 }, // BUTTON_LAYOUT_VEWLIX
{ label: 'Viewlix 7', value: 31 } // BUTTON_LAYOUT_VEWLIX7
];
`

I see a file conflict on the package-lock.json file
I didnt make any updates to any of that I just did a npm i
so hopefully this is a common minor thing
besides that no other conflicts in my latest push
thanks

Hey @feralai wanted to check in on the updates I made to the color picker screen button layouts and color picker box.  I got a comment today and they were experiencing what I was on different browsers I think my minor updates will help.
wanted to check in and see if my web config updates were good to go and hopefully get approved to make the next build. I think it'll really help folks
Thanks

I'll jump in on this one and put in my approval. I like the updates.


IFrame Support

Currently IFrame content is not being properly rendered. I really need this for an app I'm working on that uses IFrames as the content page.

Fixed with 68e8d861eda4400a09f07b3714706f7798174e9e please download latest crx for update.


CPU usage on idle?

I added checker to the build process in our app and after a while I started getting complaints about high CPU usage with webpack --watch. Interestingly only windows people raised it. I've tried to investigate the issue on my macOS and realized the checker processes use quite a lot of CPU resources even when idling:

V8 inspector attached to one of them shows no executions:

I suspect the CPU consumption is caused by GC or file watchers. Any idea how to fix/debug this one?

Could you provide more information about your setup? The best option would be a bug reproduction repository and information about your OS and hardware. If you are not able to create bug reproduction repository, send at least your webpack config :)

I'm not able to share the repository I am working on, but I am seeing this same issue, where it's getting up to 40% on idle.

System Information:
Microsoft Windows 10 Pro 10.0.14393 Build 14393
i7-6820HQ  2.70GHz 4 Cores
Dependencies:
fork-ts-checker-webpack-plugin: 1.0.1
Typescript 3.4.1
Webpack 4.29.6
happypack: 5.0.1
Ts-Loader 5.3.3

As part of your tweaking I suggest dropping happypack and starting to use the incremental API. Check out the config here for inspiration: https://github.com/TypeStrong/ts-loader/blob/master/examples/fork-ts-checker-webpack-plugin/webpack.config.development.js
Stopping using happypack might reduce the resource usage significantly

I have the exact same issue on Windows 10 using this via create react app v2.1.8

Same issue here. Upgraded from 0.4.6 to 1.0.1. 1.0.1 uses about 10% CPU, 0.4.6 practically none.

@johnnyreilly I have the same issue with

Windows 10 1809 x64
Node 10.15.1
Typescript 3.4.2
Gulp 4.0.0
ts-loader 5.3.3
webpack 4.22.0

And I just tried your suggestion and changed to ts-loader to transpileOnly with the useTypescriptIncrementalAPI enabled:

but unfortunately the issue remains, fork-ts-checker plugin eats 5-8% cpu (of total 4 real i7 cores) while sitting idle:

If I set the useTypescriptIncrementalAPI to false, then the the cpu idle usage drops to 0. So this is issue definetely related with this new setting.

I think I had some improvement when I tried setting environmental variable TSC_NONPOLLING_WATCHER = '1'.
More info

I read the link and figured out that this is the correct setting to use:
set TSC_WATCHFILE=UseFsEvents
I tested it and indeed cpu usage on idle is 0.0% without any issues (so far) watching and recompiling the files upon change.

Is this PR-able? I'd be interested in baking in better default behaviour if we can.

Yeah I guess so. Probably we could also bake in a new option too, that you could switch from polling to fsevents.

If you'd like to try something out we'd be very grateful ❤

sure :)

PR ready, check it out :)

Hi,
I also have this issue. In my real-world project the node process eats over 60% cpu.
First I thought it was an issue of the webpack-dev-server: https://github.com/webpack/webpack-dev-server/issues/1846
But after "evilebottnawi" said it must be a loader or plugin I was able to drag it down to fork-ts-checker-webpack-plugin.
The issue I created for webpack-dev-server (https://github.com/webpack/webpack-dev-server/issues/1846) also contains a simple hello world repro project. That project only causes 2-5% CPU, but already shows the issue: all d.ts file in node_modules are loaded again and again.
When adding a large lib to node_modules (e.g. @material-ui/core and @material-ui/icons) to increase the number of d.ts file in node_modules you can raise the CPU usage dramatically.

To spread the knowledge about this issue (and the workaround) I've blogged it here: https://blog.johnnyreilly.com/2019/05/typescript-and-high-cpu-usage-watch.html
Hope it helps people reading this!

when this will be fixed? it is eating my battery.

Please see the blog post linked above for details @allnash.  This is not an issue with the fork-ts-checker-webpack-plugin but with the watch implementation in TypeScript.  We're not planning to workaround it in the plugin itself, but there is advice in the blogpost which will allow you to work around this on your own build.

@johnnyreilly you are a hero, thanks for chasing this up, i'm late to the party but this has bugged me for a while, great blog post, I've managed to fix it by adding TSC_WATCHFILE=UseFsEvents.
I've found UseFsEvents is the best option, UseFsEventsWithFallbackDynamicPolling was still using quite a bit of CPU (maybe trying to poll?)
If you're using a Mac (even with a docker guest) you don't need polling-fallback, only with a windows host.
In case anyone else comes here, Typescript's reasoning is layed out here:
https://github.com/microsoft/TypeScript-Handbook/blob/master/pages/Configuring Watch.md#background

FYI I added ENV TSC_WATCHFILE UseFsEvents to a Dockerfile that I was noticing exceptionally high cpu usage with and that fixed it! Thanks for this!
This was happening with Next.js which ends up running this service in dev mode.

Unfortunately, that did not help in my case. I tried both UseFsEvents and UseFsEventsWithFallbackDynamicPolling and I still get 99% CPU usage on idle.
In my use-case, I use a node:13-alpine docker image with ENV TSC_WATCHFILE=UseFsEvents set, and the app code mounted from the host directory. For reference, here's my Dockerfile:
LABEL maintainer="PIRC.PL"

ENV TSC_WATCHFILE=UseFsEvents
RUN mkdir /app && chown -R node /app

ADD --chown=node package.json /app/
ADD --chown=node yarn.lock /app/

WORKDIR /app
USER node

RUN yarn install

ADD --chown=node . /app/
RUN chmod +x /app/docker-entrypoint.sh
ENTRYPOINT ["/app/docker-entrypoint.sh"]

The entrypoint simply runs yarn dev. The app is a Nuxt.JS app with typescript support. I can see the /app/node_modules/fork-ts-checker-webpack-plugin/lib/service.js script to take 100% cpu.

In order to fs-events to work, you need pre-compiled binaries to be fetched from the npm. These binaries are different for each node version. Please make sure the fs-events have been successfully installed inside a docker container. If not, you can try to fix it by removing yarn.lock :)

I got a JavaScript heap out of memory error on mac, caused by nextjs dev server, it wasn't even running when it happend
previous days there were many node processes taking 100% cpu
As you can see the running process was from node_modules/fork-ts-checker-webpack-plugin/lib/service.js
{
  "header": {
    "reportVersion": 1,
    "event": "Allocation failed - JavaScript heap out of memory",
    "trigger": "FatalError",
    "filename": "report.20200408.150803.13103.0.001.json",
    "dumpEventTime": "2020-04-08T15:08:03Z",
    "dumpEventTimeStamp": "1586351283778",
    "processId": 13103,
    "cwd": "/Users/morse/Documents/GitHub/nanoservices/frontend",
    "commandLine": [
      "/Users/morse/.nvm/versions/node/v12.13.0/bin/node",
      "--max-old-space-size=2048",
      "/Users/morse/Documents/GitHub/nanoservices/node_modules/fork-ts-checker-webpack-plugin/lib/service.js"
    ],
    "nodejsVersion": "v12.13.0",
    "wordSize": 64,
    "arch": "x64",
    "platform": "darwin",
    "componentVersions": {
      "node": "12.13.0",
      "v8": "7.7.299.13-node.12",
      "uv": "1.32.0",
      "zlib": "1.2.11",
      "brotli": "1.0.7",
      "ares": "1.15.0",
      "modules": "72",
      "nghttp2": "1.39.2",
      "napi": "5",
      "llhttp": "1.1.4",
      "http_parser": "2.8.0",
      "openssl": "1.1.1d",
      "cldr": "35.1",
      "icu": "64.2",
      "tz": "2019a",
      "unicode": "12.1"
    },
    "release": {
      "name": "node",
      "lts": "Erbium",
      "headersUrl": "https://nodejs.org/download/release/v12.13.0/node-v12.13.0-headers.tar.gz",
      "sourceUrl": "https://nodejs.org/download/release/v12.13.0/node-v12.13.0.tar.gz"
    },
    "osName": "Darwin",
    "osRelease": "19.2.0",
    "osVersion": "Darwin Kernel Version 19.2.0: Sat Nov  9 03:47:04 PST 2019; root:xnu-6153.61.1~20/RELEASE_X86_64",
    "osMachine": "x86_64",
...

@mszczepanczyk , @taylortdixon , @delaaxe , @ajkettun , @NeKJ , @harrybin , @allnash , @jasonwilliams , @activescott , @samupl , @remorses
Please try fork-ts-checker-webpack-plugin@alpha - I've published a new version which should resolve this issue 🚀(now the plugin uses webpack's watcher instead of typescript's one)
I will close this issue to clean-up the backlog. If this release didn't solve the issue, we can re-open this :)

See this for problems with the 4.x line of this plugin: https://github.com/TypeStrong/fork-ts-checker-webpack-plugin/issues/655


Don't GPG-sign test setup commits

Running bin/rake spec in the Bundler repository causes a bunch of failures if commit.gpgsign is set in the global Git configuration.
Bundler's tests were making Git commits and trying to GPG sign them.
Set commit.gpgsign to false when initializing a Git repository in the tests.
I chose this fix because the alternative would be to pass --no-gpg-sign every time a commit is made in the tests, which would have a bigger maintenance impact.

Great catch, thank you!

Thanks! @bundlerbot r+


Add index for createdAt field in donation entity

As @mendesfabio mentioned

I'm querying giveth graphql API
but it's taking too much time to return donations, even when i apply the filter fromDate and toDate
looking at the code i noticed we don't have an index on createdAt
could we add it there? it would probably help these kind of query

hey, thanks for this @mohammadranjbarz - isn't missing the migration file here?

Hey @mendesfabio! yeah ideally a migration is required!! But the project before we joined the team,  was setup with typeorm Synchronize entities to true. This added some complexity and issues and the project entities was quite numerous already.
We have to do the migrate to using just-migrations, but priorities haven't allow it.


Merge pull request #2 from zacwentzell/master for March 9th class

To update my fork for March 9th class...

That's def not what I intended....


bug: When using from_table_to_time_series, feature must be given

Describe the bug
when using the from_table_to_time_series features must be given right now, because of the used tagged table function.
To Reproduce
calls TimeSeries.from_table_to_time_series without features
Expected behavior
the user should call it without an given feature

:tada: This issue has been resolved in version 0.20.0 :tada:
The release is available on:

v0.20.0
GitHub release

Your semantic-release bot :package::rocket:


Write FOSP explicitely

In the README and on the website title panel, could you please change
"The ELIXIR FOSP Maturity Model" to
"The ELIXIR Maturity Model for Federated One Health Surveillance Platforms (FOSP)"
Thank you very much

Done et online !
Thank you for the suggestion


options to include ts files in package

:rocket: Feature Request
Affected Languages

[ X] TypeScript or Javascript

Description
aws cdk added ts-node --prefer-ts-exts to cdk.json.
Would it be possible to have an option to include ts files in package generated by jsii?
Proposed Solution
Allow option for files:  "**/*.ts" to be included in the generated ts config. There is already some tsconfig customization options, but to include ts files in package is not one of them.

no need


ISS-152 extended assembly   asm volatile ("rep; nop" ::: "memory")

extended assembly   asm volatile ("rep; nop" ::: "memory") not managed. It caused segmentation fault during neovim compilation

fixed by final version 1.0.20


Test runner unable to find test result when module path contains "py"

Type: Bug
Behaviour
When running a pytest test via the testing feature, the extension is unable to report the results if the file path contains a "py" segment.
Expected vs. Actual
Say you are in a polyglot monorepo and you've organised your source tree by language:
my-app/
└── src/
    └── py/
        ├── __init__.py
        ├── main.py
        └── test_main.py

When running your tests, you will get the following error message in the output:  Test result not found for <name of test>.
Renaming the directory py to something else, say python, fixes the issue.
The issue seems to be due to the function that tries to strip extra ".py" file extensions from the test ID: https://github.com/microsoft/vscode-python/blob/66c7db6e369ce02a410deca0913730a87f74df1b/src/client/testing/testController/common/testItemUtilities.ts#L112
Steps to reproduce:
Using VS Code that has been configured to use pytest as the test runner.

Create a file layout similar to the one above, specifically ensuring that the test file is somewhere below the py directory.

Add a sample test to the test file:

def test_true():
    assert True

In the Testing pane, the test should be discovered. Click to run the test. The output should reveal that despite the test running, the extension is not able to locate the output.

Diagnostic data

Python version (& distribution if applicable, e.g. Anaconda): 3.10.9
Type of virtual environment used (e.g. conda, venv, virtualenv, etc.): Poetry
Value of the python.languageServer setting: Pylance

Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)

XXX

User Settings

venvFolders: "<placeholder>"

languageServer: "Pylance"

linting
• flake8Enabled: true

formatting
• provider: "black"

testing
• cwd: "<placeholder>"
• promptToConfigure: false
• pytestArgs: "<placeholder>"
• pytestEnabled: true

experiments
• enabled: false

Extension version: 2023.16.0
VS Code version: Code 1.82.2 (Universal) (abd2f3db4bdb28f9e95536dfa84d8479f1eb312d, 2023-09-14T05:59:47.790Z)
OS version: Darwin arm64 22.6.0
Modes:

System Info

Item
Value

CPUs
Apple M2 (8 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
2, 3, 3

Memory (System)
16.00GB (0.09GB free)

Process Argv
--crash-reporter-id 11033b26-bcf4-4f48-9828-526945ff5759

Screen Reader
no

VM
0%

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383:30185418
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
vserr242:30382549
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263cf:30335440
vscorecescf:30445987
vscod805cf:30301675
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
vsaa593cf:30376535
pythonvs932:30410667
vscaat:30438848
vsclangdc:30486549
c4g48928:30535728
dsvsc012:30540252
pynewext54:30695312
azure-dev_surveyone:30548225
2e4cg342:30602488
f6dab269:30613381
2i9eh265:30646982
showlangstatbar:30737416
962ge761:30841074
a2ce3375:30757347
ecj1e332:30736112
pythonfmttext:30731395
fixshowwlkth:30771522
showindicator:30805244
pythongtdpath:30769146
i26e3531:30792625
pythonnosmt12:30797651
pythonidxpt:30805730
pythonnoceb:30805159
copilotsettingc:30839828
asynctok:30821568
dsvsc013:30795093
dsvsc014:30804076
diffeditorv2:30821572
dsvsc015:30845448

Hello! Could you try this on the rewrite and send your logs? To do so, add this setting to your users settings.json "python.experiments.optInto": ["pythonTestAdapter"].
You can confirm you have the rewrite enabled by setting  "python.analysis.logLevel": "Trace", in your user settings then check for Experiment 'pythonTestAdapter' is active in your python logs.
Please send the logs from the python output. You should see a log similar to Running pytest with arguments: ... can you try running this from your console( but remove -p vscode_pytest) and see if that works as expected.


Question: best way to extend LogEntry objects

Quick question:  it turns out my project needs additional data in or from a LogEntry instance and I'm asking how to extend auditlog without requiring too much work.  I'm still a bit new to python and django, and I'm looking to minimize the impact of changes.   I appreciate any thoughts and pointers.  Also, thanks for this package.  It's been really useful.
What is driving this is a need to collect some of the relationship references for building a report that includes deleted objects.  The report works well for create and update actions.  For these, the following code works fine (record is an auditlog.LogEntry):
changed_object_type = record.content_type
changed_object = changed_object_type.get_object_for_this_type(id=record.object_id)

From changed_object, I can find all the connected objects.  For example, a student might have an assessment, which creates the LogEntry.  The report calls for an attribute of the related student.  If assessment was deleted, getting the related object isn't  so easy - pulling up the (deleted) instance throws an ObjectNotFound exception.  I have a workaround at present, but it's a bit of hackery.
For example one idea that might solve this could be to change what is in  record.changes.  Right now,  changes has 'student': 'Mike' and what might be easiest would be to change that entry to
'student': [('printname', 'Mike), ('content_type', 'django_content_type_value'), ('object_id', 'related_obj_id')] (or a dict or whatever)
I intend on experimenting to figure this out.  But I have learned the hard way in the past that there's often a gotcha or three, especially when I don't fully understand something  Any thoughts?
Thanks,
Mike

Wait, if you do this:
changed_object_type = record.content_type
changed_object = changed_object_type.get_object_for_this_type(id=record.object_id)

You are basically getting from the database the present version of the model. Is basically the same as changed_object=YourModel.objects.get(pk=...).
You have a model and all its related objects... As they exist today in the DB. Not as they existed back when the LogEntry was created. And if your relationships change over time (for example, students no longer have assesments. A migration moved all of that info over to a new full_details model) the LogEntry will still have only stored information of the changes as they were when the LogEntry was created.
All this to say: Think about LogEntry objects as historical information. As lines in a logfile. It states that something changed at some point. That's all. It's static information. You should have all the information you need in that LogEntry as it was at that point in time. You should not rely on the changed_object to get more data.

I do not understand if you have registered into auditlog the Student model, the Assessment model, or both.
Can you share a simplified version of the models definitions, and how they are registered to auditlog?

Thanks for the reply.  I appreciate the help.  And I'm very appreciative for this package.
I suspect some context is needed.  Suppose the model is a STUDENT and a TUTOR and each has a one to many relationship with ASSESSMENT.  STUDENT and TUTOR are sub-classes of PERSON.  So assessment has the property
person = ForeignKey(PERSON,...).  In case this isn't clear, here's parts of the models (the mixins are my own stuff). Assume Student, Tutor, and Assessment are auditlog.registered.  PERSON is the root of most user workflows.  Given this Person, do something with an assessment (CRUD).
class CommonPerson(PolymorphicModel, ChangeMixin):
    first_name = models.CharField(max_length=150, blank=False, null=False)
    last_name = models.CharField(max_length=150, blank=False, null=False)
    nickname = models.CharField(max_length=150, blank=True, null=True)

class Student(CommonPerson, CompletenessMixin):
class Tutor(CommonPerson, CompletenessMixin):
class Assessment(PolymorphicModel, ChangeMixin, CategoryMixin):
    person = models.ForeignKey(CommonPerson, on_delete=models.SET_NULL, null=True, related_name="assessment")

Now the client wants to be able to ask the following question, for all the STUDENTs or all the TUTORs, tell me all the changes that occurred during some time frame.  The auditlog.LogEntry snapshot is insufficient to answer this question if the item is deleted.  What happens by default is the print value of the relationship is stored in the CHANGE field as the "person": "person name".   Unfortunately the change field's name is ambiguous relative to this question.  Worse, there's no guarantee the field's value is also not ambiguous (people's names aren't unique).  So I can't reliabily tell if person name is a Student or Tutor.  (nor can I answer the question, tell me everything that changed about a particular student or tutor) This is why I resorted to grabbing the instance related to the LogEntry.  From there, it's easy to traverse to get the related instance's values (a class value effectively in this case).
Now the way I solved this to get things working was to stick the related class data into the additional_data field.  But this is bad in many ways.  So I thought, hoped, there was a way to answer this query built into auditlog as is.  What triggered in my mind is logEntry contains all the information to identify the related instance, so I thought to apply this to relationships captured in the change fields.
In this example, the change field for the assessment LogEntry results in "person": "Gabrielle B."   The M2M LogEntry solution got me thinking that augmenting the value stored in "person" to {"value": "Gabrielle B", "related_content_type": "31", "pk": "732"} would tell the reader the deleted assessment related person is "Gabrielle B" and it's an instance of whatever type 31 is and can be found off id 732.  You are absolutely correct that the related object may have changed.  But the class values likely haven't and at least in my case, that's what I'm trying to access.  I can also answer questions like tell me all the changes connected to a Student or a Tutor.

Ohhh, I just realized something (I am just a random dev by the way):
It seems like you are using django-polymorphic. I've never used it. I assumed you had something like a Person abstract model, and then Student and Tutor were concrete models.
In my case, I am using django-auditlog's v3 beta and I assume it records changes the same way in the stable version I assume you are using. In my project the ForeignKey relationship changes are stored in the changes field as IDs 'some_foreign_key_field': ['123', '999']. But implicit ManyToMany relationships are stored as string representations. Could it be that django-polymorphic is creating intermediate M2M relationships that cause django-auditlog to store string representations? Here's an example I took from a REST API where I expose LogEntries:

Top result 0 is a change in a ForeignKey field.
Bottom result 1 is a change in a ManyToManyField.
ManyToManyField relationships that do not define explicit through models do have an implicit through table, but I am not sure how (or why) django-auditlog uses this to store the change... It probably does not use IDs as with FKs because a M2M table just has 3 columns (a PK, and two FKs) and you either create or delete rows in that table.
So, I guess it probably has something to do with the way your tables are set up... Sorry I can't give you a good answer. Maybe someone more knowledgeable will show up 🤞🏻


Remove unused utils

Remove:

base58
varint

Codecov Report
Patch coverage has no change and project coverage change: +2.18 :tada:

Comparison is base (20876f2) 91.15% compared to head (a8ad6fa) 93.33%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #42      +/-   ##
==========================================
+ Coverage   91.15%   93.33%   +2.18%
==========================================
  Files          26       23       -3
  Lines        1379     1231     -148
==========================================
- Hits         1257     1149     -108
+ Misses        122       82      -40

Flag
Coverage Δ

unittests
93.33% <ø> (+2.18%)
:arrow_up:

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

Impacted Files
Coverage Δ

src/common/buffer.c
90.76% <ø> (-0.90%)
:arrow_down:

src/transaction/serialize.c
100.00% <ø> (ø)

unit-tests/test_buffer.c
100.00% <ø> (ø)

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


Incomplete example

The sample application requires that AAD_ENDPOINT and GRAPH_ENDPOINT are set in the .env file of the sample app, but the quick start doesn't explain where to get these values.
[Enter feedback here]

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: cab84501-b6b5-d8ba-30d4-e3b1c6f6bbc1
Version Independent ID: 11b8f284-550b-67c2-9d9c-2a4858f112bf
Content: Quickstart: Call Microsoft Graph from a console application - Microsoft Entra
Content Source: articles/active-directory/develop/console-app-quickstart.md
Service: active-directory
Sub-service: develop
GitHub Login: @Dickson-Mwendia
Microsoft Alias: dmwendia

@kyleross-deckers
Thanks for your feedback! I've assigned this issue to the author who will investigate and update as appropriate.

Thank you @kyleross-deckers for opening this issue and helping improve our developer documentation.
In this node.js console app quickstart, use the following endpoints for your sample app:

For the Azure Active Directory (Azure AD) endpoint, use https://login.microsoftonline.com/  as the cloud instance.
For the Microsoft Graph endpoint, use https://graph.microsoft.com/.

We'll be updating the quickstart article with this information. I hope this answers your question.
Thanks!
Cc: @henrymbuguakiarie @mmacy @mwongerapk


[Feature] Create config.yml automatically when setup is ran unless it already exists, and do not include in the git repo

Is your feature request related to a problem? Please describe.
The config.yml is tracked in the git repo. This means local changes for a developer's environment need to be dealt with for every commit. It also means local developer changes could accidentally make it into a production binary release.
Describe the solution you'd like

Stop tracking config.yml in the git repo
When the internal setup action runs (via setup or automatically when cnf_setup or a test command calls it) create a config.yml unless one already exists (in which case it should be used).

Describe alternatives you've considered

Stop tracking but don't generate automatically.
Have a config.yml.example for download
Have config.yml documented only

**How will this be tested? aka Acceptance Criteria (optional) **
(optional: unnecessary for things like some version bumps etc.)
Once this issue is addressed how will the fix be verified?
Clone of the repo should not show config.yml.
Running cnf-testsuite setup should create a config.yml file.
Additional context
Idea for implementation:

create a config-global.yml (not visible in
override global with data from config.yml data

@taylor  can this issue be closed?


fix(@angular/build): prevent build failures with remote CSS imports when Tailwind is configured

This addresses a bug where @import url() statements with remote CSS files (ending in .css) caused build errors when Tailwind was present. The issue arised from incorrect handling of remote URLs by the stylesheet plugin, which treated them as local files. This fix ensures proper handling of remote CSS imports.
Closes #28113

The changes were merged into the following branches: main, 18.1.x


add tremolos and accidentals test

This adds

a test for chords with tremolos, where the tremolo is encoded in different positions within the chord
a test for Turkish and Persian accidentals

@mscuthbert  would you please have a look?

Looks good to me.  For future PRs if you could avoid committing changes to unrelated XML files, it would help the reviewing..


Add profiler

@Tapjoy/eng-group-services
DO NOT MERGE
Here's the profiling code for Chore.
This includes a pre-release version tag. This will evaluate as an "earlier" version than 1.8.0, so this should be safe to build as a gem.
Does this look safe to build and run in production?

LGTM

Could we just add this to our app and have the Procfile reference our version of the binary?  I don't know if that'd be any easier than messing with the chore version.
Otherwise feel free to integrate this as a gem.

(last statement should have included an lgtm)

Good idea about including it in the sidecar. Doing that.


CI: unset HOMEBREW_NO_AUTO_UPDATE: 1

https://brew.sh/2023/02/16/homebrew-4.0.0/
"If you had previously set HOMEBREW_NO_AUTO_UPDATE, HOMEBREW_NO_INSTALL_FROM_API or HOMEBREW_AUTO_UPDATE_SECS to work around bugs or annoyances: please consider unsetting these and tweaking the values based on the new behaviour."

https://brew.sh/2023/02/16/homebrew-4.0.0/
"If you had previously set HOMEBREW_NO_AUTO_UPDATE,
HOMEBREW_NO_INSTALL_FROM_API or HOMEBREW_AUTO_UPDATE_SECS to work
around bugs or annoyances: please consider unsetting these and
tweaking the values based on the new behaviour."

This is a new update.  Should we wait until it's been installed by CI
machines?  How would we know?
--
hundred-and-one symptoms of being an internet addict:
133. You communicate with people on other continents more than you
do with your own neighbors.
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

You can either do brew --version to look at it, or see GitHub's documentation: https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md (I have seen occasional environmental variances in the GitHub hosted macOS runners but generally the Readme should be accurate).
I looked into this for MacVim and seems like it's still on 3.6 for the hosted runners so you would have to manually do a brew update in the CI script to update to Homebrew 4 but that probably defeats the point of saving time to begin with.

it is not urgent, we can wait until the CI is on homebrew 4.0

Homebrew is now updated to version 4 in GitHub CI: https://github.com/actions/runner-images/commit/dc6b07abe38d7e4f5087cf026efa2bc7acaa1e84.
For the most part from playing around with it for MacVim it seems to behave fine. Even if I manually force an auto-update by doing brew update --auto-update in CI, it seemed to complete within 15 seconds which seems to be fine to me (https://github.com/ychin/macvim/actions/runs/4290108031/jobs/7473796470#step:6:91). I don't have timing data from Homebrew 3 though.


Check persisted using real existence (instead of id presence)

Currently if the entity has id,
user = User.new({id: 123, login: 'aderyabin'})

there are no way to persist this entity because .create returns nil because id are present and .update fails because record in database with this id are not exists.
I suggest to check on persistance by real query to repository. If repository do not have entity with the equal id then and entity are not persisted.
It easy to display by example/test:
user = UserRepository.create(User.new(name: 'Don', id: 25))
UserRepository.all.must_include(user)

// cc @AlfonsoUceda, you asked me to prepare use case and PR. :)

Thanks @aderyabin for your PR. I've been reviewing your PR and we can't make a find every creation, it isn't inneficient.
We should remove the unless or create a way for the entity knows the custom id. Cc @lotus/core-team

One thing, do you need the id? A workaround you can use is create another attribute instead id for your custom id

Yes, as discussed before I can use custom id field. But it is a compromise.
In general I don't see any problem to use find on creation. It's like find_or_create from Rails. It's an effortless operation for database.

@AlfonsoUceda I have no problem with this approach at all, so it is :+1:  from me

@joneslee85 but for that we'd have find_or_create for example, find every creation on create method it's inefficient.

@AlfonsoUceda the other better way is to ensure that attributes that map to primary_key is not writable by public.

@joneslee85 . I think that is not good idea too because .persist determs method (.create or .update) by primary_key presence.

cc @jodosha what do you think?

@aderyabin Thank you, but I agree with @AlfonsoUceda It's inefficient. The example that you mentioned about AR find_or_create doesn't apply to this context.
In that case a developer wants to find a record or otherwise create it, they are aware of the cost of the operation. Here instead, we're adding a perf tax which is unnecessary and unexpected by devs.
I also won't suggest to setup id by hand, because you can run into this error in case of creation:
ERROR:  duplicate key value violates unique constraint "users_pkey"

..or update the wrong record by mistake in update.

@jodosha
Well, I have a real task.
I receive users from API in JSON format from different sources.
Each user data like this
{
 id: 123,
 login: `aderyabin`
}

id is unique.
I have to save this data and don't duplicate users.
I tried this code
class User
  include Lotus::Entity
  attributes :login
end

u = User.new(id: 123, login: 'aderyabin')
UserCollection.permit(u)

And it doesn't work, because Lotus think that entity is permitted (because #id present) and Lotus wants to update a record and raise exception.
This PR check entity is permitted really (instead of virtual).

@aderyabin Fine. I'm determined to find a solution to your problem, but this isn't the way to proceed. It has a perf cost and introduces race conditions with the database.
Can you please open a new PR with a different purpose?
It should:

Remove persist both from adapter and repository
Remove the check for id in create and update

This should give more control on id. Thank you! :+1:

@jodosha
Ok, no problem.
What is the preferable logic instead raising NonPersistedEntityError exception if id is not present? Return nil?

We Lotus has many adapters, some can raise PG::UniqueViolation: ERROR, some be silent by default. I think that behavior should be equal for all.

@aderyabin Okay, replied while in a hurry. Sorry.
RE NonPersistedEntityError: if it doesn't interfere with the new "take control of your id" policy, please leave them as they are.
RE Unique constraint: if it's easy to implement for memory adapter, please go ahead. :+1:

My 2 cents (might be to late as there is already a PR waiting, sorry)

If a record is persisted or not should not be determined by presence of id but trough a separate attribute as @AlfonsoUceda suggested, then one can decide if it is an INSERT (with or with PK supplied) or an UPDATE (always with PK supplied in the WHERE clause)
Calling find on every save is not what i would expect (even though in many cases the performance impact might be neglectable)
There is a difference between a PK and a value which is constrained to be unique: in @aderyabin sample with the JSON API, i would store the :id attribute from JSON as external_id attribute in the DB, not as PK. Probably. Don't know the whole story there.

If a record is persisted or not should not be determined by presence of id but trough a separate attribute as @AlfonsoUceda suggested

@AlfonsoUceda @pascalbetz Can you please explain the idea? IMO id is reliable for that, because we force it to be the "identity" of an entity. Even if the database has a different field, with the mapper we solve this issue.
Ref #258

@jodosha
There is a difference between id assigned and persisted. More so if the id can be provided from the outside (which apparently is a requirement). An entity is persisted IFF it was previously saved or previously loaded from the repository, not if its identity is non-nil.
If i create an entity:
foo = Foo.new(id: 12, name: 'foo')

then you can not tell if you need to save or update that entity. If there is an additional attribute (maybe persisted?) that is false when entity was created with new and true when entity is loaded from repository or saved to repository, then that would solve that problem.
Does that make sense?

I do think I understand @pascalbetz example and I have a similar situation in my application where I use Lotus: In our application logic we generate uuids and use that as the identity for entities. In our database we don't use any sequential assigned id; we use the uuid in postgres as our primary key.
When we want to persist new records and setting an entity's ID to the assigned uuid we have a confused repository not wanting to create that record, as it believes it is already created. We are currently using #258 which allows us to create and persist the record.

@thhermansen Hello, I see your point and #258 will be merged soon. /cc @aderyabin
@aderyabin I understand the technical difference between assigned id and persisted record. However, I'm still thinking that it's a perf tax that we don't want to add to the framework, and it's a race condition, because two threads can assign the same id, and because the check and the writing aren't atomic, we'll have a problem then.
If you instantiate an entity Foo in the example above, by passing the id, you can tell from the current context if it's persisted or not, because you haven't involved a repository yet.
What I'm trying to say is that, we should rely on conventions to avoid unnecessary overhead.
/cc @pascalbetz

@jodosha
If the ID is assigned by the client, then it's in his responsibility to make sure he does not use the same ID twice and also to deal with errors related to that. So no need to run a check. Just let the thing crash.
Yes, you can tell from the context in that case. And you can then make sure you call the right method (INSERT vs. UPDATE). But IMHO it is something that is dealt with in the framework otherwise the if/else code will be in many places in the client code instead of just the framework. Also it is something that the entity should know (in case you need to pass it to other pieces of code): have i been saved or not.

But IMHO it is something that is dealt with in the framework otherwise the if/else code will be in many places in the client code instead of just the framework.

Well, if you're assigning id, you know that create is the operation to call, without the need of an if. Am I missing something?

No. Still i think that this is something the entity should know, not the context the entity "lives" in.

@pascalbetz The only way to know for sure is to do the database check that @aderyabin suggested. Which I assume is out of scope.

@jodosha
Yes, to "know for sure" i agree. Because there might be concurrent processes. But for the use cases i had where an external ID is involved this was not an issue because the source of the external ID (usually another DB or a UUID service) made sure that there is no clash.
My proposal is to add another attribute _persisted which is set to '''true''' when entity is loaded from repository and after sucessful create. This should do the trick for most situations and would make sure that
'''ruby
foo = Foo.new(id: 12, name: 'foo')
foo.persisted?
'''
gives the right response ('''false''' in the case above).

@pascalbetz Ok, we should hold on with this feature, because I want to experiment with a different way to persist data:
foo = FooRepository.create({id: 23, name: 'foo'})

This will solve this issue and also this discussion reported here: https://discuss.lotusrb.org/t/change-the-behavior-of-repository-create-persist/117


No longer see the internet connection message when offline

Separating from https://github.com/covid-alert-ny/covid-green-app/issues/607 so it doesn't get lost
When I disconnect from the network and reopen the app or refresh the app that is open, I no longer see the message that tells me to check my internet connection. Is that expected now with this change?
<IP_ADDRESS>

This should already be fixed in https://github.com/covid-alert-ny/covid-green-app/commit/e4c2b8da171279962733a75905e5ced4cabfae7a which was after the previous build before today.
There is a small change of behaviour though - the error only shows when the app tries to load some data (matching the dashboard message wording, "We were not able to load some of the data correctly"). Previously we used a library to respond when the device wasn't connected without needing to try to download anything but it proved to be unreliable and incorrect on some devices so it's only now when an actual attempt to load data fails, e.g. refresh app or pull down to refresh.

This should already be fixed in https://github.com/covid-alert-ny/covid-green-app/commit/e4c2b8da171279962733a75905e5ced4cabfae7a which was after the previous build before today.
There is a small change of behaviour though - the error only shows when the app tries to load some data (matching the dashboard message wording, "We were not able to load some of the data correctly"). Previously we used a library to respond when the device wasn't connected without needing to try to download anything but it proved to be unreliable and incorrect on some devices so it's only now when an actual attempt to load data fails, e.g. refresh app or pull down to refresh.

Verified now I get Connection message: Please check your internet connection and try again. <IP_ADDRESS>

Verified now I get Connection message: Please check your internet connection and try again. <IP_ADDRESS>


Android ram and version check - perf

Working fine ion 4GB ram phone. check 3GB ram as well

REdmin Not 8  - app crashed while test account send max, - app install - 25 seconds, subsequent login - 20 seconds.

Samsung Galaxy A8 - 2GB ram

added a section on FAQ page -  https://hexawallet.io/faq/
App specific links are not opening on my iOS device?

Got this message
![image](https://user-images@antuz123 hubusercontent.com/8697909/97843826-f2ca6f00-1d0f-11eb-824e-fb9d33fe8850.png)
@antuz123  on android low end devices on browserstack

I think we can move forward to release the app for 3GB android phone running android 7 and above,

-I have tested the Hexa app on lower end Android device i.e. Samsung Galaxy J7 Prime which has 3GB RAM, the app is working on it.
I also tested it on the Galaxy Note 8 which has 3GB RAM and Android V7.1 but I got an error for this device that it does not support the build OS version.

We need to test against other wallet and open it up if needed to all.

https://browser.geekbench.com/android-benchmarks

Other wallet works fine on 3GB RAM phone. API version 7 and above. Pretty responsive.
Need to check on lower version phones but then will need to lower API version.

@Arpanjainson - this was the understanding ad of yesterday and even before. We need to close it. I don’t see this has moved at all

Worked on 2GB RAM actual motorola device, slower than the phones on browser stack


Fix EntityComponentManager race condition

This PR attempts to fix an incredibly hard to reproduce race condition that results in a std::map::at() crash in the  View::ComponentImplementation() function.
printouts show 2 threads trying to update the view.
[ign-13] sleeping in View::ComponentImplementation(), entity: 353
[ign-13] thread:<PHONE_NUMBER>83328
[ign-13] View::AddEntity entity added: 353
[ign-13] thread:<PHONE_NUMBER>20320
[ign-13] View::AddComponent entity: 353
[ign-13] thread:<PHONE_NUMBER>20320
[ign-13] View::AddComponent entity: 353
[ign-13] thread:<PHONE_NUMBER>20320
[ign-13] View::AddComponent entity: 353
[ign-13] thread:<PHONE_NUMBER>20320
[ign-13] View::AddComponent entity: 353

Gists for the stack trace of both threads:
https://gist.github.com/luca-della-vedova/44fc24aa3794c70ff814feccb05d4831
https://gist.github.com/ddengster/a77c7bf9ade79ceb51182c6296c053ae
From examining the gists it seems like there is one thread upon a plugin added event (GuiRunner::OnPluginAdded) creating a bunch of rendering entities plus accessing components, and the other thread is receiving a ignition::msgs::SerializedStepMap message and trying to rebuild views (clearing components map of the view). I've made sure both are not run in parallel in this PR and it seems to fix the issues (though my scene seems to be loading slower).
I've tried to push RebuildViews() to a delayed step similar to processing requests in the GuiRunner::OnState function but it seems that there are some dependencies on the results of that function, so I had to revert to this solution. It may be wise to re-think how threads access the ECM so as to prevent a whole lot of lockspam in the future.

Other than my comment about API/ABI below, you mentioned that this change causes a decrease in performance. Do you have any numbers that measure the change in performance before/after this change?

My apologies, I meant scene loading performance. I don't have any numbers; just that before this fix I would have the scene show up as a whole, but with this fix the models show up in stages; so it might not be such a bad thing after all.

it seems like there is one thread upon a plugin added event (GuiRunner::OnPluginAdded) creating a bunch of rendering entities plus accessing components

I believe this is the underlying problem. We shouldn't be calling plugin->Update from a different thread. All update calls should be thread safe. Some possible alternatives:

OnPluginAdded could call RequestState to make sure the inserted plugin gets a fresh update ASAP.
We could have a mutex internal to GuiRunner that prevents multiple plugin->Updates from being called at the same time.

If one of these suggestions work, I think it could be more reliable than the current proposal, which requires each plugin to protect its own updates. We should make the updates thread-safe by default so plugins don't need to worry about it.

If one of these suggestions work, I think it could be more reliable than the current proposal, which requires each plugin to protect its own updates. We should make the updates thread-safe by default so plugins don't need to worry about it.

Thanks for the suggestions. I've attempted the 2 suggestions:

We could have a mutex internal to GuiRunner that prevents multiple plugin->Updates from being called at the same time.
This ends up in a deadlock. My guess is some plugin is likely waiting for some results in another plugin.

OnPluginAdded could call RequestState to make sure the inserted plugin gets a fresh update ASAP.
This works great but it ends up with messages that the ign transport node is not ready, see below.

[ign-13] [GUI] [Msg] Added plugin [Entity tree] to main window
[ign-13] Node::Advertise(): Error advertising service [/425482/state_async]. Did you forget to start the discovery service?
[ign-13] [GUI] [Msg] Loaded plugin [EntityTree] from path [/home/ddeng/ignition_ws/install/lib/ign-gazebo-4/plugins/gui/libEntityTree.so]
[ign-13] [GUI] [Dbg] [Application.cc:305] Loading plugin [toggle_charging]
[ign-13] [GUI] [Msg] Added plugin [Toggle Charging] to main window
[ign-13] Node::Advertise(): Error advertising service [/425482/state_async]. Did you forget to start the discovery service?

I havent found any function that allows me to wait on the transport layer node (or check if it's ready) in RequestState() . Still the request buffers collapse into the GuiRunner::OnState call, so every plugin updates :+1: . Maybe this improvement on that layer could be done in a future patch.

I think that message is misleading, what's happening is that we're trying to advertise the same service several times. I took the liberty of pushing a fix in 8a3734f, let me know what you think. This is ready to merge if that works for you. Thanks!

You're welcome. The advertising error messages are gone now; let's merge it if there are no more outstanding problems.


dictionnary typo in docs

Many places dictionary is spelled dictionnary, not sure if its on purpose or not.
Fixed in this pr:
https://github.com/huggingface/nlp/pull/521

Thanks!


v3: Aggregated delta gRPC is v2 only

Description:
Aggregated delta gRPC misses a case for v3 transport api version so always uses v2 url (potentially with v3 requests on the wire).
Relevant Links:

https://github.com/envoyproxy/envoy/blob/5248a4fb7d4c2a3d1fa151f944d3a63f6b7a06cf/source/common/upstream/cluster_manager_impl.cc#L273-L274

@htuch can you triage for 1.14?

@mattklein123 I think this one is relatively easy to fix, I can probably do it tomorrow.


Proposal: break up documentation files into directories and files

I occasionally check electron’s API documentation, and it’s a breeze. Not only can I go to that particular URL and immediately find a file that has only what I need (which also means ⌘F is much more useful), I can actually easily google for it.
Contrast that with our documentation, in which we have humongous files with an index at the top, and we need anchors to navigate.
My proposal: break it up. Specifically (and at least) our most important pieces of documentation: CONTRIBUTING and CASK_LANGUAGE_REFERENCE. Look at electron’s documentation structure as a whole, and you’ll see how clear and easy to navigate it is.
Unless there are objections, I intend to start taking a crack at it.

I actually am of the opposite opinion - I like having a single large file that I can search through. It's also really nice to have a useful CONTRIBUTING, which can be read straight through - I wouldn't be opposed to moving some parts of it out to `/doc, and leaving it as a barebones (but useful) guide.
I'll write up some more thoughts on CONTRIBUTING later - not currently at a computer.
For CASK_LANGUAGE_REFERENCE - it would probably be okay to split things up - I only ever use the index at the top, so if splitting it up makes your use case/navigation easier, then I say go for it.
tl;dr: YES to splitting up the language reference, NO to splitting up CONTRIBUTING (detailed thoughts on a restructure of that coming in a day or two)

I wouldn't be opposed to moving some parts of it out to /doc, and leaving it as a barebones (but useful) guide.

I agree CONTRIBUTING benefits more than other documents from being a cohesive document you can read in succession, It’s also a bit harder to figure out where to split up, as opposed to CASK_LANGUAGE_REFERENCE where we can split up by stanza, but in my initial thougts for it, without going through it in depth, I was thinking mainly of (at least for starters) separating it into a few distinct sections:

Setting up to contribute
Contributing to the core
Updating a cask
Adding a cask

So the point would be to separate by intent. You likely only need Setting up to contribute to contribute once. After that, to make a change you only have one intention in mind, so once you’re inside the document for a particular context, your searching likely won’t be impaired.

Getting Set Up To Contribute - keep inline
Updating a Cask - keep inline
Adding a Cask - link out to new doc
Testing Your New Cask - move out as part of adding a cask
Finding a Home For Your Cask - link out to new file
Submitting Your Changes - move out as part of adding a cask
Cleaning up - move out as part of adding a cask
Reporting Bugs - keep inline
Two things that don't have a great location - version helpers info and appcast info - maybe those need to be in LANGUAGE REFERENCE?

I was just searching for the version helpers in LANGUAGE REFERENCE as I expected them there and found them in CONTRIBUTING only after searching for the pull request adding them. (And I even knew that table exists somewhere).

@vitorgalvao Things might get messy if both of us work on this directly - let's figure out the final structure via discussion here, and then we can move forward with a PR. (I'll likely only be touching CONTRIBUTING though, so feel free to move forward with changes as desired to CASK_LANGUAGE_REFERENCE)
@tsparber I had the same thought, hence my point that they likely need a better spot (whether that be LANG REF or a new document, I have no preference)

version methods are indeed a tricky one. I don’t exactly know where they’d fit in CASK_LANGUAGE_REFERENCE. @tsparber You were looking for them there, in what section would you expect to have found them?
As for appcast info, even the details of how to add them I could see working inside CASK_LANGUAGE_REFERENCE.
@adityadalal924 Perhaps both documents should work more in unison. So for instance in CONTRIBUTING needing to update the appcast would be mentioned, with a link to the corresponding in-depth documentation in CASK_LANGUAGE_REFERENCE. Same with style, for example, as it is something you might want to look for on its own, and there’s really no need to have everything (like stanza order) inside CONTRIBUTING.
So I’m thinking of CONTRIBUTING as a bare-bones quick-start guide that links heavily to other documents. Kind of like a mix of a summary and an index.

I searched for a "Version Stanza Details" section (like as the others). Basically containig the version methods section from contributing.

@vitorgalvao CASK_LANGUAGE_REFERENCE could be left as an index, of sorts, linking out to individual markdown files (one per stanza).
I also took another look at Electron's documentation and it really is nice - if over time, hacking.md started looking more like the "Development" section, that would be fantastic.
CONTRIBUTING.md (the piece I'm currently working on) will likely end up acting like a Quick Start guide, with lots of links out to other files.
Are you also planning to add in more subdirectories to /doc?

CASK_LANGUAGE_REFERENCE could be left as an index, of sorts, linking out to individual markdown files (one per stanza).

Yes, I had something like that in mind.

Are you also planning to add in more subdirectories to /doc?

Yes. Like electron’s documentation, I’d like to have a README in /doc that would serve as the index to the other stuff.

We could also use something like readthedocs.org (see SublimeLinter's documentation as an example).

Also realized github has a wiki feature - it is a bit easier to edit web-based, at least (and is also git-backed, which is nice)
https://github.com/blog/699-making-github-more-open-git-backed-wikis

Also checked out a few examples of readthedocs - it's rst instead of markdown, but the overall interface looks nicer and it's even easier for people to edit
@jawshooah good suggestion!

it's rst instead of markdown

[It works with Markdown too!](it's rst instead of markdown) :tada:

I don’t think people read the wikis, though. All the ones I’ve found always felt a bit abandoned and less serious than documentation on the repo itself. Homebrew used to use the wiki, and they since switched to documents on the repo.
I don’t like readthedocs on account of its looks, to be honest (are there themes for it?). I honestly can never read documentation on it, as that sidebar is incredibly distracting. My eyes can only look at it, not at the actual content (not joking). I do like its system, though, and it should be easy to port our documentation to use it, if we decide to go that route.
I’m currently using Gitbook’s editor to break up the documentation.

@vitorgalvao Something like http://fabric8.io/gitbook/?

@adidalal They can indeed be connected, as I understand it, just like readthedocs. However, it might not be able to hook into subdirectories, now that I look into it.
However, my last paragraph was very unclear. I am indeed using their editor, but that in no way ties with having to use their service. To clarify, I do think something like readthedocs is a good idea, I’d just like to have a bit more control/options regarding how the documentation is shown (damn sidebar).
Gitbook’s editor is nice because it allows to easily work with multiple markdown files at once. I’m actually taking suggestions for other editors that do the same, if anyone has them.

I use Sublime Text 3 with Markdown Extended syntax highlighting and https://github.com/SublimeText-Markdown/MarkdownEditing


Fix #34, fix #482

Modify fix from old repo that was not integrated

Any idea what the issues were with the original PR?

One of the main issues is that IsSubClassOf returns true even if the types are the same. This is why I added the check to see if the PythonTypes were not the same.


Viva Insights - Inspiration Library - Read/Unread

There is no current way to mark an inspiration library item as unread. There is no mouseover, or any other discoverable detail, on the little eye symbol that represents read/unread. This causes the user of the feature to either ignore the symbol or to click the symbol. This immediately changes the item to read and changes the item's position in the collection. This is a little cumbersome as a first-time experience as the user may not have wanted to view it or may discover, while getting into it, that the item is not appropriate for themselves at that time. It would be beneficial to reset the state of an item in either scenario.

Thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.


Validate that Microsoft package content is also signed

This request came from @shahabhijeet
The ask is, NuGet.org should validate that the package contents are also signed.

To clarify, you mean that NuGet.org should validate that the assemblies inside the package are signed?

not just assemblies, anything that can be signed. For e.g. .ps files

@karann-msft here are few things that I think you should consider when validating:

The publishing user of an organization should have a say what needs to be verified and what needs to be skipped.
There are few things that nuget should enforce and organization user cannot overwrite it:

for e.g. nuget package should be signed
certain nuget meta data should be available in certain format etc.

But organization user should have a say, whether nuget contents should be signed or not in case nuget.org is not enforcing that policy.

this is especially important within organization, where there can be multiple contributors who can have the ability to create publishing keys.
this is also crucial for us, if the owner of the nuget package is "Microsoft" and an organization within Microsoft like us.
Basically I am trying to find out a way where organization can provide a way to enforce policies on their nuget packages.

That being said, as v1 you should extend nuspec schema to allow organization to enforce validation policies, in this particular case, organization can specify if certain file types should be verified for authenticode signature.
This schema can then be uploaded to nuget to be associated with the organization account.


stable channel issue

not working in a stable channel
when will you provide a stable channel?

?

Thermion depend on native-assets, which is only available on the master channel of Flutter right now.


java 9+ arguments file not yet supported

Is your feature request related to a problem? Please describe.
A better way to add extra jars to the a script classpath is needed, equivalent to the "arguments file" feature of java 9+.
Describe the solution you'd like
The current support for adding jars that aren't in a repository to a script classpath is restrictive.
It also prevents such scripts from being os-portable, because it requires the path.separator to be imbedded in the script.
The following script successfully adds a jar to the classpath:
#!/usr/bin/env -S scala-cli shebang --extra-jars C:/Users/username/lib/privateJarA.jar
//> using scala "3.4.2"
sys.props("java.class.path").split(psep).foreach { println }
def psep: String = sys.props("path.separator")

This approach works for jar paths that are sufficiently short, but in general, it's inflexible, and it requires a non-portable classpath.
The old script runner supports using an arguments file to get the classpath argument.
#!/usr/bin/env -S scala @/opt/ue/argsFile
def main(args: Array[String]): Unit =
  def psep: String = sys.props("path.separator")
  sys.props("java.class.path").split(psep).foreach { println }

It's succinct, flexible and scalable.  It moves the path.separator from the script to a local path, resulting in an os-portable script.
Describe alternatives you've considered
I tried to pass the arguments file as a javaOpt, but it quietly failed (it didn't modify the classpath):
#!/usr/bin/env -S scala-cli shebang
//> using scala "3.4.2"
//> using javaOpt @/opt/ue/argsFile
def psep: String = sys.props("path.separator")
sys.props("java.class.path").split(psep).foreach { println }

BTW, I don't think this is a windows-only issue, this feature is supported by the jvm in Linux/osx/Windows, etc.

I've been experimenting with trying to run my scripts with the scala-cli based release candidate scala 3.5.0-RC2.   Ideally it will eventually be possible to get most or all of my currently 938 scripts working with little or no changes.   My guess is that when this feature is implemented, it will get me 90% of the way there.
Here's a very short script that works with scala3-3.4.2:
#!/usr/bin/env -S scala @/opt/ue/atFile.out
printf("%s\n", vast.db.Sipro.activeDatabase)

Here is the modified version that works with scala3-3.5.0-RC2:
#!/usr/bin/env -S scala -cp C:/Users/philwalk/.ivy2/local/org.vastblue/vast_3/0.9.16/jars/vast_3.jar;C:/Users/philwalk/AppData/Local/https/repo1.maven.org/maven2/org/postgresql/postgresql/42.7.3/postgresql-42.7.3.jar;C:/Users/philwalk/.ivy2/local/org.vastblue/pallet_3/0.10.12/jars/pallet_3.jar;C:/Users/philwalk/.ivy2/local/org.vastblue/unifile_3/0.3.3/jars/unifile_3.jar
printf("%s\n", vast.db.Sipro.activeDatabase)

Because these scripts run on Windows, Linux and OsX, it's not possible to embed the classpath in the shebang line, due to  non-portable path-separator values in the classpath.


Fix #518  - Properly saving Chat IDs

#518

I mean #518, now #513 - that was a mistake
I'm a noob at github :|

Thanks @no-nevis for this PR 👍


Add support for relation aliases with column aliases

Example:
SELECT x, y from unnest([1], ['a']) as u(x, y)

@mfussenegger @andreidan pushed a fixed up, please check again.


[proposal] allow creation of custom projects

given the issues

flutter:

https://github.com/flutter/flutter/issues/15279
https://github.com/flutter/flutter/issues/63284

stagehand:

https://github.com/dart-lang/stagehand/issues/597
https://github.com/dart-lang/stagehand/issues/192

it would be awesome to have the possibility of creating custom 3rd party projects
other than Very Good Core
possibly following this (dated) google's own design concept

Hi @iapicca 👋
Thanks for opening an issue!
In the future, we may support additional, more feature-rich templates as part of very_good_cli. That being said, very_good_cli is built on top of mason which allows developers to create their own custom templates. I recommend taking a look at mason to see if it meets your needs. If you find it is lacking support for a specific use-case or have any questions feel free to open an issue in mason 👍
Let me know if that helps and thanks for bringing this up! 😄

@felangel
oh, I didn't know about mason, I'll take a look
but it might be exactly what I was looking for.
closing the issue for now
thank you

@iapicca  did you figure this out? i looked at it and nothing clicked..

@iapicca did you figure this out? i looked at mason and it didn't really make sense to me so far

I'm happy to answer any specific questions and if you haven't already I highly recommend watching out mason livestream where we go over how to use mason to create a custom package. Hope that helps 👍


Playing and skip 5 sec can cause song to play next (with a fix??)

Hi! Just found the app and love it! But noticed that music will skip if I pause and play too much and when I am skipping. I have tried exporting and removing metadata and this doesn't fix it. Is this a problem with my mp3s?
I messed around with the code and realized that when you pause and play too much it causes an underrun (not sure what that actually is). I think you had found that as well. When it does that both the length and the offset are at 0 and 0 for one frame which causes the game to call the playnext function.
Sorry if you knew that already.
Anyway, I ended up changing around the app and made a "lite" version that has both operational and visual changes. You can keep or change anything you would like.
I dident manege to fix anything just reduce the severity of the issues and sometimes avoid them. I also just removed the skipping and going back options.
I updated how menus work to work with the crank.
I tried to document as many of the changes as I could.
musik Lite.zip

Hey! Thanks for checking musik out, really appreciate it :pray:

...noticed that music will skip if I pause and play too much and when I am skipping.  Is this a problem with my mp3s?

Skipping has always been a bit of a flaky feature.

When it does that both the length and the offset are at 0 and 0 for one frame which causes the game to call the playnext function.

Oh yeah, that bug has been around for a while, never could come up with a fix :sweat_smile:!
Thanks a million for taking the time to look through my spaghetti code and fix some stuff, haha. I'll check out your changes and see if I can merge them into musik :)
(By the way, if you're comfortable using git, I'd recommend creating a fork of musik with these changes! Honestly I'd say your version is leagues better than the original, if you do end up doing that I'll happily link to it in the README or something!)

Good to hear. I was really impressed with your code's compactness and overall quality! Amazing job all said with the SDK not super made for this type of app and the limited processing of the Playdate.

(By the way, if you're comfortable using git, I'd recommend creating a fork of musik with these changes! Honestly I'd say your version is leagues better than the original, if you do end up doing that I'll happily link to it in the README or something!)

I am not super familiar with Git but I'll try to!

I was really impressed with your code's compactness and overall quality! Amazing job all said with the SDK not super made for this type of app and the limited processing of the Playdate.

Thank you so much!! :D

I am not super familiar with Git but I'll try to!

Sounds like a plan!

Sounds like a plan!

I think I just forked it let me know if you need anything else

Does this UI look alright to you?

Does this UI look alright to you? I thought the round rectangle at the top was a bit much, but that's just me haha

I think it also looks good.
I personally enjoy the rounded look and the consistency with a rounded design. The line thought does differentiate between info important to the app and other info. It also keeps the info in the same place.
My vote is for the rounded design. Maybe you could add a choice in settings? Just a toggle between "classic" and "new" is also a good fix if people don't like the rounded box at the bottom.

My vote is for the rounded design. Maybe you could add a choice in settings? Just a toggle between "classic" and "new" is also a good fix if people don't like the rounded box at the bottom.

Sure thing! I'll get that implemented for you :+1:. Let me know if you want a testing build, by the way :)

Oh, also, did you mean the rounded design as in the image I posted there or your entire revision of the UI?

Oh, also, did you mean the rounded design as in the image I posted there or your entire revision of the UI?

The image you posted. I was thinking that the other UI was more rounded so the play screen should reflect that. I think the only other changes was removing the play button on the list screens.

The new version is available here!


PullImageError on app pods

I created an app with a git push, and the launched pod (and later pods launched by subsequent git pushes) go into PullImageError state:
ENG000656:workflow aaronschlesinger$ k get --namespace=wicker-radiator pod
NAME                           READY     STATUS           RESTARTS   AGE
wicker-radiator-v3-web-au7sn   0/1       PullImageError   0          1h
wicker-radiator-v4-web-uc4gz   0/1       PullImageError   0          1h
wicker-radiator-v5-web-iikid   0/1       PullImageError   0          28m
ENG000656:workflow aaronschlesinger$ k describe --namespace=wicker-radiator pod wicker-radiator-v5-web-iikid
Name:				wicker-radiator-v5-web-iikid
Namespace:			wicker-radiator
Image(s):			<IP_ADDRESS>:5000/wicker-radiator:v5
Node:				<IP_ADDRESS>/<IP_ADDRESS>
Start Time:			Wed, 16 Dec 2015 12:48:54 -0800
Labels:				app=wicker-radiator,heritage=deis,type=web,version=v5
Status:				Pending
Reason:
Message:
IP:				<IP_ADDRESS>
Replication Controllers:	wicker-radiator-v5-web (1/1 replicas created)
Containers:
  wicker-radiator-web:
    Container ID:
    Image:		<IP_ADDRESS>:5000/wicker-radiator:v5
    Image ID:
    State:		Waiting
      Reason:		PullImageError
    Ready:		False
    Restart Count:	0
    Environment Variables:
Conditions:
  Type		Status
  Ready 	False
Volumes:
  default-token-m3h32:
    Type:	Secret (a secret that should populate this volume)
    SecretName:	default-token-m3h32
Events:
  FirstSeen	LastSeen	Count	From			SubobjectPath				Reason		Message
  ─────────	────────	─────	────			─────────────				──────		───────
  28m		28m		1	{scheduler }							Scheduled	Successfully assigned wicker-radiator-v5-web-iikid to <IP_ADDRESS>
  28m		28m		1	{kubelet <IP_ADDRESS>}	implicitly required container POD	Pulled		Container image "gcr.io/google_containers/pause:0.8.0" already present on machine
  28m		28m		1	{kubelet <IP_ADDRESS>}	implicitly required container POD	Created		Created with docker id cf80574d2123
  28m		28m		1	{kubelet <IP_ADDRESS>}	implicitly required container POD	Started		Started with docker id cf80574d2123
  28m		1s		174	{kubelet <IP_ADDRESS>}	spec.containers{wicker-radiator-web}	Pulling		Pulling image "<IP_ADDRESS>:5000/wicker-radiator:v5"
  28m		1s		174	{kubelet <IP_ADDRESS>}	spec.containers{wicker-radiator-web}	Failed		Failed to pull image "<IP_ADDRESS>:5000/wicker-radiator:v5": API error (500): invalid registry endpoint https://<IP_ADDRESS>:5000/v0/: unable to ping registry endpoint https://<IP_ADDRESS>:5000/v0/
v2 ping attempt failed with error: Get https://<IP_ADDRESS>:5000/v2/: tls: oversized record received with length 20527
 v1 ping attempt failed with error: Get https://<IP_ADDRESS>:5000/v1/_ping: tls: oversized record received with length 20527. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry <IP_ADDRESS>:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/<IP_ADDRESS>:5000/ca.crt

It looks like a registry issue, possibly related to #99 because the logs therein indicate there may be registry issues also.

this is a duplicate of #99 so let's keep the debugging in one place. :)


Not all sessions solving

I can't see problems with some sessions (e.g. HexVisDemoe3f889) but they are not solving. While others solved partially or completely.

For these sessions I'm seeing an error in RoME. E.g. for session HexVisDemo955784:
2019-03-05 22:35:33┌ Info: ERROR
2019-03-05 22:35:33│ MethodError: no method matching updateFGBT!(::IncrementalInference.FactorGraph, ::IncrementalInference.BayesTree, ::Int64, ::Distributed.RemoteException; dbg=false, fillcolor="pink")
2019-03-05 22:35:33│ Closest candidates are:
2019-03-05 22:35:33│ updateFGBT!(::IncrementalInference.FactorGraph, ::IncrementalInference.BayesTree, ::Int64, !Matched::IncrementalInference.UpReturnBPType; dbg, fillcolor) at /root/.julia/packages/IncrementalInference/GmwCl/src/SolveTree01.jl:825
2019-03-05 22:35:33│ updateFGBT!(::IncrementalInference.FactorGraph, ::IncrementalInference.BayesTree, ::Int64, !Matched::IncrementalInference.DownReturnBPType; dbg, fillcolor) at /root/.julia/packages/IncrementalInference/GmwCl/src/SolveTree01.jl:796
2019-03-05 22:35:33│ Stacktrace:
2019-03-05 22:35:33│ [1] macro expansion at ./task.jl:263 [inlined]
2019-03-05 22:35:33│ [2] macro expansion at /root/.julia/packages/IncrementalInference/GmwCl/src/SolveTree01.jl:1177 [inlined]
2019-03-05 22:35:33│ [3] macro expansion at ./task.jl:244 [inlined]
2019-03-05 22:35:33│ [4] #processPostOrderStacks!#139(::Int64, ::Bool, ::Bool, ::Function, ::IncrementalInference.FactorGraph, ::IncrementalInference.BayesTree, ::Array{Graphs.ExVertex,1}) at /root/.julia/packages/IncrementalInference/GmwCl/src/SolveTree01.jl:1174
2019-03-05 22:35:33│ [5] #processPostOrderStacks! at ./none:0 [inlined]
2019-03-05 22:35:33│ [6] #upMsgPassingIterative!#142(::Int64, ::Bool, ::Bool, ::Function, ::IncrementalInference.ExploreTreeType{Core.TypeofBottom}) at /root/.julia/packages/IncrementalInference/GmwCl/src/SolveTree01.jl:1206
2019-03-05 22:35:33│ [7] #upMsgPassingIterative! at ./none:0 [inlined]
2019-03-05 22:35:33│ [8] macro expansion at ./logging.jl:310 [inlined]
2019-03-05 22:35:33│ [9] #inferOverTree!#143(::Int64, ::Bool, ::Bool, ::Function, ::IncrementalInference.FactorGraph, ::IncrementalInference.BayesTree) at /root/.julia/packages/IncrementalInference/GmwCl/src/SolveTree01.jl:1212
2019-03-05 22:35:33│ [10] #inferOverTree! at ./none:0 [inlined]
....

Hi, If it helps, I'm on the latest tags:

RoME v0.3.1
IncrementalInference v0.5.2
KernelDensityEstimate v0.5.0

From what I can tell, at least one of the issues is that when data is added to a graph  the new WebAPI, the solve is unable to deserialize it. I'm looking into that as the first issue.

Cool thanks - I don't think it is related to your local setup, at least not initially.

Separating into two issues: grapsh with data = #104

The ones causing the updateFGBT issue are:
"HexVisDemo955784"
"HexVisDemo259820"
Need to look into those once the sessions with data solving (#104)

I have a fix in for #104 and not sure if it fixes #103 - please let me know if you see any issues. Fix for #104 is in https://github.com/GearsAD/GraffSDK.jl/releases/tag/v0.4.5

Hi guys,
Okay so this is because there is a floating landmark with no connections:

I think we should consider this as an enhancement - thoughts, how do we detect graphs that are not fully connected and fail gracefully while solving?

3 possible solves:

Technology - can we do a connectedness test? For the ready=1 nodes in the session, can we, at minmum check that they are at least connected once?
Process - give me a way to see without opening Neo4j. Can we visualize the underlying graph easily?
People -  more documentation.

The solve will be all 3 at some point, but for now, could we look at maybe doing 1? If not, let's do 3.

Agree, do 1 and 3.  2 Already exists, see below.  For 1, system should at least present a warning or something if user intention did not make it all the way across the system.

Technology - can we do a connectedness test?

Connectedness test is a good idea, yes -- although not a complete solution since factors might be partial or low rank constraints.  Boils down to a per node n.ready = 1 thing from the user.  As before, the issue is when something outside the user's control breaks, how to keep the system somewhat robust?

People - more documentation.

We should do this anyway.  Will add labels and to Project.

Can we visualize the underlying graph easily?

using Caesar

fg = ...

writeGraphPdf(fg, show=true)  # with a few options to change the graphviz method etc.

# could also do
Graphs.plot(fg.g)

Also assigning Sam, since I will do the fix on Caesar side and then we can just hash it out together at some point in the Caesar v0.3.1 cycle.


Fix #10 Preserve search

This patch moves search terms, query filters, results, etc. to a store.
For example, you can navigate away by clicking a link to search result, click the back button in the browser, and find your query and your results as you left them.

Rebasing to pick up the latest fix I merged

Going to merge this to get on to the next steps


ND 2019, #38

Pull Request Test Coverage Report for Build 198

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 66.523%

Totals

Change from base Build 196:
0.0%

Covered Lines:
926

Relevant Lines:
1392

💛  - Coveralls


Feature Request: Maintain playground plugin state between tabs

It seems like it could be useful for the playground plugins to maintain state between sidebar tab selections. I imagine there could be scenarios where a user might want to see the JS, errors, or DTS without losing their place in a plugin they are using.
I've been thinking about how this could be handled in templates and the only idea that comes to mind is to utilize localStorage, however, this would would have to be tied into the state model of any frameworks that might be utilized, meaning more abstractions for the user.
I was thinking that perhaps this could beneficial to be changed at the API level. I've been reviewing the source to see what it would take to keep the plugin alive between tab selections. I  see how everything is getting generated but haven't quite traced down to where the contents of div.playground-plugin-container  is getting updated between tab selections. Definitely interesting diving into the playground source :)
If this is something that seems like it could be useful, I am happy to continue to look into it and try to make the necessary changes.

I added a data to the Plugin interface a while back - I think it's pretty reasonable for that to get persisted between tabs? So far I've been using local storage everywhere, but maybe it could be the playground's job to serialize and de-serialize that into localstorage

I'll take a look at data and see how I might be able to utilize that with the templates. I might also expose a custom useState hook that ties into localStorage, although, I'd really like to avoid this abstraction if possible.

Would it make sense or be feasible to only actually unmount the plugin if the user explicitly does so and not between sidebar tabs? If so, that seems like it would simplify extensibility the most.

We could yep, there might need to changes to the Plugin API itself but I'm not offended by the change - so long as it's easy for a plugin to register for monaco changes only when its foremost