Implement internal iteration for cartesian_product

This PR implements internal iteration for cartesian_product[_with], which enables compiler vectorization of multidimensional iteration patterns constructed with cartesian_product[_with] (such as this one).
Core tasks:

[x] Add internal iteration to cartesian_product.

[ ] Correct cartesian_product internal iteration to invoke the predicate with a tuple of elements, not a tuple of indices (first round review).

[ ] Add internal iteration to cartesian_product_with.
[x] Fix cartesian_product[_with] random access indexing.
[ ] Improve testing for cartesian_product[_with] in general.

[x] Test cartesian_product with 3 underlying sequences.
[ ] Test cartesian_product with more than 3 underlying sequences.
[x] Test cartesian_product random access indexing.
[ ] Test cartesian_product with empty sequences.
[x] Test cartesian_product[_with] with for_each[_while].
[x] Correct element type tests for cartesian_product of ints to fix MSVC build.

[ ] Add benchmarks and examples for multi-dimensional iteration with cartesian_product and iota.
[ ] Add descriptive alias for cartesian_product of iota multi-dimensional iteration pattern.
[ ] Miscellaneous drive-by fixes and improvements.

[x] Change STATIC_CHECK to throw instead of returning to improve compile-time diagnostics.
[ ] Disable word_count example CTest as it will always hang waiting for stdin.

Thanks very much for the drive-by fixes, they look great!
In for_each_while_impl, we need to eventually call the predicate with a tuple of elements, not a tuple of cursors. It looks like you are building up a tuple of elements (despite the param name), but constructing the tuple on line 271 doesn't look right to me -- I think it should be element_t rather than cursor_t?
(This happens to work for the particular case of a cartesian product of iotas, because for an iota sequence the element type and the cursor type happen to be the same.)
Other than that I think this looks like a reasonable approach -- I wish the keep_going variable wasn't necessary at every level, but I can't think of a way to get rid of it, and if it doesn't affect vectorisation then I guess we're okay.

In for_each_while_impl, we need to eventually call the predicate with a tuple of elements, not a tuple of cursors. It looks like you are building up a tuple of elements (despite the param name), but constructing the tuple on line 271 doesn't look right to me -- I think it should be element_t rather than cursor_t?
(This happens to work for the particular case of a cartesian product of iotas, because for an iota sequence the element type and the cursor type happen to be the same.)

Ah-ha, I think I suffered from a misunderstanding here. I believe you are correct.
I'm surprised the tests didn't uncover this, but I just realized we don't have any tests that actually call for_each on cartesian_product. I was just testing with my benchmark.

Other than that I think this looks like a reasonable approach -- I wish the keep_going variable wasn't necessary at every level, but I can't think of a way to get rid of it, and if it doesn't affect vectorisation then I guess we're okay.

I was a little bit concerned that the control flow of this would cause issues, but it seems to be fine.
The one idea I had for working around this was to not use flux::for_each_while to iterate each of the underlying sequences, however that seems like a gross violation of the basic principles here. If we did that, it would break more deeply nested internal iteration (for example, cartesian_product(filter(...), ...)).

I'm surprised the tests didn't uncover this, but I just realized we don't have any tests that actually call for_each on cartesian_product. I was just testing with my benchmark.

Ironically, the unpack test that you added does a for_each on cartesian_product, but it's on ints so it doesn't catch this, and I didn't run it before committing anyways.

Ah-ha, I think I suffered from a misunderstanding here. I believe you are correct.
I'm surprised the tests didn't uncover this, but I just realized we don't have any tests that actually call for_each on cartesian_product. I was just testing with my benchmark.

I'm having trouble writing a test that covers this issue. Any ideas?

In for_each_while_impl, we need to eventually call the predicate with a tuple of elements, not a tuple of cursors. It looks like you are building up a tuple of elements (despite the param name), but constructing the tuple on line 271 doesn't look right to me -- I think it should be element_t rather than cursor_t?
(This happens to work for the particular case of a cartesian product of iotas, because for an iota sequence the element type and the cursor type happen to be the same.)

Tests added in a240dcc8d6aa4a1023e28ee94d83d3d68d640d82, fixed in 02e73b3c0d97a414f600dfe5391832cf12a67809.

Ah-ha, I think I suffered from a misunderstanding here. I believe you are correct.
I'm surprised the tests didn't uncover this, but I just realized we don't have any tests that actually call for_each on cartesian_product. I was just testing with my benchmark.

I'm having trouble writing a test that covers this issue. Any ideas?

I think what you want is some sequences where the element type and cursor type are distinct and can't be converted to one another?


Zap local

This PR proposes the following :

having a dedicated layer to handle path translation between the "host" and the "container".
This, for example, allows the main Zap object to read/write/copy files from the container view and the host view, independently from the type of containment.
As a result: much more code can be store in the zap.py module itself, making writing new container type easier.

ZAP local : an object instantiated when "local" type is chosen.
RapiDAST will run zap.sh directly on the host itself.
A warning has been added in the README, as this will interfere a little with the host (such as: copying the policy to ~/.ZAP/policies/)

Side note:
The dedicated layer for path translation is currently temporary only: it's not super developer friendly. It's just there as a proof of concept, and will be modified to something more friendly in the future.


Fix in bridge delete endpoint

In DeleteEndpoint(), veth removal is a best effort,
as it could have alreayd been removed by sandbox destroy.
Therefore if veth is not found, cleanup defer function
should not run.

Signed-off-by: Alessandro Boch<EMAIL_ADDRESS>

LGTM

We have seen a few defer issues for negative conditions.
Since most of the negative conditions that were observed are triggered by platform/environment/kernel variations, we have to invest in integration test framework.
Alternatively we need mocks for these low-level layers which can be used to simulate negative situations.


UI issue of 'Submit for approval' button under sales module

Location under SALES module-Retainer invoice,sales return, invoice

submit for approval ui-

issue fixed!


Invalid default value for 'created_at'

Hi,
I'm currently working on a Docker image for Hakazon and I have this error when initializing the DB:
hackazon_db_1   | ERROR 1067 (42000) at line 41: Invalid default value for 'created_at'
Full output : hackazon_db_output.txt
The image is here :
https://github.com/PierrickV/hackazon
You can start the container it by using :
docker-compose up
Thanks for your help

Ok, I solved my issue by using Mysql 5.5 ..
Thanks


github(summary): add collapsible section for build inputs and bake def

fixes #369
Based on https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-collapsed-sections
Example here: https://github.com/docker/actions-toolkit/actions/runs/9594377879?pr=377#summary-26457922095

What do you think about making section titles the <summary>? We could make the Preview open by default (<details open><summary>Preview</summary> ...). For example:

I also noticed that we generate an H1 for every summary. An HTML document should never have more than one H1 so I think we should make them H2.

@dvdksn PR description updated based on your suggestion


Caching fallback for new branches and new tags

Specification
Atm, any new feature branch and new tag, doesn't get the benefit of caching. It has to download everything. This is due to our usage of $CI_COMMIT_REF_SLUG.
We could use the fallback cache key, but we have some problems to figure out here:

I use $CI_COMMIT_REF_SLUG which is the branch or tag name as the
cache key. Meaning all jobs share the same cache within the same branch
or tag name. The end result is that for a given branch staging, the
final key will be staging-protected.

I was under the impression that the windows and macos runners would
have separate caches, even if they are using the same
$CI_COMMIT_REF_SLUG. Am I wrong about this? Are the windows and macos
sharing the same cache that the linux jobs are using as well? If this is
the case, then indeed it is possible that something might be wrong in
the cache, as the 3 OSes should not have the same cache data.

If I need to separate windows and macos out, do I need to add an
extra variable to the cache key, and if so, what would you suggest to
get the runner platform?

I recently discovered the CACHE_FALLBACK_KEY which could be used
for dealing with the fact that new feature branches and tags would start
off with no cache because nothing has been cached for their
$CI_COMMIT_REF_SLUG. If I bring this in and make it fallback on
staging like CACHE_FALLBACK_KEY: "$CI_DEFAULT_BRANCH, I can imagine a
couple problems here. Firstly there's no -protected suffix appended to
the fallback key. Secondly nothing is pushing to this cache, I assume
that it still continues to push to the main cache key. Finally if I do
set it explicitly to CACHE_FALLBACK_KEY: "staging-protected" doesn't
this end up allowing unprotected branches & tags to access the cache of
the staging branch which is a security risk. What is the right way to
use this, if I only want protected references (new feature branches and
new tags) to load their cache from staging-protected?

Additional context

https://github.com/MatrixAI/js-db/issues/44 - this is about native compilation caching (somewhat related)

Tasks

...
...
...

I think this is because $CI_COMMIT_REF_SLUG has the name of the feature branch and tag in it.
For feature branches the cache kicks in as soon as next commits goes to the same branch. Although it would be nice to re-use the cache from staging.
For tags, it's more complicated since each tag would be unique. So some sort of fallback should activate.
If we fallback on staging-protected, it's important that the cache is not a security risk. o nothing should be put into the cache that could be private.
Furthermore we need to ensure that such caches are also different depending on the platform OS.

Not relevant anymore as we have switched to GitHub.


travis: remove unnecessary scripts

No need to install cover tool; it is already a part of go tool itself.
No need to install goimports; it depends on "context" and makes go1.6
fail on CI

Also @jadekler

Codecov Report

Merging #54 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #54   +/-   ##
=======================================
  Coverage   72.72%   72.72%
=======================================
  Files           3        3
  Lines          77       77
=======================================
  Hits           56       56
  Misses         19       19
  Partials        2        2

Continue to review full report at Codecov.

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


How to monitor more than one quantity?

What i do if i want to monitor more than one quantity?

You can pass multiple ModelCheckpoint callbacks to the trainer callback list
Trainer(callbacks=[ModelCheckpoint(monitor="a"), ModelCheckpoint(monitor="b")])

however, this is not fully supported and the saved checkpoints will contain the state for only one of the ModelCheckpoints
Duplicate of #2908

Thanks a lot.


Does this will work on ARM? like Raspberry Pi, Phone, Mac, Cloud and other.

.

it should work on hosts, and so including local hosting just like when you setup aoi.js on a computer with vsc.

therefore, you can try it and see it yourself.

so yeah

just be aware that this is for aoi.js so the functions will not work on non aoi.js bots like djs for example.

therefore, you can try it and see it yourself.

okay i try.

Working

Supports for ARMv8 and other arm version (this package is fine for arm)
it working for start bot.

Not working

Can't other funcs like this.

you're using an old version of the package, run npm i https://github.com/dodoGames-s-Studios/dodoplugins.js to update the package

and make sure you have setup the package with this tutorial.

np


WIP feature/login

At this point basic TMDb + Redis is established, but the whole thing isn't tested, and the api endpoints aren't well named or well used
For example the client POSTs a list of imdb ids to /api/shows but right now it returns a list of tmdb ids. But shouldn't it just add those tmdb ids as liked to the database? idk

https://github.com/nextauthjs/next-auth/discussions/1029

https://github.com/nextauthjs/next-auth/discussions/1029

https://stackoverflow.com/questions/65550825/heroku-how-to-do-login-in-review-apps-with-docker-deploys

https://stackoverflow.com/questions/65550825/heroku-how-to-do-login-in-review-apps-with-docker-deploys


Add OCaml 4.12 to the production platforms

