Port NBuilder to Dot Net Core

https://docs.microsoft.com/en-us/dotnet/articles/core/porting/

I made a first attempt in porting, available in my cloned repo. Library builds and a little test program works as well but I have not yet ported the tests. I was fighting with supporting the full .net framework parallel to .net core with one source dir and only an additional xproj file.
According to my found resources it seem not to be possible to have both csproj & xproj project in one dir (clashes regarding project.json and not beeing able to "link" source file into two directories, see issue here ). Also it seems according to this that the build structure will change in .net core also.
Any suggestions/ideas on how to organize the build tree under the given circumstances?

I've done the same. What I've figured out is that I first need to upgrade to .NET 4.6, migrate to use .NET Core compatible libraries, and save the actual code conversion for the end.
I've done the 4.6 upgrade on a branch, though I've apparently not pushed that branch up yet.
The next step will be to convert the RhinoMocks usage in the tests to NSubstitute which has a .NET Core implementation. The actual code in in NBuilder converts rather easily, but I'm not willing to do it without taking the working tests along for the ride.
When I get home tonight I'll push up my working branch. If you want to help me with the RhinoMocks => NSubstitute conversion I'd really appreciate it. From there it should be pretty easy.
As to your specific question regarding the new source tree--I'm going to create a new folder /src and put the .NET Core conversion in it--but only after it is essentially a copy-paste operation. My understanding is that with a single solution and set of source code I should be able to target multiple platforms. This will be an improvement over what we have now, though it will necessitate dropping support for .NET 4.0 and earlier. I'm okay with that. The world is moving on--so should we.

Nsubstitute over Moq?

Also, Moq and xUnit are the two frameworks used in vNext stuff.
So keeping with familiarity, maybe use those two instead?

@PureKrome I have a strong preference for NSubstitute over Moq, and since I do most of the work on this project these days I'd prefer to use it. NUnit has a .NET Core implementation, so I don't see converting to xUnit as adding value.
I'm staying focused on "done." :)
Feel free to argue with me.

not going to argue at all :) reasons are perfectly justified 👍

RhinoMocks is no more. Next will be the 2nd attempt at the .NET Core conversion.

Regarding NUnit: dotnet-test-nunit only exists as v.3.4.0-beta3 and is not compatible with latest netcoreapp version. I'm not able to get the tests running with my update NBuilder code for .net core.
Options:

wait for dotnet-test-nunit to upgrade and support latest .Netstandard (but there's a stall since 2 month)
make NBuilder .netstandard1.0
switich to xUnit (which is against your wish above).

Ideas? Suggestions?

I do have UTs running (not the functional ones yet) : checkout my dncore branch
go to Fizzware.NBuilder

dotnet restore && dotnet build

go to Fizzware.NBuilder.Tests

dotnet restore && dotnet build && dotnet test

its based on netstandard1.0 & netcoreapp1.0 that is also supported by dotnet-test-nunit.

Some more information on netstandard vs netcoreapp wrt NUnit can be found in this issue

@crmckenzie bump

I've got another PR (61) doing similar work. When MS introduced .NET Standard and reverted to .csproj files I became concerned that we'd need to do another revision of this work to keep things current. To my knowledge, there's no current version of .NET Standard that works with both 4.6/7 and dotnetcore, but that is coming. My feeling is that we should concentrate on building a .NET Standard version of NBuilder and abandon using 3-4 solutions to recompile the same code for different platforms.
Thoughts?

I thought .NET Standard 1.3 is for .NET 4.6+ and .NET Core?
ref: .NET Standard Platform Support Matrix
That said, I would assume it should be easier now to support more platforms under a single solution if you upgrade the project to using .NET Core vs multi-sln+.Net Old.

.NET Standard 1.6 is compatible with 4.7. .NET Standard 1.1 is compatible with 4.5.2. .NET Standard 2.0 will be backwards compatible with basically everything.

Okay--let's do .NET Standard 1.3 then.

very very, warm and polite bump on this?

Hi all,
a carful question here: why targeting the latest and greatest runtimes when it doesn't seem to be necessary. At least the main lib is fully capable of being build against net461.. which I actually need because 4.7 is not installed in my environment and I rebuild it by just changing the frameworks target in csproj.
I'm also not sure whether netstandard1.6 is really necessary either. The following tool might be helpful, although I've not yet tested it myself. https://docs.microsoft.com/en-us/dotnet/standard/portability-analyzer
IMHO we should try to target the minimally necessary API surface/runtime that is absolutely necessary to make the lib available to as many environments as possible.
Just my 2c. Opinions?
PS: if the test suites need 4.7 that would be fine because it's for building only, but the lib itself could at least be targeting lower versions.

I'm close to having a working build for 3.5, 4.0, 4.7, and Standard 1.6. The compilation part works--I just have to get the build scripts all straightened out.

@crmckenzie great to hear this 👍  but do we really have platform specific code in the 4.7/1.6 arena that needs such a big API surface? Just to make myself maybe a little clearer: I'm only talking about the build for netstandard. I understand the specific  3.0 & 4.0 versions, but for eveything else we could check what the lowest netstandard version is that we need for the lib. Then we could support much more than with net47/netstand1.6 as this creates a gap for all netstandard based projects that do not want to target the full framework and support lower netstandard versions. (== everything with support for netstandard1.1 - 1.5).
All this holds only if  I understand the matrix here  and the info about standards/targets and so onhere and here correctly.
With some luck I find some time to check the code myself so that I can help with concrete PRs and not just talking :-) But at least I want to know whether I made myself clear and what you think about this topic.

3.5, 4.0, 4.7, and Standard 1.6

I've not ran the port analyser on this either ... but .... if it's all pretty common stuff, then it could target

