fix: Correct synpase typo

Thank you :) @iemejia

/azp run

Codecov Report

Merging #1335 (73a0410) into master (35db831) will decrease coverage by 7.05%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1335      +/-   ##
==========================================
- Coverage   73.67%   66.62%   -7.06%
==========================================
  Files         263      263
  Lines       13054    13054
  Branches      727      727
==========================================
- Hits         9618     8697     -921
- Misses       3436     4357     +921

Impacted Files
Coverage Δ

...m/microsoft/azure/synapse/ml/codegen/CodeGen.scala
95.31% <ø> (-3.13%)
:arrow_down:

...m/src/main/scala/com/microsoft/lightgbm/SWIG.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

.../execution/streaming/continuous/HTTPSourceV2.scala
0.00% <0.00%> (-92.09%)
:arrow_down:

...che/spark/sql/execution/streaming/HTTPSource.scala
0.00% <0.00%> (-90.00%)
:arrow_down:

...ql/execution/streaming/continuous/HTTPSinkV2.scala
0.00% <0.00%> (-89.75%)
:arrow_down:

...azure/synapse/ml/lightgbm/LightGBMClassifier.scala
11.11% <0.00%> (-80.00%)
:arrow_down:

...ql/execution/streaming/DistributedHTTPSource.scala
0.00% <0.00%> (-78.34%)
:arrow_down:

...om/microsoft/azure/synapse/ml/io/IOImplicits.scala
10.16% <0.00%> (-61.02%)
:arrow_down:

...he/spark/sql/execution/streaming/ServingUDFs.scala
0.00% <0.00%> (-52.95%)
:arrow_down:

...t/azure/synapse/ml/lightgbm/LightGBMDelegate.scala
0.00% <0.00%> (-50.00%)
:arrow_down:

... and 23 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 35db831...73a0410. Read the comment docs.


[beta program] comment here if you want an invite to TestFlight

🙋🏻♂

Me please!

Pleaseeeeee

here

👋

✋


rpc: add SetPendingTransferProofCourierAddr endpoint to fix erroneous courier addresses

This PR introduces a new RPC endpoint, SetPendingTransferProofCourierAddr, which allows overriding the proof courier address for a pending asset transfer output. This enhancement directly addresses the issue of correcting erroneous courier addresses during asset transfers as described in issue #1082.

This PR is in draft because it's missing an itest. I'm looking for early feedback.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>6
Details

0 of 76 (0.0%)  changed or added relevant lines in 2 files are covered.
20 unchanged lines in 6 files lost coverage.
Overall coverage decreased (-0.06%) to 40.353%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

tapfreighter/chain_porter.go
0
5
0.0%

rpcserver.go
0
71
0.0%

Files with Coverage Reduction
New Missed Lines
%

rpcserver.go
1
0.0%

tappsbt/create.go
2
53.22%

asset/asset.go
2
81.35%

tapdb/universe.go
4
80.91%

tapgarden/caretaker.go
4
68.5%

tapdb/multiverse.go
7
60.32%

Totals

Change from base Build<PHONE_NUMBER>9:
-0.06%

Covered Lines:
23942

Relevant Lines:
59331

💛  - Coveralls


Windows needs extra help to support the CLI

There's no way to make an app in Windows that is both a console and a GUI app at the same time. This is absurd but there it is - the whole command line aspect of Windows was neglected for years.
To make the CLI work in Windows we need to adjust the bootstrap tool so there are two ways to start the app - GravitonBrowser.exe for the GUI and graviton.exe for the command line. Then we need to:

Change the bootstrapper so it uses CreateProcess instead of ShellExecute, so it can block and wait, and pass on console handles to the child process.
At build time edit the PE header of the graviton.exe binary to flip it into console mode, so cmd.exe will wait for it.

Unfortunately, whilst it's possible to re-attach a Windows-subsystem program to the cmd.exe console and print to the output, it's not possible to take over stdin as well and make cmd.exe wait. So there doesn't seem to be any alternative to having two binaries.

Done, just need to document it now.


deisctl tries to destroy app named "registry" when uninstalling platform

$ deisctl stop platform
● ▴ ■
■ ● ▴ Stopping Deis...
▴ ■ ●

Routing mesh...
<EMAIL_ADDRESS>inactive/dead
<EMAIL_ADDRESS>inactive/dead
<EMAIL_ADDRESS>inactive/dead
Data plane...
deis-publisher.service: inactive/dead
Control plane...
Could not parse target: registry_v4.web.1.service

We have a app named as "registry", maybe this is a problem. I tried to start platform and hangs exactly the same.
Now deis client is getting 503 service unavailable for any command that i try. I'd like scale 0 or even destroy this app.
My units status: https://gist.github.com/rogerleite/f18b05a2099b10529a23

To fix this situation, i did:
Destroyed all services:
fleetctl list-units | grep service | cut -f1 | xargs fleetctl destroy
Install and start via deisctl:
deisctl install platform
deisctl start platform

thanks for the report, @rogerleite. I've updated the title to better reflect the problem at hand here.

Thanks.

ping @slack didn't you have some similar fixes for apps named deis- that you were going to PR?

However, looks like https://github.com/slack/deis/blob/3794474cbc4408a9c47a782b9a063230ffa90488/deisctl/cmd/cmd.go#L271 actually needs the fix and wouldn't be covered by the branch I was working on.

Reading deisctl source, maybe the problem is:
When Stop calls expandTargets, registry has the suffix @*, so it calls expandTarget with registry argument and probably fleetctl client make a simple grep with registry string only.
My suggestion: expandTarget should use a regex like this to filter c.Units(target) results.
Maybe it's time to me finally learn go. :smile:


search should also find "series"

The frontpage should now also be able to find tutorials of type "series"

and "Non-technical"


Setup Kanban Board

Link to Project
Note: We are two in the team.

Link to Project
Note: We are two in the team.

Status: ✔ Project Approved ✔
Hi @calebchris000,
Everything is looking great! Please, merge this branch :shipit:
Congratulations! 🎉
Optional suggestions
Every comment with the [OPTIONAL] prefix is not crucial enough to stop the approval of this PR. However, I strongly recommend you take them into account as they can make your code better.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

As described in the Code reviews limits policy you have a limited number of reviews per project (check the exact number in your Dashboard). If you think the code review was unfair, you can request a second opinion using this form.


fix typos in crk relabeling

Codecov Report

Merging #953 (39f89d2) into main (ffcdeee) will increase coverage by 0.17%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #953      +/-   ##
==========================================
+ Coverage   79.59%   79.76%   +0.17%
==========================================
  Files         136      136
  Lines        4636     4671      +35
  Branches      608      625      +17
==========================================
+ Hits         3690     3726      +36
+ Misses        818      816       -2
- Partials      128      129       +1

Impacted Files
Coverage Δ

src/CreeDictionary/API/search/presentation.py
83.84% <0.00%> (+3.43%)
:arrow_up:

Continue to review full report at Codecov.

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


doc: make CMake INSTALL instructions build generator agnostic

The previous CMake install instructions were not build generator agnostic. It many cases, it is possible and easier to use the default build system generator of a system, and the generator does not necessarilly have to be Ninja. For example it is possible to use the "Unix Makefiles" generator on most UNIX systems without any additional dependencies required to be installed.
Furthermore, the build and install instructions were also hardcoded to use Ninja.
This commit updates the INSTALL CMake instructions to be build generator agnostic.
A small note about requiring sudo for installation was added as well.

For all practical purposes, the speed difference between Ninja and Make when using the same number of jobs was never the primary reason to select on or the other. On Windows, I usually used Ninja because Make was not pre-installed so it was the next best choice, and on Ubuntu, make was pre-installed and also the default generator so I was happy with that (I will still drop the additonal dependency clause though when I find the time). Using the -j flag is just something I very commonly use because all buld system generators I know support parallelization, and for most real world project, I do not want to build with the default -j 1.  Ninja is not a problem (I use it myself on Windows), but I just think that the generator choice should be up to the user, that's the huge power of CMake after all.

Ninja is not a problem (I use it myself on Windows), but I just think that the build generator choice should be up to the user

But it puts yet another burden to the maintainers without any gain for the maintainers.

that's the huge power of CMake after all.

It's just a feature of CMake. CMake is not a magic tool. We have to take care of every build tool we support.
Would you add build tests for each built tool CMake supports and keep maintaining them for foreseeable future?

Would you be willing to add build tests for each build tool CMake supports and maintain them for the foreseeable future?

I don't think this is reasonable for the large number of generators. I have looked at some other C++ projects

OpenCV does not specify the generator, but mentions that Make or Ninja can be used.
Qt6 seems to favour Ninja and explicitely states that only that system is officially supported.
Abseil does not specify the generator

If you still prefer to only officially support Ninja, I can add back -GNinja. I'd still use the generator agnostic --build and --install commands though.

Thanks for the investigation!

What about a note that other build systems like Make might work but are not official supported, if I do this?

Sounds good to me.

I have updates the PR.


Consider making recursion optional

The spec prohibits recursion:

Execution is finite
The language does not allow recursion

However:

recursion does not break Starlark model of deterministic hermetic evaluation
prohibited recursion only helps to achieve finite execution in theory, while in practice it's easy to write 5 lines program which won't finish before the end of the Universe
there is nothing in Starlark language or implementations to my knowledge which depends on the fact that the execution is finite

We find recursion useful, and we allow it in our uses of Starlark. We would like to stay within the Starlark spec.
Is it possible to make recursion optional in Starlark language? And Bazel Starlark implementation could still restrict it.

I think it's completely reasonable to make this an option, as the implementation at go.starlark.net does.

I agree that prohibiting recursion only stops people in theory. Many theoretically expensive computations run quickly, and many bounded computations are slow. Committed users can (and do) implement a Turing machine with a large but bounded number of steps. What really matters is how many steps a computation takes, and that is best measured or limited dynamically. (We already have measurement in place, and we plan to add limits.)
That said, prohibiting recursion has worked fairly well as a signal to users that they are attempting the kinds of programming perhaps best not done in the build system.
Care to send a PR to the Java implementation? The necessary change would add a boolean to StarlarkSemantics and skip the recursion check if the flag is set. The Go implementation goes a step further and adds a while loop to the grammar. To do that in the Java implementation would require adding a new statement type, changing the parser, and adding a FileOption to enable it.
@laurentlb Any concerns here?

I'll send PR against Bazel repo to allow recursion with option.
@ndmitchell do we want while loops? I'm fine either way, but better all implementations to implement the same language.

