refactor(rules): use more explicit naming

The rules now use the following naming:
{
  "directive-selector-name": [true, "camelCase"],
  "component-selector-name": [true, "kebab-case"],
  "directive-selector-type": [true, "attribute"],
  "component-selector-type": [true, "element"],
  "directive-selector-prefix": [true, "sg"],
  "component-selector-prefix": [true, "sg"],
  "use-host-parameter-decorator": true,
  "use-input-parameter-decorator": true,
  "use-output-parameter-decorator": true,
  "no-attribute-parameter-decorator": true,
  "no-input-rename": true,
  "no-output-rename": true,
  "no-forward-ref" :true,
  "use-life-cycle-interface": true,
  "use-pipe-transform-interface": true,
  "pipe-naming": [true, "kebab-case","sg"]
}

The error messages are not yet finalized as well, since we're waiting for the styles' codes from the style guide.
We're planning to include a rule which verifies that a component selector has a valid custom element name.
Feedback for the rules' naming is welcome!
// cc @johnpapa @igorminar @preslavsh

I like the new names of the rules.

is   "use-input-parameter-decorator": true, referring to using the parameter to the @Component?

It refers to using the @Input parameter decorator:
@Component({
  selector: 'my-app',
  template: 'Hello {{name}}'
})
class AppComponent {
  @Input() name;
}

My arguments for this style are:

The name of the property, or event name associated to @Input or respectively @Output should be modified only on a single place. In case of inputs decorator you need to modify both the inputs in @Component, and the declaration inside of the class's body.

The metadata declaration attached to the directive is shorter and thus more readable.

However, there are also arguments against the style: definition of all the inputs in a single place is more intuitive/readable.
Probably this is not the most appropriate place for discussion of the style but I'm interested to hear your opinion. Also, what do you think about the name?

I agree 100% to using the property decorator for these. I find it much more readable to see the decorator next to the property. Otherwise, when you scan a component class and see a property, we do not know which are input/outputs.
I'm thinking about the name ...  perhaps go the other way ...  use-input-output-property-decorator ???
use-input-parameter-decorator feels confusions as it really is use-component-decorators-input-parameter-decorator
I'm also thinking it would be bad form to use output one way and input the other. So I'd tie these 2 together in a single setting
thoughts?

It should definitely be property-decorator. I'll rename it in a sec.

should we combine those into 1 rule?
it would odd to set one to true and the other to false ... like this ....
"use-input-parameter-decorator": true,
"use-output-parameter-decorator": false,

That would be odd.
I'm thinking maybe ...
"use-input-output-parameter-decorators": true,


Cannot change language

I use Chinese as my native language.
Information
Game: Assassin's Creed: Valhalla
System: Windows 10 20H2 (OS: 19042.1052)
The language setting in Ubisoft Connect has already been set to Chinese.
The WARNING screen is in Chinese.
Reproduce

Start game without unlocker;
The language is Chinese and can be changed by Options>Interface>Language;
Quit the game;
Add unlocker and rename origin file;
Restart the game;
The language is changed to English and cannot be changed by Options>Interface>Language;

What I've done to solve this problem

I edited the ACValhalla.ini directly but nothing happen. In fact, the language settings was re-changed to en-US after I restart the game.

You haven't shared the only thing that is worth looking at - contents of the config file.

Here it is"
[Language]
Client=zh-CN
Text=zh-CN
Sound=en-US
Subtitles=zh-CN
[Graphics]
AdapterVendorID=4318
AdapterDeviceID=7943
MonitorDesc=
DisplayIndex=0
WindowPosX=0
WindowPosY=0
FullscreenWidth=1920
FullscreenHeight=1080
WindowedWidth=1920
WindowedHeight=1080
WindowMaximised=0
RefreshRate=0
WindowMode=2
VSyncMode=0
MaxFPS=75
IsFpsLimitEnabled=0
PixelDensity=1.00000
LastUsedFullscreenMode=1
KeepStandardAspect=0
HDREnabled=0
Freesync2Enabled=0
AdaptiveQuality=0
Antialiasing=2
Bloom=1
Character=2
CharacterTexture=2
Cloud=3
Clutter=3
CrowdDensity=0
Culling=0
DOF=2
Environment=4
Fog=2
Lighting=0
MotionBlur=1
Rain=2
Reflection=1
Shadow=4
SSAO=2
Terrain=0
Tessellation=2
Texture=2
TextureFiltering=2
Water=2
[LightingDevices]
Config=[{"id":"MSI MysticLight SDK","enabled":true,"config":{"ip":"localhost","port":1462,"ambientPort":14621,"authToken":""}}]
Enabled=0
[Input]
InputSourcesSelectorMode=1
[Options]
Controller Feedback=4294967295
WideAspectStretchedHUDMode=1
KeyboardHighlightingMode=dynamic
FOVScale=1.00000
AutoFOV=0
LockCursorToTheWindow=0
TobiiEnabled=1
TobiiExtendedViewEnabled=1
TobiiAimAtGazeEnabled=1
TobiiMarkAtGazeEnabled=1
TobiiInteractAtGazeEnabled=1
TobiiLockTargetAtGazeEnabled=1
TobiiDynamicLightAdaptationEnabled=1
TobiiSunEffectsEnabled=1
TobiiHeadTrackingAutoResetEnabled=1
TobiiExtendedViewSensitivity=50
TobiiExtendedViewResponsiveness=50
TobiiEyeVsHeadTrackingRatio=100
[VoiceInput]
InputMode=1
[Startup]

[Language]
Client=zh-CN
Text=zh-CN
Sound=en-US
Subtitles=zh-CN

text and subtitles will be reset to en-US after I restart the game, I haven't tried to change sound setting, other settings are fine.

Is this a joke? This is not a Uplay R2 unlocker config. Read the instructions in the forum topic from start to finish: https://cs.rin.ru/forum/viewtopic.php?f=29&t=111874.


add netiq-identity-manager topic

Add netiq-identity-manager topic to your repo for search engine optimization.
To associate your repository with the netiq-identity-manager topic, visit your repo's landing page and select "manage topics."

Thanks Norbert. Added that topic to the repository that has the built
packages (has more than just this one) and to the userapp one.
On Wed, Sep 29, 2021 at 1:33 PM Norbert Klasen @.***>
wrote:

Add netiq-identity-manager topic to your repo for search engine
optimization.
To associate your repository with the netiq-identity-manager topic, visit
your repo's landing page and select "manage topics."
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/fchierad/IDM-ECMAlib/issues/4, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADB5LQWND3CYRRCLNSHLJNTUENSXPANCNFSM5FAUVOEA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


MAP4 error for small molecules

Molecules, that consist of only 2 heavy atoms, throw an exception while calculating the MAP4 Fingerprint.
It's an issue related to rdkit, because the ValueError exception is thrown in rdkit.Chem.rdmolops.FindAtomEnvironmentOfRadiusN.
Found it by processing molhiv dataset - LiF and LiCl give an error.

Issued a bug on rdkit github


Return the result of makeTrayRequest as Future.value

This changes the way the TrayRequestResponse is returned from makeTrayRequest. Previously, the result was returned from Future(() { ... }), which is handled by a Timer. This leads to pending timers in Flutter widget tests.
Now, all the computation is done synchronously and only the result of this is returned as a Future.value.

@lukasbachlechner <3


Use neutral naming for css and js folders

Since project styles are moving to Sass the name css may confuse. Proposed name for the folder with styles (in this case .scss) is styles.
Considering possible use of CoffeeScript, TypeScript or other supersets of JavaScript js folder can be renamed to scripts.

:+1:


Windows Clipboard file / file path handling

The system clipboard functions returned nothing on windows when there were files (CF_HDROP) on the clipboard. This is unlike linux, which is able to return clipboard file paths as a newline-seperated list.
This adds simple handling for them, returning files as file:// URIs in a newline seperated list like linux does, for cross compatibility.
clipboard_has appears to make more sense as a "clipboard_has_text", so i made a clipboard_has_file check, and a clipboard_file_count that returns the number of files selected. I have only wrote these for windows, because linux is able to return file paths as strings on its own, and I don't know how to grab the number of selected files there.

my bad, i was supposed to mark it as a draft first, because i haven't written any documentation

I get a build error here:
 *  Executing task: scons platform=windows progress=no optimize=none fast_unsafe=yes debug_symbols=yes compiledb=no d3d12=yes -j32

scons: Reading SConscript files ...
Using SCons-detected MSVC version 14.3, arch x86_64
Building for platform "windows", architecture "x86_64", target "editor".
Checking for C header file mntent.h... (cached) no
scons: done reading SConscript files.
scons: Building targets ...
Linking Program bin\godot.windows.editor.x86_64.exe ...
progress_finish(["progress_finish"], [])
servers.windows.editor.x86_64.lib(display_server.windows.editor.x86_64.obj) : error LNK2001: unresolved external symbol "public: virtual int __cdecl DisplayServer::clipboard_get_file_count(void)const " (?clipboard_get_file_count@DisplayServer@@UEBAHXZ)
servers.windows.editor.x86_64.lib(display_server.windows.editor.x86_64.obj) : error LNK2001: unresolved external symbol "public: virtual bool __cdecl DisplayServer::clipboard_has_file(void)const " (?clipboard_has_file@DisplayServer@@UEBA_NXZ)
bin\godot.windows.editor.x86_64.exe : fatal error LNK1120: 2 unresolved externals
scons: *** [bin\godot.windows.editor.x86_64.exe] Error 1120
scons: building terminated because of errors.

Sorry for taking a while, i was focused on some other stuff.
the returned buffer length from DragQueryFileW doesn't count the terminator character. since array size logic starts from 0, it's off by one. can just add size += 1 to the code to fix this, explaining this in a comment

I think this is all i really needed to do, this was already doing what i needed (the ability to paste images from both the clipboard and the filesystem into a chat window) on the first version i wrote so it's all good now.

I dunno why the mono version in the CI is failing since i wrote the documentation and it removed it, but shrug

This is because the clipboard_get_file_count() and clipboard_has_file() methods are no longer exposed to the scripting API in the latest revision of this PR. Therefore, they are no longer documented in the class reference, so you should remove their method blocks in the XML accordingly (or re-expose the methods if this is intended).

Reading very long file paths also works, but they get shortened using Windows' own approach if the path is over 260 characters long
Fixed, there wasn't any mention that DragQueryFileW doesn't return long paths on its docs page, instead it wasn't mentioned on the page that says the functions that do. Now it passes all the paths into GetLongPathNameW to guarantee

This is because the clipboard_get_file_count() and clipboard_has_file() methods are no longer exposed to the scripting API in the latest revision of this PR. Therefore, they are no longer documented in the class reference, so you should remove their method blocks in the XML accordingly (or re-expose the methods if this is intended).
my bad, i thought i did expose them but looks like i never did.


Add possibility to get a specific observedAt

