Finish LSP integration

[ ] Add new requirements to setup.py and Readme (ping CAM about docs too) -> @ccordoba12
[ ] Remove Jedi and Rope from our dependencies and add new ones -> @ccordoba12
[ ] Remove old architecture -> @ccordoba12
[ ] Migrate tests to the new architecture -> @ccordoba12
[ ] Implement/add missing features from LSP -> @andfoy
[ ] Make code completion work on the fly -> @andfoy
[ ] Reorganize or remove LSP preferences page -> @ccordoba12
[ ] Add tests for new features -> @andfoy
[ ] Remove coloredlogs -> @ccordoba12
[ ] Completion is not working in untitled files -> @andfoy
[ ] Rope/Jedi race in pyls -> @andfoy
[ ] Add LSP diagonostics. -> @ccordoba12
[ ] Hint placed on cursor and not mouse -> @andfoy

@andfoy, please don't start to work on this. I'll merge split-plugins first and then we can continue with this.
Also, please make a separate PR for each new feature you add and add new things that need to be done here.

@andfoy, I merged split-plugins last night, so you can start working in your assigned tasks now.

We decided with @andfoy that some LSP features will be implemented for beta2 and the rest in beta3.

hi all. In current master, I fail to make code completion working on the left editor screen. Is it normal ?

Yes, it is. We need to fix some things for Windows yet.


[suggestion] compatability with spyglass-astronomy

these mods are just perfect for eachother https://modrinth.com/mod/spyglass-astronomy

Took a look at that mod and I don't think it has an API for other mods to use.

that's such a shame!

yea...


Update enmasse operator for Kubernetes to version 0.30.2

Updates to existing Operators

[x] Is your new CSV pointing to the previous version with the replaces property?
[x] Is your new CSV referenced in the appropriate channel defined in the package.yaml ?
[x] Have you tested an update to your Operator when deployed via OLM?
[x] Is your submission signed?

Your submission should not

[ ] Modify more than one operator
[ ] Modify an Operator you don't own
[ ] Rename an operator - please remove and add with a different name instead
[ ] Submit operators to both upstream-community-operators and community-operators at once
[ ] Modify any files outside the above mentioned folders
[ ] Contain more than one commit. Please squash your commits.

Operator Description must contain (in order)

[x] Description about the managed Application and where to find more information
[x] Features and capabilities of your Operator and how to use it
[x] Any manual steps about potential pre-requisites for using your Operator

Operator Metadata should contain

[x] Human readable name and 1-liner description about your Operator
[x] Valid category name1
[x] One of the pre-defined capability levels2
[x] Links to the maintainer, source code and documentation
[x] Example templates for all Custom Resource Definitions intended to be used
[x] A quadratic logo

Remember that you can preview your CSV here.
--
1 If you feel your Operator does not fit any of the pre-defined categories, file a PR against this repo and explain your need
2 For more information see here

@lulf, it failed on following error: Cannot deploy console as ConsoleService does not define DiscoveryMetadataURL and OauthClientSecret.

@J0zi The console resource requires minikube to be set up with an oauth provider (i.e. google account, github account etc.) in order to work, so its a lot more involved in plain minikube/Kubernetes compared to OpenShift where the oauth provider is available out of the box.


Change mongo configuration to avoid preallocation

See http://stackoverflow.com/questions/19495587/setting-smallfiles-option-for-controlling-journaling-doesnt-control-the-size

