Add --version command line option

I've got confused a few time which bleep build I'm currently calling.
There is no --version option at the moment so I added one.
I didn't find a way to do it "less hacky" as when using the decline lib more idiomatic together with a proper command one would always get other output before the version string. This is not good for scripting as you would need more complex logic to parse the version.
(A suggestion for a follow up: I think just using decline without any hackery around it would make things more simple and easier to maintain. Also it's sub-optimal imho to have "hidden" CLI options like bsp because of this hackery.)
I think there could be more output following the line with the version string, like for example a link to the homepage, or a license hint, but I'm not sure what would be preferred here, so it's currently just the name of the tool and its version.
In case there are suggestion to add more output I'm happy to update the PR!

Thanks for this as well :)
I'm positive, but can it be a command instead of a flag? bleep --version => bleep version? or what do you think?
and just to comment it, the version string is also printed out in the wall of text if you run just bleep

running bleep fmt should fix CI I guess

Sorry for the formatting, was an oversight (likely also in the other PRs…).
I've tried now a few CLI tools with sub-commands, like rustup, git, scala-cli. Seems they use both forms (a switch and sub-command) for versions.
I've seen of course that bleep outputs the version string somewhere in the middle of the help output. But that would be almost impossible to parse form a script in a stable way.
I'm not entirely convinced that the order bleep outputs things conforms to the usual expectations. But as I don't know any standard covering that (and I didn't dig for one) I'm not touching this: As a user you want indeed the help output most when you ask for help, or input something unsupported. Putting the name and version first like in a lot of other tools is a distraction, imho. So maybe bleep does already the most sensible thing.

Giving up on this for now.
It does not work like it should. But fixing this would require likely some more involved refactoring of how the CLI argument parsing works.
The --version / version thingy doesn't show up in the help output when bleep is run in an uninitialized directory.
Also now the code got way to hacky for my liking. Throwing around asInstanceOf just to get some help output (not even at the right place…) is too much.
I'm not sure this PR is the right place to discuss a refactoring of the argument parsing. I guess a dedicated ticket would be better. (I don't thing I should start doing anything without getting your opinions on that first, as this would be likely a little bit more than just a few lines changed…)
Also I would like to have some possibility to actually test automatically what I'm doing. I've forgot about some things while trying manually. That's not good. The other PR has some basic CLI invocation tests. Would like to expend on this also for this feature here.

Alright, so just to explain. I know the whole main file is a bit complicated, but there are some reasons of course.
It's really 4 different programs in one. zsh completions, bash completions, bsp and bleep. These all have very little overlap, and I don't want the three former to appear in the documentation for the latter.
Furthermore the bleep part of the main is divided in two, depending on whether a valid build is found or not. A different set of commands is available in those two cases. The reason two code paths is needed is that scripts names are injected from a valid build into the cli commands, so you can say bleep scriptname instead of bleep run-script scriptname (the latter does not exist)
The commands for the case without a build are referenced in noBuildOpts, while the others are in hasBuildOpts.
If you want to add a bleep version command, you just refer it from those two methods. You'll typically extract the common things into another def which is again referenced in both, just like importCmd for instance.

Also I would like to have some possibility to actually test automatically what I'm doing. I've forgot about some things while trying manually. That's not good. The other PR has some basic CLI invocation tests. Would like to expend on this also for this feature here.

I think this is a good exercise. I have not written enough tests for bleep so far. The approach you have come up with here is fine. The only thing I would change is to not mutably change stdin and stdout for the entire jvm, but pass as parameters instead. we could also do that in a followup.

Alright, so just to explain. I know the whole main file is a bit complicated, but there are some reasons of course.

I've got that. The code is actually quite well written so the intend was clear (after looking at it for some time).
But I'm not sure I agree with the logic behind it. If you have in fact a few different tools than these should be released as such. But I would say, you don't have a bunch of independent tools. You have one tool with a broad set of features.
That's where sub-commands come in. The whole idea of sub-commands is to have "multiple tools in one". Things that are related on principle but actually quite independent features.
Most CLI tools don't have sub-commands as they try to "do one thing and do it well". But there are "feature monsters" like for example git. For such tools it makes very much sense to be structured around sub-commands.
I think one could just promote one of the sub-commands to a default or something like that. (Not entirely sure how this should work. The std. Unix way of doing something like that would be to call the binary through different names; but this would be problematic with the single binary deployment; you would need some installer script to setup links; but hmm, you have an installer for shell completion built-in :thinking:)
The basic structure of the commands seems fine. And I think the intend to separate docs a little bit is also a good one.
The main point is: I think it could be implemented more stream-lined.
The main "offenders" I've experienced were the early outputs on stdOut. Also the early splitted code paths for a build directory and some empty directory seems artificial. Also there is this branching to run an external versions of bleep…
I don't have a good idea currently how to refactor this. Didn't think to hard about it. That's the reason I've said I don't want to touch it currently. I see there's reasoning behind, and even I have qualms I don't know how to do it better.
I guess the idea would be to split the actual logic of main form the command line framework. At the moment the framework comes first, and your logic is kind of "hacked in". The framework seems not flexible in some regards. So maybe doing it the opposite way and putting your logic first and using the command line parsing framework in a second step? But just thinking out loud, like said don't have a good plan. Just the feeling that something is off if it's kind of "hard" to add a --version switch.
Regardless:
The current implementation is frankly anyway trash. It's again not testable. System.exit() is pure evil when it comes to tests. That's why I had to create a "fake main" in the other PR…
For this case here one would need some "early return", because the unrelated outputs otherwise. So exceptions or so, as the Scala native features for early returns are not portable between Scala 2 and 3…
Also I thought once more about whether version should be a switch, a sub-command, or both:
I think the switch is actually the right thing. It switches the main application into a mode where it just outputs the version and exist. So "switch" is here the right abstraction.
The sub-command seems redundant… Git has it, and Scala-CLI has it. But rustup does not. I was mislead as it just outputs the version and help when you use an illegal sub-command, but does not tell you that it was wrong explicitly (bad UX, rustup, bad UX…). I don't know of more examples as sub-commands are actually quite rare.
But one could have still a useful "version" command as a sub-command of the "build" sub-command, I guess. This one would not output the version of bleep currently installed on the system but the one configured for the build. But such thing is more part of some "info" command of the "build" sub-command, I guess… So not sure it would be useful on it's own. Or maybe "build version" would output also other version of the stack like Bloop version, and / or BSP version?
But before continuing on that I really wish it could be implement without "hacks". The empty Opts thingies and the hacked code path (especially with that exit!) look just too terrible.
Also I think you should consider to embrace the sub-commands for what they're good…
Sorry for the long post!
I was thinking about that for some time and wanted to include most results so I don't forget myself. :smile:

Look, the structure is fine. It has scaled well to support a whole variety of challenges,and will scale much longer. It has ~one System.exit, and you proved you can easily extract that out as well.
You can refactor it all you want, but there is no way you'll get a much fancier way of expressing the logic which backs for instance this example:
$ bleep -d ../other-dir compile foo<TAB>

Here's what bleep will do:

early-parse -d in CommonOpts to intercept loading of the build, since that indicates it lives in another folder
parse that build. let's say it's successful
notice that that build indicates another version of bleep.
download and run that
branch into the completion part of the code.
discover that the current command is compile, and we're parsing vararg arguments for it
consult the build to come up with projectnames starting with foo

bleep version versus bleep --version
I know --version is implemented as a flag in many other tools, but within decline it does not make sense that way. it doesn't modify a command - it is a command. You'll find no way of implementing a flag without a command.

Thanks for the reply!

Look, the structure is fine. It has scaled well to support a whole variety of challenges,and will scale much longer.

That's why I think the logic is just fine, as said before.
I'm just not sure about the implementation. This does not mean much, as I'm new to this code. Just my gut feeling.
Your example is interesting indeed. Thanks for that! :+1:

It has ~one System.exit, and you proved you can easily extract that out as well.

But this PR would add another one… I didn't find a way around unrelated output otherwise.
This one would be more tricky to refactor out than the other. Like said, I guess I need to throw exceptions… That's really ugly, in addition to the other ugly things I've done here.

You can refactor it all you want, […]

I'm not sure I want that… :smile:
Still I'm thinking how to get rid of the ugly stuff… But you say decline doesn't like that. Hmm.

I know --version is implemented as a flag in many other tools […]