To be able to a query like time=2022-12-01T06:38:00Z or q=attributeName.observedAt=="2022-12-01T06:38:00Z" instead of having to do timerel=between&timeAt=2022-12-01T06:37:00Z&endTimeAt=2022-12-01T06:39:00Z

#869 will allow this... only if 2022-12-01T06:38:00Z is the current value of the observedAt property of attributeName. If you are searching for values in the history of your entity, you will still have to use the temporal API as now.


Tfsec

Replaces #2.
Fix/ignore the tfsec warnings in the current code. Ignored warnings we should consider looking at, opinions welcome:

~Terraform state bucket~

~Enabling (server side) bucket encryption~

~With a customer managed key~

~Enabling access logging (which would go to another S3 bucket)~

ldaps_crl_and_certs S3 bucket

Same as above
Does this have secrets in or is it just public keys and a CRL?

Edit: Treating as non-secret

~Secrets manager~

~Use a CMK - not convinced this is useful at the moment, but we will probably want to do this eventually with different keys for different services~

AD Management Server

Limiting egress - probably something to think about when we set up an egress proxy - what's the ticket number for that?

~It got me to add descriptions for the domain_controllers_to_ca_ security group rules @hugh-emerson do you know what the ports are for?~
Note that this PR includes changes to the backend state bucket setup, which will presumably need to be applied manually.
I've added a tfsec CI job to PRs only, do we want it for the main branch too, and if so should it block deploys or be allowed to fail?
I can't run the terraform without an AWS key, so I'll let the CI check it.

I've added "tfsec PR commenter" as a required check for PRs: https://github.com/communitiesuk/delta-common-infrastructure/settings/branch_protection_rules/28146899

Looking at how it gets used, the ldaps_crl_and_certs bucket might only be for CRL, in which case it's not sensitive, but tfstate should be encrypted.

I've also added a separate workflow for running tfsec on the main branch. For now it always uses the latest version of tfsec, so will probably break sometimes, and we don't want that blocking releases.

Looks good. The ticket number for sending egress via Squid is DT-23, but no real need to add it to the comment. Pretty intuitive to revisit the security group at that point.


Journal links to fillable pdfs don't work

Describe the bug
Journal links don't work to fillable pdfs, although they work fine for static ones.
To Reproduce
Steps to reproduce the behavior:

Create a new fillable pdf.
Create a link to that pdf in a journal, e.g. @PDF[New PDF|page=1]{New PDF}
Click on it.
This error is thrown: Error: Provided entity was not a journal entry.

Expected behavior
The pdf should open.
Version Information:

Tested in Brave and Chrome
FoundryVTT Version 9 - Build 245
PDFoundry 0.9.1
Tested in my own system with tons of modules and in the V5 system in a new world with no other modules than PDFoundry

At the moment this isn't supported, but I'd like it to be in the future.


Be more concrete

Builds off @vchuravy's work in #261.
Preliminary design of user API for concrete models. Probably most of the time the user will have to specify boundary conditions prior to building the model. We'll have to come up with good syntax for that. What we have is ok, but can be improved.
The checkpointing tests currently fail, I think because they attempt to change the types of the some of the model fields.

Please don't delete the glwagner:concrete branch. We can fix the BC API issue from #272 and reopen the PR.