When mongo is installed, files are already preallocated :( Closing this issue


[No QA] Update documentation regarding hooks usage

Details
This PR does two things

Adds an exception to the usage of hooks. Hook from 3rd party libraries will not be permitted if there is no clear or simple alternative to using them.
Static getters and setters are not permitted.

The second one isn't likely to come up too often, but chatted with @tgolen about this one so I think it's worth a quick mention.
Fixed Issues
No Issue but relevant conversation happening here -> https://expensify.slack.com/archives/C01GTK53T8Q/p1617649919372600
Tests
None
QA Steps
None
Tested On

[ ] Web
[ ] Mobile Web
[ ] Desktop
[ ] iOS
[ ] Android

Screenshots

Web

Mobile Web

Desktop

iOS

Android

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.


Improve netlify build performance

It often exceeds 15 minutes build time limit and fails. Investigate if there's a way to improve build performance, for example can we cache node_modules?

https://answers.netlify.com/t/improved-caching-for-yarn-workspaces/36066
I got to set NETLIFY_YARN_WORKSPACES=true - see how it affects

It doesn't make drastic improvement so far. It seems tsdx build takes more time on netlify, so machine resource would be poor. Nothing else we can do ATM.


put cucumber.js as internal dependency in test project so we can upgrade it independent of what we might have in global

e.g.
callback.pending() has been deprecated in cucumber.js but because we are currently relying on global cucumber.js installations, I never noticed it.
New step format is:
callback(null, 'pending');

This should be fixed when we have CI... :(


⚠ Guya.moe Proxied has degraded performance

In a4f5d0a, Guya.moe Proxied (https://ice.guya.moe/) experienced degraded performance:

HTTP code: 200
Response time: 13013 ms

Resolved: Guya.moe Proxied performance has improved in d5ae404 after 5 hours, 5 minutes.


GSB: Don't forget to concretize conformances when processing a same-type requirement

When merging two type parameters T1 and T2, if T2 had a concrete type
and T1 had conformance requirements, we did not "concretize" the
conformances.
As a result, the conformance requirements were not marked as redundant,
which would cause a crash (no assert build) or assertion failure (in an
assert build) later on inside rebuildSignatureWithoutRedundantRequirements().
Fixes rdar://problem/79570734.

@swift-ci Please smoke test

@swift-ci Please test source compatibility

This is the 5.5 cherry-pick of https://github.com/apple/swift/pull/38207.

@swift-ci Please smoke test

@swift-ci Please smoke test Linux


Health check http path?

Is there a monitoring check path that does not generate the cookie?
Discovery Access static resources also generates cookie information on the server.

server-side callback cas api /p3/serviceValidate will also generates  useless cookie information

@chenjpu why doesn't want cookie?

Health checks are all server access, do not need this kind of information, regular checks will produce different cookie.

@chenjpu you are totally right. But the beego frameworks enables cookie for APIs by default. And we don't have time to pick out which APIs don't need cookie. We will not contribute time on this. If you are willing to make a PR, it's welcome.


Author ability to refresh card contents after action performed

Problem
When the user takes an action on a card, like approving an expense report, the card often has to be updated, since the approve/deny buttons are no longer relevant.
Prior designs
Outlook has this for Action.Http, called "refresh cards": https://docs.microsoft.com/en-us/outlook/actionable-messages/adaptive-card#refresh-cards
XML notifications has this via pending update: https://docs.microsoft.com/en-us/windows/uwp/design/shell/tiles-and-notifications/toast-pending-update
Notes

For toast notifications, the card itself disappears when acted on... so for scenarios like that, there's likely no need for the refresh. It's only for scenarios where the card continues to be displayed... a.k.a. bots, Outlook, etc, where updating the contents of the card is relevant. Maybe we could have an additional property, like keepOnScreen, that if set to true forces the notification to stay up? Allowing multi-step interactions?

Hi All, any updates on refreshing cards

@praveenpudi329 can you please describe your scenario real quick? This is likely not going to come in any time this year since it's a huge chunk of work but @dclaux / @matthidinger are investigating a broader issue around Universal Actions that should help somebut that's still in very early investigation stages. It would help to understand your scenario to see how it would/could feed into requirements at this point. Thanks

@praveenpudi329 can you please describe your scenario real quick? This is likely not going to come in any time this year since it's a huge chunk of work but @dclaux / @matthidinger are investigating a broader issue around Universal Actions that should help somebut that's still in very early investigation stages. It would help to understand your scenario to see how it would/could feed into requirements at this point. Thanks

Requirement : We want to send adaptive cards with approve/reject action to group/channel. once some one approves/reject the card, we want refresh the card with some message and hide the actions

@shalinijoshi19 any update on this feature?

as noted above, this should be addressed by Universal Actions / Action.Execute


Interested in code QA ?

Hi, thanks for your time on this plugin.
Just wanted to know if you'd be interested in adding code QA to this repo ? something like black + isort + flake8 would be good for the code base maybe.
Cheers

Why not? I'm not entirely familiar with these tools, so I am quite open to suggestions or offers of help.
I opened discussion thread #31 . Would you like to explain what those tools are (assume that I'm ignorant) and how that could be done?


apply: correct handling of symlinks

Previously, tricky things were attempted with symlinks to make filesystems more
portable. Without operating system support, this effort was wasted and caused
bugs. Code attempting to fixup symlinks has been elided in favor of simply
transporting the link targets as is.
A small bug in lchown was fixed, as well.
Signed-off-by: Stephen J Day<EMAIL_ADDRESS>cc @dmcgowan @dmcgowan

LGTM, though we may want to fix the redundant syscall I pointed out.
I also would like to fix Apply to replace a regular file with a symlink when necessary. I will do this in a separate PR.

I also would like to fix Apply to replace a regular file with a symlink when necessary. I will do this in a separate PR.

This PR does that but it doesn't handle an existing directory. It uses the existence of target to decide whether or not to remove the file. This worked on my local system.
We really need to setup verification tests.

This PR does that but it doesn't handle an existing directory. It uses the existence of target to decide whether or not to remove the file. This worked on my local system.

Ah yes, noticed that after posting the comment. I'm working on a few enhancements to Apply and Verify right now that deal with similar issues.
If it's okay with you, I'll merge this PR first.
Totally agree about tests.

Merging.


New package: WinKnownPaths v0.1.2

Registering package: WinKnownPaths
Repository: https://github.com/musm/WinKnownPaths.jl
Created by: @github-actions[bot]
Version: v0.1.2
Commit: 2e4cef14cafa940f85a5bb9e3cb5b7f96a0b9746
Reviewed by: @github-actions[bot]
Reference: https://github.com/musm/WinKnownPaths.jl/commit/2e4cef14cafa940f85a5bb9e3cb5b7f96a0b9746#commitcomment-40956770

close


feat(forge): file cheatcodes

Motivation
https://github.com/foundry-rs/foundry/issues/1359 https://github.com/foundry-rs/foundry/issues/2006
Solution
Introduce cheatcodes for common operations involving files: reading (fully or line by line), writing (fully or line by line), closing for reading and removing.
Thanks to introduction of string.concat in Solidity 0.8.12, it's possible to easily write CSV rows to files with these cheatcodes by joining columns of data with delimiter. So I don't see clear need for CSV writing support.
I'm also open to comments especially regarding two things:

It's possible to have only one instance of file open for reading, so you won't be able to have different offsets because files and offsets are linked by paths. The solution may be to link them by some kind of id (or file descriptor but that's not necessary imo).
Semantics of writeFile and writeLine since they're behaving differently in terms of trailing newlines: former doesn't write it, and latter does.

I completely missed this.. @shekhirin amazing job!
@mattsse @onbjerg what do you think of a vm.stringify() cheatcode? In my experience, stringifying was very not trivial in some cases.

+1 on a stringify cheatcode that has various overloads to convert value types + bytes to strings

Attempting a quick implementation and will try to PR today.
The next step is to start thinking about how we can do read/write from JSON files


'utf-8' problem! plz help me!

Hi! Thank you for your efforts.
I'm having a problem when using train.py. The output is below-
(tensorflow) C:\Anaconda3\envs\tensorflow\models\research\object_detection>python train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/faster_rcnn_inception_v2_pets.config
Traceback (most recent call last):
File "train.py", line 168, in
tf.app.run()
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\platform\app.py", line 126, in run
_sys.exit(main(argv))
File "train.py", line 93, in main
FLAGS.pipeline_config_path)
File "C:\Anaconda3\envs\tensorflow\models\research\object_detection\utils\config_util.py", line 90, in get_configs_from_pipeline_file
proto_str = f.read()
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 127, in read
pywrap_tensorflow.ReadFromStream(self._read_buf, length, status))
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 95, in _prepare_value
return compat.as_str_any(val)
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\util\compat.py", line 110, in as_str_any
return as_str(value)
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\util\compat.py", line 87, in as_text
return bytes_or_text.decode(encoding)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa1 in position 2816: invalid start byte
The folder path has been named differently, but I think that is not be the cause. I don't know how to solve this problem..... please help me!!

I have encountered the same problem. Have you solved it

solved it???


Support logging to file

As in #554, this supports logging to a file, however in this PR, it is accomplished via a dynamic Chronicle's sink. The reason for a dynamic sink (textlines[dynamic]) is so that file logging can be disabled, because Chronicles' default behavior for textlines[file] is to log to a default file.
The main drawback, as discussed in #554 is that the file is not closed, which is no better than Chronicles. I did attempt to return the opened file from setupLogging and subsequently close it (on SIGINT and SIGTERM), however Chronicles continues to log past these events, so handling of file close would need to come after Chronicles is done with it (I'm not entirely sure if this is doable).

I think the main drawback I see with this is that if you want to have the output match the other switches (e.g. write JSON instead of text lines when log-format is JSON) you'll need to add another sink, and then some extra logic to activate the right sinks and mute the other ones depending on the switch. But if we don't care about JSON, then I guess this is just as good, with the upside that the sink is explicitly stated in the config.

If we swapped the newly added (index 2) textlines[dynamic] in config.nims with json[dynamic], then I assume json output would be written to the file instead of text lines, with no new logic needed.

This would work, but it would also mean we'd now have two different ways to get JSON output depending on whether it's to stdout or to a file. This would as a consequence violate the principle of least surprise as people might see the log-format switch and expect it to affect file output as well, but it won't.
And I'm also somewhat unclear on this (not sure how these nims files work), but you'd also need to recompile to make the change go into effect?

Yes, it would need a recompile for the changes to take effect, however they wouldn't compile because the properties of a json Chronicles output are different than a dynamic textlines output, and as such, outputs[2].writer wouldn't exist.
In my opinion, end users shouldn't (or wouldn't) be swapping these Chronicles options out in config.nims (which simply serves as cli flags during Codex compilation) as end users will use a Codex binary and its own cli flags, eg --log-file=.

fwiw, we're looking to remove this option from nimbus-eth2, instead guiding users to log-rotating redirection tools (ie tee/logrotate etc - logging to file is fraught with issues such as rotation, file ownership etc which chronicles handles poorly at best leading to a sub-par user experience in general.

I did bring this up, @arnetheduck, but the concern that got raised was that we need to support environments where such tools might not be available (e.g. Windows). Though in all honesty I don't think anyone of us bothered to check if Windows had a tee equivalent, which it apparently does (https://superuser.com/questions/74127/tee-for-windows).


Renaming Australia Central2 to Australia Central 2

Need to rename Australia Central2 to Australia Central 2 to be consistent with the remaining doc.
[Enter feedback here]

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

ID: e1a62365-4312-8aad-d2f1-bb5c4184adf1
Version Independent ID: 2ba5b809-8025-d7ee-c756-d6d1bab033fb
Content: Azure SQL Database Connectivity Architecture - Azure SQL Database and Azure Synapse Analytics
Content Source: articles/azure-sql/database/connectivity-architecture.md
Service: sql-database
Sub-service: development
GitHub Login: @rohitnayakmsft
Microsoft Alias: rohitna

@swbhartims Thank you for the feedback.
This is being assigned to the content author to evaluate and update the documentation as appropriate.

@swbhartims Thank you for the feedback.
This is being assigned to the content author to evaluate and update the documentation as appropriate.

@rohitnayakmsft - Here's the feedback I have shared for this doc

@rohitnayakmsft - Here's the feedback I have shared for this doc

#please-close


No such module 'SwiftIpfsApi'

After adding the frameworks from Carthage/Build/Mac, the module is not recognized when I try to import it to a file.  I have tried in both Xcode 9.2 and Xcode 8.0.

Any update?
What are the frameworks to be added on the project after running carthage?


isodd and sin math functions

Overview

Create executors and tests for the ISODD and SIN functions.

Changes

Created a new file mathfuncexecutor.py that will contain executors for all math functions

Created a general function to get single function values from an execution node

Wrote executors for ISODD and SIN, and tested them

Both E2E tests with formula strings and executor-specific tests

Example Output

If you pass in a single column dataframe to the executor, it should return a single column dataframe with the desired results

This commit is conflicted with the existing code. Please merge the up-to-date code to your own fork.

The black format check failed. Please use "make reformat". Also, try "make test" before submitting the commit. I think you need to register the respective functions.

There are conflicts to merge your commit into the main branch. Can you resolve the conflicts locally?

@totemtang resolved!


Responsible Disclosure Policy?

I just encountered this question on SO - which report a potential security issue. I've commented that this is not the way to report such issues - but then noticed the lack of responsible disclosure policy on GitHub (probably me missing it). Maybe consider adding Security.md page? See Ghost's file for example.

If you think there is a security concern, please send mail to<EMAIL_ADDRESS>

I'm not sure - but this is not why I've opened this issue. this issue is about making it easier to find the responsible disclosure policy of this project. This is why I suggested using security.md...

This is a good idea. We will add such a file. Thanks!

done


The list showing app details isn't wide enough

Description of the new feature / enhancement
In the information from the winget list, the name and id columns of some applications are very long, all of which are truncated and cannot be read clearly. Neither self-responsive nor max-width

The width of the following application list is not enough, the information cannot be displayed, and the following are dots

Microsoft Visual C++ 2015-2022 Redistr… Microsoft.VCRedist.2015+.x86                               14.34.31931.0                   winget
Microsoft Visual C++ 2015-2022 Redistr… Microsoft.VCRedist.2015+.x64                               14.34.31931.0                   winget
Windows Software Development Kit - Win… Microsoft.WindowsSDK                                       10.0.22000.832    10.0.22621.2  winget

Proposed technical implementation details
No response

Related:

https://github.com/microsoft/winget-cli/issues/2603

Duplicate of #2603


Updated CONTRIBUTING.md

@SatyamJainShorthillsAI , Re-base and raise again, Your PR contained master branch changes and had 64 files updated some of which you didn't make.

@SatyamJainShorthillsAI , Any update?


Create LICENSE

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@7f22afb). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #13   +/-   ##
=========================================
  Coverage          ?   97.23%
=========================================
  Files             ?       19
  Lines             ?      470
  Branches          ?        0
=========================================
  Hits              ?      457
  Misses            ?       13
  Partials          ?        0

Flag
Coverage Δ

unittests
97.23% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

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 7f22afb...6ff8b75. Read the comment docs.


[WIP] ICA controller/host submodules

Description
The following PR splits the interchain accounts functionality into two distinct submodules - controller and host with a shared types package maintained for common code. This also includes the splitting of GenesisState into both:

ControllerGenesisState
HostGenesisState

Unfortunately this is a very large PR due to the nature of the work. If there is an alternative approach we can take, then I can do my best to make that happen. It might be useful to explore the code outside the diff context by viewing the branch directly.
Splitting the code into their respective submodules uncovered some issues, the most concerning being the registration of shared types which I have tried to address in this PR with the recommendation of @AdityaSripal. However, the approach taken doesn't come without its own issues, a global package level var IsRegistered must be exported due to the way in which package initialisation works in Go. The runtime initialises and loads a package once, and only once. This becomes an issue for instantiation of multiple test chains in the ibc-go testing package. If a testchain chainA registers a number of types and sets IsRegistered equal to true, then a subsequent testchain chainB will skip this step. With this in mind, exporting the IsRegistered bool provides an opportunity to reset this flag (see testing/coordinator.go:42), and allows testchain chainB to register the appropriate types. In my opinion, this is not really an appropriate solution. However, for the purposes of our testing package it may be required.
This problem also exists for the interchain-security ccv module.
A number of subtle tweaks were required to the majority of tests throughout both submodules to accommodate the package splitting. These were mostly to do with module naming and capabilities, and ensuring the correct chain (chainA or chainB) was being invoked to make assertions on state changes.
The remaining work is primarily around separating some controller and host specific code in the shared types package into their respective nested types packages.
closes: #290

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against correct branch (see CONTRIBUTING.md)
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Code follows the module structure standards.
[ ] Wrote unit and integration tests
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[ ] Added relevant godoc comments.
[ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer
[ ] Review Codecov Report in the comment section below once CI passes

I'd like to note that I've disabled the ability to invoke NegotiateAppVersion on controller chains by simply returning an appropriate error.
I've also noticed that we can probably remove the module account in the controller submodule also, as it's only really required inside of the host submodule afaik.

Codecov Report

Merging #541 (6daeac8) into interchain-accounts (b8bc1a8) will increase coverage by 0.00%.
The diff coverage is 82.29%.

@@                  Coverage Diff                  @@
##           interchain-accounts     #541    +/-   ##
=====================================================
  Coverage                79.10%   79.10%
=====================================================
  Files                      134      137     +3
  Lines                    10347    10477   +130
=====================================================
+ Hits                      8185     8288   +103
- Misses                    1753     1776    +23
- Partials                   409      413     +4

Impacted Files
Coverage Δ

...ps/27-interchain-accounts/controller/ibc_module.go
43.24% <0.00%> (ø)

.../27-interchain-accounts/controller/keeper/relay.go
86.04% <ø> (ø)

modules/apps/27-interchain-accounts/types/codec.go
76.31% <ø> (ø)

modules/apps/27-interchain-accounts/types/keys.go
100.00% <ø> (ø)

...odules/apps/27-interchain-accounts/types/packet.go
81.81% <ø> (ø)

...dules/apps/27-interchain-accounts/types/genesis.go
39.28% <40.00%> (-0.72%)
:arrow_down:

.../apps/27-interchain-accounts/host/keeper/keeper.go
85.95% <56.25%> (ø)

...les/apps/27-interchain-accounts/host/ibc_module.go
61.76% <61.76%> (ø)

...interchain-accounts/controller/keeper/handshake.go
82.35% <82.35%> (ø)

...s/apps/27-interchain-accounts/host/keeper/relay.go
82.69% <82.69%> (ø)

... and 9 more


can't run slash commands in dm

https://github.com/brainboxdotcc/DPP/blob/555734a14c45bcb62744b7ce7cad829775e5a9f6/src/dpp/slashcommand.cpp#L578

fix now in dev, will be in next release


Add scss to repo config parser

Fixes an error where custom SCSS config wasn't being parsed.

:+1:


discord: Restructure the channels in the server

Please, I'm in pain, the server is so messy to look at

this isn't pridebot related but I felt like making an issue for it anyways
cc @tyffical @AdamDIOM

this is me testing the webhook hi

ok testing complete yeet


added solution to light0j-1106

merged it...
Resources/Images changed to resources/images for earlier convention and windows(uppercase lower case problem, ubuntu cares about uppercase and lowercase)..
I think the naming should all uppercase or all lowercase, that's how we can manage to avoid the problem in a easier manner...


Encountered "undefined method `require_keys' for Figaro:Module (NoMethodError)"

In my config/initializers/figaro.rb
I put:
Figaro.require_keys("MANDRILL_API_KEY")

but got the following:
Exiting
/Users/guycao/code/oms_on_rails/config/initializers/figaro.rb:1:in `<top (required)>': undefined method `require_keys' for Figaro:Module (NoMethodError)
        from /Users/guycao/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.2/lib/active_support/dependencies.rb:241:in `load'
        from /Users/guycao/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.2/lib/active_support/dependencies.rb:241:in `block in load'
        from /Users/guycao/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.2/lib/active_support/dependencies.rb:232:in `load_dependency'
        from /Users/guycao/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.2/lib/active_support/dependencies.rb:241:in `load'
...

Figaro version - 0.7.0
Ruby version - ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]
Rails version - 4.1.2
For your information, the environmental variable does exist in the application.yml
but even if it didn't exist, it shouldn't complain about not being able to find the require_keys method.
Am I missing something? Maybe a require 'figaro'?