And that's how it should be. There are expectations. When you're building a CLI app follow the common approach. Otherwise your app will stick out as alien body.
I guess most people would expect any CLI app to have a --help and a --version switch.
I didn't look though standards yet, though.

but within decline it does not make sense that way

Than what decline does doesn't make sense (maybe).
I was actually thinking a few times whether this should be actually addressed in decline. They provide a default --help switch, maybe they should also provide a default --version switch?
What do you think, does it belong there?

it doesn't modify a command - it is a command

Well, a switch does something on the command it's set. The --version switch changes the behavior of the main command, and this is bleep.
In an app that has sub-commands it could be also one of these. But imho it wouldn't make much sense if it was redundant, but it would be redundant in case the sub-command just does the same as the switch and doesn't provide additional switches, options, or even further sub-commands (like in git, which actually isn't the best example of a clean CLI interface :grinning:).

You'll find no way of implementing a flag without a command.

Than this is a shortcoming of decline.
It claims to support idiomatic command line interfaces. So it should do according. :smile:
But besides that, maybe there is some sense in a version sub-command (likely as "sub-sub-command"). In case it does something else than the switch.

I didn't find a way around unrelated output otherwise.

Can you accept the unrelated output for now? It's mostly benign I think.
My plan for "clean" output is something like what kubectl for instance does, where you normally unstructured text output, but you can pass --out json to get no-nonsense json output. I think this would be super for building scripts around bleep.

Than this is a shortcoming of decline.

can we just roll with the flow here and do it the way decline is modelled? super easy to implement, and even if you may slightly disagree with it it makes perfect sense in my head

Can you accept the unrelated output for now? It's mostly benign I think.

I was thinking also that this may be just temporary.
The output could be restructured later on.
I for example think that outputting how long the "bootstrap" of bleep took is irrelevant for normal operation.
Also maybe the output of the "bleep version switch" could be made somehow else to not appear when asking for the version?

can we just roll with the flow here and do it the way decline is modelled?super easy to implement, and even if you may slightly disagree with it it makes perfect sense in my head

Yes, exactly.
There is already functionality in place to add/remove output.

try for instance bleep config log-timing-enable and then run a slow command like compile. you'll see timing numbers on the left of the screen
likewise, you can add --debug to all commands to see much more output.

so something like that i suppose, maybe a "power user mode" or whatever. haven't really thought much in that direction

I've done a little research in the meantime.
My gut feeling about having the expectation that every CLI tool should support --help and --version is now backed by some more formal recommendations:
https://www.gnu.org/prep/standards/html_node/Command_002dLine-Interfaces.html
https://www.gnu.org/prep/standards/html_node/_002d_002dversion.html#g_t_002d_002dversion
Of course the GNU standards aren't authoritative (like most other pieces of paper… :smile:) but let's say there is quite a strong user expectation about CLI tools (as most of them are build around the GNU standards).
I'm not sure my previous comment here was read in full, as I submitted it too early in the middle of writing it and I think GitHub doesn't notify about edits…
To make it short: I could live with a sub-command-only solution for now (and in case this is wanted I update the PR accordingly) but I would still pursue to somehow have a proper --version switch in the future.

I could live with a sub-command-only solution for now (and in case this is wanted I update the PR accordingly) but I would still pursue to somehow have a proper --version switch in the future.

Let's go! a sub-command (which shows up in --help and autocomplete), and optionally you can match at the top-level if args == List("--version") and then do the same, this will agree with peoples muscle memory. both should in theory be very easy


failed to connect to UI in dev mode

hello
i am able to mvn  compile/install/dist the streamline  project ( ubuntu box)
but when i run in dev mode  with
./bin/streamline-server-start.sh ./conf/streamline-dev.yaml
i got the  SAM UI  ( blue page) in 8080 but  with the following message in the center
Access not enabled for this username.
Please contact your administrator.
may i had to touch config files or install some  DB?
best R
phil

@pgibert I think the streamline-dev.yaml has authorizer config here https://github.com/hortonworks/streamline/blob/master/conf/streamline-dev.yaml#L28. Can you delete the lines 28-31 and try again.

Thanks a lot harshach.. it works now ! :-)
the next step is ./bin/streamline bootstrap ( following the message in  SAM UI)
Please, can i run it safely or should i start some registry DB, etc ....
best regards
phil

@pgibert , have you set up the streamline DB ? If not you need to provide the necessary database configuration in streamline.yaml (see here)  and run "./bin/streamline setup". After that you can run "./bin/streamline bootstrap". This will load the builtin components, user defined functions etc.

ok thanks i will set the DB and go on ..
best regards


admin page lost

i have upgraded v2board  user page is online but admin page is lost and show not found

@tokumeikoi  i've updated it again it doesnt change  url:https://domain/admin not found !
what should i do ?


Extension doesn't install with .NET Framework 4.6

I installed Visual Studio 2015 CTP 5 which installs .NET Framework 4.6 with it automatically.
The .vsix extension refuses to install because it doesn't recognize this target framework.
Here is the install log:
5.2.2015 14:43:53 - Microsoft VSIX Installer
5.2.2015 14:43:53 - -------------------------------------------
5.2.2015 14:43:53 - Initializing Install...
5.2.2015 14:43:53 - Extension Details...
5.2.2015 14:43:53 - 	Identifier      : FSharpVSPowerTools.68b42cfe-c752-4094-8dba-ed48aa81cac8
5.2.2015 14:43:53 - 	Name            : Visual F# Power Tools
5.2.2015 14:43:53 - 	Author          : fsharp.org
5.2.2015 14:43:53 - 	Version         : 1.7.0
5.2.2015 14:43:53 - 	Description     : A collection of additional commands for F# in Visual Studio
5.2.2015 14:43:53 - 	Locale          : en-US
5.2.2015 14:43:53 - 	MoreInfoURL     : https://github.com/fsprojects/VisualFSharpPowerTools
5.2.2015 14:43:53 - 	InstalledByMSI  : False
5.2.2015 14:43:53 - 	SupportedFrameworkVersionRange : [4.5]
5.2.2015 14:43:53 -
5.2.2015 14:43:53 - 	Supported Products :
5.2.2015 14:43:53 - 		Microsoft.VisualStudio.Pro
5.2.2015 14:43:53 - 			Version : [11.0]
5.2.2015 14:43:53 - 		Microsoft.VisualStudio.Pro
5.2.2015 14:43:53 - 			Version : [12.0,13.0)
5.2.2015 14:43:53 - 		Microsoft.VisualStudio.Pro
5.2.2015 14:43:53 - 			Version : [13.0,15.0)
5.2.2015 14:43:53 -
5.2.2015 14:43:53 - 	References      :
5.2.2015 14:43:53 - 		-------------------------------------------------------
5.2.2015 14:43:53 - 		Identifier   : Microsoft.VisualStudio.MPF.11.0
5.2.2015 14:43:53 - 		Name         : Visual Studio MPF 11.0
5.2.2015 14:43:53 - 		Version      : [11.0]
5.2.2015 14:43:53 - 		MoreInfoURL  :
5.2.2015 14:43:53 - 		Nested       : No
5.2.2015 14:43:53 -
5.2.2015 14:43:53 -
5.2.2015 14:43:53 - Searching for applicable products...
5.2.2015 14:43:54 - Found installed product - Microsoft Visual Studio Express 2012 for Web
5.2.2015 14:43:54 - Found installed product - Microsoft Visual Studio Premium 2013
5.2.2015 14:43:56 - The extension will be upgraded from version 1.6.1.
5.2.2015 14:43:56 - Found installed product - Microsoft Visual Studio Professional 2013
5.2.2015 14:43:56 - Found installed product - Microsoft Visual Studio 2013 Shell (Integrated)
5.2.2015 14:43:56 - Found installed product - Microsoft Visual Studio Ultimate 2015 CTP
5.2.2015 14:43:59 - The extension with ID 'FSharpVSPowerTools.68b42cfe-c752-4094-8dba-ed48aa81cac8' is not installed to Microsoft Visual Studio Ultimate 2015 CTP.
5.2.2015 14:43:59 - Found installed product - Microsoft Visual Studio Premium 2015 CTP
5.2.2015 14:43:59 - Found installed product - Microsoft Visual Studio Professional 2015 CTP
5.2.2015 14:43:59 - Found installed product - Microsoft Visual Studio Community 2015 CTP
5.2.2015 14:43:59 - Found installed product - Microsoft Visual Studio 2015 CTP Shell (Integrated)
5.2.2015 14:43:59 - Found installed product - Global Location
5.2.2015 14:44:02 - The following target products have been selected...
5.2.2015 14:44:02 - 	Microsoft Visual Studio Ultimate 2015 CTP
5.2.2015 14:44:02 -
5.2.2015 14:44:02 - Beginning to install extension to Microsoft Visual Studio Ultimate 2015 CTP...
5.2.2015 14:44:02 - Install Error : Microsoft.VisualStudio.ExtensionManager.MissingTargetFrameworkException: The extension 'Visual F# Power Tools' requires a version of the .NET Framework that is not installed.
   at Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.CheckForValidDotNetFramework(IExtension extension)
   at Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.CheckForInstallBlockers(InstallableExtensionImpl extension, IInstalledExtensionList modifiedInstalledExtensionsList, Boolean isNestedExtension, Boolean& olderVersionInstalled)
   at Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.InstallInternal(InstallableExtensionImpl extension, Boolean perMachine, Boolean isNestedExtension, IDictionary`2 extensionsInstalledSoFar, List`1 extensionsUninstalledSoFar, IInstalledExtensionList modifiedInstalledExtensionsList, AsyncOperation asyncOp, UInt64 totalBytesToWrite, UInt64& totalBytesWritten)
   at Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.BeginInstall(IInstallableExtension installableExtension, Boolean perMachine, AsyncOperation asyncOp)
   at Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.InstallWorker(IInstallableExtension extension, Boolean perMachine, AsyncOperation asyncOp)