3.5 (old / back compat)
4.0 (again, old / back compat)
4.5 (again, old and back compat)
4.6 == .NET Standard 1.3  (so that's 4.6+)

in theory, you could do this too..

3.5
4.0
.NET Standard 1.0 (which is 4.5+)

@ckolumbus See PR #61 -- basically reflection stuff and trace logging had to be adjusted for platform-specific reasons. It's possible these APIs have been added back in for netstandard 2 but I haven't checked yet.

Is there anything we (the community) can do right now, to help?

Oh also - speaking of frameworks once more ... does it have to target those low ones? could it possibly just target .NETStandard 1.4 and be done with it? The other frameworks can be packages up on NuGet that are obsolete or somehow maker as the most recent ?

@PureKrome I suppose testing/using my fork could help, in order to have more eyes on it. Then we might be able to persuade the Chrisses to move forward. Another thing I've been thinking about is whether we can remove some of the duplicate sln files like you said.

@ckolumbus "but do we really have platform specific code in the 4.7/1.6"
Unknown. One of the challenges I have is that the dev tools for dotnet core 1.0 and 1.1 do not play nicely side-by-side. My thinking was to err on the side of dotnet core 1.1 since it's newer and presumably represents the direction that MS is moving.
As to the progress on this issue: it's mostly done. I just need to find 4-6 uninterrupted hours to make the build scripts function again. I think I know how to do it but finding the time to sit down with it has been difficult lately for life reasons. Perhaps I'll just push it up in its broken state and one of you can help me with it if you have the time.

Perhaps I'll just push it up in its broken state and one of you can help me with it if you have the time.

When you say "push it up" I hope you can do this if it's all to a separate branch so then we can pull it down, review, tinker, play and hopefully share the love/load and get a fix up.
I've done a heap of work getting things to work on AppVeyor with powershell ... but my experience with custom build tools like cake, etc is low.
I'm very eager to help because this project is one of my major blockers for migrating my existing stuff over to Core.

@lorddev Interesting you suggested reviewing #61 .. cause that's exactly what I did yesterday. First thing I did was clone this repo. Then switch to #61 then downgraded the framework from NS1.6 to NS1.4 ... deleted all the test projects .. then built .. and boom :(
This reflection stuff is killing me.
Any chance you could try and get the project to work on NS1.4 ??
When I do file->new->Standard Library project, it defaults to 1.4 (which is why i've been starting out targetting 1.4). But of course ...  I was going to see how low I could go.

@crmckenzie just push it and I'll give it a try!

@PureKrome @crmckenzie per https://stackoverflow.com/a/40685046/16454 BindingFlags did not exist in 1.4 so I will have to reference another library for it to build.

@crmckenzie @PureKrome I'm sorry. It seems the reflection APIs in 1.4 are simply incompatible. Please consider using 1.6.

The conversion to .NET Standard 1.6 is complete. The code compiles. The tests pass. What's left is the scripts used to build the package on AppVeyor. I'll try to push that up tonight so others can help me with them.

I have the day off so the sooner you push it up, the sooner I can look into it. 👍

I've pushed to feature/55.  Here's what I think needs to happen:

The .NET Standard Solution needs .NET Standard projects for the tests. They currently build against .NET 4.7 which seems to confuse the NUnit test runner during the build/test process.
Invoke-EmulateAppVeyor is the script I use to build the nuget package with the various compilled versions of NBuilder.

My goal is to produce a nuget package with binaries for .NET 4.0, 4.7 and .NET Standard 1.6. Once Invoke-EmulateAppVeyor does that I'll put nbuilder through the release process.
If anyone makes progress on this, let me know. Otherwise I'll get to it as soon as I can.

Thanks for pushing this up!

@crmckenzie Yo - so I've started playing with your branch.

The .NET Standard Solution needs .NET Standard projects for the tests

Okay. So i migrated FizzWare.NBuilder.Tests to .NS1.6. I'm a noob at this so it took a bit of meddling to get it to compile. Next issue was getting nunit to run at all. Doesn't get discovered in Resharper but it does get discovered in Test Explorer. 415 tests passed.
Next, I'm trying now with FizzWare.FunctionalTests.Model project. But this has a dependency on EntityFramework 6.1.3. Which ... is a problem. This don't exist/work under a .NET Core app :(
So - do we need the tests to be running as .NET Core? Or can we maybe run then as .NET 4.7 framework but under a .NET Core prj (yes, this is so confusing for me still).
What issues did you have?

Quick note: Be careful with "migrate"--we should build new test projects pointing at the same cs files so that the .NET 4 solution is unaffected by this work.

Re: NUnit - Nunit works for me in VS, but it took some finagling. Where I left off is that it doesn't work from the command-line which I believe is the result of framework confusion.

Re: EntityFramework - I don't have any easy answers for this. I was hoping that we could just port the projects to .NET Standard and be done with it. It appears that Microsoft's framework churn has made that goal less viable. Worst case we can drop the integration tests from the .NET Standard solution until we have .NET Standard testrunner support.

"do we need the tests to be running as .NET Core?" - Yes if possible. I've already uncovered and fixed some defects in NBuilder caused by subtle changes in framework implementations between .NET Standard and .NET 4.0. Without the tests we'd be shooting in the dark.

And in case I forget to mention it--thanks for taking a look at this.

@crmckenzie tests are already broken. I created another issue: #62

Quick note: Be careful with "migrate"--we should build new test projects pointing at the same cs files so that the .NET 4 solution is unaffected by this work.

Yep. that's exactly what I did => Add new Project -> Standard Lib 1.6. Then copied the old files over to the new project.

Where I left off is that it doesn't work from the command-line which I believe is the result of framework confusion.

Ah! CLI. ok. It's been ... maybe a decade since i used NUnit last so all this is new to me (i.e. learning the new tools to use). So I'll see if I can get something working there/then.

EntityFramework

I'll try dropping it, in the mean time. Baby steps, etc.

Without the tests we'd be shooting in the dark.

Totally agreed. I was more checking if the tests had to target a particular framework. .NET core 1.1 or .NET Framework 4.7 all under the new csproj format of a the new CORE project template, etc. Yeah - so confusing. Naming is hard. 😢

And in case I forget to mention it--thanks for taking a look at this.

Pleasure :) Full disclosure: my reasons are purely selfish though (even though I do love doing OSS of course!) This library is literally one of the only ones now, that are stopping me from going 100% .NET core. I think i have one other.. i think. But yeah :)
Many hands make light work 👍
(I hope my tinkering can end up becoming helpful and contributable. 😊 )

HasMany().WithMany() doesn't work in EF 7. Otherwise I was able to finagle things. But it's kind of a blocker.

Is there an EF7 equivalent? We could control that with preprocessor directives.

Maybe drop EF and go Dapper? (no small feat :( )

@PureKrome I think it's easier than that. I'm looking into going in-memory.
BTW, NUnit published a new version of their test adapter. I'm looking into going .NET Standard across the board. I'll let you know if I get anywhere.

Thanks heaps @crmckenzie - I totally know I'm sounding like a pushy, random OSS asshat so I totally appreciate volunteers finding time and trying to get things done in OSS projects, etc.

After a couple of hours of investigation last night, I think things need to happen in a specific sequence at this point.

Remove EntityFramework from the FunctionalTests project. Instead use an in-memory implementation of BaseRepository. This has the sideeffect of removing the "ProductCategories" table from the tests and associated assertions as that table would be created by an ORM when talking to a relational database. I've already done this on my branch but it's comingled with other work. I'm going to revert, redo, and push the changes to this branch.
Consolidate FunctionalTests and the standard Unit Tests into the same project as there's no longer anything that requires out-of-process resources. This has the benefit of reducing the number of test projects that have to be maintained.
As there are now only 2 projects, convert them both to .NET Standard 1.6
Port the tests to a testing framework that supports .NET Standard 1.6. We can keep the reference to NUnit to maintain the Assertions as they are currently coded but we need a test runner that will actually work. This framework still needs to be identified but I'm leaning toward MSTest if it works as it was basically modeled on NUnit so the port should be minimal.

Constraints

I do not want to maintain 2 copies of the source files for the 4.5 and .NET Standard solutions. Any code differences should be resolved via preprocessor directories (e.g. #if NETSTANDARD1_6) but .NET Standard projects and original projects should reference the same source files.
The ultimate goal is that Invoke-EmulateAppVeyor.ps1 compiles and tests the code and generates a nuget package with net35, net45, and netstandard16 versions of nbuilder.dll.
It's more important that the tests function during the AppVeyor process than in the Visual Studio or ReSharper Test Runners.

The feature/55 branch is now ready for a testing framework port for the .NET Standard projects. I tried MS Test and got nowhere.

@crmckenzie can we please consider xUnit for the testing framework please? That's what' being used by the MS team for their repo's, etc.
ref: Kestrel HTTP Server
ref: [MVC]9https://github.com/aspnet/Mvc/blob/dev/test/Microsoft.AspNetCore.Mvc.Core.Test/AcceptedAtActionResultTests.cs)
ref: EntityFramework

@PureKrome They've declined previous requests to use xunit. But tests are working for me with nunit... just not the previously-mentioned one.

@PureKrome I think you're right. I've tried for a couple hours to get nunit working with .net core and I can't do it.

They've declined previous requests to use xunit.

Yep - and I agree with their rational for sticking with the current libraries. But now things have changed .. as in .. the older libraries are not working as easily with the newer ways.
So maybe this might be the catalyst for change ... ??

I have no principled opposition to using xUnit other than that changing a test-framework is a non-trivial operation and must be justified. So far that hasn't been the case.
That said, I've been unable to get any testing framework (including xUnit) to work against a .NET Standard project. I have a prototype solution that I'm working on to prove that this or that testing framework will function but I haven't pushed it to github yet. I'm still exploring possible solutions. Show me a working solution where the assembly under test is .NET Standard and I'll start the port myself.

It's mon morning here. I'll see if I can get xUnit to work with the project at lunch or tonight. I've done a number of Core/NetStandard stuff with xunit. can confirm it does work :)

Show me a working solution where the assembly under test is .NET Standard and I'll start the port myself.

Refer to the links above for the official MS Repo's - they are all using xUnit + moq.

I've looked at that stuff and as I said I've tried to make it work but so far to no avail. I was able to get xunit to work with ReSharper, but not the command-line where it matters for the CI build.

@crmckenzie

this was just for the DatesTests.cs class...
so far so good.
i'll try and do the entire Unit folder ... the move up to the Integration folder....
is this what you mean by that you couldn't get the tests running on the CLI ... cause I did straight away .. ???
or am I missing something/misunderstood something?
BTW - now that I can run the unit test project from the CLI I can easily do this in an AppVeyor.yml file.
This is also just targetting a .NET core app (which is the .NetStandard 1.6 library), not another framework like 4.5 or 3.5 ...

Ok - some more info for everyone.
First, DISCLAIMER: I don't have .NET 3.5 installed on my machine.  So these steps EXCLUDE 3.5 but it can be easily added in if you have it installed 👍

Clean baseline.

Clone new, this repo.
switch feature/55. Pull latest upstream, just to be sure...

First, get Multi-targetting (for the main project => FizzWare.NBuilder).

Grab/read some references. MS Docs and Rick Strahl. Yep, there's more ref's but I found these two a great starting point amoungst a lot of the noise out there. Plus, they are recent (which is important in this time of quick influx/changes/turnaround).
Create new src and tests folders. This is so I don't mess with existing code (which is basically working) and starts to bring some consistency to the project structure making it easier and less scary for people to quickly grok the setup and feel comfortable looking a project code.
Create a new blank .sln and stick this in the root. (ref to point (2) just above).
Copy the current .NET Standard project to src\FizzWare.NBuilder . IMPORTANT: Note there's no FRAMEWORK moniker post-pending. This means i'm following the suggested first recommendation from the MS docs regarding "Organizing your project to support .NET Framework and .NET Core".
Now - the tricky bit.
Well, lets go back to this bit of code...
<TargetFrameworks>netstandard1.6;net45</TargetFrameworks>
This means Visual Studio will use the first framework in this list and compile everything against that.
So right now, VS is in .NET Standard 1.6 mode with my solution open.
Remember this next bit?
  <PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard1.6'">
    <DefineConstants>NETCORE;NETSTANDARD;NETSTANDARD1_6</DefineConstants>
  </PropertyGroup>

Because I'm in 1.6 mode (that's the first framework listed in that list..) ... the constants are setup for 1.6 mode. Want proof? Check out the properties of the project...

How do I now test 4.5 mode? Change the order of the frameworks in that one special line ... close solution .. open solution and it's not in 4.5 mode....
e.g. <TargetFrameworks>net45;netstandard1.6</TargetFrameworks>
Making sure multiple dll's are created.

Drop down to console/CLI mode for this.
cd to the root folder of this project. For me it's C:\projects\temp\nBuilder.
dotnet build -c Release  <-- this looks for the FizzWare.NBuilder.sln i created (read back a few steps, for when I did this). Inside my sln has (so far) just one .csproj which is targetting 1.6 and 4.5. So ... it builds both :)

Finally - multi-targetting testing
This is the kicker . Test projects are just like another form of host/application. Web apps are hosts. Console apps are hosts. So are tests.

TESTS ARE NOT .NET STANDARD PROJECTS.
TESTS should be a .NET CORE APP (or full framework if u're still in that arena).
If you're doing a .NET CORE APP then u can multi-target the tests :)

Most people (like me at first) think a Test Project is a .NET Standard app. Sad trumbone. It's not a library. It has to run, etc. It's not like the old days.
so .. with this powerful new information ...

Create the new test project => \tests\FizzWare.NBuilder.Tests <-- again, not there's no framework post-pended.
Update the xUnit packages to the latest pre-release. I don't usually use pre-releases but I had some trouble on the current stables (at the time of this post -> 2.2.0) and had instant luck with the pre's.

    <PackageReference Include="xunit" Version="2.3.0-beta3-build3705" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.3.0-beta3-build3705" />

Copy all the files from the existing test project (which is incorrectly a .NS 1.6 project) to this new project.
Added the Shouldly nuget package.
Removed all the files except the first one to make sure I can get the tests passing..
Replaced NUnit/Assert code with xUnit + Shouldly code with 3x replace-all-in-file commands. Yay!
💰 💰 💰 💰 💰
16 / 16 tests all pass, for both frameworks.

So that means .. can I finish the rest?
... nearly 2 hours later ...
OK - done.
I've update all the files in the Test project to use xUnit and Shouldly (tests are now more fluent and nicer to read). Most common update issue was how NUnit and xUnit handle their setup's differently. Just too labour to refactor.
All the tests but a few pass. So this is not so much an issue of the port, but an issue with the original tests:

xUnit is now really running parallel. So there's some bad tests that share state, etc. Running the tests by themselves, they pass. In a group ... they fight each other. Answer: Fix the test logic.
Some error about Persistence setup: FizzWare.NBuilder.PersistenceMethodNotFoundException : No persistence create method set up for Category. Add one using BuilderSettings.SetPersistenceCreateMethod(). I have no idea what this means so i'll leave this to people who are smarter than me.

Can we create nuget packages for multiple frameworks?
Yes we can. 👍

Update the project pacakge meta data in VS (or notepad, etc)
dotnet pack

of course, I didn't specify -c Release and the version number etc ... but this can all be done on the command line, etc.

So @crmckenzie - how does this look?

@PureKrome this is brilliant.  Once I can reproduce your results, I'll start working on the tests.

@PureKrome  I have admired your gif usage since you turned up to the NBuilder project. You always make me smile with your reaction gifs and input to this project and I'm happy this has been given a new owner and NBuilder continues on from Gareth. 👍  to your everyones efforts so far :D I always read all the NBuilder updates when I'm at work.

Alright @PureKrome you've convinced me. I'm going to retrace your steps using git move to preserve the file history. Thank you for leaving such a well-documented breadcrumb trail!

Okay I think this feature is done. @PureKrome would you like to review feature/55 and see if I missed anything? In the meantime I'm going to check for any quick bug-fixes that should make it into the 5.0.x release and start working on those.

@crmckenzie did you get those erroring unit tests, to work / pass?

Oh yeah. The port away from Entity Framework was initially implemented as a static in-memory collection which of course doesn't play nice with parallelized tests. I did some test-refactoring and am now getting consistent green.

Awesome! I'll check it out tonight and report back, etc.
Thanks!!

.vs folders shouldn't be checked in.
like this one in \src\vs -> https://github.com/nbuilder/nbuilder/tree/feature/55/src/.vs/config
Also, I don't think you need the Properties\AssemblyInfo.cs file any more? And the CommonAssemblyInfo.cs ??
Also, the NBuilder.snk exists in the src and src\FizzWare.NBuilder folders. Duplicates?
The rest Looks Good To Me. AWESOME!

Code ported, tests pass, AppVeyor build succeeds. Merging back to develop. This work will be in the next release (coming soon).

The beta package is up on nuget.org. @PureKrome , wanna pull it into a dotnet core project and verify the package is good?
https://www.nuget.org/packages/NBuilder/5.0.0-beta-135
I'm planning to release this weekend.

I might not get a chance in the next 48 hours. I'm literally about to head off to the snow for 2 days.
I will have a fair bit of time in a car (to snow) or bus (from snow) so I might try and test away.
VERY EXCITING!

Going to switch all my projects that implemented a local dotnet standard fork of NBuilder to use the nuget one. I'll let you know how it goes!

Works great!

Yep - works!!


Save results to PDF

Need to develop a way to give users a way to save the results to PDF or other formats.

Thanks @Nitsujed!


CodePen does NOT support Internet Explorer 11 (IE11)

This is more of an inconvenience than a problem. All examples in this repository are on Codepen. CodePen displays the following warning message when I attempt to open the bug and workaround examples provided on this repository in the Internet Explorer 11 (IE11) browser on a Windows 10 machine.

At the moment, I am resorting to doing one of the following:
1. Copying code locally
On my local machine, I:

Create a temporary CSS file and copy your CSS content from CodePen into it.
Create a temporary HTML file and copy your HTML content from CodePen into it.
Link the temporary CSS file as a stylesheet in the temporary HTML file.
Open the temporary HTML file inside IE11 browser to preview the output.

2. Fork your Pen
On a supported browser (like Google Chrome), I:

Sign-up for an account on CodePen.
Login into CodePen.
Fork your pen.
Switch to CodePen's Debug Mode using the Change view button.
Copy the Debug Mode URL.

Then, in IE11, I paste the Debug Mode URL into the address bar and open the page.
Is there a better way to get past this warning message and preview the bugs and their workarounds in IE11 apart from the steps which I have mentioned above?

@philipwalton / @mreinstein:
I have started some preliminary work on my fork here.
See the corresponding GitHub page here.
I will verify and update this comment if the corresponding GitHub page opens in IE11.

@philipwalton / @mreinstein:
See the working example for Flexbug#2 in GitHub pages here: https://akaustav.github.io/flexbugs/#flexbug-2
Any feedback is welcome.

@philipwalton / @mreinstein:
I have opened PR #276 as a proof of concept solution to this issue. Feel free to put any code review comments there.

@philipwalton / @mreinstein / @gregwhitworth
Do you have any comments on PR #276 ?

Hey, sorry for the reply delay. I just tried this in ie11 on a virtual machine, works great!

@mreinstein - Thanks for the feedback.
@philipwalton - I presume you are busy at the moment. Until you get some time to review, I am going to continue on the same approach for the remainder of the bugs and workaround on my fork. And perhaps you (or I - if I can get admin rights) can merge my PR #276 into this repo.

Sorry for the slow reply! Left a few comments in the PR.
(Again, thanks so much for helping with this!)

I have verified that examples load from GitHub pages now instead of codepen. Thanks for your support @philipwalton, @mreinstein and @gregwhitworth.


Show Smart Contract for interactive play?

After local deployment on Shipping.sol, right click does not populate a Show Smart Contract for interactive play?

How is this VS Code related? I don't understand what you mean.


Cannot build Docker image with version 2.192.0

When trying to build with agent with version 2.192.0 I simply receive an error checking context: 'syntax error in pattern' (see below).
Version 2.188.0 worked fine and no changes has been made to either code nor Dockerfile. Even an earlier succesfull build does not work anymore because the agent version has changed.
Here is a copy of the log that fails:
2021-10-04T08:35:42.5665037Z ##[section]Starting: Build and push an image to container registry
2021-10-04T08:35:42.5671772Z ==============================================================================
2021-10-04T08:35:42.5672108Z Task         : Docker
2021-10-04T08:35:42.5672573Z Description  : Build or push Docker images, login or logout, start or stop containers, or run a Docker command
2021-10-04T08:35:42.5672936Z Version      : 2.192.0
2021-10-04T08:35:42.5673189Z Author       : Microsoft Corporation
2021-10-04T08:35:42.5673471Z Help         : https://aka.ms/azpipes-docker-tsg
2021-10-04T08:35:42.5673815Z ==============================================================================
2021-10-04T08:35:43.0703604Z [command]/usr/bin/docker pull mcr.microsoft.com/dotnet/core/aspnet:3.1
2021-10-04T08:35:47.5257577Z 3.1: Pulling from dotnet/core/aspnet
2021-10-04T08:35:47.5258903Z 07aded7c29c6: Pulling fs layer
2021-10-04T08:35:47.5259883Z 97aff7269a5a: Pulling fs layer
2021-10-04T08:35:47.5261030Z 7250b4e3aa58: Pulling fs layer
2021-10-04T08:35:47.5262096Z 25f125849cc4: Pulling fs layer
2021-10-04T08:35:47.5262874Z 566ebd6588c2: Pulling fs layer
2021-10-04T08:35:47.5263636Z 25f125849cc4: Waiting
2021-10-04T08:35:47.5264408Z 566ebd6588c2: Waiting
2021-10-04T08:35:47.5265154Z 7250b4e3aa58: Verifying Checksum
2021-10-04T08:35:47.5265968Z 7250b4e3aa58: Download complete
2021-10-04T08:35:47.5266685Z 97aff7269a5a: Verifying Checksum
2021-10-04T08:35:47.5267352Z 97aff7269a5a: Download complete
2021-10-04T08:35:47.5268068Z 07aded7c29c6: Verifying Checksum
2021-10-04T08:35:47.5268698Z 07aded7c29c6: Download complete
2021-10-04T08:35:47.5269314Z 566ebd6588c2: Verifying Checksum
2021-10-04T08:35:47.5269852Z 566ebd6588c2: Download complete
2021-10-04T08:35:47.5270382Z 25f125849cc4: Verifying Checksum
2021-10-04T08:35:47.5271241Z 25f125849cc4: Download complete
2021-10-04T08:35:47.5271762Z 07aded7c29c6: Pull complete
2021-10-04T08:35:47.5272279Z 97aff7269a5a: Pull complete
2021-10-04T08:35:47.5272779Z 7250b4e3aa58: Pull complete
2021-10-04T08:35:47.5273390Z 25f125849cc4: Pull complete
2021-10-04T08:35:47.5273943Z 566ebd6588c2: Pull complete
2021-10-04T08:35:47.5274533Z Digest: sha256:48abca342dfb9236f4c0c69a3dae53e7b72cf598c237f205c73fd481a75982dc
2021-10-04T08:35:47.5275190Z Status: Downloaded newer image for mcr.microsoft.com/dotnet/core/aspnet:3.1
2021-10-04T08:35:47.5275778Z mcr.microsoft.com/dotnet/core/aspnet:3.1
2021-10-04T08:35:47.5285427Z [command]/usr/bin/docker inspect mcr.microsoft.com/dotnet/core/aspnet:3.1
2021-10-04T08:35:47.5706869Z [
2021-10-04T08:35:47.5707350Z     {
2021-10-04T08:35:47.5707845Z         "Id": "sha256:1ab87cfc2e18e4292c2bb1312ce6bf2431ac99f623a735677d03de6266088151",
2021-10-04T08:35:47.5708261Z         "RepoTags": [
2021-10-04T08:35:47.5708615Z             "mcr.microsoft.com/dotnet/core/aspnet:3.1"
2021-10-04T08:35:47.5709122Z         ],
2021-10-04T08:35:47.5709413Z         "RepoDigests": [
2021-10-04T08:35:47.5709877Z             mcr.microsoft.com/dotnet/core/aspnet@sha256:48abca342dfb9236f4c0c69a3dae53e7b72cf598c237f205c73fd481a75982dc
2021-10-04T08:35:47.5710375Z         ],
2021-10-04T08:35:47.5710660Z         "Parent": "",
2021-10-04T08:35:47.5710971Z         "Comment": "",
2021-10-04T08:35:47.5711905Z         "Created": "2021-09-28T04:16:58.641661253Z",
2021-10-04T08:35:47.5712383Z         "Container": "2c5b20a7124339a4c6608792e0ca94d2ba572eaee19d59b2277c3f0490b93cc2",
2021-10-04T08:35:47.5712806Z         "ContainerConfig": {
2021-10-04T08:35:47.5713141Z             "Hostname": "",
2021-10-04T08:35:47.5713474Z             "Domainname": "",
2021-10-04T08:35:47.5713796Z             "User": "",
2021-10-04T08:35:47.5714121Z             "AttachStdin": false,
2021-10-04T08:35:47.5714472Z             "AttachStdout": false,
2021-10-04T08:35:47.5714823Z             "AttachStderr": false,
2021-10-04T08:35:47.5715222Z             "Tty": false,
2021-10-04T08:35:47.5715551Z             "OpenStdin": false,
2021-10-04T08:35:47.5715892Z             "StdinOnce": false,
2021-10-04T08:35:47.5716210Z             "Env": [
2021-10-04T08:35:47.5717069Z                 "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
2021-10-04T08:35:47.5717525Z                 "ASPNETCORE_URLS=http://+:80",
2021-10-04T08:35:47.5717901Z                 "DOTNET_RUNNING_IN_CONTAINER=true"
2021-10-04T08:35:47.5718216Z             ],
2021-10-04T08:35:47.5718500Z             "Cmd": [
2021-10-04T08:35:47.5718803Z                 "/bin/sh",
2021-10-04T08:35:47.5719263Z                 "-c",
2021-10-04T08:35:47.5721005Z                 "aspnetcore_version=3.1.19     && curl -SL --output aspnetcore.tar.gz https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-x64.tar.gz     && aspnetcore_sha512='c9234b5dba62c88b5f7e869c7dc7fc94d9cd7b300b0ed2461132c32762c0d3d1f23a1ee0432264704fefeb35f77ca7d1dd41910daee84df9aa325559a43cfc71'     && echo "$aspnetcore_sha512  aspnetcore.tar.gz" | sha512sum -c -     && tar -ozxf aspnetcore.tar.gz -C /usr/share/dotnet ./shared/Microsoft.AspNetCore.App     && rm aspnetcore.tar.gz"
2021-10-04T08:35:47.5722394Z             ],
2021-10-04T08:35:47.5722811Z             "Image": "sha256:691e2d0ff08d024fc8c7531c64f32a8121092462d8f626372fd6007721559732",
2021-10-04T08:35:47.5723250Z             "Volumes": null,
2021-10-04T08:35:47.5723592Z             "WorkingDir": "",
2021-10-04T08:35:47.5723930Z             "Entrypoint": null,
2021-10-04T08:35:47.5724266Z             "OnBuild": null,
2021-10-04T08:35:47.5724594Z             "Labels": null
2021-10-04T08:35:47.5724885Z         },
2021-10-04T08:35:47.5725195Z         "DockerVersion": "20.10.8+azure",
2021-10-04T08:35:47.5725539Z         "Author": "",
2021-10-04T08:35:47.5725843Z         "Config": {
2021-10-04T08:35:47.5726153Z             "Hostname": "",
2021-10-04T08:35:47.5726486Z             "Domainname": "",
2021-10-04T08:35:47.5726878Z             "User": "",
2021-10-04T08:35:47.5727206Z             "AttachStdin": false,
2021-10-04T08:35:47.5727557Z             "AttachStdout": false,
2021-10-04T08:35:47.5727937Z             "AttachStderr": false,
2021-10-04T08:35:47.5728328Z             "Tty": false,
2021-10-04T08:35:47.5728652Z             "OpenStdin": false,
2021-10-04T08:35:47.5728990Z             "StdinOnce": false,
2021-10-04T08:35:47.5729310Z             "Env": [
2021-10-04T08:35:47.5729715Z                 "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
2021-10-04T08:35:47.5730168Z                 "ASPNETCORE_URLS=http://+:80",
2021-10-04T08:35:47.5730539Z                 "DOTNET_RUNNING_IN_CONTAINER=true"
2021-10-04T08:35:47.5730847Z             ],
2021-10-04T08:35:47.5731132Z             "Cmd": [
2021-10-04T08:35:47.5731425Z                 "bash"
2021-10-04T08:35:47.5731704Z             ],
2021-10-04T08:35:47.5732104Z             "Image": "sha256:691e2d0ff08d024fc8c7531c64f32a8121092462d8f626372fd6007721559732",
2021-10-04T08:35:47.5732591Z             "Volumes": null,
2021-10-04T08:35:47.5732924Z             "WorkingDir": "",
2021-10-04T08:35:47.5733259Z             "Entrypoint": null,
2021-10-04T08:35:47.5733744Z             "OnBuild": null,
2021-10-04T08:35:47.5734076Z             "Labels": null
2021-10-04T08:35:47.5734364Z         },
2021-10-04T08:35:47.5734660Z         "Architecture": "amd64",
2021-10-04T08:35:47.5734983Z         "Os": "linux",
2021-10-04T08:35:47.5735291Z         "Size": 207521095,
2021-10-04T08:35:47.5735661Z         "VirtualSize": 207521095,
2021-10-04T08:35:47.5736018Z         "GraphDriver": {
2021-10-04T08:35:47.5736329Z             "Data": {
2021-10-04T08:35:47.5737216Z                 "LowerDir": "/var/lib/docker/overlay2/1f6fb06da9aa3e2ac24f527a278a0e556bf3f87164eeb956e1bd32e39d627831/diff:/var/lib/docker/overlay2/34e9c9515b34b76e460e39588b356c236ea7ae002c3f008795cbd4e38d71585e/diff:/var/lib/docker/overlay2/46bb9f25071195d3acb1b624af270aa606c1309b2cd0466b0f1ee039a80953d6/diff:/var/lib/docker/overlay2/039aee49b10072c6395a531f2cbf9055fdc6e03086293260d0d8d42c6c07a90a/diff",
2021-10-04T08:35:47.5738293Z                 "MergedDir": "/var/lib/docker/overlay2/6044525cc5c02bf089380a86286930d44ff42f816d925d98ece00ede318ec5de/merged",
2021-10-04T08:35:47.5739049Z                 "UpperDir": "/var/lib/docker/overlay2/6044525cc5c02bf089380a86286930d44ff42f816d925d98ece00ede318ec5de/diff",
2021-10-04T08:35:47.5739667Z                 "WorkDir": "/var/lib/docker/overlay2/6044525cc5c02bf089380a86286930d44ff42f816d925d98ece00ede318ec5de/work"
2021-10-04T08:35:47.5740108Z             },
2021-10-04T08:35:47.5740410Z             "Name": "overlay2"
2021-10-04T08:35:47.5744581Z         },
2021-10-04T08:35:47.5744895Z         "RootFS": {
2021-10-04T08:35:47.5745207Z             "Type": "layers",
2021-10-04T08:35:47.5745528Z             "Layers": [
2021-10-04T08:35:47.5745943Z                 "sha256:476baebdfbf7a68c50e979971fcd47d799d1b194bcf1f03c1c979e9262bcd364",
2021-10-04T08:35:47.5746628Z                 "sha256:f85b5a6be76d59a666c4a961b5b4dc11c07ac5ad29fab26a68c4dda5aaff4ea6",
2021-10-04T08:35:47.5747151Z                 "sha256:d3903de83ead4b4995bbdebbd933807c97eb96f7c18b63eab99da876d6df8014",
2021-10-04T08:35:47.5747688Z                 "sha256:e2b1e5c6144fe09cec208dca38d7d84993f93ee871376a2008b7847f0e29cc2f",
2021-10-04T08:35:47.5748198Z                 "sha256:c7542eb47f4ad0c740c2f69700010a679ff445be677db820bae317a65d878b2f"
2021-10-04T08:35:47.5748584Z             ]
2021-10-04T08:35:47.5748844Z         },
2021-10-04T08:35:47.5749123Z         "Metadata": {
2021-10-04T08:35:47.5749879Z             "LastTagTime": "0001-01-01T00:00:00Z"
2021-10-04T08:35:47.5750224Z         }
2021-10-04T08:35:47.5750474Z     }
2021-10-04T08:35:47.5750713Z ]
2021-10-04T08:35:47.5777397Z [command]/usr/bin/docker build -f /home/vsts/work/1/s/Dockerfile --label com.azure.dev.image.system.teamfoundationcollectionuri=https://dev.azure.com/LRIADMPRO/ --label com.azure.dev.image.system.teamproject=Ordblindeportalen --label com.azure.dev.image.build.repository.name=alineadigital/ordblindeportalen --label com.azure.dev.image.build.sourceversion=2b7597ad85a13be71bc043c5658c2eafabd2f852 --label com.azure.dev.image.build.repository.uri=https://bitbucket.org/alineadigital/ordblindeportalen --label com.azure.dev.image.build.sourcebranchname=Test --label com.azure.dev.image.build.definitionname=Ordblindeportalen Development-Test --label com.azure.dev.image.build.buildnumber=20211004.1 --label com.azure.dev.image.build.builduri=vstfs:///Build/Build/8449 --label image.base.ref.name=mcr.microsoft.com/dotnet/core/aspnet:3.1 --label image.base.digest=sha256:48abca342dfb9236f4c0c69a3dae53e7b72cf598c237f205c73fd481a75982dc -t ***/alineadigitalordblindeportalen:8449 /home/vsts/work/1/s
2021-10-04T08:35:47.6178166Z error checking context: 'syntax error in pattern'.
2021-10-04T08:35:47.6253501Z ##[error]error checking context: 'syntax error in pattern'.
2021-10-04T08:35:47.6282711Z ##[error]The process '/usr/bin/docker' failed with exit code 1
2021-10-04T08:35:47.6322515Z ##[section]Finishing: Build and push an image to container registry
Here is a copy of the first line of my Dockerfile which fails:
FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
In the yaml-file I use vmImage: ubuntu-latest.

@lruddannelse Any update?

Hi @kuleshovilya 😊
Sorry for my late reply. Was on vacation last week.
I've tried using differnt ubuntu image versions but the problem is still the same. Azure DevOps also says that ubuntu-16.04  does not exist so that on I cannot run.

@lruddannelse I see, that's strange. Is it possible to check pipeline on self-hosted agent?

Hi @kuleshovilya, unfortunately it is not possible for us to self-host the agent.
However, I can see DevOps says it is now using version 2.194.0 although the log for the pipeline still shows 2.192.0

@lruddannelse It's a task version, not agent. Seems like a task issue, could you please open an issue in the task repo: https://github.com/microsoft/azure-pipelines-tasks ?


Add missing ID fields to PullRequest and Issue structs

In events, the id field is present both in the Issue and PullRequest objects.
This PR adds them.

LGTM 👍
Both of these pages also show the missing ID fields in the example responses:
https://developer.github.com/v3/issues/
https://developer.github.com/v3/pulls/
Awaiting another LGTM before I merge.

LGTM.

Thanks 👍


chore(main): release 1.15.0

:robot: I have created a release beep boop
1.15.0 (2024-12-31)
Features

add loading spinner during backup (#112) (bd0abfc)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v1.15.0
:sunflower:


Migrate AllListFragment to Kotlin

Java -> Kotlin pls, thank you 😇

Hi, I would like to contribute in resolving this issue.
@ken1000minus7 Pls assign this issue to me.

@shivamparihar12 done , good luck ! 😄


Prebuilt binary crashing on RHEL 6

I've downloaded the prebuilt binary, and it keeps crashing with this error:
grafana-rrd-server: symbol lookup error: grafana-rrd-server: undefined symbol: rrd_info_r

This happens every time it's sent a POST from Grafana.
It appears to be looking for an old version of librrd:
root@host:~ ❱❱❱ objdump -x /usr/local/bin/grafana-rrd-server  | grep librrd
  NEEDED               librrd.so.4

librrd.so.4 is present on my machine (version 1.3.8, installed by yum) but it does not have that symbol. I've also got librrd.so.8 (version 1.6.0 installed from source) and it does have it:
root@host:~ ❱❱❱ objdump -x /usr/lib64/librrd.so.4 | grep rrd_info_r
root@host:~ ❱❱❱ objdump -x /usr/local/lib/librrd.so.8 | grep rrd_info_r
0000000000030860 g     F .text<PHONE_NUMBER>000c06              rrd_info_r
root@host:~ ❱❱❱

Also checked RHEL 7; it also provides librrd.so.4 version 1.4.8, and doesn't contain that symbol either.

I think this is caused by an issue in the rrd package which grafana-rrd-server is using. If this is correct, it should be fixed in the package's repository by merging the pull request (unlikely to happen, though 😭)
The grafana-rrd-server binary is built on a Docker image, which is based on Debian. That is why it can be successfully built, but can't run on RHEL.

@miken32 👆

Yes that’s probably why it crashes, but the real problem is that it shouldn’t be looking for librrd.so.4 because it doesn’t contain those symbols, but rather a later version. Then it would ignore the system version and insist on using manually built one instead.


rocksdb: remove MacOS-specific options

Summary: No need to keep a copy of MacOS-specific options.go just to have ulong replaced with ulonglong. Use universal size_t and uint64_t instead
Reviewed By: deathowl
Differential Revision: D51027976

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (f5723c5) 58.91% compared to head (3ab393c) 59.18%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #53      +/-   ##
==========================================
+ Coverage   58.91%   59.18%   +0.27%
==========================================
  Files          72       79       +7
  Lines        8316     8651     +335
==========================================
+ Hits         4899     5120     +221
- Misses       3098     3209     +111
- Partials      319      322       +3

see 8 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Allow WebviewViews to be explicitly created, so badges can be shown

VSCode extensions can now show badges for TreeViews and WebviewViews that they implement: https://github.com/microsoft/vscode/pull/144775
One problem with this implementation is that I believe there is no way for an extension to display a badge for a WebviewView until the user has clicked and opened that WebviewView in the sidebar.  I think this is an important use case: imagine a TODO extension, like https://github.com/Gruntfuggly/todo-tree (they are one extension that wants to use this API). If I used such an extension, I would expect that the badge would show up on the activation bar showing that I have TODOs as soon as I open up the workspace, even if I haven't yet opened up that extension's Webview View.
TreeViews can show badges on startup, because an extension can call createTreeView to programatically force TreeView creation, and can then set the badge on the TreeView.  Would it make sense to add a similar method to force creation of a WebviewView?
CC'ing @mjbvz for this issue.  Thanks!

cc @isidorn this is one of the issues we were discussing.

@mjbvz what's the status on this?

I really need this feature for a future release of versionlens too.
Would be a pain for users if they've got to click on the explorer icon each time they load vscode so they can see available package updates in their workspace


Chaining promises don't work as intended

I think I may have introduced this (partially) with https://github.com/substantial/sinon-stub-promise/pull/18 -- but it has more to do with how we store the thenable -- I think it was an issue before that too but I don't have time right now to test it out.
With the new change, chained promises don't work at all -- I simply call onFulfilled on every "then" -- even chained thens -- I need to make sure I store the returned value for chained thens. Even without it though, I'm not sure the following situation would have worked. I'll work up a fix (and include in it the changes to make withArgs() work -- I realized I never gave yall that PR. This will be related since we have to maintain the chain individually -- not simply tied to the stub
promise.then((value)=>return value2));
promise.then((value) => expect (value !== value2));

If you could add a test case, I could work on this at some point in the next couple of days. Thanks.


Issue with deploy by helm

was provided by deploy gcp api key and prometheus url but see some another project number
ERR Failed to lookup reserved instance data: googleapi: Error 403: Compute Engine API has not been used in project<PHONE_NUMBER>7 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/compute.googleapis.com/overview?project=42275347607 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.
Details:
[
{
"@type": "type.googleapis.com/google.rpc.Help",
"links": [
{
"description": "Google developers console API activation",
"url": "https://console.developers.google.com/apis/api/compute.googleapis.com/overview?project=42275347607"
}
]
},
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"domain": "googleapis.com",
"metadatas": {
"consumer": "projects/42275347607",
"service": "compute.googleapis.com"
},
"reason": "SERVICE_DISABLED"
}
]
, accessNotConfigured

app.kubernetes.io/version: 1.104.0
helm.sh/chart: opencost-1.15.0
also checked that for api key provided access to billing and cloud engine apis, and added gke nat ip to whitelist

about env:
tried to deploy to gke cluster for checking billing data of gke-cluster
on cluster exist pormetheus with node exporters

I assume this is a GKE cluster?
The error message seems to indicate that there's some API that needs to be enabled for this project. Have you gone through the instructions on that URL?

yes, trying to deploy opencost to GKE cluster,
but link dont open by permission,-by project number in link - checked thats not our project
but in project with GKE - needful APIs enabled, and provided to then access for api-key which use in deploy-process

Hi
I have the same issue when try to deploy opencost by helm
WRN Failed to load auth secret, or was not mounted: Secret does not exist  ERR Failed to lookup reserved instance data: googleapi: Error 403: Compute Engine API has not been used in project<PHONE_NUMBER>7 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/compute.googleapis.com/overview?project=42275347607 then retry.
it seems that the opencost don’t see current project
how the opencost realise what is it a project current?
maybe we make a mistake with ApiKey?

Hello, I faced the same error, even project "42275347607" in error is same

I found an issue. API keys have permission denied. Removing the methods = ["GET*"] fixed the problem.
I still see the Compute Engine API has not been used in project<PHONE_NUMBER>7 before or it is disabled error, but the application starts and the pod is healthy.

Hey,
I am having a similar issue but for me the projectID is todo, I am unable to override the gcp.json config it seems. I have an api created but it doesn't seem to contain the project ID itself. Am I missing a step?

I believe this will fix it: https://github.com/opencost/opencost/pull/2122

This was fixed in https://github.com/opencost/opencost-helm-chart/commit/005359db1a37ba699498a1a9d647e8fc3ccbda91


Functional tests are not deleting loadbalancers

Some functional test is not properly deleting loadbalancer what permanently leads us to quota issues. Please identify where this happens.

fixed in #264


Sonoff RF Bridge 433 Support

Hi
Will this plugin support the Sonoff RF Bridge 433?

Thanks

hi @miskui i have a motion sensor with on/off rf code. Can I remove the delay and add an offcode?
Thanks

I will update the code to be able to handle this.

That would be great. Thank you!

please check new version
you can contribute and merge code

Hi @miskui thank you!!! I have installed 3 motion detectors.  I do not know how to explain this on my bad english...
in the config all 3 motiondetectors have different names, an different on/off codes.
problem example:
motion1-on
motion2-on
motion3-switch from on to off
then goes all motion to "OFF" although motion1 and motion2 would be on

please send config.json

{
  "accessory": "mqtt-sonoffrf-receiver",
  "name": "Terrasse",
  "url": "mqtt://<IP_ADDRESS>",
  "topic": "tele/sonoff_rf/RESULT",
  "username": "",
  "password": "",
  "rfcodeon": "68F70A",
  "rfcodeoff": "68F70E",
  "rfcode": "",
  "rfkey":"",
  "ondelay":"",
  "accessoryservicetype": "MotionSensor"
},
{
  "accessory": "mqtt-sonoffrf-receiver",
  "name": "Wohnzimmer",
  "url": "mqtt://<IP_ADDRESS>",
  "topic": "tele/sonoff_rf/RESULT",
  "username": "",
  "password": "",
  "rfcodeon": "68FF0A",
  "rfcodeoff": "68FF0E",
  "rfcode": "",
  "rfkey":"",
  "ondelay":"",
  "accessoryservicetype": "MotionSensor"
},
{
  "accessory": "mqtt-sonoffrf-receiver",
  "name": "Fenster",
  "url": "mqtt://<IP_ADDRESS>",
  "topic": "tele/sonoff_rf/RESULT",
  "username": "",
  "password": "",
  "rfcodeon": "76950A",
  "rfcodeoff": "76950E",
  "rfcode": "",
  "rfkey":"",
  "ondelay":"",
  "accessoryservicetype": "MotionSensor"
},

great thank you!

fixed
kodibrain<EMAIL_ADDRESS>ezt írta (időpont: 2018. júl. 10., K,
13:35):

great thank you!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MacWyznawca/homebridge-mqtt-switch-tasmota/issues/13#issuecomment-403791790,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Af6wDnhDnL-cJ9rmamuUFyrATe1Os2ZQks5uFJF7gaJpZM4PXFnV
.

Hi Miskui. I see the link above for the Sonoff RF Bridge 433, but will this work with the standard firmware as opposed to the Tasmota firmware? Thanks.

It only works with tasmota. The Standart Firmware has no mqtt broker.


fix install: add iojs support

Add iojs support: when version >=1.0.0 download dist from url https://iojs.org.
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: 404 response downloading https://nodejs.org/dist/v2.4.0/node-v2.4.0.tar.gz
gyp ERR! stack     at Request.<anonymous> (/home/coderaiser/.nvm/versions/io.js/v2.4.0/lib/node_modules/npm/node_modules/node-gyp/lib/install.js:251:14)
gyp ERR! stack     at emitOne (events.js:82:20)
gyp ERR! stack     at Request.emit (events.js:169:7)
gyp ERR! stack     at Request.onRequestResponse (/home/coderaiser/.nvm/versions/io.js/v2.4.0/lib/node_modules/npm/node_modules/request/request.js:985:10)
gyp ERR! stack     at emitOne (events.js:77:13)
gyp ERR! stack     at ClientRequest.emit (events.js:169:7)
gyp ERR! stack     at HTTPParser.parserOnIncomingClient (_http_client.js:415:21)
gyp ERR! stack     at HTTPParser.parserOnHeadersComplete (_http_common.js:88:23)
gyp ERR! stack     at TLSSocket.socketOnData (_http_client.js:305:20)
gyp ERR! stack     at emitOne (events.js:77:13)

:+1: though also fixed in #564 ...

I think node-gyp is broken also with<EMAIL_ADDRESS>@gabeio @coderaiser can you take a look here paulmillr/chokidar#329?

@iamstarkov I am having test issues with iojs 3 also... but sidenote you may be able to build it with 2.5.0 or lower and still use the package in 3.0.0

As a workaround, you can build against electron and end up with binaries that also load into vanilla iojs:
$ npm install electron-prebuilt -g
$ npm install electron-updater-tools -g
$ elb configure

The last command runs a script in the electron-updater-tools project that uses a --dist-url for electron that is compatible with node-gyp. It uses a delay load hack to make the binaries compatible with electron and iojs/node.
I ideally this would be fixed in node-gyp directly. Also related to this PR: https://github.com/nodejs/node-gyp/pull/653

Nice @justinmchase!

Superseded by #711.


Consider Pandas 2.0

Pandas 2.0 is here, consider if we'd be better off implementing CountESS functionality over Pandas than Dask in a lot of cases.

Okay, branch created to use Pandas 2.0 rather than Pandas/Dask.  This seems to work but is missing a few important details including the progress monitor for example.

OK after discussion, Pandas 2.0 is now the main target.  The plugin tree remains agnostic to the type of data passed, so we can revisit Dask easily enough if it proves necessary.  Actually, I'd like to make it more so, but that can be it's own issue.


Update links in automatic issues

I'm starting a new book, and realized these still link to the wiki.  I'll update the links to point to ottrproject.org as I work through the steps.

Updates links in the automatic issue set-repo-settings
Instructions to set up GH_PAT were listed twice, so I removed the less detailed one.
Updates links in automatic issue update-enrollment
Updates (most) links in automatic issue templates-to-edit

@cansavvy

I wasn't able to find a corresponding page on ottrproject.org for quite all of the wiki page links, but this at least gets most of them
looks like there are instructions on setting up GH_PAT in both git-secrets.md and set-repo-settings.md.  I updated the link in set-repo-setting since that's where I saw it first.  Not sure if you want to delete git-secrets.md, or keep it and remove the GH_PAT instructions from set-repo-settings.

Thanks for getting this started, @KatherineCox These updates were long overdue! I added another commit of link replacements. I think everything should be covered now. 🤞

@KatherineCox Can you give the changes I just added a review? The ones you did were good, so if we both think each other's changes are good then I say we merge this.

@cansavvy Caught one more link and updated it.  Looks good to me!

Thanks, @KatherineCox ! I'm going to merge this then!


upgrade tonic and prost

Upgrade Tonic to v0.8 and Prost to v0.11.

Thanks looks like CI needs to be updated with prost 0.11 protoc requirements


Add Sleek

[x] I have checked that this app does not already have a pending request and has not previously been declined.
App Name: Sleek
Download URL: https://github.com/ransome1/sleek/releases/latest
Website URL: https://github.com/ransome1/sleek
App Summary: Todo manager based on the todo.txt syntax for Linux, free and open-source (FOSS).

I'm working on it.


Set maximum height to the popover to prevent cut-off on smaller screens

Fixes

Fixes #1212 by @Asadpalasara-multidots
Description

This PR adds a clippable prop to VPopover that makes the popover only take up the available window height and scroll if the content does not fit.
Currently, when the popover content becomes scrollable, I can also see a scroll line in the bottom. I need to figure out how to remove it.
Testing Instructions

Open a search results page, make the window height small so that the menu does not fit in. Then, click on the page menu or the content switcher. You should see that the popover is only as high as the window, and its content is scrollable:

The popover should also update if you change the window height.
Checklist

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the default branch of the repository (main) or a parent feature branch.
[x] My commit messages follow best practices.
[x] My code follows the established code style of the repository.
[ ] I added or updated tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

It looks great. Great improvement.
Is it possible to set a variable height? I am thinking of 100vh - 20px, the view's height minus 20px. It looks good in my browser inspector.


Gulp Protractor tests passing when it should fail

I am using your plugin to do angularjs unit testing and refer to this thread

This should be fixed with the latest release, which updates Protractor to v3.2.2. There are several side effects when Protractor is installed as a project dependency instead of just using the version included with gulp-protractor, so removing protractor from devDependencies in your package.json is recommended.
https://github.com/mllrsohn/gulp-protractor/issues/101 will allow users to update Protractor without depending on gulp-protractor and should help with upgrades and problems like this. Let me know if removing the dependency and updating gulp-protractor does not solve the issue and I'll reopen this issue.


Change Utils class to namespace

Fixes #306

Coverage decreased (-0.1%) to 39.774% when pulling 651c2497b3b554138049a8e567aba7fe7a8adb7c on zaowen:util into 6aa4a9ac011fb159a627dd418e24cb90b976ad6a on newsboat:master.

Thank you, @zaowen! I'm glad you decided to stick around ;)


Clear Containers for Docker Engine (v1.9.0)

This PR supersedes #17244 (and #16163).

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "clr-1.9.0-submit" git@github.com:clearlinux/docker.git somewhere
$ cd somewhere
$ git rebase -i HEAD~300
editor opens
change each 'pick' to 'edit'
save the file and quit
$ git commit --amend -s --no-edit
$ git rebase --continue # and repeat the amend for each commit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

Something is odd, in terms of the amount of merge commits outstanding. Possibly the target branch has moved, in a criss-cross way since clr-1.9.0-submit merge was done. Possibly the results of the merge need to be stashed away, and remerged to get a cleaner diff/history graph.

Great to see this getting merged. Is there some documentation on how to enable and use clr backend for runc?

This is not going to be merged, as we've pointed out in several occasions already, can you please stop? Even if Docker is not using Runc yet, adding more execution drivers only takes us further away from using it. A better alternative to have this support is to make Runc work with ClearContainers and help with the migration to Runc.
Opening these PRs only generates confusion for users, like @ppadala

@calavera - This PR was raised after discussion with @runcom on the Clear Linux mailing list [1].
We are aware that docker plans to move to OCI, but have not seen a schedule for this move. Are you or anyone else able to answer the following?

When docker will support OCI (approximate timeline / docker version)?
Do any test/beta docker OCI branches exist that we can test our OCI runtime with?

We already have a draft OCI runtime for Clear Linux [2]. However, until docker migrates to OCI, we would very much like to have it support Clear Linux, hence these PRs.
Kind regards,
James.
[1] - https://lists.clearlinux.org/pipermail/dev/2015-October/thread.html#56
[2] - https://github.com/clearlinux/kvmtool/tree/oci

I'm not really aware of the plan to fully move to OCI but of course the previous PR was still outdated so I suggested to move everything to master. Though I'm well aware of the current Roadmap (and the state of not adding more execdriver), I think moving toward OCI is the right thing to do here and with other new execdriver

@jamesodhunt you can modify docker to support OCI in the same way you modified docker to support this driver. You could also start a conversation on the OCI list to gather requirements to migrate docker to OCI, if there is any.

we would very much like to have it support Clear Linux, hence these PRs.

We would like very much to migrate to OCI, adding a new driver takes us further away, as I said before. Help us migrate to OCI rather than keeping us away from it.

Hi everyone, I'm a developer who is also very interested in Clear Container, and we are still investigating possibility to support other runtimes in docker.
I see that you are deciding to NOT add more execdrivers to docker, what I'm suggesting is that docker provide a plugin mechanism(we already have a nice plugin design) to call out to other OCI-compatible runtimes such as Clear Container, since @jamesodhunt says they already have a draft OCI runtime for Clear Linux, with this standard plugin interface, Docker will never need to embed more exec drivers directly, they can simply call out to other runtimes remotely. And also other runtimes don't need to modify docker source code, what they only need to do is following OCI standard and expose standard interfaces needed.
The proposal is listed here #17477, I think this is good for Docker and Clear Linux, WDYT of this?
ping @jamesodhunt @xnox @calavera @runcom

@calavera we also have lkvm which is OCI compatible, that is takes same configs as runc does to execute workloads. But there is deadlock now - there is no docker that uses OCI, and there is no OCI tooling that works with docker hub. We have done two implementations now, and it seems that neither can be merged and tested now. So which one is it? Should we write an execdriver that calls out to an OCI compatible binary, or would that be also rejected from being merged?

Should we write an execdriver that calls out to an OCI compatible binary, or would that be also rejected from being merged?

As far as I know, that has always been the goal, I don't see why it should be rejected.
/cc @crosbymichael

@calavera right, but the Highland team have requested a stable execution driver from us the other day. Which we are providing here. Our understanding was, that due to Highland team requests this execution driver (rather than an OCI executor) is required by Docker. Is there some communication that developers on our end have missed?

I've had a quick chat with @calavera, and we'll close this PR for now. I've understood that he talked with you during DockerCon about possible ways to get support for clear containers in the future.
Thanks!


install/baseline: Use sfdisk, not sgdisk

Port from gdisk to sfdisk (util-linux) as gdisk is less well maintained and is specifically targeted to be dropped from RHEL10 (xref https://issues.redhat.com/browse/RHELMISC-6651 ).
Closes: https://github.com/containers/bootc/issues/774

A diff of the old and new partitions looks like this:
--- /tmp/old.json	2024-09-03 14:46:25.863951421 -0400
+++ /tmp/new.json	2024-09-03 14:44:15.957720107 -0400
@@ -1,10 +1,10 @@
 {
    "partitiontable": {
       "label": "gpt",
-      "id": "6EE0DD52-1175-42E9-A3FB-20600117A828",
+      "id": "4CB4805F-5E03-4D92-8D2C-589725F0E778",
       "device": "/dev/vda",
       "unit": "sectors",
-      "firstlba": 34,
+      "firstlba": 2048,
       "lastlba": 20971486,
       "sectorsize": 512,
       "partitions": [
@@ -13,21 +13,21 @@
             "start": 2048,
             "size": 2048,
             "type": "21686148-6449-6E6F-744E-656564454649",
-            "uuid": "01331A3A-D766-4DD1-A205-5974175D0449",
+            "uuid": "DBFDE957-B16F-8D4F-8258-7876B340E963",
             "name": "BIOS-BOOT"
          },{
             "node": "/dev/vda2",
             "start": 4096,
             "size": 1048576,
             "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
-            "uuid": "5EC7DA28-2CFE-4524-A2BF-F15E8DD3E13F",
+            "uuid": "B3A15F64-D1F1-C74D-A5E0-8C0297B218D4",
             "name": "EFI-SYSTEM"
          },{
             "node": "/dev/vda3",
             "start": 1052672,
             "size": 19918815,
             "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
-            "uuid": "841F3DAB-6A93-4849-B031-1931C13CFCFC",
+            "uuid": "0F7BC331-06FD-0A4B-84B1-14B62CE243C8",
             "name": "root"
          }
       ]

Which is all expected (we generate random uuids) today except for firstlba...hmm...digging in slightly I think this may be because sgdisk creates a protective MBR by default but sfdisk doesn't? Hmm, not totally sure.

Which is all expected (we generate random uuids) today except for firstlba...hmm...digging in slightly I think this may be because sgdisk creates a protective MBR by default but sfdisk doesn't? Hmm, not totally sure.

sgdisk sets it to 34 because that's the size of the protective MBR + GPT table and the minimum required by the spec (see e.g. https://en.wikipedia.org/wiki/GUID_Partition_Table#/media/File:GUID_Partition_Table_Scheme.svg). sfdisk sets it to 2048 presumably because it's the first location it could create the first partition with the default 1M alignment. (sgdisk defaults to 1M too, but doesn't reflect it in the first LBA field.)
There was actually fallout related to this in FCOS (well, more related to the fact that the last LBA is a mirrored version of the first LBA, which means the last partition can have different sizes). See https://github.com/coreos/fedora-coreos-tracker/issues/1745#issuecomment-2210943988 for all the fun.


Style(Linting/Formatting): Add ESLint and Prettier to Acceptance Tests

Is your feature request related to a problem? Please describe.
Following the conclusion of Issue #100, all linting and formatting has been isolated to client and thus leaves acceptance without linting and formatting. This leaves acceptance open to competing linting and formatting styles as different contributors work on them.
Describe the solution you'd like
Configure acceptance subproject to have ESLint and Prettier, restore the linting commands from the client package.json to the root package.json, and extend these commands to operate in client and acceptance.
Additional context
Configuration files for ESLint and Prettier should match what's already in client. If possible, possibly point acceptance configuration to those files so that all linting and formatting configuration can be done in one spot?

Modify the .prettierrc.json and .eslintec.json in the acceptance directory to match the client directory's .prettierrc.json and .eslintec.json.
Ensure that the GitHub Actions under test-pipeline.yaml pass. There is an error with the npm run lint:all command, and more specifically the lint:acceptance command and execution.


Problem running python files

Hi,
I'm not sure where problem is but when i try to run some python code in neovim got error:
zsh:1: command not found: python

But i have python (3.10), alias in ~/.zshrc alias python=python3 and it works fine... except with your plugin.
P.S. With enabled virtualenv everything is ok... super strange.

Hey @parasit, thanks for reaching out. I am aware of this issue, just haven't gotten around to fixing it yet. This happens because, the aliases that you set are not inherited into vim's shell session. So, only commands that are available on the run time path can be used.
For now, there are two ways to solve this

Instead of an alias, create a file called python in your run time path with the following contents and make it executable. (works for me)

#!/bin/bash

python3 $@

The other alternative is to use the custom commands feature. This is still an experimental feature and I am still working on the documentation for it. So, I would suggest to go with the 1st method.

Is there a way to do this with the custom commands now that there's a more streamlined integration with Telescope? I'm on MacOS and  I think because of the restrictions preventing any writing to /bin, I can't get method #1 you suggested above to work.
I tried creating a custom command with python3 but I don't know how to pass the current Nvim file to the custom command (% doesn't work like it does in the vim command line, expectedly).

Hey @fennelcakes,
Yes, you can absolutely do this with custom commands!

I tried creating a custom command with python3 but I don't know how to pass the current Nvim file to the custom command (% doesn't work like it does in the vim command line, expectedly).

Check out the custom variables section in the README. There is a variable called curr_file which is available to you as an environment variable to use in the custom command. You can use it like this:
python3 $curr_file

Hope this helps :)


Remove creationTime from SQLRequest and calc duration server side

The duration in the SQLResponse was calculated lazy and was based on the
creationTime of the SQLRequest.
This caused an inconsistence between transport client and http clients.
For transport clients the duration measured the full round-trip. Http
clients measured the time it took to process the request on the server
side.
This commit changes the behaviour so that the duration is always the
time it took on the server to process a request.

changes entry is missing

ack


spyder error

Description
What steps will reproduce the problem?

What is the expected output? What do you see instead?
Please provide any additional information below
File "C:\Users\monuv\Anaconda3\envs\VIL\lib\site-packages\spyder\plugins\ipythonconsole.py", line 991, in create_new_client
self.connect_client_to_kernel(client)
File "C:\Users\monuv\Anaconda3\envs\VIL\lib\site-packages\spyder\plugins\ipythonconsole.py", line 1018, in connect_client_to_kernel
stderr_file)
File "C:\Users\monuv\Anaconda3\envs\VIL\lib\site-packages\spyder\plugins\ipythonconsole.py", line 1420, in create_kernel_manager_and_kernel_client
kernel_manager.start_kernel(stderr=stderr)
File "C:\Users\monuv\Anaconda3\envs\VIL\lib\site-packages\jupyter_client\manager.py", line 240, in start_kernel
self.write_connection_file()
File "C:\Users\monuv\Anaconda3\envs\VIL\lib\site-packages\jupyter_client\connect.py", line 547, in write_connection_file
kernel_name=self.kernel_name
File "C:\Users\monuv\Anaconda3\envs\VIL\lib\site-packages\jupyter_client\connect.py", line 212, in write_connection_file
with secure_write(fname) as f:
File "C:\Users\monuv\Anaconda3\envs\VIL\lib\contextlib.py", line 59, in enter
return next(self.gen)
File "C:\Users\monuv\Anaconda3\envs\VIL\lib\site-packages\jupyter_client\connect.py", line 100, in secure_write
win32_restrict_file_to_user(fname)
File "C:\Users\monuv\Anaconda3\envs\VIL\lib\site-packages\jupyter_client\connect.py", line 53, in win32_restrict_file_to_user
import win32api
ImportError: No module named 'win32api'
Version and main components