Hi @bfaguy, thanks for posting the issue and the supporting information. The first section of the current readme directs Figaro 0.7.0 users to the old readme. You'll see that the require_key method doesn't exist until version 1.0.

@laserlemon thank you


Added helm chart

Created a helm chart to support the cert manager install. If there's interest in getting this added to the repo I can support the other install options.

Thanks for the constructive feedback @scholzj. I believe i've addressed the main points in your comment. The labels change is inline with helm best practice but happy to update the Makefile to overwrite the app label to match the existing manifests (https://helm.sh/docs/chart_best_practices/labels/).
Automating helm releases and azure pipelines are new territory for me so I likely haven't implemented everything required for the release. I'm happy to keep chipping away at this as I learn more or if you're not happy with the direction it's heading I won't be offended in abandoning the PR.

Sorry, I did not get to this today, but I will have a look tomorrow.

No rush! I likely won't be doing much on this until after new years. Enjoy the Christmas break!

I also (as someone who does not really use Helm) wonder how will this be published by release. Can this chart be somehow added to the same Helm repository where the operator is as well (which is currently https://strimzi.io/charts/index.yaml)?

This is not something to be added to this PR, I can deal with the release process. I'm just looking for theoretical knowledge. Do you have an idea about how this works ^^^? (given you clearly understand Helm way better than I do ;-)). Can we just add this to the existing index.yaml and share the repository? Or will a separate one be needed?

Can we just add this to the existing index.yaml

Yes, a single helm repository can host multiple charts. You should be able to update the helm index the same way you do for the operator chart via the helm repo index command. I just tested locally by dropping the packaged helm chart (.tgz file) into the charts/ directory of the strimzi.github.io project and updated the index.
e.g.
cd src/github.com/strimzi/strimzi.github.io/charts

## Copy the packaged chart to the existing index.yaml location
cp /path/to/strimzi/drain-cleaner/strimzi-drain-cleaner-helm-3-chart-1.0.0.tgz .

## Update index.yaml and reference the v1.0.0 github release
helm repo index . --merge index.yaml --url https://github.com/strimzi/drain-cleaner/releases/download/1.0.0/

## Cleanup locally copied helm package
rm strimzi-drain-cleaner-helm-3-chart-1.0.0.tgz

Note that the above would need to be completed after the packaged helm chart is available in the github release for v1.0.0.
I have never needed to manage a static helm repo before (I personally use chartmuseum with S3 to manage persistence) which takes care of managing the state of index.yaml

@ppatierno Do you plan to review this? With me and @im-konge, it now has the required approvals. We can wait if you plan to look at it. If you don't, I will proceed with merging it.

@scholzj I think you can move forward on this.

Thanks for the PR @njohnstone2


[Feature Request] Add Date/Time to Odom Records - Trip Record

Having a trip record is something that is helpful for users that need to track mileage for work/taxes.
I think this could be easily implemented by adding a date to the second odometer field and then allowing times as well. This would allow users to track the time and mileage for work/tax purposes.

You could add an extra field in settings>server wide settings>extra fields


How to add LODs to staticmesh with python?

Why my code is doesn't work?

And, The last line output just one key:

Hi, the SectionInfoMap is completely under your control.
You can even clear it: FinalMesh.SectionInfoMap.Map = {}
and you will end with all the fields set.
The only thing you need to remember is that the key is a 32bit number, with the first 16bit mapped to the LOD and the others to the section:
index = (lod << 16) | section

FinalMesh.SectionInfoMap.Map = {index: MeshSectionInfo(MaterialIndex=x,bCastShadow=True)}

Thank you so mush~ 👍


Support Tokio runtime

Hello!
Would you consider adding support or accepting a PR that adds support for tokio in addition to async-std?
I would envisage using feature flags in the same way that something like https://github.com/launchbadge/sqlx does.

yes, I think it would be great being able to switch based on a flag

Lettre is adding tokio support in https://github.com/lettre/lettre/pull/449, and it looks like they are planning to release it soon in their 0.10.0-alpha.2 release


Refactor tests to remove Enzyme and use react-testing-library

What this PR does / why we need it:
This refactors tests a bit to remove Enzyme dependency and use react-testing-library everywhere. Since we don't need enzyme-specific stuff, it's one fewer dependency to worry about when upgrading and dealing with vulnerabilities.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:

@sarahzinger So another Christmas miracle - went to see where the testId ends up in Segment, but now the test works 🤷🏻♀🎁


User go confused by using code snippets from TFR tutorial

See https://mne.discourse.group/t/tfr-morlet-temporal-resolution/2785
The user simply copied the code block with decim=3 and was surprised the data got decimated. I think the tutorial should be more explicit about this, WDYT?

yes, in general we should always call out anything we do in the tutorials (for sake of build efficiency) that you wouldn't normally do locally.

Working on this!


Metric names are case sensitive

The specification states that metric names are case insensitive. If we see a metric which is the same except for name-case, they are the same metric stream and should be exported as a single stream with the first encountered name. Currently we treat them as separate streams.

What would the guidance be for SDKs like JS that already made a different choice? Should we coalesce on the new behavior as a bug fix and just accept that it is breaking, or should we flag this for 2.0?
edit: to be clear, we didn't make this choice consciously. we simply missed it while building the metric sdk

I see this as a bug fix.
First off, there shouldn't be any public interfaces or functions that change from this. Only the export behavior.
Specifically for the duplicate stream case: the duplicate instrument registration section already specifies that identical instruments need to aggregated into a single data stream:
Originally posted by @MrAlias in https://github.com/open-telemetry/opentelemetry-specification/issues/3539#issuecomment-1652354187

@legendecas do you have time to look into this?

I agree that tagging this as a bug fix is reasonable.


VerticalSwipeRefreshLayout does not work as expected.

The code in VerticalSwipeRefreshLayout shows that when the user swipes horizontally, the swipeRefreshLayout will not handle the move event(not show refresh progress view), but It always show the refresh progress view.
So if I put a horizontal view in the UltimateRecyclerView, I can not swipe horizontally.
Please help.
Thanks.

u will need to implement your own swipe container for your item for each swipe detection. You may specify your concept in here with pictures.


False positive when array merge is used as left part of the foreach

This code should not raise the error about using array_merge() in the foreach
            foreach ($this->findBy($where)->order(implode(',', array_merge([$sortField], $primary))) as $row) {
                $sorting += $sortingStep;
                $this->update($row, [$this->sortingField() => $sorting]);
            }

basically the problem is only if some variable is re-assigned with array_merged value of itself with something else... e.g.:
$a = array_merge($a, $b);

next one example:
$defaultParams = [
    ...
];

foreach ($allJsonParams as $jsonParams) {
    $params = array_merge($defaultParams, $jsonParams);
    func($params);
}


bundler/capistrano assumes standard releases directory

bundle install fails during cap deploy when the releases directory contains a 'non-standard' subdirectory, e.g., :
rvogel@rimustaging:/var/www/apps/pd/releases$ ls
20110501173101<PHONE_NUMBER>0238  pd_rb1.8  trunk0
in this case, bundle install gets the Gemfile from trunk0, and installs .bundle/config into trunk0, even though the deploy is building<PHONE_NUMBER>0238.
It appears that bundle install recalculates the release_path based on a sort on the directory listing, rather than the cap deploy calculation.
The workaround (after 2 hours...) is easy - I just removed the non-standard subdirectories from releases... should be fixed... not confident enough myself to do it .. sorry.

The problem is that bundler should be using release_path not current_release.
release_path is the release being built by this run of Capistrano.
current_release is the latest release.
This problem crops up if clocks get skewed and other problems like that.

The clock skew would be on the deployer (the system running cap deploy).
Specifically, if there is a release that is newer than the latest release.

I filed a bug also with capistrano, since there are more issues than just bundler when the clock gets skewed: https://github.com/capistrano/capistrano/issues/124
bundler still needs to use release_path, though.

As cgreigo pointed out above, you will need to override releases if you have a custom setup.

I don't have a custom setup. I just deployed from a system who's clock got out of sync.
The right thing to do is to use release_path -- that's the path that the cap command is deploying to. If you override the timestamp with something else, that path will still be release_path.

Thanks for your feedback. As long as capistrano's maintainers say Bundler should use current_release, it's going to do that.


ReadConsoleW not handling tab completion correctly

Environment
Microsoft Windows [Version 10.0.17763.503]
Steps to reproduce
#include <Windows.H>

int main()
{
    HANDLE hStdInput = GetStdHandle(STD_INPUT_HANDLE);

    WCHAR buf[1024];
    DWORD read = 0;
    CONSOLE_READCONSOLE_CONTROL crc = {};
    crc.nLength = sizeof(crc);
    WCHAR c = L'\t';
    crc.dwCtrlWakeupMask = 1 << c;
    ReadConsoleW(hStdInput, buf, ARRAYSIZE(buf), &read, &crc);

    HANDLE hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);

    DWORD written = 0;
    WriteConsoleW(hStdOutput, L"\n", 1, &written, NULL);
    WriteConsoleW(hStdOutput, buf, read, &written, NULL);

    return 0;
}