It's the same problem as #923. This has been fixed in v1.7.2 https://ci.appveyor.com/project/dungpa/visualfsharppowertools/build/1.8.0-a1501172312/artifacts.
Perhaps I should update the version in VS Gallery to the new one.

Ok, the new version (v1.7.2) is available on VS Gallery. Please give it a try.

It works indeed. Thank you! Should've searched in closed issues.

@dungpa Thank you for releasing v1.7.2 early.
BTW, it seems that '1.7.2' is not yet tagged in this repository, so is this still tentative one?

@yukitos Thanks for the reminder. I pushed the release to GitHub.

:+1:


Using sassOptions config property in EmberApp doesn't work

I have a new ember-cli 0.2.2 app. I've tried setting sassOptions in the EmberApp constructor like so:
var app = new EmberApp({
  sassOptions: {
    includePaths: [
      'app/styles/foo'
    ]
  }
});

The includePaths never make it into the SassCompiler. As best I can tell it's because ember-cli-sass's setupPreprocessorRegistry is called independently of included. So this.app is never set causing sassOptions to not pick up the app's options.
I'm aware this isn't the recommended way to define includePaths. I started debugging this because I'm developing an ember add-on that needs to add to the includePaths. I'm all ears if there's a better way to do that outside of modifying the host app's app.options.sassOptions.
In any case, it'd be great if ember-cli-sass can continue to support the old config style if only for compatibility.

hitting the same issue. So far I've come to same reasoning as @mattconstantine

Yes, this is all quite unfortunate. This is why it's important to be super critical when people send you PRs :) I will change this to support both uses and update the docs to refer to the Brocfile.js usage. Just on holiday with my kids right now, so difficult to find the time. Should be in the next few days, although PRs are welcome!

I'd be happy to provide a PR but I couldn't see a straightforward way to get the host's EmberApp instance within setupPreprocessorRegistry(type, registry). Any tips?

I'd look in the Git history to see how it used to work.
On Wed, 8 Apr 2015 07:45 Matthew Constantine<EMAIL_ADDRESS>wrote:

I'd be happy to provide a PR but I couldn't see a straightforward way to
get the host's EmberApp instance within setupPreprocessorRegistry(type,
registry). Any tips?
—
Reply to this email directly or view it on GitHub
https://github.com/aexmachina/ember-cli-sass/issues/39#issuecomment-90740952
.

Going in to sort this out now.

@aexmachina it is solved by https://github.com/aexmachina/ember-cli-sass/pull/42


rainingcloud-blasty

My artwork is a cloud which is shown to be raining. The shape of the cloud consists of curves, like clouds you would probably draw if you were to draw clouds. The program uses multiple parameters you can change to affect the cloud's shape, size and the amount of rainfall there is.
Somehow this took quite some time to make, around 3 or 4 hours I think...
My experience in coding is quite specific to certain libraries I use, which started with using Java to make plugins for a Minecraft servers between friends (Paper API), then I started learning web development and I understand the basics of HTML, JS and CSS. I also have some experience in Python, which started a bit before my Java experience, but I never used or practised using Python until a coding class I had in middle school. I would say I am "intermediate" level in programming.

I really like the idea of a rainy cloud. I think we could make it look a bit less flat though.
What can you learn from the drawing below?

That looks a lot more realistic, the increased number of lines used around the perimeter makes the cloud look more defined and natural

I'm going to close this for housekeeping. Feel free to resubmit again in the future.


Running Node.js sample fails (dist directory doesn't exist)

I'm trying to run the Node.js samples but ran into the following error:
❯ node main.js
node:internal/modules/cjs/loader:446
      throw err;
      ^

Error: Cannot find module 'tigerbeetle/src/clients/node/samples/two-phase/node_modules/tigerbeetle-node/dist/index.js'. Please verify that the package.json has a valid "main" entry
    at tryPackage (node:internal/modules/cjs/loader:438:19)
    at Module._findPath (node:internal/modules/cjs/loader:680:18)
    at Module._resolveFilename (node:internal/modules/cjs/loader:1063:27)
    at Module._load (node:internal/modules/cjs/loader:922:27)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:121:18)
    at Object.<anonymous> (tigerbeetle/src/clients/node/samples/two-phase/main.js:8:5)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32) {
  code: 'MODULE_NOT_FOUND',
  path: 'tigerbeetle/src/clients/node/samples/two-phase/node_modules/tigerbeetle-node/package.json',
  requestPath: 'tigerbeetle-node'
}

Node.js v18.17.1

It looks like installing tigerbeetle-node as specified in the instructions doesn't build the files (the dist directory doesn't exist) that the package.json tells it to expect.

Ahh, that's a bummer! We've recently switch to using local dependencies, and apparently npm doesn't install dependencies of local dependencies?
https://docs.npmjs.com/cli/v10/configuring-npm/package-json#local-paths

note: Packages linked by local path will not have their own dependencies installed when npm install is ran in this case. You must run npm install from inside the local path itself.

https://github.com/npm/cli/issues/2339
I guess the best we could do here is to asy in the docs that you need to cd src/clients/node && npm install && cd samples/basic && npm install?
Am I missing some obvious solution here?


Remove Connection and Upgrade header fields in HTTP messages

Closes #24

Coverage remained the same at 100.0% when pulling 5db2df2477aea6fc72fdbf7c8f144b41487e40e4 on 24-remove-connection-and-upgrade-header-fields-in-http-messages-and-upgrade-header-fields-in-http-messages into df26456b340da2cd7966491e3f4066d2a5f30ecc on master.

Coverage remained the same at 100.0% when pulling dda7dd7e7e1b13577ac78ebf52180064a2c50559 on 24-remove-connection-and-upgrade-header-fields-in-http-messages-and-upgrade-header-fields-in-http-messages into df26456b340da2cd7966491e3f4066d2a5f30ecc on master.


Include build instructions in README

It would be nice if instructions to build the project could be easily found in the README; I don't know if they're visible elsewhere.

Ah, I found it in the contribution document. Maybe just a note in the README specifying that build instructions could be found there would work?

You're not the only one: https://github.com/LambdaFactory/Fornax/issues/30
Go for it.


