python311Packages.aioesphomeapi: 16.0.2 -> 16.0.3

Diff: https://github.com/esphome/aioesphomeapi/compare/refs/tags/v16.0.2...v16.0.3
Changelog: https://github.com/esphome/aioesphomeapi/releases/tag/v16.0.3
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 252287 run on x86_64-linux 1

40 packages built:

esphome
esphome.dist
home-assistant-component-tests.airthings_ble
home-assistant-component-tests.aranet
home-assistant-component-tests.bluemaestro
home-assistant-component-tests.bluetooth_adapters
home-assistant-component-tests.bluetooth_le_tracker
home-assistant-component-tests.bthome
home-assistant-component-tests.dormakaba_dkey
home-assistant-component-tests.esphome
home-assistant-component-tests.eufylife_ble
home-assistant-component-tests.fjaraskupan
home-assistant-component-tests.govee_ble
home-assistant-component-tests.homekit_controller
home-assistant-component-tests.ibeacon
home-assistant-component-tests.inkbird
home-assistant-component-tests.kegtron
home-assistant-component-tests.keymitt_ble
home-assistant-component-tests.ld2410_ble
home-assistant-component-tests.led_ble
home-assistant-component-tests.moat
home-assistant-component-tests.mopeka
home-assistant-component-tests.oralb
home-assistant-component-tests.qingping
home-assistant-component-tests.rapt_ble
home-assistant-component-tests.ruuvitag_ble
home-assistant-component-tests.sensirion_ble
home-assistant-component-tests.sensorpro
home-assistant-component-tests.sensorpush
home-assistant-component-tests.snooz
home-assistant-component-tests.switchbot
home-assistant-component-tests.thermobeacon
home-assistant-component-tests.thermopro
home-assistant-component-tests.tilt_ble
home-assistant-component-tests.xiaomi_ble
home-assistant-component-tests.yalexs_ble
python310Packages.aioesphomeapi
python310Packages.aioesphomeapi.dist
python311Packages.aioesphomeapi
python311Packages.aioesphomeapi.dist


Clone some utility methods from Jezza

https://github.com/Jezzadabomb338/Elemental-Sciences-2/blob/master/es_common/me/jezzadabomb/es2/client/utils/RenderUtils.java#L258

This as now be superseeded by BlockRenderer

Will rewrite completely from scratch. Will use OC for that.


Is it still working?

Does this still work to date?

Yes

Is there any tutorial or something explaining how to set it up?

Just open an Azure account and create an Automation Account. After these are done, you can easily use the tool.
https://learn.microsoft.com/en-us/azure/automation/quickstarts/create-azure-automation-account-portal?source=recommendations
Let me know if further information is needed.

Sorry for asking way too many questions but where do I add the pool and my own address? Also which coin is it mining?

@vansh712 That's fine :)
CloudMiner does not mine crypto.


Add support for Travis CI

Hi. This pull request adds integration with Travis CI.
This post by @catwell is a good introduction to Travis and how to configure.
What this does is to start ElasticSearch (currently ) install Lua 5.3, LuaRocks 2.2.2, lunitx and then runs your tests.
Since Lua 5.3 is built with no compatibility flags by default, currently some tests are failing due to the use of math.pow which was deprecated in Lua 5.3.

Just pushed a new commit that uses ^ instead of math.pow and now all tests pass.

Hi! Thanks for contributing.


Implementation Request: Layer Normalization

I've heard promising things about layer normalization.
@nicholas-leonard Do you think this is worth including? If so, I'm happy to implement this next week. Arguably it should be inside the nn package since it can in theory be used for non-recurrent networks as well, but my impression is that it's very useful for recurrent architectures, and not very useful for non-recurrent architectures.

hi @juesato , the thing is that original paper does not specify exactly how to apply Layer Normalization for LSTM node, in a very "deep" case, it could be on the activation after the gates,  from my experiments with BLSTM-HMM acoustic modeling for ASR this LLN didnt help at all, though I lost the possibility to use fast CUDA lstm kernel.
In comparison to that, simple MLP together with layer normalization gave a huge speed up during training  even in comparison to Batch Normalization.
If you will implement it in the scope of this rnn package, please provide your improvement here, thanks!

@iikulikov Sorry for the slow response, just revisiting this. I'm not sure which part is unclear, the paper seems fairly explicit in the appendix that they used layer normalization on the cell state for the MNIST/DRAW experiments, and in the teaching machines to read and comprehend experiment, they used layer normalization on the cell state and separately on the input and previous hidden state.
FWIW, I've implemented layer normalization on the PTB language model example and it seems to hurt results. Out of curiosity, what was the experiment with the MLP which was helped by layer normalization?

@juesato yes, exactly for LN only hurts the lstm model for phoneme classification. But, for general MLP classification task with notMnist - it gave really nice speed improvement. MLP was with 2 layers with 2000 hidden units in each layer.

@iikulikov I'm surprised layer normalization has any noticeable benefit on such a shallow network. Do you still have the training plots from those experiments?

@juesato The LN-LSTM seems to have great potential. The validation error convergence is fast. Can we build this as a subclass or method of SeqLSTM? Like LNSeqLSTM or lstm:layernormalize().

@iikulikov I haven't read the paper in detail to say if it reproducible or not. Worse case, we can contact the authors for more implementation details. They almost always answer when you mention reproducibility, and when they have time. They are often very busy, but they want you to help them validate their experiments.

I did try the Layer Normalization in some code of mine with torch-autograd. It does give a faster learning as claimed in the paper in my experiments. I think it is a good think to implement in the SeqLSTM class.


[5.1] IRGen/runtime: change the code generation for dynamically replaceable functions

Instead of a thunk insert the dispatch into the original function.
If the original function should be executed the prolog just jumps to the "real" code in the function. Otherwise the replacement function is called.
There is one little complication here: when the replacement function calls the original function, the original function should not dispatch to the replacement again.
To pass this information, we use a flag in thread local storage.
The setting and reading of the flag is done in two new runtime functions.
rdar://problem/51043781

@swift-ci test

Build failed
Swift Test Linux Platform
Git Sha - 80abac42c185230058a571f1fe656dbb39b6188e

Build failed
Swift Test OS X Platform
Git Sha - 80abac42c185230058a571f1fe656dbb39b6188e

@swift-ci test

@swift-ci test


Fixup redhat/fedora usage in testpmd, refactor dpdk stable location

Cleanup use of Redhat/Fedora to point to Fedora
Refactor DPDK_STABLE to a single location for the various uses.

Second commit to force update RHEL to latest kernel before installation to fix rdma-core mismatch issues causing test results to report 0 packets per second.

@LiliDeng Please review the PR, it stays 3 days.


Update Readme

Suggest developers to create an issue instead of pull request for new ideas/feedback.

Love it. Great idea. Good to merge :+1:


to install python3

conda create -n py3k python=3 anaconda

That should go in the installation instructions.  on master, now to access it you need to add
source activate py3k

to your ~/.bash_profile.  if you don't can end up like the final stage of https://github.com/twosigma/beaker-notebook/issues/1066
fixing https://github.com/twosigma/beaker-notebook/issues/703 should eliminate the need to edit .bash_profile and instead find them through a GUI.

test


Replace ambiguous heart donation icons

Browsers have used hearts and stars to mean bookmarks interchangeably over the years; and still do to this day. Change the icon to avoid confusion with the bookmarking functionality and make it clearer what the button does.
dat://e71784fbaaac13e7a1b20ba39d8149b2ba893171204672575eab8b4fd0758ec3/1387/image.png
Icon changes (all were fa-hearts previously):

fa-donate in location bar
fa-donate in Library: Archive: Settings
fa-donate in hamburger menu (donate to Beaker)
fa-hand-holding-usd in donation pop-out window
fa-hand-holding-heart (bandwidth) in Library: Archive: Network

The failing test has nothing to do with the changes in this branch.

👍 LGTM. I think you're right about disambiguating the icon. Merged, thanks!


Rename readme.txt to readme.md

We are unable to do that since WP org repo does not read and validate .md files and requires .txt files for readme.

Okay, no problems


Fix APPS transfer functions

Summary
As per T.4.2.3 the 2 apps sensors may need opposite transfer functions. Not sure if this is required in our situation, but it is now implemented to be safe. Conducted some basic testing on the car, but unit tests aren't fixed yet.
Changelist

Secondary apps counts down instead of up, papps still counts up.
Fixed papps alarm detection.
Configured min/max values with testing on the car.

Testing Done
Basic testing on the car, still need to fix unit tests.
Resolved Issues
Fixes #742, #737
Checklist
Please change [ ] to [x] when you are ready.