Spyder Version: 3.2.3
Python Version: 3.5.6
Qt Versions: 5.9.6, PyQt5 5.9.2 on Windows

Dependencies
pyflakes >=0.6.0 :  2.0.0 (OK)
pycodestyle >=2.3:  2.4.0 (OK)
pygments >=2.0   :  2.6.1 (OK)
pandas >=0.13.1  :  None (NOK)
numpy >=1.7      :  1.14.2 (OK)
sphinx >=0.6.6   :  2.4.4 (OK)
rope >=0.9.4     :  0.16.0 (OK)
jedi >=0.9.0     :  0.12.1 (OK)
nbconvert >=4.0  :  5.5.0 (OK)
sympy >=0.7.3    :  None (NOK)
cython >=0.21    :  None (NOK)
qtconsole >=4.2.0:  4.7.2 (OK)
IPython >=4.0    :  6.5.0 (OK)
pylint >=0.25    :  1.9.2 (OK)

Hey @visionintelligence, thanks for reporting. You're using a very old Spyder version, which is incompatible with the package that is generating the error.
Please update by closing Spyder, opening the Anaconda Prompt and running there
conda update anaconda
conda install spyder=4.1.5

If that fails, I'm afraid you'll have to remove and reinstall Anaconda.

Closing due to lack of response.