As noted in my description, I did write a minimal API (a few keyword constructors, and also one convenience function to instantiate ModelBoundaryConditions with one non-default boundary condition. I use the API in the tests. It does need documentation.
A better API could perhaps introduce a BoundaryConditionsWizard type that allows users to use the syntax
wizard = BoundaryConditionsWizard()
wizard.T.z.top = BoundaryCondition(Flux, 1.0)

# some time later...

model = Model(; boundary_conditions=wizard)

BoundaryConditionsWizard would just be a 100% abstract implementation of ModelBoundaryConditions (basically, what we had before). Then we could write a function that converts a Wizard to real boundary conditions with concrete types in the Model constructor.
That's one idea. @vchuravy, any other ideas?


release.tar.zst not found

I'm trying to build Envoy (tag v1.27.0) on my local Ubuntu but after executing the command ./ci/run_envoy_docker.sh './ci/do_ci.sh release.server_only', I get the error as below:
Release files created in /build/envoy/x64/bin
[+] Building 4.6s (9/16)
 => [internal] load build definition from Dockerfile-envoy                                                                                0.0s
 => => transferring dockerfile: 4.06kB                                                                                0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 297B                                                                                0.0s
 => [internal] load metadata for [docker.io/library/ubuntu:20.04@sha256:33a5cc25d22c45900796a1aca487ad7a7cb09f09ea00b779e3b2026b4fc2faba](http://docker.io/library/ubuntu:20.04@sha256:33a5cc25d22c45900796a1aca487ad7a7cb09f09ea00b779e3b2026b4fc2faba)                                                                4.1s
 => CACHED [envoy-base 1/4] FROM [docker.io/library/ubuntu:20.04@sha256:33a5cc25d22c45900796a1aca487ad7a7cb09f09ea00b779e3b2026b4fc2faba](http://docker.io/library/ubuntu:20.04@sha256:33a5cc25d22c45900796a1aca487ad7a7cb09f09ea00b779e3b2026b4fc2faba)                                                                0.0s
 => [internal] load build context                                                                                0.1s
 => => transferring context: 15.09kB                                                                                0.1s
 => CANCELED [envoy-base 2/4] RUN mkdir -p /etc/envoy     && adduser --group --system envoy                                                                                0.2s
 => CACHED [binary 1/3] COPY ci/docker-entrypoint.sh /                                                                                0.0s
 => CACHED [binary 2/3] ADD configs/envoyproxy_io_proxy.yaml /etc/envoy/envoy.yaml                                                                                0.0s
 => ERROR [binary 3/3] ADD linux/amd64/release.tar.zst /usr/local/bin/                                                                                0.0s
------
 > [binary 3/3] ADD linux/amd64/release.tar.zst /usr/local/bin/:
------
Dockerfile-envoy:12
--------------------
  10 |     ARG TARGETPLATFORM
  11 |     ENV TARGETPLATFORM="${TARGETPLATFORM:-linux/amd64}"
  12 | >>> ADD "${TARGETPLATFORM}/release.tar.zst" /usr/local/bin/
  13 |
  14 |
--------------------
ERROR: failed to solve: failed to compute cache key: failed to calculate checksum of ref 7827cc9a-e76b-4066-b775-1c7db45b54fa::nzucez3w1xrog00561rr7xupq: "/linux/amd64/release.tar.zst": not found

Could someone help me on this issue?

what command are you actually running when you get this error ?

i would suggest using the ./ci/do_ci.sh docker target or looking at what it does

@phlax Thanks. ENVOY_DOCKER_IN_DOCKER=1 sudo -E ./ci/run_envoy_docker.sh './ci/do_ci.sh docker' works as expected.


Node

@tmarkovski @MichaelEdwardBlack is this done and/or does one of you have the bandwidth to do it?

This just says "Node". What is it in reference to?

Ecosystem support. See the ticket that tracks this one.
On Fri, Dec 24, 2021, 21:17 Tomislav Markovski @.***>
wrote:

This just says "Node". What is it in reference to?
—
Reply to this email directly, view it on GitHub
https://github.com/trinsic-id/sdk/issues/274#issuecomment-1000960180,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AD7QPF5XDOJFU3OWJOBFS6LUSUSUPANCNFSM5J6DSSQA
.
You are receiving this because you authored the thread.Message ID:
@.***>

Ah, thanks. Checking from phone, didn't show the linked issue. I'll be owning that.


[QUESTION] ValueError: time data '2019-01-01' does not match format '%Y-%m-%d %H:%M:%S'

Issue Template
About two weeks ago twint started returning the 'VauleError' for any query requiring a date:
query:  twint -u potus --since 2019-01-01 -o potus2019.csv --csv
error:  ValueError: time data '2019-01-01' does not match format '%Y-%m-%d %H:%M:%S'
I am on a Windows 10 machine, running PowerShell
Does anyone have an idea of what is causing the error and how to fix it?

[] Python version is 3.6;
[] Updated Twint with pip3 install --user --upgrade -e git+https://github.com/twintproject/twint.git@origin/master#egg=twint;
[] I have searched the issues and there are no duplicates of this issue/question/request.

If I add any type of time 'argument' I get the following error(s)
query1: twint -u potus --since 2019-01-01 00:00:01 CEST -o potus2019.csv --csv
twint: error: unrecognized arguments: 00:00:01 CEST
query2: twint -u potus --since 2019-01-01 00:00:01 -o potus2019.csv --csv
twint: error: unrecognized arguments: 00:00:01

@tharrisoniii
query 1 :  twint -u potus --since "2019-01-01 00:00:01" -o potus2019.csv --csv
the same for query 2
As of now timezone conversion is not handled

Hi @pielco11
I bumped in this error
It doesn't works for -s parameter
example: twint -s potus --since "2019-01-01 00:00:01" -o potus2019.csv --csv


qemu-i486 build broken

The qemu-i486:nsh and qemu-i486:ostest configurations do not seem to build any more due to a linker error looking for libm
CC:  qemu_boot.c
CC:  qemu_appinit.c
AR (create): libboard.a   qemu_boot.o qemu_appinit.o
make[2]: Leaving directory '/home/bashton/nuttx/apache/incubator-nuttx/boards/x86/qemu/qemu-i486/src'
LD: nuttx.elf
ld: cannot find -lm
make[1]: *** [Makefile:135: nuttx.elf] Error 1
make[1]: Leaving directory '/home/bashton/nuttx/apache/incubator-nuttx/arch/x86/src'
make: *** [tools/Makefile.unix:415: nuttx.elf] Error 2

@btashton
Oh really?
I can build qemu-i486:nsh and qemu-i486:ostest on ubuntu18.04 x86_64.
make V=1
...
LD: nuttx.elf
ld --entry=__start -m elf_i386 -T/mnt/m2ssd/opensource/RTOS/nuttx-releases/nuttx/boards/x86/qemu/qemu-i486/scripts/qemu.ld -static -L"/mnt/m2ssd/opensource/RTOS/nuttx-releases/nuttx/staging" -L"/mnt/m2ssd/opensource/RTOS/nuttx-releases/nuttx/arch/x86/src/board" -L "/usr/lib/gcc/x86_64-linux-gnu/7/32/" -L "/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib32/" \
	-o "/mnt/m2ssd/opensource/RTOS/nuttx-releases/nuttx/nuttx.elf" qemu_head.o  \
	--start-group -lsched -ldrivers -lboards -lc -lmm -larch -lapps -lfs -lbinfmt -lboard -lgcc -lm --end-group
nm "/mnt/m2ssd/opensource/RTOS/nuttx-releases/nuttx/nuttx.elf" | \
grep -v '\(compiled\)\|\(\.o$\)\|\( [aUw] \)\|\(\.\.ng$\)\|\(LASH[RL]DI\)' | \
sort > /mnt/m2ssd/opensource/RTOS/nuttx-releases/nuttx/System.map
make[1]: Leaving directory '/mnt/m2ssd/opensource/RTOS/nuttx-releases/nuttx/arch/x86/src'
if [ -w /tftpboot ] ; then \
	cp -f nuttx.elf /tftpboot/nuttx.elf.x86; \
fi

I'll try building it again with verbose logs, but it did not work correctly for me in either config.

@masayuki2009
LD: nuttx.elf
ld --entry=__start -m elf_i386 -g -T/home/bashton/nuttx/apache/incubator-nuttx/boards/x86/qemu/qemu-i486/scripts/qemu.ld -static -L"/home/bashton/nuttx/apache/incubator-nuttx/staging" -L"/home/bashton/nuttx/apache/incubator-nuttx/arch/x86/src/board" -L "/usr/lib/gcc/x86_64-redhat-linux/10/32/" -L "./" \
	-o "/home/bashton/nuttx/apache/incubator-nuttx/nuttx.elf" qemu_head.o  \
	--start-group -lsched -ldrivers -lboards -lc -lmm -larch -lapps -lfs -lbinfmt -lboard -lgcc -lm --end-group
ld: cannot find -lm
make[1]: *** [Makefile:135: nuttx.elf] Error 1
make[1]: Leaving directory '/home/bashton/nuttx/apache/incubator-nuttx/arch/x86/src'
make: *** [tools/Makefile.unix:415: nuttx.elf] Error 2

Do we really want to be using the system math library here?  That seems wrong to me.

Ok looks like I was wrong here and it is intentional.  Including the glibc-static.i686 fixes this, I did not even have the 64-bit version on my system, for the x86_64 port we have LIBM=y so this is not required.


can't update unit-threaded

there seems to be a breaking change w.r.t. visibility of Values

Values doesn't exist anymore. I'm on it.


Middle names are usually listed as part of the name.given array. I don't think we need a new extension for this.

https://github.com/openhie/cares-covid-ig/blob/36521e0e0f13772cab03acb94bf964d8a777a458/input/fsh/profiles.fsh#L85-L89

Not an issue, will be removed today


No License File

How is this application licensed? This repository is missing a LICENSE.md file.
I noticed that some of the repo owner's other projects have an MIT License attached, and would like to know if this project is under the MIT License as well.
I'm interested in using some of the code contained here for a personal project, and would like to know if that's okay with the repo owner. Of course, the source would be appropriately credited in accordance with the terms of the MIT License.
Github has an article providing assistance on adding a license to a repository.

HI I have just added a License file. Enjoy :)


fix(module) TotalVI fix activation background

In the totalVI decoder, we were stacking two exponential activation functions. This was producing numerical instabilities. We replace this with a softplus activation function to increase numerical instability. Code is backwards compatible. Default has changed.

Please see https://github.com/scverse/scvi-tools/pull/2913 if you still have this issue in our main branch, please create a new issue and share more information about your data (n_protein, n_cells, n_genes)


Add OpenVPN support

strongSwan support is almost there so adding OpenVPN support using strongSwan snippets is pretty trivial.

Added in 925bc0ef9a4ce1fcf2b6230a5b44a87b5d395faa


Persistent license support electron build for linux

We provide content to our customers in ubuntu/debian. These systems are expected to be offline. When can we expect persistent license to be available for linux? Is this item part of existing roadmap?

Any news about the availability for a Linux build ?

I've not heard anything new on this topic yet, but I'll make sure to bring it up with Widevine again to check the status.

I talked to my Widevine contacts about this and here is the thing: They believe Linux is not currently a large enough Electron platform to warrant spending the time required to make the required additions to the CDM, so it has been put on ice for now.
If you, or anyone, thinks differently I encourage you state your case, either here, so that I can refer to the discussion, or by making the case directly with Widevine (which is likely to give a more immediate response). If enough interest and/or potential usage numbers is shown perhaps they will reconsider.

Bumping this issue. Chromebooks are rolling out support for installing Electron apps built for Linux, at which point I would expect to see the audience for Linux-built Electron apps increase substantially. We were planning on using this as a solution for delivering our widevine-based electron application to a large percentage of our enterprise users, who are standardizing on Chromebooks.

Hi @pix-dgee,
I'll forward the relevant information to the proper people. This use-case of yours, does it entail offline license support?

FYI, I added experimental Linux x64/ia32 builds of 3.0.2-wvvmp today. Because of the limitations on the Linux version of the Widevine CDM (no VMP/StorageId) persistent licenses are not supported, but scenarios with online streaming of Widevine protected content are.

Thank you for the support of the Linux platform. Could we expect that VMP/StorageID will be supported by Widevine CDM in the near future?

Unfortunately, no, this is not something that will happen in the near future. In fact, Widevine has not committed to supporting VMP on Linux at all at this time. Unless this changed very recently they are still citing the "too small user base"  as the reason.
After making our initial Linux release I found out that the ia32 version of the CDM for Linux is deprecated as well, so support for that will go away at some point going forward.

@khwaaj
We have the use-case for Linux box with offline license. This is for digital classrooms.
There are 30k+ classrooms we want to roll out this solution.
Plus we also want to launch it in B2C channel for students.
Noticed the thread last year where status was it would be available in 2nd half of 2018, but missed to followup.  Now was looking for update & realized it did not get enough userbase to support
So bumping the issue bigtime.
I urge other watchers to reply to thread with their usecase

Hi,
i would like to bump this thing as well, as the issue started more than 2 years ago. My company reimplements an terminal for patients in hospitals with electron, running on ubuntu machines. In particular there are currently 2000 devices running on an deprecated platform. We are still in an early prototype stage. One of the requirements is to provide a browser, the user may use to either browse the internet as well as watch netflix, amazon prime and other services like this. The terminals are connected to the internet at any time and no offline content will be viewed.
The perfect solution would be to use ECS and i verified, it plays netflix and prime flawlessly. However the documentation states, that like this, the app runs just with an UAT (development) certificate and most providers aren't even supposed to work with this license.
Am i able to sign the app upon startup due to the lack of persistent certificates?
I already tried to sign the app package but obviously, the EVS doesn't support my linux build. It is pretty tough and intransparent, how all certificate/licensing abilities work together.
Kind regards.

HI Klaus,
First, to clarify a couple of things: Google does support a browser Widevine CDM for Linux, however, that CDM does not support VMP. We are using this CDM in ECS releases for Linux, but those releases are not VMP-signed at all (it would be pointless without the Widevine CDM supporting VMP). This is also why Netflix, and other streaming services, actually work on Linux, out of the box. Many services implementing Widevine DRM proxies have opted to forego the VMP requirement, specifically for Linux clients, to allow them to stream Widevine protected content. This does not extend to persistent licenses though, so there is a limitation there that prevents implementation of persistent downloads with completely offline playback.
As the case you stated above does not require persistent licenses, you should be fine using ECS, at least as long as the required services keep the exception for Linux clients. Keep in mind that the same restriction exists for Chrome on Linux, so disabling the exception would alienate all of their Linux users, which is why I find it unlikely this will happen anytime soon.
I can understand this all seems unintuitive, and clearly less than ideal, but it is what we have to work with. Google has not committed to add VMP support to the browser CDM for Linux since they feel the platform is just to small to put the required resources into, and they still stand by that decision today. I'm not sure what it would take to change their minds, but from what I've heard it would likely require a push from a major actor (or actors), I'm guessing with many millions of users, for them to even consider VMP for Linux again.


fix: auto close dialog

When multiple dialogs defined on one page it may cause to auto close dialog when opening dialog after first one.
Issue demo
https://github.com/eBay/ebayui-core-react/assets/12481352/59ced942-459a-4c7b-8f99-fd6c74efa121
Fixed demo
https://github.com/eBay/ebayui-core-react/assets/12481352/8a14b93f-f2a7-4404-a626-7ad936e750a4

Thank you for the PR but we can’t do this change. This will break the current behavior on clicking outside of the page. As you can see the test were failing, we should not modify that test. We will need to have a different solution. Did you try to use event.stopPropagation() in your on background click?

stopPropagation will prevent click on close button so its also not a solution.

Ops, sorry, wrong place for approval. Don't mind me. 🤐


Feature/default files

Initial Requirements:

Transition to a 'default' naming convention for default files implemented from CS210 boilerplate.
Ensure that default controllers load when no custom views exist on front-end.

Looks like additional Work that we should implement now:

Implement 'default' naming convention for default files implemented from CS210 boilerplate on back-end.
Ensure that default controllers load when no custom views exist on front-end.

Update:

Code is basically working, according to manual testing and CI tests, but I need to clean-up the way it is implemented. The prior logic is (a.) using try-catches in weird places to see if a file exists that matches the name of the app and loads the custom views for it, or (b.) loads a prior existing default view that is used for testing.

See the Factory.ts file in the back-end or front-end and view the require() methods that are bringing view controllers (ie. line 42-52 in Backend Factory.ts). I just have to change the way we read these files because if anything fails in the try-catch at the moment, we go to the catch and implement the default option there.

@winstan
I just need to delve into this logic a bit more to clean it up and implement it properly. I basically have to look at that try-catch logic. I don't think it will be too long. The tests are passing but it is currently sloppy.
I think we need more documentation though, as we have default possibilities both on the back-end and front-end and in multiple places. It becomes confusing to know where to implement custom views. The old documentation still needs to be updated.


queries for related_places are killing the triplestore

after refactoring the paginationstrategy (see #32 ), these queries time out.

the queries seem to be fine, just very slow. Probably due to the inconsistencies in the data modelling. See the ors in the property paths here: https://github.com/acdh-oeaw/InTaVia-Backend/blob/main/sparql/query_entities_v1.sparql#L56-L65


Possibility of etcd-backup secret to get deleted during shoot creation

How to categorize this issue?

/area backup
/kind bug
What happened:
It seems during shoot creation that it is possible for the etcd-backup secret to get deleted by an expiring BackupEntry created from prior shoot deletion . This makes the cluster to get stuck on the Deploying main and events etcd task
What you expected to happen:
How to reproduce it (as minimally and precisely as possible):

Add deletionGracePeriodHours: 24 in charts/gardener/gardenlet/values.yaml

  controllers:
    backupBucket:
      concurrentSyncs: 20
    backupEntry:
      concurrentSyncs: 20
      deletionGracePeriodHours: 24

In local setup add a fake task delay time.Sleep(15 * time.Second) on first line of DeployEtcd
https://github.com/gardener/gardener/blob/694b88c048001eee0572f310001b8ebf82a0436d/pkg/operation/botanist/etcd.go#L98-L99
Create and delete a cluster for a core.gardener.cloud/v1beta1.BackupEntry to remain
In a different window run watch k -n shoot--local--local get secret etcd-backup
On another terminal edit the BackupEntry from step 3 with backupentry.core.gardener.cloud/force-deletion: "true" but don's save the change yet
Create a cluster
When etcd-backup appears on the terminal save the change from step 5 (run :wq in vim). This will simulate an expiration of the BackupEntry
After max 1 sec etcd-backup will dissapear
Shoot creation will get stuck on this line
https://github.com/gardener/gardener/blob/694b88c048001eee0572f310001b8ebf82a0436d/pkg/operation/botanist/etcd.go#L102-L104

Anything else we need to know?:
Environment:

Gardener version:
Kubernetes version (use kubectl version):
Cloud provider or hardware configuration:
Others:

Thinking about this issue is there a reason for the deletion of extensions.gardener.cloud/v1alpha1.BackupEntry to delete etcd-backup secret?  But etcd-backup gets deleted anyways, so there is a second mechanism of it's deletion beside the deleion of extensions.gardener.cloud/v1alpha1.BackupEntry

A long time ago we modified the logic in extensions.gardener.cloud/v1alpha1.BackupEntry so that the etcd-backup secret is always deleted in: https://github.com/gardener/gardener/pull/4894
During the restore phase of control plane migration there are two extensions.gardener.cloud/v1alpha1.BackupEntrys which get deployed - one with prefix source- which is used to create a source-etcd-backup secret and one without a prefix used to create the etcd-backup secret.
The source-etcd-backup secret contains the access secret for backup bucket of the source seed and the etcd-backup secret contains the access secret for the backup bucket of the destination seed. These secrets are used by EtcdCopyBackupsTask which performs a copy of etcd data from the source bucket to the destination bucket.
After the copy is performed we have to get rid of the source-etcd-backup secret for security reasons. This is why that secret is deleted when the corresponding source extensions.gardener.cloud/v1alpha1.BackupEntry is deleted.
Because we didn't want to make the handling of these secrets "special" only for the case when the extensions.gardener.cloud/v1alpha1.BackupEntry contains the source- prefix we decided to delete the secrets in all cases. Changing this would be the least complex fix.

Some possible approaches that we discussed today:

There is the suggestion to delete secret only if has the source- prefix and to leave the etcd-backup - ref https://github.com/gardener/gardener/issues/8675#issuecomment-1776971768. We all agreed that it is hacky approach that was avoided back then.
We could change to name of the etcd-backup Secret to include the BackupEntry name/UID. We need to check how to make this backwards-compatible.
We could maintain annotation (or ownerReference) on the etcd-backup Secret about which BackupEntry is its owner. Respectively, on BackupEntry deletion, it would delete the etcd-backup Secret if it is the Secret owner.

Maybe 3. would be the easiest option to implement.
@rfranzke @shafeeqes WDYT?

Just for the record, we wouldn't observe this issue if we reconcile the extension.BackupEntry every time the core.BackupEntry is reconciled. See https://github.com/gardener/gardener/blob/cf2e024732cfb42e341be78f261c5102b9a7edbc/pkg/gardenlet/controller/backupentry/reconciler.go#L228-L231.
Currently, if the extension.BackupEntry is in Succeeded state, we won't trigger its reconciliation.

Just for the record, we wouldn't observe this issue if we reconcile the extension.BackupEntry every time the core.BackupEntry is reconciled.

Yeah, this was intentional not to reconcile the extension backupentry and cause unnecessary cloud API calls.

Maybe 3. would be the easiest option to implement.

In this case, the secret will get deleted right after the backupEntry gets the deletionTimestamp, right? I am asking since we have a deletion grace period for the backupentry.

In this case, the secret will get deleted right after the backupEntry gets the deletionTimestamp, right? I am asking since we have a deletion grace period for the backupentry.

The proposal is not to change when the etcd-backup Secret gets deleted. The proposal is to add an annotation to the etcd-backup Secret that denotes which BackupEntry is the owner of the Secret. Then the BackupEntry deletion logic has to be adapted to delete the etcd-backup Secret only it is the owner of the Secret. In this way we will prevent a BackupEntry scheduled for deletion from the Shoot in the past to delete the etcd-backup Secret of the already new Shoot (with the same name).


Support atomic counter at model or engine layer

I would love to see atomic counter supported at engine or model layer. I'm not sure what would be the best way to implement this given the current API. But I can imagine one option:
class GlobalIdTrackerModel(BaseModel):
    partition_key = Column(String, hash_key=True)
    search_key = Column(String, range_key=True)
    current_counter = Column(Number)

foo_bar_id_tracker = GlobalIdTrackerModel("foo", "bar")
engine.update(instance=foo_bar_id_tracker, updates=[foo_bar_id_tracker.current_counter.increase(1)])

That would require a new method update() added to Engine which would eventually call session.save_item() (since save_item() is just a wrapper for PutItem call).
The code above actually looks weird to my eyes, but that's the best I can think of so far.

Thanks for opening an issue!  Today bloop doesn't support the "ADD" action or "DELETE" action in an UpdateExpression but we could expose that through, as you mentioned, the Engine or maybe the SessionWrapper.
I'd like to understand the use case a little better first.  I'm specifically worried about the fact that without idempotency tokens on UpdateItem calls you can't guarantee an increment happens exactly once in the face of network errors.  Quoting from that answer:

If the connection drops after issuing an UpdateItem ADD request, you have no way of knowing if the add was committed or not, so you don't know if you should retry or not.

In a multi-writer environment even a conditional update doesn't guarantee execution.  You need your own idempotency structure eg. an append-only table of modify tokens and a transaction, or an in-row idempotency set of tokens with a conditional update.  These trade off write units (transactions) or space (in-row set) for additional guarantees that the new UpdateExpression actions ADD and DELETE do not on their own provide.
As to the API it would be fairly easy to extend the code that builds update expressions to support ADD and DELETE and because the SessionWrapper save and delete methods take full request objects there's no change either.

Some Options
Keeping in mind that today ADD only supports numeric types (bloop.types.Numeric) and set types (bloop.types.Set) while DELETE only supports set types, we may need to tie the type system into the update action type.  I could see a few options, roughly sketched out below.  All names placeholders:
1. Custom Values Encode Action
Each value carries the action type, such as bloop.update.Add, bloop.update.Delete.  They represent a delta from the unknown remote value, semantically conveying "add 1 to the value" or "remove this item from the set":
class PageView(BaseModel):
    ip = Column(IpAddress, hash_key=True)
    count = Column(Number)
    websites = Set(Url)

v = PageView(ip='<IP_ADDRESS>')

# increment by 1
v.count = bloop.update.Add(1)

# remove a website
v.websites = bloop.update.Delete(set())
v.websites.remove("google.com")

engine.save(v)

This has the advantage that the type system doesn't need to change, since the renderer would inspect the value and see it's a bloop.update.Delete and then pass each value to the typedef.  The downside is that the relative value is probably unusable as it's column's type.  You can't add 3 + some_page_view.count without knowing it's not a relative value.  Or maybe that's a feature to prevent misuse of absolute vs relative values :)
2. Type Provides Action
The other option is that the type now specifies which action should be used in an update expression.  So bloop.types.Numeric now serializes into ("ADD", {"N": "2"}) instead of {"N": "2"} or ("SET", {"N": "31"}) instead of {"N": "31"}.  This would need a major version bump and a deprecation period, and a default action for types in the intermediate.  It keeps things flexible for custom types (eg. DynamicType) which is a significant bonus but comes at the cost of increased complexity to define a custom type (Type._load and Type._dump get more complex as well as any consuming code).
3. Don't support ADD or DELETE Actions
The default action, don't expand beyond Set/Remove.  This is kicking the can down the road should DynamoDB ever add additional actions, say an UPSERT for the MAP type (that's #28, my pipe dream)
4. Expose Actions on SessionWrapper or Engine
My least favorite option, since additional functions or arguments make the Engine harder to use.  Do I want to Engine.save or Engine.update or Engine.add?  Even adding a parameter, is it Engine.save(obj) or Engine.save(None, update=obj) and what about saving multiple objects with some atomic counters?  Can I combine those with conditions?
5. Expose Actions on Columns
This one is better than on Engine/SessionWrapper since it reduces the chance to confuse operations or arguments, but breaks the typical init -> mutate -> engine.save workflow that bloop streamlines.  I'm defensive of reordering the workflow too much or adding new entry points like UserModel.balance.add(-19.99) since it makes dynamic object creation harder.  Today you can use SomeModel.Meta.columns and setattr to build up an object eg. setattr(column, column.name, v) while this would require using getattr(column, action_name)(value)` and storing the resulting object.

Next Steps
I'd prefer 2 (Type Provides Action) then 1 (Custom Value Encodes Action) and least 3 (Don't support ADD or Delete Actions).  I've included 4 and 5 for discussion but I don't think they're on the table.
What I'd find most helpful is an example use case.  Is there an application you're working on today that can't use conditional updates and/or transactions?  Why not?  My guess is some combination of throughput and lack of need for exactness.  If you can use conditional updates, here are two examples of their usage (same PageView class above):
view = PageView(id='<IP_ADDRESS>')
engine.load(view)

# option 1: only require the 'count' column to be unchanged

require_previous = PageView.count == view.count
view.count += 1
engine.save(view, condition=require_previous)

# option 2: require the entire row to be unchanged
view.count += 1
engine.save(view, atomic=True)

Thanks for an extremely thoughtful response!
I guess I should have started with some example use case first. Actually I have two:

Using DynamoDB to maintain a set of auto-increment counters. This is arguably an anti-pattern in DynamoDB but I would save that for a different topic -- there are still legitimate needs for some sort of auto-increment ID (e.g. bug tracking, case management systems).
Using DynamoDB to track the number of visits of website's pages. This is actually coming from your sample code.

Both use cases have one thing in common: over-counting or under-counting are both not big concerns -- it's okay if we skip some IDs in a bug tracking system or miss some counts for a single web page. In fact, AWS does mention this in their docs regarding atomic counters:

An atomic counter would not be appropriate where overcounting or undercounting cannot be tolerated (For example, in a banking application). In this case, it is safer to use a conditional update instead of an atomic counter.

Those who choose to use atomic counters should already be aware of this and have the right strategy to address (or ignore) potential failures. bloop can also help by giving proper caution around the usage of ADD or SET FooBar = FooBar + :incr once the feature is out.

The lack of this feature is not a blocker for me to achieve what I want, I can totally use some conditional updates as you suggested. However they are not the optimized approach in term of throughput  -- we need to load the item first (which issues BatchGetItem) before sending the update.
What I was hoping is to update the counter and, optionally, receive the whole object back with just one request. Maybe something like this:
obj = PageView(hash_key, range_key)
...
dynamodb_client.update_item(
    TableName=self._compute_table_name(obj.__class__),
    Key=dump_key(self, obj),
    UpdateExpression=f"ADD {column.dynamo_name} :incr",
    ExpressionAttributeValues={":incr": {"N": str(increment)}},
    ReturnValues="ALL_NEW",
)
# probably use unpack_from_dynamodb() to load
# response["Attributes"] into obj

I also prefer your Option 2. That makes the library more extendable in the future. I'm curious what the API would look like if you go with that approach?

That example really helps, thank you.  Especially having the functional boto3 call 🎉
I'd like to think about the api a bit more but I think this is achievable.  There are actually two requests here:

Some way to use the ADD and DELETE actions
Some way to apply return values to the object after saving

I haven't looked at ReturnValues in at least a year so I want to see what the options are like.  I'd probably opt for an equivalent of 'all' or 'all changed' if they exist, and as you mentioned use unpack_from_dynamodb to update the object and mark the attributes as synchronized.
Assuming both of these were implemented, I think the following is what the bloop code would approximately look like:
class GlobalConfig(BaseModel):
    key = Column(String, hash_key=True, dynamo_name="k")
    value = Column(DynamicType, dynamo_name="v")

engine.bind(GlobalConfig)

def next_issue_id(engine) -> int:
    cfg = GlobalConfig(
        key="app.next_issue_id"
        value=bloop.update.Add(1)  # <-- TODO decide on syntax
    )
    engine.save(cfg, apply_latest=True)  # <-- TODO decide on syntax
    return int(cfg.value)

How does that look ergonomically?  I'm worried about ambiguity of "add to an int" vs "add int to a set" but that could perhaps be left up to the column's type to infer (or add a type hint option).

To me, if the functionality is there and the docs are clear, then ambiguity is not a big concern. Other users might have different opinions though.
Having said that, I actually like the API syntax of the first option (in your first response) than your latest one. Can we combine your first two options together -- using the API syntax of option 1 and have the underlying implementation as described in option 2?
That would mean something like this:
class PageView(BaseModel):
    ip = Column(IpAddress, hash_key=True)
    count = Column(Number)
    websites = Set(Url)
    category = Column(String)

v = PageView(ip='<IP_ADDRESS>')

# This results ("SET", {"S": "Admin"})
v.category = "Admin"

# This also results ("SET", {"S": "Admin"})
v.category = bloop.update.Set("Admin")

# This results ("ADD", {"N": "1"})
v.count = bloop.update.Add(1)

engine.save(v)

Agreed with your example.  I was trying that in my previous post but used DynamicType instead of Number since a config table might be multi-type data :)
Changes we'll need:

A new class like bloop.Actions with static methods set, delete, add, remove that take a single argument, a value.  (minor version bump)
Type._dump will receive either a raw value or a bloop.Actions instance but must call Type.dynamo_dump with the unwrapped value.  This keeps the most commonly implemented method (dynamo_dump) simple but allows customization in the infrequent path (_dump) for nested and dynamic types. (major version bump)
In conditions.py there may need to be changes to sync(obj, engine) and ReferenceTracker._value_ref which both call engine._dump. (minor version bump)
In ConditionRenderer.render_update_expression each value_ref should be another column name or a bloop.Actions instance, so we'll need to have 4 keys in the updates dict ("set", "remove", "add", "delete") (minor version bump)
In types.py any nested types that call _dump eg. List/Set/Map will need to unwrap the result before using it.
A boatload of docs; updated signatures and new sample wire values, changelog and migration guide, custom type section of the user guide.

Signatures for the Type class would be:
Any -> Type._load -> Any
Union[Any, Action] -> Type._dump -> Action
Any -> Type.dynamo_dump -> Any
Any -> Type.dynamo_load -> Any

All of the changes tagged (minor version bump) could be added for 2.4.  (2) is a breaking change for anyone that's subclassed Type and implemented _dump and needs to come with 3.0.  For example, this would break:
class WeirdNumericType(bloop.Type):
    def _dump(self, value, **kwargs):
        # should be in dynamo_dump but maybe bloop docs were confusing
        ((k,v),) = super()._dump(value, **kwargs).items()
        v *= (-1 if v > 100 else 1)
        return {k: v}

I don't believe these changes interfere with work for #137.
Anything I'm missing?  This list went deeper into bloop internals so to zoom out, here's what a user would experience (modified from your latest example):
class PageView(BaseModel):
    ip = Column(IpAddress, hash_key=True)
    count = Column(Number)
    websites = Set(Url)
    category = Column(String)

v = PageView(ip='<IP_ADDRESS>')

v.count = bloop.update.Add(1)

# these are identical
v.category = "Admin"
v.category = bloop.Actions.set("Admin")

engine.save(v)

Interesting that someone could set to a remove action:
v.count = bloop.Actions.remove(None)
and that should probably be different than del:
del v.count
since hasattr would be True for the first and false for the second.

The plan you listed there looks solid. I can't think of anything else, but I'm very new to bloop's code base.
I can totally give this a try and submit a PR if you are not planning to work on this soon. I might be slow though -- for the reason I mentioned above :)