Run the above program and type in (no return): abcdef
Move the cursor back 3 places.
Press the TAB key
Expected behavior
I expected buf to contain abc\tdef
Actual behavior
Actually buf to contain  abc\tef
Notice that the tab character is in the correct place but it seems to have overwritten the character rather than inserted it. The length, however, has been increased by one but the last character is a space which wasn't typed in. This makes it impossible to correctly handling tab completion.

Is this a regression from a previous version of Windows?
I'm pretty sure this is by design with the Console API. Sounds to me like you want to set  ENABLE_INSERT_MODE with SetConsoleMode.

Would you mind testing this after enabling [ ] Use legacy console?

I not sure if it is a regression, just something I have noticed now. I think the CONSOLE_READCONSOLE_CONTROL was undocumented for a long time.
ENABLE_INSERT_MODE on or off doesn't change the behaviour.
Use legacy console has no effect either.

We're making this a bug to make sure that it hasn't regressed since previous versions.
I believe @dhowett-msft menitoned something about a rouge space character at the end of the buffer in this scenario - we should make sure it hasn't changed since previous versions

Im not surprised its not a regression.
My current workaround is to read the lost character from the console.
I assume this was never picked up because cmd.exe throws away everything after the tab anyway.


Lxd Cluster hangs with too many lxd processes

Required information

Distribution: Ubuntu
Distribution version: 18.04
The output of "lxc info" or if that fails:

Kernel version: 4.15.0-23-generic
LXC version: Snap Edge (git-c70d857)
LXD version: 3.2
Storage backend in use: ZFS and Ceph

Issue description
I have an LXD cluster of 5 machines. Every day i see some lxd on some nodes not responding. lxc list hangs infinitely The container on these nodes show ERROR on using lxc list --fast. On logging into one of the nodes i found that there are many lxd processes alive.
lxd --logfile /var/snap/lxd/common/lxd/logs/lxd.log --group lxd
All lxc commands are hanging except for lxc cluster list

+--------+---------------------------+----------+---------+----------------------------------------+
|  NAME  |            URL            | DATABASE |  STATE  |                MESSAGE                 |
+--------+---------------------------+----------+---------+----------------------------------------+
| gen8-1 | https://<IP_ADDRESS>:8443 | YES      | ONLINE  | fully operational                      |
+--------+---------------------------+----------+---------+----------------------------------------+
| gen8-2 | https://<IP_ADDRESS>:8443 | YES      | ONLINE  | fully operational                      |
+--------+---------------------------+----------+---------+----------------------------------------+
| gen8-3 | https://<IP_ADDRESS>:8443 | YES      | ONLINE  | fully operational                      |
+--------+---------------------------+----------+---------+----------------------------------------+
| gen8-4 | https://<IP_ADDRESS>:8443 | NO       | BLOCKED | waiting for other nodes to be upgraded |
+--------+---------------------------+----------+---------+----------------------------------------+
| gen8-5 | https://<IP_ADDRESS>:8443 | NO       | BLOCKED | waiting for other nodes to be upgraded |
+--------+---------------------------+----------+---------+----------------------------------------+

Steps to reproduce
Not sure how to reproduce
Information to attach
/var/snap/lxd/common/lxd/logs/lxd.log is empty.

[ ] Any relevant kernel output (dmesg)
[ ] Container log (lxc info NAME --show-log)
[ ] Container configuration (lxc config show NAME --expanded)
[ ] Main daemon log (at /var/log/lxd/lxd.log or /var/snap/lxd/common/lxd/logs/lxd.log)
[ ] Output of the client with --debug
[ ] Output of the daemon with --debug (alternatively output of lxc monitor while reproducing the issue)

We have indeed observed issues when upgrading a LXD cluster using the snap. The fact that you are using the edge channel makes it a lot more likely that you will be hitting those issues, since the edge snap gets refreshed at every commit in master.
For now the workaround is to kill all dangling lxd processes and restart the systemd unit (systemctl restart snap.lxd.daemon).
As mentioned, f you use the stable channel, the chance of hitting this bug should be much lower. We'll be working on it, but so far we could not reproduce it.

With "I have same version lxd snap installed in my claster" I presume you mean that "lxc info" reports the same version on every node? (e.g. "Snap Edge (git-c70d857)").
Even in that case, the fact that you have multiple lxd processes running on the same node is an evidence of the upgrade bug, which is likely to break internal notifications and make "lxc cluster list" show the BLOCKED status.

Could you post a ps fauxww output from one of the affected systems?
I'm interested to see if those lxd processes are part of the same group of processes and also see whether they're stuck on I/O wait or something else.

@freeekanayaka note that @shantur isn't talking about waitready processes here so that's likely something a bit different from what you saw in the past. It could be a case of a sub-task of LXD that got stuck somehow or if it's a previous instance of the daemon, it'd be one that didn't write a pid file nor has an open socket (as either of those would get killed) which would be pretty puzzling.
@shantur could you also post the full output of journalctl -u snap.lxd.daemon | cat?

@stgraber: I ended up re-creating my cluster from scratch using stable snap. I will keep an eye and post here if i get similar issue again.

Okay, we'll close this for now then as we don't have enough information to debug this further.
Please comment here if it happens again and we'll re-open.


Reduce API calls on main page from 30+ to 1

Currently the main page calls the Jenkins API once to get all the build numbers, and calls it again for each and every build number. The goal is to try to make one or two calls when the user loads the main page, but still display information such as:

duration
version
result
start time
if it is running

for each build.


bug: fix conda install with env file

Signed-off-by: Jinjing.Zhou<EMAIL_ADDRESS>Fix #830. Now we changed the way to install from conda yaml file, by calling conda env update -f env.yaml. Note this doesn't fix #833 scenarios. Will address that in another PR

/hold
Please assign me to review if it is ready.

/assign @gaocegege


HHH-11147 (5.3) #2

https://hibernate.atlassian.net/browse/HHH-11147
Supersedes https://github.com/hibernate/hibernate-orm/pull/2883
Backport of https://github.com/hibernate/hibernate-orm/pull/2846 to 5.3.

This was superseded by #2908


Add CORP reliability diagram

Closes #14.
This is the first step in widening the scope of the library to include visual diagnostics of calibration as a complement to scoring rules. Because the library's primary function remains to compute metrics, not plotting, matplotlib will not be included as a dependency, but an exception is raised when it is not installed in the user environment.

I think this is ready for review @sallen12, not sure if it's the best choice for the API but we can always adapt it later.


Task - Refactor H2 components to work without H2 scripts

Description
These components will be easier to use in the future if we refactor them to be more self-contained and use React conventions, instead of relying on outside scripts.

Dialog
Accordion
Alert
Form
Select input

#5497 already handles the Dialog and Accordion components.


[Bug] Can't access folders on NAS

Current Behavior
I've installed the container with
version: '3'
services:
  mkvtoolnix:
    image: jlesage/mkvtoolnix
    ports:
      - "5800:5800"
    volumes:
      - "/volume1/docker/mkvtoolnix:/config:rw"
      - "/volume1:/storage:rw"
    environment:
      - USER_ID = 1026
      - GROUP_ID = 101

When I access to mkvtoolnix, I can see folder, but there is nothing inside videos, or download. 1026 correspond to my account, and 101 to the admin group. This user and group have permission for rw in those folders. Any idea ?
Expected Behavior
See files
Steps To Reproduce
No response
Environment
Synology DS1821+
Container creation
version: '3'
services:
  mkvtoolnix:
    image: jlesage/mkvtoolnix
    ports:
      - "5800:5800"
    volumes:
      - "/volume1/docker/mkvtoolnix:/config:rw"
      - "/volume1:/storage:rw"
    environment:
      - USER_ID = 1026
      - GROUP_ID = 101

Container log
???

Container inspect
No response
Anything else?
No response

Did you check that the environment variables are correctly set with docker inspect mkvtoolnix ?. Usually there is no space around the = character:
    environment:
      - USER_ID=1026
      - GROUP_ID=101


Turn all warnings in PrepJSInterop into errors

See #130

I want to do this, once it is time :)

OK ^^

Generalizing this to include all warnings generated by PrepJSInterop into errors.

@gzm0

I want to do this, once it is time :)

It is time :)


cleanup: Refactor time parsing functions.

This PR copies the time parsing functions from the Spanner project to
the common library. It also replaces the existing functions to parse
RFC3339 timestamps with the spanner functions. A future PR will remove
the existing functions in the Cloud Spanner repository in favor of
these.
As a side benefit, this fixes #530

This change is

I may have declared success too early... Seems like the new parser is less strict in some platforms.

I may have declared success too early... Seems like the new parser is less strict in some platforms.

Yes.  All of the new failures (that is, new successes) are of the "short" variety.  std::get_time() does not demand that the MDhms fields have width 2.
Expected: ParseRfc3339("2018-1-18T14:42:03Z") throws an exception of type std::invalid_argument.
  Actual: it throws nothing.
[  FAILED  ] ParseRfc3339Test.DetectShortMonth (0 ms)

google/cloud/internal/parse_rfc3339_test.cc:204: Failure
Expected: ParseRfc3339("2018-05-1T14:42:03Z") throws an exception of type std::invalid_argument.
  Actual: it throws nothing.
[  FAILED  ] ParseRfc3339Test.DetectShortMDay (0 ms)

google/cloud/internal/parse_rfc3339_test.cc:231: Failure
Expected: ParseRfc3339("2018-05-18T1:42:03Z") throws an exception of type std::invalid_argument.
  Actual: it throws nothing.
[  FAILED  ] ParseRfc3339Test.DetectShortHour (0 ms)

google/cloud/internal/parse_rfc3339_test.cc:258: Failure
Expected: ParseRfc3339("2018-05-18T14:2:03Z") throws an exception of type std::invalid_argument.
  Actual: it throws nothing.
[  FAILED  ] ParseRfc3339Test.DetectShortMinute (0 ms)

google/cloud/internal/parse_rfc3339_test.cc:285: Failure
Expected: ParseRfc3339("2018-05-18T14:42:3Z") throws an exception of type std::invalid_argument.
  Actual: it throws nothing.