fix gather_cn.rst bugs

Description
gather 中文文档参数翻译遗漏，进行了补充，说明了默认值和默认值下参数值的说明。
##Related Issues
gather 中文文档参数翻译遗漏 #5787

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@luotao1 您好！可以麻烦安排reviewer吗？谢谢~


Added to redis support: clear, count, key(pattern), expire(key, time)

the redis_store spec passes.

I'm afraid this makes rather too many changes to the expected interface for the redis special case for me to be comfortable merging. Some of the implementations are extremely dangerous (such as the use of FLUSHALL – clearing all redis dbs), which is just asking for trouble.
A redis store may well make sense, but I don't think this is the solution. For now it's perfectly possible to use a dalli store for redis.

i think most cache features should be implemented in the interface, it's pretty limiting now.

I do agree, the interface is pretty limited, but I think this needs some more thought.


[Community] @gromero -> Reviewer

Please join us to welcome @gromero as a new reviewer to TVM. Gustavo has made many additions to the uTVM project by extending support to broader Zephyr-based microcontroller boards.

Commits History
Code Review
Community Forum Summary

@tmoreau89 @jcf94 @tqchen Thank you :)

Congrats @gromero!

Congrats @gromero!

Congrats!!


Last Week in Pony - July 28, 2019

Pony-msgpack 0.2.1 has been released.