I can get started on this fairly soon, I'm finishing up testing for #137 at the moment.
Thanks for the offer!  Do you mind helping with docs?  For example:  where would you look for this feature, what keywords would you search, what user guide sections should mention it?  Anything that should go in the patterns section?
I think I can knock out the user-facing code in a few minutes, the tracking/rendering will take longer.  I'll post edge-case questions back here as they come up.  The previous comment is a good example of what I'd like resolved pre-shipping.

I can make this opt-in for 2.4: if you pass in a bloop.Action to Type._dump you'll get out a bloop.Action but everyone else gets the default behavior.  I'll give that a try and potentially you can use this before 3.0.
I still don't like the framework showing through here (bloop objects as values instead of transparent mapping) but I'm going to continue.  The update action needs to be passed with the value in some way so I doubt we can escape the syntactic overhead completely.

Hey @huyphan would you mind testing this out?
You can install the branch with any of the following (the first two should be faster than the third):
# https://stackoverflow.com/a/24811490
pip install https://github.com/numberoverzero/bloop/archive/feature/atomic-counter.tar.gz
pip install https://github.com/numberoverzero/bloop/archive/feature/atomic-counter.zip

# https://codeinthehole.com/tips/using-pip-and-requirementstxt-to-install-from-the-head-of-a-github-branch/
pip install git+git://github.com/numberoverzero/bloop.git#egg=feature/atomic-counter

