CodeCake/Cake.Embedded: a "code based" approach to  Cake-build

I actually have an idea in mind. A strange one may be... but an interesting one I believe. I'm a little bit reluctant to express it before having gained credibility from all of you. But... well... let's go!
The idea is named "CodeCake". It is an alternative to scripting (I can imagine how difficult it could be for guys who designed a project around scripting to consider this approach!). It relies on a cs project in the solution that can be a console application and even a GUI application (winForm or WPF or whatever activated by a -gui (or -ui)  switch.
The scripts are replaced with classes with a default ctor: below is a (working) example from the POC I'm working on:
   class Build : CodeCakeHost
   {
       public Build()
       {
           var configuration = Cake.Argument( "configuration", "Release" );

           // Define directories.
           var buildDir = Cake.Directory( "./src/Example/bin" ) + Cake.Directory( configuration );

           Task( "Clean" )
               .Does( () =>
               {
                   Cake.CleanDirectory( buildDir );
               } );

           Task( "Restore-NuGet-Packages" )
               .IsDependentOn( "Clean" )
               .Does( () =>
               {
                   Cake.NuGetRestore( "./src/Example.sln" );
               } );

           Task( "Build" )
               .IsDependentOn( "Restore-NuGet-Packages" )
               .Does( () =>
               {
                   Cake.MSBuild( "./src/Example.sln", new MSBuildSettings()
                       .UseToolVersion( MSBuildToolVersion.NET45 )
                       .SetVerbosity( Verbosity.Minimal )
                       .SetConfiguration( configuration ) );
               } );

           Task( "Run-Unit-Tests" )
               .IsDependentOn( "Build" )
               .Does( () =>
               {
                   Cake.XUnit2( "./src/**/bin/" + configuration + "/*.Tests.dll" );
               } );

           Task( "Default" )
               .IsDependentOn( "Run-Unit-Tests" );
       }
   }

There is really nothing more to it (except the required using namespaces): the Cake that appears here is a property exposed by the base CodeCakeHost class that is actually just an alias to the Context property (extension methods apply and intellisense magics operates).
The overall process of working with CodeCake is the following:

Create a new project from a VS Project CodeCake template.
This project has one sample Build script that you can edit with all the intellisense support you can dream of.
This application depends solely on NuGet packages:

Cake.Core
CodeCake
Cake.Common
NuGet.CommandLine
Any other extension packages you may need.

To trigger a release, just compile and run it...

...and this is where the -gui switch may come into play: a user interface can be scaffolded from:

the existing CodeCakeHost classes in the project and their expected arguments/configurations.
any helpers/utilities (automatically registered by reflection) offered in any NuGet extension packages.

For unattended builds (CI), the first thing to do is to MSBuild the CodeCake project and runs it (or one of its "scripts"). (And, yes, I know, there is still a small chicken-and-eggs issue here to restore the NuGet packages...)

Note: To honor the "scripting promise", simply install the Cake.Scripting NuGet package in the CodeCake project and (Oh! Magic!) you can use:
Cake.CakeExecuteExpression(
   "Information(\"Hello {0}!\", Argument<string>(\"name\"));",
   new CakeSettings {
       ToolPath="./Cake.exe" ,
       Arguments = new Dictionary<string, string>{{"name", "World"}}
       });

or
Cake.CakeExecuteScript("./helloworld.cake");

from your build "scripts".
This is it. My long term goal is to provide a very simple (with no coupling to the IDE or the system - NuGet packages only) way to build/deploy/distribute/use a potentially unlimited of tools for the developer (for instance the classical "licence header processor", you need it but do not want to deploy a vsix for such little things).

(Quote from @patriksvensson that answered to this in issue #337)

A minor improvement to your approach would be to use the lambda overload for Does that provides an IContext. All aliases are extension methods for IContext so this would give you intellisense out of the box.
Task( "Clean" )
 .Does(cake =>
{
 cake.CleanDirectory(buildDir);
});

I would however want to ask of you that you do not use the Cake prefix for you NuGet packages for non-tools, especially something called Cake.Scripting since it would be very confusing.

1 - I explained the Cake in the text above: it is a simple property exposed by the base class, so you are "at home" with intellisense.
2 - Actually, the idea is that the current Cake.Core can be splitted in two: Cake.Core with the CakeEngine and the basics and a new Cake.Scripting.dll that supports the scripting functionality. In this scenario, Cake.exe depends on Cake.Core and Cake.Scripting (this just adds a second dll to the bin), but CodeCake/Cake.Embedded is not necessarily bound to the script support... unless, as the final developer, you install the NuGet package to script things.
(Don't worry, I will never use "Cake." prefix outside Cake project, that's exactly why I use this "CodeCake" name!)
One last word: the CodeCakeHost I posted is real (the CakeEngine does its job with it without any modification to the Cake code base - I just had to package Cake.Common to use its great extensions).
I used an awful (but safe) trick to avoid any extra parameter to the constructor - and the really annoying to write : base(...) call.

I like this because it allows for us to take advantage of C#'s great tooling, but on the flip side, half the reason I love C# Scripting, and Cake, is that I don't have to do anything special for it to "just work".

Yes I think the two worlds can peacefully live together and offer the best experience (with Code you easily have intellisense and powerful debugging capacities, with Script you benefit of the "dynamic" approach).
What led me to this is the fact that I want the commit point in the repository to exactly reflect the whole state of my releases. As long as the build chain belongs to the Solution and is committed with the source, then "It is Code"... (I tried to externalize the build chains in other repositories and/or in unparented branches but all those approaches have terrible issues).

@patriksvensson would need to separate the logic from "Cake.exe" into a new DLL "Cake.Host" then how you call the host just becomes a personal preference script/code/vs plugin/etc.

The proof of concept works well. I created a Project template with it (and even a VSIX).
It is a console application that works with the current Cake.Core, Cake.Common and a Code.Cake.dll (here: https://github.com/Invenietis/cake/tree/f-code-cake/src/Code.Cake). [Caution: crappy, quick & dirty code!]
The sample application onto which the Project Template is based is here: https://github.com/Invenietis/CodeCakeSampleApp
It is really cool to develop (and debug!) in VS (except that you have to know the namespaces before using the extension methods).
Unfortunately, this can be tested only with Cake.Common (and Code.Cake) published in nuget feeds (I used a private feed for them).
I hope you will find this approach interesting and I'm looking forward to developing it further.

Would be rather interesting to see this paired with a DNX Console Project, so that you just could do something like dnx run -p .\tools\build.json, and still have a top level build.cs. Or I could be crazy :P

I really like the general idea here, although I haven't really taken the time to review the specifics proposed above.
For me, this addresses the following concerns/thoughts I've had since starting with Cake:

how to decompose complex build routines into modular parts
(potentially) enhancing testability of those modular parts / enabling TDD
enhancing editing/authoring by making it possible to work in a full-featured IDE (even with ReSharper)

Up to this point, I've been (obviously very hackishly) writing my scripts in Visual Studio, writing my scripts in the .ctor of a custom class inheriting from a ScriptBase class, to give me intellisense and ReSharper goodness.
My ScriptBase implements ICakeContext and inherits from ScriptHost, with an additional code-gen'ed partial class containing all the method and property aliases so that I don't have to call them as extension methods.
When I'm ready to execute, I run a powershell script to scrape out the body of my script and "publish" it to a *.cake file for execution.
Of course my "solution" is (hopefully) a temporary thing until we can get some actual tooling together like @olivier-spinelli is proposing (and, BTW, I'd love to help with it).

Glad to see some interest in this beast!
Currently, my quick and dirty implementation works quite well. I am already using it and working on it (not on the core but around it: I just finished a boostraper.ps1: my goal is now to set up an AppVeyor build.
I hope that at the end of this day (Paris, France), I'll have the project setup and everybody will be able to see CodeCake in action.
Unfortunately, as long as Cake.Common.dll will not be on nuget.org, this can not easily be used by people. I made a PR for this and I'm waiting for it (I'm currently using a private nuget feed to host the Cake.Common package).

I have thought about this also. I created a wrapper for cake that does much the same thing.
It's also in POC stage but it work for me :)
The premise I was working on was that there would be a build sln that gets built first and then the resulting build.exe gets called which is the actual "script".

Up to this point, I've been (obviously very hackishly) writing my scripts in Visual Studio, writing my scripts in the .ctor of a custom class inheriting from a ScriptBase class, to give me intellisense and ReSharper goodness.

My ScriptBase implements ICakeContext and inherits from ScriptHost, with an additional code-gen'ed partial class containing all the method and property aliases so that I don't have to call them as extension methods.
When I'm ready to execute, I run a powershell script to scrape out the body of my script and "publish" it to a *.cake file for execution.

@jrnail23 I realise it's been a while and you've moved away from cake, but would you happen to have this visual studio project framework and powershell script you mentioned?  Even if hacky it sounds like the best way currently to enjoy intellisense etc whilst still having a .cake script as the final product.  If you could push a gist or repository or something i'd love to take a look at it.
Thanks!

@ryangribble I can't say much at the moment, but if you have some patience I will have a surprise for you in a couple of weeks that will solve your problem :smile:

cool sounds awesome @patriksvensson !
Id still be keen if @jrnail23 can post his hacky solution in the meantime :+1:

FYI, we actually use CodeCake for a while now without any issue (other than upgrading the code to follow the Cake code base). The code is not pretty at all but it works: a console app in each Solution (named CodeCakeBuilder) does the job.
The up to date VSIX is here (updated today): https://visualstudiogallery.msdn.microsoft.com/a04d0af4-d442-43a6-9c3b-7e64d08d6ea1
Example here: https://github.com/Invenietis/yodii-script/tree/master/CodeCakeBuilder
The Build script itself (the only part that actually needs to be changed across projects): https://github.com/Invenietis/yodii-script/blob/master/CodeCakeBuilder/Build.cs
You may notice some funny extensions to Cake: the support of "interactive" mode that I like very much:
if( !gitInfo.IsValid )
{
    if( Cake.IsInteractiveMode()
        && Cake.ReadInteractiveOption( "Repository is not ready to be published. Proceed anyway?", 'Y', 'N' ) == 'Y' )
    {
        Cake.Warning( "GitInfo is not valid, but you choose to continue..." );
    }
    else throw new Exception( "Repository is not ready to be published." );
}

And to conclude, we use AppVeyor and a standard appveyor.yml does the job (https://github.com/Invenietis/yodii-script/blob/master/appveyor.yml) thanks to these two lines:
install:
- ps: CodeCakeBuilder\Bootstrap.ps1
build_script:
- CodeCakeBuilder\bin\Release\CodeCakeBuilder.exe -nointeraction

Bootstrap.ps1 being the small script that builds the builder.
So... as long as the build machine has MSBuild, it works.
Heresy! I'm NOT using .cake file nor do I SCRIPT anything.
Yes, totally. And we are quite happy with that...
Do we miss a major issue on this point?
Does the "Script Way" offer stuff we'll be missing one day?
If some of you have information and/or remarks, we'll be glad to hear from them.
(And, one more time, many, many thanks to the team for Cake build: it definitely rocks! - even without scripts!)

I guess I just preferred the idea of using a cake script rather than a compiled executable, no legitimate reason just how I had things in my mind 😀  also your previous comments about codecake indicated it was a work in progress and it wasn't clear how up to date it was etc
the only thing I want is to make the cake script writing process easier (ie intellisense etc) but if @jrnail23 doesn't have that wrapper anymore I might take a look at codecake whilst waiting for the "surprise in a couple of weeks"

@ryangribble You're welcome. The fact is that CodeCake is a very thin exectable layer around Cake: the script itself is exactly the same (but I like the "interaction mode" and this has not been extenalized: the extension mehods are defined in Code.Cake dll).

@ryangribble, I'm sorry, but all that code is lost forever -- It was all on my dev machine owned by my former employer.

@ryangribble There is an alpha of what we call Cake.Frosting at https://github.com/cake-build/frosting.
Feel free to try it out and leave feedback if you have any.

@jrnail23 no worries, thanks for replying :wink:
@olivier-spinelli I got up and running with CodeCake it works well thanks
@patriksvensson I'll definitely check out frosting - is this the surprise you were referring to?  :grinning:

@ryangribble said...
I'll definitely check out frosting - is this the surprise you were referring to?

Yip, yip, yip.  We would welcome any feedback that you have on it.


4.2.4 patch update

Platforms affected
All
What does this PR do?
Proposed changes for 4.2.x branch (NOT for master):

Use npm@5 on AppVeyor to resolve issue with CI on Node.js 4
Drop support for old Cordova platforms
Use github:brodybits/jasmine-node#1.15.0-rc1 in devDependencies to resolve npm audit warning (see note below)
CB-9366 Log error.stack as proposed by @nikhilkh in #118, with JavaScript fix by @brodybits
Update version & RELEASENOTES.md for release 4.2.4
Increment package version to 4.2.5-dev

NOTE: github:brodybits/jasmine-node#1.15.0-rc1 specifies a special version of jasmine-node that I made in my fork with changes proposed in https://github.com/mhevery/jasmine-node/pull/429 to resolve npm audit issues. This special version is needed due to lack of maintenance as discussed in https://github.com/mhevery/jasmine-node/issues/430. I already requested owner access to the NPM module according to https://www.npmjs.com/policies/disputes, may have to wait a month for this.
The use of brodybits/jasmine-node patch will NOT be part of master. The solution for the next major release is to migrate to jasmine, with some changes to require() imports, as proposed by @audreyso in #140.
What testing has been done on this change?

Most of these changes were verified to pass CI in @151 and a couple other PRs that I had closed.

Checklist

Reported an issue in the JIRA database
Commit message follows the format: "CB-3232: (android) Fix bug with resolving file paths", where CB-xxxx is the JIRA ID & "android" is the platform affected.
Added automated test coverage as appropriate for this change.

Changed my mind yet again: need to fix some more npm build/test issues and maybe propose the changes in smaller parts. Closing for now, at least. Apologies to watchers for the confusion.


Plist to html browser support

Show warning message if the browser is not supported when looking html files generated by Plist to HTML parser.

I've created a separate issue to check the supported browsers #1666


mocz_tool with fatal errors (debian jessie)

Using debian jessie. Recently installed packages mozc-data, mozc-server, mozc-utils-gui, uim-mozc.
I have problems using /usr/lib/mozc/mozc_tool with some modes, e.g. -mode=dictionary_tool, --mode=word_register_dialog, --mode=character_palette. It gives me the following errors.
[libprotobuf ERROR google/protobuf/descriptor_database.cc:57] File already exists in database: session/candidates.proto
[libprotobuf FATAL google/protobuf/descriptor.cc:1018] CHECK failed: generated_database_->Add(encoded_file_descriptor, size):
terminate called after throwing an instance of 'google::protobuf::FatalException'
  what():  CHECK failed: generated_database_->Add(encoded_file_descriptor, size):
Aborted

I hope this has a fix. Thank you.

Thank you for the report.
I believe this is a duplicate of #14, which was already fixed in Mozc upstream but not fixed yet in Debian package due to Debian's packaging policy. Thus I would suggest you report this to Debian bug 700307 and/or Debian bug 721791 instead, or report this to protobuf team at google/protobuf#1941, because to fix this we have to change either 1) how Mozc is packaged in Debian or 2) how protobuf library works when being used as a dynamic library.


Minimap icons displaying only in fixed mode

Currently, the minimap icons (f.e. for fishing spots) are displayed on minimap only in fixed mode, but when changed to resizable mode, they dissapear.

Fixed in 4b2e8cd1cdb0ef8c8aa4f0c8fadc03898870851d


Can you publish it to open-vsx.org

I love this extension. Can you publish it here.
https://open-vsx.org/namespace/RandomFractalsInc
vscode-data-table is a dependency of my extension and i would like to publish my extension at https://open-vsx.org/

Hi @BenjaminHofstetter. How are you using it with your extension?
I have not published to open VSX registry for years and currently taking some time off from VS Code extensions dev and maintenance, but might get back to it this summer.
What's your extension that you'd like to add data table renderers as a dependency?

https://marketplace.visualstudio.com/items?itemName=Zazuko.sparql-notebook
I am working on publishing it in vsx soon. But no hurry.

Will publish it on open VSX registry later this summer.

good news thank you


rustup update fails with no errors reported.

Hi,
When rustup update fails in No space left on device, no errors reported.
nunuqn@nunuqn-house:~$ rustup update
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: latest update on 2018-07-10, rust version 1.27.1 (5f2b325f6 2018-07-07)
info: downloading component 'rustc'
info: downloading component 'rust-std'
info: downloading component 'cargo'
info: downloading component 'rust-docs'
info: removing component 'rustc'
info: removing component 'rust-std'
info: removing component 'cargo'
info: removing component 'rust-docs'
info: installing component 'rustc'
info: installing component 'rust-std'
info: installing component 'cargo'
info: installing component 'rust-docs'
info: rolling back changes
error: could not rename component file from '/home/nunuqn/.rustup/tmp/6jfxmhgh0gi8h6fo_dir/bk' to '/home/nunuqn/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/share'
error: could not rename component file from '/home/nunuqn/.rustup/tmp/46hvvd5vcyvrbx4f_dir/bk' to '/home/nunuqn/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/share/doc'
error: could not rename component file from '/home/nunuqn/.rustup/tmp/hwlervja8wvuc3me_dir/bk' to '/home/nunuqn/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/share/doc/rust'
error: could not rename component file from '/home/nunuqn/.rustup/tmp/ew2x1wp1vwm60i_i_dir/bk' to '/home/nunuqn/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/share/doc/rust/html'
error: could not rename component file from '/home/nunuqn/.rustup/tmp/edxe1acnvqjz4tu1_dir/bk' to '/home/nunuqn/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/etc'
error: could not rename component file from '/home/nunuqn/.rustup/tmp/shbes8wlyb1azdlq_dir/bk' to '/home/nunuqn/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/share/zsh'
error: could not rename component file from '/home/nunuqn/.rustup/tmp/lufm4mjte11qmxyl_dir/bk' to '/home/nunuqn/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/share/man'
error: could not rename component file from '/home/nunuqn/.rustup/tmp/rikwiro3ji5i94ab_dir/bk' to '/home/nunuqn/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu'
error: could not copy directory from '/home/nunuqn/.rustup/tmp/_t5jzfij5n_u_u1b_dir/rust-docs/share/doc/rust/html' to '/home/nunuqn/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/share/doc/rust/html'
info: checking for self-updates

  stable-x86_64-unknown-linux-gnu update failed - rustc 1.27.0 (3eda71b00 2018-06-19)

Thank you.

No, just 1 drive on the host.


Get screen readers to read uploading records page

Just to note, this PR doesn't have to wait until we've come to a decision about how to update the progress bar for screen reader users as it's only about adding the ARIA roles (so that the page could be read out), so they need to be added to this page regardless.


Test: Tree find history

Refs: https://github.com/microsoft/vscode/issues/155578

[x] macOS @TylerLeonhardt
[x] linux @roblourens
[x] windows @alexr00

Complexity: 2
Create Issue

Trees which support find (press Ctrl/Cmd F) now support history by pressing UpArrow/DownArrow.

Make sure:

Pressing Enter moves the focus from the find widget to the widget and commits the find input to history.
Focusing on the find widget and pressing UpArrow/DownArrow to loop through history results works as expected. Pressing DownArrow when at the end of history should focus the tree.

Note: the history is gone once the workbench gets reloaded.

I also noticed that Up and Down arrow or focusing on the file tree (via clicking) ... one of those "commits" the find input to history. That makes sense to me, but I wanted to call it out since it wasn't mentioned in the TPI.


[proposal] Adding build.cliOptions

As in discussion https://github.com/devcontainers/spec/discussions/301, I would like to propose a way to add cli arguments to a build command, similar how runArgs add cli arguments to the run command.
This is needed for example for overriding the network eg. network=host or for adding additional hosts. There is also a discussion about it over at vscode-remote: https://github.com/microsoft/vscode-remote-release/issues/3545
Unfortunately, build.args is already used for Docker ARGuments so we need to use something else.
I am open for naming proposals.
Things I thought about are:

build.buildArgs
build.cliArgs
build.cliOptions
build.options
build.commandArgs
build.commandOptions

@microsoft-github-policy-service agree

So I should create a proposal markdown file similar to https://github.com/devcontainers/spec/pull/196? Can do. That should be in its own PR I suppose.

As this was discussed in https://github.com/devcontainers/spec/discussions/301 and has decent amount of upvotes, I believe it should be alright not creating a spec issue (or maybe create one and link it to the discussion)

So I should create a proposal markdown file similar to https://github.com/devcontainers/spec/pull/196?

Said that, it would be great if you can create a similar PR, if the proposal looks good then we can start thinking about the CLI code changes.
// cc @bamurtaugh Feel free to correct my understanding, if needed.

I created a simple proposal for the spec change: https://github.com/devcontainers/spec/pull/328

@samruddhikhandale any update on this?

Updating the property name as agreed on in https://github.com/devcontainers/spec/pull/328.


How to use Windows default nameservers?

Does this library supply a way to set the resolver to the default Windows resolver?
Since https://github.com/go-acme/lego/issues/1015 uses this dns package rather than the system package (and I completely understand why), it is blocked in Windows environments where the system resolver must be used (i.e. outbound 53 is blocked).
I see that there's a utility for fetching Unix resolvers, but I'm not seeing a function for Windows so far.

no such code exists in this lib

os/exec-ing powershell.exe -NoProfile -NonInteractive "Get-DnsClientServerAddress -AddressFamily IPv4  | Select-Object -ExpandProperty ServerAddresses" may work


Refactor uvm.Create into CreateWCOW and CreateLCOW

Moves uvm.Create into uvm.CreateWCOW and uvm.CreateLCOW and splits
uvm.UVMOptions into the set of Common/WCOW/LCOW specific options to simplify
validation and customization logic.
Fixes a few tests.
Signed-off-by: Justin Terry (VM<EMAIL_ADDRESS>

@jhowardmsft - Can you run the functional tests on your setup as well just to make sure we dont miss anything here.

This is getting too big. I am going to split this into multiple PR's starting with fixing the tests. More to come this AM


D3.5.4 Lasair Version 7

This is a Phase C deliverable.
According to Phase C proposal, it comprises

"major upgrade to include LSST DR1 into the Sherlock classification algorithm. Inclusion of gravitational wave skymaps – for the LIGO-Virgo-Kagra O5 run (projected Oct 2025). Finalised  information flow from 4MOST spectroscopic survey."

Subsequently in Aug'23, the Lasair Long Term Plan defined it as

D3.5.4 = Lasair 7 (PM70=Apr 2025) Real time processing and services for the LSST alert stream. Inclusion of gravitational wave skymaps – for the LIGOVirgo-Kagra O5 run (projected Oct 2025). Finalised information flow to and from 4MOST spectroscopic survey.

Subsequently, given changes to the Rubin Operations schedule,  change request CR107 altered the deliverable scope to be

a review of the integration of optical survey data and multi-wavelength triggers (Fermi, IceCUBE); a major upgrade to the Sherlock classification algorithm by adding LSST deep drilling catalogs; inclusion of gravitational wave skymaps – for the LIGO-Virgo-Kagra O5 run (projected Oct 2025); finalised information flow from 4MOST spectroscopic survey.

14/AUG/24

change request CR107 approved at the 13/AUG/24 altered the deliverable scope.  See description above for copy of the details.


On homepage split "seen on" logos so their responsive

Did the designer have these logos separately? I asked before when putting
them up there, but all I could find was one whole image which I cut that
out of. To implement designs like this long term, we need the individual
images provided so that I can quickly use them where necessary - it is too
slow a process to have to chop out the relevant bits. I could do it in this
case with these company names, if they cannot be provided individually (and
at reasonable scale and data size) from the designer, but don't have time
just now.
On Fri, Oct 14, 2016 at 11:17 AM, Joseph McArthur<EMAIL_ADDRESS>wrote:

Assigned #280 https://github.com/OAButton/backend/issues/280 to
@markmacgillivray https://github.com/markmacgillivray.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/OAButton/backend/issues/280#event-823772480, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAuXCIT7GC_fVElmMFHgLK1au9RtLeyfks5qz1augaJpZM4KW2w4
.

Ah, found them in the assets folder, which was not there three weeks ago, when I last updated the front page probably. Will use them.

Done on dev, no testing needed (they're split, they respond on mobile, that as exciting as it gets), will close.


Clustering

Closes https://github.com/ucbepic/docetl/issues/48

I was a bit unsure how the docs are all stringed together / how the left hand menu index is generated. Please check that I haven't forgotten to add any links etc...

Cool i will take a look later today; thanks for doing this 🥳

Btw, this operator suffers a bit of the same scaling problem as the map operation (see https://github.com/ucbepic/docetl/issues/86), and we might want to try to sketch out a more generic solution for batching / merging prompts to reduce the number of calls.


Add allow_cpu_scalar_tensors for shape,device check and broadcast functions

Before submitting

[ ] Was this discussed/approved via a Github issue? (no need for typos and docs improvements)
[ ] Did you read the contributor guideline, Pull Request section?
[ ] Did you make sure to update the docs?
[ ] Did you write any new necessary tests?

What does this PR do?
Fixes #941.
PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃

Thank you, @kiya00 , for looking into this! I think having a allow_cpu_scalar_tensors is a good ingredient for the solution, but in addition we need to take scalar.item() and then process treating it as a number.
The tricky part will be that this needs to either

be inside the prims because we cannot leak the .item() value into the trace, or
building on  @jjsjann123 's number proxy work, make the .item() return a number proxy and make that work.

I imagine that that either option will be not be terribly easy.
The alternative (quite inferior to my mind) is that we need to move it to GPU and broadcast to treat it as a tensor (to my mind not desirable).

we cannot leak the .item() value into the trace

QQ: what's the issue with having item in the trace? I thought we do have PrimIDs.ITEM, which does exactly that?

QQ: what's the issue with having item in the trace? I thought we do have PrimIDs.ITEM, which does exactly that?

Sorry, I was too terse: we can have  .item() in the trace, we cannot have the returned value as a constant value in the trace.

QQ: what's the issue with having item in the trace? I thought we do have PrimIDs.ITEM, which does exactly that?

Sorry, I was too terse: we can have .item() in the trace, we cannot have the returned value as a constant value in the trace. So if we want to have the .item() in the trace, the return value needs to be a number proxy.

Got'ya.
Do we need to lift cpu scalar tensor into numberproxy? If that's going to be treated as a dynamic thing, why not just leave it as-is?
Looking at the changes in this draft PR, why would we have an extra field to allow cpu scalar? Are we seeing any errors when we stopped broadcasting cpu scalar tensors?
My naive understanding is that the changes here should be the default behavior. PyTorch has been treating cpu scalar tensors as scalars. So I would expect backends to play well with that already. cc'ing @Priya2698 for visibility.

Do we need to lift cpu scalar tensor into numberproxy? If that's going to be treated as a dynamic thing, why not just leave it as-is?

To my mind, PyTorch's handling of cpu scalar->scalar is similar to upcasting or broadcasting of tensors and implicit.
It then takes the overloads with Scalar args, not the Tensor ones:
So for the torch.add(a, b), PyTorch will call a 2-tensor vectorized_elementwise kernel if b is a number or a cpu scalar tensor and a 3-tensor kernel if b is a cuda tensor (different ones depending on whether there is broadcasting).

Do we need to lift cpu scalar tensor into numberproxy? If that's going to be treated as a dynamic thing, why not just leave it as-is?
Looking at the changes in this draft PR, why would we have an extra field to allow cpu scalar? Are we seeing any errors when we stopped broadcasting cpu scalar tensors?

Before the changes in this draft, the binary operator broadcast the cpu scalar tensor and check the same device and same shape, the changes try to skip those for cpu scalar tensor in the meta function propagation, and in the runtime since the torch/nvfuser backend can take care of the binary ops using the mix of cpu scalar tensor and cuda tensor(is that right?). Then maybe we can leave it as-is instead of take out the value as numberproxy? what do you think? @t-vi @jjsjann123

Hey @kiya00!
It seems like we have two options for dealing with this issue:

We can treat cpu tensors with zero dimensions like numbers in most cases
We can convert scalar cpu tensors to numbers in torch operations

The first option requires the primitives be able to understand some cpu tensors as numbers. This is not a totally unreasonable request to make of them. Instead of saying "allow_cpu_scalar_tensors", an argument like "treat_cpu_scalar_tensors_as_numbers" might be more accurate. We should be careful to note that type promotion is different for cpu tensors with zero dimensions and numbers, because the former has an actual tensor dtype. Our current type promotion probably handles this incorrectly, but maybe we could update
https://github.com/Lightning-AI/lightning-thunder/blob/f945409580e555b010f5272eb19dcba744ae3196/thunder/core/dtypes.py#L311
so that it returns a weak dtype for any cpu scalar tensor? We want the behavior to mimic PyTorch's in cases like:
a = torch.randn(1, dtype=torch.float16).squeeze()
b = torch.randn((2, 2), dtype=torch.bfloat16)

# The tensor dtype of b is used because a is a cpu scalar tensor
a + b
tensor([[-0.5312, -3.5781],
        [-1.3906,  0.1211]], dtype=torch.bfloat16)

# The dtype of a is the result, not float32 as would be the case if 1. + 2 were turned into a tensor
a + 2
tensor(1.1211, dtype=torch.float16)

Alternatively, we could change the torch operations or maybe the clang operations to convert scalar cpu tensors into number proxies. There are a couple challenges with this, however. First, it requires adding code to a lot of operations. Second, the conversion to a number would lose the tensor dtype information, because our number proxies currently only have number types (fyi @jjsjann123, it could be interesting to think about changing this). Converting tensors to number proxies might also require updating the conversion from thunder objects to torch objects, because a numberproxy with a tensor dtype would have to be wrapped in a cpu tensor before being returned to the practitioner.
I think either approach is possible. I guess my question is how easy would it be for executors, like nvFuser, to use a scalar cpu tensor as a number? @kevinstephano @jjsjann123. If that is easy, then using the approach in this PR, with treat_cpu_scalar_tensors_as_numbers, is probably the simpler approach. We should add tests to ensure it works and file an issue for nvfuser support. Maybe there are some custom tests we can write and extend some OpInfo sample inputs?
If we take this approach, then will operations like adding a cuda tensor and a cpu scalar tensor always be dispatched to the PyTorch executor and not the nvFuser executor, because one of the inputs is a cpu scalar tensor?

I guess my question is how easy would it be for executors, like nvFuser, to use a scalar cpu tensor as a number?

nvfuser today already support scalar cpu tensor. Hence my earlier suggestion to just leave it as-is and just update the broadcast/type promotion in proxy to properly handle cpu scalar tensors. :)
another question I have is re: allow_cpu_scalar_tensors vs treat_cpu_scalar_tensors_as_numbers
I don't see the reason of having these field in the first place. Shouldn't it be a generic feature for promotion to handle? IMHO. if there are operations that doesn't allow cpu scalar tensor, the assert should happen inside the specific operation instead.

do like PyTorch and make it explicit in the trace" has worked well for us with broadcasting and upcasting

Re: @t-vi 's earlier comment, I don't disagree with this. However, in the cpu scalar specific things, I don't see a clear win by explicitly converting it to a number proxy in the trace. I expect that's a lot more work up front to tackle, comparing with fixing broadcast/type promotion, which can be done incrementally.

Thanks a lot for the awesome summary and listing out options @t-vi @mruberry 👏

I guess my question is how easy would it be for executors, like nvFuser, to use a scalar cpu tensor as a number?

nvfuser today already support scalar cpu tensor. Hence my earlier suggestion to just leave it as-is and just update the broadcast/type promotion in proxy to properly handle cpu scalar tensors. :)

Great!

another question I have is re: allow_cpu_scalar_tensors vs treat_cpu_scalar_tensors_as_numbers
I don't see the reason of having these field in the first place. Shouldn't it be a generic feature for promotion to handle? IMHO. if there are operations that doesn't allow cpu scalar tensor, the assert should happen inside the specific operation instead.

I agree; having no option (or defaulting the option to on if it's required for some reason) sounds good.

I think the test error is unrelated:
b = tensor([[                  0,                   0,                   0,
                           0],
        [      ...       [                  0,                   0,                   0,
                           0]], device='cuda:0')

>       lambda a, b: comp(a, b, equal_nan=True),
    )
E   AssertionError: Tensor-likes are not equal!
E
E   Mismatched elements: 1 / 16 (6.2%)
E   Greatest absolute difference:<PHONE_NUMBER>854775807 at index (2, 3)
E   Greatest relative difference: 1.0 at index (2, 3)

thunder/tests/test_ops.py:84: AssertionError

That's quite a big error! I wonder what's going on with that test. I filed https://github.com/Lightning-AI/lightning-thunder/issues/1130 to track it.

Hi @IvanYashchuk , could you take a look if it's ready to merge?


Issue with errors and bad job ID

❯ bacalhau-1.5.0 job describe j-some-non-existend-job
Internal Server Error

Internal Server Error should be a last resort (it could be). But right now it's broken and I don't know why.

I think the binary is not updated. Not able to see the same behavior. Double checking.

Not an issue, as the server was running on older version.

This could be true - but shouldn't we detect the protocol failure and tell them at least that?


unread_count: Increase prominence of quiet unreads.

In addition to upping the font weight in light and dark modes, this PR begins introducing new classes for different counter attention-levels, but only the quiet class is introduced on those elements that currently show a quiet count (Starred, Drafts, and Scheduled messages).
CZO discussion

Screenshots and screen captures:

Before
After

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

Merged, thanks @karlstolley!


Res2Net-50-L with 18w x 4s

文章说Res2Net-50-L with 18w x 4s。这个宽度为18是怎么实现的，因为18 % 4=2啊，难道不是等分的

Sorry, I can't read Chinese.

The paper mentioned that Res2net-50-L with 18w x 4s ,18 means width of the filters & 4 means scales.So my question is that 18 mod 4 is not equal 0, and in your codes,you wirte this in res2netbottleneck
if planes % scales != 0:             raise ValueError('Planes must be divisible by scales')
So Is it my wrong understanding?

You are right.
That's because I'm lazy to support Indivisible width and scales.
I'll implement it some time!


Bugs already present in the original game

The original game as a lot of bugs, and we need to decide what to do about it.
Since D2MOO's main objective is to implement the vanilla game, we must keep the code of those bugs, and document them.
We could probably still fix them, and use a macro for such code to enable/disable fixes.
I'm adding a new Label for bugs reported that might have an impact to modders, but were already present in the original game, thus not due to D2MOO.
Such bugs must be both labeled and reference this issue.

For the bugs we fix, put them behind a NO_BUG_FIX macro check that allows to obtain vanilla behavior.


Add Scala 3

Replaces circe-generic-extras with circe-generic by renaming fields to snake_case. Adds a custom Arbitrary instance to work around a missing scalacheck-shapeless dependency on Scala 3.

Not sure if changing the model fields is ok. Seems true but let's ask @janstenpickle for sure.


DEFAULT_BLOCK_MAX_SIZE

This is still set to 750kB in Classic, despite the problems. Should Classic also consider raising it to 1MB?

Already done in https://github.com/bitcoinclassic/bitcoinclassic/commit/76e123a3b3f842a79904c1bfcdc971ee3d388851#diff-4a59b408ad3778278c3aeffa7da33c3cL128

Ah, alright then! Should the constant be removed, then?

It could, and technically it should.
But to avoid merge conflicts, I'd leave it.
Leave this PR open for a while, since we now had 2 PRs for this same line in 2 days.

Yeah, I was thinking merge conflicts might be an issue. Maybe a comment could be added above that line to point out that it's no longer used in Classic?

Yeah, I was thinking merge conflicts might be an issue. Maybe a comment could be added above that line to point out that it's no longer used in Classic?

That would still cause a merge conflict :)

True!


Remove assertions around location of BEGIN CERTIFICATE and END CERTIFICATE

Currently node-soap throws an error if a certificate file does not have "------ BEGIN CERTIFICATE ------" as the first characters in the file. However, https://tools.ietf.org/html/rfc7468 provides a spec for encodings of X.509 certificates, and says:
"Textual encoding begins with a line comprising "-----BEGIN ", a label, and "-----", and ends with a line comprising "-----END ", a label, and "-----".  Between these lines, or "encapsulation boundaries", are base64-encoded data according to Section 4 of [RFC4648].  (PEM [RFC1421] referred to this data as the "encapsulated text portion".)  Data before the encapsulation boundaries are permitted, and parsers MUST NOT malfunction when processing such data.

In this PR I removed the check for BEGIN and END entirely. It may be possible to provide a more thorough verification while remaining true to the spec, by accepting a wider range of labels (such as "TRUSTED CERTIFICATE" in addition to "CERTIFICATE") and accepting them at any location in the file. I don't think this is worth it, though, as complete verification of the spec would be non-trivial, and since it's ultimately the receiving server's responsibility to validate the certificate.

I totally agree with you @JosephJNK, that the soap library should not verify certificates per se if it's used as client, what about you @jsdevel ?

Yea, I feel this change is acceptable.  My only concern is on backward compatibility.  @JosephJNK can you see any issues with that?

@jsdevel I wouldn't expect any backwards compatibility issues, since this is strictly increasing the accepted set of inputs. The only way this would result in an error is if a user was depending on this error being thrown, like if they were trying to load multiple files as certs until one finally worked. I really doubt anyone is doing something like that, so this shouldn't cause any breakage.

Just pushed/squashed another change, I realized that I had saved the wrong cert for the unit test I added, and needed to add the preamble to it for the test to be valid.

LGTM

Merged. Thanks a lot @JosephJNK :+1:

Sure thing, thanks for accepting the PR so quickly.


The callbacks are not getting caught by angular's scope

$evalAsync mitigated the issue.

I am not entirely sure how to setup this test...  Help?

Thanks for this PR. You can fix the test by changing L16 in the spec file to this:
spyOn(scope, 'success').and.callThrough();

If you fix it I will merge :)


Use kubebuilder controller-gen for creating CRDs

Testing switching over to kubebuilder controller-get for CRD generation

looks great, thank you! :tada:

Question, can we also replace openapi-gen with controller-tools? I believe support for that has been added recently.

Whoa, awesome! :tada:

@s-urbaniak I'm not sure if we can replace openapi-gen, but we can at least replace the deepcopy-gen the rbac stuff also.

I'm not sure if we can replace openapi-gen

Why not?

@pgier CRD schema generation was added by @sttts in https://github.com/kubernetes-sigs/controller-tools/pull/183, so we should be able to leverage that feature.
Having said that I am also fine in doing this in a step-by-step manner as a follow-up.

Assuming the tests pass this time, I think this is ready for another review and merge if everything looks ok.

Just to add some notes about the changes here, we are now generating the CRDs as yaml files from types.go using controller-gen, then generating bindata for those yaml files, and then unmarshalling the yaml files into CRD structs at run time.  This replaces the previous process of using the custom po-crdgen command to generate CRDs and openapi-gen to generate schema directly in go source.  The new process also ensures that the example CRD yaml files match what we are using in prometheus-operator at deploy/run time.
controller-gen also now handles the deepcopy generation and replaces the deepcopy-gen tool.

Overall lgtm, nice work! Happy to get rid of some of the tech debt we've build around this.

@pgier the unit tests are spot on :ok_hand:
lgtm :tada:
Thanks for the hard work here!


Skybox water renders strangely

Water has strange stretched out and distorted textures, unlike the sky, which has rendered correctly in all the cases I've seen.  I'll take a look.


Creating Library Logger

Description of PR
Creating a comprehensive logger for developers to view what is going on in the AE library. This PR allows developers to wrap functions within modules with a log function, which prints the runtime of the function and all the sub-functions of the function that exist within the same module. It additionally will log any other sub-modules reference within the current module (i.e. if you try to log DataInterface, it will also log functions within the DataParameters class).
Summary of changes and related issue
Addition of a library-facing logger in climakitae.util.logging to increase visibility of function execution and runtimes in the codebase.
Relevant motivation and context
This has been developed because it increases the visibility of what functions run at execution (good for tracking logic of the codebase, esp. useful for new developers), and demonstrates the run-time of all sub-functions being run within that module.
Example of its usage is below:

(similar to showing the call stack of a function, but also shows the runtimes).
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
# If you're interested in what's going on in the back-end for a specific module, you can `enable_lib_logging` and `disable_lib_logging` as you'd like!
from climakitae.explore import agnostic
from climakitae.util.logging import enable_lib_logging, disable_lib_logging
enable_app_logging(agnostic)
disable_app_logging(agnostic)

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

Since this is only for developers for now, please consider using hidden functions, and even moving the code to a separate place.
The description and intended use of the tool would be more helpful if they are documented in a place the developers can access more easily. Limitations would be helpful to note as well.

 Logger for function execution visibility


Migrating images in public to S3

https://github.com/SCE-Development/Core-v4/tree/dev/public/images
@IsitaB @aashrav

With uploading any photo, we should not store this locally, but instead on a aws S3
Any and all images can be rendered by calling on APIs from Google.
Same with .stl files for the 3d console

github cdn ftw


[ci][docs] set limit for max requests per second to one host in linkchecker

Try to workaround Valid: 429 too many requests to GitHub.
This is the most frequent error I see.
https://github.com/linkchecker/linkchecker/issues/193
https://github.com/linkchecker/linkchecker/blob/7db035d1bc124d531370ac25179af3e7a08a40ff/config/linkcheckerrc#L170-L171

In 10+ consecutive runs of check-docs test I didn't see 429 error.

In 10+ consecutive runs of check-docs test I didn't see 429 error.

Yeah, seems that this change is simply required given that many "serious" sites have DDoS protection now.

I'd even be ok with this being 3 seconds between links.

Unfortunately, we cannot set maxrequestspersecond to float value (<1). Probably some another param will help. But let's think about it when/if needed 🙂 .

Yeah, seems that this change is simply required given that many "serious" sites have DDoS protection now.

I'd even be ok with this being 3 seconds between links.

Unfortunately, we cannot set maxrequestspersecond to float value (<1). Probably some another param will help. But let's think about it when/if needed 🙂 .

OK, this limit didn't completely fixed the problem.
I see in master:
Warning    [url-rate-limited] Rate limited (Retry-After: 60)
Result     Valid: 429 too many requests

GitHub again.
Looking though the rest linkchecker params I believe the only option left that can help is
# number of threads
#threads=10

https://github.com/linkchecker/linkchecker/blob/7db035d1bc124d531370ac25179af3e7a08a40ff/config/linkcheckerrc#L126-L127
Because I suspect that maxrequestspersecond should be read as maxrequestspersecondPERTHREAD actually, though I'm totally unsure and can be wrong.
Another option which I'd prefer is simply add url-rate-limited to ignorewarnings list:
https://github.com/microsoft/LightGBM/blob/787780851f911fb96fa2895b05ac792291954cf5/docs/.linkcheckerrc#L11
Or simply continue re-runing jobs (hopefully with less frequency) 🙂 .

OK, this limit didn't completely fixed the problem.
I see in master:
Warning    [url-rate-limited] Rate limited (Retry-After: 60)
Result     Valid: 429 too many requests

GitHub again.
Looking though the rest linkchecker params I believe the only option left that can help is
# number of threads
#threads=10

https://github.com/linkchecker/linkchecker/blob/7db035d1bc124d531370ac25179af3e7a08a40ff/config/linkcheckerrc#L126-L127
Because I suspect that maxrequestspersecond should be read as maxrequestspersecondPERTHREAD actually, though I'm totally unsure and can be wrong.
Another option which I'd prefer is simply add url-rate-limited to ignorewarnings list:
https://github.com/microsoft/LightGBM/blob/787780851f911fb96fa2895b05ac792291954cf5/docs/.linkcheckerrc#L11
Or simply continue re-runing jobs (hopefully with less frequency) 🙂 .

What do you think about bumping the parameter changed in this PR to 3 seconds? https://github.com/microsoft/LightGBM/pull/3785#pullrequestreview-570776482

What do you think about bumping the parameter changed in this PR to 3 seconds? https://github.com/microsoft/LightGBM/pull/3785#pullrequestreview-570776482

What do you think about bumping the parameter changed in this PR to 3 seconds?

TBH, I don't know what to say. I can't find GitHub limits. I've found only GitHub REST API limits:

For API requests using Basic Authentication or OAuth, you can make up to 5,000 requests per hour.
https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting

It is 1.3(8) requests per second.
Also, I've found some other examples for limits of famous site APIs.
Twitter: https://developer.twitter.com/en/docs/twitter-api/rate-limits#table
Google Analytics:

10 queries per second (QPS) per IP address.
https://developers.google.com/analytics/devguides/config/mgmt/v3/limits-quotas

Slack

Rate limits do apply to posting messages or other write events to the Real Time Messaging websocket. Please limit writes to 1 per second.
https://api.slack.com/docs/rate-limits#rate-limits__rtm-apis__posting-messages

Trello:

There is a limit of 300 requests per 10 seconds for each API key and 100 requests per 10 second interval for each token.

What do you think about bumping the parameter changed in this PR to 3 seconds?

TBH, I don't know what to say. I can't find GitHub limits. I've found only GitHub REST API limits:

For API requests using Basic Authentication or OAuth, you can make up to 5,000 requests per hour.
https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting

It is 1.3(8) requests per second.
Also, I've found some other examples for limits of famous site APIs.
Twitter: https://developer.twitter.com/en/docs/twitter-api/rate-limits#table
Google Analytics:

10 queries per second (QPS) per IP address.
https://developers.google.com/analytics/devguides/config/mgmt/v3/limits-quotas

Slack

Rate limits do apply to posting messages or other write events to the Real Time Messaging websocket. Please limit writes to 1 per second.
https://api.slack.com/docs/rate-limits#rate-limits__rtm-apis__posting-messages

Trello:

There is a limit of 300 requests per 10 seconds for each API key and 100 requests per 10 second interval for each token.

Do you think that 1 RPS is too slow?

Do you think that 1 RPS is too slow?

Looking at the logs in https://github.com/microsoft/LightGBM/runs/1728534013, I see that we make 570 requests (if I understand that "links" and "URLs" are different things for linkchecker).

That's it. 274 links in 296 URLs checked. 0 warnings found. 0 errors found.

So single-threaded 1 request per second would be 9.5 minutes. Add about a minute of time for setup.sh, that would make the check-docs job 10-11 minutes. I actually think that would be ok in exchange for not having to regularly manually re-run the job. That's shorter than our longest CI jobs.
I have another idea for this one...we could also change check-docs from something required on every PR to something that runs on a schedule, like every 6 hours. https://github.com/saturncloud/prefect-saturn/blob/ded98bf24db7da7bb1f2b59e7ad31e4a149b73a3/.github/workflows/main.yml#L12-L14
That way, we'd still regularly catch broken link issues, but this check wouldn't block PRs and it would have only a small effect on our CI capacity during times where multiple people are pushing commits. In my experience, most PRs in this project do not introduce new links.

Looking at the logs in https://github.com/microsoft/LightGBM/runs/1728534013, I see that we make 570 requests (if I understand that "links" and "URLs" are different things for linkchecker).

That's it. 274 links in 296 URLs checked. 0 warnings found. 0 errors found.

So single-threaded 1 request per second would be 9.5 minutes. Add about a minute of time for setup.sh, that would make the check-docs job 10-11 minutes. I actually think that would be ok in exchange for not having to regularly manually re-run the job. That's shorter than our longest CI jobs.
I have another idea for this one...we could also change check-docs from something required on every PR to something that runs on a schedule, like every 6 hours. https://github.com/saturncloud/prefect-saturn/blob/ded98bf24db7da7bb1f2b59e7ad31e4a149b73a3/.github/workflows/main.yml#L12-L14
That way, we'd still regularly catch broken link issues, but this check wouldn't block PRs and it would have only a small effect on our CI capacity during times where multiple people are pushing commits. In my experience, most PRs in this project do not introduce new links.

I see that we make 570 requests (if I understand that "links" and "URLs" are different things for linkchecker).

I assume we don't need to sum these numbers and we make 274 requests overall.
296 - 274 = 22 are ignored by our config.
However, this is just my guesses.

I actually think that would be ok in exchange for not having to regularly manually re-run the job.

Parallel jobs from different PRs also may contribute to RPS we produce in case workers (agents, or how they are called in GitHub Actions...) share the same IP address.

we could also change check-docs from something required on every PR to something that runs on a schedule, like every 6 hours.

I'm OK with CRON jobs. But only for linkchecker execution, not for the whole check-docs job. We check other important things there. But I don't think that anyone will check results of new CRON job on a regular basis.

I see that we make 570 requests (if I understand that "links" and "URLs" are different things for linkchecker).

I assume we don't need to sum these numbers and we make 274 requests overall.
296 - 274 = 22 are ignored by our config.
However, this is just my guesses.

I actually think that would be ok in exchange for not having to regularly manually re-run the job.

Parallel jobs from different PRs also may contribute to RPS we produce in case workers (agents, or how they are called in GitHub Actions...) share the same IP address.

we could also change check-docs from something required on every PR to something that runs on a schedule, like every 6 hours.

I'm OK with CRON jobs. But only for linkchecker execution, not for the whole check-docs job. We check other important things there. But I don't think that anyone will check results of new CRON job on a regular basis.

ooo ok! 274 is a lot lower. It's a good point you make about multiple jobs on different PRs all contributing.
I like the idea of splitting just linkchecker into a cron job on GitHub Actions. I think it's ok that it won't be checked regularly. I'm ok with the tradeoff of higher risk that a broken link exists in the docs for a few days or even weeks, in exchange for not needing to manually re-run CI jobs as much on pull requests and on master.
And since that job would not block PRs, we could also slow it down to 1 thread, 1 request per second.
What do you think? I'd be happy to open a PR for this if you think it's a good idea.

ooo ok! 274 is a lot lower. It's a good point you make about multiple jobs on different PRs all contributing.
I like the idea of splitting just linkchecker into a cron job on GitHub Actions. I think it's ok that it won't be checked regularly. I'm ok with the tradeoff of higher risk that a broken link exists in the docs for a few days or even weeks, in exchange for not needing to manually re-run CI jobs as much on pull requests and on master.
And since that job would not block PRs, we could also slow it down to 1 thread, 1 request per second.
What do you think? I'd be happy to open a PR for this if you think it's a good idea.

I agree with you.

I'd be happy to open a PR for this if you think it's a good idea.

Thank you very much!
Please also add on: workflow_dispatch trigger to create a possibility for maintainers to run that workflow with linkchecker manually by clicking a button. It will be useful in case someone come to check a status and would like to rerun the workflow right now to make sure error is or is not temporary.
https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/

I agree with you.

I'd be happy to open a PR for this if you think it's a good idea.

Thank you very much!
Please also add on: workflow_dispatch trigger to create a possibility for maintainers to run that workflow with linkchecker manually by clicking a button. It will be useful in case someone come to check a status and would like to rerun the workflow right now to make sure error is or is not temporary.
https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/


zip signature verification failed in TWRP

I copied  https://download.lineage.microg.org/mido/lineage-15.1-20190320-microG-mido.zip to the external SD card, installed TWRP according to LineageOS instructions, and then tried to install the lineageos-microg zip file. But I had to disable zip signature verification.

@TjrGithub
This has nothing to do with microG itself, you should report it here.


m_distortionCorrection parameter is ignored

The m_distortionCorrection constructor parameter to all RenderManagers is currently ignored.  It is possible to set distortion parameters that do not do anything, and that is typically what is done in non-distorted config files, but this parameter should either be removed or be effective.

Fixed in pull request https://github.com/sensics/OSVR-RenderManager/pull/274 by removing the internal parameter.


Webpack unexpected token

I am using Webpack to compile, running into an issue when trying to call fileLoader on types directory..
Webpack config
const path = require('path')
const nodeExternals = require('webpack-node-externals')

module.exports = {
  context: __dirname,
  target: 'node',
  node: {
    __dirname: false,
    __filename: false,
  },
  entry: path.resolve(__dirname + '/src/index.js'),
  output: {
    filename: 'server.js',
    path: path.resolve(__dirname + '/dist')
  },
  module: {
    rules: [
      {
        enforce: 'pre',
        test: /\.js?$/,
        exclude: /node_modules/,
        loader: 'eslint-loader',
        options: {
          emitError: true
        }
      },
      {
        test: /\.js?$/,
        loader: 'babel-loader',
        exclude: /node_modules/,
        options: {
          presets: [
            ['env']
          ]
        }
      }
    ]
  },
  externals: [nodeExternals()]
}

(function (exports, require, module, __filename, __dirname) { export default `
                                                                                ^^^^^^^
SyntaxError: Unexpected token export
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:152:10)
    at Module._compile (module.js:624:28)
    at Object.Module._extensions..js (module.js:671:10)
    at Module.load (module.js:573:32)
    at tryModuleLoad (module.js:513:12)
    at Function.Module._load (module.js:505:3)
    at Module.require (module.js:604:17)
    at require (internal/module.js:11:18)
    at /Users/matt/Desktop/workspace/projects/rebuilds/slack/slack_api/node_modules/merge-graphql-schemas/dist/index.cjs.js:3796:22

I am calling it like so..
const typeDefs = mergeTypes(fileLoader(path.join(__dirname, '../src/schema/types')));
and the type def..
export default `
  type Query {
    hi: String
  }
`;

Any thoughts?

@matthew-gordon Will need to take a look at this and get back to you. Potentially related to the usage of require .
We also expose an esm bundle though I see from the stack trace that the cjs bundle is being consumed.

Awesome! Thanks for the quick response! It does successfully work in another project not using Webpack, just have a script with nodemon running --exec babel-node.

@matthew-gordon Holiday season here. This project is maintained mainly be maintainers during work hours - we'll get back to you soon.

I have a similar issue where it can't require the files that are gathered, leading to a message like Cannot find module 'app/graphql/resolvers/books.js', despite it being there, relative to the webpack context. .graphql files are loaded correctly which made me also wonder about that same line of code. Tried a couple of things with NODE_PATH and resolve.modules which didn't work (as expected).
[NODEMON] Error: Cannot find module 'app/graphql/resolvers/books.js'
[NODEMON]     at Function.Module._resolveFilename (module.js:469:15)
[NODEMON]     at Function.Module._load (module.js:417:25)
[NODEMON]     at Module.require (module.js:497:17)
[NODEMON]     at require (internal/module.js:20:19)
[NODEMON]     at /path/to/application/node_modules/merge-graphql-schemas/dist/index.cjs.js:3801:22

No rush, given the holiday season ;)

Happy new year :) Just so I have expectation on how long to live with the workaround, is there likely to be any progress on this any time soon? (The workaround is, uh, "don't use mergeResolvers()" 😬)

@majelbstoat It has been on are radar internally, sadly I have been quite busy on other projects and haven't had the chance to investigate this error in detail. 😢
I still believe the usage of require() is the most likely cause if it's not a webpack config issue. 2nd option if require() isn't the culprit then our Rollup.js config could be the cause.
If your able to provide a minimal repo that replicates your issue that would help a lot for testing/validating any potential fixes. 🔥

@cfnelson Any updates on this since then? I'm running into a similar issue where Webpack cannot find resolver files. I'm using SSR, so Babel and Webpack are a must. I'm sure it's a subtle problem with the config, but It'd be valuable if we could have an example integration with Webpack in the repo.

@cfnelson I have the same issue as @majelbstoat, so I created a demo that replicates our issue below.
https://github.com/notsu/demo-merge-graphql-issue
run yarn dev
Does anyone have a workaround or solutions for this issue?

@notsu Thanks for making a repo of this, it's greatly appreciated! 💯 🙌  We will take a look at it when we get the opportunity and hopefully we can identify the cause. cc @RodMachado

I'm getting similar issues as well tied to deepmerge being referenced

Has this problem been solved? I have also encountered it.

same issue. It seems webpack does not compile and build my resolvers.ts files.
When run the app by node ./dist/index.js, fileloader try to read my resolvers.ts files.

For anyone interested or having problems with not finding the correct files you need to make sure that your dist/build/bundle e.g your output dir contains your typedefs and resolvers. Take a look at this thread for more context #148 .
The Unexpected token import is occurring due to attempting to parse .js files in an environment that doesn't support es modules import/export syntax e.g node is expecting cjs. This is likely due to your babel/webpack setup and mixing require cjs with imports esm syntax.
Solution is wherever these errors are being reported you can fix this by switching from export default to module.exports = syntax. As well as switching to using require instead of imports.

I'm also meeting this error today ~ I think the reason for this error in the fileLoader method. because when webpack building can't run the method, webpack just only copy this code to target.
befor:
import { fileLoader, mergeTypes, mergeResolvers } from 'merge-graphql-schemas';

const df = fileLoader('./typedefs/**/*.gql', { recursive: true });
export const typedefs = mergeTypes(df, { all: true });

const rf = fileLoader('./resolvers/**/*.js');
export const resolvers = mergeResolvers(rf, {
    extensions: ['.js']
});

after:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.resolvers = exports.typedefs = void 0;

var _mergeGraphqlSchemas = require("merge-graphql-schemas");

const df = (0, _mergeGraphqlSchemas.fileLoader)('./typedefs/**/*.gql', {
  recursive: true
});
const typedefs = (0, _mergeGraphqlSchemas.mergeTypes)(df, {
  all: true
});
exports.typedefs = typedefs;
const rf = (0, _mergeGraphqlSchemas.fileLoader)('./resolvers/**/*.js');
const resolvers = (0, _mergeGraphqlSchemas.mergeResolvers)(rf, {
  extensions: ['.js']
});
exports.resolvers = resolvers;

so ~ if use webpack packet code. need explicit import GraphQL define. such as:
# demo.gql
type Query{
    testString: String
}

# demo.js
import Demo from './demo.gql'

Same with #98 for the first question.
@viweei But in your case, fileLoader is trying to load graphql files under output files. So you need to copy graphql files into output files using a copy plugin or something like that.


[HOTFIX] Removed non-string properties values since it's not used

What is this PR for?
Removing an error when users try to connect running interpreter. Zeppelin Server passes those properties into RemoteInterpreter when it starts with RemoteInterpreter. But it supports only Map<String, String> type for now, thus port information will make an error and also those information were not used in any code
What type of PR is it?
[Hot Fix]
Todos

[x] - Remove some properties

What is the Jira issue?
N/A
How should this be tested?
Connect to existing process should work well
Screenshots (if appropriate)
N/A
Questions:

Does the licenses files need update? No
Is there breaking changes for older versions? No
Does this needs documentation? No

@cloverhearts Can you look into it? I think it can solve the problem.

LGTM
should there be tests for this?

@jongyoul
Yes, I was take look!
LGTM.

Hello @felixcheung
I have created and tested a remote interpreter.

Go to zeppelin/bin.
Run the following:
    bin/bash ./interpreter.sh -d ../interpreter/python -p 20000> / dev / null
Create a python interpreter group on zeppelin web. (For example, "mypython")
Click the edit button.
Enter host: localhost, port: 20000 as the remote access interpreter address.
Save and run the following in the paragraph:
` %mypython print ("helloworld") `

If everything works properly, everything is working fine.
This did not work properly in the previous Master.

Great! I guess I was asking if it's possible to have automated tests so it wouldn't break in the future.

It's good idea to make it but, for now, we cannot do it because we have zombie process problem when we test it. I think we can do it after we solve that former problem.

Tested and LGTM!
Thanks @jongyoul

@cloverhearts Can you make a new PR of writing test cases?

@jongyoul Sure :)


Allow otp-jwt to work with none algorithm

The JWT gem specifies to use the none algorithm that nil should be used for the password and false for verify. It would be nice to use the none algorithm in dev/test mode to allow easy examination of JWTs.
JWT Docs
https://github.com/jwt/ruby-jwt/blame/master/README.md#L60-L61

Thank you @timle8n1
This is now merged in https://github.com/stas/otp-jwt/commit/4e68d8346f7c1adee43eacf19b3043db555f17d1
:bow: :heart:


fix some typos that I noticed while going through the course

I completed this course recently (it was great!), and I figured I'd open this PR to fix some typos that I noticed along the way. There are some things in the course that are outdated (version numbers, the authors' bios, etc.), but this PR doesn't delve into any of that. I would be happy to author an issue regarding those things, so just let me know if that would be helpful.
As I went to open this PR, I noticed that the base branch is called master. I wanted to flag that while I'm here, since main is the standard now.
Thank you so much for putting this course online!

@hs4man21 Thanks for these fixes! Sorry it too me so long to get to them. I'll be using your improved copy to teach Stanford students tomorrow!


what is the vuln of "snprintf"?

i am confused about the query on doucment "README.md"
    $ret = snprintf($b,_,_);
    $b[$ret] = _;

this query represent what vulnerable code?

Hey,
The functions snprintf() and vsnprintf() do not write more than size bytes (including the terminating null byte ('\0')). If the output was truncated due to this limit then the return value is the number of characters (excluding the terminating null byte) which would have been written to the final string if enough space had been available. Thus, a return value of size or more means that the output was truncated. (See also below under NOTES.)
(see https://linux.die.net/man/3/snprintf)
so $ret can be larger than the size of the destination buffer ($b), which makes $b[$ret] a potential out-of-bounds access.


Error occurred during deploy in the cn-northwest-1 and cn-north-1 region

https://github.com/aws-quickstart/quickstart-linux-bastion/issues/193

After updating the submodule, it was deployed again in cn-northwest-1 and cn-north-1. BastionAutoscalingGroup in the linux-bastion-entrypoint-existing-vpc.template.yaml reported a 30-minute timeout error. Check that the BastionAutoscalingGroup module's timeout was set to 60 minutes. BastionLaunchTemplate did not set a timeout. It is estimated that BastionLaunchTemplate's 30-minute timeout is causing this issue.
Internet speed is very slow when deploying overseas resources in cn-northwest-1 and cn-north-1, and time may be exceeded for 60 minutes. The recommended setting is 120 minutes. @tlindsay42

Unable to duplicate. The Linux bastion deploys successfully in cn-north-1 within the given timeframe in my sandbox account and CI account (references 1 & 2).


Callback for example in readme

I added a callback to the QAOA constructor in the example in the README. The callback appends the mean value to a list and later I plot a graph of those values. Instead of the mean cost increasing with iteration number, it seems to be decreasing in the graph obtained. Is this some issue with the callback or something else?

Although the problem is created for maximize you can see it uses a MinimumEigenOptimizer to solve it. If you look into the code of MinimumEigenOptimizer you will find it runs convertors to turn the problem into something it can solve - as part of this it will convert it to a minimization problem (see code snippets below). This is why you see the values decreasing. In the end there is an interpret method that will intepret the result it gets in the context of the original problem, so you see the solution to your problem not the converted one which was solved. Hope that helps explain.
https://github.com/Qiskit/qiskit-optimization/blob/7f1ec648cee9c6baffa9354df08e116eef5dce58/qiskit_optimization/algorithms/minimum_eigen_optimizer.py#L149
https://github.com/Qiskit/qiskit-optimization/blob/7f1ec648cee9c6baffa9354df08e116eef5dce58/qiskit_optimization/algorithms/optimization_algorithm.py#L365-L386
https://github.com/Qiskit/qiskit-optimization/blob/7f1ec648cee9c6baffa9354df08e116eef5dce58/qiskit_optimization/converters/quadratic_program_to_qubo.py#L36-L51

Thanks a lot for your explanation, particularly for the pointers to code. That clarifies my confusion


some websites STILL go blank :/

Body
old problem. help! see video below :)
Version
0.2256
What browsers are you seeing the problem on?
Chrome
What OS are you seeing the problem on?
Windows
Anything else?
https://user-images.githubusercontent.com/81290839/236107146-d5234278-9f3b-4d25-94a0-4bb5b50ef721.mp4

I have the same issue on Firefox 113.0.1 (64-bit) on Windows 10. It won't let me access my Keeper password vault, it just loads a blank white page like in the video.

Can you reproduce this with the mv3 version?

ive tested with the version you gave me. the site works so well. i remember the last time we did this, the problem went away when using the beta version but still happened to the released versions. i hope u guys could find a solution soon. ty
https://github.com/FastForwardTeam/FastForward/assets/81290839/71c9a9f1-340f-47c3-9e84-0a338e5e279c


Modify a wrong symbol not update stats

As example create a new item with INTL, change with INTC that is the right one and the data are not gathered.

See: https://github.com/scheb/stock-panel/issues/638#issuecomment-2408506683


Enabling Continuous Integration with Azure Pipelines

Demo Generator to eShopOnWeb Refresh.

PR merged. Closing this issue. Thanks @fimdim!


Phase 1 EKYC UX Fixes: Add directions not to include dashes for national ID #.  Also, national ID should not drop down to show past entries.

https://github.com/kiva/protocol-implementation-honduras/pull/237


Github Repo Errors, KeyError

For some repositories (I can't find a consistent one between public/private org/user) I get key errors
For example, when pulling from kubernetes/website, I get
<llama_index.readers.llamahub_modules.github_repo.base.GithubRepositoryReader object at 0x7f79f271be50>
current path:
Traceback (most recent call last):
  File "/home/sam/git/mcsh/test2/repo.py", line 21, in <module>
    docs = loader.load_data(branch="main")
  File "/home/sam/.local/lib/python3.10/site-packages/llama_index/readers/llamahub_modules/github_repo/base.py", line 312, in load_data
    return self._load_data_from_branch(branch)
  File "/home/sam/.local/lib/python3.10/site-packages/llama_index/readers/llamahub_modules/github_repo/base.py", line 277, in _load_data_from_branch
    blobs_and_paths = self._loop.run_until_complete(
  File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "/home/sam/.local/lib/python3.10/site-packages/llama_index/readers/llamahub_modules/github_repo/base.py", line 348, in _recurse_tree
    tree_data: GitTreeResponseModel = await self._github_client.get_tree(
  File "/home/sam/.local/lib/python3.10/site-packages/llama_index/readers/llamahub_modules/github_repo/github_client.py", line 365, in get_tree
    return GitTreeResponseModel.from_json(
  File "/home/sam/.local/lib/python3.10/site-packages/dataclasses_json/api.py", line 65, in from_json
    return cls.from_dict(kvs, infer_missing=infer_missing)
  File "/home/sam/.local/lib/python3.10/site-packages/dataclasses_json/api.py", line 72, in from_dict
    return _decode_dataclass(cls, kvs, infer_missing)
  File "/home/sam/.local/lib/python3.10/site-packages/dataclasses_json/core.py", line 201, in _decode_dataclass
    init_kwargs[field.name] = _decode_generic(field_type,
  File "/home/sam/.local/lib/python3.10/site-packages/dataclasses_json/core.py", line 263, in _decode_generic
    res = _get_type_cons(type_)(xs)
  File "/home/sam/.local/lib/python3.10/site-packages/dataclasses_json/core.py", line 317, in <genexpr>
    items = (_decode_dataclass(type_arg, x, infer_missing)
  File "/home/sam/.local/lib/python3.10/site-packages/dataclasses_json/core.py", line 159, in _decode_dataclass
    field_value = kvs[field.name]
KeyError: 'url'

For a private org, I get
<llama_index.readers.llamahub_modules.github_repo.base.GithubRepositoryReader object at 0x7f1b7701fe50>
Traceback (most recent call last):
  File "/home/sam/git/mcsh/test2/repo.py", line 21, in <module>
    docs = loader.load_data(branch="main")
  File "/home/sam/.local/lib/python3.10/site-packages/llama_index/readers/llamahub_modules/github_repo/base.py", line 312, in load_data
    return self._load_data_from_branch(branch)
  File "/home/sam/.local/lib/python3.10/site-packages/llama_index/readers/llamahub_modules/github_repo/base.py", line 272, in _load_data_from_branch
    branch_data: GitBranchResponseModel = self._loop.run_until_complete(
  File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "/home/sam/.local/lib/python3.10/site-packages/llama_index/readers/llamahub_modules/github_repo/github_client.py", line 340, in get_branch
    return GitBranchResponseModel.from_json(
  File "/home/sam/.local/lib/python3.10/site-packages/dataclasses_json/api.py", line 65, in from_json
    return cls.from_dict(kvs, infer_missing=infer_missing)
  File "/home/sam/.local/lib/python3.10/site-packages/dataclasses_json/api.py", line 72, in from_dict
    return _decode_dataclass(cls, kvs, infer_missing)
  File "/home/sam/.local/lib/python3.10/site-packages/dataclasses_json/core.py", line 159, in _decode_dataclass
    field_value = kvs[field.name]
KeyError: 'commit'

And when I reference that private org's commit hash instead of the branch, I get
Traceback (most recent call last):
  File "/home/sam/git/mcsh/test2/repo.py", line 21, in <module>
    docs = loader.load_data(commit="cec867380358c611a78eaf58a0c282062b7d877f")
TypeError: GithubRepositoryReader.load_data() got an unexpected keyword argument 'commit'

Works on other repos though, including mine

I also get a KeyError: 'commit'  for any repo I try.
The issue over on the llama_index repo, The GithubRepositoryReaderDemo can't run successfully #616, seems similar. I can't run the demo either:
Code:
import os
import nest_asyncio
from llama_index import download_loader
download_loader("GithubRepositoryReader")

from llama_index.readers.llamahub_modules.github_repo import GithubRepositoryReader, GithubClient
os.environ['GITHUB_TOKEN'] = 'my token'

nest_asyncio.apply()

github_client = GithubClient(os.getenv("GITHUB_TOKEN"))
loader = GithubRepositoryReader(
    github_client,
    owner =                  "jerryjliu",
    repo =                   "gpt_index",
    filter_directories =     (["gpt_index", "docs"], GithubRepositoryReader.FilterType.INCLUDE),
    filter_file_extensions = ([".py"], GithubRepositoryReader.FilterType.INCLUDE),
    verbose =                True,
    concurrent_requests =    10,
)

docs_branch = loader.load_data(branch="main")

I think the error is related to weird nest_asyncio stuff after some initial debugging. My taceback suggests that it's a bad return from self._load_data_from_branch(branch) in GithubRepositoryReader.load_data

I had this exact same issue and was able to resolve it by creating "personal access token (classic)" and selecting all scopes under "repo". Probably does not need all of those, but I am too lazy to start debugging what scopes exactly are really needed.

I had this exact same issue and was able to resolve it by creating "personal access token (classic)" and selecting all scopes under "repo". Probably does not need all of those, but I am too lazy to start debugging what scopes exactly are really needed.

So I didn't mention but I also tried this. Still encountered the same issues.

I realized I'm dumb and didn't think to check other GH repos...
jerryjliu renamed the repo to llama_index which is why repo=gpt_index couldn't find the commit.
I guess the demo is broken tho.

I still am getting
 field_value = kvs[field.name]
KeyError: 'commit'

issue

@VladoPortos double check that you're referencing the correct repo and owner. For the demo code you have to change repo = gpt_index to repo = llama_index because the repo was renamed.

@mrariden yea, it was my mistake, I had empty space in front of the repo name... and the class does not strip empty spaces, it always fails with that error when either owner is wrong or the repo name... would be nice to get something more readable. Like user or repo, not found :D

Example for github repo loader is already fixed

Wouldn't it be better to either just provide a warning instead of KeyError: 'commit', or at least provide a more useful error message than simply KeyError: 'commit'?
Many developers will likely get this vague error and have to find this issue in order to figure out what is going on.


Deleting bridgeETH and bridgeETHTo function's unnecessary parameters

The amount parameter value of bridgeETH and bridgeETHTo can be replaced with msg.value, so it is an unnecessary parameter.

bridgeETH
https://github.com/tokamak-network/tokamak-thanos/blob/5ad9baac98217a0c1533969b00076d9a4443edba/packages/tokamak/contracts-bedrock/src/universal/StandardBridge.sol#L214-L215

 function bridgeETH(uint32 _minGasLimit, bytes calldata _extraData) public payable onlyEOA {
        _initiateBridgeETH(msg.sender, msg.sender, msg.value, _minGasLimit, _extraData);
 }

bridgeETHTo
https://github.com/tokamak-network/tokamak-thanos/blob/5ad9baac98217a0c1533969b00076d9a4443edba/packages/tokamak/contracts-bedrock/src/universal/StandardBridge.sol#L230-L231

function bridgeETHTo(address _to, uint32 _minGasLimit, bytes calldata _extraData) public payable {
       _initiateBridgeETH(msg.sender, _to, msg.value, _minGasLimit, _extraData);
}

Hi @Zena-park
This function can also e used on L2. On L2, we cannot use msg.value because ETH is not native token on L2. So I think it is better for keeping this interface.

I understand.
Then I will close this issue.


bug: filter condition on BatchScan does not work

Describe the bug
The filtering condition on BatchScan does not work as expected.
To Reproduce
Load TPC-H data and then execute
=> select * from lineitem where l_orderkey = 100;
 l_orderkey | l_partkey | l_suppkey | l_linenumber | l_quantity | l_extendedprice | l_discount | l_tax | l_returnflag | l_linestatus | l_shipdate | l_commitdate | l_receiptdate |  l_shipinstruct   | l_shipmode |           l_comment
------------+-----------+-----------+--------------+------------+-----------------+------------+-------+--------------+--------------+------------+--------------+---------------+-------------------+------------+-------------------------------
        100 |        63 |         4 |            1 |         28 |        26965.68 |       0.04 |  0.05 | N            | O            | 1998-05-08 | 1998-05-13   | 1998-06-07    | COLLECT COD       | TRUCK      | sts haggle. slowl
        100 |       116 |        10 |            2 |         22 |        22354.42 |       0.00 |  0.07 | N            | O            | 1998-06-24 | 1998-04-12   | 1998-06-29    | DELIVER IN PERSON | SHIP       | nto beans alongside of the fi
        100 |        47 |         4 |            3 |         46 |        43563.84 |       0.03 |  0.04 | N            | O            | 1998-05-02 | 1998-04-10   | 1998-05-22    | TAKE BACK RETURN  | SHIP       | ular accounts. even
        100 |        39 |        10 |            4 |         14 |        13146.42 |       0.06 |  0.03 | N            | O            | 1998-05-22 | 1998-05-01   | 1998-06-03    | COLLECT COD       | MAIL       | y. furiously ironic ideas gr
        100 |        54 |         6 |            5 |         37 |        35299.85 |       0.05 |  0.00 | N            | O            | 1998-03-06 | 1998-04-16   | 1998-03-31    | TAKE BACK RETURN  | TRUCK      | nd the quickly s
(5 rows)

=> create materialized view lineitem_by_orderkey
   as select * from lineitem order by l_orderkey;
CREATE_MATERIALIZED_VIEW

=> select * from lineitem_by_orderkey where l_orderkey = 100;
 l_orderkey | l_partkey | l_suppkey | l_linenumber | l_quantity | l_extendedprice | l_discount | l_tax | l_returnflag | l_linestatus | l_shipdate | l_commitdate | l_receiptdate | l_shipinstruct | l_shipmode | l_comment
------------+-----------+-----------+--------------+------------+-----------------+------------+-------+--------------+--------------+------------+--------------+---------------+----------------+------------+-----------
(0 rows)

Expected behavior
Expect 5 rows in the example above.
Additional context
The orderkey = 100 rows do exist:
dev=> select * from lineitem_by_orderkey;

...
         99 |       135 |         1 |            3 |         42 |        43475.46 |       0.02 |  0.02 | A            | F            | 1994-04-19 | 1994-05-18   | 1994-04-20    | NONE              | RAIL       | kages are fluffily furiously ir
         99 |       109 |         2 |            4 |         36 |        36327.60 |       0.09 |  0.02 | A            | F            | 1994-07-04 | 1994-04-17   | 1994-07-30    | DELIVER IN PERSON | AIR        | slyly. slyly e
        100 |        63 |         4 |            1 |         28 |        26965.68 |       0.04 |  0.05 | N            | O            | 1998-05-08 | 1998-05-13   | 1998-06-07    | COLLECT COD       | TRUCK      | sts haggle. slowl
        100 |       116 |        10 |            2 |         22 |        22354.42 |       0.00 |  0.07 | N            | O            | 1998-06-24 | 1998-04-12   | 1998-06-29    | DELIVER IN PERSON | SHIP       | nto beans alongside of the fi
        100 |        47 |         4 |            3 |         46 |        43563.84 |       0.03 |  0.04 | N            | O            | 1998-05-02 | 1998-04-10   | 1998-05-22    | TAKE BACK RETURN  | SHIP       | ular accounts. even
        100 |        39 |        10 |            4 |         14 |        13146.42 |       0.06 |  0.03 | N            | O            | 1998-05-22 | 1998-05-01   | 1998-06-03    | COLLECT COD       | MAIL       | y. furiously ironic ideas gr
        100 |        54 |         6 |            5 |         37 |        35299.85 |       0.05 |  0.00 | N            | O            | 1998-03-06 | 1998-04-16   | 1998-03-31    | TAKE BACK RETURN  | TRUCK      | nd the quickly s
        101 |       119 |         9 |            1 |         49 |        49936.39 |       0.10 |  0.00 | N            | O            | 1996-06-21 | 1996-05-27   | 1996-06-29    | DELIVER IN PERSON | REG AIR    | ts-- final packages sleep furiousl
        101 |       164 |         9 |            2 |         36 |        38309.76 |       0.00 |  0.01 | N            | O            | 1996-05-19 | 1996-05-01   | 1996-06-04    | DELIVER IN PERSON | AIR        | tes. blithely pending dolphins x-ray f
...

Plan:
dev=> explain select * from lineitem_by_orderkey where l_orderkey = 100;
                                                                                QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 BatchExchange { order: [], dist: Single }
   BatchScan { table: lineitem_by_orderkey, columns: [l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus, l_shipdate, l_commitdate, l_receiptdate, l_shipinstruct, l_shipmode, l_comment], scan_range: [l_orderkey = 100:Int32] }
(2 rows)

When there's order by (and it's selected in scan_range), scan executor cannot get results. Investigating...


Modify Directories Button

Modify Directories Button to allow modification of path of already existing videos

Modifying Directories Using Toggle Edit Table toggle button in main window provides same functionality to change the path to images for a single video.
No need for extra button


dataLayer isn't working

I noticed reporting issues via dataLayer.
I believe we are missing a setup step in Google Analytics. Any help or tests are appreciated.

See: https://developers.google.com/optimize/devguides/experiments?technology=ga4


Characterize performance and performance problems on Gravity and Orbits

From https://github.com/phetsims/gravity-and-orbits/issues/286 @ariel-phet said:

@samreid I was seeing the somewhat stuttering behavior on Win 7 Chrome. I have not done a thorough comparison of platforms. I just wonder if given the age of this sim there are some performance improvements to be had that are low hanging fruit (things we have learned since then).
We could have QA take a brief look at some point to see if performance issues are platform specific. I think having various options on (vectors, values, path, etc) makes things more obvious.

We would like to understand the performance of the published version, particularly any performance problems (sluggishness, stuttering, etc).  We would like to know if the problems are still in the latest dev version, and how they vary as a function of browser, device, etc.  Identifying and quantifying reproducible performance issues would be nice, so that a developer can work on improving them.  This does not need to be an exhaustive study.
Assigning to @ariel-phet for clarification, prioritization, scheduling and delegation.
UPDATE: You may also want to review related issue https://github.com/phetsims/gravity-and-orbits/issues/162
UPDATE: Here's a fresh dev version: https://phet-dev.colorado.edu/html/gravity-and-orbits/1.2.0-dev.3/phet/gravity-and-orbits_en_phet.html

Platform
Subjective Performance
FPS

iPhone iOS 12

iPad iOS 10

iPad iOS 11

iPad iOS 12

iPadOS 13

iPadOS 13 App

Mac 10.10 Safari

Mac 10.11 Safari

Mac 10.11 Chrome

Mac 10.12 Safari

Mac 10.12 Chrome

Mac 10.13 Safari

Mac 10.13 Chrome

Mac 10.14 Safari

Mac 10.14 Chrome

Mac 10.15 Safari

Mac 10.15 Chrome

Win 7 Chrome

Win 7 Firefox

Win 7 IE

Win 10 Chrome

Win 10 Firefox

Win 10 Edge

ChromeOS

@KatieWoe the list above looks comprehensive

@KatieWoe do note, that I think all tests should be done with options "path" "velocity" and "force vectors" on

Ok.  I wasn't aware.  I'll need to redo above then.

QA is done

Thanks @KatieWoe!  Closing.


Add prototype for analitics.

Your dataset records various aspects of your daily mood, including sleep quality, anxiety levels, exercise, and more. There are several interesting ways you can visualize this data to gain insights into your mood patterns and how different factors might influence each other. Here are a few ideas:
1. Time Series Analysis:

Mood Over Time: Plot your mood against the date to observe trends and fluctuations over time.
Sleep Quality vs. Mood: Create a dual-axis line chart where one axis shows your mood and the other shows your sleep hours. This can help you see if there is a correlation between sleep and mood.
Anxiety Levels Over Time: Plot your anxiety levels over time to identify patterns or triggers.

2. Scatter Plots:

Mood vs. Sleep: Plot mood on one axis and sleep quality on the other to see if there’s a relationship between them.
Exercise vs. Energy: Plot exercise duration against energy levels to observe if more exercise correlates with higher energy.
Mood vs. Anxiety: Scatter plot to see how mood is related to anxiety levels.

3. Heatmaps:

Correlation Matrix: Create a heatmap showing the correlation between different variables (mood, sleep, anxiety, etc.) to easily identify strong relationships.
Mood Heatmap: A heatmap where the X-axis is the time of day (based on created_at) and the Y-axis is the date. Color intensity could represent mood levels, showing how your mood varies throughout the day and across days.

4. Bar Charts:

Average Mood per Day: Calculate and plot the average mood for each day of the week. This can help identify if certain days tend to have better or worse moods.
Frequency of Doping: Bar chart showing the frequency of different doping items (e.g., caffeine) used over the period.

5. Boxplots:

Mood Distribution: Boxplot showing the distribution of mood scores. This can give you insights into the spread and any outliers in your mood data.
Sleep Quality vs. Mood: Boxplot comparing mood distribution across different levels of sleep quality.

6. Radar Charts:

Daily Profile: Create a radar chart for each day that plots sleep, energy, anxiety, exercise, and mood. This can give a holistic view of each day’s profile.

7. Multiline Graph:

Mood, Sleep, and Anxiety Over Time: A multiline graph showing mood, sleep, and anxiety over time on the same plot to see how they interact with one another.

8. Annotations and Text Analysis:

Mood Notes: Use a word cloud or text analysis to visualize and extract common themes or words from your notes to see if certain thoughts or phrases are associated with specific mood levels.

9.

By combining these visualizations, you can create a comprehensive dashboard that offers deep insights into your mood patterns and the factors affecting them. Would you like assistance in generating any of these visualizations using Python?