[  FAILED  ] ParseRfc3339Test.DetectShortSecond (1 ms)

I may have declared success too early... Seems like the new parser is less strict in some platforms.

Yes. All of the new failures (that is, new successes) are of the "short" variety.

There is also accepting t as a separator for the date vs. time parts:
[ RUN      ] ParseRfc3339Test.ParseAlternativeSeparators
unknown file: Failure
C++ exception with description "2018-05-18t14:42:03z: Failed to match RFC3339 date-time" thrown in the test body.

RFC3339 requires that both forms be accepted:
https://tools.ietf.org/html/rfc3339#section-5.6

std::get_time() does not demand that the MDhms fields have width 2.

But RFC3339 does, we could take the position that we should be "generous in what we accept".
I had also removed the checks for "month-day must be in this range":
https://tools.ietf.org/html/rfc3339#section-5.7
But now I wonder.

PTAL.
Note that TimestampFromString() accepts arbitrary timezone offsets, because the existing ParseRfc3339() function did too. I renamed the function moving from spanner TimestampFromStringZ() in case we want the more string 'Z-only' parsing.
I am not using std::get_time() to parse RFC3339 timestamps as it looks that old versions of libc++ and stdlibc++ do not (a) support t as a separator between date and time, and (b) do not check the length of the fields, and (c) accept out of range month days.  I left the generic ParseTime() function alone because it seems like it could be useful for other purposes.
Still used std::put_time() for formatting, and the TimeZ, ZTime functions to convert between std::time_t and std::tm.

There is also accepting t as a separator for the date vs. time parts