Here's a snippet from my manual testing (using render avoids waiting for table creation):
from bloop import BaseModel, Engine, Column, Integer, Set, String
engine = Engine()
class Item(BaseModel):
    h = Column(String, hash_key=True)
    r = Column(String, range_key=True)

    strings = Column(Set(String))
    counter = Column(Integer)

from bloop import actions
obj = Item(
    h="hash", r="range",
    strings=actions.delete({"foo", "bar"}),
    counter=actions.add(-10)
)

from bloop.conditions import render
print(render(engine, obj, update=True))
# {
#   'UpdateExpression': 'ADD #n0 :v1 DELETE #n2 :v3',
#   'ExpressionAttributeNames': {'#n0': 'counter', '#n2': 'strings'},
#   'ExpressionAttributeValues': {':v1': {'N': '-10'}, ':v3': {'SS': ['bar', 'foo']}}
# }

@numberoverzero: Sure thing. I will give this a try today.

Sorry for coming back late. I finally had a chance to try out the new code today. The new code works flawlessly against my database.
There's nothing I could complain about this. Thanks for rolling this out so quickly.

No problem!  Thanks again for collaborating and especially the early and detailed examples.
The 3.0 milestone is tentatively slated for Sept 13, 2019 and will finalize some of the partial changes made for this issue.  If you have any time in the next few months, it would be great to get a quick check mark that either the head of releases/3.0 or the c595be4194086e115e386cc6e4a953b3ecc52b8d commit still looks good.
No pressure unless you've got a spare cycle.
pip install https://github.com/numberoverzero/bloop/archive/releases/3.0.tar.gz
pip install https://github.com/numberoverzero/bloop/archive/c595be4194086e115e386cc6e4a953b3ecc52b8d.tar.gz


Adapter Test: Review the test code

Tasks

[x] @youyu16 create a new branch and make a PR so we can comment on
[x] @compulim comment on the PR
[x] @youyu16 merge the PR back to master
[x] @compulim to do an interactive PR review

Done.


Websocket disconnects

When the Lona client idles for ~5 minutes, the browser seems to close the websocket. When the browser tab is not visible it seem to take only ~3 minutes. I experimented a little bit and it seems only to happen if the url is not http://localhost.
I googled a little bit and this seems to be a browser feature to save energy. For our use case this is clearly not acceptable because if you have a view that just returns a table or a chart, you can't read it longer than 5 minutes.
The Websocket rfc specifies ping frames for this use case, and Lona supports them (https://github.com/lona-web-org/lona/blob/master/lona/server.py#L404) but browsers seem not to do this on their own and have no javascript api to send them.
My proposal is to add a ping method to the Lona protocol and let the client ping the server every server.CLIENT_PING_INTERVAL. I think the server does not have to respond with a pong, but i am not sure about that.

@maratori so i think we only have to deal with disconnects because of idle


GH-861: Add transaction manager bean override

Resolves https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/861

PR merged upstream.


[FIX]Correct path value for webpack-dev-middleware

Current document is using path value configured for dist, but for webpack-dev-middleware it should be same as publicPath.

@andrewonaboat

@montogeek I've never seen a need for that before. (not to mention that's not the right place in the code for that change, stylistically)

@rahulbhooteshwar Please provide a repository to show why your code doesn't work without your change.

@montogeek Here is the repository to show the problem I am facing without the change:
learn-webpack

@rahulbhooteshwar I tried npm run server in your repo, and localhost:3000 loads fine for me.


NXP: Add support for the NXP Analog Comparator (ACMP) IP

Add support for the NXP Analog Comparator (ACMP) IP present in Kinetis/i.MX RT6XX SoCs.
The driver shim was implemented as a Zephyr sensor driver and supports configuration of various parameters through devicetree or sensor attributes. The sensor driver provides a single channel for reading the output value of the analog comparator along with triggers for output rising/falling events.
The driver and sample was tested and verified on the NXP KE1xF SoC series.

@MaureenHelm could you take a look?

@MaureenHelm ping

@mmahadevan108 will you please have a look?

@mmahadevan108 ping?

Will you please rebase and update for #30467?

Will you please rebase and update for #30467?

@MaureenHelm Done, thanks for reminding me.


SCSS integration

I am suprised there is nothing in the README about SCSS: how is it possible to handle SCSS or SASS with this boilerplate? Thank you!

There's lots of info about SASS in the docs:
https://github.com/react-boilerplate/react-boilerplate/blob/master/docs/css/README.md#sass
You can also find relevant answers in the issues:
https://github.com/react-boilerplate/react-boilerplate/issues/2142

Sorry, my bad! Thanks a lot.


