On Solving the Interop Withdrawal Liquidity Problem

Overview
As interop is currently specified, there is a problem with withdrawal liquidity. What does this mean in practice?
Users can deposit ether between an arbitrary number of OptimismPortal contracts into the set of interoperable chains. The current scope of interop does not unify this liquidity on L1. Users are able to send the ether between various L2 chains and must check that there is liquidity in the OptimismPortal that corresponds to their L2 before withdrawing to L1. A race condition exists in which the user initiates their withdrawal and then is frontran by another withdrawal that removes the liquidity from the OptimismPortal. The cannot get their funds back to L2 and must wait for more deposits until their withdrawal can be processed.
If we want to guarantee solvency of withdrawals, there are 2 known approaches:

L2 reverts on no liquidity
L1 unified liquidity

L2 Reverts
This solution involves tracking the balance of the OptimismPortal in L2 and incrementing and decrementing the value as there are deposits and withdrawals. A one time upgrade transaction is included in a hardfork that uses the balance of the OptimismPortal as an input to generate an upgrade transaction that sets the value in an L2 storage slot. The L1 attributes transaction then includes a sum of the mint fields in all deposits and that increments the balance. When a user calls L2ToL1MessagePasser.initiateWithdrawal, it decrements the balance and reverts on underflow. This prevents withdrawals on L2 by a revert if there is insufficient liquidity.
This balance accumulator on L2 is not an accurate counter for the amount of ether on the L2. It is just meant to observe the liquidity for withdrawals. The invariant address(OptimismPortal).balance >= L2 view of balance must hold.

It is possible to transfer ether to the OptimismPortal without minting it on L2 by calling the donateETH function or by using SELFDESTRUCT to move ether without EVM execution.
L2 to L2 cross chain messaging of ether will not modify the balance

The semantics here also need to account for custom gas token chains, which could be solved by coupling an eth_call to OptimismPortal.balance rather than reading its balance from the state directly, but that would require L1 EVM execution to be in the fault proof.
L1 Unified Liquidity
The most minimal version of a L1 unified bridge is one where there is a shared lockbox. This involves each OptimismPortal migrating its ether balance to a single contract. Any new deposit would forward the ether here and any withdrawal would remove ether from here. This creates a shared liquidity pool for the set of interoperable chains.
There are open questions around the specific design of the shared lockbox. It cannot be permissionless to join unless the contracts were deployed by OP Stack Manager or older systems have had history integrity checks, then we know for a fact that the L2 system doesn't have a backdoor in its contracts.
Known Issues
These solutions do not solve for ERC20 tokens.

One more option for the design space is letting portals take ETH from each other on-demand. The way this would work is:

A portal must know the address of all other portals that have it in their dependency sets. So if I deposit ETH into chain A via portal A, once on L2 I can move that ETH to chains B or C, since B and C both have A in their dependency set. Chain A's portal needs to know the addresses of chain B and C's portals. (More generally it just needs some way to discover them, e.g. storing system config addresses and looking up the portal's address, or a dependency set registry, etc).
Now when a portal processes a withdrawal, if it has insufficient ETH, it loops through addresses of portals B and C to see if they have sufficient ETH, and if so calls an auth'd function that lets it withdraw the required amount of ETH.

Considerations:

Maybe naive looping is too insufficient to scale and we need to be smarter about how we find the portal(s) to pull ETH from.
The invariant we want to hold here is that all withdrawals can be processed, assuming aggregate solvency across all bridges. But is this guaranteed given that dependency sets are not symmetrical (i.e. B has A in it's dependency set, but A might not have B)? Does it matter how I choose which portal to pull from?
How to handle custom gas token withdrawals with this design.

The solution that @mds1 proposes is interesting because it optimizes for each chain's OptimismPortal to not need to transfer its ether to another contract. While this makes the upgrade more simple, the implementation is more complicated. I would lean towards a less complex on chain solution and have the one time ether migration during the upgrade


Enhance README for Streamers

Hello @mafik,
Thank you for sharing this as open-source. There will be many streamers who really need this. Since streamers are not developers and just want it to work, it would be great if you could make the README page understandable for them as well. For example, like the README file of the TTS-Voice-Wizard project.
I believe this project will receive a lot of stars.
Best regards,

+1
Amazing README example, thanks!


Comments no longer work in appsettings.json

Hi,
As far as I understand comments are explicitly allowed in appsettings.json (https://github.com/dotnet/AspNetCore.Docs/issues/26254#issuecomment-1169775262).
Version 1.0.7 had no problems but 1.0.9 now throws the exception below when calling ProtectFiles on a file with comments e.g.
// some comment
Removing all comments works.
System.Text.Json.JsonReaderException
  HResult=0x80131500
  Message='/' is an invalid start of a property name. Expected a '"'. LineNumber: 65 | BytePositionInLine: 2.
  Source=System.Text.Json
  StackTrace:
   at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan`1 bytes) in /_/src/libraries/System.Text.Json/src/System/Text/Json/ThrowHelper.cs:line 315
   at System.Text.Json.Utf8JsonReader.ConsumeNextToken(Byte marker) in /_/src/libraries/System.Text.Json/src/System/Text/Json/Reader/Utf8JsonReader.cs:line 1786
   at System.Text.Json.Utf8JsonReader.ConsumeNextTokenOrRollback(Byte marker) in /_/src/libraries/System.Text.Json/src/System/Text/Json/Reader/Utf8JsonReader.cs:line 1689
   at System.Text.Json.Utf8JsonReader.ReadSingleSegment() in /_/src/libraries/System.Text.Json/src/System/Text/Json/Reader/Utf8JsonReader.cs:line 833
   at System.Text.Json.Utf8JsonReader.Read() in /_/src/libraries/System.Text.Json/src/System/Text/Json/Reader/Utf8JsonReader.cs:line 279
   at System.Text.Json.JsonDocument.Parse(ReadOnlySpan`1 utf8JsonSpan, JsonReaderOptions readerOptions, MetadataDb& database, StackRowStack& stack) in /_/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.cs:line 921
   at System.Text.Json.JsonDocument.ParseUnrented(ReadOnlyMemory`1 utf8Json, JsonReaderOptions readerOptions, JsonTokenType tokenType) in /_/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.Parse.cs:line 752
   at System.Text.Json.JsonDocument.ParseValue(ReadOnlyMemory`1 json, JsonDocumentOptions options) in /_/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.Parse.cs:line 315
   at System.Text.Json.Nodes.JsonNode.Parse(String json, Nullable`1 nodeOptions, JsonDocumentOptions documentOptions) in /_/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonNode.Parse.cs:line 80
   at Fededim.Extensions.Configuration.Protected.JsonFileProtectProcessor.ProtectFile(String rawFileText, Regex protectRegex, Func`2 protectFunction) in Fededim.Extensions.Configuration.Protected\JsonFileProtectProcessor.cs:line 13
   at Fededim.Extensions.Configuration.Protected.ConfigurationBuilderExtensions.ProtectFiles(IDataProtector dataProtector, String path, String searchPattern, SearchOption searchOption, String protectRegexString, String protectedReplaceString, Boolean backupOriginalFile) in Fededim.Extensions.Configuration.Protected\ConfigurationBuilderExtensions.cs:line 58

Yep, you are right again, forgot to set default parsing and serialization options allowing comments in JSON files after rework. I have fixed it now (and also added comments to json files inside Fededim.Extensions.Configuration.Protected.ConsoleTest in order to always test them), released a version 1.0.10 which should be fine, please update and let me know if everything is fine.
For XML there is no such issue since the XML standard unlike JSON allows comments.

Thanks for the quick work. The fix works when loading an appsettings.json file with comments but then strips them out of the output file.

Yep, you are right that because the JSON standard does not support comments (incredibly) as XML does.
The System.Text.Json is compliant to the standard but allowed in the past the handling of comments inside JSON files through the serialization option JsonCommentHandling.Allow. Unluckily since NET Core 3.1 this option has been deprecated and raises always an exception in MS code (see JsonDocumentOptions source code and JsonDocument source code); NET now only supports reading and skipping of comments inside JSON files but not writing. So this is the reason why they are not preserved in the output encrypted files.
As a workaround to solve this issue however I implemented another FileProtectProcessor called JsonWithCommentsFileProtectProcessor (which is hacky, it basically replaces string tokens inside json files decoding and re-enconding their values). It is not active by default, if you want to activate it you have to call the static method ConfigurationBuilderExtensions.UseJsonWithCommentsFileProtectOption();
You can find all these changes inside the new version 1.0.11 of the package (should be already available on Nuget.org), I'll update the article in the following days.
Again let me know if there is something which does not work.

@Cynicszm please let me know if the fix works. Moreover I have just released the new version 1.0.12 which has:

Improvement: Allow encryption/decryption to be pluggable with providers using a new interface IProtectProvider. Therefore all DataProtectionAPI dependencies have been moved to a new package Fededim.Extensions.Configuration.Protected.DataProtectionAPI, you can just use this one which requires Fededim.Extensions.Configuration.Protected.
Bugfix: Fixed a bug with the subPurpose section of the regexs which could lead to a greedy match instead of a lazy one.

In order to use it you have to reference the new package Fededim.Extensions.Configuration.Protected.DataProtectionAPI,

I've tested with 1.0.12 and the fix appears to be working, No more disappearing comments when using
ConfigurationBuilderExtensions.UseJsonWithCommentsFileProtectOption()
Thanks

Ok, I released version 1.0.13 a few hours ago, it's just a renaming of methods and has some minor improvements, I'll leave this bug open till the end of the month, should you find something which does not work please let me know.

I have just released version 1.0.14 of Fededim.Extensions.Configuration.Protected and version 1.0.2 of Fededim.Extensions.Configuration.Protected.DataProtectionAPI, it includes extensive unit testing for all configuration sources (10000 entries for each one). Hopefully this version should be the stable one, I close the issue.


[BUG] - PDF.js is always downloaded when running run_windows.bat, even if it's already installed

Description
Running run_windows.bat always re-download the PDF.js library
After the first start up of Agent-Zero and the PDF.js library has been downloaded and properly installed, at any subsequent run of the run_windows.bat file the PDF.js library is downloaded again despite it's already installed, generating a wall of errors in the console (obviously, because it finds the file were already installed), and the program starts without other errors.
It would be advisable to add a check in the run_windows.bat file for the existance of the PDF.js library, before downloading it.

... wall of errors ...

Reproduction steps
1. Go to '\kotaemon-app\scripts\'
2. Double click on 'run_windows.bat'
3. The PDF.js library is downloaded despite being already installed
4. See errors

Screenshots
![DESCRIPTION](LINK.png)

Logs
No response
Browsers
Firefox
OS
Windows
Additional information
No response

Fixed in this new release https://github.com/Cinnamon/kotaemon/releases/tag/v0.5.3
Please check.

Thank you very much, @taprosoft , for looking into this issue. Unfortunately, I am still getting the same behavior and errors after updating with update_windows.bat. The PDF.js was downloaded but, apparently, when unpacking the data it finds all the files as already existing, therefore generating the errors. How can I help you debug this further? Let me know.

Hmm, after further investigations it appears that the local copy of run_windows.bat has not been synced with the latest version in the main repo, despite I did run the update_windows.bat file without a single warning or error. This is strange.

@Harvester62 might be another issue with update script. Can you verify by manually download the new version and create new issue for the update script?

Sure, I will do it at the next update to 0.5.4.


[BUG] - 2 New Notebook Kernels Show Up after creating R environment

Describe the bug
I created a global environment called "R" in conda store.  I requested r-irkernel and r-essentials dependencies.  It seems that ipykernel is added by default.  I believe due to r-irkernel and ipykernel being installed we get 2 new kernels showing up from the jupyterlab interface (screenshot below), one which expects python code and one which expects R code (screenshot below).

Expected behavior
Only 1 new kernel.  Don't add ipykernel if r-irkernel is installed.
OS and architecture in which you are running Nebari
LInux
How to Reproduce the problem?
See above
Command output
No response
Versions and dependencies used.
No response
Compute environment
None
Integrations
No response
Anything else?
No response

@krassowski would you know anything about how this works. I assume it is related to nb-conda-kernals.

ah yes, that is probably true. it is a setting in config to add ipykernel to all envs so that it will show up in jupyter.

ideally we should also use an R icon.

It's in conda-store setting, not of conda-nb-kernels:
https://github.com/nebari-dev/nebari/blob/5463e8df9e8d53a266a7b9d3d4e27353ec43c40b/src/_nebari/stages/kubernetes_services/template/modules/kubernetes/services/conda-store/config/conda_store_config.py#L33
I guess opt-out would also need to be implemented in conda-store?

Unless you would want to opt-out globally then this could be a nebari setting.

Well the issue is that we only want to opt out if another kernel like irkernel is requested. Not sure how we do this.

Interestingly the icon does show up for me (see last two icons in both rows):

It may be more subtle issue depending on how the environment is created (global vs personal).

Having looked into this, it would definitely need fixed on the conda-store side. There are a couple of ways that I could think to approach this.

Add a new config option for jupyterlab support. That would automatically add ipykernel unless irkernel is requested. This has the advantage that we could get specific with our logic without complicating the conda_include_packages config option. It would be pretty straightforward to implement. The disadvantage is we are hard coding usecase specific logic. That is generally not good, but may be ok here since jupyterlab is used so widely.

Add an option to the api route that creates environment to ignore auto included packages. This option could then be exposed in the ui. The default would be to include the automatic packages, but a user could choose to override that. This has the advantage of greater flexibility, we aren't writing a single purpose solutions, but users could also get themselves into trouble and could create environments that did not have packages that were set as auto include in the config. I don't think that this would be particularly difficult to implement, but would require ui work as well as server side work.

I couldn't transfer this issue to conda-store since its a different org so I had to open up a new one - https://github.com/conda-incubator/conda-store/issues/769. I'll close this one.


Responsive table

General Support Request
The auro-table element doesn't have a great responsive experience.
Support request
Update auro-table to use the responsive UI that @shelbyevans created for her team.
Possible Solution
Add the new responsive UI spec to the auro-table blueprint and put together a development story to deliver.

Reached out to @shelbyevans for support with this work.

@leeejune can you find out anything about this issue? Have there been any other talks of a responsive table UI?

@blackfalcon Followed up with Shelby, no updates. There hasn't been many requests for a responsive table UI. There were some conversations about more features, but not very urgent.


Fail to remove sched requirements from Sunstone

Description
Having some custom sched requirements in template and then try to delete them is failing.
To Reproduce
Add the following sched requirements to the template
SCHED_REQUIREMENTS = "ROLE=prod"

Then update and delete it.
Expected behavior
The requirement should be deleted.
Details

Affected Component: Sunstone
Version: 5.10 and master.

Progress Status

[ ] Branch created
[ ] Code committed to development branch
[ ] Testing - QA
[ ] Documentation
[ ] Release notes - resolved issues, compatibility, known issues
[ ] Code committed to upstream release/hotfix branches
[ ] Documentation committed to upstream release/hotfix branches

PRs to merge:
• one: #4333
• docs: OpenNebula/docs/pull/986

This can use a test


Sqlite create column with notnull without default

Fix for issue #265 - Allow table creating with SqliteAdapter to have NOT NULL columns without DEFAULT keyword.
no need to worry about ALTER COLUMN as
alter table person add column age integer not null;

will result with anyway

SQLSTATE[HY000]: General error: 1 Cannot add a NOT NULL column with default value NULL

but this has one sideeffect - when user tries to $table->changeColumn(...):

change NULL column to NOT NULL
and does not provide DEFAULT options
and existing table has rows with null value in this column

Phinx would recreate table with NOT NULL column and insert select all data from old table to new. During this Sqlite SILENTLY ignores all values. I tried to do INSERT OR FAIL ... but this will just ignore problematic rows. so data loss occurs (Tested on Windows PhP 5.6.x).
My PR will check before first DDL if dataloss could occur and if there are rows with null values then Exception will be thrown

Given the SQL errors otherwise this sounds like a good fix! 👍

any word here?

any reason why this was never merged?!?

Can we resolve the conflicts? Then we can merge.

This is not that simple. Change at https://github.com/cakephp/phinx/blob/9c4918e3ff12353217c78a79cacb6e016a7bd8c9/src/Phinx/Db/Adapter/SQLiteAdapter.php#L1461
to
$def .= (!$column->isIdentity() && $column->isNull()) ? ' NULL' : ' NOT NULL';

is breaking change.
By Phinx defaults all columns are NOT NULL column->null = false  and if we would remove  that  OR default is null part  SQLiteAdapter would start creating columns  by default as NOT NULL  instead of current behaviour of nullable column.
This means that how columns default to nullable/not nullable is different for Mysql/Postgres and SQLite in Phinx.
so currently
$table->addColumn('email', 'string')->save();

would create column as nullable in Sqlite
after change column would be NOT NULL e.g. equal to
$table->addColumn('email', 'string', ['null' => false])->save();

and not to get that behaviour users should change their code to
$table->addColumn('email', 'string', ['null' => true])->save();

@aldas, I don't know if it will be an appropriate solution, but to define by default that columns are created as NULL in case of sqlite, the following condition can be included in the addColumn method of phinx/src/Phinx/Db/Table.php:
            if ('sqlite' == $this->getAdapter()->getAdapterType()) {
               array_key_exists('null', $options) ?: $options['null'] = true;
            }

Before the sentence:
$action = AddColumn::build($this->table, $columnName, $type, $options);

Thus the code can be applied without a breaking change.

Is this resolved with 0.12 now?

Closing due to no activity.


CppUTest comparator for nanopb structs

What should the feature do?
The CppUTest unit test and mocking framework has the concept of "comparators". Comparators are used to compare two different C/C++ objects.
I have a small patch for a CppUTest comparator that compares two different nanopb C structs by serializing them and comparing their binary serialized output.
In what situation would the feature be useful?
The patch would be useful to any users who use the CppUTest unit testing framework and want to test code that serializes or deserializes protobufs using nanopb.
Questions
Is this there any interest in adding this to the nanopb repo? If so, where would be a good spot for it?

I think this is probably too specific to be included in the main nanopb repository. You could post it in this issue report as a comment though, so that if someone happens to need it later, they'll have a starting point.

Sounds reasonable. I'll post it here once I get the requisite approvals from my employer.

Link to repo: https://github.com/google/nanopb-cpputest-comparators


Change scope of all Poddle class method to public

This goes a little of the way to help handling this issue https://github.com/phanan/poddle/issues/5
I don't see a reason why none of these methods cant be accessible outside of the Poddle class

Thanks but I don't believe this is the fix for the issue. A class shouldn't expose more than necessary, and the more public properties you expose the heavier the maintenance burden becomes.


fix the license

@nunogit, should I wait for the missing JavaDoc?

Please accept, I'll do another pull request later.
Is there a style book/reference for the project?

No, we don't. But here goes:

write JavaDoc
write unit tests

That's at this moment the most important parts. I have added both when I started with the project, because there was (and is) very little.


Site URL for Connecting to MetaCI

We are done with all cumulusCI configuration set up, Now we are using MetaCI CLI v0.1.4 to run these same builds against your project automatically on Heroku. We are successfully deploying a new MetaCI site on Heroku using free dyno resources.
Now we are stuck in "Adding the Repository to MetaCI" section during metaCI implementation and we have the following execution with an exception:
Traceback (most recent call last):
File "/home/adarsh/Desktop/test-dir/venv/bin/metaci", line 11, in
sys.exit(main())
File "/home/adarsh/Desktop/test-dir/venv/local/lib/python2.7/site-packages/click/core.py", line 722, in call
return self.main(*args, **kwargs)
File "/home/adarsh/Desktop/test-dir/venv/local/lib/python2.7/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/home/adarsh/Desktop/test-dir/venv/local/lib/python2.7/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/adarsh/Desktop/test-dir/venv/local/lib/python2.7/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/adarsh/Desktop/test-dir/venv/local/lib/python2.7/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/adarsh/Desktop/test-dir/venv/local/lib/python2.7/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/home/adarsh/Desktop/test-dir/venv/local/lib/python2.7/site-packages/metaci_cli/cli/config.py", line 150, in new_func
return ctx.invoke(f, obj, *args[1:], **kwargs)
File "/home/adarsh/Desktop/test-dir/venv/local/lib/python2.7/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/home/adarsh/Desktop/test-dir/venv/local/lib/python2.7/site-packages/metaci_cli/cli/commands/repo.py", line 126, in repo_list
res = api_client('repos', 'list', params=params)
File "/home/adarsh/Desktop/test-dir/venv/local/lib/python2.7/site-packages/metaci_cli/metaci_api.py", line 27, in call
resp = self.client.action(self.document, args, **kwargs)
File "/home/adarsh/Desktop/test-dir/venv/local/lib/python2.7/site-packages/coreapi/client.py", line 163, in action
link, link_ancestors = _lookup_link(document, keys)
File "/home/adarsh/Desktop/test-dir/venv/local/lib/python2.7/site-packages/coreapi/client.py", line 38, in _lookup_link
raise exceptions.LinkLookupError(msg % (index_string, repr(key).strip('u')))
coreapi.exceptions.LinkLookupError: Index ['repos']['list'] did not reference a link. Key 'repos' was not found.

Note: We are using 'metaci repo add' or 'metaci repo list' command to adding the repository to metaCI.

Hello. I tried to reproduce this issue, but actually I ran into trouble even before this step while trying to install metaci-cli. It looks like we need to work on some updates to make it work with the latest releases of CumulusCI.
One thing you can check is to make sure that your MetaCI app got successfully registered in the CumulusCI keychain. cci service info metaci should successfully list the URL of your heroku app along with some other details.

Hi,
Thanks for your response. We are using Cumulus v2.0.8 and MetaCI v0.1.4 while implementing this. we have successfully added a site on MetaCI and when we trying to add a repository to MetaCI we got the above exception.
I also have used cci service info metaci command to make sure that MetaCI app got successfully registered in CumulusCI keychain.
Please find the attached image for MetaCI app responce:

https://cumulusci-test1.herokuapp.com/ appears to be serving a test page rather than MetaCI.

We are using a Heroku app URL while adding a site on MetaCI. We are creating two heroku app for MetaCI site, one is on Node.js and another is on PHP based app. We pass these app URL as site URL while site configuration. We faced up same exception for both the MetaCI site.

Thank you for your beneficial respose,
We just want to automate our builds using MetaCI. Since now we are successfully deployed MetaCI (A python based App) on Heroku platform, but while adding a repo to MetaCI using metaci repo add command it gives us the following exception:

@jlantz it looks like MetaCI-CLI needs to be updated to match the changes we made to repository access control in MetaCI.

We have made some changes over repo.py configuration file, after that we able to add a 'Repo' to MetaCI and also show the listing of repo by using metaci repo list command.
But still the repo we are created using metaci repo add command is not reflecting over https://metci.herokuapp.com/repos/ MetaCI app URL. And also we got an error while executing the further commands i.e: metaci plan list or metaci service list.

Closing this old issue. MetaCI-CLI is not currently maintained.


[Clothing] Security service magboots

About the PR

RND can research magboots.
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

:cl: PuroSlavKing

add: Added research magboots in RND!

I don't know if there's really a purpose for these. I'd just allow science to create magboots on demand rather than creating variants and giving them to every job that could conceivably have a use for them.

I don't know if there's really a purpose for these. I'd just allow science to create magboots on demand rather than creating variants and giving them to every job that could conceivably have a use for them.

I can try to create a research technology in RND, to get magboots

That'd be cool

awaiting revision.

regular

I also did a research of regular  magboots. As for me it is logical and not "unbalanced" that RND can investigate them (if HOS asks, scientists don't need them.)

i think emos point was that since sci can just make magboots, why have special department magboots at all? they can just ask sci to make some

oh okay, I will remove everything from security and leave only research

Apologies for not being clearer.

done, RND be happy.


Increase code coverage to 60% line coverage

Code coverage on all files in master branch (as of commit #190):
Statement: 44.87%
Branch: 36.5%
Function: 44.17%
Lines: 45%
We should have a goal of increasing this to 60% line coverage. Finishing #27 will help with this goal as well.

Update - as of commit #267:
Statement: 43.6%
Branch: 34.5%
Function: 43.2%
Line: 43.7%


[token-2022] Create proof-program feature

Problem
There is a PR in progress https://github.com/solana-labs/solana/pull/29996 that updates the proof verification program so that it break token-2022 confidential transfer. This results in downstream CI tests to fail.
Summary of Changes
Temporarily create a proof-program feature in the token-2022 program to disable the components that uses the proof program. Once https://github.com/solana-labs/solana/pull/29996 is merged and solana-program is updated, either make the proof-program feature as default or remove the feature altogether.

Do you mind if I merge https://github.com/solana-labs/solana-program-library/pull/4039 before this? Then we can get a clean release out before all of the zk changes

Yes, definitely! Let's release a clean version first.


dbt: staging schema - remove tests

Removing tests, to be revisited some other time. Reason: inflated load time + costs.

Thank you! Mostly concerned with cost more than load time. 😄


STOXX 600 Equity Bundle help

Hi there,
This is my first ever issue on GitHub so really sorry if my question is unclear or not in the appropriate format.
I am currently trying to build an equity bundle filled with the STOXX 600. Given this is a basket of European stocks, they all trade on different exchanges throughout Europe with different trading holidays and opening hours.
It appears to me that Zipline is very much geared towards equity bundles which contain stocks that all trade on the exact same exchange. Does anyone know how I might be able to ingest a bundle that does not follow only one trading calendar, but multiple?
What I have done so far:
I have followed the guide located here: https://analyzingalpha.com/zipline-equity-bundle
and with this guide, I have been able to utilize BColzDailyBarWriter() to write the stocks into a BColz format. In the below code, I am looping through my asset_metadata table, which contains information on each stock (i.e its associated exchange code like "XLON", its trading start date and trading end date, etc...), and then setting the calendar argument via the get_calendar() function.
for asset_sid, row in assets_metadata.iterrows():

    daily_bar_writer = BcolzDailyBarWriter(
        calendar=get_calendar(row['exchange']),  # Would love to default to LSE for everything
        start_session=pd.Timestamp("2010-01-04", tz='UTC'),
        end_session=pd.Timestamp("2021-07-29", tz='UTC'),
        filename=r'Stefan_Jansen/ch4/Pt_2_zipline_single_factor/bcolz_sxxp_data/bcolz_sxxp.bcolz'
    )

    daily_bar_writer.write(
        data = parse_pricing_and_vol(
            raw_data,
            asset_sid,
            row['symbol'],
            row['sessions']
        ),
        show_progress=True
    )

But when I get to the register() and ingest() steps, the functions are forcing me to select a single calendar (via the register() argument, calendar_name and the ingest function's calendar argument) and so I am a bit stumped. Should I write a new register() function for every exchange and its associated stocks?
from zipline.data.bundles import register, sxxp_bundle

register('sxxp_bundle', sxxp_bundle.ingest, calendar_name='????')

Any help on this issue would be a huge godsend! Thank you all.

Hmm...would a 24/7 calendar work for you...there is one somewhere that people have used for crypto.

Hi there ajjcoppola, thanks very much for your reply. Really appreciate it!
I did think about the 24/7 calendar and I suppose also the 24/5!
Do you know how I could handle all the days where some markets are closed and others are not if I do reindex all the stocks to 24/7? Is it advisable to drop all dates that have a few NaN values (say, the LSE has a trading holiday and so approx 120 stocks of the SXXP do not trade, shall I drop this date?)
Not sure how such an idea would affect the rebalancing of a strategy...
Thanks again for your help!

Closing due to lack of activity.


Update bigchaindb default deployment version

Updated to the latest release, version 0.10.2.

I guess we should add a step to the Release_Process.md file, because this will have to be updated as part of every release from now on?

Let's wait for Travis to finish. It was failing earlier for some reason. Then we can merge.

Let's wait for Travis to finish. It was failing earlier for some reason. Then we can merge.

Travis is broken because of the CORS support addition. It will fail again.

Codecov Report

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

@@           Coverage Diff           @@
##           master    #1480   +/-   ##
=======================================
  Coverage   98.38%   98.38%
=======================================
  Files          56       56
  Lines        2597     2597
=======================================
  Hits         2555     2555
  Misses         42       42


x/build: builders unable to build App Engine apps due to missing packages

All failures at https://go-review.googlesource.com/c/playground/+/64690#message-087a81db71034399093f315c9456bf468bcd006d
Example log from linux amd64 builder:
linux-amd64 at c100a0f6680318cb0511b0ecebccb1cdf0eae9b3 building playground at cc9bf7a3cda55e6694065cfbdbcb73b49ec24233

../../gopath/src/golang.org/x/playground/app/goplay/compile.go:12:2: cannot find package "google.golang.org/appengine" in any of:
	/tmp/workdir/go/src/google.golang.org/appengine (from $GOROOT)
	/tmp/workdir/gopath/src/google.golang.org/appengine (from $GOPATH)
../../gopath/src/golang.org/x/playground/app/goplay/edit.go:14:2: cannot find package "google.golang.org/appengine/datastore" in any of:
	/tmp/workdir/go/src/google.golang.org/appengine/datastore (from $GOROOT)
	/tmp/workdir/gopath/src/google.golang.org/appengine/datastore (from $GOPATH)
../../gopath/src/golang.org/x/playground/app/goplay/compile.go:13:2: cannot find package "google.golang.org/appengine/log" in any of:
	/tmp/workdir/go/src/google.golang.org/appengine/log (from $GOROOT)
	/tmp/workdir/gopath/src/google.golang.org/appengine/log (from $GOPATH)
../../gopath/src/golang.org/x/playground/app/goplay/compile.go:14:2: cannot find package "google.golang.org/appengine/urlfetch" in any of:
	/tmp/workdir/go/src/google.golang.org/appengine/urlfetch (from $GOROOT)
	/tmp/workdir/gopath/src/google.golang.org/appengine/urlfetch (from $GOPATH)

Error: tests failed: exit status 1

So first off, it doesn't look as though trybots have ever been run for playground before (though, I only looked back two years).
Additionally, I cannot find another subrepo supported by gobot which has external dependencies (though I didn't look through all of them, just a few). Notably, oauth2 does not have support (see https://go-review.googlesource.com/#/c/oauth2/+/61050/).
LMK your thoughts @andybons, I can look further into this if you think it's important we have support for trybots for playground CLs.
cc @bradfitz

I believe there's an existing open bug to make the coordinator support non-golang.org/x/* dependencies.

Closing this as dup of #24823 as that bug has more detail.


External and Require Bundling Resulting in Undefined for JQuery/Angular

I've tried several online guides to create two browserify-based bundles: one of common 3rd party libs; one of our application's source.  Even trying a simple/basic example I can't get things to work.  Perhaps I am missing something?
Versions:
Angular: 1.3.6 via npm
JQuery: 2.1.1 via npm
Browserify: 7.0
Gulp: 3.8.10
NOTE: While I was putting info into the package.json browser field and using browserify-shim, I removed all of this from my package.json during this simple test to make sure nothing odd was happening
gulpfile.js
var gulp = require('gulp');
var browserify = require('browserify');
var fs = require('fs');

gulp.task('app', function(callback) {
    return browserify('./app/js/app.js')
      .external(require.resolve('../../node_modules/jquery/dist/jquery.js'))
      .external(require.resolve('../../node_modules/angular/angular.js'))
      .bundle(function(err, app) {
          fs.writeFile('./app/build/app.js', app);
      });
});

gulp.task('vendor', function(callback) {
  return browserify()
      .require(require.resolve('../../node_modules/jquery/dist/jquery.js'), { expose: 'jquery' })
      .require(require.resolve('../../node_modules/angular/angular.js'), { expose: 'angular' })
      .bundle(function(err, libs) {
            fs.writeFile('./app/build/libs.js', libs);
      });
});

app.js
require('jquery');
var angular = require('angular');

var app = angular.module('app', []);

app.controller('TestController', function($scope) {
   $scope.text = "Hi Mom";
});

index.html
<!DOCTYPE html>
<html ng-app="app">
<head>
    <script src="./build/libs.js"></script>
    <script src="./build/app.js"></script>
</head>
<body ng-controller="TestController">

<div>{{text}}</div>
</body>
</html>

Neither jQuery nor Angular is correctly loaded. In my web browser console output, I get:
  Uncaught TypeError: undefined is not a function
libs.js:64 Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to:
Error: [$injector:nomod] Module 'app' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

On line 8 of app.js, which is:
var app = angular.module('app', []);

due to the fact angular is 'undefined'.
When I look at my "bundled" files, I do see that libs.js does indeed contain both jquery and angular.
Any help is very much appreciated!

Not sure if this is as result of the same Issue As I was having but I was getting something similar because Browserify seemed to be appending the last line of my last module again. more detail in a question I asked on SO

So I'm still struggling with is issue on Browserify 8.1.3.
My browserify 'libs' task is doing:
	b.require('./node_modules/angular/angular.js', {expose: 'angular'});

My browserify 'apps' task is doing:
bundler.external('angular');

My application is literally just doing:
var angular = require('angular');
angular.module('Test', []);

Angular is always undefined.  I'm using the 'browser' field in package.json. I've also defined browserify-shims for angular.  Nothing I've tried seems to allow me to bundle angular externally and then use it in my application_bundle.
Any suggestions?

Was angular installed via npm or did you just tuck it in node_modules? Does it require shimming? What are you doing with the browser field?

hope this doesn't distract from nkoterba@'s case... might be informative to see how it happened to me:
tl;dr the npm module you use for angular might not be returning via its module.exports correctly. I made a hacky module.exports wrapper myself, below
the hackery I pulled to get around it:
https://github.com/jzacsh/doodle/commit/1c676f21f8f233d2c214de5885784208b55d9e63#diff-4
to answer jmm@'s question for my case, you can see angular is used via npm, here:
https://github.com/jzacsh/doodle/commit/e3ae97cca03fed13f20c2aee390e46b1178bb25a#diff-b9cfc7f2cdf78a7f4b91a753d10865a2R17

This is what the readme for angular's npm package has to say:

Note that this package is not in CommonJS format, so doing require('angular') will return . If you're using Browserify, you can use exposify to have require('angular') return the angular global.

Thanks jmm, that's helpful. I'm guessing - in my case - that I just used exposify incorrectly, but I did indeed try using it (I believe via a package.json change?)
Anyway, I'll leave this issue to nkoterba@ now

@jzacsh Haha, your "hack" to get angular exposed was actually the same thing I did in order to get angular to work.  But I tried some other things as well (see below).
@jmm Yes, reading the NPM page for angular it says that angular hosted on npm is NOT CommonsJS compliant.  I'm generally flabbergasted as to why anyone uploads packages to NPM if they are NOT CommonJS compliant, especially things like front-end UI frameworks (e.g. angular).
@jzacsh I was able to get exposify to work.  However, the idea of including lots of third party libs in my html page (though good for caching) seemed to defeat the purpose of using browserify and it's require/external capabilities.  See the commented out section below.  You just define the browser name, e.g. 'kendo' and then what it will be exposed as on the window when you include your <script> tags on the .html page.
Here's how you do it:
gulp.task('browserify', ['ngconstant', 'installModules'], function() {
	var bundler = browserify({
		// Specify the entry point of your app
		entries: config.entry,
		// Enable source maps!
		debug: config.debug
	});

	//exposify.config = {
	//	jquery: 'jQuery',
	//	angular: 'angular',
	//	hammer: 'hammerJS',
	//	kendo: 'kendo',
	//	nsPopover: 'nsPopover',
	//	ngMdIcons: 'ngMdIcons'
	//};
	//
	//bundler.transform(exposify);

	return bundler
		.bundle()
		.on('error', handleErrors)
		.pipe(source(config.outputName))
		.pipe(buffer())
		.pipe(gulpif(config.debug, uglify()))
		.pipe(size())
		.pipe(gulp.dest(config.dest));
});

According to @bendrucker, angular 1.4 should be released as a UMD module (finally!!): GitHub Issue Comment at Browserify-Shim.
Once that happens, all this angular nonsense should hopefully go away.
I spent about a day learning more...here is my setup:
*** gulp script ***
gulp.task('browserify-libs', function () {
	var b = browserify({
		// Enable source maps!
		debug: config.debug
	});

	b.require('angular');

	return b.bundle()
		.on('error', handleErrors)
		.pipe(source('lib_bundle.js'))
		.pipe(buffer())
		.pipe(gulpif(config.debug, uglify()))
		.pipe(size())
		.pipe(gulp.dest(config.dest))
});

The above WILL NOT use browserify-shim...even if you've configured such in package.json.  The reason is because there are no 'relative' requires for browserify to walk (I'm just using 'require' to include 3rd party libs), the browserify-shim transform will NOT be applied.  So my lib_bundle.js output file will ONLY contain angular even though my package.json file has defined a shim for angular.
Here is my package.json file:
"browser": {
    "angular": "./node_modules/angular/angular.js",
  },
  "browserify": {
    "transform": [
      "browserify-shim"
    ]
  },
  "browserify-shim": {
    "angular": {
      "exports": "angular",
      "depends": [
        "jquery:jQuery"
      ]
    }
}

Why browserify-shim doesn't include jquery in the lib_bundle.js is somewhat explained by the comment again by @bendrucker   The fix is to apply the browserify-shim transform as a 'global' transform so it applies against ALL files in a browserify bundle, not just the entries. Not below how I'm not explicitly calling b.transform('browserify-shim') and passing global=true option.
My updated gulp file:
gulp.task('browserify-libs', function () {
	var b = browserify({
		// Enable source maps!
		debug: config.debug
	});

	b.require('angular');

	// The global true flag below does all the good stuff
	// See: https://github.com/thlorenz/browserify-shim/issues/134
	b.transform('browserify-shim', {
		global: true
	});

	return b.bundle()
		.on('error', handleErrors)
		.pipe(source('lib_bundle.js'))
		.pipe(buffer())
		.pipe(gulpif(config.debug, uglify()))
		.pipe(size())
		.pipe(gulp.dest(config.dest))
});

By using the above code, my lib_bundle.js DOES contain jQuery and angular and my "bundles" work.
For reference, here is how I'm browserifying my app bundle:
gulp.task('browserify', ['ngconstant', 'installModules'], function() {
	var bundler = browserify({
		// Specify the entry point of your app
		entries: config.entry,
		// Enable source maps!
		debug: config.debug
	});

	setExternals(angular);

	return bundler
		.bundle()
		.on('error', handleErrors)
		.pipe(source(config.outputName))
		.pipe(buffer())
		.pipe(gulpif(config.debug, uglify()))
		.pipe(size())
		.pipe(gulp.dest(config.dest));
});

However, I've found using this "global" transform with browserify-shim is "double-wrapping/shimming" some of my other 3rd party libs like Kendo UI.

@nkoterba From what I can tell, this can be closed. https://github.com/angular/angular.js/pull/10732 resolves this anyway and properly defining browserify-shim as a global transform in your package won't result in these issues.
This definitely isn't a browserify issue.

@bendrucker - I can close this but opened a new issue once I determined I wasn't going crazy. See (https://github.com/thlorenz/browserify-shim/issues/143)
In regards to my earlier post in this issue, adding the browserify-shim transform into my gulp task was bad because I also defined it in my package.json file.
This caused "double-shimming" to occur with my 3rd party libs like Kendo UI.  You should only put a global=true browserify-shim transform in your gulp task OR in your package.json when using require to bundle 3rd party libs.
Unfortunately, angular still doesn't seem to get shimmed properly when using the global option in the transform in the package.json.  Until (https://github.com/thlorenz/browserify-shim/issues/143) gets resolved, you will need to use the gulp or code-based transform option and remove the transform entirely from package.json.
If anyone has any insight into why it global=true works in package.json for most packages, but NOT angular, I would be greatly interested.
As @bendrucker mentioned this all becomes hopefully irrelevant when Angular 1.4 is released but I can't use it until it's stable and 'released'.


Error delete image from Docker Registry using API v2

I'm trying to remove images from Docker Registry using API v2 folloving сommand:
curl -k -v -u 'docker:sdf' -X DELETE https://localhost:5000/v2/bkf/ebbg/manifests/1
But I get next error:
> DELETE /v2/bkf/ebbg/manifests/1 HTTP/1.1
> Authorization: Basic ZG9ja2VyOkRrZmxidmJoMjAw==
> User-Agent: curl/7.35.0
> Host: localhost:5000
> Accept: */*
>
< HTTP/1.1 400 Bad Request
< Content-Type: application/json; charset=utf-8
< Docker-Distribution-Api-Version: registry/2.0
< X-Content-Type-Options: nosniff
< Date: Mon, 14 Mar 2016 07:56:13 GMT
< Content-Length: 98
<
{"errors":[{"code":"DIGEST_INVALID","message":"provided digest did not match uploaded content"}]}

Command:
curl -k -u 'docker:sdf' -X GET https://localhost:5000/v2/_catalog
show
{"repositories":["bkf/ebbg"]}
comand
curl -k -u 'docker:sdf' -X GET https://localhost:5000/v2/bkf/ebbg/tags/list
show
{"name":"bkf/ebbg","tags":["32","1","latest","12","33","34"]}
In what may be a problem or where did I go wrong?

You can only delete images by digest.  Please see the API:
https://github.com/docker/distribution/blob/master/docs/spec/api.md#deleting-an-image

Where can I see the value of digest parameter for image bkf/ebbg:1 ?

Use a curl command like this:
curl -k -I -H Accept:\* https://<some_url_or_ip>:5000/v2/<image_name>/manifests/<tag_name>
Then use the value of either of these headers (including the sha256: part if present) - they should be the same:

Docker-Content-Digest
Etag

curl -k -I -H Accept:* https://<some_url_or_ip>:5000/v2/<image_name

From your command, I am getting the following output:
HTTP/1.1 401 Unauthorized
Server: nginx/1.21.3
Date: Mon, 27 Sep 2021 19:25:17 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 149
Connection: keep-alive
Docker-Distribution-Api-Version: registry/2.0
Www-Authenticate: Basic realm="Registry-Realm"
X-Content-Type-Options: nosniff
No digest !!

Use a curl command like this:
curl -k -I -H Accept:\* https://<some_url_or_ip>:5000/v2/<image_name>/manifests/<tag_name>
Then use the value of either of these headers (including the sha256: part if present) - they should be the same:

Docker-Content-Digest
Etag

After running the command, I am getting the following error:
{"errors":[{"code":"MANIFEST_UNKNOWN","message":"manifest unknown"}]}
Any advice ?

What is your accept header?  I believe the default might down convert to Content-Type: application/vnd.docker.distribution.manifest.v1+prettyjws which will give you a digest that might be the one that the client might have pushed. For e.g. below request with Accept: application/vnd.docker.distribution.manifest.v2+json
➜ curl -v  -H "Accept: application/vnd.docker.distribution.manifest.v2+json" \
    http://localhost:5000/v2/hello-world/manifests/latest
...
> GET /v2/hello-world/manifests/latest HTTP/1.1
> Accept: application/vnd.docker.distribution.manifest.v2+json
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Content-Length: 525
< Content-Type: application/vnd.docker.distribution.manifest.v2+json
< Docker-Content-Digest: sha256:f54a58bc1aac5ea1a25d796ae155dc228b3f0e11d046ae276b39c4bf2f13d8c4
< Docker-Distribution-Api-Version: registry/2.0
< Etag: "sha256:f54a58bc1aac5ea1a25d796ae155dc228b3f0e11d046ae276b39c4bf2f13d8c4"
< X-Content-Type-Options: nosniff
< Date: Wed, 22 Sep 2021 23:34:15 GMT
<
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
   "config": {
      "mediaType": "application/vnd.docker.container.image.v1+json",
      "size": 1469,
      "digest": "sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412"
   },
   "layers": [
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 2479,
         "digest": "sha256:2db29710123e3e53a794f2694094b9b4338aa9ee5c40b930cb8063a1be392c54"
      }
   ]
* Connection #0 to host localhost left intact
}

Check if you can access the manifest using the digest -
➜ curl http://localhost:5000/v2/hello-world/manifests/sha256:f54a58bc1aac5ea1a25d796ae155dc228b3f0e11d046ae276b39c4bf2f13d8c4
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
   "config": {
      "mediaType": "application/vnd.docker.container.image.v1+json",
      "size": 1469,
      "digest": "sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412"
   },
   "layers": [
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 2479,
         "digest": "sha256:2db29710123e3e53a794f2694094b9b4338aa9ee5c40b930cb8063a1be392c54"
      }
   ]
}


feat: support rust 1.81.0

Description

features fs_try_exists and panic_info_message are stable
fs::try_exists is now fs::exists
PanicInfo is now PanicHookInfo (use to_string method for it)
switch to 1.81.0-nightly in rust-toolchain.toml

Testing Instructions
cargo test to ensure the code has the same behavior as before

Allow CI Workflow Run

[ ] approve CI run for commit: 6d188656da005efc999fd3ba803db3777f8ea079

Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer

should be clippy fixes be pushed along with this change?

should be clippy fixes be pushed along with this change?

If you could do that, it would be very much appreciated. It looks like those lints just got added.

done


oEmbed cannot override given parameters from returned embeded URL

Analysis
For an example, I want to add this SoundCloud song to the site
https://soundcloud.com/r4yr1ffy/secret-garden-remix
With no configuration, SoundCloud oEmbed will return embed URL with attached visible=true  and show_artwork=true property, too.
(I formatted it for easier readability)

Encounter Problem
With following configuration
{
  resolve: `@raae/gatsby-remark-oembed`,
  options: {
    providers: {
      include: ['SoundCloud', 'Instagram', 'Spotify', 'Twitter'],
      settings: {
        SoundCloud: {
          color: '#1976d2',
          show_comments: false,
          visual: false,
          hide_related: true,
          auto_play: false,
          show_user: false,
          show_reposts: false,
          show_teaser: false,
        },
        Instagram: {hidecaption: true},
      },
    },
  },
},

Every configuration is working just fine except for visble property which make SoundCloud embed player to a classic player.
What I got

This plugin just simply add configuration to the end of URLs without checking any duplicates parameters
Expectation

Recomendation
Before sending all oEmbed, I reccomended to check existing link parameters first and override them if exists.

Yes, that is the logical next step.
Would you like to have a go and create a PR? Otherwise, I will probably have some time next weekend.


jupyter notebook for example workflow

There is a new jupyter hub server at BAM which we maybe could use to have something like a userfriendly interface to create and run workflows.

That's a great idea!

There is a new jupyter hub server at BAM which we maybe could use to have something like a userfriendly interface to create and run workflows.

Great idea! I will start a draft on this jupyter notebook  this week.

I would wait until we have your paramwall example running in the main branch before starting the work on a jupyter notebook.

I will delete that issue for now


Drop duplicates

@Tejash-Shah I think this is a good solution for this transformer. Let me know your thoughts. If you are happy with this, could you add the docs?
doc/index.rst
doc/selection/index.rst
doc/selection/dropduplicated.rst (could you add an example of use please)
Thank you!

@Tejash-Shah you see all these file changes because I rebased master.


Time and Date Setting Should be up to User Discretion

Helps reduce confusion between admins of different regions IE US 11/12/2023 makes more sense than 12/11/2023, would just cut back on overall confusion

Vasilis did a good job on this but It would be great as an option


Use documented user for master status check

To work this check in get state from primary master task, user must be already created. We can either document root user in README examples or use the documented one icinga2 .
It would be better convert  icinga2_api variable  from a dict to a list so we can select the fist element, but this needs more changes in role's jija templates etc..

Thanks for the PR!
The block is actually only used when icinga2_validate_restart is explicitly set to true.
The whole thing is still a bit "experimental"

corresponds to  https://github.com/bodsch/ansible-icinga2/issues/54

I will change icinga2 to validate.
This User is predefined in https://github.com/bodsch/ansible-icinga2/blob/main/vars/main.yml#L194


Referencing System.Reactive from a WinUI 3 app or library is causing XLS errors to display in VS while XAML files are open

Bug
Referencing System.Reactive from a WinUI 3 app or library is causing XLS errors to display in Visual Studio while XAML files are open.
There seems to be a commonality that all errors are reported for controls & properties added after the first UWP release (not that WinUI 3 is uses system XAML/UWP, and all controls/properties have always existed in the WASDK/WinUI 3). Such as Grid's backgroundSizing and RowSpacing properties, or the ToggleButton control and its CornerRadius property.
Repro steps are at the bottom.
Errors:

No errors (reference commented out):

Which library version?

5.0.0, 6.0.0, 6.0.1

What are the platform(s), environment(s) and related component version(s)?

Microsoft.WindowsAppSDK Version 1.4.231115000 & latest preview
Microsoft.Windows.SDK.BuildTools Version 10.0.22621.2428 & latest preview
Microsoft Visual Studio Community 2022 (64-bit) - Preview Version 17.9.0 Preview 2.0

What is the use case or problem?
What is the expected outcome?
What is the actual outcome?

The XLS errors can't be silenced in any way and there can be dozens to hundreds of them clogging up the Error List view depending on what files are open.

Do you have a code snippet or project that reproduces the problem?

Repro:

Clone this repo: https://github.com/kmgallahan/ReactiveWinUITests
Build the solution
Open AControl.xaml and/or MainWindow.xaml
XLS errors will appear in the Error List view
Comment out one or both references or System.Reactive
Rebuild the solution and wait a moment, the errors will disappear

I can no longer repro this with the Visual Studio 2022 version 17.9 Preview 4 release.


add CONTRIBUTING.md rather than using gaia's

currently Osmosis' PR request template is referencing the branching model in gaia rather than having its own one, which seems a bit strange.
We can add a branching model page in Osmosis by borrowing gaia's content, and point our pr template to use the new one.

Yes, this is much needed. Thank you so much! While we're at it, it should really be simplified.

If this is a feature request, please use the feature-request repo (with a link to it)
Delete as much text as possible
Try to make it so that instructions fit within the textbox when you open an issue, avoid infinite scrolling of instructions :smile:

Thank you so much for working on this!

@daniel-farina do you actually mean to leave this comment under https://github.com/osmosis-labs/osmosis/issues/1339 ?

Why was this closed? Theres no contributing.md here

Oh shoot my bad I thought the contributing.md was created with the other PR. I'll finish this today with a PR.

https://github.com/osmosis-labs/docs/pull/107 This should fix the contributing.md request - we put contributing.md for the chain repo onto the docs, let me know @ValarDragon if you think we should also include a contributing.md on the chain repo.

It should absolutely be in the chain dev repo


refactor: slimmer SummaryCard (823 lines down to 599)

New files:

hideable_container.dart: used to be litterally in summary_card.dart
product_questions_widget.dart: used to be as a method in summary_card.dart

Impacted files:

product_cards_helper.dart: moved there 2 methods from summary_card.dart
scan_product_card.dart: minor refactoring
summary_card.dart: refactored moving code to other files and marginally setting fields and methods as private

What

Working on #3207 I said to myself: it's probably in SummaryCard.
At this moment I saw that SummaryCard was 823 line long, which is a lot (to me).
I refactored the file, going down to 599 lines (which is still a lot).
Fun fact: finally that's not at all related to #3207 - with a slimmer SummaryCard like in this PR I would have noticed that earlier :)

Codecov Report

Merging #3368 (38c0d33) into develop (b73cb76) will decrease coverage by 0.00%.
The diff coverage is 0.00%.

:exclamation: Current head 38c0d33 differs from pull request most recent head 9909e5b. Consider uploading reports for the commit 9909e5b to get more accurate results

@@             Coverage Diff             @@
##           develop    #3368      +/-   ##
===========================================
- Coverage    10.43%   10.43%   -0.01%
===========================================
  Files          256      258       +2
  Lines        12466    12473       +7
===========================================
  Hits          1301     1301
- Misses       11165    11172       +7

Impacted Files
Coverage Δ

...s/smooth_app/lib/helpers/product_cards_helper.dart
0.00% <0.00%> (ø)

...ooth_app/lib/pages/product/hideable_container.dart
0.00% <0.00%> (ø)

...pp/lib/pages/product/product_questions_widget.dart
0.00% <0.00%> (ø)

...ges/smooth_app/lib/pages/product/summary_card.dart
0.00% <0.00%> (ø)

...s/smooth_app/lib/pages/scan/scan_product_card.dart
0.00% <ø> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Thank you @M123-dev for the review!


REST API for CRUD operations on the database

It should be defined an API that allows CRUD operations on the data. This allow to integrate more scripts and more methods of feeding data to the overview.

This is a program design problem.
Should I run the server and then use import to import to the server so that it could be done with some cron or other methods like webhooks?
Or should it be executed in separate times for importing data to the database and then served?
Let's see more use cases.

Note that the only API I would need are those for inserting data or asking for a specific view of the database.

The following is a sample of use case
cd /path/to/workdir
for repo in "list of repository names"; do
  git clone git@workrepo:$repo $repo
  git-overview --import ./$repo
done
git-overview --serve &

This leads to the question, should be the --import function to import the data or the scheduled update inside --serve to import it?
As this is supposed to be an all in one binary, I would do the actual import before starting the service; a parallel task will fetch and update logs periodically.
Continuing in this idea we have the following components:

http server for redering pages;
http server for webhooks (on a different path, like /webhook/, TBD);
daemon that fetch updates from git directories;
(most importantly) the core interface that manage the database.

SQLite3 is already thread safe which allow us to write a simple interface for our database that can be used by the other three components.
To recap, --import should just add the repository path to a "will do" list that will completed at startup of the service. It will be saved the last synchronized commit for each repository in the database to instruct git to log only the last one.
Note: Reading while writing should be tested.

Meanwhile the web hook should work as follow:
$ git-overview --add-webhook github a-repository-name
Added repository a-repository-name with web hook token <token-here>
Use `/webhook/<token-here>` in GitHub.

So there should be stored in the database if the repository is either a local git folder or is a remote repository contacting the server. Possible cloud SCM are GitHub, Gitea, GitLab and should be easy to implement a new web hook systems.

About threads:

Threads are evil. Avoid them.
SQLite is threadsafe. We make this concession since many users choose to ignore the advice given in the previous paragraph.

SQLite FAQ
Parallel read and write in SQLite

GitHub webhooks
GitLab webhooks
Gitea webhooks

git --no-pager log --format='format:"%H","%at","%an","%ae","%s"'

git --no-pager log --format='format:%H%x09%at%x09%an%x09%ae%x09%s'

Should I manage the entire tree?
This simplifies the false fact that each commit has a branch and allow external join on the tree to concurrent commits in two branches.

(car
  (with-input-from-pipe
    "git --git-dir=./test/swe-telegram/.git --no-pager log --format='format:%H%x09%at%x09%an%x09%ae%x09%s'"
     (lambda ()
      (map (lambda (a)
                  (string-split a "\t"))
        (read-lines)))))

Currently the concern is in two data design problems:
(1) I need to see in which branch the last commit made by someone was.
To do this I think I need to check with a recursive table if the commit is in a branch.
git branch -v --no-abbrev gives me the head of the branch.
A problem with this is distinguishing whether a branch was already merged to master or not.
In other words recreating the graph of git.
(2) Select commits of a specific branch.
This is similar as I need to know where the branch started. Which does not look trivial right now.

Maybe scanning the main branch and then doing an exclusion while descending the tree.

To recap, now we have a database for commits that works for both cli. Webhooks are gonig to be available in another release, probably there will be adapters for OAuth as seen in #5 so I don't have to think about it now.
What am I missing before wrapping up?

Added -r in git branch so now I'm working with just the stuff that's on the scm server. So far this issue looks resolved.


Refactor view factory registration

The plugin discovery gave me some inspiration to refactor how we initially implemented the view registration. Some primary changes with this PR

Reworked the plugin discovery code you had into a "register_views" function in factory.py, allowing for calling a single function instead of importing every single view in the __init__.py. Also reworked the register function to be called as part of register_views rather than being used as a decorator for each function.
Retain the ability to search for plugins prefixed with "niftyone_" both on the sys.path or from a user-defined plugin directory. The plugin registration is called as part of the participant workflow.
To maintain compatability with the existing version (e.g. views had a string associated in the registry), I've added a view_name (maybe temporary?), that will register a view factory using said name. If one is not provided, the view_name would be equivalent to the class name.

Edit: Will need to refactor this slightly such that the old register functionality is brought back rather than the automatic registration if view is a child of the base class.

Oops - accidently closed this when I deleted the branch. Reopening.


Add a disabled flag to annotations

To allow switch on/off annotations

To switch on/off all annotations or a specific?

All. But perhaps it would be useful to also have the possibility to disable Annotations for xaxis, yaxis, and points.


Fix smpt port and update package-lock

I assume the SMPT port was an oversight and the package-lock updates were also just forgotten.

Good catch thanks!


[supply] new icon specifications

Feature Request
This post introduces the requirements for a new specification for uploading icons to the Play Console https://android-developers.googleblog.com/2019/03/introducing-new-google-play-app-and.html
We should have supply conform to the new requirement. The deprecation window is pretty small!

resolved by: https://github.com/fastlane/fastlane/pull/14695


comparison with related packages (eg Arraymancer)

/cc @mratsim @andreaferretti
I'd like to know how https://github.com/unicredit/neo compares with other packages, in particular https://github.com/mratsim/Arraymancer, to know in which specific cases are best suited for neo vs arraymancer.

As I understand, Arraymancer supports N-D tensors, whereas neo is 1D/2D only (at least pending https://github.com/unicredit/neo/issues/11). What else?

what's the best way to convert (without copying underlying data!) between an Arraymancer tensor and a neo vector/matrix?

likewise in reverse

EDIT links

https://github.com/unicredit/linear-algebra

Let me give my point of view, then @mratsim can leave his.
Neo was born first (in the form of a previous project linalg ), and I decided to give it an interface which would be more familiar to mathematicians instead of using n-dimensional arrays (mathematicians use tensors, but with a slightly different meaning). So I first focused on vectors and matrices, leaving the possibility to add tensors on top of this. Another thing that I'd like to reintroduce on top of neo is the possibility to track dimensions at compile time.
Arraymancer focused from the beginning on n-dimensional arrays, especially with the aim of implementing autograd for machine learning - especially neural networks. Arraymancer also aims to work with openCL, which is not a focus for Neo. I am not particularly expert on the innards of Arraymancer, but if I understand correctly it is rather smatr about allocations - which can become a bottleneck in well tuned machine learning systems - while Neo is rather dumb and probably may end up allocating more than needed sometimes.
Given that Arraymancer is out there, I decided to postpone going in the direction of neural networks, and I tried binding more general linear algebraic operations - determinants, eigenvalues and so on. One thing that I would like to support is also sparse linear algebra, although this is only at the beginning.
Nowadays I don't have much time to improve Neo, while Arraymancer is more actively developed.
About converting, fields in Neo are all public exactly for this reason: read here

Oh, I didn't see this issue until today.
Andrea nailed it.
I'm not sure Arraymancer is as smart as I want regarding allocations, I'd like loop-fusion for example, but Arraymancer sure led to the most allocation bugs opened in Nim repo.
I didn't have time in the past 4 months but now I do have so here is Arraymancer short term game plan:

Finishing GRU recurrent neural nets on CPU
Start on a visualization library for Arraymancer

There are a lot of things I would like to work on beyond (CUDA/OpenCL/CPU parity, object detection, style transfer, einsum, serialization ...) but I feel like RNNs and data viz are the most important.
Also we already discussed it but there is now NimTorch, cc @sinkingsugar

@mratsim thanks for the mention.
I'm actually a big fan of Arraymancer, and love the way it solved many issues using pure nim.
But sadly it is missing lot of things compared to frameworks like pytorch that have hundreds of commits every day and the whole data science scene going insanely fast.
That's why I made NimTorch, ATen (the core c++ library that pytorch now uses) is extremely clean and easy to integrate, has every operation possible and supports cuda and cpu transparently.
That said... to be honest I already had in my todo list to investigate how to make arraymancer use nimtorch behind the scene, altho I admit we are giving more priority on being compatible with pytorch right now.

@sinkingsugar I just discovered about NimTorch, great project! There is a little confusion right now as there are a few Nim projects about linear algebra, but I think this a sign that people are interested in using Nim for machine learning and is overall healthy

I didn't check ATen implementation as PyTorch was using C Torch when I started Arraymancer but it seems to be using or compatible with DLPack which is a common tensor format proposed by the Mxnet team:
https://github.com/pytorch/pytorch/blob/24eb5ad0c5388bd98f3f0ee3296ab4ad2c13bdd4/aten/src/ATen/dlpack.h#L91-L116
/*!
 * \brief Plain C Tensor object, does not manage memory.
 */
typedef struct {
  /*!
   * \brief The opaque data pointer points to the allocated data.
   *  This will be CUDA device pointer or cl_mem handle in OpenCL.
   *  This pointer is always aligns to 256 bytes as in CUDA.
   */
  void* data;
  /*! \brief The device context of the tensor */
  DLContext ctx;
  /*! \brief Number of dimensions */
  int ndim;
  /*! \brief The data type of the pointer*/
  DLDataType dtype;
  /*! \brief The shape of the tensor */
  int64_t* shape;
  /*!
   * \brief strides of the tensor,
   *  can be NULL, indicating tensor is compact.
   */
  int64_t* strides;
  /*! \brief The offset in bytes to the beginning pointer to data */
  uint64_t byte_offset;
} DLTensor;

By coincidence Arraymancer is something very similar already https://github.com/mratsim/Arraymancer/blob/de678ac12c2c3d3de3ec580cb7ecadcb11ea4b4c/src/tensor/data_structure.nim#L32-L48:
type
  Tensor*[T] = object
    ## Tensor data structure stored on Cpu
    ##   - ``shape``: Dimensions of the tensor
    ##   - ``strides``: Numbers of items to skip to get the next item along a dimension.
    ##   - ``offset``: Offset to get the first item of the tensor. Note: offset can be negative, in particular for slices.
    ##   - ``storage``: An opaque data storage for the tensor
    ## Fields are public so that external libraries can easily construct a Tensor.
    ## You can use ``.data`` to access the opaque data storage.
    ##
    ## Warning ⚠:
    ##   Assignment ```var a = b``` does not copy the data. Data modification on one tensor will be reflected on the other.
    ##   However modification on metadata (shape, strides or offset) will not affect the other tensor.
    ##   Explicit copies can be made with ``clone``: ```var a = b.clone```
    shape*: MetadataArray
    strides*: MetadataArray
    offset*: int
    storage*: CpuStorage[T]


Remove outaded dune rule

Dune rule for removed good-practice.md page was still there.

Sorry for that! :see_no_evil:
And thank you for the fix.


Label management commands

See #230
Add CRUD commands for labels.
Work in progress

Thanks @JaimeSeqLabs! let's fix these small comments and then merge it and I'll take care of do the testing in the other branch altogether with other label features.


Use pyfolio in browser side

Can i use this python control in the browser side?

How do you mean?

Something like the Jupiter notebook

You can use pyfolio inside the jupyter notebook.


Fix new dashboard CSS issues

Solves #1625
Also tried to consolidate encountered stuff, e.g. font-weight varied between 300-700, defined the three styles that exists in the styleguide and following default font-weight names (lighter, normal, bold), visually they are rendered the same anyway.
Saw that the styleguide was updated with new definitions for icons, avatars etc. so have named sizes after those. Not all of them are fully applied yet, but I believe it would help a lot to define components and styles that are aligned with the styleguide, to avoid duplication of rules (e.g. avatars and icons are not). Left them for now since that was really out of the scope of this PR, can be fixed as we get to those for future features. Little by little etc. ;)

@javierarce @matallo @xavijam @carlostallon code review please

already! the only thing I'd comment is the use of selectors mostly on filters_view.js, that I'd decouple from css, and the use of child selectors in js

@matallo: actually there were not that many places where we used CSS classes as hooks for JS interactions, so fixed them (to IDs where suitable, or js-prefixed CSS classes to not have them mixed with CSS classes intended for styles).

:+1:

BOOM, awesome


[Bug]: Gemma 27B crashes on GCP A100

Your current environment
PyTorch version: 2.3.1+cu121
Is debug build: False
CUDA used to build PyTorch: 12.1
ROCM used to build PyTorch: N/A

OS: Ubuntu 22.04.4 LTS (x86_64)
GCC version: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Clang version: Could not collect
CMake version: version 3.30.0
Libc version: glibc-2.35

Python version: 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] (64-bit runtime)
Python platform: Linux-6.1.85+-x86_64-with-glibc2.35
Is CUDA available: True
CUDA runtime version: Could not collect
CUDA_MODULE_LOADING set to: LAZY
GPU models and configuration: GPU 0: NVIDIA A100-SXM4-80GB
Nvidia driver version: 535.161.08
cuDNN version: Could not collect
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True

CPU:
Architecture:                         x86_64
CPU op-mode(s):                       32-bit, 64-bit
Address sizes:                        46 bits physical, 48 bits virtual
Byte Order:                           Little Endian
CPU(s):                               96
On-line CPU(s) list:                  0-95
Vendor ID:                            GenuineIntel
Model name:                           Intel(R) Xeon(R) CPU @ 2.20GHz
CPU family:                           6
Model:                                85
Thread(s) per core:                   2
Core(s) per socket:                   24
Socket(s):                            2
Stepping:                             7
BogoMIPS:                             4400.34
Flags:                                fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves arat avx512_vnni md_clear arch_capabilities
Hypervisor vendor:                    KVM
Virtualization type:                  full
L1d cache:                            1.5 MiB (48 instances)
L1i cache:                            1.5 MiB (48 instances)
L2 cache:                             48 MiB (48 instances)
L3 cache:                             77 MiB (2 instances)
NUMA node(s):                         2
NUMA node0 CPU(s):                    0-23,48-71
NUMA node1 CPU(s):                    24-47,72-95
Vulnerability Gather data sampling:   Not affected
Vulnerability Itlb multihit:          Not affected
Vulnerability L1tf:                   Not affected
Vulnerability Mds:                    Mitigation; Clear CPU buffers; SMT Host state unknown
Vulnerability Meltdown:               Not affected
Vulnerability Mmio stale data:        Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed:               Mitigation; Enhanced IBRS
Vulnerability Spec rstack overflow:   Not affected
Vulnerability Spec store bypass:      Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:             Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:             Mitigation; Enhanced / Automatic IBRS; IBPB conditional; RSB filling; PBRSB-eIBRS SW sequence; BHI SW loop, KVM SW loop
Vulnerability Srbds:                  Not affected
Vulnerability Tsx async abort:        Mitigation; Clear CPU buffers; SMT Host state unknown

Versions of relevant libraries:
[pip3] flashinfer==0.0.9+cu121torch2.3
[pip3] numpy==1.26.4
[pip3] nvidia-nccl-cu12==2.20.5
[pip3] torch==2.3.1
[pip3] torchvision==0.18.1
[pip3] transformers==4.42.4
[pip3] triton==2.3.1
[conda] Could not collect
ROCM Version: Could not collect
Neuron SDK Version: N/A
vLLM Version: 0.5.2
vLLM Build Flags:
CUDA Archs: Not Set; ROCm: Disabled; Neuron: Disabled
GPU Topology:
GPU0	CPU Affinity	NUMA Affinity	GPU NUMA ID
GPU0	 X 	0-23,48-71	0		N/A

Legend:

  X    = Self
  SYS  = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
  NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
  PHB  = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
  PXB  = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge)
  PIX  = Connection traversing at most a single PCIe bridge
  NV#  = Connection traversing a bonded set of # NVLinks

🐛 Describe the bug
When using the OpenAI image on docker on GCP and launching Gemma-2-27B-it, we get the following error after a few requests:
    output = await make_async(self.driver_worker.execute_model
  File "/usr/lib/python3.10/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.10/dist-packages/vllm/worker/worker_base.py", line 260, in execute_model
    self.execute_worker(worker_input)
  File "/usr/local/lib/python3.10/dist-packages/torch/utils/_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/vllm/worker/worker.py", line 291, in execute_worker
    self.cache_engine[virtual_engine].copy(worker_input.blocks_to_copy)
  File "/usr/local/lib/python3.10/dist-packages/vllm/worker/cache_engine.py", line 102, in copy
    self.attn_backend.copy_blocks(self.gpu_cache, src_to_dsts)
  File "/usr/local/lib/python3.10/dist-packages/vllm/attention/backends/flashinfer.py", line 56, in copy_blocks
    raise NotImplementedError
NotImplementedError

This is when using either 0.5.1 or 0.5.2, using FlashInfer attention backend and disabling sliding window attention.

Maybe related to https://github.com/vllm-project/vllm/issues/6361

It seems that indeed FlashInfer does not implement copy_blocks. I see several other implementations just pass the call to PagedAttention.copy_blocks(). Can that work in this case?

Same issue here. I was able to fix it by importing PagedAttention and implementing these methods.
    @staticmethod
    def swap_blocks(
        src_kv_cache: torch.Tensor,
        dst_kv_cache: torch.Tensor,
        src_to_dst: torch.Tensor,
    ) -> None:
        PagedAttention.swap_blocks(src_kv_cache, dst_kv_cache, src_to_dst)
        # raise NotImplementedError

    @staticmethod
    def copy_blocks(
        kv_caches: List[torch.Tensor],
        src_to_dists: torch.Tensor,
    ) -> None:
        PagedAttention.copy_blocks(kv_caches, src_to_dists)
        # raise NotImplementedError


Configurable HTTP host address

Before commit 223dc8dd91a5 where both the web server and the mail server listingen on <IP_ADDRESS>. also known as the any address. It did mean that the web server was always exposed to the whole world.
Commit 223dc8dd91a5 made it possible to (optional) configure the bind address, with default to <IP_ADDRESS>.  Both, web and mail, to same value. Resulting in having the web server listening only on localhost, ment also the mail server listening ONLY on <IP_ADDRESS>.
This change binds mail server hardcoded to <IP_ADDRESS> and web server is configurable with environment variable HTTP_HOST, defaulting to <IP_ADDRESS>

Thanks @stappersg. To be thorough I've also added SMTP_HOST as a variable.

This is released in v0.16.0


[TVG-04M] Incorrect Vesting Duration Extension Mechanism

TVG-04M: Incorrect Vesting Duration Extension Mechanism

Type
Severity
Location

Logical Fault

TyrionVesting.sol:L178

Description:
The TyrionVesting::extendVesting function will not behave as expected given that the amount of released funds for a vesting entry depends on the duration that has elapsed.
In detail, a vesting entry with a duration of 2 days where 1 days has elapsed will have 50% of the totalAmount released. If the duration is updated to 3 days, 50% of the totalAmount will still have been released into the withdrawnAmount if the vesting beneficiary has claimed it while invocations of TyrionVesting::withdrawableAmount would underflow.
Impact:
The TyrionVesting::extendVesting function does not behave as expected given that it fails to properly "extend" the duration of a vesting entry and instead "regresses" it, causing TyrionVesting::withdrawableAmount invocations to lead to subtraction underflows.
Example:
function extendVesting(uint256 vestingId, uint256 _newDuration) external {
    require(vestingId < vestings.length, "Invalid vesting ID");
    require(msg.sender == vestings[vestingId].beneficiary, "Not the beneficiary");
    require(_newDuration > vestings[vestingId].duration, "Duration should be greater than previous");

    vestings[vestingId].duration = _newDuration;
}

Recommendation:
We advise the vesting duration of a vesting entry to be update-able solely when the withdrawnAmount value is 0.
Alternatively, we advise cases whereby withdrawnAmount is non-zero to be properly handled by "resetting" the vest as if the remaining unvested amount is "re-vested" for the remaining duration of the vesting entry's new total duration.

fixed in 64d26b13958cc72c1ae3168db79619df9800f837


ESP32can_basic example hangs after disconnect of TX-line

Hi, I just tried the esp32_can basic example and it worked right-away; thanks!
BUT: when I disconnect the tx line temporarily communication doesn't resume, even after resetting via the 'EN' button on the doitV1 board doesn help. I can only get it back running after a new power-up
I connected two ESP32 doitV1 boards together via the gpio2(TX) and gpio4(rx) and loaded the example sketch in each one

update: it also hangs after disconnection of one the the two the CAN lines, which is real-life event.

Yes. it hangs after third send attempt to disconnected line. I looked line via logic analazer and it endlessly repeats sending the last packet to the line with a very short intervals.

Hi, I'm encountering this same issue, did anyone figure out a fix for this?

I solved this by replacing portMAX_DELAY with 500 in CAN.c
This will return after max. 500ms with zero if it could not be send.
`int CAN_write_frame(const CAN_frame_t *p_frame) {
if (sem_tx_complete == NULL) {
return -1;
}
// Write the frame to the controller
CAN_write_frame_phy(p_frame);

// wait for the frame tx to complete
int rc = xSemaphoreTake(sem_tx_complete, 500);
return rc;

}`

Doing this is a good solution and the proper way I would say
xSemaphoreTake(sem_tx_complete, 10 * portTICK_PERIOD_MS);
Itt uses tick in the low end code and adds 10 ms. So it's real time 10ms.
Sending a regular frame takes about 6 - 7ms so you could make it less if you want to. Works fine!
You'll find this inside the CAN.c file inside the function with name CAN_write_frame(const CAN_frame_t *p_frame)

Best solution would be having  int CAN_write_frame(const CAN_frame_t *p_frame, const tTickType_t xTicksToWait)
Current implementation where CAN_write_frame can hang infinite time is about blocker issue in real time system. Even having separate task just for sending and then having task hang infinite time is blocker issue. I have not find any other fix than patching this library because sem_tx_complete is static and there is no way from external code to check does function hang or no.

using same library rx starts after that tx stops till restart and tx stops after rx starts


updates ARMA ROM .pk file due to RAVEN changes

Recent changes in the RAVEN ARMA ROM have broken existing pickled ROMs. This is causing a FARM test that uses an ARMA model to fail. This PR updates the pickle file in question with a retrained model compatible with these changes in RAVEN.

ARMA has been re-trained to resolve this issue. Thanks!


mmm/626 healthcheckpoint

What this does?
It imitates  gRPC's health checking protocol .
Due to some problems of accessibility at grpc health check module, a new scala version has been developed.
It contains:

module health-check-unary for unary calls
module health-check-fs2 for streaming calls with fs2 library
module health-check-monix for streaming calls with monix library
example for health check fs2 streaming case
example for health check monix streaming case

Related to #626

Now I'm seeing the errors in the build it looks we need to provide the protocol in a different module.
We could have the following modules:

health-check-protocol-unary: With the current unary @service
health-check-service-unary: Depending on channelandhealth-check-protocol-unary-scalawith the% provided`

We could also include the avdl and proto files in the channel resources, providing instructions about how to add the sbt settings for generating your protocol definition.
We'd need something similar for monix and fs2. @mrtmmr @juanpedromoreno thoughts?

Sounds good to me @fedefernandez @mrtmmr :)

@juanpedromoreno after a talk with @mrtmmr we could create the unary service in its own single module, right now only with Protobuf and create an issue for giving support for both, avro and proto.


Updated click_handlers.js, fix text format bug

The message doesn't get deleted automatically if we click anywhere while formatting its text style!
Fixes issue: #5886

Automated message from Dropbox CLA bot
@fragm3, thanks for the pull request! It looks like you haven't yet signed the Dropbox CLA. Please sign it here.

@fragm3 note that the messages are saved as drafts, not deleted :).

This fix looks good; I think it's maybe worth spending a bit of time checking if there are other references to .modal in the codebase that also need updating while we're at it :)

Yeah, looking into it

@timabbott I tested it on drafts and no reference to .modal anywhere else. Everything's working

Awesome.  Merged as caee54807466572db483c1848046e7163ad1a035 after expanding the commit message.  Thanks @fragm3!
Check out the Zulip commit message guidelines for details on how we write them: https://zulip.readthedocs.io/en/latest/version-control.html#commit-messages
And thanks again for finding this bug :)


adding io_utils test for hdf5matrix

A test to cover HDF5 Matrix and ensure, fit, predict, and evaluate work correctly with them.

LGTM, thanks


save_and_open_screenshot not working?

I'm using Rails 4.2.1 and Ruby 2.2.2 with capybara-2.4.4 and launchy-2.4.3. When I run save_and_open_screenshot no screenshot shows up. Has anyone else experienced similar issues? This was working with Rails 3.2+.

Ask questions on the mailing list as requested in the README


Added pop-up as main component and added 10 subcomponents to it. (fixes #703)

Fixes Issue🛠
Closes #703
Description👨💻
I have added pop-ups as main component, under that I have added 10 subcomponents as below.

Success notification pop-up
https://github.com/Rakesh9100/Beautiify/assets/139672976/05cc7ced-39ff-46b1-b97f-534ecd42a249

Warning notification component

https://github.com/Rakesh9100/Beautiify/assets/139672976/309b0ac3-b589-4b26-8a12-f39515bf45fe

Error notification component

https://github.com/Rakesh9100/Beautiify/assets/139672976/173cf2c8-6011-46da-87f1-e392b7a08699

Confirmation dialog

https://github.com/Rakesh9100/Beautiify/assets/139672976/9b32131e-6b43-4d51-af8b-fcf263ad6fef

Login/register pop-up modal

https://github.com/Rakesh9100/Beautiify/assets/139672976/0a7db7fd-1397-4f9d-948f-c85ed1b932cb

Welcome offer modal

https://github.com/Rakesh9100/Beautiify/assets/139672976/dd50f767-6ecc-4bab-8759-f5f8fc64bc91

Toast message

https://github.com/Rakesh9100/Beautiify/assets/139672976/92d21b00-6cec-41fe-ae56-c2293f3bec35

Tooltip

https://github.com/Rakesh9100/Beautiify/assets/139672976/d05fe959-b117-4844-90f6-df633deaa304

Sidebar pop-up

https://github.com/Rakesh9100/Beautiify/assets/139672976/32862aa0-e0f0-49d1-afe2-8c17b996528f

Context menu

https://github.com/Rakesh9100/Beautiify/assets/139672976/788ef2de-5ab4-4de7-856e-d206c38f33f3
Checklist✅

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have added demonstration in the form of GIF/video file
[x] I am an Open Source Contributor

Kindly please let me know, if any changes required.

@Rakesh9100 Please kindly review this pr.

@Rakesh9100
Nice add up
Pls merge it

@Rakesh9100 Please review this pr.


[Question] How to disable right click menu on cell?

I want to create a read-only sheet, and want to disable completely the right click menu.
How can I do that?
Also how to disable work sheet menu as well, because I want to create a fixed size work sheet (only 3 sheet with pre-config).
Thanks,

Fingered myself!
Have to set "all" value on cellRightClickConfig and sheetRightClickConfig to false. That's one odd way to do. I wish it have something like cellRightClickConfig: false or cellRightClickConfig: {} to disable right click!


can't get it to work without mysql socket file

Hi,
i am using the XenForoSDK on a server that does not have a mysqld.sock because the mysqlserver is located elsewhere.
Now it still trys to use the socket connection.
How can i change that?

@ragsnas this class does not use any specific socket. it just uses the default XenForo models, so you should check your XF setup. it's not related to this class.


Created Tokens Account Balance Zero

Hi,
I've created multiple tokens from SPL commend showing balance of tokens minted but when searched on Solscan the account is showing zero tokens minted. What seems to be the problem minting and not showing balance now? I do have plenty of funding
to mint tokens and when minting the account is being deducted. Could there be some glitch or what? Please help thanks.
Hrer:
3Dr1A8NiLLGCZMr2xnpZZmGssGJ7oUppwVXmEHNUXgcT<PHONE_NUMBER>0
43gbusDnC37rWv2m1WcC5dKpmixDYJyt4dEkkYwK3656<PHONE_NUMBER>0
GucBPUNJEgDn93ZjmNUDuq5PekFbaGQqXKvj9uozuzGV<PHONE_NUMBER>3.709551615

Solved


Sync UI

[ ] If this pull request closes/resolves/fixes an existing issue, replace the issue number. Closes #.
[x] Update the CHANGES log.

Sync UI changes

Fix: avoid querying data with empty parameters.
Add a title and a description for trace segments

My fault, the sub module is not submitted. Let's hold.


🪟 fix: Windows Vite Build Issue

Summary
Issue Encountered:
We experienced a recurring problem where the TailwindCSS classname peer-focus caused Vite to hang, but this issue was only manifesting on Windows 11 environments, not on Linux.
Diagnosis:
Investigation suggested that the usage of peer-focus:dark was problematic due to potential deep recursion or complexity in CSS generation, which was not well-handled by the Windows version of Node.js or Vite.
Solution Implemented:
To resolve the issue, we adjusted the order of the TailwindCSS modifiers in our project. Specifically, we changed peer-focus:dark to dark:peer-focus. This minor adjustment effectively bypassed the recursion issue and resolved the hanging of Vite during development and builds on Windows 11.
Additional Actions:

We have updated the CI/CD pipeline to include a Windows environment in our testing matrix. This ensures that any Windows-specific issues are caught early in the development process, preventing similar occurrences in the future.
Adjustments were made compatible across both Windows and Linux platforms without affecting existing functionalities.

Conclusion:
This fix not only resolves the immediate hanging issue but also improves the robustness of our development process by incorporating comprehensive OS-specific testing, ensuring consistent behavior across all supported platforms.
Change Type

[x] Bug fix (non-breaking change which fixes an issue)

Checklist

[x] My code adheres to this project's style guidelines
[x] I have performed a self-review of my own code
[x] I have commented in any complex areas of my code
[x] I have made pertinent documentation changes
[x] My changes do not introduce new warnings
[x] I have written tests demonstrating that my changes are effective or that my feature works
[x] Local unit tests pass with my changes
[x] Any changes dependent on mine have been merged and published in downstream modules.
[x] New documents have been locally validated with mkdocs

FYI @techwithanirudh since the peer-focus:dark was introduced in https://github.com/danny-avila/LibreChat/pull/2619
Maybe you can confirm if the desired effect is still working as expected after merging this PR

@danny-avila The desired changes appear to work.

@danny-avila The desired effect appears to work.

awesome, thank you for confirming!


Refactor Matter to be a Trait.

As commented in #72
Matter would be better used abstractly.
Currently the matter implementation uses member variables for code/raw etc and mutates them internally.
We should add  get_code() get_raw()  to a Matter Trait and move the member variables up to Diger/Cigar/Verfer.
A Matter Trait could look something like:
pub trait Matter {
pub fn qb64b(&self) -> Result<Vec<u8>> //with default impl
pub fn qb2(&self) -> Result<Vec<u8>> //with default impl
pub fn code(&self) -> String
pub fn raw(&self) -> Vec<u8>

fn infil(&self) -> Result<String> //with default impl
fn binfil(&self) -> Result<Vec<u8>> //with default impl
fn exfil(&mut self, qb64: &str) -> Result<()> //with default impl
fn bexfil(&mut self, qb2: &[u8]) -> Result<()> //with default impl
}

+1


Fix transition share probability conversion in the UI

The treemap shows the correct proportions pulled from the API, but the probability in the matrix view is off by a factor of 10.
E.g. the probability should be 9.5% instead of 0.95% since the proportion is .095
Treemap (correct)

Matrix (incorrect)

for inputs (in this example)

done. Changes merged

done. Changes merged


Android git sync Mgit

Prerequisites

[X] I have searched for duplicate or closed feature requests
[X] I am mindful of the project scope

Proposal
You can use Android markdown editor and sync changes with opensource git client available in fdroid and playstore Mgit. https://github.com/maks/MGit Last update january 2023
Motivation and context
alternatives to android list

Thanks for suggestion. There are a huge number of git and notes apps. We try to simplify the user experience by just listing one option. What makes the the app you mentioned better than the existing option on the page?

Closing due to no response


Change index.ts 'object' to 'Object'

fix checking errors class-transformer-validator/index.d.ts:19:56  Cannot find name 'object'.
I did not test it, please check it. :) Thanks.

"Object" usage is obsolete. Because an "object" is used instead since TS2.2


Shield 2017: 4K titles won't play, others are fine.

Bug report
Your Environment

Netflix add-on version: 0.16.0
Operating system version/name: ANDROID TV Pie
Device model:  Nvidia Shield TV 2017

Used Operating system:

[X ] Android
[ ] iOS
[ ] Linux
[ ] OSX
[ ] Raspberry-Pi
[ ] Windows

Describe the bug

4K titles won't stream, just spinning wheel. Non-4k titles works fine.
Expected behavior

Actual behavior

Steps to reproduce the behavior

Possible fix

Debug log

The debug log can be found from this link:
https://paste.kodi.tv/ijariwijom.kodi
Additional context or screenshots (if appropriate)
Installation

[ ] I'm using other Netflix Repo
[ ] I'm using a different source

Other information

Screenshots

First i suggest to update addon to last version available
so read 4k problem instructions to the readme


Add "device not responding" to UI

Is your feature request related to a problem? Please describe:

If a device is not responding there is no representation in the UI. For example someone cut power of a smart-lamp. The "offline/not-responding-state" is is represented in the Home-App, but it's not shown in the HB UI. Making this possible would increase the usability of the HB UI.
Describe the solution you'd like:

Display an error icon/label for unresponsive (offline) devices.
Describe alternatives you've considered:

Additional context:

Here is a screenshot of the Home-App showing the unresponsive device:

This is the corresponding HB UI screenshot of the unresponsive device:

I hope that I'm guessing right, that this is related to the HB UI and not something that's up to the plugin developers.
Thanks for your great work and your time to look through this.

I‘m still here mr. stale 🎅🏻

This should not be stale.

If i ever implement this, I'll mention this issue 😄
It's very far down the to-do list and can be closed for now.

If i ever implement this, I'll mention this issue 😄
It's very far down the to-do list and can be closed for now.