OCaml 4.12 was added to ocaml-version in https://github.com/ocurrent/ocaml-version/pull/20 and still need a release. Vendoring it allows us to test OCaml 4.12 in the meantime.

We might want to mark it as vendored in the dune file too.

Hmm, with Lwt being incompatible with OCaml 4.12, there are pretty no much packages that can make use of this.

I don't think that's an issue, it'll just not show up in the build results for those, will for the packages that don't use lwt and when lwt is released everything will be already automatically in place

OK. I've enabled it. Maybe we could get ocaml-ci enabled for Lwt itself?


Order independent kwargs handling during cache key calculation

Related to issue https://github.com/python-cachier/cachier/issues/132
Added sorting of kwargs so that changing the ordering will not invalidate the cache.
Added test for this feature.
Note: The keyword arguments are sorted only for cache key calculation. The actual function is still called with unordered arguments. The rationale for the latter is that if somebody is debugging their code then they might be confused if the arguments they see as their function input are in a different order than expected.

Nice! I've read the code and test - looks good. The tests are now running. Let's wait and make sure they all pass.

There are some test errors, but I do not quite understand them. Some are permission errors. Some tests failed in my computer even with unmodified code.
As far as I can tell, my modifications did not introduce new errors - tests that succeeded before, succeeded after modifications as well.

Looks like the "blank line at the end of file formatting error" is fixed now.
The remaining test errors seem to be related to some connection error. I guess that is something I cannot control.

Please see PR #134 .
All tests pass when testing an actual MongoDB server, but test coverage dropped under a 100%.
See details in codecov:
https://app.codecov.io/gh/python-cachier/cachier/pull/134/indirect-changes
Please add a test to cover these lines.
@levitation


CustomCalibrationTool.exe

Where can I find the customcalibrationtool.exe file?
When I followed the instructions in intel-realsense-d400-series-custom-calibration-whitepaper.pdf, I did not find the customcalibrationtool.exe file in the customcalibration\bin folder.

Can you provide complete compiled files (including openCV) or newer documentation there?
When I deploy according to the instructions in "intel-realsense-d400-series-custom-calibration-whitepaper.pdf", there are always some errors!

Complete compiled files are unable to be provided.
The Dynamic Calibration application is typically updated once per year, though it was not updated in 2024.
Please provide information about the error messages that you received.  However, the custom calibration API is used so infrequently that there may not be information available about resolving those errors.  Using the pre-made Dynamic Calibration tool instead of the custom API is strongly recommended.

Hi @Chuanzhaowang  Do you require further assistance with this case, please?  Thanks!

Case closed due to no further comments received.


Determinate and fix issues that makes build red on kind clusters

It looks like integration tests with version a973b9a2ad38 is unstable on kind.
Problem statement

Look at changes between latest success run 8e0ae68116e6 and a973b9a2ad38 to determinate a root cause PR.
Report the issue.
Provide a fix for the issue.

Build link: https://github.com/networkservicemesh/integration-k8s-kind/pull/307

A few tests were temporarily disabled:
https://github.com/networkservicemesh/deployments-k8s/pull/2067
https://github.com/networkservicemesh/deployments-k8s/pull/2088


Delay loading the default development certificate

Today Kestrel first tries to load the default development certificate and assign that to all new HttpsConnectionAdapterOptions.ServerCertificate.
This shows up as a measurable % of startup time. It also causes log noise.
It also causes additional complexities with the new SNI support were the cert and the cert selector are mutually exclusive. This may need to get refactored as part of https://github.com/aspnet/KestrelHttpServer/issues/2357

Costing?

Once we have the SNI callback then we can use it here.

No, this is later than we'd want, and invoked per connection. You want to load the cert as the server starts, but only if no other cert was provided.

Disagree. You want to load the cert only if you’re using https.

Yes, but inside the SNI callback is way too late. Do it when you set up HTTPS. One of these two places seems the most likely:
https://github.com/aspnet/KestrelHttpServer/blob/a37fa83aee400f621b1f19fca6a777bd3d804f6f/src/Kestrel.Core/ListenOptionsHttpsExtensions.cs#L214
https://github.com/aspnet/KestrelHttpServer/blob/a37fa83aee400f621b1f19fca6a777bd3d804f6f/src/Kestrel.Core/Internal/HttpsConnectionAdapter.cs#L39


Add teams re-direct to homepage

@EthanThatOneKid @karnikaavelumani

Added teams re-direct to homepage
Added OSS team to homepage

Fix #1043

Looks very nice!

First contribution to site yay!


For a language made in F# that compiles to F#, how should more complex types such as tuples and records be integrated?

Sorry about posting this here, I've asked on SO twice now, but I have the feeling that what I am asking them is beyond their area of expertise and I want the people who actually have the knowledge to answer my question to see it.
Since February, I've been working on Spiral, a functional language inspired by F#, but with first class staging and intensional polymorphism. What I need is some advice of how to manage integration between my own language and .NET. I can manage primitive types just fine, but I'd like to be able to use tuple and record types in .NET Dictionaries and such. Unfortunately, I do not have a way to substitute the generic parameters with Spiral's built in types. I can generate them just fine during codegen, but cannot make them pass the language boundary to .NET.
What I have been doing so far during typechecking is converting primitive types to the equivalent System.Type using typeof, but obviously that kind of thing cannot work for types represented with discriminated unions.
In the last few days, I've had a perfectly sensible idea on the face of it, instead of trying to figure out an exact type, make a token type inheriting from System.Type that carries metadata on which Spiral type it represents and use it to perform substitution on generic .NET parameters.
There are two problems with that approach - the first is that I have to implement like 30 different abstract members for my token type. And the second is that the complete implementation of a System.Type which is System.RuntimeType has a size of 6.1k LOC. For reference, my entire compiler is 3k LOC. This is making me think that I might be on the wrong path here. It is not entirely obvious to me that scavenging through the C# implementation of System.RuntimeType is really supposed to be the move I am supposed to be making here, but that is what I am going to do unless I get some better advice here.
As an extension of my previous question, I also want to ask whether I am doing the right thing by using the methods from the Reflection namespace to handle queries to .NET types for their method types and arguments or whether there are better ways that I am not aware of?
That is all I wanted to ask.
The Spiral language is nearing its first release and is quite useful in its current form though it needs to be debugged. The only major feature which I have no idea how to implement would be the above and would be grateful for being shown how. Currently I am in the process of debugging it and making some basic libraries for it. The language strongly takes after F# in terms of syntax if not semantics, and will be hugely beneficial in making of a machine learning library after I complete the Cuda backend for it. If you are interested, take a look at the last two links to get a sense of it.
Sorry about the repo being so messy - the development of the language was outgrowth of the ML project I was doing and I never decided to move from there. I'll do so once I have enough to make the first release.

To be honest I'm not very sure what you are actually asking.
First I'd like to clarify some things:
Are you sure System.Type is the correct abstraction? For your own types you are compiling, there cannot be a System.Type until compilation has finished, correct?
If you compile your language to F#, I guess you somehow need to keep track of a mapping between your own type and what you have generated?
Also you talk about a language barrier, but what does that actually mean? Is your interpreted or statically compiled to code (or both)?
Sorry if I completely missed what you are asking for but maybe clarifying helps others to step in as well.
Maybe you can give examples of what you are trying to achieve?

Very well, I'll try my best to explain. Let me start by pasting the the type definition for Spiral's types.
and Ty =
    | PrimT of PrimitiveType
    | VVT of Ty list
    | LitT of Value
    | FunT of EnvTy * FunType
    | FunStackT of ConsedNode<EnvTerm> * FunType
    | FunHeapT of ConsedNode<EnvTerm> * FunType
    | ClosureT of Ty * Ty
    | UnionT of Set<Ty>
    | RecT of int
    | ArrayT of ArrayType * Ty
    | DotNetTypeRuntimeT of Node<Type>
    | DotNetTypeInstanceT of Node<Type>
    | DotNetAssemblyT of Node<System.Reflection.Assembly>

I won't go into details what all of the above does, some of it is obvious by name, but the important part that I want to highlight would be last 3 types for those are the ones I am using for .NET interop.
Now suppose I wanted to use a type from the .NET land. First I would load the assembly.
inl system = load_assembly .mscorlib
Now I have a variable system with type DotNetAssemblyT. Then to make use of the .NET type in the assembly, first I have to bind a type to a variable.
inl dictionary_type = system."System.Collections.Generic.Dictionary`2"
Now I have a variable dictionary_type of type RuntimeTypeT.
But this is not an instance of type. To call a constructor on that type and instantiate it, I would need to do something like:
inl dict = dictionary_type(int64, int64)(128i32)
The first application is for generic parameters, when I do dictionary_type(int64, int64), I also get back a type, but with the generic parameters substituted for ints (which is 64-bit by default in Spiral.) Then I call the constructor for the dictionary with the capacity set to 128 (more specifically the 32-bit signed variant of that number.)
Then I can use the instance such as so:
dict.Add(1,2) |> ignore
dict.get_Item 1

I hope this much is clear. Let me illustrate what goes on in the compiler in that same example on the first two lines using an analogy with F# code. The following is in fact what the compiler does minus a bunch of pattern matching.
open System
let system = Reflection.Assembly.Load("mscorlib")
let dictionary_type = system.GetType("System.Collections.Generic.Dictionary`2")
let dict = dictionary_type.MakeGenericType [|typeof<int64>;typeof<int64>|].GetConstructor([|typeof<int>|])

Since I am doing type inference instead of creating types dynamically, here is where the connection with the Spiral example breaks. What happens is the DotNetTypeRuntimeT is mapped to a DotNetTypeInstanceT and the code generator in the later phase knows what to print out.
Now let me highlight a certain part in the last line, namely .MakeGenericType [|typeof<int64>;typeof<int64>|]. This represents a dictionary with a key of type int64 and a value of type int64.
Suppose I wanted to make the key a tuple of int64 * int64. In Spiral I'd write it as such:
inl dict = dictionary_type((int64, int64), int64)(128i32)
Right now if I tried this, I would get an exception because the compiler to does not know how to convert the above to the equivalent of .MakeGenericType [|typeof<int64 * int64>;typeof<int64>|]. Here is how the conversion function looks like straight from the source.
    let rec dotnet_ty_to_type (x: Ty) =
        match x with
        | PrimT BoolT -> typeof<bool>
        | PrimT Int8T -> typeof<int8>
        | PrimT Int16T -> typeof<int16>
        | PrimT Int32T -> typeof<int32>
        | PrimT Int64T -> typeof<int64>

        | PrimT UInt8T -> typeof<uint8>
        | PrimT UInt16T -> typeof<uint16>
        | PrimT UInt32T -> typeof<uint32>
        | PrimT UInt64T -> typeof<uint64>

        | PrimT Float32T -> typeof<float32>
        | PrimT Float64T -> typeof<float>
        | PrimT StringT -> typeof<string>
        | PrimT CharT -> typeof<char>
        | ArrayT(DotNetHeap,t) -> (dotnet_ty_to_type t).MakeArrayType()
        | ArrayT(DotNetReference,t) -> (dotnet_ty_to_type t).MakeByRefType() // Incorrect, but useful
        | DotNetTypeInstanceT (N x) | DotNetTypeRuntimeT (N x) -> x
        | _ -> failwithf "Type %A not supported for conversion into .NET SystemType." x