Provide an easier way to install ASIO dependencies on Windows

While our CI system can easily build the system on Windows, it can't be reused by developers who are building on their local machine. We should factor out that code into a script that can be run as part of building anywhere.

This isn't quite as straightforward as with npm, but it looks doable:

https://doc.rust-lang.org/cargo/reference/build-scripts.html
https://doc.rust-lang.org/cargo/reference/build-script-examples.html

This is, however, going to have make some assumptions about what is available a Windows system. If we go with what's pre-installed on GitHub's Windows runners, this will include:

curl (which I think is on recent Windows 10 builds now by default)
7zip (to unzip the ASIO distribution
chocolatey (to install LLVM)


Verify g_file_get_path

Verify Gio's g_file_get_path has a public API and is working like expected. See #884

At least in the latest main, g_file_get_path() looks like it's being generated correctly and there is a string? GetPath() method in the Gio.File interface
For the example in #884 it's dealing with raw handles since Gtk.FileDialog is from GTK 4.10 and doesn't have bindings yet, but it could probably at least use Gio.Internal.File.GetPath(handle). Alternatively I think the code could construct a Gio.FileHelper from the handle and then use the public methods


[Storage File] Updates to package & class names to accomodate ADLS plans

As per discussions with the Storage team, below are the changes to be done for the @azure/storage-file package

Update package name to @azure/storage-file-share
Update the below class names

FileServiceClient becomes ShareServiceClient
DirectoryClient becomes ShareDirectoryClient
FileClient becomes ShareFileClient

cc @HarshaNalluru, @jeremymeng, @XiaoningLiu, @jiacfan

The move has been completed with #5734 and #5787


SMTP headers not accessible for HTML mail

Expected behavior
The "show headers" option should display the full header data for all emails.
Actual behavior
For many HTML mails, only the sending client provided headers are shown. As these are the most commonly spoofed details, this is a serious oversight.
Steps to reproduce

Open an HTML formatted email
Select the "show headers" option
Observe complete lack of SMTP conversation details

Environment
K-9 Mail version:
5.201
Android version:
5.0.1
Account type (IMAP, POP3, WebDAV/Exchange):
IMAP

Press the "Download complete message" button to download all headers.


Improvedbuild

Fixed build for testing container
@idcrosby @philwinder

Coverage remained the same at 21.363% when pulling 385a36ba9d10005c8d1e6d109c51a2978d52a31f on improvedbuild into 682ba408ab66c40cf2a0bb8c4622f7b835116e3b on master.

Coverage remained the same at 21.363% when pulling e9d1c827f0fe99d8d628fdedea471a87148577b6 on improvedbuild into 682ba408ab66c40cf2a0bb8c4622f7b835116e3b on master.

Coverage remained the same at 21.363% when pulling 4c3cbe623de214abeffd50f867c74be3ea237fbd on improvedbuild into 682ba408ab66c40cf2a0bb8c4622f7b835116e3b on master.

Coverage remained the same at 21.363% when pulling 3af497b66504b4db823cf1f7843c25fa4cffcf5d on improvedbuild into 682ba408ab66c40cf2a0bb8c4622f7b835116e3b on master.

Coverage remained the same at 21.363% when pulling 25c8cac338beff4a032fc4e36438eef8761adfe0 on improvedbuild into 682ba408ab66c40cf2a0bb8c4622f7b835116e3b on master.

Coverage remained the same at 21.363% when pulling a339c7db59d775afe91d25274a90d6729954481d on improvedbuild into 682ba408ab66c40cf2a0bb8c4622f7b835116e3b on master.

Coverage remained the same at 21.363% when pulling a339c7db59d775afe91d25274a90d6729954481d on improvedbuild into 682ba408ab66c40cf2a0bb8c4622f7b835116e3b on master.

Coverage remained the same at 21.363% when pulling f66fa982eccc783a0da58dda45d7d3bb7c601a1e on improvedbuild into 682ba408ab66c40cf2a0bb8c4622f7b835116e3b on master.

Coverage remained the same at 21.363% when pulling b8a551aff6d5fd927e9f716fbc0b2fc7e7c6e73b on improvedbuild into 682ba408ab66c40cf2a0bb8c4622f7b835116e3b on master.

Coverage remained the same at 21.363% when pulling 2eadb1bd90646c7f88faf62d63e8767dbf25e47b on improvedbuild into 682ba408ab66c40cf2a0bb8c4622f7b835116e3b on master.

LGTM


Republish packages

Hi @hamidra
Could you republish the packages please ?
I'd like to use the subscription from https://github.com/paritytech/polkadot-onboard/commit/e3699f50963f84c6058cfd58a47d8763405c1f42 in my app

Published!
Thanks for the reminder.


ledger-tool: Use helper for AccountsDb args

Problem
There are a handful of commands that specify AccountsDb config.
Summary of Changes
To create consistency between all these commands and remove repeated code, build all of the arguments in a helper function that is passed to the relevant commands.
This will be especially useful for commands that need to specify these types of arguments that are NOT in main.rs. Currently, one such example are the commands in program.rs, but there will be more to come like the command introduced in https://github.com/anza-xyz/agave/pull/1638
There are probably some arguments that could be hidden by default, but I'm going to hold off on those for now; this PR is only the movement of args from main.rs to args.rs

@jeffwashington @HaoranYi @brooksprumo - Don't think we necessarily need full reviews from all of you, but at least tagging you all so you're aware of the change. So, if you're adding new flags, add them to the helper to avoid having to add them to each individual command


Request: reset current values to initial values

Hi,
Would it be possible to make a new formState function reset current values to initial values. And the new values would be pristine...
Thank You

Hi @domzs
Using formState.reset() resets the current values to the initial values. After reset, formState.isPristine() will return true.


Reinstalled Google Chrome, entere the correct 24 phrases and my assets are not importing

Hey,
I had 1 main account and 3 sub-accounts on the Nami wallet. I reinstalled Google Chrome and thereby also the plugin, I choose "import", entered my 24 seed phrases and it asks me to create a new wallet. I did that but none of my assets are here now.
My 4 addresses are here with all the assets. :
miskovic38
addr1qxju2wxwugm3xgcm283cvc2rrvthgyhnynhddts2y2xuy6tj2swp9gqkrmttw7fa3uljz3u7874d6494ddh749839xsswcupdq
miskovic39
addr1q927y3gxqv0c79rqhdxy28yukdmwxuznc4jz8s0d9awkx20myewj73zk3qx7kxf28l9c9y9fhgr3f29ay2yg442ythvqwll0x0
miskovic40
addr1q9pzad33k8z4mlase4ta250cesrj24y2chkr7tc5zz4yr2q5p0hrse2273rtew04f3jjg2ye6p4d2yzgdn4h50uvq6pqathy4c
miskovic41
addr1q879ys8anp3l8uh5cxrakeagudpgxrzyw33uq89e966vaelcd9rxt3nljyfcsgkak7cmtkku605nwf0f4g50dsd0xv2qk8u5uk
Please validate that this is a bug since more and more users are frustrated by this.

Talk to Cardano Support on the Live support page so that your issue can be looked into

Scam URL above being purported as a "Live support page".  Please for your safety do not visit that link.

@dilacerated Yea, its a scam they took all my ada out of my wallet.

Hi,
I have exactly the same issue. Did you get this solved?

@R17600 Talk to Cardano Support on the Live support page so that your issue can be looked into.

Sorry. Dont trust this scam link...


Support LAST_UPDATED on xxx_LOGICAL_RESOURCES tables

Currently the LAST_UPDATED field exists only on each xxx_RESOURCES table. This requires this table to be joined every time. This join can be eliminated if LAST_UPDATED is denormalized and also stored at the xxx_LOGICAL_RESOURCES level where it represents the most recent change that has occurred for a given resource.
It makes sense to fold this into the same release as issue #1958 which adds IS_DELETED to the xxx_LOGICAL_RESOURCES table for the same reason.
This issue also addresses the defect uncovered related to DROP PRIMARY KEY for PostgreSQL.

At first I thought this was a duplicate of #1923 but I guess 1923 is just for the whole-system "LOGICAL_RESOURCES" whereas this one is for the resource-specific xxx_LOGICAL_RESOURCES.  Can you please confirm that BOTH of these were addressed in https://github.com/IBM/FHIR/pull/2013
If not, does it make sense to try squeezing this one in?


Simplify if else statements

If we're returning from a if statement, we really don't need an else. These can be simplified and made more legible by simply removing the else and having a seperate if block.

/test horizon-operator-build-deploy-kuttl

/lgtm


Update README.md

loadCSS is already implemented in inline-critical so it is no user task anymore.
Feel free to change my non-native english text if you like ;)

@addyosmani see https://github.com/addyosmani/critical/issues/72 ^^

:+1:  will be very useful - we had have to read source code to learn this

:+1:


[proj] Update to 9.3.1

@dg0yt Thanks for the update!
@FrankXie05 Thanks for confirming the patch landed upstream!


fix: trigger a resync to avoid missing any status updates

This PR does two things:

Remove wait to make sure the status updater won't block the reconcile loop in a non-leader scenario.
Trigger a reconciliation after starting the status updater to avoid missing any status updates.

Fixes: #4845
Release Note: Yes

@zhaohuabing I dont think this will solve the original problem because the re sync will not trigger the status watchable subscribed handler to get any updates, because nothing would have changed

my suggestion would be to

always push status updates via watchable, which was implemented in https://github.com/envoyproxy/gateway/pull/4767
and
we should block the status updater watchable subscribe goroutine similar to https://github.com/envoyproxy/gateway/blob/9ef758b1f044db4e02d05cbae1b160d91e81d598/internal/infrastructure/runner/runner.go#L70 and only enable it once its part of the controller thats the leader
wdyt @alexwo @guydc

my suggestion would be to

always push status updates via watchable, which was implemented in fix: decoup gateway status updates from the reconciler #4767
and
we should block the status updater watchable subscribe goroutine similar to https://github.com/envoyproxy/gateway/blob/9ef758b1f044db4e02d05cbae1b160d91e81d598/internal/infrastructure/runner/runner.go#L70
and only enable it once its part of the controller thats the leader
wdyt @alexwo @guydc

+1 sounds good to me.


uri callback disabled?

I'm trying to implement an authorization flow.
From what I understood so far I'm supposed to go for the AuthorizationCode flow.
I thought the flow would be like this:

The client makes a request to the backend and gets a redirect back
I use the redirect information (including callback uri) and call LoginAsync
That call pops up a web browser where I can log in
The web browser gets redirected to the callback uri
The backend receives the callback and gets id token and sets a session cookie
The client can use the session cookie to keep on communicating with the backend

The problem is that I'm looking in the samples in the browser implementation WinFormsWebView and can see that the callback is explicitly canceled in the BeforeNavigate2 event. That means that even though I got authorized by the OpenID provider, my backend has still no idea about it and I have no session cookie.
Why was this callback disabled? Is it because it's just a sample and I have to create my own browser implementation that gos throgh with it, or have I misunderstood something?