Sean T. Allen writes:
I'll will be giving a Pony tutorial at CodeMesh in London this November. Tickets are now on sale. There will be a second teacher as well (perhaps Sylvan again, but no promises are being made). Last year there was a great turn out and excellent reviews. Come experience it for yourself.
Unlike last year, we will be doing an all-day session so you can get much deeper into learning Pony. Tutorial tickets are available via the CodeMesh LDN website.

Audio from the July 16, 2019 Pony development sync call is available.

Stable, our little dependency manager that could, has a new release out. See the 0.2.1 release notes for full details.

Do you ever visit the Pony Reddit?  Rejoice! Sean T. Allen put his Reddit learning cap on an setup Auto-Moderator to immediately remove the "equestria" spam as soon as it is posted.

https://www.youtube.com/watch?v=WlGSpYFntUU
Talk on Pony from Jun 29th, 2019 at Detroit Tech Watch conference.

Sean T. Allen writes:
Hi all, I'm looking at setting up an all day "learn you some Pony" workshop some weekend in October in NYC. I would be myself and Jonathan Brown running the workshop, if you are interested in attending, let me know. I'm trying to gauge interest. You can reach me on the Pony Zulip or via email at<EMAIL_ADDRESS>

Pony 0.30.0 has been released. It contains a high-priority bug fix. Upgrading ASAP is recommended.


