Do not allow config settings to be changed if not explicitly tagged

Motivation
The code to parse the config file is missing IgnoreUntaggedFields that I believe should be set:

We do have a lot of config parameters that are overwritten with other values during startup:

config.Tortoise.LayerSize: always overwritten by config.LayerAvgSize
config.P2P.DataDir: always overwritten by filepath.Join(config.DataDir(), "p2p")
config.P2P.LogLevel: always overwritten by config.Logging.P2PLoggerLevel
config.Certificate.CertifyThreshold: always overwritten by config.Certificate.CommitteeSize/2 + 1
config.Certificate.LayerBuffer: always overwritten by config.Tortoise.Zdist
config.Certificate.NumLayersToKeep: always overwritten by config.Tortoise.Zdist * 2
config.Bootstrap.DataDir: always overwritten by config.DataDirParent
config.Bootstrap.Interval: always overwritten by config.LayerDuration / 5
config.Sync.HareDelayLayers: always overwritten by config.Tortoise.Zdist
config.Sync.SyncCertDistance: always overwritten by app.Config.Tortoise.Hdist
config.Sync.Standalone: always overwritten by app.Config.Standalone

For the remaining untagged fields I added mapstructure tags with the same name as the fields name to keep backwards compatibility

arguably most of them probably shouldn't be configured and we should just not allow setting them via the config file
but to not break existing setups (which I don't think exist 😉 ) I added tags to those fields

Changes

add IgnoreUntaggedFields to config parse settings
tagged possibly used fields to keep backwards compatibility with existing setups

Test Plan

existing tests pass

TODO

[x] Explain motivation or link existing issue(s)
[x] Test changes and document test plan
[x] Update documentation as needed
[x] Update changelog as needed

Unfortunately ErrorUnused is not compatible with the way how we parse a configuration file so I removed it from the PR again.

Unfortunately ErrorUnused and ErrorUnset are not compatible with the way how we parse a configuration file (will cause parsing to fail when a preset is used). So I removed them again.

The ErrorUnused won't work because of the way the CLI arguments are bound to Viper here https://github.com/spacemeshos/go-spacemesh/blob/dd5afe53faa447958b1db47266d051a2c7a28fcd/cmd/root.go#L331. It reports all bound flags as unused.

bors merge

bors merge

bors merge


Can't launch de Windows .exe

Hi,
Thanks for the hard work!
When I try to launch the application but nothing's happen except a 0.5 second cmd prompt that stop immediately.
Do I have to install something or configure something before launching it?
Thanks in advance.

+1

Hi,
I have no idea what it could be!

You don't get any error message ?
What version of Windows are you using? 64 bit version ?
You have to add the path of an existing folder just after the executable, and this folder has to be in the right format.
→ https://raw.githubusercontent.com/wiki/jersou/studio-pack-generator/img/04.webp
→https://github.com/jersou/studio-pack-generator#story-folder-structure
You use this version ? → https://github.com/jersou/studio-pack-generator/releases/download/v0.1.17/studio-pack-generator-x86_64-windows.zip
a tutorial in french (not by me, thanks iinul) : https://youtu.be/rzc8txH-jjA?t=344


Error running - System.TypeLoadException Invalid type SMSaml2HandlerPrivate for instance field Microsoft.IdentityModel.Tokens.Saml2SecurityTokenHandler:_smSaml2HandlerPrivateNeverSetAnyProperties

Hi,
I cloned the repository and am running on Visual Studio 2017 on Mac. I did nuget restore. I changed the Tenant and ClientID to match the test tenant. I am getting the following error when running. Could I get any assistance or breadcrumbs to trace further?
System.TypeLoadException
Invalid type SMSaml2HandlerPrivate for instance field Microsoft.IdentityModel.Tokens.Saml2SecurityTokenHandler:_smSaml2HandlerPrivateNeverSetAnyProperties
Description: HTTP 500.Error processing request.
Details: Non-web exception. Exception origin (name of application or object): Microsoft.Owin.Security.OpenIdConnect.
Exception stack trace:
at Microsoft.Owin.Security.OpenIdConnect.OpenIdConnectAuthenticationMiddleware..ctor (Microsoft.Owin.OwinMiddleware next, Owin.IAppBuilder app, Microsoft.Owin.Security.OpenIdConnect.OpenIdConnectAuthenticationOptions options) [0x000a9] in <9676ab1309794b2396c9d7c8ad23a538>:0
at (wrapper dynamic-method) System.Object.lambda_method(System.Runtime.CompilerServices.Closure,Microsoft.Owin.OwinMiddleware,Owin.IAppBuilder,Microsoft.Owin.Security.OpenIdConnect.OpenIdConnectAuthenticationOptions)
at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in /Users/builder/jenkins/workspace/build-package-osx-mono/2017-12/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.Reflection/MonoMethod.cs:305

Are you working with a SAML federation provider? Please check to ensure that the location of the SAML metadata and its contents are correct.

Was under the impression it was OWIN/OpenID. Where would I check for SAML?

Thank you. I was able to clone and run on visual studio 2017 on windows and the sample worked within expectations. Is visual studio 2017 on Mac supported(let me know any feedback if this is an incorrect expectation with the open model). I attempted to debug and increased version levels of packaged and .net framework but was unable to converge. Could someone more knowledgeable than I run with the configuration visual studio 2017 on Mac and let me know feedback?

Same problem here on an existing asp.net web app which runs fine on Windows. Spits out the following in the browser:

System.TypeLoadException
Invalid type SMSaml2HandlerPrivate for instance field Microsoft.IdentityModel.Tokens.Saml2SecurityTokenHandler:_smSaml2HandlerPrivateNeverSetAnyProperties
Description: HTTP 500.Error processing request.
Details: Non-web exception.
Exception stack trace:
at (wrapper managed-to-native) System.RuntimeTypeHandle.is_subclass_of(intptr,intptr)
at System.RuntimeTypeHandle.IsSubclassOf (System.RuntimeType childType, System.RuntimeType baseType) [0x00016] in <4a0b6dd9ebd3408fbb54c3705bf639e9>:0
at System.RuntimeType.IsSubclassOf (System.Type type) [0x00020] in <4a0b6dd9ebd3408fbb54c3705bf639e9>:0
at System.RuntimeType.IsValueTypeImpl () [0x00026] in <4a0b6dd9ebd3408fbb54c3705bf639e9>:0
at System.Type.get_IsValueType () [0x00000] in <4a0b6dd9ebd3408fbb54c3705bf639e9>:0
at System.Type.get_IsClass () [0x0000b] in <4a0b6dd9ebd3408fbb54c3705bf639e9>:0
at System.Web.Mvc.TypeCacheUtil.TypeIsPublicClass (System.Type type) [0x00011] in :0
at System.Web.Mvc.TypeCacheUtil+<>c__DisplayClass1.b__0 (System.Type type) [0x00000] in :0
at System.Linq.Enumerable+WhereEnumerableIterator1[TSource].ToList () [0x0001b] in <7505d9a21cfc4fc7b41cb4768918fdb4>:0    at System.Linq.Enumerable.ToList[TSource] (System.Collections.Generic.IEnumerable1[T] source) [0x0001f] in <7505d9a21cfc4fc7b41cb4768918fdb4>:0
at System.Web.Mvc.TypeCacheUtil.GetFilteredTypesFromAssemblies (System.String cacheName, System.Predicate`1[T] predicate, System.Web.Mvc.IBuildManager buildManager) [0x0001c] in :0
at System.Web.Mvc.ControllerTypeCache.EnsureInitialized (System.Web.Mvc.IBuildManager buildManager) [0x0002b] in :0
at System.Web.Mvc.DefaultControllerFactory.GetControllerTypes () [0x0000c] in :0
at System.Web.Mvc.Routing.AttributeRoutingMapper.MapAttributeRoutes (System.Web.Routing.RouteCollection routes, System.Web.Mvc.Routing.IInlineConstraintResolver constraintResolver, System.Web.Mvc.Routing.IDirectRouteProvider directRouteProvider) [0x00056] in :0
at System.Web.Mvc.Routing.AttributeRoutingMapper.MapAttributeRoutes (System.Web.Routing.RouteCollection routes, System.Web.Mvc.Routing.IInlineConstraintResolver constraintResolver) [0x00023] in :0
at System.Web.Mvc.RouteCollectionAttributeRoutingExtensions.MapMvcAttributeRoutes (System.Web.Routing.RouteCollection routes) [0x00014] in :0
at Saksbehandler.RouteConfig.RegisterRoutes (System.Web.Routing.RouteCollection routes) [0x0000d] in :0
at Saksbehandler.MvcApplication.Application_Start () [0x00029] in :0
at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0003b] in <4a0b6dd9ebd3408fbb54c3705bf639e9>:0
Version Information: <IP_ADDRESS> (2018-06/910395a05f6 Thu Sep 27 11:30:06 EDT 2018); ASP.NET Version: 4.0.30319.42000
Powered by Mono

I was wanting to recommit but have not had time and not quit sure all the policies. If you upgrade to ASP.Net Core and correct all dependencies it should compile

@brentschmaltz @mafurman  : FYI. Is it a known issue?

@jmprieur I have not seen this before. This looks like perhaps an extension property as Saml2HandlerPrivateNeverSetAnyPropeties is not a property on m.im.tokens.saml2securitytokenhandler


Rework auth to include scopes as well as groups

The previous setup was originally meant for a very simple auth scheme. We now need a bit more granularity, since a set of groups only allows us to do things at a mostly global level for permissioning.
This PR initially refactors the authorization helper to an interface with a groups as well as a groups+scopes implementation. Still TODO:

[x] Actually write the groups + scopes authorizer
[x] Unit tests for ^^
[x] Wire up an operation mode for the groups and scopes authorizer or additional implementation that logs one and falls back to the other. Ideally we could do something like be able to run the new code and old code at once and just log if they are different. This may or may not be possible easily since they would have separate api endpoints for webhooks

cc @pschoenfelder

@pschoenfelder mind taking a look on this one? Biggest open question I have is if we should keep the defaultReadOnlyGroups config around or not. Need to check if our setup is creating requests with top level groups as the default read only, or if Singularity is adding that right now. Not sure if we want that default behavior to be that permissive (though it is current I guess)

Looks good to me. Nice unit tests 👍 Always happy to see that. As far as removing defaultReadOnlyGroups goes, I would lean towards keeping it, at least for now while these changes get rolled out.

Bug in here somewhere still, dual authorizer returned all 401s on staging

🚢


[bug]: Select removes scrollbar

Describe the bug
When using a select somewhere and the body has a scrollbar, this scrollbar gets removed as soon as the select is used.

Affected component/components
Select
How to reproduce

Give the body a scrollbar
Add a Select
Open the Select

Codesandbox/StackBlitz link
No response
Logs
No response
System Info
Chrome

Before submitting

[X] I've made research efforts and searched the documentation
[X] I've searched for existing issues

Hey I have a similar issue, where i cant scroll the content, any idea as to why that is ?

Hey friends 👋
This seems to be a known feature of the Radix UI select component.  See this comment from a similar issue raised for Radix UI.
One thing you can try is using a popover instead of a select! 😄

Can you provide me exact path of the page where you find the issue.

Can you provide me exact path of the page where you find the issue.

You just add a select to any project and open it, you see your scrollbar dissappearing

yeah am having the same issue
how to make the scrollbar visible when the shadcnui select component is clicked on

I found a solution, but I don't know if it's the right way..
/* global.css */
  html body[data-scroll-locked] {
    --removed-body-scroll-bar-size: 0 !important;
    margin-right: 0 !important;
  }

Depending on your layout you'll need to add additional classes from react-remove-scroll-bar
 which is used internally for the radix-ui/primitives.
I needed to add the fullWidthClassName to my "main div" (the first child after the router outlet).
See also: https://github.com/radix-ui/primitives/discussions/1586#discussioncomment-3302669

/* global.css */
  html body[data-scroll-locked] {
    overflow: visible !important;
    margin-right: 0 !important;
  }

This one worked for me - no layout shift and scroll still visible

it doesnt fixed yet?
select is a very usefull and this bug is make the whole package useless...


[Feature Request] Onion service for tor network

Is your feature request related to a problem? Please describe.
We need an onion service for odysee, it would greatly benefit users privacy. If that's what you guys still care about... https://lemmy.ml/post/116308
Describe the solution you'd like
We would like a to see an v3 onion website for tor network users to be able to access and watch odysee content
Describe alternatives you've considered
There is no alternatives
Additional context
None

We don't plan to work on this, but others are free to try.


Integrate Timex Ecto

From what I have read and understood, we want to use Timex for all time-related stuff in our little project. So we should also use this: https://github.com/bitwalker/timex_ecto
@bitwalker could you give some input on this: Is it really "just" adding Timex.Ecto.DateTime to the schemas and model in Phoenix?

@rrrene Yep! I created some nicer docs here that talk about using it in depth. The only real caveat is if you choose to use the Timex.Ecto.DateTimeWithTimezone type, which requires you to run a CREATE TYPE command in postgres in order to use it (I just realized I need to cover that in the Timex docs as well, as it's only detailed in the timex_ecto readme). That type is only really important when you need to store timezone information with the datetime though, and since I doubt that's really relevant for this application, Timex.Ecto.DateTime should be all you need, as it stores the datetime as UTC (it will be localized within postgres due to the way postgres works, but when read it will be treated as UTC).

Ah, I just saw that you are using MySQL for the time being, so be aware of the fact that Timex.Ecto.DateTimeWithTimezone is not supported (at least until MySQL supports user-defined types). If you need to persist timezone information, you can work around it by using Timex.Ecto.DateTime and then the timezone name as a string column, and then just provide a function (effectively a calculated property) which shifts the datetime value to the timezone stored in that column. As I mentioned above though, I don't think you'll need to use anything other than UTC on the backend anyway.

Thanks for the pointers. It was really straight-forward! :+1:


KAFKA-14822: Allow restricting File and Directory ConfigProviders to specific paths

This PR implements KIP-993 for restricting files accessed by File and Directory ConfigProviders.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

I came up with another path traversal, but this one is less severe.
If you try to get /arbitrary/path/../../<tmpdir>/dir/dirFile you can perform "exists" and "isDirectory" checks for /arbitrary/path depending on the error returned.
(edit): This attack isn't reproducible in the tests, because they mock out reader(Path) 🙃
This would allow an attacker to map out the whole filesystem and permissions of the current process. This could inform another attack, such as: finding vulnerable software, finding user accounts, finding active processes, etc.
This attack works because the normalized form is used in pathIsAllowed(), but the non-normalized form is used in the actual read. I think we need to make it so that the normalized path is used instead of the given path.
I noticed this caveat in the documentation for Path.normalize:

This method does not access the file system; the path may not locate a file that exists. Eliminating ".." and a preceding name from a path may result in the path that locates a different file than the original path. This can arise when the preceding name is a symbolic link.

I think this would cause a backwards-incompatible change if we were to apply it in the default case, so we should only use the normalized form when allowed.paths is specified.
I tried and failed to come up with a arbitrary file-read attack using the symlink behavior. If the symlink is within the allowed-paths (and possibly lets the user escape the allowed-paths) it should probably work normally. If the symlink is outside of the allowed paths, we can exploit it with the same prefixing attack from above, but the allowed part of the path prevents actually reading arbitrary files. Regardless, I think that using the normalized form for file accesses prevents accessing external symlinks completely.
Thanks so much for working on this feature!

Thank you very much @gharris1727 for the detailed comment on this issue. These are really good points and I agree, I hadn't put enough thoughts into this.
I took the suggestions and updated it to use the normalisedPath in the actual read when allowed.paths is specified. Please let me know what you think.
I also tried addressing your other comments. Thank you for reviewing the PR.

Thanks for the PR. I made a second quick pass and left a few more comments.

@mimaison Thank you very much for reviewing the PR again. I think I addressed your comments except the one I had a question on. Please let me know if I missed anything. Thanks.

@tinaselenge We can continue with the current design for KIP-993, it shouldn't need to change.

None of the test failures seem related, merging to trunk


README.md: fixed missing ampersand

fixed missing ampersand in order to be able to compile for example code

Thank you!


encryption: fix key collision issue in tablet snapshot

What is changed and how it works?
Issue Number: Close #15059
What's Changed:
- Properly clean up encryption keys when cleaning up snapshot cache file.
- Allow overwriting stale encryption keys when importing remote keys.

Related changes
Check List
Tests

Unit test

Release note
None

/merge

/merge


Improve the HTML code of the NFT

Currently, the HTML code of the NFT is just implemented as a simple prototype and looks ugly. The goal of this issue is to come up with a good-looking design.

Sync with the ui-ux channel in Discord for the latest design on the website
Sync in Discord regarding the latest concept of the badges
Implement a better-looking version of the HTML
Update the preview image nft.png

Not needed after switching to SVG rendering


feat: Add manufacture_data django command

Description:
This change migrates the manufacture_data django command introduced in https://github.com/openedx/edx-enterprise/pull/1826 to where it can be used outside of the enterprise ecosystem.
JIRA
ENT-7636
Dependencies:
List dependencies on other outstanding PRs, issues, etc.
Merge deadline:
List merge deadline (if any)
Installation instructions:
List any non-trivial installation
instructions.
Testing instructions:

Open page A
Do thing B
Expect C to happen
If D happened instead - check failed.

Reviewers:

[ ] tag reviewer

Merge checklist:

[ ] All reviewers approved
[ ] CI build is green
[ ] Version bumped
[ ] Changelog record added
[ ] Documentation updated (not only docstrings)
[ ] Commits are squashed

Post merge:

[ ] Create a tag
[ ] Check new version is pushed to PyPi after tag-triggered build is
finished.
[ ] Delete working branch (if not needed anymore)

Author concerns:
List any concerns about this PR - inelegant
solutions, hacks, quick-and-dirty implementations, concerns about
migrations, etc.

Hello @marlonkeating. I know this is just a draft. I'm going to check in with arch-bom about the planned how and where for developer data.


MIDI device different name

This device here: https://github.com/mtrudel/beats/blob/6edf532bc02f2625190cbcb7f99a09fc6f58c5fd/lib/beats/output.ex#L17
has been renamed to IAC Driver Bus 1
Renaming it fixes the error :invalid_device_id.
Note that I'm running on macOS Sonoma btw.
I believe this device have to be enabled as well: https://support.apple.com/en-my/guide/audio-midi-setup/ams1013/mac

I also had to start with iex -S mix because the release shows this error
** (FunctionClauseError) no function clause matching in Beats.Conductor.handle_info/2


Implement a loading script generator.

See #1613. This is a new PR against the v3 branch.
As I don't know when I can continue this, here is a start for
https://github.com/fsprojects/Paket/issues/1593
https://github.com/fsprojects/Paket/issues/677
instead of https://github.com/fsprojects/Paket/pull/702 we resolve everything our-self. I don't know when I can finish this so here is what I have for now.
I think it works for Deedle for now...
Todo:

[x] Handle dependencies within the package
[x] Handle Framework dependencies?
[x] Test the code
[x] Add Mono.Cecil to ILMerge list
[x] Integrate in Paket or a separate project
[x] Rebase and remove "fix failing test case" commit -> https://github.com/fsprojects/Paket/pull/1644
[ ] Create documentation for this
[ ] Create Issue/PR/Feature-Request for top level include scripts (for a group)
[ ] Create Issue/PR/Feature-Request for generating include scripts on restore

@smoothdeveloper I rebased against the latest v3 branch and created a new generate_scripts_v3 branch.

Ok I did another round of changes. I think this is now more or less feature complete (at least how I imagined it).
As a small bonus I added a script generator for C# scripts as well.
One minor thing are probably framework assemblies, but when this hits someone it shouldn't be too difficult to add.
@forki how should we integrate this feature?
Into paket.core and generating scripts for all defined frameworks on 'restore' (= all if user has no framework restrictions)? As a separate command? On top of paket as a separate tool (executed via FAKE)?
@smoothdeveloper Feel free to submit further changes and thank you for the help. Sorry if you have some open changes, as now you probably have a lot of merge conflicts ...

@matthid: thanks for pushing :)
Seems you got rid of QuickGraph and figured out a way with just Mono.Cecil, sounds great.
I'm not sure we want scripts generated on paket restore, seems nice but not all users want include scripts (do they?).
I'm also not sure about the location and naming of scripts, the code should also be more resilient to such adjustments, also maybe it is better to give end user option for alternative location for the scripts to be generated?.
@forki: is it ok to add Mono.Cecil (274kb)?

@matthid, we might need to deal with native binaries also, one example I found is SkiaSharp nuget package has native dll file under build/x86 and build/x64, in F# either of those directories should be included with #I directive.
I'm not sure yet if paket handle those files properly in terms of putting such a dependency in paket.references but I assume it does.

we might need to deal with native binaries

I have no idea. But it is likely that (if paket can handle those binaries) we can re-use something from the InstallModel class to get the required infos. If not I would say it's a paket limitation and nothing we need to figure out as part of this PR?

I'm getting on top of changes right now, will update the PR shortly today.

@matthid, I've made a bunch of changes, please check it out, I think it looks great.
I've tried it out on few repositories using paket and it seems to be doing great for a first take at this :smile:

@matthid I think we need to to work on those points:

ponder on the case where no assembly nor dependent script is going to land in the script (see include.fsharp.core.fsx)
figure out the exception when we run the code on Paket working copy itself and find a way to recover from it to generate what can be generated
handle the error cases because packages, files are not restored, existing

@forki how do you forsee integrating this into the main tool (we need only mono.cecil now)

Currently I'm focused on other stuff but I don't mind to depend on Cecil.
(tbh I had another use case in mind that would also depend on Cecil, but no
time for that right now)
On Apr 19, 2016 11:36 PM, "Gauthier Segay"<EMAIL_ADDRESS>wrote:

@matthid https://github.com/matthid I think we need to to work on those
points:

ponder on the case where no assembly nor dependent script is going
to land in the script (see include.fsharp.core.fsx)
figure out the exception when we run the code on Paket working copy
itself and find a way to recover from it to generate what can be generated
handle the error cases because packages, files are not restored,
existing

@forki https://github.com/forki how do you forsee integrating this into
the main tool (we need only mono.cecil now)
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/fsprojects/Paket/pull/1619#issuecomment-212139729

the case where no assembly nor dependent script is going to land in the script (see include.fsharp.core.fsx)

I see this more like cosmetics, can be fixed later if people have problems with it. Removing would complicate some things at this point.

errors / exception

If we cannot create one script we cannot really create any scripts that depend on it... or we just keep going.
We should just let it fail and write the raw problem to the output (and continue whatever paket was doing). People will complain and we can fix issues as they pop up.
Or did you mean something else?

By the way a good set of changes, thanks. You really like the System.IO classes ;) I somehow never find them usable, but thats probably just me :)

@forki

I don't mind to depend on Cecil.

Awesome :smile:
@matthid

It doesn't feel 'right' that the generator has to call the installmodel. Instead this type should contain all the results (for example the list of references instead of the installmodel). What do you think?

yes the overall structure didn't feel natural before I did last change, and I don't think I improved it much, we should work on making the code feel nice and simple.
Maybe we also need some integration testing, not clear yet but I'll give a look at how we can do that in current set of integration tests which have great infrastructure.

I see this more like cosmetics, can be fixed later if people have problems with it. Removing would complicate some things at this point.

Good point

If we cannot create one script we cannot really create any scripts that depend on it... or we just keep going.

We should generate other scripts in other branches of the dependency tree, not sure how easy that is but sounds achievable and useful.

We should just let it fail and write the raw problem to the output (and continue whatever paket was doing). People will complain and we can fix issues as they pop up.

Yes we need to see what happens from user perspective.
Also, what do we intend end user to do?

You really like the System.IO classes

They just make things a bit more obvious, otherwise I always wonder is this a folder, a file, etc. They incur a bit of noise (.FullName) but also reduce it (get name, get parent, etc.), better guarantees IMHO.

@matthid, I've restored better integration points to pass higher order function for:

custom script generators
script file location resolution.

I'm thinking of tackling writing some crude test, and in order to do so, leverage some of the existing integration test cases.
I'll add a ScriptGenerationTests module in the integration tests project and see how it goes.

Some points came up on slack:
It would be great to have a paket.dependencies flag to enable script generation. something like generate_scripts: on that could be placed at a global, group, or individual package level, like all the other options.
Also, has there been any consideration to restoring/generating the scripts on paket restore? The use case I'm thinking of is a build server/CI/FAKE script flow where

ci Server clones repo
ci server calls build(.bat/.ps1/sh)
ci server invokes FAKE with script
FAKE script #load script includes.

This isn't a deal-breaker, because it's easy enough to have the bat/ps1/s script call the generate-scripts functionality, but it may be nice.

My biggest concern with the generate_scripts in the dependencies file is that implies the options state being added to the lockfile, and I'm not sure that we're in the habit of adding non-dependencies-related information to the lockfile.  I could be persuaded to drop that whole line of investigation :smiley:

@smoothdeveloper Yes that all sounds great. I might be able to take a closer look, handle framework dependencies and write some tests on the weekend :)
@baronfel good idea with the paket.dependencies configuration. And I agree if we include this in paket we should probably generate the scripts on restore.

@matthid I've done work in the dependencies and lock file parsers before.  If you decide to go that route I'd be glad to tackle that if you're busy doing other things.

@baronfel good point. well we didn't do any integration at this point. because nothing felt really clean ... any suggestion/concern is welcome

@matthid I think the code should now go right into Paket.Core, could you make that happen so I'm not stomping on files being moved?
Once this is done I intend to look at adding a generate-include-scripts command line to paket.exe and do some work on integration tests.

@matthid I've added generate-include-scripts command in main executable, right now it should only be called if packages are already installed, I think we need some error handling otherwise and I'll be checking for similar checks in other commands.
@forki there is some crude framework detection going on in the code I've added, I think to keep in in this command only for now as it is very rough, but would appreciate if there is any pointer in paket codebase dealing with those aspects.

@smoothdeveloper I added framework-dependencies and moved the thing to paket.core, but I guess you already saw that :) .

@matthid thanks I overlooked framework dependencies, will pay a look at how it works, thanks for cleaning a bit the mess in ScriptGeneration.fs :)

@baronfel wondering if you could give a shot at adding failing or passing integration tests for things you find relevant?
I've added two tests in integrationtests\Paket.IntegrationTests\LoadingScriptGenerationTests.fs.

Sure, I've got some time this afternoon, so I'd love to take a poke around.

Found an issue with generating a build script for FAKE, looking into cause/making a test right now.
Also found that we need to add Mono.Cecil to the list of ILMerged assemblies, or else merged Paket exe that is created fails to run.  I can send that fix up as a separate commit if you grant me push privileges to your branch, @matthid.
I also have implemented a syntax for choosing the type of script to create (fsx/csx).
I have added lots of doc comments on pre-existing paket types.
It seems like there may be some low-hanging fruit in terms of parallelizing the script generation.  It's not taking too long to generate them now, but if folks complain it might be cool to look into that.

Yep that all sounds very nice to me! Gave you all the permissions :)
The current state looks pretty cool, thank you all for the help :+1:
Anyone an Idea why the integration tests are failing right now?

seems we should wait for #1639 to be merged and rebase here adding mono.cecil to the list.

@baronfel @smoothdeveloper I have no Idea why but it doesn't build via FAKE anymore. However when building with VisualStudio it works. Might be a compiler bug? AppVeyor says it started to fail with https://github.com/fsprojects/Paket/pull/1619/commits/4fa34e2d821163a637f5a0e9c31e29d7fae824c4
  C:\projects\paket\src\Paket\Program.fs(360,27): error FS0971: Undefined value 'scriptTypesToGenerate : ScriptType list' [C:\projects\paket\src\Paket\Paket.fsproj]

But this looks bogus to me.
One more thing: IMHO when no framework is given in command-line we should just generate scripts for all frameworks (like paket adds conditional references for all frameworks when no restriction list is given). Should I try to add that?

The error looks very much like this: https://github.com/Microsoft/visualfsharp/pull/742.
First question is: Do we use different compilers when compiling from VisualStudio vs FAKE?
Second: Should we add the workaround from https://github.com/Microsoft/visualfsharp/issues/759#issuecomment-162243299

Ok nevermind: This comment (https://github.com/Microsoft/visualfsharp/issues/759#issue-120283143) says it only happens in release mode. If you switch in VisualStudio to release mode it is failing there as well :D. Funny.

One more thing: IMHO when no framework is given in command-line we should just generate scripts for all frameworks (like paket adds conditional references for all frameworks when no restriction list is given). Should I try to add that?

I was wondering what is the point of generating .fsx for platforms such as xamarinios or xamarinandroid.
This will anyways be better than generating for current runtime only (with poor detection at that).

I've looked a bit at native dependencies, right now on project level paket.references it works through Paket.Reference.TargetsFile.
Since it is msbuild stuff and we can't reasonably parse the .targets on our own to figure how to add reference, I think it would be a good idea to output maybe a warning saying that the folder with native dependency should be #I manually before including this dependency.
Should I make an attempt at that (for .fsx only, I think .csx doesn't support #I)

I was wondering what is the point of generating .fsx for platforms such as xamarinios or xamarinandroid.

An app might use that some day :). You are right of course. On the other side the include scripts are quite small so they shouldn't be so much overhead even when we generate them for all platforms (you can always specify your platforms to restrict the list if you don't want all).
One point is of course if at least one package doesn't really support a given platform. But I'm not sure if we can detect this case easily... Generating only for the platforms which are supported by all the packages in the group might be preferable....

One point is of course if at least one package doesn't really support a given platform. But I'm not sure if we can detect this case easily... Generating only for the platforms which are supported by all the packages in the group might be preferable....

In Nuspec.fs there is FrameworkAssemblyReference which has FrameworkRestrictions member. I think there might be a way to not generate the script, we could also see the number of dll files to be added but that implies checking the whole reference graph for given package before generating any script.
It would still be a good idea to print something else than "Loaded package" when there is no assembly loaded.

Found out my issue with FAKE's script file generation:  FAKE bundles its library in a targetframework-independent way.  it only has one version of every dependency it takes on, and they are all bundled in the tools directory.
So when we go to generate the list of dll/reference includes for the given framework, the install model for that package has no library folders and no framework references, because they are all bundled in the tools directory.

I've looked more into the InstallModel and getting info about .targets but it seems that Dependencies.GetInstalledPackageModel is returning empty information in a hardcoded fashion, and getting the accurate InstallModel requires more work.
I'll leave that for future investigation in separate PR when this feature lands in v3.
Last commits look good!

Projects that are tools are perhaps a special case for this functionality that should not delay the overall feature.

Yes definitely. But if we assume "tools" is always standalone (ie without dependencies to other packages) this is definitely doable.

@matthid regarding Fake, one is supposed to pull FAKE.Lib package if intend to reference it.

Not all packages might have that and https://www.nuget.org/packages/FAKE.Lib/ doesn't list its dependencies properly either. I'm not sure this package is actually usable for anything besides simple functionality not using any dependencies (and even that might fail for example on mono which loads assemblies more eager than .NET).

You are most probably right, I think this should be a concern with FAKE project and published packages.
I don't think we should do anything WRT to the tools folder in context of generated include scripts.

@smoothdeveloper I tend to agree (in general).
For this PR I don't think it makes sense to touch the tools folder (but future work might, if people need this for some popular packages, for example FAKE :D ).

Let's open issues on FAKE repository :)

It would be great to have a paket.dependencies flag to enable script generation. something like generate_scripts: on that could be placed at a global, group, or individual package level, like all the other options.

Also, has there been any consideration to restoring/generating the scripts on paket restore? The use case I'm thinking of is a build server/CI/FAKE script flow where

ci Server clones repo
ci server calls build(.bat/.ps1/sh)
ci server invokes FAKE with script
FAKE script #load script includes.

This isn't a deal-breaker, because it's easy enough to have the bat/ps1/s script call the generate-scripts functionality, but it may be nice.

Actually thinking about this again. This would be a way to "clean-up" FAKE. FAKE.exe could be a more advanced fsi.exe (caching & stuff) and then you would #load all the stuff you need. We might even go further and generate a include script for a complete paket group (for example build).
-> add a package and you can open it in FAKE immediately.
So generating the include scripts on restore might actually be a good idea (maybe opt-in).

@matthid @baronfel top level script for a group is a great idea!
Although I think at this stage we are entering scope creep.
There is also garbage collection (removing files that are not necessary anymore) to take in account.
Can we postpone those features to after this PR gets merged?

Also, I think this feature as it is already has a lot of value and can generate some buzz, then we can generate more buzz with each further refinement to it :)

@matthid I've done work in the dependencies and lock file parsers before. If you decide to go that route I'd be glad to tackle that if you're busy doing other things.

If @baronfel still want's to do it I don't have any objections. In fact we might want this on the initial version, before people start editing all their build.cmd/build.sh files :)
That's why I brought it up again. Of course we can do it later as well.

Heard, seems good if we can have the option in packages.dependencies, we will also need to update VisualStudio plugin once v3 becomes stable release.

@matthid when you have a chance, could you rebase this off v3 branch? I'm not sure how to proceed due to the commit which was cherry picked in origin.

Yep wll do later today, so please make sure you don't have any open changes until like 22:00 (UTC) / 20:00 (GMT +2)

Don't be confused by the shrinked commit list. I used the opportunity to squash some fixup commits.
I only did some obvious things, most of the stuff is to coupled to cleanup (or from different authors which would make tracking origin harder).

@matthid thanks, your level of git foo exceeds mine many fold...
I'm not sure why it just added a merge commit of mine after pulling the branch again.
So what do you all think? I believe adding the option to paket.dependencies can be done separately if this PR get merged into v3, so we start getting feedback from more users?

well rebase means git will replay all the commits on a different head. Therefore for git all rebased commits have nothing to do with the old ones... I assume you used git pull which will do a merge which is not what we want in this situation :).
what you want to do to make the magic work is:
'git fetch matthid' // replace matthid with however my fork is called on your machine.
'git rebase -i matthid/generate_scripts_v3'
// edit the file as explained on the bottom
after this process pull can be used the next time. Alternatively you can remove your local branch and checkout mine again:
'git branch -m backup'
'git checkout -b generate_scripts_v3 matthid/generate_scripts_v3'
of course I first need to get rid of the merge commit. Will do this tomorrow.
If you want you can try to fix it youself with
'git rebase -i fsprojects/v3'
// comment the line with the merge commit (and/or the duplicates)

Otherwise I agree that we should probably merge as-is (after getting rid of the merge commit I will remove the WIP)

Mmh, I guess I had the assumption that pull was identical to fetch + checkout but I guess your explanation makes clear that it does something else (a silent merge apparently). I should always use fetch + rebase.
And before your comment I didn't even see the history was completely duplicated...
Sorry for added burden of adding the spurious merge by mistake & thanks for taking time to explain.
I was apparently able to fix the history, I gained some git foo+ some F# foo cooperating with you on this PR!

@matthid/@baronfel I think everything is in place, I'm not sure about the inscrutable errors on travis & appveyor though.
Should we ask @forki to pull this in v3?

Hm I thought I made them green with https://github.com/fsprojects/Paket/pull/1644. Seems like that didn't hold for too long...

@matthid any way we can tell Travis/AppVeyor to try again?

dummy commit ;)

All other PR are red BTW, I don't think there is anything we can do, @matthid should you remove [WIP]?

I think there was an issue with .NetStandard support. It all works on my machine but breaks everything on CI. Didn't have time to look into this yet. It's a bit embarrassing....

Do we already have docs for this?

Good point! Added an item above, will add something very basic once I have some time (probably weekend) ;)

@forki / @matthid I just added documentation for the command with a sample on how to use it with FsLab :smile:

the test errors seem to be related to this PR

Mmh, I need to reproduce this case on a linux / macos machine I guess, I believe the script generation doesn't end up with same scripts on windows vs mono despite the framework is specified.
Could it be that InstallModel gives different results on vanilla dotnet / mono?
@matthid / @forki what do you recommend we do with this test? I don't feel it should hold the feature so I might just Assert.Ignore with a message about that issue.

@forki, I've disabled the offending test, it won't work on linux until someone can really step through the code there.
Please check again if this can be merged now.
Thanks!

I will test this as soon as I have working Internet connection on my pc
again. The Telekom guy is coming on Monday. Sorry for delay. Blame Deutsche
Telekom.
On May 5, 2016 12:03 AM, "Gauthier Segay"<EMAIL_ADDRESS>wrote:

@forki https://github.com/forki, I've disabled the offending test, it
won't work on linux until someone can really step through the code there.
Please check again if this can be merged now.
Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/fsprojects/Paket/pull/1619#issuecomment-217017706

Awesome work! Thanks so much. xoxo
and now:

can you please try to make the test pass on ncrunch? the path is too long...

Yes I'll rename the folder with all the related tests.

Any chance to tell ncrunch to work somewhere else?

maybe, but don't know how


db:seed_fu uses environment from db:test:prepare to seed

when I do:
%> bundle exec rake db:test:prepare db:seed_fu
The seed file is written to the _test database.
Now, this seems useful to me actually, so I'm not positive it's an issue at all, however, I've been unable to find any documentation about it.  Is this a feature of seed_fu?  a feature of db:seed?  a feature of rake?
This is the first report, so if it's not an issue with seed_fu, then I'll move on up the stack...

rake-<IP_ADDRESS>
rails-3.1.3
seed-fu-2.1.0

I haven't looked for sure, but I think db_test_prepare pins the RAILS_ENV to test... and then it probably is still set when seed_fu runs.

So long ago... doesn't need to be open.


Screensaver depending on the time

Hi,
I'm using your App MQTT Alarm Panel on two Amazon Fire Tab 7 tables mounted on the wall....running well
I like the build-in screensaver with the small weatherforecast (temparature) and clock...
Over the daytime this is very helpfull, but over night this is not neaded, Would it be possible to build in a scheduler for the screensaver? So you can e.g. have the "normal" screensaver on from 6:00am until 10:00pm etc.
During night the screen can switch off....
Many thanks and again great application!
Per

This makes sense, but we do have dimming options, so it’s not a high priority feature.
Optionally you could use the web screensaver feature and have the webpage display whatever you like.  You could host this from your public web server on Home Assistant.
However if you or someone else wants to do a pull request, I’m open to discuss the implementation.


feat: 🎸 get custodied portfolios for did

JIRA Link
https://polymesh.atlassian.net/browse/DA-74
Changelog / Description
get custodied portfolios for did
Checklist -

[x] New Feature ?
[x] Updated swagger annotation (if API structure is changed) ?
[x] Unit Test (if possible) ?
[x] Updated the Readme.md (if required) ?

Maybe this should go into alpha?
My habit is to open against the default master as well, but I think its a bit smoother to always go into alpha then master
If we change the Github default branch to alpha then people coming to the Github page would see that so we need to leave the default as master.

:tada: This PR is included in version 2.5.0-alpha.3.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 2.5.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Closing everything in script workspace prevents mouse input

Godot version
v4.0.alpha5.official [d7d528c15]
System information
Arch Linux (I don’t know how to give a version for this), AMD Ryzen 5 3600 (x86_64), AMD Radeon RX 580 Series, Vulkan Clustered.
Issue description
If you close everything that’s open in the script workspace, then the editor will start ignoring your mouse. Minimizing Godot and then bringing it back up will make Godot pay attention to your mouse again.
Steps to reproduce

Open any project.
Go to Help > Search Help.
Double click on any of the results to open its documentation.
In the script workspace’s list of open scripts/docs, right click and choose “Close All”.
Try clicking on anything in the editor.
Minimize the editor.
Return to the editor.
Try clicking on anything in the editor.

Minimal reproduction project
No response

Can't reproduce, using Windows 10.

@Jayman2000 Do you have an error message about transient windows in the terminal when this occurs?

@Jayman2000 Do you have an error message about transient windows in the terminal or Output panel when this occurs?

No, here’s what I get:
[jayman Godot]$ ./Godot_v4.0-alpha5_linux.64
Godot Engine v4.0.alpha5.official.d7d528c15 - https://godotengine.org
Vulkan API 1.2.0 - Using Vulkan Device #0: AMD - AMD RADV POLARIS10

Editing project: /home/jayman/Desktop/Godot/Projects/4/test (::home::jayman::Desktop::Godot::Projects::4::test)
Godot Engine v4.0.alpha5.official.d7d528c15 - https://godotengine.org
Vulkan API 1.2.0 - Using Vulkan Device #0: AMD - AMD RADV POLARIS10

[jayman Godot]$

Can not reproduce on Garuda Linux (Arch) (QTile), Godot 4 Beta 2
Intel CPU and AMD GPU

Can not reproduce on Garuda Linux (Arch) (QTile), Godot 4 Beta 2
Intel CPU and AMD GPU

I can’t reproduce it either.


the code of a.c was replaced by b.h

VSCode Version: Code 1.8.1 (ee428b0eead68bf0fb99ab5fdc4439be227b6281, 2016-12-19T14:49:23.350Z)
OS Version: Windows_NT ia32 10.0.14393
Extensions:

Extension
Author
Version

GBKtoUTF8
bukas
0.0.2

cpptools
ms-vscode
0.9.3

csharp
ms-vscode
1.6.2

Material-theme
zhuangtongfa
1.0.3

Steps to Reproduce:

u have a.c and b.h files, a.c include b.h
open a.c
in a.c ctrl + leftClick open the b.h
close b.h
ctrl + move cursor on the code < #include ”b.h“ > in a.c , the code of a.c will be replaced by the code of b.h

@XuBovey does it help you if you configure "workbench.editor.enablePreview": false ?

@bpasero thanks, it worked. but i cannot repeat the error, when i remove the configure "workbench.editor.enablePreview": false or set true, maybe the issue was a mistake. anyway i will keep the configure.
thanks a lot.


godaddy API Change?

Response Data: {
u'fields':  [  {
u'path': u'records',
u'message': u'is not a array',
u'code': u'UNEXPECTED_TYPE'
}  ],
u'message': u"Request body doesn't fulfill schema, see details in fields",
u'code': u'INVALID_BODY'
}

seems changed, I need to manually change code to make it working again.
--- /usr/local/lib/python2.7/dist-packages/godaddypy/client.py  2018-04-20 22:03:13.466927835 -0700
+++ /usr/local/lib/python2.7/dist-packages/godaddypy/client.py.bak      2018-04-20 21:58:39.783297049 -0700
@@ -296,9 +296,7 @@
name = record['name']
     url = self.API_TEMPLATE + self.RECORDS_TYPE_NAME.format(domain=domain, type=record_type, name=name)

   records = []

   records.append(record)

   self._put(url, json=records)

   self._put(url, json=record)
   self.logger.info(
       'Updated record. Domain {} name {} type {}'.format(domain, str(record['name']), str(record['type'])))

--- /usr/local/lib/python2.7/dist-packages/godaddypy/client.py  2018-04-20 22:03:13.466927835 -0700
+++ /usr/local/lib/python2.7/dist-packages/godaddypy/client.py.bak      2018-04-20 21:58:39.783297049 -0700
@@ -296,9 +296,7 @@
             name = record['name']

         url = self.API_TEMPLATE + self.RECORDS_TYPE_NAME.format(domain=domain, type=record_type, name=name)
-        records = []
-        records.append(record)
-        self._put(url, json=records)
+        self._put(url, json=record)
         self.logger.info(
             'Updated record. Domain {} name {} type {}'.format(domain, str(record['name']), str(record['type'])))

--- /usr/local/lib/python2.7/dist-packages/godaddypy/client.py.bak      2018-04-20 21:58:39.783297049 -0700
+++ /usr/local/lib/python2.7/dist-packages/godaddypy/client.py  2018-04-20 22:03:13.466927835 -0700
@@ -296,7 +296,9 @@
             name = record['name']

         url = self.API_TEMPLATE + self.RECORDS_TYPE_NAME.format(domain=domain, type=record_type, name=name)
-        self._put(url, json=record)
+        records = []
+        records.append(record)
+        self._put(url, json=records)
         self.logger.info(
             'Updated record. Domain {} name {} type {}'.format(domain, str(record['name']), str(record['type'])))

@qigtang you should submit that as a PR. Much easier for @eXamadeus to merge :)

@qigtang Tested here with le-godaddy-dns and the fix works great. Thank you thank you thank you!

same problem here. please, pip install --upgrade godaddypy wont update the lib
what should  i do

Its probably not PIP available yet. Best bet is to check out the repo and replace your local file with the new version.

File "C:\Python27\lib\site-packages\godaddypy\client.py", line 300
records = []
^
IndentationError: unexpected indent
my indentation is correct
        url = self.API_TEMPLATE + self.RECORDS_TYPE_NAME.format(domain=domain, type=record_type, name=name)         #self._put(url, json=record) 		records = [] 		records.append(record) 		self._put(url, json=records)         self.logger.info(

Python is space sensitive, just put spaces before records = [] until it lines up with the rest of the text, don't tab.

@siberian1967 , thank you. that did the trick.
will the fix ever be on pip? im using in inside a docker and its a problem for me to change it manually.

Hey all, sorry life and work has been crazy.  This is top of my priority list.  Expect a proper release by the weekend, if not sooner.  Thanks for the patience!

Fixed in #4 and released in 2.2.6


techdebt: [CDS-83153]: Revamp PR Pipelines - technical changes

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the CODEOWNERS.
What Type of PR is This?

[ ] Issue
[ ] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[ ] Tested Locally
[ ] Optional Screen Shoot.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://656826d8e5169269f6b080d2--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://6568445834413a7d234be1dd--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://6568472701894f7df5bd8d39--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://656885a8eea59a2d62a2b7f8--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65688bd8537281009ca0b587--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://6568c3e50259d9038bd9bb7f--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://6569281dcce3582d101bb7f5--harness-developer.netlify.app


Remove precommit GitHub workflow

The check task already runs everything that precommit does, and it does so first so it will fail fast on any failure. I believe it is entirely redundant to run precommit so the workflow is being removed.
Check List

[x] New functionality includes testing.

[x] All tests pass

[x] New functionality has been documented.

[x] New functionality has javadoc added

[x] Commits are signed per the DCO using --signoff
[x] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Precommit runs on multiple platforms, so probably worth keeping around.

Precommit runs on multiple platforms, so probably worth keeping around.

What should happen though is that precommit is a prerequisite for running gradle check, to reduce the volume of those run unnecessarily.


add notebooks for generating table images

@martinjankowiak you sent me these notebooks last fall in order to generate some tables summarizing the run (top_growth_rates.png and pip_ranked_alleles.png) - I just wanted to add them to the pipeline branch


*: Ensure the aggregate CO controller populates the status.Versions field

Ensure the aggregated platform operator CO resource has a populated status.Versions field. By default, the YAML manifest for this resource has a populated status.Version but the aggregate CO controller logic stomps on this value during reconciliation. Update that reconciliation logic to ensure this value is persisted during events.
Signed-off-by: timflannagan<EMAIL_ADDRESS>

This is a no-op. Adding the required labels
/label px-approved
/label docs-approved
/label qe-approved

/hold cancel


Integration test for OIDC auth2/userinfo endpoint should test for both POST and GET method.

Describe the issue:
As per the OIDC core specification [1], the client application can invoke /userinfo endpoint by two methods as POST and a GET. In the GET request, the access token is send in header as a bearer token. For the POST request, the access token is send as a body parameter with "content-type : application/x-www-form-urlencoded". Currently, the test coverage only accounts for the testing of the GET method. The integration tests for the userInfo endpoint should cover both the POST and GET invocations.
[1]  https://openid.net/specs/openid-connect-core-1_0.html#UserInfo

Fix with PR : https://github.com/wso2/product-is/pull/11153


Mimick API completely or "haxeify"

In the library there is a set of wrappers on top of the extern classes. There is scope inside here to make library a little more haxe-like, but want to know if anyone thinks its a bad idea or not. Examples would be to use getters and setters instead of getXYZ / setXYZ, so for example instead of:
button.setId(123);
var x = button.getId();

we could use:
button.id = 123;
var x = button.id;

I think personally its a nice option, and its worth noting that already in the wrapper constructors ive changed the param order to make the API a little more usable.
Thoughts?

For me bringing a library for haxe is about more than just having its api,
I think it's important that the wrapper feels like haxe, after all we are coding in haxe,
if it feels like c++ might as well use it in c++.
And if someone wants the pure wxWidgets experience there's the extern classes,
though they could be better placed in their own package like wx.widgets (and keep the wrapper in hx.widgets).

Cool... i agree totally.

Personally, I prefer explicit setters and getters, as it does not hide anything from the user (do I call a function here? Is this maybe a performance impact? Does this even what I want to...) and offers better autocompletion & documentation support in tools.
That said, I agree that a library for platform X should adhere to the standards of that platform, and while I wouldn't say that implicit getters/setters are a standard (maybe more common, though), it is what you do yourself in haxeui, which is what I assume most will use hxWidgets with. And having two different standards there would be weird, indeed.

when you say explicit setters what do you mean exactly? The idea would be:
in wx.widgets (which would match the wxWidgets function signatures):
extern class Something {
    @:native("GetValue") public function getValue():Int;
    @:native("SetValue") public function setValue(value:Int):Void;
}

And then in the haxe wrappers in hx.widgets:
class Something {
    public var something(get, set):Int
    private function get_something():Int {
        return _ref.getSomething();
    }
    private function set_something(value:Int):Int {
        _ref.setSomething(value);
        return value;
    }
}

So the "normal" haxe use would be:
something1.value = something2.value;

which feels more "haxey" than:
something1.setValue(something2.getValue);

I mean the wxWidgets function signature with explicit and the public var something(get, set):Int with implicit :)

I think it is done now as part of the restructure. In general if there are GetXXX/SetXXX functions in the API that take single params in Set and return the same type in Get then they are turned in haxe getters setters.
Closing.


♻ Simplify Pydantic configs in OpenAPI models in fastapi/openapi/models.py

Abstracted conditional class config to parent class to avoid repetitive checks.

Good idea, thanks! :rocket:


fix cors exception.

fix get tree data exception.
add nginx default server conf.
fix menu test sql data.

The cors problem of fastapi has not found a solution. https://github.com/tiangolo/fastapi/issues/5263
So remove the CORS middleware and use nginx configuration to solve

The back-end menu should be well controlled, and the front-end should not be further filtered

pleace review

The back-end menu should be well controlled, and the front-end should not be further filtered

I know this, but, no filter conditions should be added to the back-end tree data parsing
Reasons:

the menu display error should be borne by the super user, because that is caused by configuration errors
to avoid dirty data in the menu
can be controlled by the show switch to show or not

Also, nginx doesn't seem to be conducive to local debugging

The back-end menu should be well controlled, and the front-end should not be further filtered

So the next step may be to implement the menu page first

Also, nginx doesn't seem to be conducive to local debugging

Yes, no solution found so far

The problem is perhaps better explained here: https://github.com/encode/starlette/issues/1175
The only thing I want to try is to put the exception interceptor before the middleware to register

So the next step may be to implement the menu page first

I think so too.

I created a new PR #167 and temporarily fixed it and it is working


Chell failed restore stock firmware using downloaded shellball firmware

I tried to intsall windows10 on my chromebook 13 G1,but since unplug power cable will case crash, So I tried to restore stock firmware .
Using ubuntu 18.04 livecd ,and run this script ,choose download firmware ,then reboot ,and it bricked :( .Screen is black,keyboard backlight worked,but caps lock(using external keyboard)doesn't work.
By using usb flash programmer(and firmware from online firmware seller),I successed unbricking,but It takes 30s to light up srceen and boot up,using flashrom flash firmware from another chell,didn't work.
So I decide to install costom firmware using this script,but it still take 30s to light up screen.
Finally, I try to restore stock firmware by using dowloaded firmware,and it bricked,again.
I think there is something wrong with the downloaded shellball firmware,or it's not compatible with this device.
More info about this device CPU 4405Y Screen RES 3200*1800 Memory 4GB

not sure why you'd have issues, works fine on my chell here with exact same config (Pentium 4405Y/4GB/32GB/1800p). I'll take a look into updating it in case it's been superseded

just checked chell's shellball, and Google had updated it, so I pushed the new version.  Give it a go and let me know if it now works. Looking at the commit history, it seems they did add/update support for certain RAM types, so possible your device uses one of those

just checked chell's shellball, and Google had updated it, so I pushed the new version. Give it a go and let me know if it now works. Looking at the commit history, it seems they did add/update support for certain RAM types, so possible your device uses one of those
(I want to use it for some days before it bricked again,and these are informations about this unbricking)
9 days ago after I successed unbricking,I tried to use sudo flashrom -r bios.rom to get stock firmware from another chell(1080p ver),and use sudo flashrom -w bios.rom,it didn't bricked,but also didn't fix the '30s-boot-up'* problem.
But today I tried to use the same firmware and usb programmer to unbricking,it still bricked (and even worse,the keybroad backlight didn't turn on when power cable is pluged in)(custom firmware also didn't work)
I had to use the firmware I bought last time to unbircking and It worked(it still takes 30s before bootup,and this time it shows "Your system is applying a critical update.Please do not turn it off" when booting up).
So maybe there is some difference between flashrom and usb programmer(both read and write).the flashrom only read/write some part of firmware falsh chip,and it cause compatible issues when you using firmware from different source,or just because this chell have some hardware problem...

*'30s-boot-up' is very similar to https://www.youtube.com/watch?v=IJIsH-SDI8k

first boot after flashing always takes longer, since the device must perform RAM training.
flashing an image using an external programmer that was read from a live system via flashrom -r will not work, because the image is missing parts that cannot be read when the system is booted.
please use an external programmer to flash the updated shellball ROM, and report how it works subsequent to the initial boot


Suggestion: Avro addon

As Avro by OmicronLab is one of the most adopted Bengali Keyboard module - a add-on for the keyboard for Rokeya Keyboard will help users (and adoption).
Same goes for Mayabi or Ridmik keyboard on android. Avro will be the fastest; also, Rokeya option in avro.im.

Actually I do not want to provide plugin, because I just want to showcase this as a layout which is capable of generating any kind of bangla letters. Therefore, other keyboards are not part of this keyboard code.
Instead I think, a built-in spell checker will be a better option. That's the thing I can share among several other keyboard vendors. What you say?

I think I wasn't clear about this suggestion.
I did not suggest making other keyboard/s as a part of Rokeya, rather Rokeya being a add-on that can be added as a layout to other existing platforms (Avro being the largest to my knowledge). So people using Avro (or something else) can use Rokeya as a layout (instead of say - phonetic or probhat).
Given Rokeya as both  fixed and phonetic elements (the reason I love this, and so will a lot of people given the exposure- IMO) this add-on route (as a secondary focus) may help user adoption.
Avro has a layout creator, initially, Rokeya can be shared as a modified layout. Though providing it as a fixed layout will be more helpful.

Got your point. I will develop something here and send a pull-request to them.

Cannot provide this because the addon is not actively developed and their focus is not clear also :-/


Remove k_ prefixes in weaver

:tada: This PR is included in version 3.4.3 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Serving using ExportStrategy

Should figure out how to export models for serving, I think Tensorflow does provide something like an ExportStrategy that can be passed to the estimator and it will occasionally export the model.

It might be easier to add support for using feed_dict as an alternative for InputPipeline?
Many TF models use that paradigm rather than reading the input data directly from the graph.

I think the standard way is freeze the model, then use feed_dict to feed input and get the output tensor.

@skyw that's correct but since the models in this repo use Readers you first have to declare a new input tensor to the model (Placeholder).

Any updates of this feature? I agree with @gidim , currently the model depend of tf.Slim.Dataset which is hard to be used for online inference.

I think there is two options:

Load the model, add an input placeholder to the graph, remove the input pipeline from the graph and freeze it. As mentioned by @skyw

[better option] leverage TFserving component to plug a model contains input pipeline with queues to a web server.

I think, the serving feature is very important feature for this project referred in other issues (#114).

@amirj does tfserving supports option two? If so could link to the documentation/code ? I couldn't find anything about it.

Input pipelines are the standard way to feeding TF models. So, I think, its indeed possible. But the current documentation in TF serving module is not clear.

@amirj - the standard way when performing training. for inference most models use feed_dict.
Usually it's easy to rebuild the graph with two placeholders but the code here is a a little complex and has quite a few dependencies which makes it harder.

It's strange if TF serving is not compatible with input queues.
It's not a good design to leverage different feeding in the training and inferencing. For example, one application of ExportStrategy is online inference during the training phase #114 . Rebuilding the graph in this situation is not good.

@amirj @gidim
do you think the approach followed here to serve the graph is recommended?

Should figure out how to export models for serving, I think Tensorflow does provide something like an ExportStrategy that can be passed to the estimator and it will occasionally export the model.

@dennybritz
I have managed to export through export_strategies in Experiment.
But, facing problem with preprocessing and embedding.
Kindly have a look here and here
Are things performed in _preprocess exported to Graph?


[WIP] adaptively set volume rendering ray step size

Description
Inspired by a conversation that @jni had with @royerloic that was discussed during the Eurasia community meeting, This WIP PR introduces a FrameRate monitor that hooks into the canvas monitor_fps() callback. Using this, we can adaptively set rendering parameters when the framerate drops a specified value. Currently, this demo doubles the ray step size when the FPS < 30 and halves the ray step size when FPS > 60 (only for volume rendering).
Due to the way that framerate is calculated in the canvas.monitor_fps() function, the FramerateMonitor invalidates old measurements (marks them as stale) and implements some simple debouncing to prevent transient movements from causing false positives.
There is a demoscript below that displays the current measured frame rate and ray step size as a text overlay.
example script

"""
Viewer FPS label
================

Display a 3D volume and the fps label.
"""
import time

import numpy as np
import napari

viewer = napari.Viewer(ndisplay=3)
image_layer = viewer.add_image(np.random.random((700, 500, 500)), colormap='red', opacity=0.8)
viewer.text_overlay.visible = True

visual = viewer.window._qt_window._qt_viewer.layer_to_visual[image_layer]
node = visual._layer_node.get_node(3)
print(node.relative_step_size)

def on_draw(event=None):
    """Display the current frame rate and step size as a text overlay"""

    fps_monitor = viewer.window._qt_window._qt_viewer._fps_monitor
    fps = viewer.window._qt_window._qt_viewer.canvas.fps
    fps_valid = fps_monitor.valid

    viewer.text_overlay.text = f"{fps:1.1f} FPS, valid: {fps_valid}, step: {node.relative_step_size}"

viewer.window.qt_viewer.canvas.events.draw.connect(on_draw)

if __name__ == '__main__':
    napari.run()

Type of change

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

References

How has this been tested?

[ ] example: the test suite for my feature covers cases x, y, and z
[ ] example: all tests pass with my change
[ ] example: I check if my changes works with both PySide and PyQt backends
as there are small differences between the two Qt bindings.

Final checklist:

[ ] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] If I included new strings, I have used trans. to make them localizable.
For more information see our translations guide.

@brisvag , what do you think? Is this along the lines of what you were thinking? Happy to pair on this later this week if you're interested.

Awesome example! I'm totally up for pairing to fimnish this up :)
One quick thought: if possible, we probably want to render one last time at higher/st quality when the user stops interacting with the canvas.

Shall we push this over the line folks?

Hey @jni . Sorry! I've been pretty swamped napari-wise in the past weeks ;). I can get back to this next week after Euroscipy.

One quick thought: if possible, we probably want to render one last time at higher/st quality when the user stops interacting with the canvas.

This is definitely possible, @brisvag . The easiest way I can think of is a timer thread that gets started/restarted when the camera moves. If that thread is allowed to return without interruption, it would do a final render pass at higher quality. What do you think? Did you have something else in mind? We can also punt on that

You can use the fancy debouncer stuff from @tlambert03!

You can use the fancy debouncer stuff from @tlambert03!

Good point. Looks like we could use the debouncer in trailing mode. I'll try to get caught up on https://github.com/napari/napari/pull/4985 and https://github.com/napari/napari/pull/4983 as I think there were some threading issues that may/may not be relevant here.

If it will interact with gui (even through events) it will produce same proble as mentioned.
Denouncing should bone on the qt side.
PS. Timers in qt are not threads, but events in event queue.

Thanks, @Czaki !

wow, very cool PR guys! I really like the FrameRateMonitor and like the idea of performance monitoring classes we can hook into more generally. I've marked this as 'to merge' for 0.4.17 - would you like some help pushing it over the line or should I leave you to it?

Thanks, @alisterburt . I think @brisvag and I should be able to take it across the line in the next week or so. If not, we'll tag you in :)

@brisvag , I took a stab at adding a redraw at the end using the debouncer as you suggested. I think the main functionality is there, but we need to find the best way to encapsulate it.
A few questions:

Where should we store the parameters (e.g., target fps, time thresholds)? Should those all go in FramerateMonitor?
Should this the FramerateMonitor live on qt_viewer (current) or qt_main_window (as @Czaki did in #4985)?
Should have an an enable/disable method?

Also , my time is limited in the next few days, so if you have time and interest, please feel free to directly push to the branch :)

@kevinyamauchi I opened a PR at https://github.com/kevinyamauchi/napari/pull/19.
In doing so, I noticed that the current debouncing logic is not working as intended; as far as I can tell, it gets basically fired every 1500ms, rather than only once, 1500ms after the last event.

@kevinyamauchi I opened a PR at https://github.com/kevinyamauchi/napari/pull/19.

Thanks, @brisvag !

In doing so, I noticed that the current debouncing logic is not working as intended; as far as I can tell, it gets basically fired every 1500ms, rather than only once, 1500ms after the last event.

Which debouncing behavior are you referring to? The one controlling the update of the framerate measurement or the QSignalDebouncer? What was the observation?
The word is "debouncing" overloaded here. There is debouncing in the FramerateMonitor to make wait for a couple of measurements to pass before "accepting" the framerate measurement. This is because the framerate is measured between draw events so there needs to be a couple that pass before the measurement becomes accurate. On the other hand, there is the QSignalDebouncer, which  is used to call the function to redraw at high quality after
We should probably rename the debouncing in the FramerateMonitor to avoid confusion... 😆

We should probably rename the debouncing in the FramerateMonitor to avoid confusion... laughing

Yup, agree :p I meant the QSignalDebouncer. If I add a print inside redraw_at_higher_resolution() and one inside the lower fps branch in on_fps_change, I would expect to see the former only after I stop seeing the latter. Instead, if I move the camera like crazy, I just see alternating between the two.

Yup, agree :p I meant the QSignalDebouncer. If I add a print inside redraw_at_higher_resolution() and one inside the lower fps branch in on_fps_change, I would expect to see the former only after I stop seeing the latter. Instead, if I move the camera like crazy, I just see alternating between the two.

Huh, weird. I did the same thing and got the expected behavior! I'll try again 🤔

@brisvag , @kevinyamauchi : this PR seems like one of the riskier v0.4.17 candidates because (if I understand correctly), we'll be hitting some of these code paths any time we visualize a volume. Very happy to bring it in, but it would be ideal to get in for the first release candidate so we can catch any unexpected effects. Do you think you can get this finished up and review by early next week?

Hey, @andy-sweet ! @brisvag and I were just discussing this. We agree that this PR is risky given that it's in the main code path of our most-used layer. We are both a bit short on time in the coming days, but are interested seeing this included in 0.4.17 if possible.
I propose that if we are able to get this in a mergeable state by the first RC, we go ahead and include it in 0.4.17. Otherwise, we take our time and include this is 0.5.0 :)
What do you all think?

I propose that if we are able to get this in a mergeable state by the first RC, we go ahead and include it in 0.4.17. Otherwise, we take our time and include this is 0.5.0 :)

Sounds like a good plan to me.
If it's ready after the first RC, I guess we could make an exception as long we do some thorough testing around volume visualization.

@andy-sweet  and @brisvag , I thought I was going to have more time early this week, but something came up with my day job and I won't have time to get this over the line, so I think we should punt on this one until 0.5.0. Sorry about that!
@brisvag , if you have time, you're welcome to take the PR over!

I thought I was going to have more time early this week, but something came up with my day job and I won't have time to get this over the line, so I think we should punt on this one until 0.5.0. Sorry about that!

I changed the milestone for now. @brisvag : if you decide to take this over and think it could make it into v0.4.17, comment here.

I also prefer to postpone at this point. Will pick up soon!

@kevinyamauchi wanna merge in main and push this over the line? It's very high value! Might even want to go into 0.4.18 😃

I just had a great chat with @jni and we decided on the following path forward:

move the callback to update rendering based on framerate to the napari layer (currently on vispy layer)
check to make sure the final redraw is correct timer is correct (could be causing CI failures)
add some minimal tests

I was doing a bit more testing and it's a bit more complicated than I initially though. In short, the monitor_fps method we're using on the vispy canvas gets triggered more than just the scene redrawing from camera moving, etc. The monitor_fps method connects our callback to the canvas draw event (see here), which I apparently gets triggered by a bunch of stuff, including mousing over the canvas handles that stretch the canvas. I made an example script that to the terminal when the draw event is emitted. In the screen recording below, you can see it gets triggered when mousing over various UI elements.
The reason this is a problem is that it leads to a lot of updating of the rendering followed by the final redraw at high resolution, which can cause the mouse movement to feel not smooth.
One workaround would be to only trigger the rendering updates when the camera is moving. I am a bit worried about expanding the footprint of this PR too much, especially if the goal is to get this in for 0.4.18. This has the potential to affect pretty much all use cases in the viewer, so it should be well-tested before being released (assuming we keep an infrequent release cycle).
https://github.com/napari/napari/assets/1120672/83fe7545-fd07-4ca8-b3d8-6f2e847fb836
"""
Viewer FPS label
================

Display a 3D volume and the fps label.
"""
import time

import numpy as np
import napari

viewer = napari.Viewer(ndisplay=3)
image_layer = viewer.add_image(np.random.random((700, 700, 500)), colormap='red', opacity=0.8)
viewer.text_overlay.visible = True

visual = viewer.window._qt_window._qt_viewer.layer_to_visual[image_layer]
node = visual._layer_node.get_node(3)
print(node.relative_step_size)

def on_draw(event=None):
    """Display the current frame rate and step size as a text overlay"""
    print("on draw called")
    fps_monitor = viewer.window._qt_window._qt_viewer._fps_monitor
    fps = viewer.window._qt_window._qt_viewer.canvas._scene_canvas.fps
    fps_valid = fps_monitor.valid

    viewer.text_overlay.text = f"{fps:1.1f} FPS, valid: {fps_valid}, step: {node.relative_step_size}"

viewer.window.qt_viewer.canvas._scene_canvas.events.draw.connect(on_draw)

if __name__ == '__main__':
    napari.run()

I pushed another update that adds a small class to monitor if the camera is being moved. This can then be used to do the final redraw at higher quality. The QTimer test issue needs to be fixed and it needs some tests/testing, but I think the core functionaltiy is there. I am a little on the fence if I like the implementation or not. A few questions/comments/concerns:

This could impact most use cases, so I think it needs quite some testing before merging and before it goes out in a release.
The final high quality redraw is sensitive to the debounce time. If this time is too short, it can falsely trigger the final redraw when the viewer is drawing at low framerate (i.e., the time between frames is greater than the debounce time, falsely signaling the move is done). This is pretty bad because it then adds an additional (heavy) redraw to an already struggling viewer.
While not directly related, I could imagine this colliding with the async and tiled rendering work (cc @andy-sweet , @kephale )
The different components (e.g., FramerateMonitor, CameraMonitor, associated callbacks) are a bit spread out. It would be nice to encapsulate them.

I have only quickly skimmed this PR at this point, so take this question accordingly:
@kevinyamauchi Have you tried debounced from psygnal?
This is how we're using it with the tiled rendering code: https://github.com/kephale/napari/blob/e634c2b6a182fdfb8480d41aed167aa22ad0b499/examples/interpolated_tiled_rendering.py#L364-L374

Not entirely confident yet, but I can't immediately think of a way this would interact badly with async slicing. My main concern would be around everything we do when the camera moves and causes a redraw (e.g. maybe reslicing layers as defined by the vispy canvas draw connection), as this adds another thing.
So it would be good to understand everything that happens and the ordering, independently of async slicing since that doesn't change those. But that probably should be a prereq for getting this in and is useful anyway.
In general, I like the idea of a fixed render quality (similar to how a video in my browser typically defaults to automatic, but also allows me to chooses a fixed quality) - i.e. I don't always want or need the highest resolution. So I wonder if this concept can generalize to more than the ray step size (e.g. to the multi-scale level chosen for images/layers that support that).

Unfortunately, I don't think I will have time to come back to this in the near future, so I will close this for now. If anybody wants to pick it up and push it across the line, please feel free to do so!


add: runday198

Description
[Include a brief description of the changes you've made]
Added my profile

@runday198 Thank you so much for your contribution! Your efforts are greatly appreciated and will go a long way in improving our project. Please feel free to share it with others and Star the repo to help us grow even further!


Failing: Rdev__rqt_image_overlay__ubuntu_jammy_amd64

RQt Image Overlay has been failing its Rdev__rqt_image_overlay__ubuntu_jammy_amd64 build since the Jammy Transition.
Haven't figured out why, yet.

https://build.ros2.org/job/Rdev__rqt_image_overlay__ubuntu_jammy_amd64/9/console

Going to close this once I confirm this fixes the build.

Although the Qt related deprecation warning was fixed, the build still fails with errror message:
23:10:11 --- stderr: rqt_image_overlay
23:10:11 gmake[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libpython3.9.so', needed by 'librqt_image_overlay.so'.  Stop.
23:10:11 gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/rqt_image_overlay.dir/all] Error 2
23:10:11 gmake: *** [Makefile:146: all] Error 2
23:10:11 ---

Quoting from a Discourse post, something that may be related.

Ubuntu Jammy is transitioning to python3.10 3 and this is affecting pyside2 which is in turn blocking qt_gui_cpp and thus desktop. As a result we’ll have to delay this sync until we can build against pyside2 again.
Since the sync is delayed we’ll remove the sync hold. I don’t have an estimate for when the sync will proceed, when I do I’ll post here.

Closing as this has been fixed with the transition to python3.10.


Tlint configuration is ignored on fix

I am currently facing an issue while trying to run Duster with a specific Tlint configuration. I have noticed that this configuration only seems to work during Lint operations and does not display any errors. However, when running fix, it ignores the configuration and changes all views from $view->with('var', $foo) to view(..., ['var' => $foo]). Although I prefer the latter, I have a challenge with this approach since it adds all the parameters on a single line, making it difficult to read when dealing with more than four-ish variables, is there any way to make a new line instead?
The Tlint configuration:
tlint.json
{
    "preset": "laravel",
    "disabled": ["ArrayParametersOverViewWith"]
}

Could you please provide guidance on how to resolve this issue?
Thanks in advance.

Hi @Bottelet,
The format command requires a different config file:
tformat.json
{
    "preset": "laravel",
    "disabled": ["ArrayParametersOverViewWith"]
}

I'm sure these can be combined into a single config file; you'll have to use both for now.

https://github.com/tighten/tlint/pull/337

Thanks @driftingly !

I don't know if tformat.json was reintroduced, but I had to add it for fix to work as-desired.

The updated TLint needs to be released and pulled into Duster.
I'll be updating everything soon to pull in updated Pint configurations as well.


Add support for excluding one or more subdirectories, files within a specified path

A quick example would be a Redmine installation which has a common owner and group, but which might allow for a different group (or owner) on log files for ingest by rsyslog.
While the user account used by rsyslog could be added to the redmine group (for example), the sysadmin might opt to use a different group to permit read access to the log file. This file (or files) would be the exception to the common owner & group for other Redmine related content.
To keep the log file(s) from triggering a failure, we would need to explicitly specify all other paths in an attempt to omit the log files, or we would need support to exclude the log directory or specific log files within the specified "base" path.

I've almost got this one ready. After some additional testing, I think it will be ready to merge in tomorrow.


[Bug]:   Unrecognized option "recursive".

Version
29.3.1
Steps to reproduce
Node v14.18.2.
Npm  v6.14.10

clone my repo at https://github.com/DashBarkHuss/jest-bug
run npm i
run npx jest NODE_ENV=test  --recursive

You should see
 Unrecognized CLI Parameter:

  Unrecognized option "recursive".

  CLI Options Documentation:
  https://jestjs.io/docs/cli

Expected behavior
I'm trying to run tests in my repo with the --recursive option.
$ npx jest 'test/integration' --recursive NODE_ENV=test
I'd expect this to run.
Actual behavior
Instead, both of these commands:
$ npx jest 'test/integration' --recursive NODE_ENV=test
and
$  npx jest --recursive
Give me:
Unrecognized CLI Parameter:

  Unrecognized option "recursive".

  CLI Options Documentation:
  https://jestjs.io/docs/cli

Additional context
M1 mac
vscode v1.73.1
Environment
npx: installed 1 in 1.419s

  System:
    OS: macOS 12.1
    CPU: (10) x64 Apple M1 Max
  Binaries:
    Node: 14.18.2 - ~/.nvm/versions/node/v14.18.2/bin/node
    npm: 6.14.10 - ~/.nvm/versions/node/v14.18.2/bin/npm
  npmPackages:
    jest: ^29.3.1 => 29.3.1

I'm realizing recursive might not be a flag in jest!

Hi, yes I'm not aware of such a flag 😅 where did you get it from or what did you expect it to do?

A dev had left --recursive in the script command by accident because they copied my mocha command but for jest. So I thought that was how jest worked. My bad!


v0.9.2: Splitter: Language check for Italian comes up as English

The test of the file tests/files/lang-it.txt is reported by the Document class as English instead of Italian.

The issue is when it detects the same quantity of words by language. Given the similarity between languages with Latin roots as we can see here:
en 4
False
es 7
False
fr 3
False
it 7
False
de 0
False
I don't know why it is assigning en by default when verify is False.
If you change the value (12) in the iterator for like (13 or 15) on the function _langcheck. In this way lang-it.txt will pass the test.
I fixed the function to evaluate a list of values and if the list contains duplicates run a new iteration until the list have unique values.

That makes sense :)
Andy
On Wed, Aug 22, 2018 at 3:18 PM, David Molina<EMAIL_ADDRESS>wrote:

The issue is when it detects the same quantity of words by language. Given
the similarity between languages with Latin roots as we can see here:
en 4
False
es 7
False
fr 3
False
it 7
False
de 0
False
I don't know why it is assigning en by default when verify is False.
If you change the value (12) in the iterator for like (13 or 15) on the
function _langcheck. In this way lang-it.txt will pass the test.
I fixed the function to evaluate a list of values and if the list contains
duplicates run a new iteration until the list have unique values.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/andrewferlitsch/Gap/issues/49#issuecomment-415200190,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AV1RaJr2DDGHORlyDoyDp-WSZSfev5yxks5uTdirgaJpZM4WGeLl
.

Fixed in v0.9.3