This is not how it works. No cookies - no session. You would use refresh tokens instead.
Check the spec first
https://tools.ietf.org/html/draft-ietf-oauth-native-apps-10

The spec is about OAuth2 - where does OpenID Connect come in? Or are you suggesting I should use OAuth2's access tokens and refresh tokens and shouldn't care about id tokens?
I'm note sure what's Oauth2 and what's OpenID Connect....

No you should use OAuth - I prefer "code id_token" aka hybrid flow. But plain code flow is also possible,

I wasn't sure about using authentication code flow because specs at http://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth are saying:
"The Authorization Code flow is suitable for Clients that can securely maintain a Client Secret between themselves and the Authorization Server." and I cannot.
At the same time https://tools.ietf.org/html/draft-ietf-oauth-native-apps-10 is saying "it is NOT RECOMMENDED for authorization servers to require client authentication of public native apps clients using a shared secret"
Seems a bit contradictory and confusing, but I guess I'll disable client secret in the AP and go with the authentication code flow.
I know this doesn't have a lot to do with the OidcClient package itself, but I'm grateful for your advice as most of the material I can find is dealing with web apps and there is not much written about native apps.

Use hybrid with PKCE.
That's my recommendation.


cart new when offline doesn't gracefully fail - error stack shown

Due to installation needing internet access to hit the npm registry and get the latest cartridge release, cartridge-cli requires an internet connection.
When no connection is present, an unsightly error is presented to the user.

Introducing a check if the user is online, and showing a message with the effect of 'you need to be connected to the internet to install cartridge' would mitigate this issue.

With release 1.3.0 https://github.com/cartridge/cartridge-cli/releases/tag/v1.3.0 there is an online check before going ahead with the installation


Set-up class inheritance for data loaders.

Create an abstract data loader with most basic functionality:

basic transforms (e.g. toTensor, unsqueeze);
framework for loading affinity columns (if in train mode).

Ultimately this would allow people to create their own dataloaders for custom data.
Set up inheritance with other data loaders. Some ideas (2D > Abstract Image < 3D, 3D < Centered proteins < Full tomo with labels).
Rotatable dataloader should be simply submitted as an extension of non-rotatable with overwriting transforms in super.transforms.
This links with #23

This is relevant to caked now, some are implemented, other parts evolved in different ways. Closing here.


When handling OFPPR_ADD or .*interface.created it's not always safe to handle it as an interface up

Historically, OFPPR_ADD -> .*interface.created event has been handled as link up, which for most phy interfaces this doesn't result in an issue. However, as highlighted on https://github.com/kytos-ng/kytos/issues/240 the status should be EntityStatus.UP in order to activate. For instance, on a NoviFlow switch if you create a bfd logical port but it isn't up yet then it would have an incorrect active: true, notice that state: 1 which means OFPPS_LINK_DOWN:
kytos $> controller.switches[sw1].interfaces[1002].as_dict()
Out[4]:
{'id': '00:00:00:00:00:00:00:01:1002',
 'name': 'novi_lport1002',
 'port_number': 1002,
 'mac': '00:00:00:00:00:00',
 'switch': '00:00:00:00:00:00:00:01',
 'type': 'interface',
 'nni': False,
 'uni': True,
 'speed': 0,
 'metadata': {},
 'state': 1,
 'lldp': True,
 'active': True,
 'enabled': True,
 'link': ''}