The x: Ty here is the type I pasted here at the beginning. As you can see, I can only convert primitive types to System.Type which I am using to interop in the above illustrated manner. There are also arrays and the .NET types which already exist are just fetched directly.
I don't know how to convert tuples such as VVT [PrimT Int64T; PrimT Int64T] to System.Type. Using typeof is not an option because it needs to know the type it is making at compile time. I also have types other than tuples I want to support interop with.
What I am asking here is essentially how to upgrade the above conversion function so it supports the full bevy of Spiral types. Or alternatively, I open to a better way of doing the entire interop.
This is it for my explanation for now. If there are points that are unclear then tell me and I will elaborate them further.
Let me note that Spiral does not use the standard Hindley-Milner type inference, rather it uses abstract interpretation that would be more at home in a dynamic language, though the language itself is fully static. It walks the program for start to finish and uses join points to prevent itself from diverging. In fact, the compiler could be classified as an online partial evaluator. Type inference, or more precisely propagation is done alongside a host of other optimizations.

So is (in your example)
open System
let system = Reflection.Assembly.Load("mscorlib")
let dictionary_type = system.GetType("System.Collections.Generic.Dictionary`2")
let dict = dictionary_type.MakeGenericType [|typeof<int64>;typeof<int64>|].GetConstructor([|typeof<int>|])

The final result or only what the compiler is doing to resolve everything?
To get a type instance representing a tuple you can use the Microsoft.FSharp.Reflection namespace in particular the MakeTupleType-Function.
Similar stuff is available for Union-cases and records (runtime detection and construction), though the API is quite "minimalistic".
In general reflection has quite an performance impact and there is no reason to use it (at least not as final result) as your compilation could easily emit
let dict = System.Collections.Generic.Dictionary<int64,int64>(128)
dict.Add(1,2) |> ignore

Though I might still not have understand everything ;).