That should already be handled.  I think the problem with the case you quoted was 'z' -v- 'Z', which we can address.
[Late News: Apparently strptime() doesn't do the case-insensitive comparison for literals that std::get_time() does.  Sigh.]
I'm not sure what "say" means in "Applications using this syntax may choose, for the sake of readability, to specify a full-date and full-time separated by (say) a space character", but with strptime()/std::get_time() we would need to introduce an alternate format specifier to handle that.  I'm not sure that implies building our own parser.  Perhaps we could just do some simple transformations on the input string, that could also handle the case-insensitivity question.

But RFC3339 does [demand MDhms fields have width 2], we could take the position that we should be "generous in what we accept".

Yes, that is my thought.

I had also removed the checks for "month-day must be in this range"

We can certainly add a simple month-length check after converting to the std::tm in ParseTime().

Note that TimestampFromString() accepts arbitrary timezone offsets, because the existing ParseRfc3339() function did too. I renamed the function moving from spanner TimestampFromStringZ() in case we want the more string 'Z-only' parsing.

The spanner TypeCode proto says, "The time zone must be present, and must be "Z"."  If storage/bigtable require arbitrary offsets then I agree we would need to write parsing code (std::get_time() doesn't support tm_gmtoff, and it is a glibc extension for strptime().)

Closing for now. After talking to @devbww we need some more pre-work.


ComboBox again being overdrawn

ComboBox is again being overdrawn by other widgets when popped out. This was previously fixed with the frame buffer.

Nope, I recently found a problem again: When combobox is popped out and there's something under the popup and you move the mouse cursor there, the underlying widget will be placed above the popup.

Time to think of another change to the event handling system ;). You're not getting away that easily ^^

Fixed in 1faa311f7b1d4b09a93653ef57be10dd18d1ec94.


feat: update ci and release rules, so marked this as a new feature-1

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


[GOBBLIN-1387] Add function for jobcontext to access datasetstate failures

Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[x] My PR addresses the following Gobblin JIRA issues and references them in the PR title. For example, "[GOBBLIN-XXX] My Gobblin PR"

https://issues.apache.org/jira/browse/GOBBLIN-1387

Description

[x] Here are some details about my PR, including screenshots (if applicable):
Email notifications look into JOB_FAILURES_KEY, which is set by DatasetState.
JobContext's reference to it's own jobState is misleading here as it does not track dataset state failures (in terms of amounts, only if it is passed/failed).

Add a function to track the dataset state failures from jobContext
Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason:
Added unit tests in JobContextTests

Commits

[x] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Codecov Report

Merging #3225 (1f189da) into master (f6e0632) will decrease coverage by 37.15%.
The diff coverage is 0.00%.

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


raidboss: Un-commenting durations in DSR timeline

It looks like some syncs were commented out, but the durations got accidentally commented out along with them.

Thanks!


Implement caching of editors

LeBlender has a way of easily enabling caching of specific editors, by setting a config value of the cache periode.
How about adding some config values for enabling caching of DTGE's?
Like (with default values)
"cachedSeconds": 0,
"cacheByPage": false,
"cacheByMember": false,
"cacheByContent": false

If cachedSeconds is set to more than zero, the output should be cached.
cacheByPage and cacheByMember is the equivalent of the properties on Html.CachedPartial() from Umbraco. (https://our.umbraco.com/documentation/reference/templating/mvc/partial-views#caching)
cacheByContent would use the contextualKeyBuilder and set the key to a serialized version of the editor value.

On a second thought, cachebyContent wouldn't be necessary as the cache is being rebuilt every time the content changes :)

Thanks for the suggestion @skttl. 👍
I haven't given it much thought yet, but didn't want to ignore you either 😃
I'm not sure if cacheByMember is relevant either.  I guess cacheByPage would always be true? as the DTGE cell would be unique on a page - as in they are given a unique key (Guid).
Were you thinking that we could use Html.CachedPartial for this? My recollection is that it only works when debug=false (in Web.config). Otherwise we'd need to roll our own - which is fine, just means that we'd need to find a way to invalidate the cache too.
We'll give it some more thought, that was just my initial feedback.

I was thinking Html.CachedPartial
Over the weekend I played around with my grid rendering, and thought about having it as a Grid feature instead, in case I would want to use custom non-DTGE editors, like macro (which obviously is cacheable already 🤦♂ ) or the forms editor.
So I might go that route instead.

@skttl What did you end up doing for this? Is it more a Grid feature or DTGE?

I think it should be more a grid feature than DTGE - at least that's how I ended up implementing :)

Late to the game, but my 2 cents. If it's needed outside of DTGE then it sounds like a core grid feature request. If you need it in DTGE, then much like "Toggle Gate" with Nested Content, I think this can be achieved by having a cache option on the DTGE config and then using Html.CachedPartial to handle the caching. Ultimately, I don't think it needs to be a "baked in" DTGE feature.

Agree - was the same considerations I had

OK cool. I'll close this ticket off. Thanks all!


how to change the position of the notification?

I'm using 1.6.1 installed via npm install
alertify.logPosition("top right");
alertify.success("saved");

console complains on first line, saying function doesn't exist.

Did you import the module inside your js file?

yes, I see the notification at the bottom right position. I Checked source
code and there is no method logPosition, but it exists inside current git
head. It means npm has older files for some reason
On Fri, Feb 19, 2016 at 1:44 PM, Kaushal<EMAIL_ADDRESS>wrote:

Did you import the module inside your js file?
—
Reply to this email directly or view it on GitHub
https://github.com/alertifyjs/alertify.js/issues/71#issuecomment-186421102
.

--
*Simplicity - Beauty of the Person. *
Clickbrand.com - making tomorrow today

Are you sure you're using the same Alertify project? There are actually a few different ones on npm, and this one it currently at version 1.0.6.
I think you might be using this Alertify package currently, which is at v1.6. That's a different fork of the original project, and so has a bit different feature set.


Fixed Problems in Vue.js Generators when using PHP7.

Objects properties can not be accessed as array object['name'] but as object->name.

I don't recommend that. The better solution is as follows: Implementing ArrayAccess interfaces
class GeneratorField implements \ArrayAccess
{
    public function offsetGet($key) {
        if ($key == 'fieldTitle') {
            return Str::title(str_replace('_', ' ', $this->name));
        }

        return isset($this->$key)?$this->$key:false;
    }

    public function offsetUnset($key) {
    }
    public function offsetSet($key,$value) {
    }
    public function offsetExists($key) {
        return isset($this->$key);
    }
}


[Monaco] Implement interactions with function and variable tabs

Clicking on function or variable tabs should insert function or variable at cursor.
Fix #13727 as part of this issue

Closed by (??? @drdelambre)

#15636


Implemented checks on system_info.py

Current behavior
The get_os_version function in neogpt/utils/system_info.py is missing.
Proposed changes

Task: Implement the get_os_version function in neogpt/utils/system_info.py.

Details: The function should return the operating system currently in use.

Additional Information: Also implemented other functions.

I have implemented all the functions except the neogpt_info().

[x] Implemented get_python_version() to return the current Python version.
[x] Implemented get_os_version() to return the OS the system is using.
[x] Implemented get_ram_info() to get the Free/Used RAM capacity.
[x] Implemented get_cpu_info() to check the resources utilized.
[x] Implemented get_neogpt_version() to check the current version of NeoGPT.

https://github.com/neokd/NeoGPT/issues/151
https://github.com/neokd/NeoGPT/issues/150

Checks

[x] All commits in this Pull Request are signed and Verified by Github.

@ashikshafi08 is this under JWOC??

@ashikshafi08 if ur working on it please ping a message in the issue


configurable distribute_reduction_method in Model.

additionally allows to reduce with sum to account for the metrics/losses divided by global batch size -  when training using custom training step and MirroredStrategy.
This addresses https://github.com/keras-team/keras/issues/15509

I ran all the unit tests in keras/engine, however I couldn't find a good way and an example for the test to write for this functionality. I would appreciate some guidance here.
Check out keras/engine/training_test.py, e.g. test_compile_fit_evaluate_predict_with_mirrored_strategy. You can write a similar kind of test, but for a model with a custom train_step, and with a correctness check.

Hello @kretes, thanks for the PR. Model.fit() takes care of the loss scaling, and upon some investigation I believe this change (of allowing different reduction method) is not needed for the following reason:

With MirroredStrategy, the output from the strategy.run(run_step) is no longer a distributed value (and therefore it takes this path) because Keras uses "sum aggregation" with "on-read synchronization" for metric weights. That is, as soon as you take the division of total and count, the two variables themselves synchronize across the replicas, so the result of the division is always a simply eager tensor.

With TPUStrategy, TPUDistributedVariable manages to synchronize the values across the replicas before Keras sees the result, so there do exist multiple values (representing the values across the replicas) but they contain the same values. It's taking the reduction='first' path which is fine because taking anyone is the same result. "sum" reduction method won't make sense because the loss becomes proportional to the number of replicas. The code path prevents the MirroredStrategy/PSS case from getting affected regardless of 'first' or 'sum', but it does affect TPUStrategy in which case using 'sum' reduction method causes incorrect results.

Hi @rchao, thanks for the review.

With MirroredStrategy, the output from the strategy.run(run_step) is no longer a distributed value (and therefore it takes this path) [...]

Investigating strategy.run(run_step) output in a test case I wrote (invoked in make_train_function and make_test_function) - by simply adding a print statement with the results shows me this:
{'loss': PerReplica:{
  0: <tf.Tensor 'truediv:0' shape=() dtype=float32>,
  1: <tf.Tensor 'replica_1/truediv:0' shape=() dtype=float32>
}}

and so it isn't catched by https://github.com/keras-team/keras/blob/b88f655b5fb81d157e1489cf4f3eff577a81203f/keras/engine/training.py#L3684-L3685 and the code proceeds to do a reduction.
It can be as well confirmed that changing the setup in the test - by commenting the line https://github.com/keras-team/keras/blob/ab78a0dd1fe955f88ef75c912e6bf183def07eda/keras/engine/training_test.py#L184 - makes it fail - therefore the reduction method has the effect on the returned metrics.
We observe same when running a real training here - without the change - the metrics we see are small by a factor of no. of replicas.

[...] because Keras uses "sum aggregation" with "on-read synchronization" for metric weights. That is, as soon as you take the division of total and count, the two variables themselves synchronize across the replicas, so the result of the division is always a simply eager tensor.

I don't know Keras that well to say how this affects this use case. To be sure - I am not using any metric weights here.

With TPUStrategy, TPUDistributedVariable manages to synchronize the values across the replicas before Keras sees the result, so there do exist multiple values (representing the values across the replicas) but they contain the same values. It's taking the reduction='first' path which is fine because taking anyone is the same result. "sum" reduction method won't make sense because the loss becomes proportional to the number of replicas. The code path prevents the MirroredStrategy/PSS case from getting affected regardless of 'first' or 'sum', but it does affect TPUStrategy in which case using 'sum' reduction method causes incorrect results.

I am not using this path, so this might be harder to nail. Is there any way to simulate TPUStrategy in tests?

The whole story started by following the docs in https://www.tensorflow.org/guide/distributed_training#use_tfdistributestrategy_with_custom_training_loops: Especially the fragment
You used [tf.nn.compute_average_loss](https://www.tensorflow.org/api_docs/python/tf/nn/compute_average_loss) to compute the loss. [tf.nn.compute_average_loss](https://www.tensorflow.org/api_docs/python/tf/nn/compute_average_loss) sums the per example loss and divides the sum by the global_batch_size. This is important because later after the gradients are calculated on each replica, they are aggregated across the replicas by summing them.

Here we are talking about the gradients that are aggregated by summing - That's why I assumed the same should be done to metrics, and this is what we talked about in https://github.com/keras-team/keras/issues/15509 and it seemed a good direction - see https://github.com/keras-team/keras/issues/15509#issuecomment-948794332

Hello @kretes, thanks for more information. With your testing code, can you check a couple things:

do the returned replica values from strategy.run() have the same values, or they differ?
if you increase the number of replicas, do the loss and metrics value observed from Model.fit change? They are supposed to be the same if the layers have the same initialized weights.

Hi @kretes Can you please check build failures. Thank you!

@haifeng-jin code reformatted

This branch cannot be rebased due to conflicts

Please rebase. If you run into you can just create a new PR from a new fork.

Hi @kretes Can you please check @fchollet's comments and keep us posted ? Thank you!

@rchao Were all of your comments addressed?

Thanks @kretes! I took a closer look at the test cases and it appears to me that "sum" reduction method is needed here because of the custom train_step, whereas with the default train_step and gradient aggregation, we don't expect the "sum" method to be necessary.
I think this PR is fine as long as we make sure it's clear that default training step users shouldn't need to adjust the method via the setter. Can you supplement such information (by default, tf.distribute takes care of synchronization so that "first" is sufficient) in distribute_reduction_method's doc?

@rchao yes, that's right indeed, it is just needed when a custom train_step is used. I've added a relevant note in the docstring in https://github.com/keras-team/keras/pull/16664/commits/5be6742aedc47c23555b642b599f50323b85c61e
At the same time it might be worth pointing users to this option by adding a note in https://www.tensorflow.org/guide/distributed_training#use_tfdistributestrategy_with_custom_training_loops . I will extend the documentation there and open a PR in tf for that.

@lucasdavid I understand the idea of the default being an auto value. At the same time the suggested implementation would be something different than the issue I am trying to solve.
So far for TPU usage the reduction was always first in train and test step. What do you want to achieve now?
Your suggested code snippet changes the reduction to sum whenever user didn't configure it anyhow and when _is_tpu_multi_host(strategy) is False. Why should it be so?

@kretes from what I gathered from @rchao's comment,

The code path prevents the MirroredStrategy/PSS case from getting affected regardless of 'first' or 'sum', but it does affect TPUStrategy in which case using 'sum' reduction method causes incorrect results.

sum will work for both default and custom training loops, with the former containing a single already-reduced value and the latter containing multiple values that should be summed. Meanwhile, first is the only valid option for TPU training.
My understanding is correct? If so, my suggestion to add the auto (default) value describes this behavior, exactly.
Users with custom training loops will no longer need to manually set distribute_reduction_method and will still have the correct loss values, while users with default training loops and TPU training won't be affected.
Hopefully it makes more sense now.

Unless I'm missing something, sum can be used for MirroredStrategy and will not imply in behavioral changes:

MirroredStrategy + default training loop: sum works, because first([l1]) == sum([l1]) == l1 == l_total
MirroredStrategy + custom training loop: sum is the correct choice here sum([l1, l2, ..., l_batch]) == l_total
TPUStrategy + default training loop: first is assumed
TPUStrategy + custom training loop: first is assumed
MultiWorkerMirroredStrategy: this one I'm not sure. Is there a way to simulate this in local?

I wrote the changes in this commit and a new testcase (test_distribution_reduction_method_sum_default_train_step) alongside kretes's, demonstrating that it works as expected for MirroredStrategy + default train loop.
I also ran all tests in keras/backend. They all pass.

Thanks @lucasdavid !
I've pushed your commit to the branch in this PR and updated docstrings + texts on top of it. I guess this is ready for a review, @rchao

haha thanks for the enthusiasm. I wasn't expecting you to pull the commit, it was more just to show that it works and that the tests pass.
In any case, I think it's worth discussing a little more the auto option, specially for MultiWorkerMirroredStrategy and other strategies that I might not know of. I also did not find any correctness tests for TPUStrategy with custom training loops. So maybe these paths are uncovered?

I wasn't expecting you to pull the commit, it was more just to show that it works and that the tests pass.
I reviewed it, it is an implementation of the auto option as well, so I think it will be easiest to review the whole code at once.

I think it's worth discussing a little more the auto option, specially for MultiWorkerMirroredStrategy and other strategies that I might not know of. I also did not find any correctness tests for TPUStrategy with custom training loops. So maybe these paths are uncovered?
I'm not familiar with this as well, passing that to @rchao

Thanks! I've added a few quick comments.

@kretes Can you please check @rchao's comments and keep us posted ? Thank you!

@kretes I wrote tests for MultiWorkerMirroredStrategy in this commit.
They are being skipped in my laptop though. I think I don't have the appropriate hardware for it.

It's my understanding we could still do some work on this (update the docs as requested by @rchao and maybe add some tests for the multi worker case), and that it shouldn't have been merged just yet.

Ok, I can see the PR got merged. While this isn't a huge problem - I think we should now create a new PR with update to the doc requested in https://github.com/keras-team/keras/pull/16664#discussion_r940609739 and the test from https://github.com/keras-team/keras/pull/16664#issuecomment-1209815851 . do you want to do it, @lucasdavid as you are the author of the test?

Okay, I can try to do it.


Add Host for Digital Ocean giving me docker version 1.11.1

Version: Master 5/10
**Steps to Reproduce: **

Add a digital ocean host

Results:
giving me 1.11.1 - docker install URL in advanced is blank.
Expected:
Should give me 1.10.3?

https://github.com/rancher/cattle/pull/1659

Version - master 5/10
Verified fixed


The phone cannot zoom in after screen capture

Hello.
The phone cannot zoom in after screen capture, and the page scroll bar cannot work.

What device/OS are you on? I assume you're using the phone's built in screenshot feature? Does this happen on https://openseadragon.github.io/?

It happend on android device.

Open https://openseadragon.github.io/ and take screenshots of shortcut keys (not physical keys) on Xiaomi and Huawei phones, and then you can't zoom in or zoom out

Wild! I wonder why that would be? I'm not familiar with those phones... What gesture does one use to take a screenshot? And then I assume you use the pinch gesture on the viewer to try zooming, and that's what doesn't work? Or are you hitting the zoom in/out buttons in the viewer?


Login page front end

added in rainbow gradient end header
had to take off the container class on app.js - the bootstrap container styling connected to it was messing with how the pages are being brought in
added in header text for signup and login
added a signup form
updated formatting on forms
implemented bootstrap react grid systems for header and forms
tested the functionality in google inspect for mobile, just need to update the grid columns for the forms for xs so it each form is on a different line.

preview of work done


Fix log message in resolver

This was masking the actual errors coming from the step generator

Description of the change:
Fixes an issue with the logs - actual errors were being masked instead of wrapped.
Motivation for the change:
Debugging a failing operator step generation.
Reviewer Checklist

[ ] Implementation matches the proposed design, or proposal is updated to match implementation
[ ] Sufficient unit test coverage
[ ] Sufficient end-to-end test coverage
[ ] Docs updated or added to /docs
[ ] Commit messages sensible and descriptive

lgtm

/lgtm

/retest

/retest

/retest

/retest

/retest

/retest


substrait FALSE
parquet   FALSE
json      FALSE
s3        FALSE
gcs       FALSE
utf8proc   TRUE
re2        TRUE
snappy     TRUE
gzip       TRUE
brotli     TRUE
zstd       TRUE
lz4        TRUE
lz4_frame  TRUE
lzo       FALSE
bz2        TRUE
jemalloc   TRUE
mimalloc  FALSE

To reinstall with more optional capabilities enabled, see
   https://arrow.apache.org/docs/r/articles/install.html

Memory:

Allocator jemalloc
Current    0 bytes
Max        0 bytes

Runtime:

SIMD Level          avx512
Detected SIMD Level avx512

Build:

C++ Library Version  12.0.1
C++ Compiler            GNU
C++ Compiler Version 11.2.1

>

We have pre-built c++ binaries that should have all these features enabled, if you remove  Sys.setenv("LIBARROW_BINARY" = FALSE) or set it to true it should download them automatically and only build the R related c++.

I don't know why dataset and parquet features are FALSE, when I install the binaries, it's said that they are relied on acero,
and acero is FALSE too, is there anytong missed?
I've read through the installation guide allready.
acero     FALSE
dataset   FALSE
substrait FALSE
parquet   FALSE
json      FALSE
s3        FALSE
gcs       FALSE

Is it possible that you do not have openssl-devel installed? IIRC this is necessary for a number of features.
I just tested installing with the precomiled binary on centos7 and that results in this:
> arrow::arrow_info()
Arrow package version: <IP_ADDRESS>

Capabilities:

acero      TRUE
dataset    TRUE
substrait FALSE
parquet    TRUE
json       TRUE
s3         TRUE
gcs        TRUE
utf8proc   TRUE
re2        TRUE
snappy     TRUE
gzip       TRUE
brotli     TRUE
zstd       TRUE
lz4        TRUE
lz4_frame  TRUE
lzo       FALSE
bz2        TRUE
jemalloc   TRUE
mimalloc   TRUE

install and source devtoolset
install openssl-devel
create Makevars file so R picks up the devtoolset gcc (which I assume you have done as otherwise building arrow would fail)
on the shell set export LIBARROW_BINARY=TRUE
in R install.packages('arrow')

Alternativly you could install from PPM, that binary also has most features enabled:
options(
  HTTPUserAgent =
    sprintf(
      "R/%s R (%s)",
      getRversion(),
      paste(getRversion(), R.version["platform"], R.version["arch"], R.version["os"])
    )
)

install.packages("arrow", repos = "https://packagemanager.rstudio.com/all/__linux__/focal/latest")

Seems to have 2 versions of openssl, does it matter?
(base) [root@VM-4-12-centos .R]# yum list installed|grep openssl
Repository epel is listed more than once in the configuration
openssl.x86_64                         1:1.0.2k-25.el7_9               @updates
openssl-devel.x86_64                   1:1.0.2k-25.el7_9               @updates
openssl-libs.i686                      1:1.0.2k-25.el7_9               @updates
openssl-libs.x86_64                    1:1.0.2k-25.el7_9               @updates
openssl11.x86_64                       1:1.1.1k-2.el7                  @epel
openssl11-libs.x86_64                  1:1.1.1k-2.el7                  @epel
(base) [root@VM-4-12-centos .R]# yum list installed|grep curl
Repository epel is listed more than once in the configuration
curl.x86_64                            7.29.0-59.el7_9.1               @updates
libcurl.i686                           7.29.0-59.el7_9.1               @updates
libcurl.x86_64                         7.29.0-59.el7_9.1               @updates
libcurl-devel.i686                     7.29.0-59.el7_9.1               @updates
libcurl-devel.x86_64                   7.29.0-59.el7_9.1               @updates
python-pycurl.x86_64                   7.19.0-19.el7                   @anaconda

hm that might confuse the script we use to determine the correct binary, we compile a test program and based on error messages/output we decide... I don't really now how this would affect it though... (relevant code here) could you try to install as I showed above but also set ARROW_R_DEV=TRUE that way we can see that output from that code at the beginning of the install!

(or you couldk ofc remove one version of openssl if that does not interfere with other things)

It's on my previous post allready, same output.
> Sys.setenv(ARROW_USE_PKG_CONFIG=TRUE)
> Sys.setenv("LIBARROW_BINARY" = TRUE)
> Sys.setenv("LIBARROW_MINIMAL" = FALSE)
> Sys.setenv("ARROW_R_DEV" = TRUE)
> Sys.setenv(ARROW_WITH_SNAPPY ="ON")
> Sys.setenv(ARROW_PARQUET ="ON")
> Sys.setenv(ARROW_DATASET ="ON")
> install.packages("/root/R/arrow_12.0.1.tar.gz", repo=NULL, type="source")
* installing *source* package ‘arrow’ ...
** package ‘arrow’ successfully unpacked and MD5 sums checked
** using staged installation
*** Arrow C++ libraries found via pkg-config at
PKG_CFLAGS=-D_GLIBCXX_USE_CXX11_ABI=0
PKG_LIBS=  -larrow
** libs

PKG_LIBS, I can see that the PKG_LIBS env in compiling logs is
*** Arrow C++ libraries found via pkg-config at
PKG_CFLAGS=-D_GLIBCXX_USE_CXX11_ABI=0
PKG_LIBS=  -larrow
BUT NOT
PKG_LIBS=-L/usr/lib64 -larrow_acero -larrow_dataset -lparquet -larrow
Is it means that the compiler couldn't find -larrow_acero -larrow_dataset -lparquet?
And the package path reported is NULL, is it correct?

This means that you have a system binary of arrow installed on your system that has these features disabled and that gets used via PKG config in building the R package.
You can either uninstall this (outdated?) Version of arrow or replace it with a version that has the necessary features enabled or disable the use of the system lib(I'll have to check how in detail)

*** Arrow C++ libraries found via pkg-config at

This is the problem. It should be ... pkg-config at /usr/lib64.
This must be fixed by #35147. So 13.0.0 will work.

I modify the configure script  and  hard code FOUND_LIB_DIR="/usr/lib64" to install arrow at the current time, and it works.
  if [ "$PKGCONFIG_LIBS" != "" ]; then
    FOUND_LIB_DIR=`echo $PKGCONFIG_DIRS | sed -e 's/^-L//'`
    # Modified by Jean 2023/07/28, hard coded for my server
    FOUND_LIB_DIR="/usr/lib64"
    echo "*** Arrow C++ libraries found via pkg-config at $FOUND_LIB_DIR"
    PKG_CFLAGS="$PKGCONFIG_CFLAGS $PKG_CFLAGS"
    PKG_LIBS="${PKGCONFIG_LIBS}"
    PKG_DIRS="${PKGCONFIG_DIRS}"
    LIB_DIR=${FOUND_LIB_DIR}

OK. I close this.


DropZone does not match expected design

HELPS-2338
The DropZone component does not match the design example, the label should be bold, filetypes should be centered, and the filetypes should not disappear when a validation message is set.

This issue has been fixed in Olive Helps v0.28.3. The ticket number is HELPS-2339


Remove name verification

This replaces #1120.

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

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

With some of the recent problems we've seen, can we confirm that the docker client/engine doesn't care about the name contained in a manifest before we remove server side verification?
If the client verifies the name then this PR should not proceed. Sorry for getting in here so late, we should not be weakening data integrity checks that allow users to push data a client will never accept on pull. If clients don't care about the name at all then this seems fine.

@endophage, see this comment by @dmcgowan.

LGTM
Errors may need to be mapped correctly to avoid 500s in webapp.

+1 for using a different error, fmt.Errorf("invalid manifest name format")  could be defined and mapped.
otherwise LGTM

@tt thanks, sounds good!

Mapped how, @stevvooe?
I don't see these errors referenced outside the package that defines them.

@tt The errors get added to a https://godoc.org/github.com/docker/distribution#ErrManifestVerification struct. These get mapped in the manifest handler here. New types can be added to represent the condition. Otherwise, these will be treated as 500s. These should be ErrManifestXXX errors, namewise.

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

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

@stevvooe, defined ErrManifestNameInvalid which I mapped to ErrorCodeNameInvalid. The latter was already defined but this error seems to be a case of what it should probably represent.

LGTM

LGTM

@tt Thanks for working with us to get this through!


Use bencher

Trying out bencher.dev, here's a dashboard link:
https://bencher.dev/perf/vortex?report=30841f3c-fcbb-4cdc-930d-13c5e103b5a7&branches=c60fea65-8440-45ed-9f5a-586b9363a67d&testbeds=228d0d7b-dbcd-4483-9b97-f318d448c5aa&benchmarks=aa9da1cb-2f07-4c82-8e24-df4d1b2bd618%2C068a3433-dd6e-454e-9a48-c1f78b11ec58%2C12fb3e97-b42d-4359-be24-3ca947a92ec0%2Cf8ffab38-a93c-4289-b29c-2e9c79ed6ea0&measures=2c3aeb1c-a621-4c2f-a220-8b1204a119ba&start_time=1720019326000&end_time=1722611387000&clear=true&key=true&reports_per_page=4&branches_per_page=8&testbeds_per_page=8&benchmarks_per_page=8&plots_per_page=8&reports_page=1&branches_page=1&testbeds_page=1&benchmarks_page=1&plots_page=1
I changed the schedule to run on all pushes to develop to make testing quicker, we can switch it back to scheduled daily if we find that it's using up too many resources

The more I look at the website the less I like it. Anyway we can use this for now and when we have time we could fix the benchmark action to parse criterion output (or do what critcmp does to get more detailed state)

Ok, I think maybe we could use bencher cli and build our own graphs


Update to prater

Motivation
Bump dependencies and minor fixes
Description

Update URL to point to Prater node
Update Lodestar deps to remove trailing slash from lightclient routes
Update ssz for type issues

Pending errors:
When syncing: @wemeetagain :eyes:
Invalid next sync committee merkle branch

When retrieving proofs
Not Found: No state found for id '0x8249f4eeee47e6b5463ef2c658ebdf87949bae28d324727a1bd84cb24d49c8e2'

This branch works fine for me, I have updated it to v0.32.0 here:
https://github.com/ChainSafe/eth2-light-client-demo/pull/12
Consider accepting that one into this branch before merging this PR.

I have verified that the client on this PR's branch (with #12 applied on top) works without encountering the errors from this PR's description when syncing from a Nimbus instance with experimental light client server support, all the way from Prater's Altair start checkpoint at 0x24ad5b7d941e147b80edb0aa34c1c454e6e467e68e83142e51e9d21b9226eb79:36660. I have tested both attaching the light client to a Nimbus instance that started syncing at Altair start (with the light client following along while Nimbus is syncing), as well as attaching the light client to an instance that is already fully synced. I have also successfully attached to a synced Nimbus instance on checkpoint 0xf45d84ba92ff2f194f2185f29deaa9a31c16a01aaef1960b7a28afe08902f016:36986 (special case with a couple orphaned / missed blocks). All of the tests were successful, the light client synced to the current prater slot 1784384.

@etan-status That's awesome! Thank you so much for your work and the detailed report


conda install fails with python version errors

ghazel@mbp:~/projects/img2img-turbo % conda env create -f environment.yaml
Warning: you have pip-installed dependencies in your environment file, but you do not list pip itself as one of your conda dependencies.  Conda may not use the correct pip to install your packages, and they may end up in the wrong place.  Please add an explicit pip dependency.  I'm adding one for you, but still nagging you.
Channels:
 - pytorch
 - defaults
Platform: osx-arm64
Collecting package metadata (repodata.json): done
Solving environment: done

Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
Installing pip dependencies: - Ran pip subprocess with arguments:
['/opt/homebrew/Caskroom/miniconda/base/envs/img2img-turbo/bin/python', '-m', 'pip', 'install', '-U', '-r', '/Users/ghazel/projects/img2img-turbo/condaenv.xbobrpw_.requirements.txt', '--exists-action=b']
Pip subprocess output:
Collecting clip@ git+https://github.com/openai/CLIP.git (from -r /Users/ghazel/projects/img2img-turbo/condaenv.xbobrpw_.requirements.txt (line 1))
  Cloning https://github.com/openai/CLIP.git to /private/var/folders/0y/htq8tzk13y7gtff3lqn2v15r0000gn/T/pip-install-0ee2zmw2/clip_5809e94f2dbf4256b39f06f6daa655e0
  Resolved https://github.com/openai/CLIP.git to commit dcba3cb2e2827b402d2701e7e1c7d9fed8a20ef1
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Collecting einops>=0.6.1 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.xbobrpw_.requirements.txt (line 2))
  Using cached einops-0.8.0-py3-none-any.whl.metadata (12 kB)
Collecting numpy>=1.24.4 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.xbobrpw_.requirements.txt (line 3))
  Using cached numpy-2.0.1-cp310-cp310-macosx_14_0_arm64.whl.metadata (60 kB)
Collecting open-clip-torch>=2.20.0 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.xbobrpw_.requirements.txt (line 4))
  Using cached open_clip_torch-2.26.1-py3-none-any.whl.metadata (31 kB)
Collecting opencv-python==<IP_ADDRESS> (from -r /Users/ghazel/projects/img2img-turbo/condaenv.xbobrpw_.requirements.txt (line 5))
  Using cached opencv_python-<IP_ADDRESS>-cp37-abi3-macosx_11_0_arm64.whl.metadata (18 kB)
Collecting pillow>=9.5.0 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.xbobrpw_.requirements.txt (line 6))
  Using cached pillow-10.4.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (9.2 kB)