Why is there a requirement to patch the Java implementation and the spec simultaneously? Should the spec live as its own artefact, and then implementation changes to Java to conform to the spec (or for Java to choose not to adhere closely) are a separate thing? (Genuine question - still trying to figure out where this spec lies for everyone else.)
@stepancheg - no objection to while loops. If you have recursion anyway, it's often cleaner than expressing the same thing without a while loop. It seems like a natural inclusion.

There's no such requirement; in fact, the spec lives in a GitHub repo whereas the Java code lives in Google's internal repo and is mirrored to GitHub, so they can't change atomically. Arguably it would be cleaner if there were two documents, the spec and the description of the Java implementation (like we have for Go), the first being the statement of intent and the second being the ground truth, but maintaining two docs in two repos is already a lot of work. In the absence of that hypothetical doc, the spec serves as the reference for Bazel users, so it's better if our aspirations don't run too far ahead of our implementations.

Re: while loops: let's make it a separate PR.

Would it make sense to have the spec detail in-place where the various implementations diverge from the spec, and in what ways? Reducing it to one doc in one repo might halve your effort :)

I don't think the spec should describe the particulars of any one implementation (there are three).

I don't think the spec should describe the particulars, but I've found things like the MDN approach e.g. at https://developer.mozilla.org/en-US/docs/Web/CSS/:default of describing the spec, and then briefly saying what is conformant/non-conformant to be very helpful. Certainly not essential though if you'd rather not include it.

I suspect the CSS team at Microsoft is rather bigger than the Starlark subteam of the Bazel team at Google.

Spec PR https://github.com/bazelbuild/starlark/pull/99

Some notes about recursion: yes, it's fine to allow it as an optional extension. But I'd rather not enable it in Bazel.
Starlark should remain usable as a configuration language. It's common for a config language to prevent infinite loops, e.g. Dhall (http://www.haskellforall.com/2020/01/why-dhall-advertises-absence-of-turing.html). As Alan wrote, it's used as a signal to discourage users to write things that don't belong to a build system / configuration language.
Recursion can also make the code more difficult to understand (both for human readers and static analysis tools) in a Python-like language. I tried to make Starlark minimalist, reduce the number of concepts users to understand, and force everyone to use the same patterns (this can be important when you maintain a large codebase). I believe the lack of recursion fits with those goals.
When we migrated Google codebase from Python macros to Starlark, we had to convert many Python files. The lack of recursion was not a concern for the migration. Since that, a large amount of Starlark code was written; very few people asked about recursion. Based on these data points, recursion doesn't seem like an important feature to us.

@laurentlb: Recursion can also make the code more difficult to understand
In order to understand what is going on between custom rules I had to implement something akin pretty_print for Starlark to be able to make sense of the random objects. Implementation with recursion would be transparent and easy to understand. Without recursion I had to implement  "poor man recursion" using list as a stack and believe me it is MUCH more difficult to understand than if it would be done with the real recursion.
Example fragment:
    state = struct(obj = obj, name = name, prefix = "")
    stack = [state] # list has methods append and pop
    for _ in range<PHONE_NUMBER>):
        state = stack.pop()

Isn't it ugly?
Each feature may be used and may be abused. In case of recursion I'd consider it a must for any modern language.


Spelling

Hi... I have a handful of spelling fixes as identified by a tool I work on and a larger (but admittedly incomplete) set of accessibility fixes that I'd hope you'd consider.
I'm happy to split them up in some other manner if that's helpful.

Thanks! This week is a bit of a crazy week, but will try have a proper look and think about this soon!


Piper running on iOS as a system voice! Anyone with iOS experience able to troubleshoot issues or improve this code?

I’m not sure if anyone noticed, but there is a swift-native implementation of Piper that allows it to run on iOS -- and to have Piper models be used as the system voice for iOS and MacOS (for iOS text-to-speech operations such as spoken content, live speech). This also allows Piper voices to be natively accessible from other iOS apps (such as book readers!) that tap into iOS system voices.
This is thanks to the AVSpeechSynthesisProviderVoice and AVSpeechSynthesisProviderAudioUnit frameworks in Swift. Some documentation on it here:

Creating a custom speech synthesizer
Extend Speech Synthesis with personal and custom voices

@IhorSchevchuk’s has wrapped this all together into Swift Packages and an iOS app for Piper, Piper Phonemize, Onnx Runtime, etx.
I’ve tested it and gotten it working -- however, I’m finding that high quality models are not running on my iPhone 13, and iOS is reverting to using the “compact Siri Voice”.
With medium quality models, my iPhone 13 is running short phrases, but longer phrases cause it to kick back to using the compact Siri voice. See demos here using the en-GB_Cori-Medium voice:
https://github.com/rhasspy/piper/assets/122964093/7ac1f682-10f8-45fd-90f2-a55be4bfa813
https://github.com/rhasspy/piper/assets/122964093/3a61e513-4b79-4385-8c1f-bbf3b32f421f
I’m a bit confused by this behavior -- given that I’m able to run 1b-3b parameter LLMs on my phone without too much issue. Equally confused because I’m able to use Piper medium-quality models through a WASM interface just fine on iOS, such as this one by K2-FSA.
Wondering if anyone has any insights or experience on this end -- or knows how to get Piper models running properly on native swift apps! Love that I can get it working as a system voice -- just need to get it working consistently.

Here’s another example of the issue -- then using the En_GB_Jenny-Medium voice on the Speech Central App. You can see how it’s performing quite responsively until we get to a longer sentence in the book. I’ve posted an issue with the author of the Repo, but hoping someone else here might have gotten Piper working smoothly on their iOS devices!
https://github.com/rhasspy/piper/assets/122964093/f53b598f-54e1-4077-ba41-00502eff639d

Wow.  I'm interested to learn more.

@S-Ali-Zaidi You ever this this sorted out?

It's probably falling back because of the latency, perhaps apple gives a deadline for generation time to keep TTS latency low. I guess if it were possible to chunk the sentence and stream the shorter chunks and return them as they are generated? (Although perhaps with introduced unnatural pauses).


Contact Us Section overlapping with call icons

Description
The Contact Us section is overlapping with the call icons, I will fix this . Please assign me this under GSSOC'23
Screenshots

Enviroment:

OS: Mac Linux Windows
Browser: Chrome Safari Firefox
Version:
Device: Desktop Mobile

Please assign this task to me if the above issue is not solved.

Yes sure, go ahead @JAYESHBATRA


Update for upstream v2.1.5.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


electron-builder config file

I suppose you are not aware that you can provide config file for electron-builder :)
Please see how is it implemented in electron-webpack:

file https://github.com/electron-userland/electron-webpack/blob/master/packages/electron-webpack/electron-builder.yml included into the module
user can use it as "extends": "electron-webpack/electron-builder.yml"

But actually electron-builder detects electron-webpack and automatically set extends. If you will add such base electron-builder file, I can support electron-next to automatically set extends in the same way.

Sweet! Is it possible to use JSON for that?

Yes, JSON, JSON5 and TOML are also supported.

Wonderful, thanks!

Thanks again for the suggestion! But since we only have files in the config that need to be customized by the user (depending on his directory names), we shouldn't introduce a default config.


API to get comments of a commit is missing

I was trying to get comments made on a commit, but the implementation of the rest api is missing.
Following is the api to get comments of a commit

/projects/:id/repository/commits/:sha/comments

Support for CommitsApi.getComments() has been added in version 4.4.7.


Possible to include Gnome Disks

Describe the package
I'd like to request the package Gnome Disks because ...
Unfortunately KDE Partition manager still lacks the ability to have a drive decrypted on startup. Because of this automatically mounting the drive fails if you use KDE Partition Manager to setup mounting your drives.
Gnome Disks lets you easily do this from the GUI but lacks a flatpack. Because of this it is currently the only layered package I have.
Image
All Images

Gnome Disk is available via Flatpak, why not use it?

@KyleGospo : Putting a thumbs down is a reaction, but at least comment on it and explain why.
I am also not happy to ask for a Gnome app in KDE, however I am not aware of any other app that offers the same functionality. Let alone a KDE or even QT app. If you do, please comment which one. I am all for alternatives, U just don't know one.


install-web changed "omero.webadmin" references

Removed omero.webadmin disambiguation where there is non required any more. Reading this as it stands, It seems like there's an additional "omero.webadmin" which is separate to the webclient.

This issue occurs on the windows page too, do you want to fix that in this PR or would you prefer I open another?

Asid: @kennethgillen historically they used to be separate clients.

Fixed for windows page in linked PR

Is the note
"This starts the server in the foreground. It is your responsibility to place it in the background, if required, and manage its shutdown." still applicable?   It doesn't seem to have any context.

if it is out of context, remove it
the manage shutdown can be added as a note under Maintenance section


Fail to connect a Windows VM with "timed out" error

OS: Mac
Build Version: 20201207.1
Repro Steps:

Make sure the Remote - SSH Extension has been installed.
Create a Windows VM.
Navigate to the Remote Explorer --> Refresh the Remote Explorer --> Right click the new Windows VM host --> Select "Connect to Host in New Window".

Expect:
Succeed to connect the Windows VM.
Actual:
Fail to connect the Windows VM with "time out" error.

More Info:
This issue does not reproduce when connecting a Linux VM on Mac platform.

@v-ruizh This would be a VS Code bug since we aren't the ones who manage the Remote - SSH Extension.  However, Windows VMs do not use SSH to connect remotely.  I think typically you would use RDP (remote desktop protocol) to connect to a Windows VM which is most likely why this didn't work.  I'm pretty sure that this isn't a bug-- the Remote - SSH Extension just doesn't have a way to know tell if the host you're trying to connect to is Linux or Windows.


Request for Cupertino-flavored pull-to-refresh look and feel

From analyzing one of our early shipping customers, we'd like for the app to have a Cupertino-flavored look&feel for pull-to-refresh.
Flutter now provides a Cupertino-flavored spinner. What may be remaining is guidance (framework support, example, etc) for how to do the full pull-to-refresh for Cupertino.
Thanks!

cc @cbracken

This won't block apps from shipping, so probably M3?

When implementing this feature, it would be super great if it was possible to use a custom widget as the spinner (both on iOS & Android).

Dupe of https://github.com/flutter/flutter/issues/11661.


bridge node panic on v0.11.0-rc11

Version of Git SHA
https://github.com/rollkit/local-celestia-devnet/releases/tag/v0.11.0-rc11
System OS
macOS
Installed tools
No response
Others
No response
Steps to reproduce it
Run local-celestia-devnet:
docker run --platform linux/amd64 -p 26657:26657 -p 26658:26658 -p 26659:26659 ghcr.io/rollkit/local-celestia-devnet:v0.11.0-rc11