This can snowball in other issues since other NApps could try to use this interface as active, for instance, of_lldp could keep sending packets-out to it resulting in OFPT_ERROR (since the switch won't be able to send a packet), or pathfinder could also incorrectly include it an a path.
2022-06-29 12:39:03,688 - ERROR [kytos.napps.kytos/of_core] (MainThread) OFPT_ERROR: type ErrorType.OFPET_BAD_ACTION, error code 4, from switch 00:00:00:00:00:00:00:02, xid<PHONE_NUMBER>/0x
744ef8c6
2022-06-29 12:39:06,776 - ERROR [kytos.napps.kytos/of_core] (MainThread) OFPT_ERROR: type ErrorType.OFPET_BAD_ACTION, error code 4, from switch 00:00:00:00:00:00:00:01, xid<PHONE_NUMBER>/0x
e6713211

topology no longer asssumes the interface active state, of_core is being responsible for activating it, and then topology will only try to active a link if it's active.


use namespaced Skeleton.ModalMeta

Before submitting the PR:

[x] Does your PR reference an issue? If not, please chat to the team on Discord or GitHub before submission.
[x] Did you update and run tests before submission using npm run test?
[x] Does your branch follow our naming convention? If not, please amend the branch name using branch -m new-branch-name
[ ] Did you update documentation related to your new feature or changes?

What does your PR address?
Fixes  #1231
By adding a namespaced type Skeleton.ModalMeta, users of Skeleton can overwrite the type to fit their application, similar to SvelteKit's App.Locals etc.
This will cause type errors similar to props, and if using typeguards, intellisense for the specific modal component, not just all modal components

@ryceg @AdrianGonz97 as our resident TS experts I'd love you guys to give this a once over and let me know what you think.

@Cucumberrbob it's an interesting idea, but seems a bit like "solution in search of a problem". I think it would be a it of an anti-pattern if folks are sending so much data through the meta key that typing would be beneficial. I think when you get to that point that you may have outgrown the intended use for that. For now I think we'll stick to what we have, but thanks for the PR and suggestion!


Compare Vault/CredHub CA rotation process

In order to help us make an informed and shared decision about which secrets manager we should commit to for managing secrets in our platform, cloud.gov operators will spend (up to) X days to understand how CA rotation works in Vault and CredHub and write up a comparison.
Acceptance Criteria

[ ] We are able to have a discussion and come to an agreement about which platform-level secrets manager we're ready to commit to.

See

background links for CredHub on the CA rotation story
discussion of CA rotation in the #vault channel of CF Slack.

This has been decided, Credhub won even though Vault is arguably better software.


Matter zap cleanup

Problem
ZAP source dependency was detrimental to end-customer experience, because every Matter end user had to set themselves up as a ZAP developer: right versions of node, right versions of some shared libraries, etc. The binary build of zap could not be used, because the JS extensions on the Matter SDK reached back into the zap repo looking for source code, which does not exist in a binary build.
Change overview

Allow categorization of helpers
Move Matter-specific JS extensions into ZAP.
Externalize the "getResource()" and "collectTests()" mechanisms to support YAML certification files and lists of manual vs. CI tests from JSON files.
Convert all the templates.json files to stop using helpers on the Matter SDK, but use internal ones.
Delete all the JS helpers from Matter SDK.
Allow ZAP_PATH environment variable to point to a different location than third_party/zap/repo for ZAP to use during regeneration.

Testing

zap_regen_all.py was ran repeatedly ensuring that the generation has no difference.
Other zap scripts (run, convert) were also validated.

Follow-up
This work opens up the ability to run zap differently. So there will be follow-up work afterwards:

rework the regen script to take full use of multi-core ability
rework the regen script to use binary vs source zap interchangeably
add the quick-test for the regen to have a quicker more robust CI validation
clean up the moved JS code inside zap repo to properly support concurrency.

@bzbarsky-apple : I added a separate PR as we discussed:
https://github.com/project-chip/connectedhomeip/pull/21784
When that gets merged in to master, I will rebase this PR to consume that, and any other changes from master.

Is the change to submodule silabs/matter_support wanted? I don't see the reason for it

@jmartinez-silabs : It's not. I'll remove that change from the PR.


(dropbox) Stream of package

@AdmiringWorm @majkinetor @gep13 @pascalberger

This will update the Dropbox package to be a stream. This will also fix the errors that had popped up and mentioned in issue #969
Description

This is a merge of the dropbox and dropbox_beta packages to be  stream.
Motivation and Context

If it fixes an open issue, please link to the issue here.
Issue #969

How Has this Been Tested?

Screenshot (if appropriate, usually isn't needed):
Types of changes

[X] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Migrated package (a package have been migrated from another repository)

Checklist:

[X] My code follows the code style of this repository.
[ ] My change requires a change to documentation (this mean usually the notes in the description of a package).
[ ] I have updated the documentation accordingly (this mean usually the notes in the description of a package).
[X] All files is up to date with the latest Contributing Guidelines
[ ] The added/modified package passed install/uninstall in the chocolatey test environment.
[x] The changes only affect a single package (not including meta package).

Original Location

Original Repository
Open Issues Add the different issues underneath, and tick those that are fixed in this PR

[ ] Issue 1 link
[ ] Issue 2 Link

[ ] Include the link to the opened PR that removes the package from the original location
[ ] The migration guidelines have been followed

@AdmiringWorm
The url that is used now is the direct one from the forum.


Add SSL to pages

I am trying to add SSL to the z-nomp website, and I get errors trying to start the pool. I am 99.99% sure it is user error.
On the config.json, under the tls options, are we looking for a path to the certificate and a path to the key file? what format does the cert and the key need to be in? Do you have an example of the tls options in the config.json?

Yes just a path to the files key, and certificate just use letsencrypt


In screenreader mode, dont show extension actions until focused/selected

This PR attempts to fix the bug #51496
In other lists (Search results, staged/unstaged files in gitview), only the focused list item's actions are shown. Therefore this problem doesnt exist there.
In Extensions viewlet, the actions on all list items are enabled and visible. This PR hides them when in screenreader mode until focused/selected.
Prior discussions: #59280

@ramya-rao-a I am not a big fan of having two different UI / Keyboard navigation based on accessibility is enabled or not.
I agree that not showing install actions is not good.
I would rather fix keyboard navigation to be similar always like we discussed [here[(https://github.com/Microsoft/vscode/pull/59280#issuecomment-424562317)

LGTM

Thanks @sandy081
I've updated the code as per https://github.com/Microsoft/vscode/pull/59861#discussion_r225427162


Allow people to sell all their shares

This code has been here since selling shares was implemented, but it makes zero sense to me. Maybe @jahooma can explain how it would have gotten here.

Hm, I don't have context on why we added the epsilon=0.0000001; my guess is @mantikoros knows?
In any case, I don't think this is the root cause of the bug we're seeing in #473 , because there the share amounts seem to be much larger than the epsilon value, either 0.9+ or 0.4+ in the two examples found.

Hm, I don't have context on why we added the epsilon=0.0000001; my guess is @mantikoros knows?
In any case, I don't think this is the root cause of the bug we're seeing in #473 , because there the share amounts seem to be much larger than the epsilon value, either 0.9+ or 0.4+ in the two examples found.

What you didn't know is this code, which secretly rounds up the amount submitted to the API: https://github.com/manifoldmarkets/manifold/blob/a5a0a1370a23399446eeecf4d16233a94243e013/web/components/bet-panel.tsx#L416
These two bugs work together to make this outcome.

The extra 0.000000001 on max shares would only make this check less strict, not more strict.
I don't see what the bug is yet. It seems like the client and server disagree about how many shares you have.
Even if you enter 1 share while having 1.9xxx shares, the client should be sending a sell request for 1.9xxx shares, which you own.
Could be something about how your shares are stored to localstorage? Maybe epsilon should be bigger?? 😛

The extra 0.000000001 on max shares would only make this check less strict, not more strict.
I don't see what the bug is yet. It seems like the client and server disagree about how many shares you have.
Even if you enter 1 share while having 1.9xxx shares, the client should be sending a sell request for 1.9xxx shares, which you own.
Could be something about how your shares are stored to localstorage?  You're right, the check is not causing the problem, although I still want to delete the check. I don't know where the error is getting introduced.
Since in general, we make no effort to try to make the rest of our code avoid or quantify floating-point error, and if we fix wherever it's getting introduced it will just get introduced again, my suggestion would be to make the API specifically take "all" or "Infinity" as a possible amount of shares to sell.

I like the idea to pass a special value for all. Let's make it the string 'ALL'. I think it's slight more clear than using Infinity which could be a programmer error.

P.S. I'm the one who designed it this way, but I like how if you type the floor of your number of shares, it sells them all. Seems like a small sin in exchange for a simpler UI.

To me I think that if we want users to care about their M$ balance, it's super important not to betray their trust in the UI and the market mechanism, or else they will just think "ok, the website just has bugs everywhere, so it's not serious." If they see a number, the number should be actually true.

Not showing all the decimal places would always be lying then! This UI doesn't inform you about your last < 1 share because it figures you don't care that much

Not showing all the decimal places would always be lying then! This UI doesn't inform you about your last < 1 share because it figures you don't care that much

Yep, I would definitely make sure all the decimal places were visible, e.g. by my lights a reasonable implementation would be if you can set desired number of sig figs in your profile and then maybe if you tap a displayed quantity you can see the exact quantity. Or alternatively, have them specify a number of shares to buy in the first place, rather than a number of M$, so that everyone isn't walking around with overly-specific numbers of fractional shares in everything all day as a matter of course.


fix: Add type definitions (#68)

Tasks:

[x] Small Variant type

Additional Issue: #69
Tasks:

[ ] Add 404 page
[ ] Test it


Add g2engineconfigurationjson.VerifySenzingEngineConfigurationJson

Pull requests:

https://github.com/Senzing/go-common/pull/50


Fix failing test

There were a few issues:

We needed to add to Jobs.py code to create the ".edsl_cache.db"
The "store" command for cache entry was converting parameters to string (which was stopping job running)
Job running fails "show up" in this interview test failure because jobs that are failing for any reason (such as above) cause this test to fail- it's a bit complex and hard to explain. We probably need to re-factor this to show these early exceptions as these are now hard to debug.

@ellipsis - can you summarize code changes?

:rocket: This PR description was created by Ellipsis for commit b36628eeb94399ea67238e34910966077eb941a4.

Summary:
This PR addresses several issues, makes improvements to the Cache and CacheEntry classes, updates corresponding test files, and modifies the CacheEntry class to correctly handle parameters in the cache entry key generation.
Key points:

Improved the Cache and CacheEntry classes by adding type hints, improving docstrings, refactoring some methods.
Fixed issues with the 'Jobs.py' code and the 'store' command for cache entry.
Addressed job running failures.
Updated test_CacheEntry.py and test_LanguageModel.py to reflect changes in the main codebase.
Modified gen_key method in CacheEntry class to convert parameters to a JSON string before generating the key.
Updated expected keys in test_CacheEntry_gen_key and test_CacheEntry_key_property tests to reflect the change in key generation.

Generated with :heart: by ellipsis.dev

Ok @apostolosfilippas this should fix that issue you had. It does surface a bigger issue we have in the unit testing, re: failures caused by "simple"bugs that only show up in the Interview test in this fairly cryptic way


connectivity: Improve coverage of Ingress service

Please refer to the individual commits for additional details.
Blocked by https://github.com/cilium/cilium/issues/31653

Rebased to fix conflict.

Testing was done as part of https://github.com/cilium/cilium/pull/32367


Supports more authentication approaches on Azure in Storage Initializer - Build fix

What this PR does / why we need it:
Supports more authentication approaches on Azure in Storage Initializer, taken the contribution from https://github.com/kserve/kserve/pull/2014
Which issue(s) this PR fixes
Fixes #2013
Release note:
Supports more authentication approaches on Azure in Storage Initializer

/lgtm
/approve


⚠ Bofrost.at has degraded performance

In 55de3a5, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1539 ms

Resolved: Bofrost.at performance has improved in c211dc2.


Publish data model, GREL and operations in standalone Maven artifacts

Is your feature request related to a problem or area of OpenRefine? Please describe.
As an extension developper, I would like to be able to import OpenRefine as a Java dependency in my extension project (using Maven, Gradle…).
Describe the solution you'd like
We want to break down the main module into smaller submodules which can be imported independently. Here is a rough draft (some might be merged or split eventually):

the core data model: Project, Row, Cell, Column, Recon, ReconCandidate…
the core API: only the interfaces and abstract classes such as AbstractOperation, Engine, Facet, Evaluable and so on.
GREL
the concrete operations and facets we supply;
the full API, including Command, OverlayModel, Preferences… all the classes you could want to reference to build an extension
the concrete commands we supply.

By splitting up into meaningful submodules we want to make it easy to rely on parts of the data model without pulling in loads of dependencies (typically, we want to be able to work on the data model without importing butterfly).
Splitting the main module like this does not require hosting the submodules in separate repositories. I propose to keep using this repository to host all these submodules.
Describe alternatives you've considered
At the moment, the rdf-extension is the main extension maintained outside this repository, and it uses a local Maven repository stored in the git repository itself:
https://github.com/stkenny/grefine-rdf-extension/blob/v1.1.7-orefine-3.2/pom.xml
This is not ideal since it forces @stkenny to build jars and store them in the git repository.
Additional context
If our Maven configuration can be made suitable for that, then jitpack.io could also be used (to generate a Maven repository where artifacts are built on the fly from git).
This is a first step for #1433

It will be important to properly refactor and modularize the project history. If the project history could be automatically translated to SQL then the integration with Spark, Flink, Drill and similar would be quite straightforward (you just need to implement the proper wrapper to the UDFs)

@fpompermaier this issue is only about creating the appropriate jars and uploading them to Maven, possibly by moving things around a bit in the repository - not much will change in the classes themselves.

@wetneb you mentioned a first step for #1941 is that the right issue number?

Fixed!

When this is published, we should notify users here: https://github.com/RMLio/rmlmapper-java/issues/26

Implicit in this is converting all these internal APIs into publicly supported, well engineered, stable APIs.

See my answer on the mailing list: https://groups.google.com/forum/#!searchin/openrefine-dev/ElasticSearch|sort:date/openrefine-dev/ijZj298lglU/-kDHaxcfCQAJ

I have ended up doing this in 3.x as well. It is now done in the CI, into the Maven Central Snapshot repository for normal commits and (hopefully) into Maven Central itself for official releases.

The first upload in Maven Central of our core Maven artifacts succeeded:
https://search.maven.org/search?q=openrefine


Fix leak in type metadata emission.

What's in this pull request?

Fix a leak in metadata emission.

Before merging this pull request to apple/swift repository:

[ ] Test pull request on Swift continuous integration.

Triggering Swift CI
The swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:
Smoke Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please smoke test
    All supported platforms     | @swift-ci Please smoke test and merge
    OS X platform               | @swift-ci Please smoke test OS X platform
    Linux platform              | @swift-ci Please smoke test Linux platform

Validation Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please test
    All supported platforms     | @swift-ci Please test and merge
    OS X platform               | @swift-ci Please test OS X platform
    OS X platform               | @swift-ci Please benchmark
    Linux platform              | @swift-ci Please test Linux platform

Lint Testing
    Language     | Comment
    ------------ | -------------
    Python       | @swift-ci Please Python lint

Note: Only members of the Apple organization can trigger swift-ci.

We were releasing the owned pointer rather than just letting it get
deleted when the unique_ptr goes out of scope.
Fixes rdar://problem/26245737.

@swift-ci Test and merge.


Azure Storage Explorer won't run on Linux VM unless .NET is updated

Describe the bug
Azure Storage Explorer doesn't run on the new Ubuntu 22.04 image out of the box. It gives an error message stating that .NET SDK 8.0 is needed, but the installed version is 7.0.
This is easy to fix on the VM by uninstalling dotnet-sdk-7.0 and replacing it with dotnet-sdk-8.0, then the Storage Explorer runs correctly.
Updating templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/vm_config.sh, line 61, and rebuilding the template fixes this at source.
Steps to reproduce

Deploy the current HEAD (commit e84e62516d29142f00554e0a5fe173b587b6cfe1)
Deploy a workspace, then Guacamole, then a Linux VM.
Attempt to start the Azure Storage Explorer, wait for the error message

Azure TRE release version (e.g. v0.14.0 or main):
current HEAD
Deployed Azure TRE components - click the (i) in the UI:

I'll raise a PR for this now @TonyWildish-BH


can't run code

Describe about your problem
Trying to run code. But it can't find the file in the home directory.
I assume the termux server should copy the file across before running. But it doesn't seem to be doing that.
Provide few details about your device(like Android version) , Plugin version.

I thought that's because you haven't saved the file

Mine says permission denied even though I gave permission to the acode app., so I can't run my selected code in acodex terminal. I'am using a Cherry Aqua Tab Ultra running Android 11.

Then termux don't have permission, so you run given command to give permission in termux:
termux-setup-storage


Enabling Unix Socket for Windows

Is it possible to enable codepath that allows Unix Socket to be created for Windows platforms? Recent Windows 10 supports Unix socket.

It's been more than a year and I don't hear any response, so might as well bump this one and share my findings.
So in one of our project, we recently updating to LuaSocket 3.1.0, so I took the opportunity to enable Unix sockets in Windows. It seems enabling this support is a matter of changing the included file. In Windows, #include <afunix.h> is used instead of #include <sys/un.h>. love2d/love@857cf406368975c2c88cba6d32dbaef0554aec4a.
Quick test of the Unix stream socket and it behaves as expected. Unfortunately Unix datagram is not supported.
Unix sockets in Windows has been supported since Windows 10 1809. Would there be an plan to enable unix sockets in Windows?

We'd be happy to facilitate any PRs contributing to a better experience on the Windows side of things. Neither I nor any other current maintainer actively uses Windows though so researching, coding, and testing for this will need to come from community contributions. When you first posted this there wasn't an active maintainer, but I think we've made some progress on that front and there should be a path for improvements to integrated and released if they are contributed and tested.