Collecting scipy==1.11.1 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.xbobrpw_.requirements.txt (line 7))
  Using cached scipy-1.11.1-cp310-cp310-macosx_12_0_arm64.whl.metadata (54 kB)
Collecting timm>=0.9.2 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.xbobrpw_.requirements.txt (line 8))
  Using cached timm-1.0.8-py3-none-any.whl.metadata (53 kB)
Collecting tokenizers (from -r /Users/ghazel/projects/img2img-turbo/condaenv.xbobrpw_.requirements.txt (line 9))
  Downloading tokenizers-0.20.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (6.7 kB)
Collecting torch>=2.0.1 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.xbobrpw_.requirements.txt (line 10))
  Using cached torch-2.4.0-cp310-none-macosx_11_0_arm64.whl.metadata (26 kB)
Collecting torchaudio>=2.0.2 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.xbobrpw_.requirements.txt (line 11))
  Using cached torchaudio-2.4.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (6.4 kB)
Collecting torchdata==0.6.1 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.xbobrpw_.requirements.txt (line 12))
  Using cached torchdata-0.6.1-cp310-cp310-macosx_11_0_arm64.whl.metadata (13 kB)
Collecting torchmetrics>=1.0.1 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.xbobrpw_.requirements.txt (line 13))
  Using cached torchmetrics-1.4.1-py3-none-any.whl.metadata (20 kB)