Clone Polaris:
git clone https://github.com/gupadhyaya/polaris.git
cd polaris
git checkout polaris

Set auth token:
i’m using this as auth token, on rc11 devnet, but still getting same errors. ive manually set auth token and gotten same result
export AUTH_TOKEN=$(docker exec $(docker ps -q)  celestia bridge --node.store /bridge  auth admin)

Or change polaris/cosmos/init.sh AUTH_TOKEN to AUTH_TOKEN=$(docker exec $(docker ps -q)  celestia bridge --node.store /bridge  auth admin)
Or set it manually so that AUTH_TOKEN="stringauthtoken"
Run polaris
mage start

Expected result
posts to DA without an issue
Actual result
https://gist.github.com/jcstein/722600b3c210f642dc1fe4635f837983 - devnet errors
https://app.warp.dev/block/11BIRPSaovIA0NkK7a6yqp - polaris errors
Relevant log output
No response
Notes
Full logs here

panic: could not create directory "": mkdir : no such file or directory

Check your scripts

I think it's something wrong with how we start celestia-app 😿
I can look into this later 🖖

same here. i just revisited this.
running a rollkit x polaris rollup is how i was using the devnet, so i tried running polaris on top of rc11 and ran it with no issues, however, i still see the errors
logs from devnet

logs from rollkit*polaris rollup

There are 2 issues I found so far:
EVM Address
Genesis transaction written to "/home/celestia/.celestia-app/config/gentx/gentx-2f5a058f314c8c5eb44c049b55aad75802a19a2d.json"
/opt/entrypoint.sh: line 16: //--evm-address: No such file or directory

First, we need to make sure the evm-address is used or not in our opt
Home dir
It's changed to home/celestia by default rn due to 10001 user group change
rm: can't stat '/root/.celestia-app': Permission denied

Fixing them in #61 makes the local-devnet working again

thank you for looking into this and pulling out the context. going to take a look at the PR!


Support service pull request and flag name

Supports setting the service pull request and flag name.
Fixes #20.
Fixes #21.

@okkez I've implemented the ability to send the pull request and a flag name to Coveralls.
Do you have an estimation of when you can publish a new version of the library? :)

@okkez I've implemented the ability to send the pull request and a flag name to Coveralls.
Do you have an estimation of when you can publish a new version of the library? :)

@okkez I also added documentation of the available command-line flags to the README 👍
So you don't have to look at the source code to figure it out :)

@okkez I also added documentation of the available command-line flags to the README 👍
So you don't have to look at the source code to figure it out :)


Add more tags to the navigation

Mostly SEO value, but also one of the winners is an office and was not represented in the menu.

@hkdobrev How many images are tagged with these room types? I think we didn't include them as there wasn't enough for each?

@thomdorkings We have at least 2 for each, 3 for hallway. And one of the winners is an office.

I think we'll leave this for now. I'll discuss with Rose but other than SEO, I don't see a lot of benefit (how much furniture can you put in a hallway?). Is there a way to create the pages but not display links in the tags include?

@thomdorkings It's certainly possible. We can add an in_nav property to tags and use for the navigation, but it would still generate the tag page and include it in the potential sitemap (#5).

@thomdorkings To clarify you don't want these tags visible only in the main navigation or you don't want them visible in the project page either?

@hkdobrev I don't want the tags visible in the navigation at all, but we can generate the pages so they still appear in the sitemap / via google if we feel there is SEO benefit


Review request for the Kanban set up

[ ] We are a group of 2 members
[ ]  The Kanban Project link

Hi @otmaneechchafyky and @Reggeditt,
Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉
Highlights

[ ] All cards are assigned members :fireworks:
[ ] Points are distributed in a fair manner :rocket:
[ ] Information about the number of people and link to the project present :100:
[ ] All required categories are present in each header on the card :rocket:

Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


Zoomba.APILibrary - is there a way to ignore warnings as in requests library?

Running my RF scripts  with docker on internal servers I get lots of warnings:
/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py:1013: InsecureRequestWarning: Unverified HTTPS request is being made to host 'proxy'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
In requests library, keyword Create Session there is a possibility to use the disable_warnings argument, see here.
There is no Create Session keyword in Zoomba.APILibrary.
And the Call Post Request has no disable_warnings argument.
So is there another way to suppress warnings?

I think what you are looking for is Supress Insecure Request Warnings.

Fantastic!
That's exactly what I was looking for.
Implemented it before the  Call Post Request  and it works fine.
Thank you!


Little suggestion

Hey,
You know, it could be useful if we could also use Titan to "idlebot" in CSGO's menu to grind playtime a little.
Maybe?!

I don't know if that is too much for Titan as it is planned to just be a Report and Commend Bot and not a AllIn1Bot. I'll think about it.

Here You Go http://www.steamidlemaster.com/


Hybrid architecture support

Hybrid architecture support

A cluster allows for different operating systems and architectures

/kind feature

The scale.yml allows you to join nodes of different architectures。


Allow theme variables in package.json config object

Allows theme variables in package.json's config for global config handlebars access.
https://ghost.org/docs/api/v2/handlebars-themes/helpers/config/
  "name": "my-theme",
  "version": 1.0.0,
  "author": {
    "email"<EMAIL_ADDRESS>  }
  "config": {
    "theme":{
        "custom-user-defined-variable": 42
    }
  }
}```

For example,
`<div<EMAIL_ADDRESS>

Thanks for the PR 😄
There was a really nice proposal done around this here: https://github.com/TryGhost/Ghost/issues/9375 but it missed two things

multiple clear use cases
consideration of implications (e.g. how can this be misused?)

I've seen this proposal of adding config this way pop up a few times, but it's one of those things where people jump to a solution but we've not had chance to fully understand what the problems are that it's meant to solve.
Would love to hear more about your use cases and problems you've encountered.
Until it's clear that this is a) the best solution to a genuine problem and b) safe, it's not something we would add.

I've hit this wall now.
I wanted to centralize the social media links for codeuncode.com to a single config variable under the package.json file,
  "name": "my-theme",
  "version": 1.0.0,
  "author": {
    "email"<EMAIL_ADDRESS>  }
  "config": {
    "theme": {
        "social": {
          "spotify": "https://open.spotify.com/user/7rw605176hk0rk4nat102jfse?si=XjH7mF_QR1GT8CG_2YOb8w",
          "instagram": "https://www.instagram.com/a.g.aye/"
          .
          .
          .
      }
    }
  }

I'm trying to build a boilerplate theme with high accessibility using the design but it's no fun without having an easy way to customize.
Is there an alternative for global variables in handlebar theme templates besides this that I'm missing? Got on Ghost less than a week ago.

@amit-rirev you could try using the routes.yaml file to define a custom route. For example add this bellow the routes key:
  /custom/api/:
    permalink: /custom/api/
    template: api
    content_type: json

and then create a file called api.hbs that has json content. I've been using this with the Asgar theme
Hope it helps.

Thank you Stefan! This is very helpful, will try.
amit goyal
co-founder | rirev.com https://www.rirev.com/
(+91) 989 28 36 47 1
linkedin https://www.linkedin.com/in/amitsgoyal/ | twitter
https://twitter.com/layogtima | facebook
https://www.facebook.com/amit.s.goyal | instagram
https://www.instagram.com/a.g.aye/
On Wed, Jun 10, 2020 at 3:51 PM Stefan Cosma<EMAIL_ADDRESS>wrote:

@amit-rirev https://github.com/amit-rirev you could try using the
routes.yaml file to define a custom route. For example add this bellow
the routes key:
/custom/api/:
permalink: /custom/api/
template: api
content_type: json
and then create a file called api.hbs that has json content. I've been
using this with the Asgar theme https://github.com/stefanbc/Asgar
Hope it helps.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/TryGhost/Ghost/pull/11044#issuecomment-641907537, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ALVLVKWFGRE5TMJT4SHJF3LRV5NCFANCNFSM4IN6GVZQ
.


feat: add quiet flag

Description
This pull request changes the following:

add quiet flag to command that might need prompt to set flags with unknown values

Related Issues

Closes #580

:tada: This PR is included in version 0.31.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


clip_polyline_with_polygon inconsitency

Tested versions

Reproductible in 4.2.1, 4.1.1, 3.4.4

System information
Godot v4.2.1.stable - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1050 (NVIDIA; <IP_ADDRESS>23) - Intel(R) Core(TM) i3-4160 CPU @ 3.60GHz (4 Threads)
Issue description
The function clip_polyline_with_polygon gives inconsistent results regarding the position of the polyline and the polygon involved in the clipping.
When the triangle is above the horizontal line and they cross exactly at one point the clipping results in 2 lines. Which is good.
Whereas the result is 0 (no clipping/no crossing) when the triangle is below the horizontal line even though they cross at exactly one point.
Steps to reproduce
The MRP set up a simple scene with 2 polygons and 2 lines where polygons and lines cross. In one situation the clipping works but not in the other one.
Prints display points informations to show the inconsistency where both clipping result should be 2.
Minimal reproduction project (MRP)
TestClipPolyline.zip

Thanks for the clear MRP! Updating Clipper1 to Clipper2 as in https://github.com/godotengine/godot/pull/90153 fixes the direction of the clipped lines, and it makes the clipping of the line by the lower triangle result in one line, the original line. So it still doesn't fix this issue, but it's a small step in the right direction.


Dirichlet doesn't accept its own random variates as input to pdf

In [1]: import scipy.stats as ss

In [2]: d = ss.dirichlet([1,3,4])

In [3]: d.pdf(d.rvs())
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-3-a6f3762e83cf> in <module>()
----> 1 d.pdf(d.rvs())

/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/scipy/stats/_multivariate.py in pdf(self, x)
   1365
   1366     def pdf(self, x):
-> 1367         return self._dist.pdf(x, self.alpha)
   1368
   1369     def mean(self):