[x] I have read and followed the code conventions detailed in README.md (This will save time for both you and the reviewer!).
[x] If this pull request is longer then 500 lines, I have provided explicit justification in the summary above explaining why I cannot break this up into multiple pull requests (Small PR's are faster and less painful for everyone involved!).

@gtaharaedmonds i think you had the pedals reversed? sapps counting up, papps counting down. Rules wise idt this really matters

@gtaharaedmonds i think you had the pedals reversed? sapps counting up, papps counting down. Rules wise idt this really matters

Good point, this is just how they happened to be set up in the pedal box. But yea doesn't matter for rules.


LocalInspectionMode.current cannot get true in preview mode

Describe the bug
LocalInspectionMode.current in preview mode is not true ,but return true in jetpack compose preview mode.
Affected platforms
Select one of the platforms below:

Desktop

Versions

Kotlin version*: 1.7.10
Compose Multiplatform version*: 1.2.0
OS version(s)* (required for Desktop and iOS issues):  Windows Professional edition
OS architecture (x86 or arm64): x86
JDK (for desktop issues):
openjdk version "17.0.6" 2023-01-17 LTS
OpenJDK Runtime Environment Zulu17.40+19-CA (build 17.0.6+10-LTS)
OpenJDK 64-Bit Server VM Zulu17.40+19-CA (build 17.0.6+10-LTS, mixed mode, sharing)

To Reproduce
Steps and/or the code snippet to reproduce the behavior:
No repeat step is required
Expected behavior
LocalInspectionMode.current can return true in preview mode
Screenshots

Additional context
Nothing

Thanks, we'll take a look at it.

Is this going to be picked up?

I am looking at the compose-multiplatform code to check if there is anything that can be done from within the repo, but the clues bring to androidx.compose.desktop.ui.tooling.preview.runtime.NonInteractivePreviewFacade which uses a TestComposeWindow to render the composable and expose it as a window.
Now, a quick fix in that code would be from
        window.setContent @Composable {
            // We need to delay the reflection instantiation of the class until we are in the
            // composable to ensure all the right initialization has happened and the Composable
            // class loads correctly.
            androidx.compose.ui.tooling.ComposableInvoker.invokeComposable(
                className,
                methodName,
                currentComposer
            )
        }

to something like
        window.setContent @Composable {
            // We need to delay the reflection instantiation of the class until we are in the
            // composable to ensure all the right initialization has happened and the Composable
            // class loads correctly.
            CompositionLocalProvider(LocalInspectionMode provides true) {
              androidx.compose.ui.tooling.ComposableInvoker.invokeComposable(
                  className,
                  methodName,
                  currentComposer
              )
           )
        }

It may be a simplification (or maybe there is something else simpler that can be done) but yeah, it seems the issue is, as many times is, enclosed within the androidx monorepo.
This is quite an annoying bug as previews are not only not configurable for desktop, but within previews we cannot even know the view is indeed a preview and do something for that.
Furthermore, there seems to be yet another bug (at least on Windows) where if the system is in dark mode, the preview composable will be rendered in dark mode, but with a white background. I will file a separate one for this after I confirm it with further tests from my side.

Just ran into this too. Probably an issue with the Preview plugin not treating jetbrains.preview the same.

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Provide a way to improve DocService for annotated service

@Description Annotation is not support rich texts. So it’s hard to describe long type paragraphs.
weak-supports for param type(enums, etc..) and return type when using @Description annotation in doc service.

Suggestion

Support param type, return type description like gRPC-proto documentation plugin.

Related issues : https://github.com/line/armeria/issues/2200

Support rich texts using @Description Annotation (using markdown plugin : https://github.com/remarkjs/react-markdown)@Description(
value = “””
## Header
### Subtitle
“””
)

As mentioned in Slack, I'll try this issue 😀

e.g Support rich texts using @Description Annotation

using react-markdown, react-markdown, remark-gfm


Fix GodotPhysicsDirectBodyState2D get_contact_impulse to return current physics step impulse

Issue:
GodotPhysicsDirectBodyState2D get_contact_impulse() function returns wrong value. Initial it returns just a Vector2.ZERO.
The problem is, that not the final impulse sum is used, but the value generated in pre_solve().
Solution:
The only solution I found was to add a function that's called after solve(). It's called post_solve and is optional for stuff that must be done in a GodotConstraint2D after being solved. Here we can add the collision contact info with all required information, instead of adding it in pre_solve(), where some information (the impulse sum) is missing.
Same issue for 3D:
https://github.com/godotengine/godot/pull/73569

FWIW, I've tested this by cherry picking onto my fork, and the impulse values look good to me.


[DropDownMenu] Display leftIcon and rightIcon from MenuItems

[x] PR has tests / docs demo, and is linted.
[x] Commit and PR titles begin with [ComponentName], and are in imperative form: "[Component] Fix leaky abstraction".
[x] Description explains the issue / use-case resolved, and auto-closes the related issue(s) (http://tr.im/vFqem).

I think that's the missing functionality in case we want DropDownMenu to display also Icons that has been setup for MenuItems (that was a real case in the app that I build).

PR abandoned by OP.


Add "get super clusters" function

find clusters of clusters (ie 5+ or 10+ food items relatively close together - say, 150 radius)

Do we need this?

Yeah.  It filters from get super clusters to get clusters to get individual food items

Agreed.

I had something but it got removed by accident

Nice.

Couldn't you use the cluster function on itself?

No, because of the way the cluster function is written.

Then rewrite it, silly!

I finished this already

Oh. :P


Extract Issues

Currently using Disunity 0.3.4 no experience in programming.
I'm trying to Rip game files which I followed instructions from this site:
http://soccerspiritsforum.com/threads/soccer-spirits-full-rip.1978/
Apparently I'd have to bundle extract then extract. My bundle extracting phase seems to run but looks odd compared to others:
C:\Disunity>disunity bundle-extract files*/
[info] DisUnity v0.3.4
[info] files
[info] files\100001_cs
[info] files\10101_co
[info] files\10101_cs
[info] files\10102_co
[info] files\10102_cs
[info] files\10103_co
[info] files\10103_cs
[info] files\10104_co
[info] files\10104_cs
[info] files\10105_co
[info] files\10105_cs\
(To show the few of them)
and when I try to extract:
C:\Disunity>disunity extract files*/
[info] DisUnity v0.3.4
[info] files
[info] files\100001_cs
[error] DisUnityCli: Fatal error, caused by java.lang.IllegalArgumentException
at java.nio.Buffer.limit(Unknown Source)
at info.ata4.io.buffer.ByteBufferUtils.getSlice(ByteBufferUtils.java:210)
at info.ata4.unity.asset.AssetFile.load(AssetFile.java:127)
at info.ata4.unity.asset.AssetFile.load(AssetFile.java:105)
at info.ata4.unity.asset.AssetFile.open(AssetFile.java:58)
at info.ata4.unity.cli.cmd.AssetCommand.processAssetFile(AssetCommand.java:97)
at info.ata4.unity.cli.cmd.AssetCommand.processFile(AssetCommand.java:90)
at info.ata4.unity.cli.cmd.FileCommand.processPath(FileCommand.java:58)
at info.ata4.unity.cli.cmd.FileCommand.processDirectory(FileCommand.java:44)
at info.ata4.unity.cli.cmd.FileCommand.processPath(FileCommand.java:54)
at info.ata4.unity.cli.cmd.FileCommand.run(FileCommand.java:76)
at info.ata4.unity.cli.DisUnityCli.run(DisUnityCli.java:110)
at info.ata4.unity.cli.DisUnityCli.main(DisUnityCli.java:123)
When I try doing it on 0.5.0
I'd get this on every file:
C:\Users\Arno\Desktop\disunity>disunity bundle unpack files/*
[warning] BundleUnpack: Can't unpack asset bundle files\snd_30104_battle1, caused by info.ata4.junity.bundle.BundleException: Invalid signature
at info.ata4.junity.bundle.BundleReader.read(BundleReader.java:50)
at info.ata4.disunity.cli.command.bundle.BundleUnpack.runFile(BundleUnpack.java:64)
at java.util.ArrayList.forEach(Unknown Source)
at info.ata4.disunity.cli.command.FileCommand.run(FileCommand.java:32)
at info.ata4.disunity.cli.command.Command.run(Command.java:50)
at info.ata4.disunity.cli.command.Command.run(Command.java:50)
at info.ata4.disunity.cli.command.DisUnityRoot.run(DisUnityRoot.java:62)
at info.ata4.disunity.cli.DisUnityCli.main(DisUnityCli.java:46)
Any Idea why?
Java version 8 Update 101 (build 1.8.0_101-b13)

I'm assuming you're trying this on SS assets post-1.27 patch (29 Sep 2016), if so, Unity version for SS was updated and it's now using UnityFS assets, not UnityWeb.

Yeah, Disunity currently doesn't properly support UnityFS, but I'm working on a Python port that will support UnityFS, UnityRaw and UnityWeb.

There's already some Python Code that you could check. Maybe you could help
each other: https://github.com/HearthSim/UnityPack
El 12/10/2016 17:14, "ata4"<EMAIL_ADDRESS>escribió:

Yeah, Disunity currently doesn't properly support UnityFS, but I'm working
on a Python port that will support UnityFS, UnityRaw and UnityWeb.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ata4/disunity/issues/206#issuecomment-253243047, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABoIYLFabFR9XlgzOrYzhi5yPZDOSxc8ks5qzPlggaJpZM4KQ_wX
.

I've actually checked UnityPack already and used some parts to improve my code a bit. I prefer my approaches for the most parts, though.

Please close this issue!


Python Dependency blocks latest azure-keyvault

The latest release of Azure Key Vault requires msal>1.12.0.

Hi @dciborow, thanks for bringing this up. The requirement does seem valid and change is simple too. But, there are other dependencies that need to be evaluated. I will look into this and get back on this thread by tomorrow.

Hi @dciborow, there doesn't seem to be any broken dependencies even after loosening the version. So, we will take this change up in our upcoming release. Thanks for the feedback! I'll close this out once the new release is published to GitHub.

Hi @dciborow, the latest version of the CDM SDK contains this change now.


Replace custom HTTP method 'REDEEM' with something commonly compatible

Description
I'm working on https://github.com/appuio/cloud-portal/issues/460, specifically the Accept part where the REDEEM request (see https://kb.vshn.ch/appuio-cloud/references/architecture/control-api-invitation.html) is supposed to happen.
The problem is: A custom HTTP method is prone to incompatibilities in various places.
I'm sure there are reasons for choosing a custom method like REDEEM as opposed to something like PUT or POST, but there has to be a better solution.
Additional Context
While a custom HTTP method may work fine for most browsers, things start to break when there are Proxies between the API and browser.
Starting with the Proxy that we're using while developing the Portal itself. After debugging for an hour I noticed that the Proxy automatically turned the REDEEM request to a GET request but returned a 400 Bad Request...
I could spend more time to get a proxy working with REDEEM, but that is just fighting symptoms and still not resolving the bigger problem:
Corporate Proxies for sure won't allow custom methods.
I imagine that APPUiO Cloud has some users who are using the Portal from behind a Proxy or WAF. There's a very high chance that the feature to redeem invitations will not work in those conditions.
Logs
No response
Expected Behavior
The request is using a method that is commonly allowed, e.g. HEAD (preferred) or OPTIONS, if POST or PUT are unacceptable for some reason.
Alternatively, it may be worth thinking about a small server running on Kubernetes with its own Endpoint that can accept PUT or POST on invitations without K8s RBAC inbetween, but translates the request into something Kubernetes understands, or attempts to update the invitation accordingly for the requesting user.
Steps To Reproduce
curl -X REDEEM "http://localhost:8001/apis/user.appuio.io/v1/invitations/...?token=...
Version used
v0.19.2
Version of OpenShift
K8s v1.25

HEAD is not possible AFAIK, we either do use an invitation subresource /redeem (like /status or /scale) or a create-only virtual resource InvitationRedemption analogous to SARs.


Required to create folders in Program files ? (OS: windows)

The #62 mentioned that it links under Program files. I am receiving the following error:
Traceback (most recent call last):
  File "C:\Python27\Scripts\yotta-script.py", line 9, in <module>
    load_entry_point('yotta==0.0.43', 'console_scripts', 'yotta')()
  File "C:\Python27\lib\site-packages\yotta-0.0.43-py2.7.egg\yotta\main.py", line 135, in main
    status = args.command(args, following_args)
  File "C:\Python27\lib\site-packages\yotta-0.0.43-py2.7.egg\yotta\link.py", line 58, in execCommand
    fsutils.mkDirP(folders.globalInstallDirectory())
  File "C:\Python27\lib\site-packages\yotta-0.0.43-py2.7.egg\yotta\folders.py", line 24, in globalInstallDirect
ory
    fsutils.mkDirP(dirname)
  File "C:\Python27\lib\site-packages\yotta-0.0.43-py2.7.egg\yotta\lib\fsutils.py", line 14, in mkDirP
    os.makedirs(path)
  File "C:\Python27\lib\os.py", line 150, in makedirs
    makedirs(head, mode)
  File "C:\Python27\lib\os.py", line 157, in makedirs
    mkdir(name, mode)
WindowsError: [Error 5] Access is denied: 'C:\\Program Files\\yotta'

Yotta resolves links in the Program Files directory yotta according to the above error. I solved it running the cmd as administrator (=this report might help somebody who is facing this error). Wouldn't be better to replace it by placing yotta directory outside of Program Files as a work around, might not require "windows sudo"?

OK, that doesn't sounds like the best place. Where should such things go on windows? (for reference, the global link directory on linux is /usr/local, but it should probably also be changed to use a user-specific one, perhaps in ~/.yotta/install.

This isn't trivial. The most obvious solution would be indeed $HOME/.yotta, since HOME also exists in Windows. However, in Windows, HOME can point to a network share and I don't think it's possible to create a link on a network share (is this also true in Linux if HOME is a NFS mount or similar?). We can guess more directiories in Windows, but as a generic solution I'd add a YOTTA_HOME environment variable than can be set by the user, with the default value $HOME/.yotta.

for reference, the way that npm's paths are specified is documented here.

This was fixed in #176


[5.3][CSApply] Always try to load arguments constructing object literals

Cherry-pick of https://github.com/apple/swift/pull/32452

Explanation:

AST rewriter needs to make sure that all of the arguments are loaded
since it's currently possible to pass l-value type as an argument to
object literal (#{file, color, image}Literal).

Scope: Limited to object literals with l-value arguments.

Resolves: rdar://problem/62927467

Risk: Low

Testing: Added regression tests

Reviewer: @DougGregor

Resolves: rdar://problem/62927467
(cherry picked from commit baaff0d46920b7bb2b0f24e4f6b4944552d885a3)

@swift-ci please test


Fix bug where sshd-ensurer kills processes other than sshd when SSHAccess for worker nodes is disabled

How to categorize this PR?

/area security
/area compliance
/kind bug
What this PR does / why we need it:
Fixes a bug where sshd-ensurer incorrectly kills processes other than sshd when SSHAccess for worker nodes is disabled. The pkill command currently matches processes that have substring sshd. Using the -x flag it will match only sshd processes.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
cc @rfranzke
Release note:

A bug in the `sshd-ensurer` script running on all shoot worker nodes has been fixed which was causing it to also kill processes other than `sshd` when `SSHAccess` for worker nodes is disabled.

/lgtm
/approve

thanks for fixing it so fast 👍

/cherrypick release-v1.63


How to configure the App.

Accessing the https://<IP_ADDRESS>:801/config right after docker-compose up finishes to build the app, leads to a page where I have to fill the hostname and password.
I entered localhost as my hostname and created a password for the username USER. I kept the other parameters on their default values.
When I press the "Save and Init" button, I get an error "[Errno 111] Connection refused"
Looking at my docker-desktop UI I noticed that the only port exposed by the container is 8010.  So I tried to change the port number from the default value of 1972 to 8010.
But with this setting, if I press the "Save and Init"  button nothing happens. The page does not refresh.
Can you please clarify?

This application is designed to work with the Сloud SQL, so there is no docker container with IRIS. I think it will also work with your local IRIS instance, but I haven't tested it. Read more in the README.

I have created a Cloud SQL deployment and then I was able to finish the config and the other steps.


HCAP-1289 Don't force clicks

I don't think we need to disable waiting for actionability here, this could be a reason why inputs are missed occasionally

I see it, if it doesn't wait for the add psi to be clicked, then it could be causing the issue. Does it lengthen the test time? Can't we just remove force from the necessary ones?

The tests seemed to run just as quickly locally, I don't know that we can say any of these forces are necessary


config webpack filename [hash] error

next.config.js
webpack: (config, { dev }) => {
    config.output.publicPath = ''
    config.output.filename = '[name].[hash].js'
    return config
  }

the error mssage:

Using "webpack" config function defined in next.config.js.
(node:11216) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'source' of undefined

@jason-ivy I don't follow what you want to do. We have cache invalidation built into Next.js 😄 no hashes needed.

@timneutkens
i think what he wants to do is to change

to

to

and how to achieve this? How to append the hash to those files?

You can't right now. Eventually we'll implement that.

Hi, @timneutkens can you give us a hint when this hash thing implemented?


Implement call on dataset classes to select a subset of its samples.

__call__ should substitute dset.certs = [some subset] so that one can immediatelly call dset([some_subset]). The method should return self (that does not have to be used).

I gave it a thought and Didn't really figure out how to do it without serious side effects..


DBeaver connect database (container) through a jumphost (container) using docker swarm

DBeaver information

DBeaver on Arch Linux
version 7.0.0

Connection specification:

PostgreSQL 12

Describe your question:
I am using docker swarm to manage my stacks. And I dont want to expose my postgres databases to the public (5432 port on the host machine should not be open), but I still want be able to use dbeaver.
The problem is that docker swarm cannot expose a container port only to <IP_ADDRESS> but will expose it to <IP_ADDRESS>. So I cannot simply tunnel via ssh to my database server and connect to localhost:5432.
My idea was to have a setup where a jumphost (docker container) sits between me and my database.
Client --SSH--> Jumphost (Container) ----> Database (Postgres container)
I can successfully connect to my openssh container using dbeaver ssh tunneling.container. But when testing the connection to my database with dbeaver I get an error Connection attempt failed: Connection reset
However, using psql I can successfully connect from my openssh container to the postgres database.
Is there a way to connect to the database with DBeaver using this setup?
How would you do it? My only requirements are

not expose my database port (nmap scan should not reveal that e.g. the 5432 port is open)
use docker swarm
use a secure connection between dbeaver and the database

We need proper environment to test it.

It might very well be an issue with the settings of the jump host,
See the original issue: https://github.com/moby/moby/issues/32299
And the used config for the jump container:
`FROM alpine
RUN apk add --no-cache openssh
RUN mkdir ~/.ssh
RUN ssh-keygen -A
RUN echo "root:root" | chpasswd
RUN echo 'PasswordAuthentication no' >> /etc/ssh/sshd_config
RUN echo 'Port 22' >> /etc/ssh/sshd_config
RUN echo -e "
Match User root \n
AllowTcpForwarding yes\n
X11Forwarding no\n
AllowAgentForwarding no\n
ForceCommand /bin/false\n
" >> /etc/ssh/sshd_config
EXPOSE 22
CMD /usr/sbin/sshd -D -e "$@"`


TypeError: vacBot.hasSpotAreas is not a function

Fresh install on a new Raspberry Pi 4, I'm running into this TypeError. I have uninstalled and reinstalled the plugin a few times but only keep getting the same error.
OS Raspbian GNU/Linux Buster (10)
Node version v14.17.4
npm version v7.20.3
[31/08/2021, 08:02:47] [DeebotEcovacs] INFO - Discovered Deebot : E2000741291902923485
[31/08/2021, 08:02:47] [DeebotEcovacs] INFO - Edge Cleaning for E2000741291902923485 : true
[31/08/2021, 08:02:47] [DeebotEcovacs] INFO - Spot Cleaning for E2000741291902923485 : true
[31/08/2021, 08:02:47] [DeebotEcovacs] INFO - SpotArea Cleaning for E2000741291902923485 : false
[31/08/2021, 08:02:47] [DeebotEcovacs] INFO - CustomArea Cleaning for E2000741291902923485 : false
[31/08/2021, 08:02:53] TypeError: vacBot.hasSpotAreas is not a function
    at EcovacsXMPP.<anonymous> (/usr/local/lib/node_modules/homebridge-deebotecovacs/deebotEcovacsAPI.js:86:18)
    at EcovacsXMPP.emit (events.js:412:35)
    at EcovacsXMPP.session_start (/usr/local/lib/node_modules/homebridge-deebotecovacs/node_modules/ecovacs-deebot/library/ecovacs.js:29:14)
    at EventEmitter.<anonymous> (/usr/local/lib/node_modules/homebridge-deebotecovacs/node_modules/ecovacs-deebot/library/ecovacsXMPP.js:17:18)
    at EventEmitter.emit (events.js:400:28)
    at Client.<anonymous> (/usr/local/lib/node_modules/homebridge-deebotecovacs/node_modules/simple-xmpp/lib/simple-xmpp.js:311:20)
    at Client.emit (events.js:400:28)
    at Client.useFeatures (/usr/local/lib/node_modules/homebridge-deebotecovacs/node_modules/node-xmpp-client/lib/Client.js:365:10)
    at Client._handleSessionState (/usr/local/lib/node_modules/homebridge-deebotecovacs/node_modules/node-xmpp-client/lib/Client.js:261:10)
    at Client._handleStanza (/usr/local/lib/node_modules/homebridge-deebotecovacs/node_modules/node-xmpp-client/lib/Client.js:242:14)
[31/08/2021, 08:02:53] Got SIGTERM, shutting down Homebridge...
[31/08/2021, 08:02:54] [DeebotEcovacs] INFO - shutdown

Ends up getting caught in a loop that causes the Homebridge to restart over and over with every SIGTERM.

@zacechola
Please install the plugin again. It should work now.
I published a new version of the underlying library where I fixed a backward compatibility issue that effected this plugin.
@nicoduj
I already created a pull request for your plugin to ensure compatibility.

That worked!


VML Adding paths after setViewBox with x,y offset

Hello,
I've developed a little app in Javascript that allows someone to pan and zoom around.
I'm using Raphael to draw bezier paths, underneath absolute DIV's that hold images.
The user is able to navigate through different data using a next button. What happens when you hit next is that it removes all the old stuff on the paper and then add the new data.
This works great on SVG browsers. However, i've noticed that while using IE8, so VML, if the viewBox has an x,y, offset, after I have added the new paths, they are placed with an offset equivelent to about half of the viewBox x,y offset. This makes them offset to my absolute DIV's.
Again this is fine using SVG browsers. I initially thought that it was a problem with my code, however, I found a way to fix the offset so everything remains syncronized.
To fix it I have to return the viewBox to position 0,0 and the origianl width and height before I add the new paths, then recaculate panning and zooming, then everything works fine. I can only conclude that this is a Bug :)
Regards,

u can change the code el.transform("..."); into el.transform("...t"+x+","+y); in line 8195, it works in ie8


Enhacement: Try to compile online

You should try to use an online compriles: Travis CI
that lets the users without monster hardware   help your project.
i am a long user or your browser

other method would be opensuse build service

@Lourens-Rich Why are you downvoting this? This is a good suggestion since a continuous integration service would allow for anyone to get the latest binaries for the latest changes, and it simplifies testing.

@Eloston, sorry, but on this moment i think we need more developers than hamsters, who will be only test this builds.
If someone helps @gcarq , it would be great!

The point is that @gcarq and any other contributor wouldn't have to waste time checking out any contributions that won't pass the Chromium test suite. And instead of rebuilding the project locally CI would build and test it automatically, so that next to no time is wasted testing buggy patches.

@DragoonAethis Actually some of these patches break the Chromium test suite. For example, fix-building-with-safebrowsing.patch, which I wrote for ungoogled-chromium, will definitely break the test suite.
We would probably need to patch the tests too if we want to use them. Not just because of the patches breaking them, but also because we're tweaking GN flags that are not normally tweked (which breaks assumptions made in the tests)

Some breakage is expected, but tests eg for layout rendering shouldn't ever fail if you're tweaking network-related features, for instance.

@DragoonAethis Good point, but there's not much value in the tests if they're testing features mostly unaffected by our changes.

I had this idea in the past, but never invested much time in this.
Does anyone know whether travis-ci allows to allocate that much resources to build chromium?, as it seems easier to setup than opensuse build service.
@Eloston As you mentioned the direct benefit would be the computing power and maybe a more automated release cycle. Also I think the Iridium guys are doing a pretty good job with adapting tests, so it should be not that much work once we know where to look and adapt.

@gcarq I suppose. But the fix-building-with-safebrowsing.patch is pretty agressive since I remove some functions entirely to make the compiler catch any overlooked safebrowsing references. I think these changes will also break a number of unittests. I can't say for sure until I've looked more into unittests.

I've tried travis-ci but it has a maximum job runtime of 50 minutes, so this won't be an option.
https://docs.travis-ci.com/user/customizing-the-build#Build-Timeouts

@gcarq What constitutes a job? Is a job defined to be some process to be launched by Travis CI as described in the configuration file? Are subprocesses considered part of the same job? If so, I don't believe any single leaf-node target dependency in ninja takes more than 50 minutes, so it may be theoretically possible to create a huge list of jobs that builds each target in the order that they need to be in (i.e. doing the work that ninja does for us at runtime).
Unless there's something lenient about the definition of a job and some convenient feature in GN or Ninja that will allow us to conform to the definition of a job, this is probably much more work than it's worth.
Maybe OBS can work?

A job would be something like the whole project built with compiler X under OS Y for CPU archtecture Z. A single build under Travis consists of all combinations of these (which you have to define).

@DragoonAethis How is the compiler invoked? I'm trying to understand the relationship between this abstract concept of a "job" with the more concrete (and many) ways that software projects do things.

If I remember correctly (haven't used Travis in a while), results of each job couldn't "see" each other. Essentially each job was run in a separate VM, then tested in that VM, then deployed on success if you wanted to, and once done, discarded. You'd write a config file which defined how you want your build environment to be configured (OS, compilers, deps), then a set of commands to install remaining deps (not available from what Travis predefines) and the build itself. Then more commands to test the thing, what to do after success/failure, etc.
If you really wanted to push this system to its limits, you could write a wrapper which would periodically check whenever there's enough time left for another component (eg what ninja builds) and if not, let the job continue as successful, upload the results somewhere, then in another job you'd download the results of the previous build and continue building. Now, that's a mess.
If you really want CI, you'll probably want https://jenkins.io/ and a dedicated server. Or a shared server and a wiiiiiide smile to its administrator so that you could evade a ban after a build or two due to resource exhaustion ;)

Alright, thanks for the info. Not doable as I suspected. Fun thought investigation though.

I'm currently experimenting with www.wercker.com. They provide a way to overwrite the maximum build time: http://devcenter.wercker.com/docs/faq/how-to-bypass-timeouts#how-do-i-increase-the-timeout-for-individual-steps-. Right now it looks very promising, I will post an update if the build goes through. For anyone interested here is the current build status: https://app.wercker.com/gcarq/inox-patchset/runs

@gcarq Something looks really wrong with the current build. It's at 5.5 hours and it seems to be stuck at 12335/22334. The output of the current step isn't changing either. The output for the previous build that timed out at 25 minutes went farther than this one.

you should increase even more the time
360-600

@Eloston yes this is very strange, I think they have some kind of memory or cpu limit despite the unlimited job time.

could you make this
compile a test program (10 minutes at i5 + inox instructions)
and test  it at wrecker (example, it needs 30)
after you put the right timeout (9*60)

https://app.wercker.com/caimandelta/inox-patchset/runs/build/58751ce5bcacfe01008dd20a?step=58751cf6f9ed0b0001f6e4eb

i0ve gone to unsanity
https://app.wercker.com/caimandelta/inox-patchset/runs

forked your repo
hardore compiling

@triceratops1 are you making some progress? looks like your linked build also timed out about 12000-ish

i've got 19k
ut fails

i'm trying opensuse bild  (arch extra)

NEEW TEST
https://build.opensuse.org/package/show/home:meh924f/inox-binn

@gcarq  you could test it at opensuse build service
the only issue its
YOU MUST upload the chromium-xxxxx.tar.xz (source code)
i've limited bandwith, but if you've a good internet speed
you can test opensuse build service (please take as inspiration my attempt)
https://build.opensuse.org/package/show/home:meh924f/inox-binn

@triceratops1 thanks, I will check it out ASAP (probably this weekend).

@gcarq please let me make you a small warning
YOU NEED upload the chromium source code (chromium-xxx.tar.xz) the 490mb  file
i would test if it helps, but my internet its bad :D

@gcarq i'seen that you created and removed a travis setup, and i've two questions
1 had travis worked, or failed (too)
2 obs (the opensuse build service), hard to config, but UNLIMITED build time/resources

@triceratops1

travis was my first attempt but without success
I will try opensuse build service next, but this has not a very high priority at the moment. Why someone has to upload the source, isn't it possible to fetch them via HTTP in the build job?

no :(
but you've an ajax loader (after you upload ALL files), with right names
included the chormum code

At least in the webinterface of obs it is sufficient to provide the source url, not sure about osc. However according to the documentation they do not allow certain software:
https://en.opensuse.org/openSUSE:Build_Service_application_blacklist

@human-bean
the patented parts (chrome) needs serials  (api key)
inox doesnt has api key
with it only free code works


Every time a mob is killed, it prints "1" in the console

(Required) What is your Quests version / build number (do not say "latest")?
Quests v3.1.2-b192
(Required) Please describe the problem and how to replicate it. Any console errors?
Every time a player kills a mob, it prints "1" in the console (https://hastebin.com/sadecajoqa.md).
(Optional) Can you provide an example quest from quests.yml using Pastebin.com?

Updated to the latest version, and it stopped doing it.


Unclear part of description in "Migration guide" block

Duplicated text in the description leads to unclear context.
"example:
find&replace all
(text('foo')) to (have.text('foo'))
(be.visible) to (be.visible)"

Hm, seems like should be (visible) to (be.visible)


Performance of bash-preexec's DEBUG trap

Expected Behavior
I expect a DEBUG trap to have some minor performance impact that largely doesn't matter for an interactive shell.
Current Behavior
Using the below contrived example, which started as troubleshooting a parameter substitution performance issue:

Five seconds with blank trap
Fifteen seconds with : (no-op) trap
Five minutes with __bp_preexec_invoke_exec function!

Honestly, doubling performance cost of every simple command would be acceptable and I wouldn't notice. But, it seems that having any DEBUG trap in Bash causes a simple echo to triple in cost. A nontrivial function for the trap? bananas.
Possible Solution

Handle setting/unsetting the DEBUG trap only when $preexec_functions has contents?
Aggressively optimize performance of trap function?

Context
I was debugging a string handling performance issue and accidentally tested the DEBUG trap and...wow...
Steps to Reproduce
mybug="$(trap -p DEBUG)"
time for debug in 'trap - DEBUG' 'trap "" DEBUG' 'trap ":" DEBUG' "$mybug"
do
    eval "$debug"
    echo 'echo' "(DEBUG: $debug)" >&2
    time for i in {1..999999}; do echo "$i"; done >/dev/null
done

Your Environment

Bash-it version used: (1) my branch, (2) master branch, (3) without loaded at all.
Bash version: 3.2, 4.2, 5.1.8
Operating System and version: Mac OS X 11 "Big Sur", CentOS 7.7 (Core)

Hmm, this seems like an issue that affects bash-preexec globally, not just a problem in Bash-it.
We should probably migrate this problem to the bash-preexec repo instead.

Yes, I'll alsö be submitting an issue upstream! There have been numerous complaints of minor performance issues with Bash It and this may be related, so we should at least track it if not do something in Bash It to ameliorate the impact.
Of course, besides contrived examples it may not really impact interactive performance anyway. I need to test more.


Avoid #steps boilerplate by prepending around #call

We get rid of the necessity to wrap the operations' flow with the #steps's block by prepending a module that decorates the #call method.
If before we had to do:
class CreateUser < Dry::Operation
  def call(input)
    steps do
      attributes = step validate(input)
      step create(attributes)
    end
  end

  # ...
end

Now we can do:
class CreateUser < Dry::Operation
  def call(input)
    attributes = step validate(input)
    step create(attributes)
  end

  # ...
end

We want to provide that as the default behavior to improve the ergonomics of the library. However, we also want to provide a way to customize or opt out of this magic behavior.
After discarding dynamic inheritance because of DX concerns (see https://github.com/dry-rb/dry-operation/pull/9), we opt for implementing a couple of class-level methods to tweak the defaults.
.operate_on allows to customize the method to decorate. E.g., this is how we decorate #run instead of #call:
class CreateUser < Dry::Operation
  operate_on :run # Several methods can be passed as arguments

  def run(input)
    attributes = step validate(input)
    step create(attributes)
  end

  # ...
end

On the other hand, .skip_prepending allows to opt out of the default #call decoration:
class CreateUser < Dry::Operation
  skip_prepending

  def call(input)
    steps do
      attributes = step validate(input)
      step create(attributes)
    end
  end

  # ...
end

To have #call decorated by default but still be something configurable, we need to rely on Ruby's .method_added hook. Notice that for any other method specified by .operate_on we could just include the prepender module and avoid going through the hook. However, we opt for still using the hook to have a single way of doing things.
Both .operate_on and .skip_prepending tweaks are inherited by subclasses, so it's possible to do something like:
class BaseOperation < Dry::Operation
  operate_on :run
end

class CreateUser < BaseOperation
  def run(input)
    attributes = step validate(input)
    step create(attributes)
  end

  # ...
end

Both methods raise an exception when called after any method has been prepended. This is to avoid misunderstandings like trying to skip prepending after the .method_added hook has been triggered:
class CreateUser < Dry::Operation
  def call(input)
    steps do
      attributes = step validate(input)
      step create(attributes)
    end
  end
  skip_prepending # At this point, `#call` would have already been prepended

  # ...
end

Similarly, .operate_on raises an exception when called after the method has already been defined.
class CreateUser < Dry::Operation
  def run(input)
    attributes = step validate(input)
    step create(attributes)
  end
  operate_on :run # At this point, `.method_added` won't be called for `#run`

  # ...
end

Those checks are reset when a subclass is defined to allow for redefinitions or changes in the configuration.

I love this so much! From the clear and easy-to-understand PR description all the way through toe the clear and easy-to-understand code 😍

Thanks, @timriley! :raised_hands:

Aside from this, I've left a few small thoughts around the implementation that I'd love to hear from you before we merge. Let me know 😄

Thanks for looking into it and for your feedback! I got back to all your concerns, with some comments about changing how we manage the state for the prepend manager. Looking forward to receaving your thoughts once more :slightly_smiling_face:

Rebasing onto main to bring checks for all supported ruby versions.


Doc tweaks

These are old, I'm not sure why they didn't get merged long ago.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: MikeTaylor:x: vagrantvagrant seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Add prompt sorting

Adds a sort mode to sort by prompt, and a sort mode that randomises the order of images.
The second mode does not use seeded randomisation, so changing the page also reshuffles the images and this means one might appear on two consecutive pages. Would appreciate any opinions on whether this is a problem or not.

I don't think it would be a problem. Thanks for this.


Use new atomic bomb effect

Apparently just need to set action = "atomic-bomb" and it should just work...haven't tested.

Doesn't work, currently got something working on my end, just need to make sure all the radius/damage balance changes I had before are in place and then it should be ready to go.


Support for ambiguous input with date and time

Hi,
First, great idea to implement such library. I've been testing it for ambiguous input with only dates or times and it works great, but when I combined both I got an error.
Is this supported? If no, any plan to support it?

Could you supply some examples? It would help to add support for those.

Sure.
% npx -q moment-guess -d "01/01/2020"
INFO: Multiple formats matched!
DD/MM/YYYY
MM/DD/YYYY
% npx -q moment-guess -d "10:00"
HH:mm
% npx -q moment-guess -d "10:00 am"
hh:mm a
% npx -q moment-guess -d "01/01/2020 10:00"
ERROR: Couldn't parse date

Hi @mcrodrig , thanks for pointing out the issue. FYI, support has been added as of<EMAIL_ADDRESS>Marking it as closed. Re-open in case of any discrepancy.


[Release-1.23] - k3s.service enters restart loop after running k3s secrets-encrypt prepare

Backport fix for k3s.service enters restart loop after running k3s secrets-encrypt prepare

#5442

Environment Details

Infrastructure

[x] Cloud
[ ] Hosted

Node(s) CPU architecture, OS, and Version:

$ uname -a
Linux ip-172-31-3-249 5.4.0-1009-aws #9-Ubuntu SMP Sun Apr 12 19:46:01 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

Cluster Configuration:

3 servers

Config.yaml:

write-kubeconfig-mode: "0644"
tls-san:
  - <redacted>
token: <redacted>
secrets-encryption: true
server: https://<redacted>:6443

Replication Steps

Install K3S:

curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.22.8+k3s1 sh -

On a server that was not the initial server, run: k3s secrets-encrypt prepare && systemctl restart k3s && journalctl -u k3s -f
Restart the other two servers: systemctl restart k3s

Results:

Logs loop perpetually on the server that the command was run with:
Jun 21 20:39:39 ip-172-31-0-242 systemd[1]: Started Lightweight Kubernetes.
Jun 21 20:39:39 ip-172-31-0-242 k3s[30666]: time="2022-06-21T20:39:39Z" level=info msg="Starting k3s v1.22.8+k3s1 (21fed356)"
Jun 21 20:39:39 ip-172-31-0-242 k3s[30666]: time="2022-06-21T20:39:39Z" level=info msg="Managed etcd cluster bootstrap already complete and initialized"
Jun 21 20:39:39 ip-172-31-0-242 k3s[30666]: time="2022-06-21T20:39:39Z" level=info msg="Reconciling bootstrap data between datastore and disk"
Jun 21 20:39:39 ip-172-31-0-242 k3s[30666]: time="2022-06-21T20:39:39Z" level=fatal msg="/var/lib/rancher/k3s/server/cred/encryption-config.json, /var/lib/rancher/k3s/server/cred/encryption-state.json newer than datastore and could cause a cluster outage. Remove the file(s) from disk and restart to be recreated from datastore."
Jun 21 20:39:39 ip-172-31-0-242 systemd[1]: k3s.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 20:39:39 ip-172-31-0-242 systemd[1]: k3s.service: Failed with result 'exit-code'.
Jun 21 20:39:44 ip-172-31-0-242 systemd[1]: k3s.service: Scheduled restart job, restart counter is at 1610.
Jun 21 20:39:44 ip-172-31-0-242 systemd[1]: Stopped Lightweight Kubernetes.

Note this does not happen every time, but sometimes it does get stuck like this even after restarting the two other nodes.
Validation Steps

Install K3S:

curl -sfL https://get.k3s.io | INSTALL_K3S_COMMIT=4dda76b0a9870a6724a3c0846578384380c430d6 sh -

On a server that was not the initial server, run: k3s secrets-encrypt prepare && systemctl restart k3s && journalctl -u k3s -f
Restart the other two servers: systemctl restart k3s

Results:

Logs only loop like above initially, but after restarting the other two servers, it reconciles and k3s starts normally.
Additional context / logs:
Note that this log shows up in the first place because there is an update call to the etcd cluster. This causes bootstrap data on the node to get (re)written, which is then out of sync with the etcd leader node. The other nodes need the k3s process itself to restart to retrieve the bootstrap data and put that all in sync, but the etcd data should all match regardless.


Template equality

This PR implements two new methods, is_equal_to and refinement_of, for both the Concept and Template classes.
A boolean flag, with_context, is provided as a way to distinguish equality/refinement between concepts/templates that are the same but for context, e.g. location or date.
Another important addition in this PR is a wrapper function, get_relations_web, that provides access to client.query_relations via a REST API call.

MIRA_REST_URL needs to be set in the environment

Re the failed test:
The test failing is basically running this query from the get relations endpoint (try it out at http://<IP_ADDRESS>:8771/docs#/relations/get_relations_api_relations_post):
Query:
{
  "source_curie": "bfo:0000026",
  "target_curie": "bfo:0000006",
  "relations": "rdfs:subClassOf"
}

which used to return results, but now it doesn't. Removing the relations constraint on the other hand returns the expected result.
Query:
{
  "source_curie": "bfo:0000026",
  "target_curie": "bfo:0000006"
}

Result:
[
  {
    "subject": "bfo:0000026",
    "predicate": "rdfs:subClassOf",
    "object": "bfo:0000006"
  },
  {
    "subject": "bfo:0000026",
    "predicate": "rdfs:subClassOf",
    "object": "bfo:0000006"
  },
  {
    "subject": "bfo:0000026",
    "predicate": "rdfs:subClassOf",
    "object": "bfo:0000006"
  }
]

Is rdfs:subClassOf not a relation any more?

Correct, rdfs:subClassOf should get replaced with subclassof now, but also these endpoints should also allow lookup from predicate. I updated one of the parts of the query in e6b6dc9 to reflect this


Bug in the add command

Please see below. Seems like there are some fields missing in the GUI's error message.

Will fix this bug

Nice! Thanks! 😄


[web] implement PluginUtilities for flutter web

...or don't, maybe it doesn't make sense.

@jonahwilliams I think if add a suggested plugin utilities developer could vote on it

Related: https://github.com/flutter/flutter/issues/33614
@jonahwilliams @yjbanov Have you given it any thought if these APIs would be implementable on the web? They could help us with restoring anonymous routes. That problem is described in flutter.dev/go/restoring-anonymous-routes and PluginUtilities.getCallbackHandle / PluginUtilities.getCallbackFromHandle could be an alternative to Ephemerons to solve it.
For reference, the sub-problem that these APIs are solving for us is the following:
Given a static function we need to be able to obtain a serializable identifier for that function. And given that serializable identifier (in another instance of the app) we need to be able to re-obtain the original function object.

Anything involving isolates is not implementable on the web.

The API itself is independent of isolates as far as I can tell.

Depends on what you mean by implement - we could no-op it certainly, but we can't get handles to callbacks that can be shared across isolates.

Under the assumptions that:

the callback is a static function (not a closure)
there isn't version skew between the serializing code and the deserializing code

I don't see any reason why it should be impossible to do what @goderbauer is looking for in JS.  @sigmundch @rakudrama could possibly provide more accurate commentary.
Just because it's possible in principle though doesn't mean that it would just fall out of the current compilation strategy .  But I actually think it might not be far off - you could use a class ID plus a static method name maybe?

Sorry for the very slow response here.
Is the expectation that the serialized id is usable within a single version of the app or across multiple versions?  I don't see a reason why the former can't be supported, but the latter could be problematic.
Many teams consider the names of their methods internal and/or sensitive, so we wouldn't want to use the original class/method name as part of the serialized form. When we minify an application, the minified name would work, but that is not stable across multiple compilations of the program.

For my use case, the serialized id only has to be usable within a single version of the app.

/cc @mdebbar This is the missing API we talked about in the meeting the other day. I am using it to restore anonymous Routes (i.e. Routes pushed with push(Route route)).

This was an email thread between @goderbauer, @sigmundch and I (May 11th 2020):
@goderbauer:

Just to give some more context. I've implemented my use case (state restoration for Flutter) for mobile relying only on the functionality provided by PluginUtils.getCallbackHandle and its inverse PluginUtils.getCallbackFromHandle. I am using these to generate a serialized ID for static functions. Later, the serialized id is used to call that static function again. This all happens in the same version of the app.

That's the only functionality I need for my use case. I no longer need Empeherons or LookupMaps if we can make the callback handle thing work on the web.

@mdebbar  the statement that state restoration only needs to work within the same version of the app is also correct on the web, right?

@mdebbar:

It depends on what "same version of the app" means. In production mode, I think it's clear what the same version means. But in development, what does it mean? Does it break every time I make a change and rebuild?

I understand that it's not desirable to ship visible class and method names to users. Can we make the ID a hash of the class+method names? That way it could still work across app versions as long as the class+method names haven't changed.

@goderbauer:

The mobile implementation does take a hash of (I think) library, class, and method name. In order to translate the hash back to the method, it stores a file with the hash<>method lookup table on disk. Where would we store that on the web?

@mdebbar:

The lookup table can be stored as part of the app code itself, but this means it has to contain all the possible static methods in the app.

Another way to do it would be at app startup when the dart sdk is creating all the prototypes and attaching methods, etc. And whenever a static method is attached to the prototype, its hash would also be added to the lookup table at runtime.

I'm not sure which approach would give us a smaller footprint.

Is there a solution that doesn't require a lookup table? I'm curious. Because I think regardless of whether the ID is a hash or a random number, there has to be a lookup table anyway.

@sigmundch:

I believe the main constraint for the web is minification. I don't believe this would be an issue during development with DDC, where we already use stable names across rebuilds to keep compilation modular. Even in dart2js, I believe it should be possible with -O1 (or --no-minify).

For deployment we don't want to preserve the original names because it can leak sensitive data (e.g. a method name can be the name of an unreleased feature). If the ID is a non-reversible unique hash derived from the original name, then they could potentially be stable. I do worry about collisions though.

@sigmundch @goderbauer is it possible to use the mobile approach on the web too (take a hash of library, class, and method name)? The lookup table can live in the Dart code as a const map.

I do worry about collisions though.

Mobile also suffers from collisions. Any idea how they are handling it? Or is mobile just not worried about collisions?

Mobile also suffers from collisions. Any idea how they are handling it? Or is mobile just not worried about collisions?

/cc @bkonyi, who implemented the mobile functionality, if I remember correctly.

Mobile also suffers from collisions. Any idea how they are handling it? Or is mobile just not worried about collisions?

/cc @bkonyi, who implemented the mobile functionality, if I remember correctly.

We just don't worry about collisions since the likelihood of there being a collision should be near zero, even if there's a double-digit number of entries.

@sigmundch is it possible to do the same on web and ignore hash collisions?

yes that sounds reasonable


fix(benchpress): fix issues with benchmarks

Some benchmarks had errors that were causing perf tests to log 0:00 time
values for scriptTime metrics.
Fixed Issues:

Was using Rx.js instead of Rx.umd.js in all benchmarks
Was calling mergeMap on Rx2 observable instead of flatMap
Had mis-named variables in mergeAll spec

Thanks @jeffbcross.

Merged with 16894bb. It looks like some of the tests still have some issues. So I'll start a separate issue to track that.


SQL generated by EnsureCreated (migrations) not logged

The logger implementation here (based on a sample from @rowanmiller ) works well for logging both INSERTS/UPDATES and SELECT, except for SQL statements generated by EnsureCreated (migrations)
https://github.com/ErikEJ/EntityFramework.SqlServerCompact/blob/master/src/Provider40/Extensions/Logging/DbLoggerProvider.cs
(I was unable to find an existing issue for this)
Further technical details
EF Core version: 1.2.0-preview1-22878
Database Provider: EntityFrameworkCore.SqlServerCompact40
Operating system: Windows 10
IDE: (e.g. Visual Studio 2015): VS 2015 Update 3

Hi @ErikEJ. I tried this with the following code and got the output below. It seems like commands from EnsureCreated are getting logged. Is there something else I need to do to repro this?
public class Blog
{
    public int Id { get; set; }
    public string Title { get; set; }

    public ICollection<Post> Posts { get; set; }
}

public class Post
{
    public int Id { get; set; }

    public int BlogId { get; set; }
    public Blog Blog { get; set; }
    public string Title { get; set; }
}

public class BlogContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite(@"Data Source=.db");
    }
}

public class Program
{
    private static void Main()
    {
        using (var context = new BlogContext())
        {
            context.GetService<ILoggerFactory>().AddProvider(new DbLoggerProvider());

            context.Database.EnsureDeleted();
            context.Database.EnsureCreated();

            var blog = new Blog {Posts = new List<Post> { new Post() } };

            context.Add(blog);

            context.SaveChanges();
        }
    }
}

internal class DbLoggerProvider : ILoggerProvider
{
    private static readonly string[] Whitelist =
    {
        typeof(IRelationalCommandBuilderFactory).FullName
    };

    public ILogger CreateLogger(string name)
        => Whitelist.Contains(name) ? (ILogger)new MyLogger() : NullLogger.Instance;

    public void Dispose()
    {
    }

    private class MyLogger : ILogger
    {
        public bool IsEnabled(LogLevel logLevel) => true;

        public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception,
            Func<TState, Exception, string> formatter)
            => Console.WriteLine(formatter(state, exception));

        public IDisposable BeginScope<TState>(TState state) => null;
    }
}

Output:
Executed DbCommand (4ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
PRAGMA foreign_keys=ON;
Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
PRAGMA foreign_keys=ON;
Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
PRAGMA foreign_keys=ON;
Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
PRAGMA foreign_keys=ON;
Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE "Blogs" (
    "Id" INTEGER NOT NULL CONSTRAINT "PK_Blogs" PRIMARY KEY AUTOINCREMENT,
    "Title" TEXT
);
Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE "Posts" (
    "Id" INTEGER NOT NULL CONSTRAINT "PK_Posts" PRIMARY KEY AUTOINCREMENT,
    "BlogId" INTEGER NOT NULL,
    "Title" TEXT,
    CONSTRAINT "FK_Posts_Blogs_BlogId" FOREIGN KEY ("BlogId") REFERENCES "Blogs" ("Id") ON DELETE CASCADE
);
Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE INDEX "IX_Posts_BlogId" ON "Posts" ("BlogId");
Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
PRAGMA foreign_keys=ON;
Executed DbCommand (5ms) [Parameters=[@p0='?'], CommandType='Text', CommandTimeout='30']
INSERT INTO "Blogs" ("Title")
VALUES (@p0);
SELECT "Id"
FROM "Blogs"
WHERE changes() = 1 AND "Id" = last_insert_rowid();
Executed DbCommand (0ms) [Parameters=[@p1='?', @p2='?'], CommandType='Text', CommandTimeout='30']
INSERT INTO "Posts" ("BlogId", "Title")
VALUES (@p1, @p2);
SELECT "Id"
FROM "Posts"
WHERE changes() = 1 AND "Id" = last_insert_rowid();```

Thanks @ajcvickers I guess my event filtering is too sctrict: https://github.com/ErikEJ/EntityFramework.SqlServerCompact/blob/master/src/Provider40/Extensions/Logging/DbSimpleLogger.cs#L25

Actually, it was not a filtering issue, it is due to this: https://github.com/aspnet/EntityFramework/blob/aff7bef4db688325af12cc45f825e19fc2b2bd00/src/Microsoft.EntityFrameworkCore.Relational/Storage/RelationalDataReader.cs#L77
(Dispose causes the SQL CE provider to clear the CommandText) 😢

Marking for re-triage. Questions to consider:

Is this only for SQL CE?
Is it worth trying to work around it by saving away the command text somewhere?
Can this be done by any provider that needs to do it without it being done always?

@ajcvickers Thanks for reconsidering, found this older related issue: https://github.com/aspnet/EntityFramework/issues/3654

Actually, it might not be what I think was the issue (command?.Dispose();) - All statements, even INSERTs are logged correctly in the standard SaveChanges/Query pipeline, only the Migration SQL is not logged.
When I run this test: https://github.com/ErikEJ/EntityFramework.SqlServerCompact/blob/master/test/EntityFramework.SqlServerCompact.FunctionalTests/BasicEndToEndScenarioForIdentity.cs I get this output:
`
Executed DbCommand (26ms) [Parameters=[@p0='?' (Size = 4000)], CommandType='Text', CommandTimeout='0']
INSERT INTO [Blogs] ([Url])
VALUES (@p0)
Executed DbCommand (7ms) [Parameters=[@p0='?' (Size = 4000)], CommandType='Text', CommandTimeout='0']
SELECT [Id]
FROM [Blogs]
WHERE 1 = 1 AND [Id] = CAST (@@IDENTITY AS int)
`

@ErikEJ Is there something you wan us to investigate here?

@ajcvickers Yes, I am wondering why statement logging works only for query and update pipeline, but not for migrations - am I doing something wrong, or is it "by design" ?

@ErikEJ When I run that test against SQL Server, this is what I see getting logged. If you modify the test on your machine to hit SQL Server do you see the migrations commands being logged? Or are you saying that you don't see the migrations commands only when trying to filter? If so, that's probably covered by #7217.
Opening connection to database 'EF11Test' on server '(localdb)\mssqllocaldb'.
Closing connection to database 'EF11Test' on server '(localdb)\mssqllocaldb'.
Opening connection to database 'master' on server '(localdb)\mssqllocaldb'.
Executed DbCommand (18ms) [Parameters=[], CommandType='Text', CommandTimeout='60']
IF SERVERPROPERTY('EngineEdition') <> 5 EXEC(N'ALTER DATABASE [EF11Test] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;');
Executed DbCommand (21ms) [Parameters=[], CommandType='Text', CommandTimeout='60']
DROP DATABASE [EF11Test];
Closing connection to database 'master' on server '(localdb)\mssqllocaldb'.
Opening connection to database 'EF11Test' on server '(localdb)\mssqllocaldb'.
Opening connection to database 'master' on server '(localdb)\mssqllocaldb'.
Executed DbCommand (258ms) [Parameters=[], CommandType='Text', CommandTimeout='60']
CREATE DATABASE [EF11Test];
Executed DbCommand (68ms) [Parameters=[], CommandType='Text', CommandTimeout='60']
IF SERVERPROPERTY('EngineEdition') <> 5 EXEC(N'ALTER DATABASE [EF11Test] SET READ_COMMITTED_SNAPSHOT ON;');
Closing connection to database 'master' on server '(localdb)\mssqllocaldb'.
Opening connection to database 'EF11Test' on server '(localdb)\mssqllocaldb'.
Closing connection to database 'EF11Test' on server '(localdb)\mssqllocaldb'.
Opening connection to database 'EF11Test' on server '(localdb)\mssqllocaldb'.
Beginning transaction with isolation level 'Unspecified'.
Executed DbCommand (9ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE [Blogs] (
    [Id] int NOT NULL IDENTITY,
    [Url] nvarchar(max),
    CONSTRAINT [PK_Blogs] PRIMARY KEY ([Id])
);
Committing transaction.
Closing connection to database 'EF11Test' on server '(localdb)\mssqllocaldb'.
Opening connection to database 'EF11Test' on server '(localdb)\mssqllocaldb'.
Beginning transaction with isolation level 'Unspecified'.
Executed DbCommand (37ms) [Parameters=[@p0='?' (Size = 4000)], CommandType='Text', CommandTimeout='30']
SET NOCOUNT ON;
INSERT INTO [Blogs] ([Url])
VALUES (@p0);
SELECT [Id]
FROM [Blogs]
WHERE @@ROWCOUNT = 1 AND [Id] = scope_identity();
Committing transaction.
Closing connection to database 'EF11Test' on server '(localdb)\mssqllocaldb'.
Compiling query model:
'from Blog <generated>_0 in DbSet<Blog>
select <generated>_0'
Optimized query model:
'from Blog <generated>_0 in DbSet<Blog>
select <generated>_0'
TRACKED: True
(QueryContext queryContext) => IEnumerable<Blog> _ShapedQuery(
    queryContext: queryContext,
    shaperCommandContext: SelectExpression:
        SELECT [b].[Id], [b].[Url]
        FROM [Blogs] AS [b]
    ,
    shaper: UnbufferedEntityShaper<Blog>
)

Opening connection to database 'EF11Test' on server '(localdb)\mssqllocaldb'.
Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT [b].[Id], [b].[Url]
FROM [Blogs] AS [b]
Closing connection to database 'EF11Test' on server '(localdb)\mssqllocaldb'.

OK, so it is a SQL CE only issue, probably due to #3654 - and only when running Migration commands - never mind...

Leave a comment

I ended up doing this hack for now:
https://github.com/ErikEJ/EntityFramework.SqlServerCompact/blob/master/src/Provider40/Migrations/SqlCeMigrationsSqlGenerator.cs#L50

@bricelam to see if we can reorder so we don't dispose before logging

@bricelam [closed-fixed] but not closed?

I use that to represent "out for review" so it doesn't show up in my TODO query.

That is fine. I will keep it in mind for next time.


Seeking Solution for Restoring Original IMEI on GL-iNet Modem

is there solution to restore a modem to its original IMEI?
I have already physically reset the router and reinstalled the latest firmware version from GL-iNet, but the IMEI has not reverted to the original.

Hello @behzads2 Yes but not with blue Merle but with standard AT command for this Quectel modem which you can find here in the forum or by Google in an AT commands pdf

Thank you , it's working
@easthvan manual input IMEI it's great idea !

Unfortunately, I'm not aware of getting hold of the original IMEI.
You can try AT+QPRTPARA=3 to reset the modem to factory defaults.
We could probably offer a button in the Web UI.

Unfortunately, I'm not aware of getting hold of the original IMEI.
You can try AT+QPRTPARA=3 to reset the modem to factory defaults.
We could probably offer a button in the Web UI.

Regarding the above AT command for modem reset, there is a quite interesting writing here: link where they mention a secret EGMR code as well...!
"Quectel likes for us to play puzzle games and doesnt include commands in all manuals. The QMBNCFG commands are in the BG96 MBN Application note manual:
Quectel_BG96_MBN_Application_Note_V1.0.pdfThe EGMR command is a protected command that is a not allowed to be supported here on this forum. It is not in any manuals.
The AT+QPRTPARA command I still haven't found in an official manual and was told by Quectel it was a command that was for internal Quectel use only, which is baloney but....
I do know AT+QPRTPARA=3 will factory wipe your modem, including rewriting the original IMEI. I also believe they say that using it is very hard on the NVRAM and can damage it if used too much, though I have not seen it. My belief is that its usually not needed.
If you do use it, then the command AT+QPRTPARA=1 is absolutely necessary. This command forces the modem to start saving all parameters to NVRAM properly. Otherwise your modem will lose all settings changes after a hard reset or power cycle. I had to learn this one the hard way."

Wiping the original IMEI is the essential core idea of blue merle. You may find it printed on a sticker on your device.


add autocapitalize

closes #89

Seems good. Any objections?

Released on version 3.3.0 Thanks for your contribution


Inability of .deb files to be downloaded from apt repository

Currently downloading .deb files from apt repository is not working.
Need to fix it.

We need to clean old APT files, because user can't download them. New files download correctly.

There's still several broken files.

There is another issue related with cleaning of broken file. #368


icu: init 65.1, 66.1

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[X] NixOS
[X] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

cc: @7c6f434c

Checked the upstream homepage acknowledges the new download page.


Ddm 2451 (#1)

Updates to data-publication pages

index.md - line 12: as DataBC doesn't exist as an organizational unit anymore, I tried to remember to always write "The DataBC Program" rather than DataBC.
line 16 - Open Government Licence - British Columbia (c not s)
line 18 - The Province's...

@mdunhamwilkie , is your reference to line 12 all encompassing in the documentation?  There are many places where DataBC is referenced in the changes noted here.

There are many places there Licence is spelled with an 's' that should be updated to reflect @mdunhamwilkie 's spelling correction.  @cbexson, will you do a search/replace, or would you like file > line references?


Increased range of bluetooth module

Hi @wernerdaehn ,
I'm wondering if there is any other bluetooth module option that would have a range greater than 100m or some other two-way communication solution. It would be useful to have a range at least equal to the largest rope reel, 200m.
What do you think?

The normal CC3D Revo has a OPLink 733MHz long range wireless module. I wanted to utilize that as well but it is not that straight forward, hence never started writing that code module.

Um, yeah. That would really be something. I mean, as it is now, it's fine. Is there any chance of getting caught up in that? What range are we talking about, do you think it would be 200m?

https://librepilot.atlassian.net/wiki/spaces/LPDOC/pages/33620037/OpenPilot+OPLink+Mini

With it's peek power output of 100mW, using good quality antennas, useful range spans over 2km.

That would be something! Too bad that its integration is a big problem. With such a range, it would certainly cover the many scenarios and needs that may arise in the field. Of course, this is not bad either. It's great to have such a long range with bluetooth.  If you ever get some free time... That would be huge. Really great work and research so far!


Release Google.Shopping.Merchant.Reports.V1Beta version 1.0.0-beta03

Changes in this release:
New features

Add non_product_performance_view table to Reports sub-API (commit d03e054)
Add effectiveness field to price_insights_product_view table in Reports sub-API (commit d03e054)
A new enum Effectiveness is added (commit a8a8d1e)
A new field effectiveness is added to message .google.shopping.merchant.reports.v1beta.PriceInsightsProductView (commit a8a8d1e)

Documentation improvements

A comment for enum AggregatedReportingContextStatus is changed (commit a8a8d1e)
A comment for field shipping_label in message .google.shopping.merchant.reports.v1beta.ProductView is changed (commit a8a8d1e)
A comment for field inventory_status in message .google.shopping.merchant.reports.v1beta.BestSellersProductClusterView is changed (commit a8a8d1e)
A comment for field brand_inventory_status in message .google.shopping.merchant.reports.v1beta.BestSellersProductClusterView is changed (commit a8a8d1e)

Created release for Google.Shopping.Merchant.Reports.V1Beta-1.0.0-beta03


Read test debug configuration from settings not just launch.json

Issue Type: Bug
Behaviour
Expected vs. Actual
Adding this to my .vscode/launch.json allows me to use breakpoints in third-party libraries when debbuging unit tests:
{
	"name": "Debug Unit Test",
	"type": "python",
	"request": "test",
	"justMyCode": false
}

I expect that adding the same to the launch section of my workspace settings would produce the same behaviour but this is not true.
Steps to reproduce:

Add the above debug config to your .vscode/launch.json file.
Add a breakpoint to a third party tool.
Debug a unit test that calls the third party code and the debbuger will stop in the breakpoint.
Delete the .vscode/launch.json file.
Add the above debug config in your workspace settings.
Add a breakpoint to a third party tool.
Debug a unit test that calls the third party code and the debbuger will skip the breakpoint.

Diagnostic data

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

User Settings

defaultLS: {"defaultLSType":"Pylance"}

downloadLanguageServer: true

envFile: "<placeholder>"

venvPath: "<placeholder>"

venvFolders: "<placeholder>"

condaPath: "<placeholder>"

pipenvPath: "<placeholder>"

poetryPath: "<placeholder>"

languageServer: "Pylance"

linting
• enabled: true
• cwd: "<placeholder>"
• Flake8Args: "<placeholder>"
• flake8Enabled: true
• flake8Path: "<placeholder>"
• lintOnSave: true
• banditArgs: "<placeholder>"
• banditEnabled: false
• banditPath: "<placeholder>"
• mypyArgs: "<placeholder>"
• mypyEnabled: true
• mypyPath: "<placeholder>"
• pycodestyleArgs: "<placeholder>"
• pycodestyleEnabled: false
• pycodestylePath: "<placeholder>"
• prospectorArgs: "<placeholder>"
• prospectorEnabled: false
• prospectorPath: "<placeholder>"
• pydocstyleArgs: "<placeholder>"
• pydocstyleEnabled: false
• pydocstylePath: "<placeholder>"
• pylamaArgs: "<placeholder>"
• pylamaEnabled: false
• pylamaPath: "<placeholder>"
• pylintArgs: "<placeholder>"
• pylintPath: "<placeholder>"

sortImports
• args: "<placeholder>"
• path: "<placeholder>"

formatting
• autopep8Args: "<placeholder>"
• autopep8Path: "<placeholder>"
• provider: "autopep8"
• blackArgs: "<placeholder>"
• blackPath: "<placeholder>"
• yapfArgs: "<placeholder>"
• yapfPath: "<placeholder>"

testing
• cwd: "<placeholder>"
• debugPort: 3000
• nosetestArgs: "<placeholder>"
• nosetestsEnabled: undefined
• nosetestPath: "<placeholder>"
• promptToConfigure: true
• pytestArgs: "<placeholder>"
• pytestEnabled: true
• pytestPath: "<placeholder>"
• unittestArgs: "<placeholder>"
• unittestEnabled: false
• autoTestDiscoverOnSaveEnabled: true

terminal
• activateEnvironment: true
• executeInFileDir: "<placeholder>"
• launchArgs: "<placeholder>"

experiments
• enabled: true
• optInto: []
• optOutFrom: []

insidersChannel: "off"

tensorBoard
• logDirectory: "<placeholder>"

Extension version: 2022.2.1924087327
VS Code version: Code 1.65.2 (c722ca6c7eed3d7987c0d5c3df5c45f6b15e77d1, 2022-03-10T15:36:26.048Z)
OS version: Linux x64 4.14.240
Restricted Mode: No

Hi @ElPincheTopo, the launch.json configuration has changed for debugging tests (see https://code.visualstudio.com/docs/python/testing#_debug-tests). Can you try the configuration below?
 "launch": {
        "configurations": [ {
            "name": "Python: Debug Tests",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "purpose": ["debug-test"],
            "console": "integratedTerminal",
            "justMyCode": false
        }
        ],
        "compounds": []
    }

And just out of pure curiosity, what is the reason behind using it on your workspace configuration rather then launch.json?

We currently only read this from the launch.json. We could expand the scope of where we read it from, but that has some things that we have not decided yet. Like how we handle multiple test configurations, which one takes priority, etc.

Thanks for the hint @luabud. It's good to know that that has changed, but it still behaves on the same way as my original example.
My original description might have not been super clear. I'm storing my workspace settings in a PROJECT.code-workspace file outside of the repository. I use this in some projects to be able to have multiple folders in the same workspace, and if I'm already putting my settings in there it makes sense to put all the settings in there unless I need to override something for one of the folders in the project.
@karthiknadig I think that test configurations defined in the Folder settings (.vscode/launch.json) should take precedence, then the ones on the Workspace settings (PROJECT.code-workspace) and then the ones in the User settings. I think that this would be consistent with the way all the other settings get applied in vscode, which is why I expected this to work.
Currently, if you have more than one test configuration defined in your launch.json the first one gets used and the rest are ignored, so making this change would preserve the existing behavior but expand the places the config can be read from to make it consistent with other settings in vscode.

It doesn't help that the command Open 'launch.json' in the command palette just opens settings.json if you haven't got a launch.json. That makes you think there would be no difference between where you add a configuration

I have the same workflow, vscode settings in a workspace settings rather than in the repository, so I'd love to see a solution to this. I found this issue after reading #693 and the last comment in that thread seems to be about this issue, so commenting to link the two.


IBOutlets dont show

IBOutlets don't show in XIB, I don't link my UIView to foregroundView.

@andre991 sorry for the delay. You need to set custom class RotatedView (from FoldingCell module) to your foregroundView.


Not Working With Maven Installed By Sdkman

Its not working with maven installed sdkman. For details pls check the attached screenshot.

Well it needs M2_HOME environment variable and sdkman create MAVEN_HOME environment variable. Please support both environment variable.

java -Dmaven.home=/home/.../maven -jar wad.jar /home/.../deployments
works.
If you add -Dmaven.home at the end it is interpreted as an additional deplyoment path.


Develop

Codecov Report

Merging #38 into master will increase coverage by 4.9%.
The diff coverage is 85.71%.

@@            Coverage Diff            @@
##           master      #38     +/-   ##
=========================================
+ Coverage   55.79%   60.69%   +4.9%
=========================================
  Files          13       19      +6
  Lines         233      229      -4
=========================================
+ Hits          130      139      +9
+ Misses        103       90     -13

Impacted Files
Coverage Δ

...ngoLabKit/Sources/Classes/CollectionsService.swift
90% <ø> (+20%)
:arrow_up:

MongoLabKit/Sources/Classes/DocumentsService.swift
90% <ø> (+20%)
:arrow_up:

MongoLabKit/Sources/Classes/DocumentService.swift
0% <ø> (ø)
:arrow_up:

MongoLabKit/Sources/Classes/MongoLabError.swift
33.33% <0%> (-16.67%)
:arrow_down:

MongoLabKit/Sources/Classes/Configuration.swift
100% <100%> (ø)

...ngoLabKit/Sources/Classes/MongoLabURLRequest.swift
82.14% <100%> (-5.62%)
:arrow_down:

MongoLabKit/Sources/Classes/URLBuilder.swift
100% <100%> (ø)

...t/Sources/Classes/MongoLabApiV1Configuration.swift
100% <100%> (ø)

MongoLabKit/Sources/Classes/RequestError.swift
100% <100%> (ø)

MongoLabKit/Sources/Classes/MongoLabService.swift
50% <50%> (ø)

... and 7 more

Continue to review full report at Codecov.

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


Removed duplicate clauses

Removed duplicate clauses, specifically 3 and 17, and 11 and 19.

Results of AGM 2022 March 29
Constitutional Amendment 2: Remove Duplicate Clauses

There are 3 options competing for 1 winner. The number of voters is 89 and
there were 84 valid votes and 5 empty votes.

Counting votes using Plurality/FPTP/SNTV.

Candidate | Count
=================
      For |    70
  Against |     3
  Abstain |    11
Exhausted |     0

Winner is For.

Approving and merging.


Extend IAM policy scanner to include group member expansion

IAM policy scanner should check that policy members of "user" type are not allowed access via groups that are allowed, if those users have been listed as not allowed.

This feature will be really helpful.
Nevertheless, this feature could be optional for some rules:
We see some use case:

writing a rule which does't allow assigning IAM's to users, we only want to give IAM's for groups, so then specific user, even if belongs to allowed group is a violation - then groups resolving should be not used.

blacklist rule for specific group - then each user which belongs to group should be a violation - then groups resolving should be used.

Cleanup of old issues. Please re-open if there's still interest.


sui_pre_draw() and sui_draw() undocumented

CSQC_UpdateView has commented-out references to sui_pre_draw and sui_draw but these functions do not exist. It's unclear to be if the user is supposed to create them.
sui_action_element will throw an error if these functions are not called.
It appears sui_pre_draw was renamed to sui_begin, which sets the variables the rest of the SUI system is checking.

I'll fix this over the weekend, thank you

Better late than never, changed the commented areas to sui_begin and sui_end as they should be.


LMS URL assignments using bookdown-created site remain in Via context when following links

Bug report form
Reported in Slack https://hypothes-is.slack.com/archives/C2BLQDKHA/p1666653046795529
Steps to reproduce

Create LMS URL assignment pointing to a page created using bookdown e.g. https://danawanzer.github.io/stats-with-jamovi/
Example assignments:

https://hypothesis.instructure.com/courses/258/assignments/3661
https://hypothesis.instructure.com/courses/258/assignments/3662
https://hypothesis.instructure.com/courses/258/assignments/3663

Click a link to navigate to another page or section of the text, such as the next page arrow > or a selection from the TOC sidebar

Expected behaviour
Clicking a link to a new URL should open separately in a new tab and load the page directly, outside of the Via context. This is intentional, to make obvious to the LMS user that they have navigated away from the assigned reading and are no longer using the Hypothesis LTI tool.
Actual behaviour
After clicking a link, the new page does not spawn a new tab and instead loads in the same Via context, with the browser address bar still showing the LMS assignment URL (or LTI launch URL if the assignment isn't embedded in the LMS page). Though the H sidebar is still shown, it is no longer in the appropriate LMS group context, and the LMS user is no longer logged in.
The user is likely to continue to believe they are still in the LMS context, but when they try to annotate on the new page will be prompted to log in, resulting in confusion.

Browser/system information
Tested in Canvas using:

MacOS 12.6

Chrome 106
Firefox 106
Safari 16

I think this might need some front end assistance. I'm not sure exactly what's going on, but I've made a few discoveries:

We are correctly writing the URLs to be links to the original document
If you hover over them you see them pointing to locations outside of Via
If you disable Javascript the links work as expected

What I don't know is who's Javascript is causing the issue.
Testing notes

You don't need to do this in LMS to see this
You can't use public Via because the page isn't on the allow list
In Via: make dev
In ViaHTML: make dev
Visit: http://localhost:9083/https://danawanzer.github.io/stats-with-jamovi/

The basic problem here is that the page is doing Turbolinks-style client-side navigation for links in the left nav bar. You can see this if you inspect the links in Firefox developer tools. I believe this problem is likely to happen on many other pages that use client-side navigation too. It is tricky to ensure that all possible ways a page might try to update the URL result in a new tab being opened, however for the common case of link elements with JS event handlers, https://github.com/hypothesis/viahtml/pull/427 has a potential fix.


Asset files missing

Good morning,
I can't test the EP4-Change Map part : there are some asset files missing.
The error is :+1: FileNotFoundError: [Errno 2] No such file or directory: '../../assets/map/house_0.tmx'
Is it possible to have the asset files present in the video ?
Great thanks for your work.

Hello !
I'm sorry I forgot to commit the files from episode 5. Normally, all the files have been added!
Thank you so much for letting me know and for the support !
Arnaud


Bugfix MultipleSubst1 GSUB subtable data loading

The offset for reading the slice of glyph indices wasn't compensating for the slice-length field.
Also implement Debug for SubtableKind.

Nice catch. Thank you!


Add future work

Add future section
This can be accomplished with the Cyclus simluator and Cycamore Reactor archetype, but will require depletion calculations outside of the current scope of this effort. we have listed your suggestion as future work as it would certainly imporve the fidelity of future results.
This section of the analysis intends only to identify first-order trends. The simulation itself involves many simplifying assumptions regarding both policy and reactor physics. Accordingly, while individual depletion calculations regarding various breeding ratios would improve precision, it may not improve accuracy.

solved by f61c9f7322da80932bdbdfb6be212b0d0844389b


Trouble using vagrant-aws with my account - permissions - what fails?

Hi,
I tried hard to figure out why my setup of a vagrant aws box failed to provision.
Generally it tells me the following error: UnauthorizedOperation => You are not authorized to perform this operation.
Checking the credentials I have created by the simulation tool, I believe that these are correct. Passing wrong credentials also approves, that I am correctly logging in when the correct ones are passed.
My main problem is that I do not see any verbose logging, so I am unable to see when or by what command failures happens. Here is my output (using a private AMI):
stsmac:~ lothar$ export VAGRANT_LOG=debug & sudo vagrant up --provider=aws --no-parallel
[1] 45196
Password:
Bringing machine 'default' up with 'aws' provider...
WARNING: Nokogiri was built against LibXML version 2.8.0, but has dynamically loaded 2.9.1
[fog][WARNING] Unable to load the 'unf' gem. Your AWS strings may not be properly encoded.
[default] Warning! The AWS provider doesn't support any of the Vagrant
high-level network configurations (config.vm.network). They
will be silently ignored.
[default] Launching an instance with the following settings...
[default]  -- Type: m1.small
[default]  -- AMI: ami-92d524e5
[default]  -- Region: us-east-1
[default]  -- Keypair:
[default]  -- Block Device Mapping: []
[default]  -- Terminate On Shutdown: false
[default]  -- Monitoring: false
[default]  -- EBS optimized: false
There was an error talking to AWS. The error message is shown
below:
UnauthorizedOperation => You are not authorized to perform this operation.
[1]+  Done                    export VAGRANT_LOG=debug
stsmac:~ lothar$
How can I see the issued comands?
Thanks, Lothar

After a lot of trial/error (we wound up doing a binary search with ec2:A* ... ec2:Z* for policies), we finally got our IAM policy right. We used the Demystifying article as well.
Here's our Vagrant setup:
# Allow AWS provisioning (used by Jenkins)
config.vm.provider "aws" do |aws, override|
  # Use an empty box that says "provider": "aws"
  # https://github.com/mitchellh/vagrant-aws/tree/v0.6.0#quick-start
  config.vm.box = "https://github.com/mitchellh/vagrant-aws/raw/v0.6.0/dummy.box"

  # Declare our credentials
  aws.access_key_id = "{{access key id}}"
  aws.secret_access_key = "{{secret access key}}"

  # Use our AWS user and SSH key
  aws.keypair_name = "{{keypair name}}"
  override.ssh.username = "{{username}}"
  override.ssh.private_key_path = "{{path-to-ssh-key}}"

  # Use security group with SSH access
  # DEV: We require a private IP address for access to work with security groups
  aws.security_groups = ["{{security-group-name}}"]
  aws.ssh_host_attribute = :private_ip_address

  # Specify the type of server we want
  aws.ami = "{{image}}"
  aws.instance_type = "{{instance-size}}"
  aws.region = "{{region}}"

  # Tag the server for easy searching
  aws.tags = {
    :type => '{{tag}}'
  }
end

Here's the corresponding IAM policy:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "TheseActionsDontSupportResourceLevelPermissions",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags",
                "ec2:AssignPrivateIpAddresses",
                "ec2:Describe*",
                "ec2:UnassignPrivateIpAddresses"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ThisActionsSupportResourceLevelPermissions",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:{{region}}:{{account id without dashes}}:instance/*",
                "arn:aws:ec2:{{region}}:{{account id without dashes}}:key-pair/*",
                "arn:aws:ec2:{{region}}:{{account id without dashes}}:network-interface/*",
                "arn:aws:ec2:{{region}}:{{account id without dashes}}:security-group/*",
                "arn:aws:ec2:{{region}}:{{account id without dashes}}:subnet/*",
                "arn:aws:ec2:{{region}}:{{account id without dashes}}:volume/*",
                "arn:aws:ec2:{{region}}::image/ami-*"
            ]
        },
        {
            "Sid": "TheseActionsSupportResourceLevelPermissions",
            "Effect": "Allow",
            "Action": [
                "ec2:TerminateInstances",
                "ec2:StopInstances",
                "ec2:StartInstances"
            ],
            "Resource": "arn:aws:ec2:{{region}}:{{account id without dashes}}:instance/*"
        }
    ]
}

Notes from this, Amazon does provide error messages for failing RunInstances. These can be decoded via aws sts as documented in the Demystifying article. However, there's also a useless error message "UnauthorizedOperation => You are not authorized to perform this operation."
It turns out that we needed ec2:CreateTags for that. It's likely due to us using aws.tags in the Vagrantfile.

@twolfson thanks a lot, this helped me to solve my problems