Fixed make targets clean and clobber

Coverage remained the same at 96.045% when pulling b3733a77267100216c8bf2f8e37019d3331dbfc7 on andy/fix-clobber into 1623402cb62df15965fd310f3c3300a74ed10a63 on master.


Curious - what are you using viz.js for?

I will go first!
We are working on a tiny web based solution to show network infrastructure.

graphical representation of workflows

I'm using it to support some WordPress plugins.
One to bring GraphViz to WordPress as a plugin: WP-GraphViz.
And another one using this plugin to visualise networks of services in a Service Oriented Architecture: WP-SoaVis.

I'm visualizating a neural network written in javascript.

sketch/plan high level software architecture: http://ryepup.github.io/c4-lab/, source at https://github.com/ryepup/c4-lab

Testing stuff without having to install Graphviz

As a hacked together Word Addin. https://github.com/LokiMidgard/GrapvizForOffice

Realtime collaborative markdown notes on all platforms.
https://hackmd.io

I'm using it to draw Git commit graphs: https://github.com/marnen/octotrax

I have created a Visual Studio Code extension for creating UML diagrams by using the yUML text syntax (see https://github.com/jaime-olivares/vscode-yuml). Currently it is invoking yuml.me, and right now I am eliminating that dependency by using the viz.js library (branch: v2)

Process and organization charts

An atom package to write (and preview) GraphViz in Atom sverweij/atom-graphviz-preview-plus

@sverweij OMG that looks great! I'll be installing it.

An interactive tool for representing GraphQL APIs type structure: https://github.com/APIs-guru/graphql-voyager

A simple wrapper package to provide a cross-platform CLI similar to that of the original Graphviz.
And built on top of that, a Gradle plugin to use Graphviz rendering in Gradle builds without sacrificing platform interoperability - especially for documentation written in asciidoc(tor) with embedded PlantUML diagrams that require a dot engine to render them as SVG.

Interactive online editor and fiddle for Graphviz available on http://graphviz.it. Also separate rendering component is available on https://github.com/mstefaniuk/graph-viz-d3-js

Here at ETH Zurich, we are working on a Visual Studio Code extension for a sound deductive verification tool Viper (viper.ethz.ch). The extension could be found here: https://marketplace.visualstudio.com/items?itemName=rukaelin.viper-advanced
We use Graphviz within the verification debugger of the symbolic execution engine for visualizing the heap structures as they are learned by the verifier. We were looking for a Javascript replacement of the binary Graphviz dependency, and viz.js seems to suit our requirements so far.
The verification IDE has been started as a Master's thesis project but is now continued beyond. See report here: https://www.ethz.ch/content/dam/ethz/special-interest/infk/chair-program-method/pm/documents/Education/Theses/Ruben_Kälin_MA_report.pdf

To display workflows in health care to clinical people, showing how many patients are in each stage of a formally defined workflow process.

A component in the webclient to my program CoxIter.
The user inputs a small graph and can preview the result: https://coxiter.rafaelguglielmetti.ch/

I use it for visualizing gamebooks written in Twine: http://www.mcdemarco.net/tools/scree/dotgraph/

GStreamer pipeline visualisation!

https://github.com/philn/Radioplayer/commit/b3673d531d2a15ba79d91dc567cb749b7dd0e80e

A tool for graph-based linguistic annotations: GraphAnno.

I use it with automatically generated documentation of the datawarehouse. The SVG creates a click-through map of the flowchart.

I'm using it in the d3-graphviz plugin which adds:

Animated transition of one graph into another
Edge path tweening
Node shape tweening
Fade-in and fade-out of entering and exiting nodes and edges
Panning & zooming of the generated graph

See this small demo.

I'm using it in fsmviz Which lets you generate graphs for FSM data in Clojure, Clojurescript (and there's also a Javascript API).