/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/scipy/stats/_multivariate.py in pdf(self, x, alpha)
   1260         """
   1261         alpha = _dirichlet_check_parameters(alpha)
-> 1262         x = _dirichlet_check_input(alpha, x)
   1263
   1264         out = np.exp(self._logpdf(x, alpha))

/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/scipy/stats/_multivariate.py in _dirichlet_check_input(alpha, x)
   1079                          "of entries as, or one entry fewer than, "
   1080                          "parameter vector 'a', but alpha.shape = %s "
-> 1081                          "and x.shape = %s." % (alpha.shape, x.shape))
   1082
   1083     if x.shape[0] != alpha.shape[0]:

ValueError: Vector 'x' must have either the same number of entries as, or one entry fewer than, parameter vector 'a', but alpha.shape = (3,) and x.shape = (1, 3).

In [4]: n = ss.norm()

In [5]: n.pdf(n.rvs())
Out[5]: 0.16964393208168185

Every distribution should pass this test:
for size in [None, 1, 2]:
    d.pdf(d.rvs(size=size)).shape == (() if size is None else (size,))

Related discussion, starting from https://github.com/scipy/scipy/pull/4984#discussion_r32984650

@ev-br Thanks for the link.  Sorry for not searching properly before my submission.  I do think this change and my other recent bug report should be made to keep dirichlet consistent with multidimensional_normal.

Agreed, this would be nice. If you can find a way of fixing it in a backwards-compatible way, that is :-).

@ev-br How can changing the behaviour be backwards compatible?  In my own code, I did this:
class dirichlet_replacement(ss._multivariate.dirichlet_frozen):

    def rvs(self, size=None, random_state=None):
        # This somehow fixes the behaviour of rvs.
        return super().rvs(size=size, random_state=random_state)

    def pdf(self, x):
        if len(x.shape) == 2:
            return super().pdf(x.T)
        return super().pdf(x)

I think you're going to have to at some point have a deprecation cycle if necessary and then change the behaviour.

I think you're going to have to at some point have a deprecation cycle

Exactly! The question is only the details of how to do it in a least disruptive way. Help is appreciated :-)

@ev-br How can I help?  I have no experience with your project, so I don't know how you've done deprecation cycles in the past.

Generally, I think we'd need to either add a keyword (https://github.com/scipy/scipy/pull/4984#discussion_r33011011 with default value being the old behavior) or a new class (dirichlet2 for a want of better name), make the old one raise a DeprecationWarning for at least a release or two, then remove the old one and rename the new one.
See, it's a prolonged affair :-). But the sooner it's started, the better IMO.
My preference would be to add a new class. This can also get other enhancements later on (stick breaking dirichlet, possibility of having some concentration values being zero etc).
Would you be tempted to send a PR?

@ev-br Sure, I'll look into it.  Would you be able to help me if I have questions?

Of course. No guarantees for specific time or time-to-responce, but time-for-open-source permitting, definitely.

@ev-br that sounds like my schedule too ;)

@ev-br I think this can be considered a bug. I think it's better to just fix it now with a message in the release notes than to let the bug persist for another six years : ) Still think we need a deprecation cycle or shall we just go for it?

@mdhaber Wooohoo!  Thanks for fixing this.  Does your pull request work for this https://github.com/scipy/scipy/issues/6006#issuecomment-202158618?

Wouldn't it make sense to repair this bug before introducing another distribution that would have to be deprecated?

I think gh-7689 is clearly a bug and deprecation should not be necessary in theory. Although, it also has been the behavior of many methods of several multivariate distributions for a long time so there might be genuine concerns of backward-compatibility.
@mdhaber @tupui @Kai-Striega @chrisb83 Should we consider this a bug and fix it without maintaining back-compat or should we first deprecate and then change the behavior?

I had in mind to propose just fixing it to the mailing list.
The concern about resolving it in a backward compatible way is likely why the bug has persisted despite being reported five years ago. Probably better to just go for it and ask users to add np.squeeze to the output if they need it to work how it used to.
But it would probably be better if the size bug were fixed in this new distribution regardless, yes. Sounds like we have a little extra time before branching to work with.

@mdhaber Would it be possible to make multivariate_beta vectorized like all of the scalar distributions?

I agreed above that we should correct rvs at the same time, although that will complicate this further : /
Adding vectorization is something that has been requested for many multivariate distributions, and it is an enhancement that can be added in a backward-compatible way at any time, so it's orthogonal to adding multivariate_beta .
(Just to be clear - what do you mean by vectorization? Currently, pdf accepts 2D x. Do you mean accept ND x?)

Adding vectorization is something that has been requested for many multivariate distributions, and it is an enhancement that can be added in a backward-compatible way at any time...

Yes, you're right.

(Just to be clear - what do you mean by vectorization? Currently, pdf accepts 2D x. Do you mean accept ND x?)

The distribution parameter alpha itself should be able to be N-dimensional.  For example, if it has shape (5,3 7), that should represent a 5 by 3 matrix of Dirichlet distributions, each of which has 7 parameters.  This is analogous to vectorization of scalar distributions.

This is a different question than what pdf accepts.

Yes, I see. This is the same sort of "vectorization" requested in gh-14958, gh-15627, gh-13450, gh-11422, right?
Would a concise generalization be "Vectorize multivariate distributions w.r.t. shape parameters?"?

Would a concise generalization be "Vectorize multivariate distributions w.r.t. shape parameters?"?

I guess you mean the shapes of the parameters?  In that case, yes.  (Shape parameters are a technical term in statistics.)

For example, I think df is a shape parameter of multivariate_t

It is.

and https://github.com/scipy/scipy/issues/15627 wants to vectorize w.r.t. df (i.e. pass in many separate df values and process them in parallel).

I think all of the parameters should have the same shape prefix.  Scalar parameters would have no suffix, vector parameters would have one dimension of suffix, square-matrix parameters would have two dimensions of suffix, etc.

Yup.

Almost. The testcase with size=1 fails but it's whole other issue: https://github.com/scipy/scipy/issues/7689 (pdf uses np.squeeze so all the dimensions with 1 get reduced)

gh-7689 only mentions the squeeze use in rvs. I didn't know about the pdf squeeze : /  We really should fix both. If we can't, I'm afraid we should delay the release of multivariate_beta.


fix memory_usage_test failure

Fixed the failure in memory_usage_test introduced by #19588 . By replacing strdup() with gpr_strdup().
Removed some unused code in resolving_lb_policy BTW.

Please revert the change other than the fix. From my understanding, we may need that branch in the future. Mark may have some new thoughts about it. Then we should at least have two separate PRs by splitting this one.

#19819 #19422


Checksum inconsistencies for JSON assets prevents files being skipped

Describe the bug
The latest version of Theme Kit does not seem to handle some JSON files. It calculates a different checksum locally than on the server, so files without changes are still uploaded/downloaded, even if they haven't changed.
To Reproduce
Steps to reproduce the behavior:

Add a new Simple theme for a store, and configure Theme Kit with its theme ID.
Run theme download.
Run theme download a second time.

Expected behavior
Most files should be skipped, but the JSON files will be re-downloaded.
Environment (please complete the following information):

Mac OS X
Theme Kit v1.1.1

Additional context
This may be theme dependent, or only affect newer themes – I previously tested against other themes and didn't run into this.

Might be something to do with encoding or escaping. But I prevented all my locales/*.json files redownloading for no apparent reason every time by deploying all the local files which weren't being skipped. Haven't noticed any side effects.


It's possible to set an isolated property asynchronously

Describe the bug
Isolated properties can be set asynchronously using a protocol.
To Reproduce
actor Act {
    var i = 0
}
let act = Act()

func bad() async {
    await act.i = 666 // Correctly rejected
}

protocol Proto: Actor {
    var i: Int { get set }
}
extension Act: Proto {}

func good() async {
    await (act as any Proto).i = 42 // BUG: Not rejected
    let aIndirect: any Proto = act
    await aIndirect.i = 777 // BUG: Not rejected
}

Expected behavior
The compiler should reject the "BUG: Not rejected" lines above.
Environment (please complete the following information):

OS: macOS 12.4
Xcode Version/Tag/Branch: Public Xcode 14.0 beta (14A5228q) (also Xcode 13.4.1)

Additional context
Isolated properties should not be set asynchronously. You have to create an async method to set the property. This avoids misuse like await obj.prop += 1. But this bug makes it possible.

We correctly reject this on main
/Users/ktoso/code/swift-project/swift/test/Concurrency/actor_isolation_bug.swift:7:7: error: unexpected note produced: mutation of this property is only permitted within the actor
  var i = 0
      ^
/Users/ktoso/code/swift-project/swift/test/Concurrency/actor_isolation_bug.swift:12:3: error: unexpected warning produced: no 'async' operations occur within 'await' expression
  await act.i = 666 // Correctly rejected
  ^
/Users/ktoso/code/swift-project/swift/test/Concurrency/actor_isolation_bug.swift:12:13: error: unexpected error produced: actor-isolated property 'i' can not be mutated from a non-isolated context
  await act.i = 666 // Correctly rejected
            ^

I'll add an explicit test for it tho

Confirmed, thanks for reporting -- what breaks it is the explicit  : Actor on the protocol, it likely short-circuts in conformance checks somehow. I'll look into this, been digging in conformances and isolation recently anyway.

For tracking rdar://95509917


Webpack SASS build failed

I added the soft-ui-design-system package via Yarn and tried to build the SASS via webpack. But build failed with a number of errors. Here are some warnings and errors i faced, what are the options to build the SASS here?
DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($spacer, 4)

More info and automated migrator: https://sass-lang.com/d/slash-div

    ╷
284 │   1: $spacer / 4,
    │      ^^^^^^^^^^^
    ╵
    node_modules\soft-ui-design-system\assets\scss\soft-design-system\_variables.scss 284:6  @import
    stdin 21:9                                                                               root stylesheet

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($spacer, 2)

More info and automated migrator: https://sass-lang.com/d/slash-div

    ╷
285 │   2: $spacer / 2,
    │      ^^^^^^^^^^^
    ╵
    node_modules\soft-ui-design-system\assets\scss\soft-design-system\_variables.scss 285:6  @import
    stdin 21:9                                                                               root stylesheet

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($spacer, 2)

More info and automated migrator: https://sass-lang.com/d/slash-div

    ╷
511 │ $headings-margin-bottom:      $spacer / 2 !default;
    │                               ^^^^^^^^^^^
    ╵
    node_modules\soft-ui-design-system\assets\scss\soft-design-system\_variables.scss 511:31  @import
    stdin 21:9                                                                                root stylesheet

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($spacer, 2)

More info and automated migrator: https://sass-lang.com/d/slash-div

     ╷
1076 │ $navbar-padding-y:                  $spacer / 2 !default;
     │                                     ^^^^^^^^^^^
     ╵
    node_modules\soft-ui-design-system\assets\scss\soft-design-system\_variables.scss 1076:37  @import
    stdin 21:9                                                                                root stylesheet

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($nav-link-height - $navbar-brand-height, 2)

More info and automated migrator: https://sass-lang.com/d/slash-div

     ╷
1087 │ $navbar-brand-padding-y:            ($nav-link-height - $navbar-brand-height) / 2 !default;
     │                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     ╵
    node_modules\soft-ui-design-system\assets\scss\soft-design-system\_variables.scss 1087:37  @import
    stdin 21:9                                                                                root stylesheet

 error  in ./node_modules/soft-ui-design-system/assets/scss/soft-design-system.scss

Module build failed (from ./node_modules/css-loader/index.js):
ModuleBuildError: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
SassError: Top-level selectors may not contain the parent selector "&".
   ╷
15 │   &.bg-gradient-faded-#{$prop}-vertical{
   │   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   ╵
  node_modules\soft-ui-design-system\assets\scss\soft-design-system\_gradients.scss 15:3  @import
  node_modules\soft-ui-design-system\assets\scss\soft-design-system\theme.scss 34:9       @import

 error  in ./node_modules/soft-ui-design-system/assets/scss/soft-design-system.scss

Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
SassError: Top-level selectors may not contain the parent selector "&".
   ╷
15 │   &.bg-gradient-faded-#{$prop}-vertical{
   │   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   ╵
  node_modules\soft-ui-design-system\assets\scss\soft-design-system\_gradients.scss 15:3  @import
  node_modules\soft-ui-design-system\assets\scss\soft-design-system\theme.scss 34:9       @import

Hello @nasirkhan,
Thank you for using our products, we don't usually use Yarn to compile our products SCSS. I will talk with my colleagues and maybe in the future product updates, we will integrate the Yarn besides Gulp.
Please let us know if we can help you with anything else.
All the best,
Stefan

Hi, I use Koala for compile and I got the same error. No changes, just downloaded version.
Error: Base-level rules cannot contain the parent-selector-referencing character '&'.
        on line 15 of ***/soft-ui-design-system-main/assets/scss/soft-design-system/_gradients.scss
        from line 42 of ***/soft-ui-design-system-main/assets/scss/soft-design-system/theme.scss
        from line 27 of ***\soft-ui-design-system-main\assets\scss\soft-design-system.scss

The deprecation warnings are not caused by yarn, it is caused by using Dart Sass (which is now the reference implementation of Sass). Dart Sass is deprecating "/" as a divide symbol. We are currently in the transition period, so it is printing deprecation warnings (see https://sass-lang.com/documentation/breaking-changes/slash-div)
This can be fixed by either changing to math.div() (backward compatibility issues) or wrapping all division operations in a calc().


Make sure process parameters are correctly quoted

What are you trying to accomplish?
With #9678, the nuget updated gained support for package lock files.
However, it fails when the csproj path contains spaces (see https://github.com/dependabot/dependabot-core/pull/9678#issuecomment-2376037446).
This now changes the ProcessEx helper to accept a list of args (instead of just a string). This should fix this issue for the lock file update as well as several other places.
Anything you want to highlight for special attention from reviewers?
My initial thought was to simply escape the strings myself, but ProcessStartInfo has a constructor that also takes an argument list, so I opted to use that one and leave the escaping to the system.
Also, I didn't just want to fix the lock file updater, because I found other places where paths (which can possibly contains spaces) weren't correctly escaped. With that API change, it should no longer be an issue, also for new usages of the ProcessEx helper.
How will you know you've accomplished your goal?
I've updated all the call sites of the old extension by passing the args as array. One was even creating an array and joining it with a string.
Checklist

[ ] I have run the complete test suite to ensure all tests and linters pass.
[ ] I have thoroughly tested my code changes to ensure they work as expected, including adding additional tests for new functionality.
[x] I have written clear and descriptive commit messages.
[x] I have provided a detailed description of the changes in the pull request, including the problem it addresses, how it fixes the problem, and any relevant details about the implementation.
[x] I have ensured that the code is well-documented and easy to understand.

Unfortunately, I was unable to run the tests. Starting the development shell fails with the following error:
E: Unable to locate package powershell

@brettfo Thanks for the review. Do I need to do anything else to get this merged?

@brettfo

You're good from your end, I'm talking to folks on my side to get this merged. Should be soon.

Cool, thanks!

What was your process to see this error? I suspect it's related to #10521 that was merged yesterday that adds a PowwerShell dependency to the NuGet updater image, but only in certain circumstances. Building the dev shell with bin/docker-dev-shell nuget --rebuild succeeds for me and even has PowerShell installed.

Yea, I just ran bin/docker-dev-shell nuget and it started building the docker image, eventually failing with the aforementioned error.
I just tried it again with --rebuild leading to the same error:
=> [ 2/15] RUN source /etc/os-release  && curl --location --output /tmp/packages-microsoft-prod.deb "https://packages.microsoft.com/config/ubuntu/$VERSION_ID/packages-microsoft-prod.deb"  && d  0.6s
 => ERROR [ 3/15] RUN apt-get update  && apt-get install -y --no-install-recommends     jq     libicu-dev=70.1-2     powershell  && rm -rf /var/lib/apt/lists/*                                    4.2s
------
 > [ 3/15] RUN apt-get update  && apt-get install -y --no-install-recommends     jq     libicu-dev=70.1-2     powershell  && rm -rf /var/lib/apt/lists/*:
0.187 Get:1 https://packages.microsoft.com/ubuntu/22.04/prod jammy InRelease [3,632 B]
0.244 Get:2 https://packages.microsoft.com/ubuntu/22.04/prod jammy/main all Packages [1,261 B]
0.258 Get:3 http://ports.ubuntu.com/ubuntu-ports jammy InRelease [270 kB]
0.270 Get:4 https://packages.microsoft.com/ubuntu/22.04/prod jammy/main amd64 Packages [173 kB]
0.310 Get:5 https://packages.microsoft.com/ubuntu/22.04/prod jammy/main armhf Packages [15.6 kB]
0.312 Get:6 https://packages.microsoft.com/ubuntu/22.04/prod jammy/main arm64 Packages [43.5 kB]
0.401 Get:7 http://ports.ubuntu.com/ubuntu-ports jammy-updates InRelease [128 kB]
0.439 Get:8 http://ports.ubuntu.com/ubuntu-ports jammy-backports InRelease [127 kB]
0.483 Get:9 http://ports.ubuntu.com/ubuntu-ports jammy-security InRelease [129 kB]
0.521 Get:10 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 Packages [17.2 MB]
1.692 Get:11 http://ports.ubuntu.com/ubuntu-ports jammy/restricted arm64 Packages [24.2 kB]
1.693 Get:12 http://ports.ubuntu.com/ubuntu-ports jammy/main arm64 Packages [1,758 kB]
1.755 Get:13 http://ports.ubuntu.com/ubuntu-ports jammy/multiverse arm64 Packages [224 kB]
1.764 Get:14 http://ports.ubuntu.com/ubuntu-ports jammy-updates/universe arm64 Packages [1,387 kB]
1.812 Get:15 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main arm64 Packages [2,265 kB]
1.887 Get:16 http://ports.ubuntu.com/ubuntu-ports jammy-updates/restricted arm64 Packages [2,475 kB]
2.026 Get:17 http://ports.ubuntu.com/ubuntu-ports jammy-updates/multiverse arm64 Packages [29.5 kB]
2.083 Get:18 http://ports.ubuntu.com/ubuntu-ports jammy-backports/main arm64 Packages [110 kB]
2.135 Get:19 http://ports.ubuntu.com/ubuntu-ports jammy-backports/universe arm64 Packages [35.0 kB]
2.140 Get:20 http://ports.ubuntu.com/ubuntu-ports jammy-security/multiverse arm64 Packages [24.1 kB]
2.145 Get:21 http://ports.ubuntu.com/ubuntu-ports jammy-security/restricted arm64 Packages [2,405 kB]
2.426 Get:22 http://ports.ubuntu.com/ubuntu-ports jammy-security/universe arm64 Packages [1,104 kB]
2.430 Get:23 http://ports.ubuntu.com/ubuntu-ports jammy-security/main arm64 Packages [1,994 kB]
2.645 Fetched 31.9 MB in 3s (12.6 MB/s)
2.645 Reading package lists...
3.398 Reading package lists...
3.979 Building dependency tree...
4.098 Reading state information...
4.109 E: Unable to locate package powershell
------
Dockerfile:12
--------------------
  11 |      && rm /tmp/packages-microsoft-prod.deb
  12 | >>> RUN apt-get update \
  13 | >>>  && apt-get install -y --no-install-recommends \
  14 | >>>     jq \
  15 | >>>     libicu-dev=70.1-2 \
  16 | >>>     powershell \
  17 | >>>  && rm -rf /var/lib/apt/lists/*
  18 |
--------------------
ERROR: failed to solve: process "/bin/bash -o pipefail -c apt-get update  && apt-get install -y --no-install-recommends     jq     libicu-dev=70.1-2     powershell  && rm -rf /var/lib/apt/lists/*" did not complete successfully: exit code: 100

@ffried I wonder if something is happening during the download and install of packages-microsoft-prod.deb.  Can you run this and look up a few lines from your previous log snippet?  I want to make sure that deb file is getting installed correctly:
DOCKER_BUILD_ARGS="--progress=plain" bin/docker-dev-shell nuget --rebuild

@brettfo I just cleaned my build cache and ran the command you provided. It first builds the dependabot-updater-core image (successfully). Then it fails when building the dependabot-updater-nuget:
#0 building with "desktop-linux" instance using docker driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 2.06kB done
#1 DONE 0.0s

#2 [internal] load metadata for ghcr.io/dependabot/dependabot-updater-core:latest
#2 DONE 0.0s

#3 [internal] load .dockerignore
#3 transferring context: 398B done
#3 DONE 0.0s

#4 [internal] load build context
#4 DONE 0.0s

#5 [ 1/15] FROM ghcr.io/dependabot/dependabot-updater-core:latest@sha256:abfdbe2f038d34ae0a36da57403f679703e19b4279fa1da620780dfc0a21ab36
#5 resolve ghcr.io/dependabot/dependabot-updater-core:latest@sha256:abfdbe2f038d34ae0a36da57403f679703e19b4279fa1da620780dfc0a21ab36 done
#5 DONE 0.0s

#6 importing cache manifest from ghcr.io/dependabot/dependabot-updater-nuget
#6 inferred cache manifest type: application/vnd.docker.distribution.manifest.v2+json done
#6 DONE 0.8s

#4 [internal] load build context
#4 transferring context: 15.08MB 0.2s done
#4 DONE 0.2s

#5 [ 1/15] FROM ghcr.io/dependabot/dependabot-updater-core:latest@sha256:abfdbe2f038d34ae0a36da57403f679703e19b4279fa1da620780dfc0a21ab36
#5 DONE 0.2s

#7 [ 2/15] RUN source /etc/os-release  && curl --location --output /tmp/packages-microsoft-prod.deb "https://packages.microsoft.com/config/ubuntu/$VERSION_ID/packages-microsoft-prod.deb"  && dpkg -i /tmp/packages-microsoft-prod.deb  && rm /tmp/packages-microsoft-prod.deb
#7 0.091   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
#7 0.091                                  Dload  Upload   Total   Spent    Left  Speed
100  3692  100  3692    0     0  16451      0 --:--:-- --:--:-- --:--:-- 16408
#7 0.333 Selecting previously unselected package packages-microsoft-prod.
#7 0.346 (Reading database ... 15049 files and directories currently installed.)
#7 0.346 Preparing to unpack .../packages-microsoft-prod.deb ...
#7 0.348 Unpacking packages-microsoft-prod (1.0-ubuntu22.04.1) ...
#7 0.357 Setting up packages-microsoft-prod (1.0-ubuntu22.04.1) ...
#7 DONE 0.5s

#8 [ 3/15] RUN apt-get update  && apt-get install -y --no-install-recommends     jq     libicu-dev=70.1-2     powershell  && rm -rf /var/lib/apt/lists/*
#8 0.189 Get:1 https://packages.microsoft.com/ubuntu/22.04/prod jammy InRelease [3,632 B]
#8 0.213 Get:2 http://ports.ubuntu.com/ubuntu-ports jammy InRelease [270 kB]
#8 0.246 Get:3 https://packages.microsoft.com/ubuntu/22.04/prod jammy/main all Packages [1,261 B]
#8 0.271 Get:4 https://packages.microsoft.com/ubuntu/22.04/prod jammy/main amd64 Packages [173 kB]
#8 0.316 Get:5 https://packages.microsoft.com/ubuntu/22.04/prod jammy/main arm64 Packages [43.5 kB]
#8 0.319 Get:6 https://packages.microsoft.com/ubuntu/22.04/prod jammy/main armhf Packages [15.6 kB]
#8 0.357 Get:7 http://ports.ubuntu.com/ubuntu-ports jammy-updates InRelease [128 kB]
#8 0.394 Get:8 http://ports.ubuntu.com/ubuntu-ports jammy-backports InRelease [127 kB]
#8 0.430 Get:9 http://ports.ubuntu.com/ubuntu-ports jammy-security InRelease [129 kB]
#8 0.466 Get:10 http://ports.ubuntu.com/ubuntu-ports jammy/multiverse arm64 Packages [224 kB]
#8 0.493 Get:11 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 Packages [17.2 MB]
#8 1.385 Get:12 http://ports.ubuntu.com/ubuntu-ports jammy/main arm64 Packages [1,758 kB]
#8 1.423 Get:13 http://ports.ubuntu.com/ubuntu-ports jammy/restricted arm64 Packages [24.2 kB]
#8 1.423 Get:14 http://ports.ubuntu.com/ubuntu-ports jammy-updates/restricted arm64 Packages [2,475 kB]
#8 1.544 Get:15 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main arm64 Packages [2,265 kB]
#8 1.567 Get:16 http://ports.ubuntu.com/ubuntu-ports jammy-updates/universe arm64 Packages [1,387 kB]
#8 1.624 Get:17 http://ports.ubuntu.com/ubuntu-ports jammy-updates/multiverse arm64 Packages [29.5 kB]
#8 1.679 Get:18 http://ports.ubuntu.com/ubuntu-ports jammy-backports/main arm64 Packages [110 kB]
#8 1.733 Get:19 http://ports.ubuntu.com/ubuntu-ports jammy-backports/universe arm64 Packages [35.0 kB]
#8 1.739 Get:20 http://ports.ubuntu.com/ubuntu-ports jammy-security/multiverse arm64 Packages [24.1 kB]
#8 1.745 Get:21 http://ports.ubuntu.com/ubuntu-ports jammy-security/universe arm64 Packages [1,104 kB]
#8 1.870 Get:22 http://ports.ubuntu.com/ubuntu-ports jammy-security/restricted arm64 Packages [2,405 kB]
#8 2.141 Get:23 http://ports.ubuntu.com/ubuntu-ports jammy-security/main arm64 Packages [1,994 kB]
#8 2.309 Fetched 31.9 MB in 2s (14.6 MB/s)
#8 2.309 Reading package lists...
#8 2.879 Reading package lists...
#8 3.439 Building dependency tree...
#8 3.576 Reading state information...
#8 3.588 E: Unable to locate package powershell
#8 ERROR: process "/bin/bash -o pipefail -c apt-get update  && apt-get install -y --no-install-recommends     jq     libicu-dev=70.1-2     powershell  && rm -rf /var/lib/apt/lists/*" did not complete successfully: exit code: 100
------
 > [ 3/15] RUN apt-get update  && apt-get install -y --no-install-recommends     jq     libicu-dev=70.1-2     powershell  && rm -rf /var/lib/apt/lists/*:
1.679 Get:18 http://ports.ubuntu.com/ubuntu-ports jammy-backports/main arm64 Packages [110 kB]
1.733 Get:19 http://ports.ubuntu.com/ubuntu-ports jammy-backports/universe arm64 Packages [35.0 kB]
1.739 Get:20 http://ports.ubuntu.com/ubuntu-ports jammy-security/multiverse arm64 Packages [24.1 kB]
1.745 Get:21 http://ports.ubuntu.com/ubuntu-ports jammy-security/universe arm64 Packages [1,104 kB]
1.870 Get:22 http://ports.ubuntu.com/ubuntu-ports jammy-security/restricted arm64 Packages [2,405 kB]
2.141 Get:23 http://ports.ubuntu.com/ubuntu-ports jammy-security/main arm64 Packages [1,994 kB]

3.588 E: Unable to locate package powershell
------
Dockerfile:12
--------------------
  11 |      && rm /tmp/packages-microsoft-prod.deb
  12 | >>> RUN apt-get update \
  13 | >>>  && apt-get install -y --no-install-recommends \
  14 | >>>     jq \
  15 | >>>     libicu-dev=70.1-2 \
  16 | >>>     powershell \
  17 | >>>  && rm -rf /var/lib/apt/lists/*
  18 |
--------------------
ERROR: failed to solve: process "/bin/bash -o pipefail -c apt-get update  && apt-get install -y --no-install-recommends     jq     libicu-dev=70.1-2     powershell  && rm -rf /var/lib/apt/lists/*" did not complete successfully: exit code: 100```

Hi @ffried , I think your fork seems out-of-date with dependabot core main branch, can you please trying rebasing with dependabot-core so that i can try to do a release.

@sachin-sandhu I just rebased both main and the branch for this PR.

@ffried , i can see some issues while testing https://github.com/dependabot/dependabot-core/pull/10676#issuecomment-2377617691 ,i have deferred deploy and merge for now, Please let me know once you are good and we can resume.

@sachin-sandhu Not sure what I can do here. The failure seems completely unrelated to my changes.

@sachin-sandhu I'm also getting this error on main - so it's definitively not related to my changes.

HI @brettfo, Can you please provide inputs on https://github.com/dependabot/dependabot-core/pull/10676#issuecomment-2377617691
cc @ffried

@sachin-sandhu I think both of those things are unrelated to these changes.
In the first case (unable to build Dockerfile): I can build it locally and the CI is passing which means it can be built on more than my machine.  There must be some weird caching issue with the other user's Docker instance, but I can't fathom what it could possibly be.
In the second case, that looks like we're trying to update a file that we didn't report earlier, but from reading the code that should be impossible: we only check things previously reported as a dependency_file and I've even added a smoke-test to verify that package.lock.json files work: dependabot/smoke-tests#231
In short, I don't see any blockers to this getting merged and deployed.

@brettfo @sachin-sandhu One thing that just came to my mind is that I'm working on an Apple Silicon MacBook Pro. So it's ARM architecture. Maybe that's the issue with the Docker build.

@brettfo @sachin-sandhu One thing that just came to my mind is that I'm working on an Apple Silicon MacBook Pro. So it's ARM architecture. Maybe that's the issue with the Docker build.

Good call, that's exactly it.  I checked the feed and there is no arm64 version of the powershell package, just amd64 which is what I'm using locally and the images used in production.

Edit: it appears there is a .tar.gz binary release for arm64, but not an installable .deb file. I'll see how difficult it would be to detect the architecture in the Dockerfile and unpack the binaries in that case.

One option could be to use the predefined build arguments to determine the arch: https://docs.docker.com/build/building/variables/#multi-platform-build-arguments

@ffried I've filed issue #10689 to track enabling arm64 support for the updater image.

@ffried We're getting ready to merge this, could you please update your fork/branch to the latest in main?

@brettfo Done


console attach

This is an RFC for attaching to the container's console. @stgraber, it would be cool if you could test this.
Note, the code duplication here in e.g. container_exec.go and container_console.go is intentional. This code will likely grow when we add support for retrieving the container's ringbuffer once this is merged in liblxc at which point the codepaths will diverge a lot more. Also, I want to keep the codepaths separate for a few feature releases in case of bugs. This will make it a lot easier to reason about what is going on. The abstraction level in container_exec.go is high enough already. In a few months we can then abstract/merge the codepaths if it makes sense.
Signed-off-by: Christian Brauner<EMAIL_ADDRESS>

@stgraber, especially import is if it works nicely remotely.

The control websocket handler might not be needed for attaching a console.

Looking at the original issue we're missing two bits of API and plumbing here too:

GET /1.0/containers/NAME/console (download any existing console output, don't clean it)
DELETE 1/.0/containers/NAME/console (clean any existing console output)

I suspect this is currently on hold because the console ringbuffer code hasn't been merged yet, but all the API work could still be done already and have it work if the user manually set lxc.console.logfile through raw.lxc. Then once we have the new liblxc console API we can make LXD clever and use that if available, falling back on the lxc.console.logfile codepath.

The point of this commit is to enable testing of the console feature. As requested in the rfc it would be good if you could test whether this works nicely remotely in addition to my testing since we can't really test console attach in Jenkins nicely. This is not a mergeable commit.
As said on IRC the sigwinch handling can be dropped. I'm in favour however of giving users the ability to define more then just /dev/console. It's definitely a feature I would want.
Even more necessary to me seems to let users specify the escape sequence. I use that always since I bind Ctrl+a to tmux and don't like typing Ctrl+a Ctrl+a. If you want to enter Ctrl+a itself you now need to type it three times. So having users using their custom escape sequence is really not a big deal API wise. We can also move this into the extra console args.

My point with the escape sequence is that this shouldn't be an API feature but a client feature.
The command line client is what should catch the escape sequence and then disconnect from websocket and restore the terminal state. It's not something that the LXD server should be handling.

For the tty option, I don't see how it makes sense given that LXD doesn't let you set more than one tty in the first place. And I don't want to change LXD to let you set more than one tty because then we're going to run into problems with the various images again.

Connection message when connecting to the console is a bit messed up:
stgraber@castiana:~/data/code/lxc/lxd (stgraber/master)$ lxc console snapcraft

Connected to tty 0
                  Type <Ctrl+a q> to exit the console, <Ctrl+a Ctrl+a> to enter Ctrl+a itself

Ubuntu 16.04.3 LTS snapcraft console

snapcraft login:

stgraber@shell01:~$ ./client console castiana:snapcraft
error: Failed running command: "attaching to the container failed"
error: exit status 255

Is what I get if I try to attach to a container that has an existing console session.

Remote console seems to otherwise work fine:
stgraber@shell01:~$ ./client console castiana:test

Connected to tty 0
                  Type <Ctrl+a q> to exit the console, <Ctrl+a Ctrl+a> to enter Ctrl+a itself

CentOS Linux 7 (Core)
Kernel 4.13.0-16-generic on an x86_64

test login:
CentOS Linux 7 (Core)
Kernel 4.13.0-16-generic on an x86_64

test login:

@stgraber, thanks for the feedback!

Connection message when connecting to the console is a bit messed up:

stgraber@castiana:~/data/code/lxc/lxd (stgraber/master)$ lxc console snapcraft

Connected to tty 0
Type <Ctrl+a q> to exit the console, <Ctrl+a Ctrl+a> to enter Ctrl+a itself

Ubuntu 16.04.3 LTS snapcraft console

snapcraft login:

There's probably not a lot one can do about this. It is caused by the terminal being switched to raw mode.

stgraber@shell01:~$ ./client console castiana:snapcraft
error: Failed running command: "attaching to the container failed"
error: exit status 255
Is what I get if I try to attach to a container that has an existing console session.

We can make the error message nicer in that we report something like "Attaching the container's console failed". However, the go-lcx bindings for Console() aren't that nice so we can't nicely detect specific error conditions. Specifically, go-lxc's Console() doesn't propagate the errno code for the underlying C function but rather just returns a bool. So we won't be able to catch e.g. EBUSY.

stgraber@shell01:~$ ./client console castiana:snapcraft
error: Failed running command: "attaching to the container failed"
error: exit status 255
Is what I get if I try to attach to a container that has an existing console session.

We can make the error message nicer in that we report something like "Attaching the container's > console failed". However, the go-lcx bindings for Console() aren't that nice so we can't nicely detect specific error conditions. Specifically, go-lxc's Console() doesn't propagate the errno code for the underlying C function but rather just returns a bool. So we won't be able to catch e.g. EBUSY.

If we really care we can break API in go-lxc and change the return value otherwise I fear the error stays the same.

Looking at the original issue we're missing two bits of API and plumbing here too:

GET /1.0/containers/NAME/console (download any existing console output, don't clean it)
DELETE 1/.0/containers/NAME/console (clean any existing console output)

I suspect this is currently on hold because the console ringbuffer code hasn't been merged yet, but all the API work could still be done already and have it work if the user manually set lxc.console.logfile

Well, I have this already working with lxc.console.logfile. However without the ringbuffer we can only support GET not DELETE. We can't safely truncate the logfile from LXD and we can't simply remove it either. So yes, GET will work but I'm blocking DELETE in this case.
through raw.lxc. Then once we have the new liblxc console API we can make LXD clever and use that if available, falling back on the lxc.console.logfile codepath.

I don't know why Appveyor does what it does. It tries to download a package and then fails. No idea why.

Ok, I got Appveyor clean as well.

error: exit status 255

I am guessing that 255 comes from exit(-1) being called somewhere.
However, Unix processes should only exit with positive values between 0 and 127.  The next bit is used to indicate whether they were terminated by a signal; exit status 255 therefore means "killed by signal number 127" (which doesn't exist).  Demo:
$ ( sleep 60; echo "Exit code $?" ) & sleep 1; killall -6 sleep
[1] 16424
-bash: line 26: 16426 Aborted                 (core dumped) sleep 60
Exit code 134    <<< = 128+6

So it would better to use a positive exit code: e.g.
// was: exit(rc);
if (rc < 0) { exit(1); }

The -1 comes from forkconsole which exits with -1 on error. liblxc itself will properly report back to the caller -EBUSY and other errno codes. The lxc client tool lxc console exits with 1 and not 255 so this is really not a big deal.

And btw, we have the 128+n logic in lxc exec when I implemented signal forwarding. :)

I expanded the tests quite a bit. So the test commit needs another review.

jenkins: test this please

jenkins: test this please

Connection message when connecting to the console is a bit messed up:

stgraber@castiana:~/data/code/lxc/lxd (stgraber/master)$ lxc console snapcraft

Connected to tty 0
                  Type <Ctrl+a q> to exit the console, <Ctrl+a Ctrl+a> to enter Ctrl+a itself

Ubuntu 16.04.3 LTS snapcraft console

snapcraft login:

I've sent a fix for this to liblxc: https://github.com/lxc/lxc/pull/1916 . Now it displays:
a1 login: chb@conventiont|~
> lxc console a1

Connected to tty 0
Type <Ctrl+a q> to exit the console, <Ctrl+a Ctrl+a> to enter Ctrl+a itself

Ubuntu 17.10 a1 console

a1 login:

So one thing we should still sort out is the way we handle detach here.
I'd prefer it if there was a way to tell liblxc to not setup any disconnect command, having it detach when it gets a disconnect on stdin (SIGPIPE).
Then on the LXD side we'd just disconnect when we get a websocket disconnect. The client tool would then be able to handle the disconnect key binding whichever way it wants.

So one thing we should still sort out is the way we handle detach here.

I'd prefer it if there was a way to tell liblxc to not setup any disconnect command, having it detach when it gets a disconnect on stdin (SIGPIPE).

There is a way to already do that by simply passing -1 to lxc_console().
Then on the LXD side we'd just disconnect when we get a websocket disconnect. The client tool would then be able to handle the disconnect key binding whichever way it wants.
Yeah, I've been looking into this today. We basically need a way to mirror the inputs on the client side. The client tool however is not exposed to the websockets at all. If at all we need to handle this in the client API that is in client/lxd_containers.go:ContainerConsole() as this is where the websocket shovels the data around. However, I'm not super convinced that the easiest way isn't just to have liblxc handle the detach this is absolutely straightforward and easy to do. But I'm ok with doing it on the client side.

Also for the 2.20 release we might just go with having Ctrl+a q being the default way to detach.

Doing it in the client is going to be cleaner when folks are connecting with their own code from other OSes, that way they can put a disconnect button if they want or whatever.

At the API level I see a few ways of doing it:

Add a channel to the struct, when the client closes the channel, we disconnect
Have the client call op.Cancel() and do the disconnect on the server side as a canceler on the operation

Doing it in the client is going to be cleaner when folks are connecting with their own code from other OSes, that way they can put a disconnect button if they want or whatever.

How would it be a problem if they simply need to give a single character that get's passed to liblxc?

At the API level I see a few ways of doing it:

Add a channel to the struct, when the client closes the channel, we disconnect

Do we need an additional channel? Can't we use the control channel for that?

Have the client call op.Cancel() and do the disconnect on the server side as a canceler on the operation

Both seem fine. The latter sounds nice since we have that infrastructure in place now but I haven't really looked into it.
Just to clarify by client you mean client API not client (command line) tool.

When I say "channel", I mean "channel", not socket :)

It'd be a go channel in the console struct, that when you close has a goroutine in the client codebase close the websockets. The server would then disconnect from the console when it notices the websockets are disconnected.

So for the channel, my suggestion is:

Add chDisconnect (chan bool) to ContainerConsoleArgs
In lxc/console.go, handle the magic keybinding, when it's pressed, close(chDisconnect)
In client/lxd_containers.go, have a goroutine that blocks on chDisconnect, once the channel is closed, have that go routine close both websockets
In the daemon code, handle the disconnect of the websockets, when it happens, close the console.

This behavior would be pretty similar to what we do for Exec today. If we go with the cancelable operation, then we should also add that ability to the exec codebase for consistency.

The advantage of the channel approach is that for alternative client implementations (pylxd or others), it's really as simple as having an fd to the console. You close it and it disconnects everything and you're done.

When I say "channel", I mean "channel", not socket :)

I think you're misunderstanding what I wanted to use the control channel for. I'll illustrate it in the patch I push on top here then we can discuss. :)

I don't understand why you're adding a new command to the control socket for detach.
Can't you just detach when the websocket is closed, that way the client just closes the websocket and we're done, no need to send a custom command on top of that.

The console command itself would still hang around though wouldn't it since the fd is still in the container's epoll loop.

Iiuc, it's similar to exec. In the case of a remote hangup we need to send a signal to the command as well. And there too we need to use the control channel. The websocket mirror and the {exec,console} command would otherwise still hang around. But I might be wrong about this websocket stuff.

My point being you can only detach from the console if the container detects an exit control sequence or you send the console command signal (SIGTERM/SIGHUP) and there's two ways we can do this: Use the control channel or pass around PID into the websocket mirror and when an unexpected websocket disconnect happens send a signal from there. I don't know what this would get us though. We have the control channel available and we use it already in exec in a similar fashion.

What we need is a SIGTERM handling in liblxc's console code. So callers can send SIGTERM to the console session which will cause liblxc to exit the mainloop, perform cleanup operations and exit with 0. What I expect implementation wise is.

Generalize the signal handling code in the console code path so it does not just handle SIGWINCH but also other signals.
add SIGTERM to the blocked signals
have the signal fd listen for SIGTERM
on SIGTERM exit the mainloop

So here's another approach:

Avoid an explicit control socket message send over the control socket. Instead, on detach simply close the control socket connection in the client and write a normal close message. Then send SIGTERM to the console session and exit cleanly. So in client/lxd_containers.go:ConsoleContainer we do:

	// Detach from console.
	go func(consoleDisconnect <-chan bool) {
		<-consoleDisconnect
		msg := websocket.FormatCloseMessage(websocket.CloseNormalClosure, "Detaching from console")
		// We don't care if this fails. This is just for convenience.
		controlConn.WriteMessage(websocket.CloseMessage, msg)
		controlConn.Close()
	}(args.ConsoleDisconnect)

And on the daemon side we will:
			s.connsLock.Lock()
			conn := s.conns[-1]
			s.connsLock.Unlock()

			_, r, err := conn.NextReader()
			if err != nil {
				logger.Debugf("Got error getting next reader %s", err)
				err := syscall.Kill(consolePid, syscall.SIGTERM)
				if err != nil {
					logger.Debugf("Failed to send SIGTERM to pid %d", consolePid)
				} else {
					logger.Debugf("Sent SIGTERM to pid %d", consolePid)
				}
				return
			}

@brauner is this ready for another review?
Also, how well will this work with LXC 2.0/2.1? Will we basically just be getting the mangled connection message until the next bugfix release or are we missing more than that?

@stgraber, this is ready for another review otherwise everything is there in liblxc.

@stgraber, this will work with all liblxc versions we care about. Sending SIGTERM is fine even now it's just that I implemented proper SIGTERM handling in the console codepath now to make it way cleaner. That PR is merged and backported to stable-2.{0,1}. :)

jenkins: test this please

Pretty happy with this, looks like a pretty complete solution, got tests, only a few tiny things to polish here and there and then some bikeshedding on the use of gotos in Go :)

@stgraber, updated. :)


Seems like doesn't compile with 0.8.4 solidity.

Compiling 2 files with 0.8.4
TypeError: Unary operator - cannot be applied to type uint64
   --> @lazyledger/protobuf3-solidity-lib/contracts/ProtobufLib.sol:255:43:
    |
255 |         uint64 zigzag_val = (val >> 1) ^ (-(val & 1));
    |                                           ^^^^^^^^^^

TypeError: Unary operator - cannot be applied to type uint64
   --> @lazyledger/protobuf3-solidity-lib/contracts/ProtobufLib.sol:281:43:
    |
281 |         uint64 zigzag_val = (val >> 1) ^ (-(val & 1));
    |                                           ^^^^^^^^^^

TypeError: Explicit type conversion not allowed from "int32" to "uint64".
   --> @lazyledger/protobuf3-solidity-lib/contracts/ProtobufLib.sol:658:30:
    |
658 |         return encode_varint(uint64(n));
    |                              ^^^^^^^^^

Error HH600: Compilation failed

We have fixed it here, but also introduced some unnecessary changes, let me know if I need create a pull request.
https://github.com/andrewshvv/protobuf3-solidity-lib
Changes:

support of sol ^0.8.0
added waffle instead of truffle
added hardhat, because of console.log and better revert messages
added chai, and rewrote tests a bit

Thanks, that's amazing! A PR would definitely be appreciated. Could you open one for each of the above 4 features, so they can be reviewed and tested in isolation?

hey, I remember about this, just didn't have the time to break it down yet.


Publish updated version to pub.dev

Hi! Would it be possible for you to release a new version of the library to pub.dev?
It seems like the master branch here has new commits, among which for example one that enables the user of the library to set the behavior to translucent whereas the version on pub.dev is stuck at the commit when null-safety was added.

Hi Saverio Murgia,
I have just released a new version. Please check it out:
https://pub.dev/packages/gesture_x_detector/versions/1.1.0
On Sat, Apr 16, 2022 at 2:14 PM Saverio Murgia @.***>
wrote:

Hi! Would it be possible for you to release a new version of the library
to pub.dev?
It seems like the master branch here has new commits, among which for
example one that enables the user of the library to set the behavior to
translucent whereas the version on pub.dev is stuck at the commit when
null-safety was added.
—
Reply to this email directly, view it on GitHub
https://github.com/taodo2291/xgesture_flutter/issues/13, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABLPCLYC6INM37IH27A2WALVFJSEZANCNFSM5TR7UFCQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Remove conversation from default config

Breaking Change:
The conversation integration is no longer loaded as part of the default config. If you wish to continue using it, add conversation: to your configuration.yaml.
Description:
The conversation integration allows users to give voice commands via the frontend (the microphone button in Lovelace). It also allows people to configure their own custom sentences. However, this is barely used and the default settings are making it not a very useful feature.
I suggest that we retire it from the default config, and we can always add it back if it becomes more useful.

I canceled pylint and Python 3.7 tests because Circle is swamped, there are no Python changes, and if 3.5 passes, 3.7 will pass 👍


Duplicate content

Does this issue occur when all extensions are disabled?: Yes/No

https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_additional-configuration

The same content appears below

I think this is right, one is about auto attach and onen is about the debug terminal.
@connor4312 is debug.javascript.terminalOptions the right setting for configuring auto attach?

Yea, it applies to both.
The duplication is intentional so that a user can read each section in one go without having to cross-reference elsewhere.


something wrong in the old API

In short, it's the level before 2016.
Change client=t into client=webapp to fix, and the algo for TK should be unchanged.
See https://github.com/258ch/doctool/blob/master/gotrans/__init__.py.

thanks

nice


Extra actress images left

Extra actress images are being generated and left in the /actresses folder.  Should find and fix whatever is causing this.

Haven't seen this re-occuring.


DotNetWinRT not supporting SpatialAnchor

Describe the problem
The DotNetWinRT package is said to support Windows.Spatial.Perception namespace (https://docs.microsoft.com/en-us/windows/mixed-reality/develop/unity/using-the-windows-namespace-with-unity-apps-for-hololens) but it looks like it does not include SpatialAnchor related APIs. As a result, it is not possible to call SpatialAnchor APIs in Unity editor just hitting "Play".
On the other hand, when I inspect the NuGet DotNetWinRT package, the XML file listed the SpatialAnchor API, which is very weird.
Although this is not directly related to MRTK, but I couldn't find a better place than here to post this request. Thanks!
Describe the solution you'd like
Extend the DotNetWinRT API to include SpatialAnchor
Describe alternatives you've considered
Is there any other workaround that we could do to use SpatialAnchor in editor mode?

thanks @qian256 ! I will forward to the correct people

@qian256 thanks for raising this issue! The API coverage is a bit piecemeal, driven by scenario requirements, and we haven't had a need to support SpatialAnchor so far since Unity provides the XRAnchor API for this (or ARAnchor if you're using ARFoundation). Could you provide some additional context and details on your scenario for using the native SpatialAnchor APIs directly?

In our scenario, we don't use Unity ARSubsyustem or ARFoundation. The API that we find in Unity is UnityEngine.XR.WSA.WorldAnchor, which behaves weird on HoloLens. e.g. it does not show up in the anchorstore. So we sticked to the UWP SpatialAnchor API. As a result, it does not work in editor.

Hey @qian256! Can you clarify the Unity version and XR package you're using please?

Unity 2019.3.1 and legacy XR

The API that we find in Unity is UnityEngine.XR.WSA.WorldAnchor, which behaves weird on HoloLens. e.g. it does not show up in the anchorstore.

This would be very surprising and a definite regression. Were you using the WorldAnchorStore API to save it in the anchor store?

Could I email you for further discussion?

Please reopen the issue if you are still encountering it.


[devtools] bring out @emotion's css/keyframe/global

Feature Request
For better understanding of the code it might be a good solution to bring out @emotion's css/keyframe/global declarations from the various components.
Ex: devtools/component/LogView.tsx

Q
A

New Feature
yes

RFC
yes

BC Break
no

Summary
This behavior can be seen in devtools/components/DevToolsPanel.tsx where all declarations are located upstream of the component: easy to search and possibly modify, without affecting the logic of the component itself.

Ah thanks for the report!
We will gladly accept a PR to solve this issue :)

fixed


Prince Arthas

Hey, just wanted to let you know that Prince Arthas hero artwork uses the full-sized card instead of portrait only.
Prince Arthas / King Rastakhan

Thanks! Fix published in 4.12.2.


Add ability to get the viewport of a camera in world coordinates

Summary
As the title says it would be nice to get the world viewport coordinates of a camera.
For example it could be useful to figure out if objects are in the viewport of the camera.
Example:

Can I haz for next month?
Maybe have it return a Vector2[] instead of Rect to be able to also take into account situations where the camera is rotated.

Can I haz for next month?

Sure! Assigned you. This should branch off of develop-3.0, as I'm trying to close down master as we slowly approach v3 release.

Maybe have it return a Vector2[] instead of Rect to be able to also take into account situations where the camera is rotated.

That's a very good point. However, a Vector2 array is a lot less useful than a rect in most cases where the camera isn't rotated, and it's also one allocation per call - maybe we can find another way?
There's also another issue I hadn't thought about earlier, which is that the rendered image size is unknown - we can't assume DualityApp.TargetViewSize in the general case, as anyone calling Render manually could just specify any value. So we should probably expose this as an optional parameter, which falls back to the target view size.
So here's my proposal: Let's change this to
public Rect GetWorldViewportBounds(float z, Vector2 imageSize = default(Vector2))
where the default imageSize is interpreted as a fallback to DualityApp.TargetViewSize, and the returned rect is the axis-aligned bounding rectangle that incorporates all four corners of a the viewport. In the usual, unrotated case, this will be equal to the actual viewport rect. In the rotated case, we still get useful information from the bounds rect. In cases where people want the actual rotated four corners, they can still call GetWorldPos four times.

Actually, doesn't hurt to have both methods. Let's do something like this:
public Rect GetWorldViewportBounds(float z, Vector2 imageSize = default(Vector2));
public void GetWorldViewportCorners(Vector2[] corners, float z, Vector2 imageSize = default(Vector2));

The bounds variant could use the corners one with an internal, static Vector2[] to avoid the allocation, and just do the bounding rectangle around that.

So if I understand correctly, the void one would fill the corners parameter? what if the array is not big enough?

So if I understand correctly, the void one would fill the corners parameter?

Yep.

what if the array is not big enough?

Argument check and throw an exception if null or too small.

Starting to think about this.. would it make sense to also have the z parameter optional, and if not set assume it's this.GameObj.Transform.Pos.Z + this.FocusDist where this is the Camera?

Starting to think about this.. would it make sense to also have the z parameter optional, and if not set assume it's this.GameObj.Transform.Pos.Z + this.FocusDist where this is the Camera?

Hmm.. the default might as well be the Z-0 plane, but I'd say both make a similar amount of sense. I'd say this is ambiguous enough to not have a default / optional z.

Implemented by SirePi in #688. Closing this.


CentOS 8.5 missing initramfs fix not working

I used the following parameters to fix a CentOS 8.5 VM with a missing initramfs and it's not working (the VM gets stuck in dracut timeout and then it displays the dracut shell)
--run-id linux-alar-fki --parameters initrd --run-on-repair
Note: I tested this on RHEL 7.9 and it's working smoothly

Instead of "linux-alar-fki" could you please try out with the new alar2 version please --> linux-alar2
the new version contains a couple of fixes.

Thanks, this one is working good in the new alar version:
--run-id linux-alar2 --parameters initrd

Thanks for confirming that that it works with the new ALAR version.