For other stuff in your Ty types you might need a pre-compiled runtime-library (like FSharp.Core for F# itself) to properly resolve them to System.Type if you cannot represent them with existing structures or if you cannot easily convert them in the compiler (or in the emitted code).

The final result or only what the compiler is doing to resolve everything?

It is only what the compiler is doing to resolve everything. The System.Types are only used at compile time and never at runtime. For example, once I have a variable of type DotNetTypeInstanceT of the aforementioned dictionary and I want to call Add on it here is what happens inside the compiler.
dict .GetMethod("Add",[|typeof<int64>;typeof<int64>|])
The reflection functions are only there to let me query the .NET API and nothing else. The System.Type are being used only to establish a correspondence between .NET and Spiral and instances of them are never created as they would be in a dynamic language.
For that reason, while it is great that you pointed me to the Fsharp.Reflection namespace, the functions there are not ideal since for example Spiral's tuples are not the same as F#'s. They get compiled to structs for one. Also with regards to records, there are multiple different types that use records and I have no way of differentiating them with just this.
What would be ideal for me if it would be possible to use some kind of System.Type token type that carries around metadata corresponding to the appropriate Spiral Ty. That would solve all my troubles. That, or a better alternative way of querying the .NET API.
I do not require a precompiled binary since I do not need to use all that System.Type offers like creating instances of types dynamically. Spiral's types cannot be represented in .NET anyway.
inl system = load_assembly .mscorlib
inl builder_type = system ."System.Text.StringBuilder"
inl b = builder_type ("Qwe", 128i32)
inl a x =
    b .Append x |> ignore
    b .AppendLine () |> ignore
a 123
a 123i16
a "qwe"
inl str = b.ToString()
inl console = ."System.Console" |> system
console .Write str |> ignore

inl dictionary_type = ."System.Collections.Generic.Dictionary`2" |> system
inl dict = dictionary_type(int64, int64)(128i32)
dict.Add(1,2)
dict.get_Item 1

Here is what the above example compiles into.
let (var_0: System.Text.StringBuilder) = System.Text.StringBuilder("Qwe", 128)
let (var_1: System.Text.StringBuilder) = var_0.Append(123L)
let (var_2: System.Text.StringBuilder) = var_0.AppendLine()
let (var_3: System.Text.StringBuilder) = var_0.Append(123s)
let (var_4: System.Text.StringBuilder) = var_0.AppendLine()
let (var_5: System.Text.StringBuilder) = var_0.Append("qwe")
let (var_6: System.Text.StringBuilder) = var_0.AppendLine()
let (var_7: string) = var_0.ToString()
System.Console.Write(var_7)
let (var_8: System.Collections.Generic.Dictionary<int64,int64>) = System.Collections.Generic.Dictionary<int64,int64>(128)
var_8.Add(1L, 2L)
var_8.get_Item(1L)

Maybe I should have asked this at the start, but what is F#'s type inference using to query the .NET methods? I have absolutely no idea, so it might be worth thinking in that direction.

That, or a better alternative way of querying the .NET API.

Yes I think that is what you are really after. It looks like customizing System.Type for your use-case (if possible at all) is a lot harder than what you actually need. All you need is to propagate your own info (type tokens) and then emit the proper stuff later.
One example is that you don't actually need the parameter types to query the available functions, all you need to do is to save your own map<param, "type token"> in addition to the generic type and query the generic version.
This way there is no need to have System.Type objects for everything at compile time (in reality you only have them after compiling the F# code you are trying to generate).
So I think you need to get away from System.Type. You can use it for primitives and external libraries, however you should take a look at libraries like Mono.Cecil or https://github.com/jfrijters/Managed.Reflection.
This by the way also solves the problem that you can currently only generate F# programs if you have references compatible for the runtime the Spiral-compiler is running on (which is probably not what you want).
The F# compiler brings it's own IL-Parser/Writer/Datastructures (I think it is https://github.com/Microsoft/visualfsharp/tree/master/src/absil).
One problem still remains: if you want to make "F#" libraries integrate nicely (ie. you want to detect records/tuples/discriminated unions of F# libraries) I fear that you need to look at the reflection APIs in FSharp.Core an adapt the logic to whatever reflection library you choose.
All the above needs to be taken with a bit of caution as it might not be 100% correct.
By the way Spiral looks nice ;)

I've looked at the two libraries you've recommended, but I do not know what to make of them. I do not think they are what I need. They barely have any documentation.
Last night I had a good idea that turned out to be unworkable. It occurred to me that I could use the WeakConditionalTable to attach metadata to type objects, but what tripped me up is that the System.Type instances are all globally unique for some reason which is surprising.
I guess I am going to do a dive into the F# compiler next.
In the worst case, all is not lost since you pointing out the FSharp.Reflection means that I can interop functions, tuples and heap allocated records easily now.
I am reluctant to building my own system for querying System.Type for the same reason I would be reluctant to do a directory browser. There is only a set amount of effort I want to dedicate to .NET integration and I do not want to go over budget.

I do not think they are what I need. They barely have any documentation.

They are "a better alternative way of querying the .NET API.".

I am reluctant to building my own system for querying System.Type for the same reason I would be reluctant to do a directory browser. There is only a set amount of effort I want to dedicate to .NET integration and I do not want to go over budget.

I can only warn you explicitly again:
System.Type and in particular Assembly.Load and even Assembly.ReflectionOnlyLoadFrom have a lot of limitations you will encounter sooner or later. But yes they will give you the feeling of quick early success. We tried to go down that route in Paket and use Mono.Cecil now for basically everything.

So that I may better plan for the future, would you mind elaborating on the differences between Mono.Cecil and the System.Reflection? What are the limitations that you have encountered?
The examples are sparse, so it is not at all obvious to me what problems those two libraries you've mentioned address.

Well regarding the Assembly.Load, in this article it mentions that an Assembly cannot be unloaded once loaded using reflection and that Cecil takes care of that. So I guess there is no need to explain that.
Though the documentation on the Github repo is sparse, there are various tutorials online, so it does seem like I will find my way around. I've decided to take your advice. Rather than plan for the future, I'll figure out how to use Cecil now and level up my .NET metaprogramming along the way, though I honestly find this kind of programming nasty. This is why I've been so hesitant to commit to it.
Languages are made to get away from this sort of thing - in various ways this is a throwback to the days of assembly programming, only under a different guise. True metaprogramming is language creation.

I did not have any luck with Cecil. I asked the author how to get the methods with the substituted variables and got only silence in return which tells me that the library might not have been made for that sort of thing.
I do not have anything to choose from here. In terms of documentation, the little the AbsIL has in the F#'s compiler source is more than I've managed to find on Cecil.
Just now, I've noticed that AbsIL actually comes as a part of F#'s compiler services, so I've been trying to find some examples like tests on how it is used. I am thinking that it might be possible to use it to load an assembly and use it for queries. More generally and unrelated to the issue at hand, it would be interesting to generate F# AST directly and pass it to the compiler rather than text, but that is not possible right now as the library is mostly for the benefit of editors and IDEs.
Would it be possible to use AbsIL as an interface to .NET for my language? Specifically, I am making a request for some examples on how to load modules, query types and their methods and do substitution on generic parameters possibly with token types from my own language. Those token types can be just ints, it will be enough for them to be unique.
What I want here is really all straightforward and basic stuff, but the library is fairly huge and it is not at all readable to me, so I won't be able to do it without some help.
I've accepted @matthid 's advice not to use System.Reflection and am convinced that I need a better solution than it. It is really disappointing that .NET does not provide a built in solution to this given its size and complexity. In an article I've read, it was said that the .NET reflection functions were made to emulate the late binding of dynamic languages which is the reason for its unsuitability for other tasks.
If AbsIL cannot be reused, I will have to resolve myself to writing my own IL reader.
Probably, the best way to learn that stuff would be to make a .NET IL interpreter. What do you think?

Probably, the best way to learn that stuff would be to make a .NET IL interpreter.

I've just gone through the CIL Ecma spec and yeah, there is no way I am doing this. The one interpreter that I could find is insanely large at 12k lines of code. I was just grasping in the desperation when I wrote this.
But at any rate, it does not matter as I've resolved how to deal with the interop issues, so please allow me to withdraw my selfish request for AbsIL examples.
Spiral has a pretty powerful type system, to the point of being capable of tracking the type's layout. I've only added that sort of feature just recently to the language and it only worked on functions so far, so it did not occur to me to extend it to tuples. There is also the matter that like in dependently typed languages, types can move around on the term level and can hold literals as well, so it did not occur to me that it might be possible to restrict that. It also did not occur to me that I could introduce a special layout for F# tuples and records which would allow me to use its reflection functions to construct the System.Type for them directly and pass it along. Not to mention when I was first grappling with the idea, I did not know they even existed until @matthid pointed them out in this very thread. Using System.Reflection would also allow me to use .NET methods dynamically at compile time when the arguments to them are solely literals which will be useful for loading schemas from files and using built in string functions and such. Setting the layout, plus heap or stack allocation is rather easy in Spiral - about as easy as it is to convert an int to a float in F#.
If I act on the above insights, that will get me 90% of the way there in terms of interop. I won't be able to pass along union types as they use type level strings for names, but the rest should be fine. If I ever want to write compilers in Spiral I should write my own tree based structures as they will be better optimized.
In hindsight the idea for this should have been obvious to me, but I do not think that inspiration comes out of the blue. It definitely has a search component to it; many of the simple features in the language took me a long time to work out as well, and this time was no exception.
@matthid, thank you for your help.

As an aside, the author did answer my question right now and it is not possible to substitute the variables with Cecil. If he can't then I certainly won't be able to .

@mrakgr I commented on the answer on SO.
I feel like you don't actually want Cecil to initiate some type handle for a generic type instantiation. All you want is the generic metadata (and this is all cecil can provide you with) the parameter replacement needs to be done later, but this will also enable you to emit code with generic parameters for types you define in Spiral (as long as they will be represented as types in the emitted F# code as well).


feat: Toast enhancement

Demo: https://trendmicro-frontend.github.io/styled-ui-demo/pr-323/toast
Reference: https://github.com/jossmac/react-toast-notifications
The toast animation depends on PR #297

[x] ToastProvider
[x] ToastContainer
[x] ToastController
[x] useToast
[x] animation effect
[x] options: appearance / icon
[x] API for the non-Hook version (see https://github.com/chakra-ui/chakra-ui/blob/main/packages/toast/NOTES.md)
[x] Update API docs https://github.com/jossmac/react-toast-notifications#hook

Move to PR #341


Auto docs

Continuation of https://github.com/nf-core/nf-co.re/pull/440 on a branch so that @mashehu and I can both easily work on it.

Since I (accidentally) merged your PR into this, one  i will add comments about changes here:
I am not a fan of the vertical bars and large padding between parameters, I think they add too much visual noise, especially around the group names. For me they are already separated enough with the different headings and paragraphs and it has a better visual rhythm.
To clarify this is what I am talking about:

without borders and padding:

The way I got here was that I felt that the help buttons were floating out in space too much. It made it tricky to line up which was which on wider screens, especially when there are lots of hidden params / buttons together.
The horizontal borders help a lot to keep things organised, but the negative margin stuff on the headers meant that the borders were a bit crazy and overlapped the previous elements. So I added in extra padding to make it fit properly. I was fairly happy with how it looked, so I left it like that.

Note that I half wondered about taking a completely different approach and rendering the params docs as a (pseudo-?) table. Having the description alongside the parameter id would cut down on the whitespace and make it a lot easier to scan, and help text could be expanded as a full-width row under the relevant row. It would also make sense to downgrade parameters from headings then and make everything a lot smaller, so more stuff would fit on the screen.
I didn't take the time to prototype it though, it was just an idea in the shower. And to be honest I wasn't super keen to rewrite the output again (though actually it shouldn't be so bad now that it's in a function call).

Ah, okay. What if we put the help button (should it maybe be "Show help" help to fit with the hidden-button text) beneath the definition, above the card containing the text?
Yes, I was also thinking if we maybe should have it more like the the old bootstrap3 .dl-horizontal, to give it more of a lexicon style (rendering as tables sound like a very 00s way to layout text 😉). I think with our current setup of inputing descriptions (as a quite tiny input field), they will be a lot shorter than the help-text.

What if we put the help button (should it maybe be "Show help" help to fit with the hidden-button text) beneath the definition, above the card containing the text?

I think that'll be worse, as it'll then be closer to the following param ID than the one it applies to..

rendering as tables sound like a very 00s way to layout text

I said (pseudo-?)! 😅 Yes that's kind of what I meant. Can just be .rows I guess.
Shall I try to whip up a quick proof-of-concept? Or do you want to go at it?

I'll give it a go, so you can concentrate on the tools.

Oops, sorry I couldn't resist seeing what it might look like 🙄

I think it's much better tbh.. Reflows nicely on small screens too:

Hmm, now it looks too rigid to me... I kind of liked the flow of the param definitions in the usage.md. It is a lot easier to parse that way, but not really beginner friendly I guess. So we need to make sure to have a good introduction to the pipeline in the usage.md.

Yeah, I think that's kind of how I imagined it being used to be honest. General introduction stuff written as prose, then more in-depth docs in the structured format..


Review KPIs with Jenn

To review stats as reported in KPI Tracker and if useful, stats used in Quarterly Dept Meeting slides and WC-Combined Stats report with Jenn.

Links here:
KPI Tracker
Quarterly Dept Meeting slides
WC-Combined Stats report


wdio-allure-framework results in allure report with steps from different TCs in a Scenario Outline scrambled together

From @osmolyar on February 27, 2018 18:49
The problem
The Gherkin steps for Scenario Outlines are completely scrambled in the Allure report resulting from the use of wdio-allure-reporter@0.3.2,, with steps from different test cases combined together into a numbered list and not ordered on display, e.g., see 'License Key test Invalid License Key FIles' in
http://<IP_ADDRESS>:64354/index.html#suites
Also wdio-allure-reporter (0.3.2/latest) appears to use allure v1<EMAIL_ADDRESS>rather than allure2, which is the supported version - not sure whether this is related to the issue or not.
Environment

WebdriverIO version: 1.0.3
Node.js version: 6.5.0
Standalone
wdio-cucumber-framework ^1.1.0"
*wdio-allure-reporter 0.3.2
<EMAIL_ADDRESS>(installed with wdio-allure-reporter)

Details
wdio-allure-reporter (0.3.2/latest) appears to use allure v1<EMAIL_ADDRESS>rather than allure2, which is the supported version.
Possibly as a result, Gherkin steps for Scenario Outlines are completely scrambled in the Allure report, with steps from different test cases combined together into a numbered list and not ordered on display, e.g., see 'License Key test Invalid License Key FIles' in
http://<IP_ADDRESS>:64354/index.html#suites
C:\selenium\qdtools\AUTF\selenium\webdriverio\jenkins\Cucumber1>npm install -g wdio-allure-reporter
C:\Program Files\nodejs
--<EMAIL_ADDRESS> +--<EMAIL_ADDRESS> | +--<EMAIL_ADDRESS> | +--<EMAIL_ADDRESS> | | +--<EMAIL_ADDRESS> | | +--<EMAIL_ADDRESS> | | --<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | --<EMAIL_ADDRESS> | +--<EMAIL_ADDRESS> | +--<EMAIL_ADDRESS> | --<EMAIL_ADDRESS>--<EMAIL_ADDRESS>   +--<EMAIL_ADDRESS>   --<EMAIL_ADDRESS>Link to Allure report:  http://<IP_ADDRESS>:64354/index.html#suites
Link to Selenium/WebdriverIO logs
Code To Reproduce Issue [ Good To Have ]
Please remember that, with sample code; it's easier to reproduce bug and much faster to fix it.
Copied from original issue: webdriverio/webdriverio#2619

For reference, for the original submitted issue, the Scenario Outline corresponding to the output shown in the Allure report: http://<IP_ADDRESS>:64354/index.html#suites for suite "License Key test Invalid License Key Files" is as follows:
Scenario Outline: Test invalid license key files
When I import and try to activate the license key
Then the file contents panel should contain
And the response note area should contain
Examples:
| filepath               | errorText                                  |
| /tmp/expired_cache.key | ERROR #8604: License key has expired.      |
| /tmp/invalid_cache.key | ERROR #8605: License key is invalid.       |
| /tmp/empty_cache.key   | ERROR #8603: Not a valid license key file. |
| /tmp/empty_cache.key   | ERROR #8603: Not a valid license key file. |
| /tmp/cache1.key        | File does not exist                        |

@osmolyar
http://<IP_ADDRESS>:64354/index.html#suites
it is a private network. We can't access it.
could you add screenshot of report with problem, please?

@BorisOsipov  You are right, here is a screenshot.  The 13 steps in suite 'License Key test Invalid License Key Files' result from 5 different TCs, each with 3 steps (not sure why there are 13; all the steps passed).

@osmolyar Oh now I am understanding reason of your issue. I have ran into it already.
It is some kind of designed behaviour. Wdio-cucumber reporter handle each cucumber step as "test" and allure report generates "correct" report.
I guees we need to change it somehow, but I don't really now how implemet it - I don't like to break current mocha\jasmine reports.
You can try my own fork, I fixed this issue for myself sometime ago.
Replace in package json your allure dependency with
"wdio-allure-reporter": "git+https://github.com/BorisOsipov/wdio-allure-reporter.git#e9ef42c52980"
and rerun test and generate report.
After that cucumber steps will be reported as steps rather as tests.
I am not sure that it will work for you, but I hope.
Do not hesitate to provide your feedback.

@BorisOsipov , thanks for your response.  I did as you have suggested in my local package.json, ran npm update and re-ran the test (with the same results, even after deleting the allure_results and allure-reports directories first).
One thing is that currently wdio-allure-reporter (and wdio-cucumber-framework) are running globally so I'm not positive the changed dependency is being used; this is a bit of a newbie question but where would I update the allure dependency for a global package? (not seeing a package.json under the npm root).  Or how would I install your Github version globally?
Another strange thing is that for another test suite in the same report, "User Management Create users - basic fields", I am seeing the 'opposite' behavior; there are 13 TCs with 3 steps each so I'd expect to see ~39 steps/tests but instead the report shows only 5, (4 for the Scenario outline and 1 for Background), even though all the TCs ran:

For reference, here is the Scenario Outline with 13 TCs/3 steps each, corresponding the the 5 steps(tests) reported above for Scenario 'User Management Create users-basic fields'.  Both dot and junit reporters show that all tests and steps ran.
Scenario Outline: Create users - basic fields
When I create a user:
  | login             | <login>             |
  | passwd            | <passwd>            |
  | passwdConfirm     | <passwdConfirm>     |
  | expDate           | <expDate>           |
  | startupNamespace  | <startupNamespace>  |
  | startupTagRoutine | <startupTagRoutine> |
Then the Edit User page validation elements are confirmed
  | responseText  | <responseText>  |
  | nameHint      | <nameHint>      |
  | passwdHint    | <passwdHint>    |
  | routineHint   | <routineHint>   |
  | namespaceHint | <namespaceHint> |
And I confirm the user has been created successfully \<status\>

Examples:
  | login                       | passwd                           | passwdConfirm    | expDate    | startupNamespace    | startupTagRoutine | status    | responseText    | nameHint    | passwdHint    | namespaceHint    | routineHint    |
  | newUser1                     | newUser1                          | newUser1                          |            |                  |                   | true   | User saved.                                                                                |           |            |                                       |                                                        |
  |                              | missingNameUser                   | missingNameUser                   |            |                  |                   | false  | There was a problem with the form. See the highlighted fields below.                                                                                | Required. |            |                                       |                                                        |
  | missingPasswdUser            |                                   | missingPasswdUser                 |            |                  |                   | false  | There was a problem with the form. See the highlighted fields below.                                                                                |           | Required.  |                                       |                                                        |
  | nonMatchingConfirmPasswdUser | passwd                            | nonMatchingPasswd                 |            |                  |                   | false  | There was a problem with the form. See the highlighted fields below.                                                                                |           | Required.  |                                       |                                                        |
  | validDateLeapYear            | passwd                            | passwd                            | 2020-02-29 |                  |                   | true   | User saved.                                                                                |           |            |                                       |                                                        |
  | invalidCharDate              | passwd                            | passwd                            | abc        |                  |                   | false  | ERROR #944: Invalid expiration date ERROR #7204: Datatype value '-1' less than MINVAL allowed of 0 > ERROR #5802: Datatype validation failed on property 'Security.Users:ExpirationDate', with value equal to "-1" |           |            |                                       |                                                        |
  | invalidValueDate1            | passwd                            | passwd                            | 2017-02-29 |                  |                   | false  | ERROR #944: Invalid expiration date ERROR #7204: Datatype value '-1' less than MINVAL allowed of 0 > ERROR #5802: Datatype validation failed on property 'Security.Users:ExpirationDate', with value equal to "-1" |           |            |                                       |                                                        |
  | invalidValueDate2            | passwd                            | passwd                            | 2017-13-29 |                  |                   | false  | ERROR #944: Invalid expiration date ERROR #7204: Datatype value '-1' less than MINVAL allowed of 0 > ERROR #5802: Datatype validation failed on property 'Security.Users:ExpirationDate', with value equal to "-1" |           |            |                                       |                                                        |
  | invalidFormatDate            | passwd                            | passwd                            | 1/1/2025   |                  |                   | false  | ERROR #944: Invalid expiration date ERROR #7204: Datatype value '-1' less than MINVAL allowed of 0 > ERROR #5802: Datatype validation failed on property 'Security.Users:ExpirationDate', with value equal to "-1" |           |            |                                       |                                                        |
  | passwdOverMaxConfigLength    |<PHONE_NUMBER>12345678901234567890123 |<PHONE_NUMBER>12345678901234567890123 |            |                  |                   | false  | ERROR #845: Password does not match length or pattern requirements                                                                                |           | Required.  |                                       |                                                        |
  | passwdUnderMaxConfigLength   | 12                                | 12                                |            |                  |                   | false  | ERROR #845: Password does not match length or pattern requirements                                                                                |           | Required.  |                                       |                                                        |
  | routineNotInNamespace        | passwd                            | passwd                            |            | %SYS             | ^NoRoutine        | false  | There was a problem with the form. See the highlighted fields below.                                                                                |           | Required.  |                                       | Routine 'NoRoutine' does not exist in namespace '%SYS' |
  | routineWithNoNamespace       | passwd                            | passwd                            |            |                  | ^NoNamespace      | false  | There was a problem with the form. See the highlighted fields below.                                                                                |           | Required.  | Required if startup routine specified |                                                        |

See also related WebdriverIO documentation issue, https://github.com/webdriverio/webdriverio/issues/2623

@osmolyar

Currently wdio-allure-reporter (and wdio-cucumber-framework) are running globally so I'm not positive the changed dependency in the local package is being used; would you have any hints about this?

no. it is hard to guess what is the problem.

"User Management Create users - basic fields", I am seeing the 'opposite' behavior; there are 13 TCs with 3 steps each so I'd expect to see ~39 steps/tests but instead the report shows only 5,

I guess it because your scenario in scenario outline has the same name for all examples. Allure handles it as retries.
Get repo with example - run test and generate report. npm run wdio, allure serve
For me it looks good.
See screenshot https://www.screencast.com/t/bJNzHBrY

Is there anything we need to change in the cucumber adapter or in the reporter system to achieve support for the allure reporter in cucumber?

@BorisOsipov , thank you very much for the example with the parametrized Scenario Outline name!  It looks like this should in fact fix the issue.  (This is not something I had seen before I'd previously used  'testId' in the Examples table with SpecFlow as a test name.)

@BorisOsipov what is different in your fork than what is on master?

@christian-bromann
Shortly I handle
'suite:start' with empty parent suite as Allure suite
'suite:start' with filled parent suite as Allure test
'test:start' as Allure step
It's main changes.
It isn't hard to merge my changes to master, but I don't like to do it without tests and it brings significant time effort to me.

@BorisOsipov I'm happy to test a merged package if it would be of use.

@osmolyar

only thing is the tests are still not sorted in numerical order of test # within a Feature File in the display:

they sorted by Name. It is Allure sorting default.

I'm happy to test a merged package if it would be of use.

I told about integration tests. Current repo has test suite based on mocha tests. If we separate logic with mocha and cucumber reporting we will need add corresponding test for it

@BorisOsipov would you mind making a PR and other people then can contribute to it?

@christian-bromann Sure. I will prepare PR.

@BorisOsipov

only thing is the tests are still not sorted in numerical order of test # within a Feature File in the display:
they sorted by Name. It is Allure sorting default.

Is it possible to consider sorting by # for Cucumber, because the tests in a Scenario Outline have a clear order and it is disorienting to view the results in a different order?

@osmolyar
report generation and report UI (sorting, widgets positions) out of scope allure-wdio-reporter
It is allure-framework issue e.g. here you can find the same question :)
https://github.com/allure-framework/allure2/issues/734#issuecomment-367692004

@osmolyar We have fixed cucumber steps reporting in https://github.com/webdriverio/wdio-allure-reporter/pull/108
Have a look and provide feedback for us. @christian-bromann will release new version soon.

@osmolyar pay attention we don't enable new option by default. You need to enable it in your config see https://github.com/webdriverio/wdio-allure-reporter#configuration

@BorisOsipov , thank you very much for the fix and the tip!  I will test potentially this week and get back to you.

@BorisOsipov , seem like your changes is not working on the latest version (0.6.0). The scenario title is still combined with features title.

@ezwanharun share screenshot of report and your allure options

I paste my report screenshot along with allure option in here.

@ezwanharun https://github.com/webdriverio/wdio-allure-reporter#configuration
turn on useCucumberStepReporter

Oh...yeah...thanks. didnt notice about that configuration. everything working as expected now.

@BorisOsipov  Hi Boris, please help me. I'm using Cypress, it's similar to Mocha. And I need to get the same report in allure https://user-images.githubusercontent.com/15637471/36801562-77dae0be-1c80-11e8-97d1-3b10031fb73c.png. Is it possible to do this feature? Thank you in advance.

Hi @belimm01
I don't know Cypress and can't answer.
Probably if it similar to mocha you can adapt and use
https://github.com/allure-framework/allure-mocha
вт, 3 июл. 2018 г. в 16:33, Nikita<EMAIL_ADDRESS>
@BorisOsipov https://github.com/BorisOsipov Hi Boris, please help me.
I'm using Cypress, it's similar to Mocha. And I need to get the same report
in allure
https://user-images.githubusercontent.com/15637471/36801562-77dae0be-1c80-11e8-97d1-3b10031fb73c.png
http://url. Is it possible to do this feature? Thank you in advance.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/webdriverio/wdio-allure-reporter/issues/97#issuecomment-402158642,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGNmZBfNRJfxruFya0SyWLII-0XEeG5Bks5uC3KggaJpZM4SVdXY
.

--
--
Best Regards,
Boris Osipov


Bug: windows-bindgen unconditionally emits unneccessary items

Which crate is this about?
other (please share in the comments)
Crate version
windows-bindgen 0.47.0
Summary
Using windows_bindgen::standalone unconditionally emits items that might not be required by the items requested by the user.
Toolchain version/configuration
Default host: x86_64-unknown-linux-gnu
rustup home:  /home/jake/.rustup

installed toolchains
--------------------

stable-x86_64-unknown-linux-gnu (default)
nightly-2022-08-29-x86_64-unknown-linux-gnu
nightly-2022-10-01-x86_64-unknown-linux-gnu
nightly-2022-10-29-x86_64-unknown-linux-gnu
nightly-2022-12-18-x86_64-unknown-linux-gnu
nightly-2023-01-30-x86_64-unknown-linux-gnu
nightly-x86_64-unknown-linux-gnu
1.65.0-x86_64-unknown-linux-gnu
1.66.0-x86_64-unknown-linux-gnu
1.66.1-x86_64-unknown-linux-gnu
1.67.0-x86_64-unknown-linux-gnu
1.68.0-x86_64-unknown-linux-gnu

installed targets for active toolchain
--------------------------------------

aarch64-apple-darwin
wasm32-unknown-unknown
x86_64-pc-windows-msvc
x86_64-unknown-linux-gnu
x86_64-unknown-linux-musl

active toolchain
----------------

stable-x86_64-unknown-linux-gnu (default)
rustc 1.68.2 (9eb3afe9e 2023-03-27)

Reproducible example
fn generate_bindings() {
    let apis = [
        "Windows.Win32.System.Console.SetConsoleTextAttribute",
    ];

    let bindings = windows_bindgen::standalone(&apis);
    std::fs::write("src/windows_term/bindings.rs", bindings).expect("failed to generate bindings");
}

Crate manifest
[package]
name = "console"

[dev-dependencies]
windows-bindgen = "0.47"

Expected behavior
Only the items requested are emitted.
Actual behavior
pub type HRESULT = i32;
pub type HSTRING = *mut ::core::ffi::c_void;
pub type IUnknown = *mut ::core::ffi::c_void;
pub type IInspectable = *mut ::core::ffi::c_void;
pub type PSTR = *mut u8;
pub type PWSTR = *mut u16;
pub type PCSTR = *const u8;
pub type PCWSTR = *const u16;
pub type BSTR = *const u16;
#[repr(C)]
pub struct GUID {
    pub data1: u32,
    pub data2: u16,
    pub data3: u16,
    pub data4: [u8; 8],
}
impl GUID {
    pub const fn from_u128(uuid: u128) -> Self {
        Self {
            data1: (uuid >> 96) as u32,
            data2: (uuid >> 80 & 0xffff) as u16,
            data3: (uuid >> 64 & 0xffff) as u16,
            data4: (uuid as u64).to_be_bytes(),
        }
    }
}
impl ::core::marker::Copy for GUID {}
impl ::core::clone::Clone for GUID {
    fn clone(&self) -> Self {
        *self
    }
}

Is emitted in addition to whatever bindings were actually requested.
Additional comments
This is the emitted block. Presumably fixing #2407 would mean this could be completely removed as it would not be necessary to emit those items unless they were actually referenced by 1 or more of the items requested by the user.

These are considered the "core" types by the bindgen crate and what it expects of windows and windows-sys respectively, but yes at least for the sys-style bindings we should be able to infer these along with #2407.

Here's the fix for this: #2421


Consider enabled lints when performing refactorings

Concrete example: extract variable could insert a final modifier if prefer_final_locals is enabled.
See: https://github.com/Dart-Code/Dart-Code/issues/1949.
/cc @bwilkerson @scheglov

https://dart-review.googlesource.com/c/sdk/+/115065 for prefer_final_locals.

Is it possible for omit_local_variable_types: false to be considered too so that it automatically adds the type to local?

Assuming I'm understanding the question, my answer is that I think we don't want to confuse the absence of a signal with a negative signal (and disabling a lint simply removes it from use, it doesn't mean that the opposite is intended).
That said, I believe that always_specify_types provides the positive signal that you're thinking of, and could reasonably be used to cause a type to be added.

Hi @bwilkerson, thanks for explaining about the absence of a signal.
I like your idea about using always_specify_types: true as a way to determine if the local variable's type is required.
The thing which sacred me most about enabling always_specify_types on an existing code base is the sheer number of closures which then require types. I just found avoid_types_on_closure_parameters: true lint, no excuses now not to try it!

I just found avoid_types_on_closure_parameters: true lint ...

Unfortunately, I believe those two rules collide. That is, I suspect that if you enable both then one will produce a lint when a closure's parameter has no type and the other will produce a lint when the parameter has a lint. We might want to consider making lints aware of other lints as well.

You are correct, they do conflict with each other. I think the docs needs a note added like there is for omit_local_variable_types while they remain unaware of each other.
https://dart-lang.github.io/linter/lints/avoid_types_on_closure_parameters.html
https://dart-lang.github.io/linter/lints/always_specify_types.html

Since we've landed a bit of "consider which lints are enabled when performing a refactoring" here and there for various fixes and refactorings, we can close this issue. It is otherwise unactionable, and individual "consider lint X when writing refactor Y" ideas should be individual issues.
Please feel free to file issues for these ideas! They really do improve UX and we can prioritize and consider each individually.


[Bug]: Local server never updates with local changes & intermittently displays live theme

Please confirm that you have:

[X] Searched existing issues to see if your issue is a duplicate. (If you’ve found a duplicate issue, feel free to add additional information in a comment on it.)
[X] Reproduced the issue in the latest CLI version.

In which of these areas are you experiencing a problem?
Theme
Expected behavior
When starting a local development server using the command:
shopify theme dev -s store-handle --theme-editor-sync --live-reload full-page
...and viewing the page at localhost, the local machine version of the theme should be displayed and any changes made locally, should be viewed when a hot reload takes place.
Actual behavior
Either one of two issues happens (seems to have been happening for the past 3/4 CLI versions):

When the development server is started (with the command previous), sometimes the live theme will be displayed.

or

The theme displayed is correct, but when making changes locally, hot reload simply reloads the same state and fails to show any updated code/visuals and thus the domain-based preview link needs to be used (example.com/pages/about?preview_theme_id=1234567890) - localhost/127 never works.

Operating System
macOS 14.4.1 & Windows 10
Shopify CLI version (check your project's package.json if you're not sure)
3.59.0
Shell
zsh / Git Bash
Node version (run node -v if you're not sure)
v21.7.3
What language and version are you using in your application?
No response

This happened with me few weeks ago and it was showing the live store preview on http://<IP_ADDRESS>:9292/
But I used http://<IP_ADDRESS>:9292?preview_theme_id=id-here
then it worked fine

@Shopify/theme-code-tools ☝

I don't think that will solve it completely because the issue isn't only for Themes. It is mostly in preview on http://<IP_ADDRESS>:9292/

I'm just tagging someone to look at this internally.

👋 hi @rcasimmons, thanks for reaching out! the behavior your experiencing in the CLI is because of this flag your passing in:
--live-reload full-page
removing this will run theme dev with the default live-reload mode which is hot-reload. you should then see your local changes reflected in your preview. let us know if you're still having trouble after trying this 🙏

👋 hi @rcasimmons, thanks for reaching out! the behavior your experiencing in the CLI is because of this flag your passing in: --live-reload full-page
removing this will run theme dev with the default live-reload mode which is hot-reload. you should then see your local changes reflected in your preview. let us know if you're still having trouble after trying this 🙏

Thanks @mgmanzella for the response but I think you've misunderstood here.
The issue lies with changes just not being made to 127 - not that the page is simply refreshing - we're fully aware the page is refreshing due to this flag.
The refresh flag is intentional in our case as to mitigate JS which will only run on load or whereby if the page breaks due to JS.
Can this be looked into by the team please?

👋

👋 what you're seeing is expected when using the --live-reload flag. the --live-reload flag actually changes how the development server behaves when a file change happens, we have:

off - the server doesn’t anything
full-page - the server refreshes the page
hot-reload - the server hot reloads the page based on the changes

👋 what you're seeing is expected when using the --live-reload flag. the --live-reload flag actually changes how the development server behaves when a file change happens, we have:

off - the server doesn’t anything
full-page - the server refreshes the page
hot-reload - the server hot reloads the page based on the changes

Thanks @mgmanzella but I'm still unsure on this and I still think there's some confusion on this issue?
Full page reload is something we've used since the birth of CLI and the changes locally made have always shown on 127 - as suggested, we need to use this as some JS breaks with the standard hot reload.
How does this explain the issue where the page will show the live theme but restarting the CLI will show the correct theme?

understood, thank you for your patience we'll take a deeper look 🙏

@karreiro / @mgmanzella
I was just wondering if we had an update here as the issue is still outstanding.

Also still an issue for me - actually seems to be worse since the update

I too am still experiencing this issue.

Hey @rcasimmons,
We identified and fixed an issue in the development server session. The fix was released on Shopify CLI 3.60 (yesterday) so upgrading your local CLI should resolve the problem.
We've tried the new version of shopify theme dev specifically with one of your store themes it successfully worked.
We really don't think this will be necessary, but in case the scenario you reported happens again, could you please share the --verbose output at the moment you save the file. We will wait for your feedback before closing the issue.
Thanks again for reporting this!
--
Hey @RyanBriggsDev @RCA-JC,
Could you please confirm if you're using Shopify CLI 3.60?
If you still face this issue on 3.60, could you please share --verbose output from the startup of the server until the moment you save the file and the hot-reload mechanism doesn't work? Thanks a lot!

Hey @rcasimmons, glad to hear that :) that means this issue was really impacted by the session cookie fix we shipped in 3.60.

Is there anyway to request that CLI checks for an update once it's started?

I don't think there's any configuration to activate that for all commands, but the shopify version command checks if any updates are available:

I'm closing this issue for now, but please feel free to reopen it if the issue comes back :)


Support testing latency from uninitialized state

Also known as warmup time or cold latency

Was added in $47


Updated dependencies

Updated svelte config to support breaking change from sveltekit update
Should maybe resolve failed workflow run

jk im closing this for now because i opened a can of worms that no one wanted to open
(tldr: svelte kit has a lot more breaking changes than just this one)

issue 500 rest in peace

LMFAO RIP


Create 3 panning gifs for use as twitter images.

Use:

Dream Lake (scene 1)
Emerald Lake (scene 2)
Steep Mountain/Hollowell high (scene 7)

A GIF may fail during Tweet creation even if it is within the filesize limit. Adhere to the following constraints to improve success rates.
Resolution should be <= 1280x1080 (width x height)
Number of frames <= 350
Number of pixels (width * height * num_frames) <= 300 million
https://dev.twitter.com/rest/media/uploading-media

Here's an example of logo placement. You don't need to worry about the credit for these gifs.

This logo should work.

Will do. Not happy with how the screen recording quality has been turning out. I will probably animate them myself in AE for sake of time and frustration.


PostgreSQL "Has many relation"  optimization

This example : https://github.com/uptrace/bun/tree/master/example/rel-has-many
Currently, with Bun's has many implementation, Bun executes two queries.
[bun]  14:10:17.279   SELECT                   20µs  SELECT "user".* FROM "users" AS "user" ORDER BY user.id ASC LIMIT 1
[bun]  14:10:17.279   SELECT                   23µs  SELECT "profile"."id", "profile"."lang", "profile"."active", "profile"."user_id" FROM "profiles" AS "profile" WHERE ("profile"."user_id" IN (1)) AND (active IS TRUE)

But this can be done in one query with left join. In PostgreSQL one can do,
 SELECT "users".*,array_agg(profiles.*) FROM "users" left join profiles on profiles.user_id=users.id group by users.id

This will effectively get the same results without needing to chain multiple queries.

Yes, as long as you know how to parse array_agg(profiles.*) results. Given the amount work it requires, I doubt it will ever be implemented.

Yes, as long as you know how to parse array_agg(profiles.*) results. Given the amount work it requires, I doubt it will ever be implemented.

Even with separate queries, you have to parse the results. right?
SELECT "profile"."id", "profile"."lang", "profile"."active", "profile"."user_id" FROM "profiles" AS "profile" WHERE ("profile"."user_id" IN (1,2,3,4)) AND (active IS TRUE)

After the 2nd queries, you have to create iterate through the rows. With my approach, this seems easier.

This is interesting. But like everything, time and therefore performance must be measured. Can you give us some numbers on a test DB?

Even with separate queries, you have to parse the results. right?

Yes, it is already done and is somewhat standardize / abstracted. What you suggest here is a separate format specific to PostgreSQL array_agg function.
I am closing this since I don't expect this to be implemented.

Even with separate queries, you have to parse the results. right?

Yes, it is already done and is somewhat standardize / abstracted. What you suggest here is a separate format specific to PostgreSQL array_agg function.
I am closing this since I don't expect this to be implemented.

It can be done with simple left join as well. It doesn't necessarily have to be done with array_agg.

Yes, it would be easier to scan results with left join, but then you have to do some post-processing to deduplicate rows and get the results in the expected format.

@vmihailenco, you are one of my myths, which I love.
But I have a question about this last sentence of yours: does it mean that we will never have the use of automatic JOINs in Bun?

I am not going to work on this issue, because it is significant amount of work and the demand is low. GORM/Entgo don't even have optimizations available in go-pg and that does not stop anyone.

@vmihailenco I'll try to work on this issue. Will submit a PR in the weekend.

You are welcome to try :+1:


Preview doesn't work

Describe the bug
I see Booting WebContainer instead of seeing the preview of the app.
Link to the blitz that caused the error
https://stackblitz.com/github/chriskess/add-layers-via-button-click?file=README.md
Steps to reproduce

Go to https://stackblitz.com/edit/github-add-layers-via-click-stackblitz-qlxact?file=index.html

Expected behavior
I see the preview of the app and can interact with it.
Parity with Local

[X] I have run the project in my local machine and I could not reproduce the issue.

Screenshots
No response
Platform
Browser name  = Chrome
Full version  = <IP_ADDRESS>
Major version = 104
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
performance.memory = {
  "totalJSHeapSize": 86705456,
  "usedJSHeapSize": 70268172,
  "jsHeapSizeLimit":<PHONE_NUMBER>
}
Hash = 1f021b18268b32e6c6b2095e039ac8c9f88b0d52

Additional context

Hi @chriskess. Thanks for the report!
The preview is working as intended in this case. When we import this project from GitHub, we don’t know which runtime environment we should use, so in this case we default to a WebContainers environement, which can run arbitrary Node.js programs.
When using WebContainers, the preview can only show something if the project is running a web server.
If I had "dev" or "start" script in package.json, I can run a web server using a npm package, for instance:
{
  "name": "floorplanenginesdk-draw-polygons",
  "version": "1.0.0",
  "description": "This is a static template with no bundling",
  "main": "index.html",
  "scripts": {
    "build": "echo \"no build required\"",
    "start": "npx serve"
  }
}

or adding the dependency explicitly instead of relying on npx to install it:
{
  "name": "floorplanenginesdk-draw-polygons",
  "version": "1.0.0",
  "description": "This is a static template with no bundling",
  "main": "index.html",
  "scripts": {
    "build": "echo \"no build required\"",
    "start": "serve"
  },
  "dependencies": {
    "serve": "^14.0.0"
  }
}

Hi,
Thx for the quick reply. I am very new to coding. When I copy/ paste your
suggestion to the package.json nothing happens. Do I need to install
something first?
Best regards,
Christof
On Thu, Aug 11, 2022 at 11:05 AM Florens Verschelde <
@.***> wrote:

Hi @chriskess https://github.com/chriskess. Thanks for the report!
The preview is working as intended in this case. When we import this
project from GitHub, we don’t know which runtime environment we should use
https://developer.stackblitz.com/docs/platform/available-environments/,
so in this case we default to a WebContainers environement, which can run
arbitrary Node.js programs.
When using WebContainers, the preview can only show something if the
project is running a web server.
If I had "dev" or "start" script in package.json, I can run a web server
using a npm package, for instance:
{
"name": "floorplanenginesdk-draw-polygons",
"version": "1.0.0",
"description": "This is a static template with no bundling",
"main": "index.html",
"scripts": {
"build": "echo \"no build required\"",

"start": "npx serve"

}
}
or adding the dependency explicitly instead of relying on npx to install
it:
{
"name": "floorplanenginesdk-draw-polygons",
"version": "1.0.0",
"description": "This is a static template with no bundling",
"main": "index.html",
"scripts": {
"build": "echo \"no build required\"",

"start": "serve"

},
"dependencies": {
"serve": "^14.0.0"

}
}
—
Reply to this email directly, view it on GitHub
https://github.com/stackblitz/webcontainer-core/issues/773#issuecomment-1211726813,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASQJWA5AWUAMXHPMJOCCGD3VYS64RANCNFSM56HKQIGQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Christof Kesselring
Solutions Specialist
https://www.archilogic.com/
@.***
www.archilogic.com
Schedule a meeting with Christof
https://app.hubspot.com/meetings/christof2

You would need to run a couple commands in the Terminal after editing the package.json:
npm install
npm start

Alternatively, you can make the changes to package.json, save the project, and reload the page. When we load a project we automatically run those commands if the package.json defines dependencies and a "start" script.

I’ll close this issue since it’s not a technical problem with WebContainers or the StackBlitz editor, and doesn't require a fix on our side. Feel free to still reply to this issue if you have questions.

Awesome support! Thx that worked.
On Fri, Aug 12, 2022 at 9:49 AM Florens Verschelde @.***>
wrote:

Closed #773 https://github.com/stackblitz/webcontainer-core/issues/773
as not planned.
—
Reply to this email directly, view it on GitHub
https://github.com/stackblitz/webcontainer-core/issues/773#event-7177172800,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASQJWA2U2KLGIZ4QXLB2QGLVYX6ZVANCNFSM56HKQIGQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Christof Kesselring
Solutions Specialist
https://www.archilogic.com/
@.***
www.archilogic.com
Schedule a meeting with Christof
https://app.hubspot.com/meetings/christof2

Introducing Custom Attributes
We understand that managing a real estate portfolio can be challenging, especially when it comes to keeping track of operational data related to your building digital twins. To help solve this, we developed a new feature that enables you to attach custom attributes to any element in an Archilogic model.
With this feature, you can easily create and manage real estate data that drives your business forward. For example, you can use custom attributes to:

Keep track of operation costs by adding rent or electricity costs for each asset, space, or floor

Manage occupancy with the ability to assign employees or departments to specific assets, spaces, or floors

Keep track of each asset’s unique SKU numbers so you can easily order replacement parts in the future

Control which desks and spaces are reservable for seamless integration with your room booking application

Get Started
(https://ckR3n04.na1.hubspotlinks.com/Ctc/R+113/ckR3n04/MVSKMFlX1F4W3nSqWW4xL8DxVmLt1V4Yx2F-N95jt933l0g5V1-WJV7CgSc6W69k6lm1QH7jDW6N9PfW829f3pW56cbgT6VPG1bW60ctY34N45LyW90tvvh6v5jF7W3vDvMb3hpD6lW7pCq6d7DV1J8W17yXH72lW-PDVDpg5V3-kQG2W6cSydg7-VnghW5KPZ5k3-fVp3W3T4Sxx99BbZ-W7Fs0_P2ykLFNW6nsfJ03_9wHjV22cFf5kv6knW6HslZg2sXhF5N6FCDt0dJ3MVN4dCWzgFshFNW4vfjKY3xJVf5W5CS2wr7ZKj2qW8Q1g9961Zf5tW81ShdY5XZK-bW9971T950rsXhW91VRWb6mhKHHW75wW5p8Mk7p-W3PMc_J8B-Z9t3pL51 )
Learn more
Click here (https://ckR3n04.na1.hubspotlinks.com/Ctc/R+113/ckR3n04/MVSKMFlX1F4W3nSqWW4xL8DxVmLt1V4Yx2F-N95jt9G3l0gJV1-WJV7CgZZMW4DJSKT7r0VwRN1zQSQyqmLyLVbd-1G52t-D9W1GFDBK4ztSrJW38jfrQ712_WxW85KS9N6QBmdmW8DWl_t8L652_W1zjT9T3qm0jKV-fc3C3tZ51LVdvb9m8wqD1HW5Qn1jH813LcrW4yPY044FSvpVW6yqMbJ1p5KzdMVHLSLM5lR9W8Xnq032QPxwjW9k_Ns-2Tl50nW2vBtTg5WfK13W29frJh3HzzhYW8h7Bc38SmVtsW8Xnhxg3SHTpBW35CWq23018sCN9kVBC7y5Ws2W1JSFtK4x-nrWW4LrKPB1-CF8BW2Z1yHz12zwcvW5vXp0H7ZG1CwW2g3pG73PXWJqW2Tx1h45hztL_W4yQH7z6s6_-2W8k5Fts2vqtpK3l5s1 )  to learn more about how you can create and manage custom attributes.
We hope this new feature will reduce the number of manual tracking efforts and streamline your day-to-day workflow.
Whether it’s a bug, feedback, or feature ideas, please let us know at @.*** @.***)  - we’d love to hear from you.
Facebook (https://ckR3n04.na1.hubspotlinks.com/Ctc/R+113/ckR3n04/MVSKMFlX1F4W3nSqWW4xL8DxVmLt1V4Yx2F-N95jt933l0g5V1-WJV7CgR8FW396QbK1VDfnHW14QtLl6FtxzvW4Wyy_C4Frf81W7MFPYd9lSvwTW1JPh3J3NmQYyW66v6hG8kQq86N8PqqQbKxR_lW1KfmMb187GVwV8Gb0g1WWrcrW4Wdq2F4Fyr9FW10C7YF3GbG9lW1hDcr85ZD5TTVC-c7D2TYf-ZW2xN_-32pFC02N1tpLqlbS8VhW8XwCHH2dLPDxN92Z06Cs-RGXW3gb0qW76FLfpW4RwSmD1-2wkXV4jkw197Q5QbN93gqfCtq0PfW7y-wDS1NmPq1W5Kgy_W4RWjczVMFcsL1FNrX0N27VL6yZSLqbN62Vf6b6DjBT3h3_1 )
Twitter (https://ckR3n04.na1.hubspotlinks.com/Ctc/R+113/ckR3n04/MVSKMFlX1F4W3nSqWW4xL8DxVmLt1V4Yx2F-N95jt933l0g5V1-WJV7CgZmGN5YF7pBx21YVW4FPq2F4Wf0RQW8fk4292k36rYW5QwgFD5dsy0nW3P-5Pl5ZxKFTN6Kyhv01L6Q7W606WzW2Jq_3NW88Y5Rt3tl1FdW1HF3RR81RXJJW8LlLPS8mk-L-W589Xy715sCwfW6KPrB44PBFwJW8-gr0m7WrmJDV81yTl93Y3p6W7lzbcz3Np8PlW7101n06npXDbW6PyV-k1P6zBsW3pS3h26SYrHdW3yJzRk9kvfBYW1Zv4b761x9XnW80V82-6fM6rnN12CGM2zpkqLVCRTs694-gm2N3DspvQ-fqgyW9bBp_v8B4k9RW4kfdD88X47NV3c7_1 )
Instagram (https://ckR3n04.na1.hubspotlinks.com/Ctc/R+113/ckR3n04/MVSKMFlX1F4W3nSqWW4xL8DxVmLt1V4Yx2F-N95jt933l0g5V1-WJV7CgYCYW4n1cLl95J8_GW4zt_wP8Rq0lcW6m9X3D6LDNhcW7Rwm0V542kMwW5-r64W5KVlbLW993-ZY1WW4PZW4SqfZ05T6PlbW1DwSV_4p3N-GN1JfTdkJL7xBVTgDfP8lRqV4W2lWZRQ3YmLgnW2zX1Gz6KHsFlW8NzYVj94bBwKW4C-kXj1XL8qHW5F3m9k51H3MVN2yRG1L-J4GGW7-Q5bq1y-kSlW8d4sVW7TKX5PVfQg-06csmxkVmGXHh8CyX37Vhnrrb9hrrF6W89XDyt5tHmXRW8VYp2R1Hrxq_W9fCHpB73xwyFN463k3WjKr51W6_GhxC6gDrJg3fvD1 )
YouTube (https://ckR3n04.na1.hubspotlinks.com/Ctc/R+113/ckR3n04/MVSKMFlX1F4W3nSqWW4xL8DxVmLt1V4Yx2F-N95jt9m3l0gpV1-WJV7CgCD8W10QYnh7RYh30W68y9St3dgw_sW4ZQfY35R4LsyVl_5PZ44nRxzVB4Ytk7rX125W6nplBx68YSc9W4ZqCJx4_r0xdW5GSG1t1WjtPDSRjy7_xjj5W59GwzS3nTlfBW1gzGWM8y9DfqW5mBcpz9jr9BpW72x2fJ1MzHDsMgYCdQSKpGCW1TZdsl1G--CBW8N0r4g4w6MjWW2VBg316ZZTPtW5-k2XS7yz9SMW2W8bJF5GbYs8W3dV1fY8KQjX8V1sDBR1qgLDLW2xTYsN8tYDkBVg6YG_55BT1kW1HKKRF2zWN09W4zrpCJ8R1gB2W7P2qFW1NtDxtW24ngpx9dD4TrW8wrkjD2vyZG138HT1 )
LinkedIn (https://ckR3n04.na1.hubspotlinks.com/Ctc/R+113/ckR3n04/MVSKMFlX1F4W3nSqWW4xL8DxVmLt1V4Yx2F-N95jt9m3l0gpV1-WJV7CgZTnW7Wyxzk6Jyl7hW45TSMh5PFJdnW4N5xJV37yD8BW3tc14l6ywGCfW2fhl0C8cgZf3W6fm8XF3WJGlMN8wQqh2vzJ4LW2D7FZV2gF7L7W6lswcJ76tqgRW7YhXmt2WNW3HW5RhSFT5hthP_W7t9rjZ5SyQ2hW5KQtb8747qS2N1HG8B3QgwzyW63pr6B12LM8jVp5fXd6ZrghvW6Dq2Jp3PBpnKW2MWHZx907ZQMMl5b55FFVQrW8YS9WD1XkL2MW4znZQv5RCS5TW3y0BWt1ZfMqQW89Fgyk7XW470W21JJ1L7L8bs2W8GkStN1SQqQpW2BnQP24TYTPXW4m4ljf6pZyQzN2mPYNJzgfRy35gT1 )
Archilogic, Kanzleistrasse 126, Zurich, Switzerland 8004, Switzerland
Unsubscribe (https://hs-2805374.s.hubspotemail.net/hs/manage-preferences/unsubscribe-all?languagePreference=en&d=VnzSz65L6pPFW2p76LK3-1rCSW4cP1V93yQf6PW3BPbv71SqgqxW47m8SD3P4F9mW3QCFFT3KbsvFW3R0gCB3Q-C_fW3yVRfB45RlhdW3P28X24hCPvhW43T2PP6FCnV8W15gBJz53HFxDW71YPhb6crky2W5BQhJr7445DpVXh4Hf5SBfG4MXk_7QbvW2ZW6jZzBw2HSgbhVtxkXM75gHcJ3d3Y2&v=3&_hsenc=p2ANqtz--vJp3SgzMLFCQjDuenvkUnH9osaiCzEtaVi-3Rgvpq4xV0v037swY0kBlIqCuHlyHamDTyxA52eqPBkewZCKZ2cHsZttMWMZT0STYDzA3sgTEHdbevNlZzuE9YS28uCM4byiS3N0-ryTtvWHJDEStHbXt0rQ&_hsmi=251418364 )
Manage preferences (https://hs-2805374.s.hubspotemail.net/hs/manage-preferences/unsubscribe?languagePreference=en&d=VnzSz65L6pPFW2p76LK3-1rCSW4cP1V93yQf6PW3BPbv71SqgqxW47m8SD3P4F9mW3QCFFT3KbsvFW3R0gCB3Q-C_fW3yVRfB45RlhdW3P28X24hCPvhW43T2PP6FCnV8W15gBJz53HFxDW71YPhb6crky2W5BQhJr7445DpVXh4Hf5SBfG4MXk_7QbvW2ZW6jZzBw2HSgbhVtxkXM75gHcJ3d3Y2&v=3&_hsenc=p2ANqtz--vJp3SgzMLFCQjDuenvkUnH9osaiCzEtaVi-3Rgvpq4xV0v037swY0kBlIqCuHlyHamDTyxA52eqPBkewZCKZ2cHsZttMWMZT0STYDzA3sgTEHdbevNlZzuE9YS28uCM4byiS3N0-ryTtvWHJDEStHbXt0rQ&_hsmi=251418364 )
Copyright 2022 Archilogic AC. All Rights Reserved


Update to hash

https://github.com/ossf/scorecard-action/blob/25e5ca0a67911cbe0bdc55d008768f68716c7df5/starter-workflows/code-scanning/scorecards.yml#L28

@laurentsimon

good point. We're not using the starter-workflow in this repo. I created them to keep a copy from https://github.com/actions/starter-workflows/blob/main/code-scanning/scorecards.yml. I now realize that may be a pain to keep them in sync all the time. Shall we remove them from our repo? wdut?

I think we should remove it.

Can you send a PR for that? I'll LGTM. I'd like to keep track of how to do releases. There's an issue I created with steps to follow that indicate where to update the starter workflows. How about creating a RELEASE.md with those steps?

We shouldn't remove this. Teams are directly using this action https://github.com/google/licensecheck/blob/db1987b6bdd30a6777a02509214b17063deff3c8/.github/workflows/scorecards-analysis.yml#L30

what I mean is that the local file scorecard-action/starter-workflows/code-scanning/scorecards.yml is just a copy of the real file hosted at https://github.com/actions/starter-workflows/blob/main/code-scanning/scorecards.yml
The local copy can be removed without impacting any team.


Switch to tf.keras [WIP]

DONE:

switch to tf.keras and remove keras dependency
upgrade ubuntu dist from 14.04 to 16.04 in CI, as tensorflow 2.0 requires at least 16.04
upgrade setuptools in CI
add keywords param in model.compile to allow users to disable some experimental tf2.0 features
add pytest-xdist plugin to run each test in separate processes using fork (note that fork does not work in Windows)
upgraded pytest to 4.4, as required by pytest-xdist

TODO:

BiMPM and MultiPerspectiveLayer: need refactoring to avoid initializing layers in call, which causes errors with the tf 2.0 default eager mode.
MatchLSTM:  I think tf.layers.LSTM + model.fit/evaluate still have some bugs to fix, see https://github.com/tensorflow/tensorflow/issues/33258. Currently I set experimental_run_tf_function to false as a workaround. However, I still encountered some errors in CI from time to time (randomly happened), while local test is usually OK....

PS: since there is no 2.3 dev branch, the current PR base is the master branch.

@matthew-z I cleaned up all the archived branches, please send future pr to 2.3-dev.


Large tokens make the UI way out of position

While experimenting with extremely large tokens for Spelljamming ships, the scaler causes the HUD to be way out of position and most of it to be off screen entirely:

That is the size I would like the HUD to be, but it is just in the wrong spot

Can you provide me with the specific settings you are using for both the token (specifically the "Appearance" tab) and for the Token Hud Scaler module? (screenshots of those two settings windows are fine)
Also, please answer these questions...
Foundry Versions

Version of this module:
Foundry Version:
System Name and Version:
Browser Name and Version:

What other modules did you have active when experiencing this issue (include both names and versions)?
Tidy UI Game Settings (NOT Illandril's Tidy Module Settings) provides an Export option that makes getting this list easy.

Can you provide me with the specific settings you are using for both the token (specifically the "Appearance" tab) and for the Token Hud Scaler module? (screenshots of those two settings windows are fine)

Also, please answer these questions...
Foundry Versions

Version of this module:

Foundry Version:
System Name and Version:

Browser Name and Version:
Tried in both Chrome (Version 104.0.5112.81 (Official Build) (64-bit)) and Edge (Version 104.0.1293.47 (Official build) (64-bit))

What other modules did you have active when experiencing this issue (include both names and versions)? Tidy UI Game Settings (NOT Illandril's Tidy Module Settings) provides an Export option that makes getting this list easy.
I took the screenshot with other modules enabled but I disabled them all and attempted it again with the same effect. So other modules are not affecting the behavior.

I still want to know what other modules you were using that were changing what ends up in the HUD, to make sure any change I make doesn't break those modules.
The way the HUD works is there are three columns, with the middle column taking up the same width as the token.
The middle column is split into three rows, with the middle row taking up the same height as the token.
This layout of the HUD and this "Token Size" spacing are all part of Foundry itself.
You are experiencing two separate issues...

The HUD isn't centered on the token (a bug in my HUD position adjustment logic in some scenarios)
The HUD spacing being based on the token size isn't natural or desirable when the HUD doesn't scale based on the scale of the token (for smaller tokens, this strange spacing isn't a big deal, because it's still reasonably close... but as the token gets larger, that difference in spacing becomes more and more obvious)

Fixing issue 1 should be fairly trivial, but fixing just that would actually make things worse for you (because the first resource bar, which you're using for health, would also be really far from the token... though the second resource bar, which would currently off the screen for you if you had it on, would be close enough to actually be visible).
Fixing issue 2 will be trickier because lots of other modules mess with the contents of the HUD. If I change how big the HUD is relative to the token, that could break those other modules if any of them were positioning content based on the default HUD sizing logic.

moduleList.txt
Here's my module list renamed from .json to .txt

Thanks. I might have enough time to work on a fix this weekend (but no promises).

Note: This issue is fixed in the version of Illandril's Token HUD Scaler that supports v10 of FoundryVTT.
I recommend waiting until v10 is released, and all the modules you use have been updated to support v10 before updating.


[v6 RC] Missing quotes in InitColorSchemeScript.tsx

Steps to reproduce
Link to live example: https://stackblitz.com/edit/github-xk9wmf?file=src%2FApp.tsx
Steps:

Right-click and inspect the site preview on the right, and look for the <script> tag under <div id="app">. You should see that on the second-last line of the script, there is a bare %s with no quotes around it. This throws a SyntaxError in my browser.

Current behavior
No response
Expected behavior
No response
Context
https://github.com/mui/material-ui/blob/9f4b846be96ee18733b6bd77eba2f54b1ceb9b04/packages/mui-system/src/InitColorSchemeScript/InitColorSchemeScript.tsx#L81
needs to have quotes around ${value}.
Your environment
System:
OS: macOS 14.6.1
Binaries:
Node: 18.19.1 - ~/.asdf/installs/nodejs/18.19.1/bin/node
npm: 10.2.4 - ~/.asdf/plugins/nodejs/shims/npm
pnpm: 9.7.1 - ~/.asdf/installs/nodejs/18.19.1/bin/pnpm
Browsers:
Chrome: 127.0.6533.120
Edge: Not Found
Safari: 17.6
npmPackages:
@emotion/react: 11.13.3 => 11.13.3
@emotion/styled: 11.13.0 => 11.13.0
@mui/icons-material: 6.0.0-rc.0 => 6.0.0-rc.0
@mui/lab: 6.0.0-beta.7 => 6.0.0-beta.7
@mui/material: 6.0.0-rc.0 => 6.0.0-rc.0
@mui/system: 6.0.0-rc.0 => 6.0.0-rc.0
@mui/x-data-grid: 7.14.0 => 7.14.0
@mui/x-date-pickers: 7.14.0 => 7.14.0
@mui/x-tree-view: 7.14.0 => 7.14.0
@types/react: 18.3.4 => 18.3.4
react: 18.3.1 => 18.3.1
react-dom: 18.3.1 => 18.3.1
typescript: ^5.2.2 => 5.3.2
Search keywords: css variables, InitColorSchemeScript, %s

I think this is not a bug (may be a documentation improvement). You missed the single quote '%s':
-<InitColorSchemeScript attribute="[data-color-scheme=%s]" />
+<InitColorSchemeScript attribute="[data-color-scheme='%s']" />

The correct syntax for attribute selector should have a single quote of double quote https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors

@siriwatknp But this isn't valid JavaScript, it crashes, no?
(function() {
try {
  var mode = localStorage.getItem('mui-mode') || 'system';
  var colorScheme = '';
  var dark = localStorage.getItem('mui-color-scheme-dark') || 'dark';
  var light = localStorage.getItem('mui-color-scheme-light') || 'light';
  if (mode === 'system') {
    // handle system mode
    var mql = window.matchMedia('(prefers-color-scheme: dark)');
    if (mql.matches) {
      colorScheme = dark
    } else {
      colorScheme = light
    }
  }
  if (mode === 'light') {
    colorScheme = light;
  }
  if (mode === 'dark') {
    colorScheme = dark;
  }
  if (colorScheme) {

      document.documentElement.setAttribute('data-color-scheme'.replace('%s', colorScheme), %s.replace('%s', colorScheme));
  }
} catch(e){}})();

Ah okay. I was going off of the comment on this line: https://github.com/mui/material-ui/blob/9f4b846be96ee18733b6bd77eba2f54b1ceb9b04/packages/mui-system/src/InitColorSchemeScript/InitColorSchemeScript.tsx#L73
Also, @oliviertassinari it is mentioned in the docs page you linked, you just have to click on the little tabs here:

But yeah it took me quite a while before I found that.

you have to click on the little tabs here:

@brandongit2 Oh, I didn't know.
#plea let's change this, I don't see it working to have to to click to find meaningful docs content, it should be scrollable / searchable.


HSEARCH-2193 LuceneBackendQueueTask does not release the Directory lock on update failures.

see https://hibernate.atlassian.net/browse/HSEARCH-2193

Can one of the admins add this person to the trusted builders? (reply with: "add to whitelist" or "ok to test")

ok to test

add to whitelist

@s4ke looks like you're reviewing this already? I'll assign the PR to you.
It looks good to me, thanks @golovnin !
@s4ke could you backport it to 5.5 too, assuming it is affected as well and update JIRA accordingly?


Vulkan: make ReadPixels synchronous.

This makes it so that the PixelBufferDescriptor callback triggers at a time consistent with other backends.

NOTE: The PR title is a little misleading; ReadPixels is still asynchronous in the sense that the callback is triggered on the main thread.  The only difference is that it is now guaranteed to trigger by the time the following flushAndWait() is invokes, which is consistent with the expectations of some of Google's automated tests.