I'm using it for dottask, a browser-based digraph editor that lets you use a mouse/keyboard on the graph itself rather than modifying graphviz files.

I'm using it for a custom layout in cytoscape because the build in layouts just aren't as nice.

To provide graphviz functionality to the JVM/Java world in a platform independent way with https://github.com/nidi3/graphviz-java

Not using it yet, but wanting to use it do display budgerigar pedigrees on a site.

Currently using it to plan out user roles for active directory. In the future using it to map out processes and anything else I can come up with.

Visualizing the user input of an online DOT editor.
https://edotor.net

Hey @maccesch , I am also trying to incorporate viz.js with Cytoscape. Any chance you can share some insight with me?

@Kyle0923 Sorry for the late answer. I created a Gist.

Live rendering of finite state machines (whose notation is very similar to DOT)
https://stonecypher.github.io/jssm-viz-demo/graph_explorer.html

@maccesch Thanks man. Great help!!

This is library is  aweseome! I use it to visualize the computed flow graph for a flowchart diagram

In an interactive tool to show JVM monitor dependencies leading to thread deadlocks: https://github.com/pfcoperez/thebutlerdidit
The tool is written in Scala.JS btw

I am using for visualizing task graphs in Invoke-Build build scripts, examples: Show-Build-Graph

I used it many years ago for my live telemetry display from my Java Pronghorn jar you can see at the bottom of this page: https://oci-pronghorn.gitbook.io/pronghorn/chapter-0-what-is-pronghorn/home
Today, I am still using an old version of it (I do need to upgrade).  I am just now working on a new Rust version of my old Java project called Steady-State https://crates.io/crates/steady_state            With it you can use "Actors" instead of threads to build super reliable products. But even better you can use your browser to peer into the running application to see how the data is flowing.  I build a new dot file every 40ms and the browser then uses viz.js to refresh the svg display to the user.