opt avoid lots of json parse error logs (#39190)

pick https://github.com/apache/doris/pull/39190 to branch-2.0

run buildall


Cache build artifacts using Swatinem/rust-cache@v1

This GitHub Action caches build artifacts in addition to dependencies which halves the CI duration time.
Resolves #1743

@ducaale - Do you mind quickly summarizing the before/after performance? Thank you for this!

Awesome, thank you! (I created and closed out a separate issue, and marked the item as complete in #1743, since I didn't want to close that quite yet given that it had a few more sub-items.)

I have added a comparison table to the PR description (It might not be a fair comparison since I used a random action run in the past)

(I created and closed out a separate issue, and marked the item as complete in https://github.com/charliermarsh/ruff/issues/1743, since I didn't want to close that quite yet given that it had a few more sub-items.)

Sounds good. Note that insta is now being cached by Swatinem/rust-cache@v1, so the only things left to do are using cargo-nextest and removing the --release flag.
Lastly, it might be worth taking a look at https://www.reillywood.com/blog/rust-faster-ci/

Thank you, that's a huge difference! So cool.

I'm just curious -- did you see my tweet about https://github.com/charliermarsh/ruff/issues/1743? Or stumble upon this organically?

I'm just curious -- did you see my tweet about https://github.com/charliermarsh/ruff/issues/1743? Or stumble upon this organically?

Yes, this was prompted by the tweet about ruff's CI performance. We did a similar thing for xh's CI in https://github.com/ducaale/xh/pull/251

(If you have a Twitter and want to be tagged, I'll tweet about this and tag you :))

Thanks, my twitter handle is @ducaale555 but I don't think this PR is worth tweeting about. All the credit goes to https://www.reillywood.com/blog/rust-faster-ci/


deprecate the MoneyParser in favour or a really basic parser

What
Deprecation warnings for the MoneyParser (to be removed in the next major release).
Why
A money string is dependent on the country and preferences and be as simple or as complex as people want. It is thus best to let people write their own parsers to decide on the rules they'd like implemented. Examples: 1.000 could be one thousand or one depending on the country.
This gem's parser should be much simpler than what it is right now and not make these assumptions.

related to https://github.com/Shopify/money/pull/43


Changes to encrypt tor privatekey

Tweaks to https://github.com/lightningnetwork/lnd/pull/4458

Looks good! I pulled them into my branch at gkrizek/lnd. Thanks!

@gkrizek Awesome I'll close this pr then


LG/Expression parity with C# (Nov 25)

Pull Request Test Coverage Report for Build 92937

241 of 519 (46.44%)  changed or added relevant lines in 20 files are covered.
10 unchanged lines in 5 files lost coverage.
Overall coverage decreased (-1.9%) to 82.293%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

libraries/botbuilder-lg/src/lgTemplate.ts
0
1
0.0%

libraries/botbuilder-lg/src/customizedMemory.ts
12
14
85.71%

libraries/botbuilder-lg/src/analyzer.ts
2
5
40.0%

libraries/botframework-expressions/src/memory/composedMemory.ts
6
9
66.67%

libraries/botbuilder-lg/src/expander.ts
10
15
66.67%

libraries/botframework-expressions/src/builtInFunction.ts
58
66
87.88%

libraries/botframework-expressions/src/memory/simpleObjectMemory.ts
52
64
81.25%

libraries/botbuilder-lg/src/evaluator.ts
37
69
53.62%

libraries/botbuilder-lg/src/activityFactory.ts
4
81
4.94%

libraries/botbuilder-lg/src/activityChecker.ts
7
142
4.93%

Files with Coverage Reduction
New Missed Lines
%

libraries/botbuilder-lg/src/evaluator.ts
1
76.96%

libraries/botbuilder-lg/src/staticChecker.ts
1
87.0%

libraries/botframework-expressions/src/extensions.ts
1
89.93%

libraries/botframework-expressions/src/builtInFunction.ts
3
86.77%

libraries/botbuilder-lg/src/activityFactory.ts
4
3.15%

Totals

Change from base Build 92646:
-1.9%

Covered Lines:
7798

Relevant Lines:
9111

💛  - Coveralls


New package: BeagleSoftware.BeagleEditor version 2024.4

Checklist for Pull Requests

[ ] Have you signed the Contributor License Agreement?
[ ] Is there a linked Issue?

Manifests

[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.6 schema?

Note: <path> is the directory's name containing the manifest you're submitting.

Resolves: https://github.com/microsoft/winget-pkgs/issues/174329
Microsoft Reviewers: Open in CodeFlow

Please! Help me :(

It is running fine: https://dev.azure.com/shine-oss/winget-pkgs/_build/results?buildId=2275&view=logs&s=a97a88f2-e22e-5096-4fca-25e04f0f0aae&j=68997d86-8ece-5ae8-3ac5-ccdbfa458731
Just add: Resolves: https://github.com/microsoft/winget-pkgs/issues/174329 to the description on this PR so that it closes the issue

Aha! Okay thanks!

Now, I don't know where to add description. Please give me complete answer because this is the first time I'm publishing a program for winget.

Yep that is correct, great :)

The multi file manifest is incomplete.A multi file manifest must contain at least version, installer and defaultLocale

Your BeagleSoftware.BeagleEditor.yaml, should be this code instead:
# Created using wingetcreate <IP_ADDRESS>
# yaml-language-server: $schema=https://aka.ms/winget-manifest.installer.1.6.0.schema.json

PackageIdentifier: BeagleSoftware.BeagleEditor
PackageVersion: "2024.4"
InstallerLocale: en-US
InstallerType: inno
InstallModes:
- interactive
- silent
- silentWithProgress
UpgradeBehavior: install
ReleaseDate: 2024-08-11
Installers:
- InstallerUrl: https://github.com/beaglesoftware/beagleeditor/releases/download/v2024.4/BeagleEditor-2024.4-Installer.exe
  Architecture: x64
  InstallerSha256: 707F376D2B6AB1E16F43B825C3D44E0DA5B8083CF0C4FEDFC754682A9E2E11ED
ManifestType: installer
ManifestVersion: 1.6.0

The multi file manifest is incomplete.A multi file manifest must contain at least version, installer and defaultLocale Error when running winget validate --manifest .\manifests\b\BeagleSoftware\BeagleEditor\2024.4\BeagleSoftware.BeagleEditor.yaml

Also when running this command it should be the full path of it so it should look something like example:
winget validate --manifest C:\Documents\winget-pkgs\manifests\b\BeagleSoftware\BeagleEditor\2024.4\BeagleSoftware.BeagleEditor.yaml

What command should I run for submitting a new PR with 'submit' subcommand in wingetcreate?

What command should I run for submitting a new PR with 'submit' subcommand in wingetcreate?

Do not submit a new command, just go to Files changed at the top:

Click the three dots on the installer.yaml file and click edit file, then just paste my code:

Ok, But I want command anyway.

Ok, But I want command anyway for other purposes.

I do not believe there is a way to edit a manifest using wingetcreate without submitting a new PR

Nope. We have a submit sub.... Wait a minute... Ok, I don't want it.

I got this again:
Manifest validation failed.
Manifest Error: The multi file manifest is incomplete.A multi file manifest must contain at least version, installer and defaultLocale manifest. File: BeagleSoftware.BeagleEditor.yaml

Erm... you edited the wrong file, you had to edit the installer.yaml file, which is the first not the last

So the BeagleSoftware.BeagleEditor.yaml should be:
# Created using wingetcreate <IP_ADDRESS>
# yaml-language-server: $schema=https://aka.ms/winget-manifest.version.1.6.0.schema.json
PackageIdentifier: BeagleSoftware.BeagleEditor
PackageVersion: "2024.4"
DefaultLocale: en-US
ManifestType: version
ManifestVersion: 1.6.0

The BeagleSoftware.BeagleEditor.installer.yaml should be:
# Created using wingetcreate <IP_ADDRESS>
# yaml-language-server: $schema=https://aka.ms/winget-manifest.installer.1.6.0.schema.json

PackageIdentifier: BeagleSoftware.BeagleEditor
PackageVersion: "2024.4"
InstallerLocale: en-US
InstallerType: inno
InstallModes:
- interactive
- silent
- silentWithProgress
UpgradeBehavior: install
ReleaseDate: 2024-08-11
Installers:
- InstallerUrl: https://github.com/beaglesoftware/beagleeditor/releases/download/v2024.4/BeagleEditor-2024.4-Installer.exe
  Architecture: x64
  InstallerSha256: 707F376D2B6AB1E16F43B825C3D44E0DA5B8083CF0C4FEDFC754682A9E2E11ED
ManifestType: installer
ManifestVersion: 1.6.0

Again! It is really... annoying

I got this again: Manifest validation failed. Manifest Error: The multi file manifest is incomplete.A multi file manifest must contain at least version, installer and defaultLocale manifest. File: BeagleSoftware.BeagleEditor.yaml

See this: https://github.com/microsoft/winget-pkgs/pull/174327#issuecomment-2361334552

It gived error and requires me to sign in otherwise I can't do anything.


highlighting for sudo commands

zsh can complete commands that are on root's path but not on user's path by adding the following to .zshrc
zstyle ':completion:*:sudo::' environ PATH="/sbin:/usr/sbin:$PATH" HOME="/root"

But these commands aren't being properly highlighted by zsh-syntax-highlighting. Instead of green (valid command) they are appearing red (invalid command). Is there a setting similar to environ to change this?

I just checked this bug. It seems to have been fixed since it was reported.
So let us close it.

Can you describe the working setup? I can still reproduce it on debian with zsh-5.1 under zsh -f``, even if I set both the environandcommand-path` styles. It only works for me if I add /sbin to my $PATH.
(Reopening until we figure this out.)

Sorry for the noise. /sbin was added my $path when I tried this earlier today. Thanks for reopening!

In 0.4..1 commands from root's path are highlighted in red.  During 0.5.0 development they were shown in default (like any not-otherwise-special word), but 757d047f09cda75a74ce62e198504893335f9ad5 (in 0.5.0-to-be) restores the behaviour of 0.4.1.

Various ideas:

Can we obtain the secure_path option from sudoers(5)?
We could inspect the environ PATH or command-path completion style in the :completion:…:sudo context.  (Why that context?  Because that's the context the style definition's context patterns would match.  Yes, this is somewhat hacky.)
We could take a wild guess with ${path//\/bin/\/sbin}.

Or we could do something else entirely:

Never highlight the foo in sudo foo as an unknown command.


Serial Communication with the PI and Arduino

Can you add an Exampe for the Arduino and the Pi with a USB oder Serial Bus.
I have read it will work, but dont know how.

You're right, serial has no example yet on https://pi4j.com/documentation/io-examples/serial/
Will try to create something asap...

Need the same here... Tried to test it by myself, but serial communication is simply not working. Example would help.

@tuxedo0801 thanks for all your feedback!!!
I still need to fully document the example I created, but it works perfectly now to read data from a GPS receiver. I changed a bit the reader in the runnable to process lines as you can see in https://github.com/Pi4J/pi4j-example-serial/blob/main/src/main/java/com/pi4j/example/SerialReader.java#L35
Data is now received like this (GPS antenna inside, so no real coordinates available):
[SerialReader] INFO com.pi4j.util.Console - Data: '$GPRMC,,V,,,,,,,,,,N*53'
[SerialReader] INFO com.pi4j.util.Console - Data: '$GPVTG,,,,,,,,,N*30'
[SerialReader] INFO com.pi4j.util.Console - Data: '$GPGGA,,,,,,0,00,99.99,,,,,,*48'
[SerialReader] INFO com.pi4j.util.Console - Data: '$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30'
[SerialReader] INFO com.pi4j.util.Console - Data: '$GPGSV,1,1,01,20,,,28*70'
[SerialReader] INFO com.pi4j.util.Console - Data: '$GPGLL,,,,,,V,N*64'
[SerialReader] INFO com.pi4j.util.Console - Data: '$GPRMC,,V,,,,,,,,,,N*53'
[SerialReader] INFO com.pi4j.util.Console - Data: '$GPVTG,,,,,,,,,N*30'
[SerialReader] INFO com.pi4j.util.Console - Data: '$GPGGA,,,,,,0,00,99.99,,,,,,*48'
[SerialReader] INFO com.pi4j.util.Console - Data: '$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30'

thanks @tuxedo0801 for all your feedback, has been used for the example I created and documented on https://pi4j.com/documentation/io-examples/serial/


Develop

Created UIControl extension with rx_controlEvents method.
I want to be able to use the system for types of controls other than just UIButtons. Thanks for all the effort you put into this.

hmm... I'm new at pull requests. I think I did something wrong.


How Delete A Role or Premission?

$permission = Permission::where('id', '=', $id)->first();
$permission->delete();

i used that,but not work.

I am tring to recreate the issue. Can u provide more infos?
Like what errors appear? (enable debug on .env file)

@farshidrezaei i did it with Laravel tinker and it fully works.

Remember to close this issue :)


Could not find or load main class org.gradle.wrapper.GradleWrapperMain

Run ./gradlew build
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain
Caused by: java.lang.ClassNotFoundException: org.gradle.wrapper.GradleWrapperMain
Error: Process completed with exit code 1.

While runnign github actions

This is seems to be becaouse of the newly generated gradle wrapper, not ran locally once.
Once ran locally - a jar was added.
It needs to be commited as well
Command: Add
Added: gradle/wrapper/gradle-wrapper.jar
Finished!: Success (93 ms @ 19-12-2024 11:09:25)


fix regression in hide_edge_borders

origin x & y are not needed because this is the only child in the workspace. if swaybar location is top, view's y is not zero, so y + view's height > workspace height.

This sometimes breaks hiding right and bottom borders (when there is more than one child in the workspace).


vscode should not force me to click a charactor sooo carefully that I am not clicking on the right hard of a charactor

VSCode Version:   1.36.1
OS Version: macOS 10.14.6

Steps to Reproduce:
The inspire of this issue comes from https://github.com/microsoft/vscode/issues/78463.  You can find details and even a animation demonstration there.
The problem is not fixed over there. But sine someone was explaining the internal mechanism at that issue, there are some new problem raised.

The editor works by taking the position which is closest. So if you click in the first half of a character, the cursor will go to the left of the character, and if you click in the second half of a character, the cursor will go to the right of the character.
Is this unexpected?

When I click on a single character, according on that explanation, I HAVE TO , I HAVE TO be soooooooooo carefully to most accurately clicking on the exactly LEFT half of a single character, but do my best to control my mouse cursor to NOT slip to a tiny fraction of as millimeter to MISTAKENLY slip across  the middle line ( and it is not even exist right there), to just make a single selection on a string.
If, this IS expected, can you tell me an option ? Can you tell me an option which could make the editor forget this behavior and just select this character no matter I am clicking on the LEFT half or RIGHT half of this charactor? As what it dose all over the world, except VSCode ?
Thank you.

Let's continue discussion in the original issue at https://github.com/microsoft/vscode/issues/78463#issuecomment-522994250


NetworkManager.StopHost never triggers OnStopServer Callback

Describe the bug
As per #1602, it seems that the order of calling StopClient and StopServer were swapped in StopHost. But now the OnStopServer callback is never invoked when we call StopHost.
Similarly, if instead of calling OnStopHost, I individually call StopClient and StopServer it doesn't call OnStopServer if I run StopClient first, but does so if I swap the order.
Desktop (please complete the following information):

OS: Windows 10
Build target: PC standalone
Unity version: 2020.1.10
Mirror branch: 23.0.3

@jjaslow need step by step instructions on how to reproduce. otherwise it's a guessing game :/

which onstopserver/client do you mean? for networkbehaviour? for networkserver?

tried to reproduce:
I added this to benchmark scene monster and players
using UnityEngine;
using Mirror;

public class Test : NetworkBehaviour
{
    // start
    public override void OnStartClient() => Debug.LogWarning(name + " OnStartClient");
    public override void OnStartServer() => Debug.LogWarning(name + " OnStartServer");

    // stop
    public override void OnStopClient() => Debug.LogWarning(name + " OnStopClient");
    public override void OnStopServer() => Debug.LogWarning(name + " OnStopServer");
}

-> all the stop callbacks work fine when pressing StopHost in the NetworkManagerHUD.
I also added this to BenchmarkNetworkManager:

        public override void OnStopClient() => Debug.LogWarning("NetMan OnStopClient");
        public override void OnStopServer() => Debug.LogWarning("NetMan OnStopServer");
        public override void OnStopHost() => Debug.LogWarning("NetMan OnStopHost");

They are all called as well when pressing the stophost hud button:

can't see your screen from here guys so I don't know how you got to the issue.
closing. feel free to reopen with instructions on how to reproduce. perhaps it was fixed already in master too.


Add edges for those unreachable nodes to improve graph connectivity

issue #339
GIST1M dataset, there are ~5000 unreachable nodes, we could search neighbors of these nodes to add reverse edges if there are space after we finish index building. After this pr, regular search does not change much

hnsw
Build time(s)
recall(top100)
qps

before this pr
1200
0.911
2075

after this pr
1200(index building)+9(repair graph)
0.9115
2036

For these ~5000 unreachable nodes, we could never get themselves as the top1 results when we specify them as query vectors. After this pr, we could get a 0.99 recall of top1 under a small ef search param=30.

/kind improvement


Add realloc

Currently we only have alloc, calloc, and free. Let's complete this and add realloc :slightly_smiling_face:

Unlike __rust_realloc and malloc, this has no special handling for size == 0. Why doesn't it need that?

Good catch, I'll add this. As malloc returns nullptr on zero size, I think, realloc should also return nullptr?

Hmm, as libc::realloc with size == 0 is implementation defined, it should result in an error.

malloc(0) is also implementation-defined -- but it's not undefined or so, it just doesn't say whether it returns NULL or some other pointer (that may not be used).
IMO we should do the same for realloc.


refactor: replace AccessList with alloy version

The replaces the custom AccessListItem definition with the alloy version. The alloy version uses a B256 instead of a U256, which is conform the Ethereum spec.
This avoids type conversions from when interacting with revm, where currently B256 storage indices need to be converted to U256 values using big-Endian conversion.
I think it's worth considering changing the account storage to match this.

access list U256 does not touch the stack, it goes to state and state is u256

Access list U256 does not touch the stack, it goes to storage and storage is U256. The conversion is essentially free in the context of SLOAD/SSTORE where 99% of the time is spent in hashmaps and DB, I would not block this change on that.

True it touches storage and storage is U256 as the stack is U256. Again, it is strange to depend on alloy, and would like to see alloy including revm-primitives for example to add From<>

U256 is there as the stack is in U256 and we remove conversion between B256/U256 inside revm, this can be done outside of it.

I see your point w.r.t the SLOAD/SSTORE instructions popping a U256 from the stack and wanting to use that to access fn storage. I'm happy to leave that as is, without conversion to B256.

would like to see alloy including revm-primitives for example to add From<>

I'm also happy to move the AccessList and AccessListItem types to revm-primitives. Either is fine for us, as long as we can use the same type across the board.
The intent of this PR is to avoid the conversion fn (Vec<(Address, Vec<B256>) -> Vec<(Address, Vec<U256>)> to configure transactions.
Especially in combination with the trait Transaction proposed in the chain-specific configuration PR, this creates the ability to bypass the conversion of From<ThirdPartyTransaction> for TxEnv.
Instead we can directly use ThirdPartyTransaction in revm to query the transaction parameters for execution. This philosophy does require using the same types at the API level between Ethereum protocol and Ethereum VM. Otherwise people will always need to create two types: the chain transaction type and a chain "transaction environment" type.
Please let me know which changes are reasonable to get this PR across the finish line - if at all possible.

Thanks, we resolved our disputes internally and decided to include this, one last nit for the test changes

Perfect. That voids the need for my previous message 😁

I am still of the stance that AccessList should be inside this repo, and alloy/eips to depend on revm-primitives, revm-primitives is the lowest crate in the crate and can be published at any time. In the end Transaction (and its parts) without evm does not exist.
But having it in one or other repo is a maintenance problem, the user problem is having two different types and is something that would be good to solve. As I said internally I am okay to step back and include alloy/eips.

Failed tests not related to this PR


Add authentication to wire commmunication (handshake)

Location

wire.proto
wire/net/exchange_addr.go

Problem
Sender not authenticated
While each message currently contains a sender and recipient wire address in its Envelope, those are not yet authenticated, there is no signature in wire.proto. This means anyone can send a message coming from SENDER, without needing the private key, thus allowing to spoof any wire identity.
No TLS
As far as I can tell we're currently using TCP without TLS for the communication. This means that, even when there is a signature in the handshake message (AuthResponseMsg), an Adversary could eavesdrop the communication channel and use the AuthResponseMsg in his own session, thus stealing the wire identity. He could not send updates to the existing channel since he doesn't have the private key for the channel identity, but he could propose new channels (at least they (probably) won't be funded), but it still locks up some resources (time, computation, storage and ETH) for some time while waiting for the channel to be funded.
Proposal (all three are likely needed)

Add a signature using the wire identity to AuthResponseMsg and check this signature (AuthResponseMsg message can be completely removed if every envelope contains this signature)
Communicate over TLS to prevent eavesdropping (alternatively we could add the signature to every single message, which would still allow an Adversary to read or reorder messages (=> honest-but-curious middle-man proxy, if wanted)
One of the following

Recommended:: Add signature of sender (wire identity) to all envelopes (instead of just to AuthResponseMsg)
Correctly implement the authentication: All Envelopes except AuthResponseMsg MUST NOT be valid if there was no AuthResponseMsg for this sender on this session. - Important: This does not protect against a malicious middle-man proxy that terminates TLS.
Don't allow multiple wire identities over the same TCP/TLS session. (probably the case at the moment)

It should be possible to implement a wire adapter that provides authentication. AFAIR, there is an implementation that utilizes libp2p to achieve encryption and authentication. @tinnendo should be able to point you to it.

You can send arbitrary Envelopes over any connection and afaik, there is no check that would bind a single connection to a single sender. Neither the wire/net.Bus nor the wire/net.ioConn check for the Sender field of the envelopes, and all received envelopes get multiplexed over a central wire.Publisher.


api : add account associated addresses endpoint

Thank you! It looks good but there's a small catch - the response has the addresses wrapped in another object
[
  {
    "address": "addr1qx2kd28nq8ac5prwg32hhvudlwggpgfp8utlyqxu6wqgz62f79qsdmm5dsknt9ecr5w468r9ey0fxwkdrwh08ly3tu9sy0f4qd"
  },
  {
    "address": "addr1q8j55h253zcvl326sk5qdt2n8z7eghzspe0ekxgncr796s2f79qsdmm5dsknt9ecr5w468r9ey0fxwkdrwh08ly3tu9sjmd35m"
  }
]

instead of just "list of strings" so we need a newtype wrapper that parses this. There are some examples like ScriptCBOR or ScriptDatum if you want to try.

Hi @sorki, yes sorry I knew it... got distracted before finishing it....  why are you not only returning an array of string without the field address ? I could have mapped [Address] instead of using an newtype like I juste did...

@nhenin the reason is that if we would eventually need to add a new field/information in the future, we would not have to introduce a breaking change into the API by converting the array of string into an array of objects.

Merged as part of #9 and released on Hackage. Thanks!


Microk8s in WSL2 22.04 with native Systemd support fails with internal error, please report: running "microk8s" failed

Summary
Installing Microk8s using native systemd support in WSL2 fails with:
internal error, please report: running "microk8s" failed: cannot find installed snap "microk8s" at revision 4595: missing file /snap/microk8s/4595/meta/snap.yaml

What Should Happen Instead?
I expect microk8s to start and function normally.
Reproduction Steps
Using Windows 11 (verified on multiple machines with different 22h2+)

Install WSL2 from the Windows store
Install Ubuntu 22.04 using wsl --install Ubuntu-22.04
Create user account
Edit /etc/wsl.conf and add:

[boot]
systemd=true

wsl --shutdown
Open Ubuntu 22.04
run sudo snap install microk8s
Once complete, run sudo microk8s start or sudo microk8s status

Introspection Report
~$ sudo microk8s inspect
internal error, please report: running "microk8s" failed: cannot find installed snap "microk8s" at revision 4595: missing file /snap/microk8s/4595/meta/snap.yaml

Can you suggest a fix?
I'm not quite certain; happy to help diagnose it.
Are you interested in contributing with a fix?
Yes - with guidance

@neoaggelos thank you for the quick reply. Yes, I am following those. (I forgot to add --classic to the snap install command line).
Here's the output of snap list:
Name                      Version          Rev    Tracking         Publisher   Notes
bare                      1.0              5      latest/stable    canonical✓  base
core18                    20230207         2697   latest/stable    canonical✓  base
core20                    20230126         1822   latest/stable    canonical✓  base
gtk-common-themes         0.1-81-g442e511  1535   latest/stable/…  canonical✓  -
microk8s                  v1.26.1          4595   1.26/stable      canonical✓  classic
snapd                     2.58.2           18357  latest/stable    canonical✓  snapd
ubuntu-desktop-installer  0+git.50d8deaa   802    latest/edge      canonical✓  classic

I have to admit that this "internal error" is not something I have encountered. I also assume that yoy have properly configured virtualization extensions from BIOS and enabled all WSL components since you have a VM up and running.
Can you see whether a restart of the computer solves the problem? Also, are there any more details in the outputsnof journalctl or dmesg?

On a whim, I tried using other snaps; it seems that this issue is in snap itself not microk8s:
 sudo snap install mosquitto
mosquitto.ctrl
internal error, please report: running "mosquitto.ctrl" failed: cannot find installed snap "mosquitto" at revision 776: missing file /snap/mosquitto/776/meta/snap.yaml

I wish the error indicated it was from snap itself instead of implying it was a microk8s issue. I'm going to close this and follow up on snap.
Thank you for the quick replies and turnaround!

Turns out this happens if you run terminal as administrator.
https://github.com/microsoft/WSL/issues/9097
Not sure why this would happen, but running it normally does not repo the behavior.


I'm not able to take a picture of king dig on the path to nogrod

Can you explain a bit more?

Can you explain a bit more?

on route 4 going from agni to nogrod you are required to talk to a scientist then take a picture of the shiny diglett named king dig in the cave and bring it back to the scientist

on route 4 going from agni to nogrod you are required to talk to a scientist then take a picture of the shiny diglett named king dig in the cave and bring it back to the scientist

Player had 3 active quest and couldn't start quest. Closing ticket

Player had 3 active quest and couldn't start quest. Closing ticket


Unwanted printed output from read_excel

read_excel prints lines unrelated to the output:
file to use for example (tst_case.xls):
https://drive.google.com/uc?export=download&id=0B_h1BO3hBg0gX0lhSU5SQXBvd1E:
code:
> foo <- read_excel("./tst_case.xls")
DEFINEDNAME: 21 00 00 01 0b 00 00 00 01 00 00 00 00 00 00 0d 3b 00 00 00 00 a8 00 00 00 06 00
DEFINEDNAME: 21 00 00 01 0b 00 00 00 01 00 00 00 00 00 00 0d 3b 00 00 00 00 a8 00 00 00 06 00
DEFINEDNAME: 21 00 00 01 0b 00 00 00 01 00 00 00 00 00 00 0d 3b 00 00 00 00 a8 00 00 00 06 00
DEFINEDNAME: 21 00 00 01 0b 00 00 00 01 00 00 00 00 00 00 0d 3b 00 00 00 00 a8 00 00 00 06 00

Just noticed that if I save the file as xlsx then the problem goes away.

I think this has to do with the way libxls deals with named ranges (#79)
For future reference, the printf statement that creates this output is in xls.c, under the line that contains XLS_RECORD_DEFINEDNAME

Hi!  Found another example of this.
name <- tempfile(pattern = "enr", tmpdir = tempdir(), fileext = ".zip")
tdir <- tempdir()

downloader::download("http://www.nj.gov/education/data/enr/enr11/enr.zip", dest=tname, mode="wb")

utils::unzip(tname, exdir = tdir)

#read excel
enr_files <- utils::unzip(tname, exdir = ".", list = TRUE)
enr <- readxl::read_excel(paste0(tdir,'\\',enr_files$Name[1]))

outputs:
DEFINEDNAME: 21 00 00 01 0b 00 00 00 01 00 00 00 00 00 00 0d 3b 00 00 00 00 23 65 00 00 19 00
DEFINEDNAME: 21 00 00 01 0b 00 00 00 01 00 00 00 00 00 00 0d 3b 00 00 00 00 23 65 00 00 19 00
DEFINEDNAME: 21 00 00 01 0b 00 00 00 01 00 00 00 00 00 00 0d 3b 00 00 00 00 23 65 00 00 19 00
DEFINEDNAME: 21 00 00 01 0b 00 00 00 01 00 00 00 00 00 00 0d 3b 00 00 00 00 23 65 00 00 19 00

Excel name manager does not report and defined names or ranges in that file name - for whatever that's worth!
Super helpful package.  Thanks for all your work on this--

It looks like it could be a named range or a global function.

I have filed an issue with libxls: https://sourceforge.net/p/libxls/bugs/27/

I already filed one and implemented it GitHub. They are debating whether to include my changes upstream.

+1 for addressing this

I am still running into this issue with readxl version 0.1.0
I can't find a way to suppress the DEFINEDNAME output without also capturing the output I actually care about (the contents of the Excel sheet).
Is there a temporary workaround that we can implement in our R code, or do we have to wait for an update to libxls?

The upstream project, libxml, seems to be dormant: No commits for a year, no reaction to the issue I filed.

I also just encountered this problem.  I'm using readxl 0.1.0, R3.2.3 on Win 7.  It not only print out these things, but also adding extra ":00" to a particular column of my file.
After upgrading to 0.1.1, the print out is still there, but the extra ":00" seems gone.

I recently ran into this issue. Similar in spirit to the solution above, I ended up masking the readxl functions in my global env with these silenced versions. Leaving this here in case anyone else runs into the same issue
excel_sheets <- function(path) {
  quiet_excel_sheets <- purrr::quietly(readxl::excel_sheets)
  out <- quiet_excel_sheets(path)
  if(length(c(out[["warnings"]], out[["messages"]])) == 0)
         return(out[["result"]])
  else readxl::excel_sheets(path)
}

read_excel <-  function(...) {
  quiet_read <- purrr::quietly(readxl::read_excel)
  out <- quiet_read(...)
  if(length(c(out[["warnings"]], out[["messages"]])) == 0)
    return(out[["result"]])
  else readxl::read_excel(...)
}

Another +1 for this issue.  I'm using the workaround posted above for now
my_data <- quiet_read("my_sheet.xls")$result```

I'm reading an .xls (not .xlsx) and my sessionInfo is:

R version 3.3.1 (2016-06-21)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.11.6 (El Capitan)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base
other attached packages:
[1] lubridate_1.5.6  readxl_0.1.1     magrittr_1.5     data.table_1.9.6 ggplot2_2.2.0
loaded via a namespace (and not attached):
[1] Rcpp_0.12.6      assertthat_0.1   chron_2.3-47     grid_3.3.1       plyr_1.8.4
[6] gtable_0.2.0     formatR_1.4      scales_0.4.1     stringi_1.1.1    lazyeval_0.2.0
[11] tools_3.3.1      stringr_1.1.0    munsell_0.4.3    colorspace_1.2-6 knitr_1.14
[16] tibble_1.1


react-router - Server side rendering

Hi, is it now possible to render react-router on server side in MVC5? I read some discussions more than year old that there is some modificated version of ReactJS.NET. Is it possible/planned to support this in 'official' React.NET?

In case your interested, react-aspnet-boilerplate handles this.

I have seen yours boilerplate but I have to use MVC5/ASP.NET 4.x so I can't use this solution.

I have the same problem, the Javascriptviewengine only supports MVC 6. Is there any development in this area?

@BrumoMiguelAS Not as of now, no. I'd like to, just don't have the time.

@BrumoMiguelAS @alesdvorakcz JavaScriptViewEngine now supports MVC Core 1 (MVC 6) and MVC 5.

@BrumoMiguelAS @alesdvorakcz and others who might stumble upon this issue, if you would like to use ReactJS.NET as the core for a server side rendering solution you might be interested in my solution.
https://github.com/gunnim/GMO.ReactRouterNet
This package extends upon the core features of ReactJS.NET and offers a way to render a React Router component with context object.
https://github.com/gunnim/Umbraco-React-Router-SSR
This repo contains a full working MVC 5 solution built on top of Umbraco, the js closely mirrors the current server side rendering tutorial from React Router.

Docs are here for React Router integration: https://reactjs.net/bundling/webpack.html


Adds ability to generate and send InvoicePDF as an attachment.

Notion card
https://www.notion.so/saeloun/Generate-PDF-attachment-of-the-invoice-21035ae1b67a4aa7820b1ae21d7290b6
Summary
Added generation of PDF AS attachment while mailing invoices.
Preview

Type of change
Please delete options that are not relevant.

[ ] New feature (non-breaking change which adds functionality)

How Has This Been Tested?

Checklist:

[x] I have manually tested all workflows
[x] I have performed a self-review of my own code
[ ] I have added automated tests for my code

@anasansari157 CI check failed.

@mohd-anas-ansari Have you fixed all the review comments on this PR?

@apoorv1316 Yes, all reviews have been addressed.

@apoorv1316 Please test this .


How to access mouse Events? onMouseUp and onMouseDown, to get coordinates.

I want to get mouse coordinates onMouseUp and onMouseDown events, so that i can replicate the design in another screen. @tbolis @karlvr @shafy @afilp

Hi,
I had similar issue. You are able to export the drawing as DataUrl and set it as a background in an other React-sketch application (in your case screen).
Check the demo application. There is a way to download the drawing as dataUrl. To import you can use .setBackgroundFromDataUrl in the SketchField component reference.
I hope it was useful.
Good luck


undefined tags throw an error

Hi guys !
First, thanks for having created the plugin! I'm using it to display my favorite articles on my personal website (which is not published yet).
I have run into the following error:

Indeed, this article has no tags. See the object returned by the Pocket API:
"1952903649": {
      "item_id": "1952903649",
      "resolved_id": "1952903649",
      "given_url": "https:\/\/hbr.org\/2017\/11\/many-strategies-fail-because-theyre-not-actually-strategies",
      "given_title": "Many Strategies Fail Because They’re Not Actually Strategies",
      "favorite": "1",
      "status": "1",
      "time_added": "1517864651",
      "time_updated": "1553810681",
      "time_read": "1518768063",
      "time_favorited": "1553640743",
      "sort_id": 47,
      "resolved_title": "Many Strategies Fail Because They’re Not Actually Strategies",
      "resolved_url": "https:\/\/hbr.org\/2017\/11\/many-strategies-fail-because-theyre-not-actually-strategies",
      "excerpt": "Many strategy execution processes fail because the firm does not have something worth executing. The strategy consultants come in, do their work, and document the new strategy in a PowerPoint presentation and a weighty report.",
      "is_article": "1",
      "is_index": "0",
      "has_video": "0",
      "has_image": "1",
      "word_count": "1377",
      "lang": "en",
      "time_to_read": 6,
      "top_image_url": "https:\/\/hbr.org\/resources\/images\/article_assets\/2017\/11\/nov17-08-135629213-Lobo-Press.jpg",
      "authors": {
        "97789314": {
          "item_id": "1952903649",
          "author_id": "97789314",
          "name": "Freek Vermeulen",
          "url": "https:\/\/hbr.org\/search?term=freek%20vermeulen"
        }
      },
      "image": {
        "item_id": "1952903649",
        "src": "https:\/\/hbr.org\/resources\/images\/article_assets\/2017\/11\/nov17-08-135629213-Lobo-Press.jpg",
        "width": "1200",
        "height": "675"
      },
      "images": {
        "1": {
          "item_id": "1952903649",
          "image_id": "1",
          "src": "https:\/\/hbr.org\/resources\/images\/article_assets\/2017\/11\/nov17-08-135629213-Lobo-Press.jpg",
          "width": "1200",
          "height": "675",
          "credit": "Lobo Press\/Getty Images",
          "caption": "Lobo Press\/Getty Images"
        }
      },
      "domain_metadata": {
        "name": "Harvard Business Review",
        "logo": "https:\/\/logo.clearbit.com\/hbr.org?size=800",
        "greyscale_logo": "https:\/\/logo.clearbit.com\/hbr.org?size=800&greyscale=true"
      },
      "listen_duration_estimate": 533
    },

It's a one-line fix at line 135 tags: Object.keys(datum.tags), but I can make a PR if you don't have time for it.
Many thanks

Hi @laugri thanks for finding this - I pretty much never use tags maybe why I've not seen this. Please make a PR if you can 🥇

Ok will do! I tried pushing a branch with a fix before opening the issue, but I think I need some more permissions to do that and open a PR.

@laugri thank you! You shouldn't need any permissions to fork the repo and submit a PR, and others have done this. Happy to step through it with you if it would help?

@conradj yep sorry, I just submitted a PR.

@conradj Sorry to spam but this bugs prevents me from deploying my project so if you could review and merge soon, it would be awesome !


See wavesurfer regions list content

Wavesurfer.js version(s):
2.2.1
Browser version(s):
Google Chrome
Version 75.0.3770.100 (Official Build) (64-bit)
Problem
Hey there! I tried to access the regions list but I couldn't. I read all the documentation, issues and searched my issue but I didn't find a way to see the list's content.
Any ideas?
Code:

at first look it is ok
what is the exact error?
ensure wavesurfer is the correct instance, seems to be a global var

I went back to the documentation and I solved my issue, It was something about the library.
Thank you.


Auth0

Can this work with auth0?

Never tried. But it probably does. Just follow the Auth0 guide.
If you do some work on this, please share your thoughts with us. 👍


vehicle channels overrides

i want to controll my drone with my laptop keyboard. so i have connected apm to r pi. and r pi has wifi module so further i have connected r pi to my laptop via wifi. now i want to fly my drone with laptop. can i use channel overrides??so i can directly set the value of throttle, yaw ,pitch via my laptop.
i have read this here:http://python.dronekit.io/examples/channel_overrides.html
NOTE:
Channel overrides (a.k.a "RC overrides") are highly discommended (they are primarily implemented
for simulating user input and when implementing certain types of joystick control).
thank you

Yes.
Provided you can get the channel over-ride mavlink commands to your ardupilot from your laptop. This is a reasonable use of channel overrides.


Fix couple of errors

The API doesn't give correct value with Title case
The fact that you need to add @ts-nocheck is not explained in the text

The second commit might be out of syllabus, feel free to tell me if I should revert

Thank you! 😄
I would like to accept the Pokemon API change but the decorators section is meant to be untyped because it's not the focus and I fear it's going to be more confusing to the reader while not being properly typed.
Can you remove that?

Makes sense, I've removed the advanced typing part. I think it make sense to still kept the ts-nocheck part because else the example doesn't work (confused me when I was following your code from the text) and it is consistent with what you do in the video as well.
Is this better?

Oh cool, didn't realize this was a way out! - Definitely better! Now there is a slight inconsistency between your video tutorial and this, but I don't think it should cause any confusion. LGTM!

Thank you! 😄


Initialize_TPM_Codec never returns when using TPM emulator

Hello,
I am developping an application using Azure IoT SDK. We plan to use a TPM but for now the hardware isn't available, so we are trying to use the TPM emulator to test our cloud infrastructure until then. We are using it on Linux and connecting it to https://sourceforge.net/projects/ibmswtpm2/
We got the provisioning working, but we are not able to then connect to the Azure IoT cloud. Our code calls IoTHubDeviceClient_CreateFromDeviceAuth in azure-iot-sdk-c, which ends up calling Initialize_TPM_Codec in utpm.
That function never returns (we waited for several minutes, surely it shouldn't take that long).
I guess (but this is only a guess) this could be because of trying to initialize the TPM codec a second time, after it has already been done for the provisioning. I don't know if the TPM emulator implements or need some form of arbitration as a real TPM would. Or maybe we are asking too much of the emulator and it is not designed to be pushed this far?
Do you have any recommendations? How can I help with debugging this issue and understanding why there is a lockup? If this usage is not possible, shouldn't the function return an error code instead of just blocking forever?

I managed to get it working.
I was calling the IoTHubDeviceClient_CreateFromDeviceAuth before prov_device_destroy.
As a result, the provisioning was locking the TPM and the IoTHub part of the SDK could never access it. And there doesn't seem to be a timeout on this, so I just ended in a deadlock.

Thanks @pulkomandy for sharing the solution!


remove code inspector

Coverage remained the same at 100.0% when pulling 8e6b06d3314793df9d576b74579fd7c411e224f7 on remove-code-inspector into 888766ddd56b64ab95a8d36b39ba828ed511d8c5 on master.


drivers: wifi: esp: rework and deduplicate +IPD and +CIPRECVDATA

Both +IPD and +CIPRECVDATA are quite hard to follow. Split them
into smaller functions and deduplicate common part.
Depends on #30604 #30630

@mniestroj could you solve the merge conflict


Physics colliders and objects are not properly positioned

Issue with hex maps:

Originally posted by @darkautism in https://github.com/adrien-bon/bevy_ecs_tiled/issues/31#issuecomment-2416290508

And for isometric maps:

On-going PR #39

Fixed in v0.4.0.


Blue ticker IOS for location tracking remove/ stop location tracking based on premission.

I need to track location only when user allows "Always" permission for location tracking. The same functionality as Foursquare app.
The problem is as long as the permission for location tracking is always there is no ticker for location tracking in IOS. When I change permission to "when in use" from settings the ticker start showing. Here I want that the location tracking stops and blue ticker goes away

Sorry, can you explain what you mean by "ticker"? If possible, a reproducible demo would be very useful.

May @harrie006  mention blue bar in https://developer.apple.com/library/archive/qa/qa1965/_index.html
Seem this module already support it: https://github.com/timfpark/react-native-location/blob/master/ios/RNLocation.m#L192
Note that we need iOS 11+ to see that happen.

Ok. Thanks for letting me know. This should be possible with the options that the library currently has.


Tweak wording on unreferenced objects in qdf.rst

...based on a debian bug report.
This was reported in https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1067196.

I think it would be easier to change the object to null and remove indirect references in arrays (if any) only. Also. I don't think there is a need to run fix-qdf before running the file through qpdf.

I think it would be easier to change the object to null and remove indirect references in arrays (if any) only. Also. I don't think there is a need to run fix-qdf before running the file through qpdf.

I'm not sure this would be easier.