Collecting torchvision>=0.15.2 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.xbobrpw_.requirements.txt (line 14))
  Using cached torchvision-0.19.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (6.0 kB)
Collecting tqdm>=4.65.0 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.xbobrpw_.requirements.txt (line 15))
  Using cached tqdm-4.66.5-py3-none-any.whl.metadata (57 kB)
Collecting transformers==4.35.2 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.xbobrpw_.requirements.txt (line 16))
  Using cached transformers-4.35.2-py3-none-any.whl.metadata (123 kB)

Pip subprocess error:
  Running command git clone --filter=blob:none --quiet https://github.com/openai/CLIP.git /private/var/folders/0y/htq8tzk13y7gtff3lqn2v15r0000gn/T/pip-install-0ee2zmw2/clip_5809e94f2dbf4256b39f06f6daa655e0
ERROR: Ignored the following versions that require a different python version: 1.6.2 Requires-Python >=3.7,<3.10; 1.6.3 Requires-Python >=3.7,<3.10; 1.7.0 Requires-Python >=3.7,<3.10; 1.7.1 Requires-Python >=3.7,<3.10
ERROR: Could not find a version that satisfies the requirement triton==2.0.0 (from versions: none)
ERROR: No matching distribution found for triton==2.0.0

failed

CondaEnvException: Pip failed

ghazel@mbp:~/projects/img2img-turbo % /opt/homebrew/Caskroom/miniconda/base/envs/img2img-turbo/bin/python -V
Python 3.10.14

I tried dropping the python version requirement to 3.9, and got a different conflict:
ghazel@mbp:~/projects/img2img-turbo % conda env create -f environment.yaml
Warning: you have pip-installed dependencies in your environment file, but you do not list pip itself as one of your conda dependencies.  Conda may not use the correct pip to install your packages, and they may end up in the wrong place.  Please add an explicit pip dependency.  I'm adding one for you, but still nagging you.
Channels:
 - pytorch
 - defaults
Platform: osx-arm64
Collecting package metadata (repodata.json): done
Solving environment: done

Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
Installing pip dependencies: | Ran pip subprocess with arguments:
['/opt/homebrew/Caskroom/miniconda/base/envs/img2img-turbo/bin/python', '-m', 'pip', 'install', '-U', '-r', '/Users/ghazel/projects/img2img-turbo/condaenv.ustqmzng.requirements.txt', '--exists-action=b']
Pip subprocess output:
Collecting clip@ git+https://github.com/openai/CLIP.git (from -r /Users/ghazel/projects/img2img-turbo/condaenv.ustqmzng.requirements.txt (line 1))
  Cloning https://github.com/openai/CLIP.git to /private/var/folders/0y/htq8tzk13y7gtff3lqn2v15r0000gn/T/pip-install-qu5uk7a_/clip_136ea494b86c48f69a4d524a9e7d4816
  Resolved https://github.com/openai/CLIP.git to commit dcba3cb2e2827b402d2701e7e1c7d9fed8a20ef1
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Collecting einops>=0.6.1 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.ustqmzng.requirements.txt (line 2))
  Using cached einops-0.8.0-py3-none-any.whl.metadata (12 kB)
Collecting numpy>=1.24.4 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.ustqmzng.requirements.txt (line 3))
  Downloading numpy-2.0.1-cp39-cp39-macosx_14_0_arm64.whl.metadata (60 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.9/60.9 kB 715.1 kB/s eta 0:00:00
Collecting open-clip-torch>=2.20.0 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.ustqmzng.requirements.txt (line 4))
  Using cached open_clip_torch-2.26.1-py3-none-any.whl.metadata (31 kB)
Collecting opencv-python==<IP_ADDRESS> (from -r /Users/ghazel/projects/img2img-turbo/condaenv.ustqmzng.requirements.txt (line 5))
  Using cached opencv_python-<IP_ADDRESS>-cp37-abi3-macosx_11_0_arm64.whl.metadata (18 kB)
Collecting pillow>=9.5.0 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.ustqmzng.requirements.txt (line 6))
  Downloading pillow-10.4.0-cp39-cp39-macosx_11_0_arm64.whl.metadata (9.2 kB)
Collecting scipy==1.11.1 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.ustqmzng.requirements.txt (line 7))
  Downloading scipy-1.11.1-cp39-cp39-macosx_12_0_arm64.whl.metadata (54 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 54.1/54.1 kB 2.3 MB/s eta 0:00:00
Collecting timm>=0.9.2 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.ustqmzng.requirements.txt (line 8))
  Using cached timm-1.0.8-py3-none-any.whl.metadata (53 kB)
Collecting tokenizers (from -r /Users/ghazel/projects/img2img-turbo/condaenv.ustqmzng.requirements.txt (line 9))
  Downloading tokenizers-0.20.0-cp39-cp39-macosx_11_0_arm64.whl.metadata (6.7 kB)
Collecting torch>=2.0.1 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.ustqmzng.requirements.txt (line 10))
  Downloading torch-2.4.0-cp39-none-macosx_11_0_arm64.whl.metadata (26 kB)
Collecting torchaudio>=2.0.2 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.ustqmzng.requirements.txt (line 11))
  Downloading torchaudio-2.4.0-cp39-cp39-macosx_11_0_arm64.whl.metadata (6.4 kB)
Collecting torchdata==0.6.1 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.ustqmzng.requirements.txt (line 12))
  Downloading torchdata-0.6.1-cp39-cp39-macosx_11_0_arm64.whl.metadata (13 kB)
Collecting torchmetrics>=1.0.1 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.ustqmzng.requirements.txt (line 13))
  Using cached torchmetrics-1.4.1-py3-none-any.whl.metadata (20 kB)
Collecting torchvision>=0.15.2 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.ustqmzng.requirements.txt (line 14))
  Downloading torchvision-0.19.0-cp39-cp39-macosx_11_0_arm64.whl.metadata (6.0 kB)
Collecting tqdm>=4.65.0 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.ustqmzng.requirements.txt (line 15))
  Using cached tqdm-4.66.5-py3-none-any.whl.metadata (57 kB)
Collecting transformers==4.35.2 (from -r /Users/ghazel/projects/img2img-turbo/condaenv.ustqmzng.requirements.txt (line 16))
  Using cached transformers-4.35.2-py3-none-any.whl.metadata (123 kB)

Pip subprocess error:
  Running command git clone --filter=blob:none --quiet https://github.com/openai/CLIP.git /private/var/folders/0y/htq8tzk13y7gtff3lqn2v15r0000gn/T/pip-install-qu5uk7a_/clip_136ea494b86c48f69a4d524a9e7d4816
ERROR: Ignored the following versions that require a different python version: 1.14.0 Requires-Python >=3.10; 1.14.0rc1 Requires-Python >=3.10; 1.14.0rc2 Requires-Python >=3.10
ERROR: Could not find a version that satisfies the requirement triton==2.0.0 (from versions: none)
ERROR: No matching distribution found for triton==2.0.0

failed

CondaEnvException: Pip failed

ghazel@mbp:~/projects/img2img-turbo % /opt/homebrew/Caskroom/miniconda/base/envs/img2img-turbo/bin/python -V
Python 3.9.19

I guess triton is not available on macOS at all.
ghazel@mbp:~/projects/img2img-turbo % pip index versions triton
WARNING: pip index is currently an experimental command. It may be removed/changed in a future release without prior warning.
ERROR: No matching distribution found for triton

Thanks for pointing this out!
I removed the triton dependency from the environment.yaml and requirements.txt files.
Were you able to resolve your issues after removing this dependency?
-Gaurav


Export functionality

It would be really nice to be able to somehow export the settings. This would allow users to quickly replicate the designed particle system in another Luxe project.

Good idea, working on that now.

Added half of this in daee931e2a56aa855d669c0e416cdfe4b29afdcb, need to implement loading from the resulting JSON