Visualizing JSON-defined state machine into SVG diagrams. Humans are visual creatures. Comprehending hundred lines of text is orders of magnitude more difficult than looking at an image.

@another-guy State machines here, too. Machines are created using Stateless which may generate DOT, then DOT is converted to SVG by viz-js -- some simple demos


Bugs in associating Gsheet and CCV

Using my latest CCV-98720.xml.zip, I noticed serious bugs. Eg:
J163->J17: Shimming Toolbox: An open-source software toolbox for B0 and B1 shimming in Magnetic Resonance Imaging
J176->?: Calibration-free parallel transmission of the cervical, thoracic, and lumbar spinal cord at 7T
J179->J12: RF shimming in the cervical spinal cord at 7 T
C221->C34: RF shimming in the spinal cord at 7T
C243->C3: Calibration-Free Parallel Transmission of the Cervical, Thoracic, and Lumbar Spinal Cord at 7T
C248->C7: Towards UHF Spinal Cord MRI: Overcoming B0 & B1+ Challenges
C249->C7: Towards UHF Spinal Cord MRI: Overcoming B0 & B1+ Challenges
J168->?: Dynamic shimming in the cervical spinal cord for multi-echo gradient-echo imaging at 3 T
C170->C97: Real-time shimming in the cervical spinal cord using an 8-channel AC/DC array and a capacitive respiratory sensor
C180->C66: Real-Time Z-Shimming for Magnetic Resonance Imaging of the Spinal Cord
C191->C66: Real-Time Z-Shimming for Magnetic Resonance Imaging of the Spinal Cord
J168->?: Dynamic shimming in the cervical spinal cord for multi-echo gradient-echo imaging at 3 T
C230->C10: Dynamic shimming of the spinal cord using a 15-channel AC/DC coil

This is highly problematic (and urgent)

I suspect that maybe the presence of the asterisks on the downloaded XML partly cause this issue?
I know there are other issues related to the duplication of the title.

I'm looking into this today, you might be right that the presence of asterisks are causing confusion in what I understand to be a fuzzy matching system. This might be as easy as removing asterisks from the matching function.

I've been working through this and have the partial solution I mentioned above implemented. The authors don't mismatch so much now.
None of the conf-* sections are matching properly, but I reverted to an earlier commit and this seemed to happen before.
There's still major issues I believe, J176 (for example) still goes completely unmatched.
@jcohenadad could you post the command you ran to get the above?
Additionally, can you confirm what the bug is and what the expected behaviour is?

@jcohenadad could you post the command you ran to get the above?

bibeasy -x<EMAIL_ADDRESS>Drive/Grants/20240707_NSERC-Discovery/CCV-98720.xml -i biblio.txt

with biblio.txt being just a text that includes all the refs i want to convert (J163, etc.)

@jcohenadad still working on this but there were some neuropoly computers issues that popped up.
I have a branch (locally) with some changes that I believe are a starting point, but I'm pretty sure that there's something else causing the bug here, so it's taking some time.


Expose replicas as $replica()

To unstall https://github.com/prisma/extension-read-replicas/pull/18, I'm setting up a $replica() client-level call that forces use of a randomly-selected replica. This allows maximal developer control without sacrificing clarity for now, as suggested in https://github.com/prisma/extension-read-replicas/pull/18#issuecomment-1741314933.

Does this change the default behavior where for example, prisma.user.findMany() would use the primary writer/read DB?
But prisma.$replica().user.findMany() would then use a reader instance?
If so, then great! That makes way more sense to me than having the default be reader instances.

Does this change the default behavior where for example, prisma.user.findMany() would use the primary writer/read DB?
But prisma.$replica().user.findMany() would then use a reader instance?

No, it does not. This only allows the developer to control when to use a replica, especially when a query would otherwise hit the primary. The key use case is with $queryRaw which currently hits the primary but I may want to hit a replica instead.

If so, then great! That makes way more sense to me than having the default be reader instances.

How so? The point of read replicas are to offload reads from the primary database instance, so changing this behavior to hit the primary by default largely defeats the purpose of having read replicas.

@casey-chow

How so? The point of read replicas are to offload reads from the primary database instance, so changing this behavior to hit the primary by default largely defeats the purpose of having read replicas.

Great point 🙂

Overall this looks good. I've left one question. After it is clarified, this is ready to be merged. Sorry it took longer to get to the review and thanks a lot for sending in the patch.

Thanks @SevInf! I've made the fix, ptal.

Released in 0.3.0


CFFL

CFFL

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_94sqvkdpi8/clone/recipe/meta.yaml:15: pip_install_args: pip install should be run with --no-deps.
ERROR: /tmp/abs_94sqvkdpi8/clone/recipe/meta.yaml:20: missing_wheel: For pypi packages, wheel should be present in the host section
ERROR: /tmp/abs_94sqvkdpi8/clone/recipe/meta.yaml:27: missing_pip_check: For pypi packages, pip check should be present in the test commands
ERROR: /tmp/abs_94sqvkdpi8/clone/recipe/meta.yaml:37: invalid_url: https://git.unturf.com/python/nested-lookup/ : HTTPSConnectionPool(host='git.unturf.com', port=443): Max retries exceeded with url: /python/nested-lookup/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:997)')))
WARNING: /tmp/abs_94sqvkdpi8/clone/recipe/meta.yaml:37: missing_description: The recipe is missing a description
ERROR: /tmp/abs_94sqvkdpi8/clone/recipe/meta.yaml:37: missing_documentation: The recipe is missing a doc_url or doc_source_url
Errors were found


Page is no longer valid.

This page is now incorrect as it's possible to change the Tenant SPO URL: as per http://docs.microsoft.com/en-us/sharepoint/tenant-rename.
Not sure if this page has already been removed from navigation, but it's showing up in google searches, so should be updated.
Paul.

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

ID: 7fff5ef6-b4cc-5a18-10a8-7b5182e2deae
Version Independent ID: 8176e436-b25b-e455-09ac-be08bea2bfcb
Content: Change your SharePoint domain name - SharePoint in Microsoft 365
Content Source: SharePoint/SharePointOnline/change-your-sharepoint-domain-name.md
Service: sharepoint-online
GitHub Login: @kaarins
Microsoft Alias: kaarins

Closing as rename option is in private preview not public


Try DefaultAzureCredential by default?

Use case: accessing blob storage from an Azure VM using a managed identity.
Using fsspec, I was able to get it to work via:
from azure.identity.aio import DefaultAzureCredential
import fsspec

fsspec.filesystem('az', account_name='myaccount', credential=DefaultAzureCredential())

However, using petl, which uses fsspec under the hood, I am not sure how to inject the DefaultAzureCredential.
It might be nice to try the DefaultAzureCredential by default, since it is meant to cover a range of common use cases.

Worked around this via the following. Not perfect but handles my use cases.
import os

import adlfs
from azure.identity.aio import DefaultAzureCredential

class AzureBlobFileSystemWithDefaultCredentials(adlfs.AzureBlobFileSystem):
    def __init__(self, *args, **kwargs):
        has_credential = (
            "AZURE_STORAGE_ACCOUNT_KEY" in os.environ or "credential" in kwargs
        )
        if not has_credential:
            kwargs["credential"] = DefaultAzureCredential()
        super().__init__(*args, **kwargs)

# then before I try to open files
import fsspec
fsspec.register_implementation("az", AzureBlobFileSystemWithDefaultCredentials)

In dvc, we also have a special condition to use DefaultAzureCredential(). It would be awesome to fallback on this by default on adlfs itself too!
https://github.com/iterative/dvc/blob/547db15d343515d7056c7af4c311ae41b139916e/dvc/fs/azure.py#L72-L73

Hello @isidentical , @dylanfprice
I tried to put together a PR, for falling back to use the DefaultAzureCredential.
Let me know if this was kind of what were you expecting

Yeah I am not familiar with the adlfs codebase but that looks about right to me!

This makes sense to me. I think the only potential issue to consider is that anonymous access to public storage accounts / blobs still works.
Anyone interested in submitting a pull request?

There is one started in #222


fix: arrayElement overloads failing with non-arithmetic iterators

arrayElement(start, end) overloads would fail when being used with bidrectional iterators or basically anything that wasnt a random_access_iterator, so I added overloads for both random_access_iterator's and every other form.
Since random_access supports arithmetic we can just access index, but since every other iterator doesn't support we need to hand roll to the index.
Even before I rewrote the function yesterday it still would've failed on list containers or non-random_access iterators.

Algo seems to be passing over range twice...

No, I was gonna say the algo was multi-passing and being inefficient, there's a single pass algorithm that's more elegant here.


Fix CPU overusage

Rationale
The main process consumes a lot of CPU. We need to investigate and fix it.
Environment

Smapp version: 0.2.6

I believe that #1006 closed this issue.
At least, I can't find out any CPU over usage on the Smapp side.