Marker Clustering

Any plans on implementing the cluster functionality in mapbox

Hi, I'd love to but you're pointing to the JS version whereas this plugin uses the native SDK's. If you can find the clustering feature for native I'd love to hear! Otherwise please ask in the Mapbox GitHub repo, I'm sure they've heard the request before.

Clustering has recently been added to the native SDK (on Android in v 4.2.0) so it's time to look at this again!

2.5.0 has marker clustering on Android, but I couldn't get unclustered markers to show up so it's an undocumented feature for now.

Hey @EddyVerbruggen check out this example. I know it's for the gl.js library, however it does show that they show unclustered markers by adding a second layer.
They use the Filter property to hide it when the point has the point count layer visible (meaning it's been clustered).
Example:
    map.addLayer({
        id: "unclustered-point",
        type: "circle",
        source: "earthquakes",
        filter: ["!has", "point_count"],
        paint: {
            "circle-color": "#11b4da",
            "circle-radius": 4,
            "circle-stroke-width": 1,
            "circle-stroke-color": "#fff"
        }
    });

This is the same approach I used in a project using ngx-mapbox (which is built on mapbox-gl) and it worked well in the browser, perhaps it could work with your native implementation?

It looks like clustering has been added to iOS SDK. Is this a feature that could be looked into again? And possibly documented for Android as well?
https://www.mapbox.com/ios-sdk/maps/examples/clustering/

Agreed, would love to see this in the library!

Very keen to see this added! Some solid examples around now for both iOS and Android.

Clustering would be a great addition, from what I can see there aren't any NativeScript plugins that have map clustering / heatmap options for any map library.

@Tyler-V You can use this currently ;)
I tested with Android and it seems to work, whether or not it works well in the current version is another question, I've been meaning to look into it more :(

Yes they both implement mapbox.common.ts but only Android currently implements that method, iOS is not available yet.
I was looking to do a mapping project in NativeScript but it appears that there just aren't any mature libraries that meet all of my requirements (heatmap, clustering, offline)

+1 for clustering :)

I'm going to make a PR both for Android and iOS.

What is missing for the PR to be integrated?

@sguimont This PR is old from before I took the project over. It needs to be updated to match the v5 changes. I haven't had a chance to look at it yet.

I will update PR asap.

@mohammadrafigh You will make my day!  I'm happy to hear someone will continue the work of this feature.

I’m still waiting since October too 🙃 thank you !!

@Yermo Actually I'm using nativescript-mapbox and Mapbox GL JS in a shared project (schematics). So using the same API is preferred for me too. For sure I will try to do my best but for now I need to find a workaround for #379 that I faced today when I started to do some investigations. please let me know if you have thoughts about it.

@mohammadrafigh Did you find a workaround for #379? Would be very nice to see your pull request merged at some point. Let me know if there´s something I can help with in order to make it happen.

@b44rd the readme advises that the project has now moved: https://github.com/nativescript-community/ui-mapbox


chore: up deps

:tada: This PR is included in version 4.1.8 :tada:
The release is available on:

v4.1.8
npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


remove json2html from the controls

also move controls to a better location maybe under the graph view

gh-pages d778dca gets rid of json2html (sorry to see it go -- "its not you, its me")


DR Tanks make more sense to use as pipes than as tanks

Seriously. I personally use them in all my large powergen setups because they have a instant, unlimited transfer rate between themselves, and no cap as far as the eye can see.
Its better to make a bunch of cheap tanks than to make pipes from other mods, because of the properties they have.
And, on the other hand, tanks from other mods are almost always better at storing things than DR Tanks,

I'll made the recipe somewhat harder to avoid this


Standardization of common errors for db backends

Hi Sam,
GODB supports multiple DB backends, but developing for multiple databases needs common error handling. For example to check UniqueConstraint error you should check error message for current db connection(if targeting 4 db types, 4 different if checks...) and this leads to lots of boiler code.
#23 is to solve this problem. Not all errors are added, but some common errors are added. Can you review #23?
Erkan.

Code review done, please see my comment and suggestion.
Thanks for this contribution  😀

Merged !


[Bug]: Restore failed after 15 minutes

Current Behavior
I restored a collection with a size of about 16gb and failed when more than 15 minutes, i use milvus installed with helm, I have set importTaksExpiration in milvus.yaml with a value of 90000 or about 25 hours on configmaps, but it still doesn't work even the milvus.yaml already set as 90000 in rootcoord, are there any settings that need to be added to milvus backup?
milvus.yaml value :
rootCoord:
address: milvus-ground-rootcoord
dmlChannelNum: 16
enableActiveStandby: true
importTaskExpiration: 90000
importTaskRetention: 86400
maxDatabaseNum: 64
maxPartitionNum: 4096
minSegmentSizeToEnableIndex: 1024
port: 53100
rootcoord error :
[2023/09/03 09:50:07.501 +00:00] [INFO] [rootcoord/root_coord.go:2005] ["an import task has failed, marking DataNode available and resending import task"] ["task ID"=443982561981094687]
[2023/09/03 09:50:07.501 +00:00] [INFO] [rootcoord/root_coord.go:1978] ["a DataNode is no longer busy after processing task"] ["dataNode ID"=178] ["task ID"=443982561981094687]
milvus backup error ;
[2023/09/03 16:50:10.734 +07:00] [ERROR] [core/backup_impl_restore_backup.go:574] ["fail or timeout to bulk insert"] [error="bulk insert fail, info: import task was canceled"] [errorVerbose="bulk insert fail, info: import task was canceled\n(1) attached stack trace\n  -- stack trace:\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).watchBulkInsertState\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:603\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).executeBulkInsert\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:572\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreCollectionTask.func4\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:478\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreCollectionTask\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:502\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreBackupTask\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:327\n  | runtime.goexit\n  | \t/usr/lib/golang/src/runtime/asm_amd64.s:1571\nWraps: (2) bulk insert fail, info: import task was canceled\nError types: (1) *withstack.withStack (2) *errutil.leafError"] [taskId=443982561981094687] [targetCollectionName=online_news_indobert] [partitionName=_default] [stack="github.com/zilliztech/milvus-backup/core.(*BackupContext).executeBulkInsert\n\t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:574\ngithub.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreCollectionTask.func4\n\t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:478\ngithub.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreCollectionTask\n\t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:502\ngithub.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreBackupTask\n\t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:327"]
[2023/09/03 16:50:10.734 +07:00] [ERROR] [core/backup_impl_restore_backup.go:480] ["fail to bulk insert to partition"] [error="bulk insert fail, info: import task was canceled"] [errorVerbose="bulk insert fail, info: import task was canceled\n(1) attached stack trace\n  -- stack trace:\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).watchBulkInsertState\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:603\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).executeBulkInsert\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:572\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreCollectionTask.func4\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:478\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreCollectionTask\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:502\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreBackupTask\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:327\n  | runtime.goexit\n  | \t/usr/lib/golang/src/runtime/asm_amd64.s:1571\nWraps: (2) bulk insert fail, info: import task was canceled\nError types: (1) *withstack.withStack (2) *errutil.leafError"] [backupCollectionName=online_news_indobert] [targetCollectionName=online_news_indobert] [partition=_default] [stack="github.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreCollectionTask.func4\n\t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:480\ngithub.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreCollectionTask\n\t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:502\ngithub.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreBackupTask\n\t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:327"]
[2023/09/03 16:50:10.735 +07:00] [ERROR] [core/backup_impl_restore_backup.go:504] ["fail to (copy and) bulkinsert data"] [error="bulk insert fail, info: import task was canceled"] [errorVerbose="bulk insert fail, info: import task was canceled\n(1) attached stack trace\n  -- stack trace:\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).watchBulkInsertState\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:603\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).executeBulkInsert\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:572\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreCollectionTask.func4\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:478\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreCollectionTask\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:502\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreBackupTask\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:327\n  | runtime.goexit\n  | \t/usr/lib/golang/src/runtime/asm_amd64.s:1571\nWraps: (2) bulk insert fail, info: import task was canceled\nError types: (1) *withstack.withStack (2) *errutil.leafError"] [backupCollectionName=online_news_indobert] [targetCollectionName=online_news_indobert] [partition=_default] [stack="github.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreCollectionTask\n\t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:504\ngithub.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreBackupTask\n\t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:327"]
[2023/09/03 16:50:10.735 +07:00] [ERROR] [core/backup_impl_restore_backup.go:329] ["executeRestoreCollectionTask failed"] [TargetDBName=default] [TargetCollectionName=online_news_indobert] [error="bulk insert fail, info: import task was canceled"] [errorVerbose="bulk insert fail, info: import task was canceled\n(1) attached stack trace\n  -- stack trace:\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).watchBulkInsertState\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:603\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).executeBulkInsert\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:572\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreCollectionTask.func4\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:478\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreCollectionTask\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:502\n  | github.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreBackupTask\n  | \t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:327\n  | runtime.goexit\n  | \t/usr/lib/golang/src/runtime/asm_amd64.s:1571\nWraps: (2) bulk insert fail, info: import task was canceled\nError types: (1) *withstack.withStack (2) *errutil.leafError"] [stack="github.com/zilliztech/milvus-backup/core.(*BackupContext).executeRestoreBackupTask\n\t/opt/milvus/milvus-backup/core/backup_impl_restore_backup.go:329"]
Expected Behavior
No response
Steps To Reproduce
1.restore a backup with size 16GB
2.the error happen with rootcoordinator logs failed to attempt task

Environment
No response
Anything else?
 And can you share the backup metadata too? There is a meta folder in backup data.

after I tried making a new backup and restoring it, it works, i do not hit the timeout, i guess there is a problem with the backup data, the importTaskExpiration is working, thanks


I am making a HP logo

Hi. There are many logos already. Please do something else.

@salil-naik Can I go for ripple effect


[History] Add feature to filter messages by an attribute value inside attrs

I'm submitting a ...

[ ] bug report
[x] feature request
[ ] support request

What is the expected behavior?
Find messages by attributes inside attributes like so: nome.sobrenome=silva

What is the motivation / use case for changing the behavior?
On projetc mobilidade elétrica we nesse find this messages.

Please tell us about your environment:

Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, gitter, etc)

Already implemented. Just need a PR to branch development


[stable/odoo] Improve notes to access deployed services

What this PR does / why we need it:
As described on kubernetes/kubernetes#59809, now kubectl port-foward resolves service port to target port. Therefore, we can access the services deployed as 'ClusterIP' using a simple port-forward.
This PR improves the NOTES.txt so this new method is the one recommended to access the application when using 'ClusterIP'

/ok-to-test
/lgtm

/ok-to-test
/lgtm


1.4: Launch epmd at start of riak_kv tests

See #1119

+1 6df8cfb3495eda44d29c60b3f35421152695c5fe

@borshop merge


TypeScript tooltips no longer show "undefined"

When hovering over types and functions recently, undefined is no longer shown in the types. This function getWorkspaceFolder (from the VS Code API) has a return type of WorkspaceFolder | undefined but the tooltip doesn't include undefined. This seems to the case for all tooltips, for local variables, functions, etc.:

If I hold down Cmd which adds a preview of the code (using the definition data), the undefined is shown:

This makes fixing type issues a little annoying, as it's not always obvious if a value may be undefined or not.
I'm using TypeScript 4.0.2 according to the status bar.

Does your project have struct null checks enabled? | undefined will not show in non-strict projects

@mjbvz Yep (via strict):
https://github.com/Dart-Code/Dart-Code/blob/e32b360706d4c3a76b7c0545b1eb9c267e6854bc/tsconfig.json#L12
It definitely used to show - I use this a lot, and it really caught me out that it disappeared.

Can you share steps to reproduce it in your codebase?

cd /tmp
git clone https://github.com/Dart-Code/Dart-Code
cd Dart-Code
npm install
code .

Open src/extension/commands/sdk.ts and navigate to around line 156 (const folder = vs.workspace.getWorkspaceFolder(uri);) and hover over getWorkspaceFolder.
Based on another issue, I wonder if it may be related to this folder (src/extension) being excluded - but I'm certain this used to work. I need to exclude this folder from building because it's webpacked, and having two compiled copies of it is confusing for many reasons. This doesn't seem like it should break my language support in the editor (or if it must, there should be another way to prevent files being compiled to disk during a build).

I'm certain this used to work

Actually, it seems like I may have excluded the folder in tsconfig more recently than I remembered (when I webpack'd the debug adapter):
https://github.com/Dart-Code/Dart-Code/commit/27b76ae39a53dbe4aeb1b527d7cdffdebf916414#diff-e5e546dd2eb0351f813d63d1b39dbc48
So this might not have changed after all 🙈. Probably the fix is to have multiple tsconfigs?

Turns out I'd already accidentally fixed this on my eslint-migration branch. I'd changed the base tsconfig to not exclude, and have a tsconfig.build.json that excludes and is used for builds. Sorry for the confusion (and misleading info!), I think this is all working-as-intended and has an obvious fix.
Thanks!


Modal closing caused Animated childs back to start value of animation

Description:

Modal closing caused Animated childs back to start value of animation.
Animating to translate child component to some coordinates(x,y) and After setState to close modal, child components inside be back to previous position

React Native version:
System:
OS: macOS 10.15.3
CPU: (6) x64 Intel(R) Core(TM) i5-9400F CPU @ 2.90GHz
Memory: 511.51 MB / 16.00 GB
Shell: 5.7.1 - /bin/zsh
Binaries:
Node: 13.6.0 - /usr/local/bin/node
Yarn: 1.21.1 - /usr/local/bin/yarn
npm: 6.13.4 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 13.2, DriverKit 19.0, macOS 10.15, tvOS 13.2, watchOS 6.1
Android SDK:
API Levels: 16, 18, 19, 21, 22, 23, 24, 26, 27, 28, 29
Build Tools: 28.0.3, 29.0.2
System Images: android-19 | Google APIs Intel x86 Atom, android-21 | Google APIs Intel x86 Atom_64, android-23 | Google APIs Intel x86 Atom_64, android-27 | Google APIs Intel x86 Atom, android-28 | Google APIs Intel x86 Atom_64
IDEs:
Android Studio: 3.5 AI-191.8<IP_ADDRESS>10548
Xcode: 11.3.1/11C504 - /usr/bin/xcodebuild
Steps To Reproduce

Toggle on modal
Translate child component
Toggle off modal
See what happens at closing moment

Expected Results
Child component's animation position stand at it's position on closing modal

Snack, code example, screenshot, or link to a repository:

I found that this issue only happen when childs component's animation useNativeDriver:true.
So, anything works properly with useNativeDriver:false at child components.

but, why?


Addition of Artificial neural network Implementation from Scratch

This pull request will resolve issue #928.

hey @invigorzz313 can you review this, let me know of any changes.

@Shantnu-singh you must create a new branch in your forked repo and commit files to it (not to master).


Feat: Add pydantic plugin with BaseModel type transformer

TL;DR
The plugin adds type support for pydantic BaseModel.
Type

[ ] Bug Fix
[ ] Feature
[x] Plugin

Are all requirements met?

[ ] Code completed: The transformer does not yet support all Flyte types in a pydantic model (e.g. data frames)
[x] Smoke tested
[x] Unit tests added
[ ] Code documentation added
[ ] Any pending items have an associated Issue

Complete description
The plugin allows passing pydantic models to and between tasks:
Type Example
from pydantic import BaseModel
import flytekitplugins.pydantic
class Config(BaseModel):
    lr: float = 1e-3
    batch_size: int = 32
@task
def train(cfg: Config):
    ...

Tracking Issue
https://github.com/flyteorg/flyte/issues/2686
Follow-up issue
NA

Hi
super useful. thanks for sharing.
Trying this on my end but couldnt get it to play with the flytefiles/directories because they require arbitrary_types_allowed which disables the .schema() method. Here is an example :
class Rax(pydantic.BaseModel, arbitrary_types_allowed=True):
hax: directory.FlyteDirectory
@classmethod
def from_json(cls, json: str) -> "Rax":
    self = cls.parse_raw(json)
    return self

Any thoughts on how to best solve it? I am looking at the built in DataclassTransformer

Closing in favor of https://github.com/flyteorg/flytekit/pull/1660 where @ArthurBook improved upon this implementation of the pydantic base model type transformer.


Dynamic module compilation and C# 6 features

Hi all,
this ain't a high priority thing but I thought I mention it, so it's on the radar.
I wanted to try out some of the new C# 6 features which isn't a problem if you compile your module and then run Orchard.
However, if Orchard is running and the dynamic compilation kicks in, an exception get's thrown when it hits code that utilizes those features (like the new null conditional operator)
mailListPart.Record.QueryPartRecord = memberSourceQueryPart?.Record;

Here's the exception:
System.Web.HttpCompileException (0x80004005): c:\Work\Stash\Orchard\src\Orchard.Web\Modules\MyModule\Handlers\MailListPartHandler.cs(85): error CS1525: Invalid expression '.'.
   at System.Web.Compilation.BuildManager.PostProcessFoundBuildResult(BuildResult result, Boolean keyFromVPP, VirtualPath virtualPath)
   at System.Web.Compilation.BuildManager.GetBuildResultFromCacheInternal(String cacheKey, Boolean keyFromVPP, VirtualPath virtualPath, Int64 hashCode, Boolean ensureIsUpToDate)
   at System.Web.Compilation.BuildManager.GetVPathBuildResultFromCacheInternal(VirtualPath virtualPath, Boolean ensureIsUpToDate)
   at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)
   at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)
   at System.Web.Compilation.BuildManager.GetVPathBuildResult(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean ensureIsUpToDate)
   at System.Web.Compilation.BuildManager.GetCompiledAssembly(String virtualPath)
   at Orchard.Environment.DefaultBuildManager.GetCompiledAssembly(String virtualPath) in C:\Work\Stash\Orchard\src\Orchard\Environment\IBuildManager.cs:Line 53.

It gets thrown here (Orchard\Environment\IBuildManager.cs:Line 53).
public Assembly GetCompiledAssembly(string virtualPath) {
    try {
        return BuildManager.GetCompiledAssembly(virtualPath);
    }
    catch (Exception ex) {
        if (ex.IsFatal()) throw;

        Logger.Warning(ex, "Error when compiling assembly under {0}.", virtualPath);
            return null;
    }
}

I spent some time searching the web for more info on why exactly it fails, but I couldn't find anything helpful so far.

I just ran into this myself as well.

I have the same problem. Impatiently waiting to upgrade.

So we have this commit now from @DanielStolt (c59b761c3a1542e4edc0135724cb536e816b3132) which enables c# 6 syntax support in Razor views.
I cannot test the dev branch right now, but does this commit also fix this issue or is it a razor-only-fix?

@Xceno I have been wondering that myself. I'm not familiar enough with how the dynamic compilation in Orchard works, I know it uses the Build Manager in System.Web to compile the projects, but whether this is influenced by the CodeDom providers I have now added to Web.config remains to be seen I guess. Please do report back if and whenever you get a chance to test it!

This must be something like this _codeCompilerType.CompilerParameters.CompilerOptions += string.Format("/langversion:6 /define:ORCHARD_{0}_{1}", orchardVersion.Major, orchardVersion.Minor); in CSharpExtensionBuildProviderShim but I don't know what is the requirement on the server for it to work.
Also, we need to look at how we can target a specific framework (like 4.5.2 currently).

I just tested the changes by @DanielStolt from 7 month ago about adding C# 6 support for Razor views (with the change immediately after that to set every project to 4.5.2: dec68d454c90536d2ca335cf46f35346fb2ca03a) and it works great!
@sebastienros later reverted the change adding the C# 6 support (3630473e693598b0323901fec91cab5020ee98b9), so it didn't make it into 1.10.1 - any news on this?
Unfortunately, in my experience, Dynamic Compilation in 1.10.1 is almost useless.
Btw I tried Sébastien's suggestion to add an additional parameter to the CompilerOptions and it yields a lot of debug errors (same as before the change), e.g. when I modify LayoutPartDriver:
2016-08-04 00:13:37,419 [78] Orchard.Environment.DefaultBuildManager - Default - WARN Error when compiling assembly under ~/Modules/Orchard.DynamicForms/Orchard.DynamicForms.csproj. System.Configuration.ConfigurationErrorsException: Could not load file or assembly 'Orchard.Layouts' or one of its dependencies. The system cannot find the file specified. (E:\DEV\Orchard\Orchard CMS\src\Orchard.Web\modules\orchard.dynamicforms\web.config line 35) ---> System.IO.FileNotFoundException: Could not load file or assembly 'Orchard.Layouts' or one of its dependencies. The system cannot find the file specified.
One thing I would add though - and this is something that we should follow as a convention when decided - is whether we should use string interpolation in T-strings. From a translators point of view, this could be a source for mistakes (although Crowdin detects special characters like that and handles special parts of the string nicely). What is also notable is that Vandelay.TranslationManager (Bertrand's module that can extract T-strings from source files) does not handle such strings (due to the addition of the $ character), but it's probably not a big deal to fix that.

Here's a PR to fix Dynamic Compilation to support C# 6: https://github.com/OrchardCMS/Orchard/pull/7508
There are still debug log entries for some of the modules (Dashboards, Layouts) even when they aren't modified, but there's no runtime issue with that and it was reproducible before this change well - I'll try to fix those as well anyway.

I reverted it because it broke things. Have you tried to run the specflow tests, I would start with it.

Also when you say "dynamic compilation is almost useless in 1.10.1" do you mean it doesn't work anymore (that would surprise me). And do you mean that your PR is breaking the feature. I assume that's the reason I reverted Daniel's change.
I would not take it in 1.10.2 as it's too risky. It's a good candidate for 1.11.

Dynamic Compilation does not work at all in 1.10.1 if it has to compile any code that contains C# 6 language features, the PR I sent in fixes that (but I'll do some further testing, because some of the SpecFlow tests are failing / throwing a warning). Daniel's changes are about Razor compilation - I haven't checked yet whether those changes cover Dynamic Compilation or not.

The change I made did not cover dynamic module compilation (of code), it only covered Razor views which are dynamically compiled either way. As far as I recall though, with my change there was no problem using C# 6 syntax in Razor views in either case, whether the module itself was pre-compiled or dynamically compiled.

@BenedekFarkas Thank you so much for putting your time and effort into fixing the compilation for newer C# versions! We've finally come around to implement your changes and (after some gitignore problems) can finally get back to saving and hitting F5!

@BenedekFarkas is everything fixed now?

Hi @teamaton thanks for the feedback - so you applied these changes without any additional work (besides the gitignore) and it worked?
@sebastienros I'll do some further testing myself, I'll try to get around to finish this soon!

Yes, Benedek's diff did it for us - we haven't had any problems with that solution :-)

Good to know

Here's the new PR: #7891
Also includes Razor IntelliSense and it's targeting 1.10.x. If and when it's merged, 1.10.x should be merged into dev and I'll create a separate PR to update that as well (since there are a few more modules on that branch).

Updated PR with codegen changes: packages.config added with all the necessary packages (+ codegen commands update), package references and root web.config updated.

@sebastienros are we OK to merge this? Maybe with someone else testing it as well.

We merge on thrusdays

I'll bring popcorn! :D


Add dedicated security error for OngoingFork

Transaction verification is disabled if we have an OngoingFork with more confirmations + the security parameter than the main chain (see here). This is not reflected in the security module and thus our client-side code is unable to determine if it is valid to execute a payment. We should reflect this possible downtime in the security pallet to also avoid unintended lapses in the expiry periods.

We no longer use the global security errors, see the (now closed) linked PR.


Azure monitor instructions are no longer valid

I tried to fine the "More" options on Azure Monitor and it's not on the page. I managed to find it by searching for solutions and then adding the Surface hub solution and following the config to join it to the log analytic workspace that the hubs are configured to send there config too.

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

ID: a15ac450-32ef-a27e-8aa4-0f728f59d8c7
Version Independent ID: a3107b7d-b096-6974-5b0b-15e448dfc9af
Content: Monitor Surface Hubs with Azure Monitor - Azure Monitor
Content Source: articles/azure-monitor/insights/surface-hubs.md
Service: azure-monitor
Sub-service: insights
GitHub Login: @bwren
Microsoft Alias: bwren

@mdlister Thanks for your comment. We will review the issue and get back to you shortly.

Assigning to content author @bwren for review

Thanks. This did get modified as solutions are in the process of being replaced. We do need to get an update out for this and a couple of other solutions though.
#please-close


Search and Replace Intermediate Code Challenge

I think this is a better solution for this code.

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] All the files I changed are in the same world language (for example: only English changes, or only Chinese changes, etc.)
[x] My changes do not use shortened URLs or affiliate links.

Closes #XXXXX

@RandellDawson I really appreciate your response explaining why it couldn't be merged. I'm guessing I might have gone to the wrong place to pull a request because I was trying to add solution code for the hint section of the curriculum since it says...

DO NOT add solutions that are similar to any existing solutions.  If you think it is similar but better, then try to merge (or replace) the existing similar solution.>

Specifically for this page: Search and Replace but it already has a lot of solutions mine seemed to be the shortest and simplest of the code but it should be ok.
Thank you again, Happy coding!


Swerve Modules Funking out

Issue Description:
Swerve Modules don't always work as expected
How we came across it:
When deploying, things don't always seem to be deploying properly, so the modules get messed up.
Redeploying fixes this issue, but we don't want to rely on that, especially at a competition.

Added a button to allow the driver to reset modules, and also doing it right at the beginning of autos


Update CRNA blog post with youtube embed.

Adds the lightning talk's YouTube video ID to the existing CRNA blog post.
cc @hramos

woot woot!

woot woot!


LDAP Support for Authentication

Describe the enhancement you'd like
It would be awesome if we could back LibrePhotos with an LDAP server for user authentication.
Describe why this will benefit the LibrePhotos
This would allow for LibrePhotos to reuse users from LDAP instead of having it's own internal users auth. I'd love SSO and OIDC support as well, but LDAP is a great place to start I think.

bumping this, would love SSO/OIDC support, or somehow allow general external authentication proxy support to pass a username through to librephotos.  That would be the most flexible I think.

Same here, LDAP would be great, or any other SSO mechanism to be used with Authelia, Authentik etc.

Bumping this again, would love to see it.
For those hosting and manging a lot of resources keeping track of them all, and the users can be hard. LDAP helps with this situation.


Issues/29

Demonstrates valid behavior present in master but failing in latest npm version (3.0.1) as describe idn issue #29

Sorry about that, had left a line in from my own local testing (making sure there wasn't some mongoose magic causing an issue. Removed the offending line and also formatted indenting of the new test case.

Bump.

Paging @wankdanker :)

Sorry everyone. Merged and published to npm<EMAIL_ADDRESS>


added basic structure

What I have done?
I have created a basic django structure for backend of the website.
Contributors adding frontend can add their respective pages in respective app folders.
Checks
 New Feature
 Pylint Flake8 passed

I went through the code, it's basically just 4 pages of html put together. There isn't any functionality and they aren't linked to each other either. For example, the contact form page was merely this:
<html>
	<head>
		<title>Contact Form</title>
	</head>

	<body>
		This is contact form
	</body>
</html>

That's not what I'm looking for. Please put together a functional website, even if the frontend is basic.
It needs to be a proper, working, functional and integrated website to be considered a valid PR.

I know the code in this PR is very basic, just boilerplate django code. But I will add more and more features as I am designing them. Please reopen this PR and consider merging it. I will keep updating the code.


Update melt/constructor to support splitting options in some cases

Adds a new transient primop Option_pack# which is inserted by melt, and removed by constructor.

:100:


Bug: New create_static_files_router automatically adds routes to schema docs

Description
I found this suprising when using the new static files feature that
1: It auto adds these to the schema
2: It adds them under a sort've "ugly" router header default
We should fix one or both of those
URL to code causing the issue
No response
MCVE
from litestar import Litestar
from litestar.static_files import create_static_files_router

app = Litestar(
    route_handlers=[
        create_static_files_router(directories=["assets"], path="/static"),
    ],
)

Steps to reproduce
1. run mcve
2. visit /schema
3. See schema for default

Screenshots

Logs
No response
Litestar Version
2.7/2.8
Platform

[X] Linux
[X] Mac
[X] Windows
[ ] Other (Please specify in the description above)

Why wouldn't it add them to the schema? It's just regular route handlers, which, by default, are added to the schema. You can use the regular include_in_schema=False if you don't want them included.
Not sure about the name; We do include a name param which defaults to static. No idea where the default comes from, that might be a bug.

We didn't include them before, but I feel like - by default - they should be disabled.
The default is a tagless section iirc.
I'm fine with whatever here, but at the very least I hope we would tag this as something more not-default-ey

The default is a tagless section iirc.

If you pass tags=["static"] (or whatever you want to call it) to the create_static_files_router() function, does that replace the "default" section? Maybe we should have a default that is not None for that?

I, for one, chose to stick with StaticFilesConfig as much as possible just because it does NOT add the routes to the schema docs. Since I'll never use them, I'd rather not see/have them there. So, for what it's worth, I'd also classify this as a bug (especially if you take into consideration that create_static_files_router is presented as the replacement for StaticFilesConfig, but it does not replace/mimic its behavior exactly).

FWIW, I think include_in_schema=False is a sane default for the static files router.

I checked again just now and realized there was one additional reason/inconsistency: after switching to create_static_files_router (using the exact same settings: directories=["static"], path="/static") I immediately noticed my favicon was 404ing all of a sudden because its URL was now /schema/static/favicon.ico instead of StaticFilesConfig's /favicon.ico . The new URL didn't make sense to me, so as I previously mentioned, I switched back to StaticFilesConfig...

I checked again just now and realized there was one additional reason/inconsistency: after switching to create_static_files_router (using the exact same settings I had for StaticFilesConfig: directories=["static"], path="/static") I immediately noticed my favicon was 404ing all of a sudden because its URL was now /schema/static/favicon.ico instead of StaticFilesConfig's /favicon.ico . The new URL didn't make sense to me, so as I previously mentioned, I switched back to StaticFilesConfig...

That would be a bug in StaticFilesConfig though. If you set directories=["static"], path="/static", all files from the static directory should be served under the /static path.

True, but I don't understand/want that "/schema" part/folder from create_static_files_router's URL

Can you provide an MCVE for this?


Undo doesn't work with Insert and remove

Description
After Insert operations or Remove columns undo doesn't work. There is no such option at all in the context menu.
Undo work after removing rows from the contextMenu (but data are displayed wrong ), but not after removing columns.

Steps to reproduce
Try to insert some rows and undo it.
Demo

https://jsfiddle.net/js_ziggle/ejabsc37/1/
Your environment

Vue wrapper version: 4.1.1
Handsontable version: 7.4.2
Browser Name and version: Firefox 78, Chrome 83
Operating System: macOS Catalina 10.15.6

Should be fixed with #185.

Fixed and released in v5.0.1


flakey test in test_app.py, test_helm_timeout

failed along with test_app_custom_values_file: https://drone-pr.rancher.io/rancher/rancher/5138/2/2

test_helm_timeout https://drone-pr.rancher.io/rancher/rancher/7638/2/2

https://github.com/rancher/rancher/issues/26212


Inject Usage dependency into FallbackDiscovery and BuildEvent

Description
Inject Usage into FallbackDiscovery and BuildEvent.
Convert fallback_discovery_test.dart to testWithoutContext
Related Issues
#47161
Checklist

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I signed the [CLA].
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change

[x] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

Oh, and an analyzer error:
The following file import a test directly. Test utilities should be in their own file.
/tmp/flutter sdk/packages/flutter_tools/test/general.shard/ios/fallback_discovery_test.dart


Fix sni.yaml fqdn to match complete name string

Noticed this while adding a test for another PR.  The fqdn name match will succeed on a prefix match.  Should completely match the server name.  Augmented a test to catch the regression.

Cherry-picked to v9.0.x branch.


Automatically generate SSL cert if one is missing

Might be an interim before lets-encrypt magics

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/30376312-automatically-generate-ssl-cert-if-one-is-missing?utm_campaign=plugin&utm_content=tracker%2F27545356&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F27545356&utm_medium=issues&utm_source=github).

Dupe of #20


Create rice.json

Rice County recently passed an open data policy. This file was recently published on the Geospatial Commons.

Wahoo! We should congratulate and thank them for releasing data.

My office and colleagues have done that. The map is growing, and it's pretty cool to watch. Love the new validation bot.


[BUG] Incorrect path when trying to upload files using memorystream on storage accounts with path routing behind application gateway

Library name and version
Azure.Storage.Blobs 12.19.1
Describe the bug
Hello everyone,
we are using MemoryStream to upload content to our storage account. This works fine when connected directly to the storage account.
Now to the issue. We are currently accessing the storage account behind an application gateway and it is located under a path routing with rules etc. So it looks like this: https://contoso.com/storage/
I have tried using REST API to PUT data into the storage account inside a container and it works flawlessly. But when using the Storage SDK, the path of the destination file is completely broken.
So we are giving the URL of the storage account, which is https://contoso.com/storage/, the container name which is pushes and the file name which is test.zip. The resulting URL should be https://contoso.com/storage/pushes/test.zip, but when looking at the app gateway logs, I get this URL https://contoso.com/storage/test.zip. Somehow I believe the issue comes from the path routing from the app gateway. This will result in an error and the file will not be uploaded.
Expected behavior
Actually uploading the file to the correct path.
Actual behavior
So we are giving the URL of the storage account, which is https://contoso.com/storage/, the container name which is pushes and the file name which is test.zip. The resulting URL should be https://contoso.com/storage/pushes/test.zip, but when looking at the app gateway logs, I get this URL https://contoso.com/storage/test.zip. Somehow I believe the issue comes from the path routing from the app gateway. This will result in an error and the file will not be uploaded.
Azure.RequestFailedException: The specified container does not exist.
RequestId:5642e817-e01e-0076-1662-6591bb000000
Time:2024-02-22T07:41:35.3387482Z
Status: 404 (The specified container does not exist.)
ErrorCode: ContainerNotFound

Content:
<?xml version="1.0" encoding="utf-8"?><Error>ContainerNotFound<Message>The specified container does not exist.
RequestId:5642e817-e01e-0076-1662-6591bb000000
Time:2024-02-22T07:41:35.3387482Z</Message></Error>

Headers:
Date: Thu, 22 Feb 2024 07:41:35 GMT
Connection: keep-alive
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 5642e817-e01e-0076-1662-6591bb000000
x-ms-client-request-id: 261a9150-18cf-49a8-afd9-dee8e14e47d2
x-ms-version: 2023-11-03
x-ms-error-code: ContainerNotFound
Content-Type: application/xml
Content-Length: 225

   at Azure.Storage.Blobs.BlockBlobRestClient.StageBlock(String blockId, Int64 contentLength, Stream body, Byte[] transactionalContentMD5, Byte[] transactionalContentCrc64, Nullable`1 timeout, String leaseId, String encryptionKey, String encryptionKeySha256, Nullable`1 encryptionAlgorithm, String encryptionScope, CancellationToken cancellationToken)
   at Azure.Storage.Blobs.Specialized.BlockBlobClient.StageBlockInternal(String base64BlockId, Stream content, UploadTransferValidationOptions transferValidationOverride, BlobRequestConditions conditions, IProgress`1 progressHandler, Boolean async, CancellationToken cancellationToken)
   at Azure.Storage.Blobs.Specialized.BlockBlobClient.StageBlock(String base64BlockId, Stream content, BlockBlobStageBlockOptions options, CancellationToken cancellationToken)
   at BlobUploadTest.Form1.UploadFileBlocks(BlockBlobClient blobClient, BlockBlobTransferStatus transferStatus, String fileName) in C:\Users\M01991\Infra\BlobUploadTest\BlobUploadTest\Form1.cs:line 115
   at BlobUploadTest.Form1.buttonUploadFile_Click(Object sender, EventArgs e) in C:\Users\M01991\Infra\BlobUploadTest\BlobUploadTest\Form1.cs:line 33

Reproduction Steps

Create Storage Account
Create App Gateway
Create DNS Configuration (contoso.com)
Add Storage Account under Path Routing (contoso.com/storage)
Run Upload File Code with Azure.Storage.Blobs SDK

We do use Terraform for our Infrastructure so many steps have been omited.
Environment
.net 6

Thank you for your feedback.  Tagging and routing to the team member best able to assist.
//cc: @xgithubtriage

Hello. Any updates on this issue?
Thx

Could we get a full code snippet of how you're interacting with the Storage SDK?

I uploaded the whole test application here: https://github.com/erorubrz/BlobUploadTest
Thanks

Looks like because you're using a custom domain to access the blob container, the URL we're expecting should be in the custom URL format.
See
https://learn.microsoft.com/en-us/azure/storage/blobs/storage-custom-domain-name?tabs=azure-portal#step-4-test-your-custom-domain
Looks like it should be in the format of "http://<subdomain.customdomain>//" where the container name should come right after the domain name.


scroll to top bug

I have the animated and fadeInRight to a wrapper div that basically holds the whole page. Clicking on a slickgrid row of a grid I have on the page for some reason moves the whole page to the top, where the wrapper is. I do have some bootstrap 3 modal boxes too. Removing the fadeInRight but keeping the animated class solves the problem - no scroll to the top is triggered. I do realize this library deals with only CSS, but I think it's somehow interacting with other libraries. Is there any documented stuff that we are not supposed to do to avoid this ? Or are there any ways that one can debug this behavior that you are aware of ?

I mean removing the .fadeInRight class fixes the issue, you can try it on the codepen, so it seems like it is somehow related. Maybe it's a general animation/browser issue, so I was just wondering if there are any known interactions between jquery/jquery-ui/the other libraries I've added to the codepen and animate.css. As far as slickgrid, we are using a highly customized version of it, maybe I'll try the slickgrid fork to see if the problem is present there. Thanks for looking at it @eltonmesquita, feel free to close it if it's unrelated.

Sorry, but I can't help much here as I'd have to debug the whole slickgrid library to find the issue and that's just not feasible. In theory a css animation would never mess with interactions or even with the page scroll but I've seen enough bizarre bugs happening in a browser to say that's impossible.
Still, I think that using an outdated is hardly a good idea. My advise stands: it's better to look for an alternative library, or even create your own than using such and outdated library as slickgrid.

@sylido this is strange, I'll look into this. Despite that it's not recommended to do animation on body in my opinion.
What I see right now is that it's working properly when you remove animation-fill-mode: both; from .animated selector. (or if you set it to backwards)

I have a similar use case in which your proposal works.
Problem: A container (aka parent element) has the animation fadeIn and a inner button element triggers a dropdown menu which is not overflow its parent as it used to do.
As far as I know when we define animation-fill-mode: forwards|both;, we are telling the browser that we want our animated element to hold on to its final set of styles, as defined in the last keyframe. In my case I use fadeIn which plays with the opacity property.
Opacity is irrelevant with overflow/z-index stuff, so :/
Here is a similar issue which maybe will be somehow helpful for you, it didn't work for me.
https://stackoverflow.com/questions/26099421/css-animation-fill-mode-and-z-index-issue/26099518?noredirect=1#comment40900317_26099518

thanks @max-ci your suggestion does fix the issue - I wonder what exactly the "forwards" triggers that "backwards" only doesn't - seems like a weird browser animation interaction, there might be a bug there.
@eltonmesquita you can easily try doing what I suggested to the codepen example you wanted me to provide to be completely convinced that what me and @max-ci are observing in this case is 100% happening. I wouldn't even suggest you debug slickgrid, I only asked about the plugins which slickgrid uses - basic building blocks of the web like jquery and jquery-ui. Either way thanks for looking at it, I might just leave this issue open since others like @gt0p seem to be having similar unexplained issues, albeit a bit different.

Sorry I didn't make myself clear, but after you provided the example I saw with my own eyes that the bug exist.  The problem is that this is too bloated to have a proper answer to what's the problem there.
There's no known problem with any library like jQuery, jQuery UI or any other js library as we're just adding some animations to some elements.
As this isn't an issue with animate.css itself and there's a fix already for this, I think it's fair enough to close this issue, right?
Thanks for reporting the issue!


Could Excel 'Tables' be 'first class  citizens' in import and export ?

Hi,
after discovering Power Query a few years ago, I use Excel tables whenever I can instead of classical ranges. They provide many advantages and make Excel dataset closer to databases. Tables are named. When importing data from Excel using Power Query, tables are fully recognized as like sheets. A few library recognize them, like Apache POI or ExcelJS for the ones I know.
Would it be possible for grist to recognize tables and load them directly into SQLite tables ? and on the other way round, could Grist tables be exported as tables ?
Thanks for this project!

We do use ExcelJS for exports already, so that direction may be easier. I personally have little experience with Excel tables. Is there any downside to always exporting Grist data as "tables"? Or should it be an option?
For imports, we use openpyxl (on Python side). Don't know if that supports tables, or how you'd want to present the options. I'd guess that data in a "table" would also be available as part of the sheet that contains this table, so would it create confusion to the user what's being imported where?

Hi,
thanks a lot for taking my question into consideration.  ExcelJS handles Excel tables correctly  as far as I know (I often run a little script from NodeJS to extract Excel tables into json).
I don't see any downside from my point of view. I am not an expert in any case. I have just noticed that there is a payload in XML which makes the size of the resulting Excel a little bigger. That might vary with the data length of course. Power Query only creates tables, but reads cells, ranges, tables or whole sheets. People who don't know tables might be suprised by the layout, or some constraints (not being able to merge cells for instance), but that's really a minor thing and tables have been here for almost 15 years... All together, I think it should really be the default option.
I don't use Python. I tried nevertheless to load a workbook with openpyxl and it works well (I followed this example on SOF).
So my conclusion : I do hope you can implement tables in Grist 😉 !


I think that the instruction about installing delta-spark via pip should be moved above.

I have tried the PySpark Shell.
I executed pip install pyspark==3.4.1. However, I missed the instruction of pip install delta-spark==2.4.0 described later.
Without delta-spark, I encountered the following error.
Using Python version 3.10.12 (main, Jun 11 2023 05:26:28)
Spark context Web UI available at http://resourcemanager:4040
Spark context available as 'sc' (master = local[*], app id = local-1693886076339).
SparkSession available as 'spark'.
>>> import pyspark
>>> from delta import *
>>>
>>> builder = pyspark.sql.SparkSession.builder.appName("MyApp") \
...     .config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension") \
...     .config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog")
>>>
>>> spark = configure_spark_with_delta_pip(builder).getOrCreate()
Traceback (most recent call last):
  File "/home/hadoop/.local/lib/python3.10/site-packages/importlib_metadata/__init__.py", line 408, in from_name
    return next(iter(cls.discover(name=name)))
StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/spark-24507fde-15ea-426a-819f-1b689c513c95/userFiles-3a2a9d5c-52b5-4b5a-b8a8-a8c31fdeb4d4/io.delta_delta-core_2.12-2.4.0.jar/delta/pip_utils.py", line 69, in configure_spark_with_delta_pip
  File "/home/hadoop/.local/lib/python3.10/site-packages/importlib_metadata/__init__.py", line 909, in version
    return distribution(distribution_name).version
  File "/home/hadoop/.local/lib/python3.10/site-packages/importlib_metadata/__init__.py", line 882, in distribution
    return Distribution.from_name(distribution_name)
  File "/home/hadoop/.local/lib/python3.10/site-packages/importlib_metadata/__init__.py", line 410, in from_name
    raise PackageNotFoundError(name)
importlib_metadata.PackageNotFoundError: No package metadata was found for delta_spark

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/tmp/spark-24507fde-15ea-426a-819f-1b689c513c95/userFiles-3a2a9d5c-52b5-4b5a-b8a8-a8c31fdeb4d4/io.delta_delta-core_2.12-2.4.0.jar/delta/pip_utils.py", line 75, in configure_spark_with_delta_pip
Exception:
This function can be used only when Delta Lake has been locally installed with pip.
See the online documentation for the correct usage of this function.

This is why I think that installing delta-spark instruction should be described nearby pyspark.

100% this, I just did the same thing. Upvote!

I'd even take it further to provide a single copy paste example, or two, one for bash, the other for python
pip install pyspark==3.4.1 delta-spark==2.4.0
pyspark --packages io.delta:delta-core_2.12:2.4.0 --conf "spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension" --conf "spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog" << EOF

import pyspark
from delta import *

builder = pyspark.sql.SparkSession.builder.appName("MyApp") \
    .config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension") \
    .config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog")

spark = configure_spark_with_delta_pip(builder).getOrCreate()

spark.sql("CREATE OR REPLACE TABLE mytable_delta(id BIGINT) USING DELTA")
spark.range(5).write.format('delta').mode('append').saveAsTable("mytable_delta")
spark.read.table("mytable_delta").show()
spark.sql("DESCRIBE TABLE mytable_delta").show()

EOF


[Code review: Contract Bugs]: Users cannot claim withdrawal in some cases when DepositManager processRequest from lowIndex to highIndex

Describe the bug
Let say there are 2 users A and B. A withdrawal can not be claimed in scenario below

A deposit 1 WTON
A requestWithdrawal 1 WTON
B deposit 1000 WTON
B requestWithdrawal 1000WTON
B claimWithdrawal: failed

Reason: https://github.com/tokamak-network/gem-nft-contract/blob/codeReview2/src/L1/L1WrappedStakedTON.sol#L469
DepositManager processes withdrawal without any knowledge about the order of withdrawals. In this scenario, there are 2 withdrawal request in order A's request ->B's request.
DepositManager will try to process the request of A first.  DepositManager send 1WTON to the L1WrappedStakedTON however it is not enough for B to claim => tx reverts
Impact
claimWithdrawal can be disable for some users temporary
Exploit Scenario
No response
Recommendation
No response

Thanks @nguyenzung I think you are right. The less liquidity, the more chance user would encounter this situation. What do you suggest to mitigate this risk ?

// Process request in TON or WTON
  if (_token) {
      // if there is enough funds in the contract, it means that someone else has already processRequest
      // this avoid the scenario where processRequest fails because it was already called preivously and no request can be processed anymore in the depositManager
      if(IERC20(ton).balanceOf(address(this)) >= totalClaimableAmount) {
          totalClaimableAmount = totalClaimableAmount / 10 ** 9;
          IERC20(ton).safeTransfer(msg.sender, totalClaimableAmount);
      } else{
          if (!IDepositManager(depositManager).processRequest(layer2Address, true)) {
              revert ProcessRequestFailed();
          }
          totalClaimableAmount = totalClaimableAmount / 10 ** 9;
          IERC20(ton).safeTransfer(msg.sender, totalClaimableAmount);
      }
  } else {
      if(IERC20(wton).balanceOf(address(this)) >= totalClaimableAmount) {
          IERC20(ton).safeTransfer(msg.sender, totalClaimableAmount);
      } else{
          if (!IDepositManager(depositManager).processRequest(layer2Address, false)) {
              revert ProcessRequestFailed();
          }
          IERC20(wton).safeTransfer(msg.sender, totalClaimableAmount);
      }
  }

can you confirm this would fix the issue ?

@nguyenzung There is no orders of processWithdrawal in DepositManager. Once we call processRequest() we receive he accumulated amount of unclaimed requests. for example:

user A deposits 100 WTON
user A requestWithdrawal for 50 WTON
user A requestWithdrawal for 50 WTON again
user A calls processRequest()
user A receives 100 WTON

Likewise in claimWithdrawal, if a user calls the function, it will call processRequest()and trigger a transfer of all requests made by users. The contract will hold the total claimable amount and that's why we implemented the condition indicating that if the contracts holds enough funds to cover the user's request, we don't call processRequest as it will automatically revert.
Here is the workflow from our contract point of view:

user A deposits 100 WTON for 100 WSTON
user B deposits 5O WTON for 50 WSTON
user A request withdrawal for 100 WSTON
user B request withdrawal for 50 WSTON
After 1 month:
user A calls claimWithdrawal => triggers processRequestand will send 150 WTON to L1WrappedStakedTON
userA receives 100 WTON
user B calls claimWithdrawal => since the contract still has 50 WTON it will directly transfer the amount to user B
user B receives 50 WTON

@nguyenzung I see what you mean. I modified the function so it transfers the funds in TON only so there is no discrepancy between what was sent from the depositManager and what the user gets. Here is the code update.
I've tested the function with the scenario. you mentioned and it seems to work properly. Can you confirm ?

As I checked, DepositManager prioritize ealier withdrawal

Query index: https://github.com/tokamak-network/gem-nft-contract/blob/codeReview2/src/L1/Mock/DepositManager.sol#L267
Increase index: https://github.com/tokamak-network/gem-nft-contract/blob/codeReview2/src/L1/Mock/DepositManager.sol#L272

It makes a recored when receiving a requestWithdrawal: https://github.com/tokamak-network/gem-nft-contract/blob/codeReview2/src/L1/Mock/DepositManager.sol#L242
So in the example case, when B claimWithdrawal there are 100WTON sent to L1WrappedStakedTON

Regarding the depositManager, the last request is the sum of all unclaimed amounts. Therefore, by calling _processRequest, the user gets the entire balance of unclaimed amounts. That is why if a user calls claimWithdrawal in L1WrappedStakedTON, the depositManager is going to send all claimable funds related to all the requests made by the users => The if statement here will avoid the function reverting if someone has already called claimWithdrawal

@nguyenzung you are right let me fix that

@nguyenzung I fixed it like that :
totalClaimableAmount = totalClaimableAmount / 10 ** 9;
/// if there is enough funds in the contract, it means that someone else has already processRequest
/// this avoid the scenario where processRequest fails because it was already called previously
/// and no request can be processed anymore in the depositManager
if(IERC20(ton).balanceOf(address(this)) >= totalClaimableAmount) {
    IERC20(ton).safeTransfer(msg.sender, totalClaimableAmount);
} else{
    uint256 numPendingRequests = IDepositManager(depositManager).numPendingRequests(layer2Address, address(this));
    if(numPendingRequests > 0) {
        if (!IDepositManager(depositManager).processRequests(layer2Address, numPendingRequests, true)) {
            revert ProcessRequestFailed();
        }
    }
    IERC20(ton).safeTransfer(msg.sender, totalClaimableAmount);
}

I have updated claimWithdrawalTotal and claimWithdrawalIndex accordingly.
The tests passes now. Here is the commit link
Can you check and confirm ?

This solution can lead to the case that running out of gas  if numPendingRequests is big.

Indeed. Then what do you suggest ? I was thinking about implementing a minimum deposit/withdrawal amount

ok you are right it runs out of gas :
/**
* @notice checking if claimWithdrawal does not run out of gas if there is a large amount of requests
*/
function testClaimWothdrawalCannotRunOutOfGas() public {
    // user1 deposit
    vm.startPrank(user1);
    uint256 depositAmount = 4000 * 10**27;
    WTON(wton).approve(address(l1wrappedstakedtonProxy), depositAmount);
    L1WrappedStakedTON(address(l1wrappedstakedtonProxy)).depositWTONAndGetWSTON(depositAmount, false);

    // move to the next 200000 block
    vm.roll(block.number + 200000);

    // requesting for 1 WEI
    for (uint i = 0; i < 4000; ++i) {
        L1WrappedStakedTON(address(l1wrappedstakedtonProxy)).requestWithdrawal(1e27);
    }

    // rolling up to 1 block before due date
    vm.roll(block.number + delay);
    // claim total to check if numPendingRequest does not make the function running out of gas
    L1WrappedStakedTON(address(l1wrappedstakedtonProxy)).claimWithdrawalTotal();

}

How can we avoid this ?

Making a minimum deposit amount/withdraw could resolve the issue

Maybe I should set a maximum withdrawal requests so that user must claim first to request again

@Zena-park can you give your thoughts on that?

If you don't find any solution, we will assume the only way is to restrict users to only withdraw their entire balance when they call requestWithdrawal

@mehdi-defiesta If you want to modify the TON Staking contract, you can upgrade the contract by submitting a TON Staking contract modification proposal (a transaction that changes the logic of the contract) to the Tokamak DAO, DAO members vote on a proposal, and executing the transaction.

It would be a good idea to create an additional function that only calls the IDepositManager(depositManager).processRequests(layer2Address, n, true) function so that the team can manage it before a problem occurs.
Suppose people know that the processRequests(layer2Address, n, true) function of the withdrawal processing process will process all the withdrawals of people who requested withdrawals before me, they can intentionally process the withdrawals late. If someone processes the processRequests that includes my withdrawal request, I can save on gas fees.
In this case, if no one processes the withdrawal, the number of withdrawals will continue to accumulate, and an extreme gas fee problem can occur.
The team should know the maximum number of withdrawals or the appropriate number of withdrawals to prevent this problem from occurring. If a withdrawal processing wait occurs that increases this number, you can prevent service failure by reducing the number of withdrawal processing requests n by simply calling the IDepositManager(depositManager).processRequests(layer2Address, n, true) function.

@nguyenzung I fixed it like that :
totalClaimableAmount = totalClaimableAmount / 10 ** 9;
/// if there is enough funds in the contract, it means that someone else has already processRequest
/// this avoid the scenario where processRequest fails because it was already called previously
/// and no request can be processed anymore in the depositManager
if(IERC20(ton).balanceOf(address(this)) >= totalClaimableAmount) {
    IERC20(ton).safeTransfer(msg.sender, totalClaimableAmount);
} else{
    uint256 numPendingRequests = IDepositManager(depositManager).numPendingRequests(layer2Address, address(this));
    if(numPendingRequests > 0) {
        if (!IDepositManager(depositManager).processRequests(layer2Address, numPendingRequests, true)) {
            revert ProcessRequestFailed();
        }
    }
    IERC20(ton).safeTransfer(msg.sender, totalClaimableAmount);
}

I have updated claimWithdrawalTotal and claimWithdrawalIndex accordingly. The tests passes now. Here is the commit link Can you check and confirm ?

The numPendingRequests function includes those that have not passed the deplay block,
so only pending requests whose withdrawableBlockNumber is smaller than the current block should be requested.

struct WithdrawalReqeust {
uint128 withdrawableBlockNumber;
uint128 amount;
bool processed;
}

I've made several updates : commit

users are getting TON only after processing the withdrawal (WTON withdrawal disabled).
created a numWithdrawableRequestsfunction to get the number of pending requests that are withdrawable

/**
* @notice calculating the number of withdrawal requests that can be processed
* @dev we fetch the number of requests made by the contract, as well as the number of the last index
* @dev we iterrate over the number of pending requests and check if it is withdrawable
* @return count the total number of withdrawable requests
*/
function numWithdrawableRequests() internal view returns (uint256) {
  uint256 numRequests = IDepositManager(depositManager).numRequests(layer2Address, address(this));
  uint256 index = IDepositManager(depositManager).withdrawalRequestIndex(layer2Address, address(this));
  uint256 count;

  if (numRequests == 0) return 0;
  uint256 numberPendingRequests = numRequests - index;

  for(uint256 i = 0; i < numberPendingRequests; ++i) {
      (uint128 withdrawableBlockNumber,,bool processed) = IDepositManager(depositManager).withdrawalRequest(layer2Address, address(this), i);
      if(withdrawableBlockNumber <= block.number && !processed) {
          count++;
      }
  }
  return count;
}

called numWithdrawableRequestsinstead of numPendingRequests in processWithdrawal functions to get the write number of requests to process.

if(IERC20(ton).balanceOf(address(this)) >= totalClaimableAmount) {
    IERC20(ton).safeTransfer(msg.sender, totalClaimableAmount);
} else{
    uint256 _numWithdrawableRequests = numWithdrawableRequests();
    if(_numWithdrawableRequests > 0) {
        if (!IDepositManager(depositManager).processRequests(layer2Address, _numWithdrawableRequests, true)) {
            revert ProcessRequestFailed();
        }
    }
    IERC20(ton).safeTransfer(msg.sender, totalClaimableAmount);
}

created a processWithdrawalRequestfunction to withdraw a specific request in the case of having a large number of requests that are making the processRequests function to run out of gas => kind of mitigating the risk of DoS

/**
 * @notice process one or multiple requests. This function can be called by anyone
 */
function processWithdrawalRequest(uint256 numRequests) external returns(bool) {
    if (!IDepositManager(depositManager).processRequests(layer2Address, numRequests, true)) {
            revert ProcessRequestFailed();
    }
    return true;
}

I believe that all the risks raised in this issue thread are resolved. @nguyenzung @Zena-park can you check and confirm ?
Thanks

It is very difficult to check the code visually to make sure there are no problems.
Please make a test code of the function you created and attach the results.
When I glanced at the above 'function numWithdrawableRequests()',
 IDepositManager(depositManager).withdrawalRequest(layer2Address, address(this), i);
i value always starts from 0.
but i is an index(The last executed index), so it seems wrong.

@Zena-park Indeed, I forgot to make start from the index. This version works
for(uint256 i = 0; i < numberPendingRequests; ++i) {
    (uint128 withdrawableBlockNumber,,bool processed) = IDepositManager(depositManager).withdrawalRequest(layer2Address, address(this), index  + i);
    if(withdrawableBlockNumber <= block.number && !processed) {
        count++;
    }
}

Regarding the testing, Here is a complete scenario of 2 users requesting and claiming at a different time. The test successfully returns the correct value. As for checking if the funds are correctly transferred, There is many tests for it such as testClaimWithdrawalByTwoDifferentUsers, testClaimWithdrawalIndexShouldRevertIfDelayNotElapsed, testClaimWithdrawalIndexShouldRevertIfAlreadyProcessed, testClaimWithdrawalIndexShouldRevertIfWrongRequestIndex, testClaimWithdrawalIndex, testClaimWithdrawalTotalShouldRevertIfNoClaimableAmount, testClaimWithdrawalTotal
Finally I forgot to mention but I've implented two  new variables:
mapping(address => uint8) internal numWithdrawalRequestsByUser;
uint8 internal maxNumWithdrawal;

Each user cannot request above a maximum limit at a time (for example 5 requests). This threshold is define at the initialization and can be modified by the owner.
Let me know if you need more info

@mehdi-defiesta Thank you for the detailed explanation. I understand. Thank you.

In the function _claimWithdrawalIndex(uint256 _index)
https://github.com/tokamak-network/gem-nft-contract/blob/1a477ac9fe0f93dc44d50f703b63843be09ae045/src/L1/L1WrappedStakedTON.sol#L481
When withdrawalRequests[A].length ==3, there are indexes [0,1,2] and  withdrawalRequests[msg.sender][index].processed == false,
If _claimWithdrawalIndex(1) is called, 2 withdrawalRequests will be processed.
Therefore, numWithdrawalRequestsByUser[msg.sender] --;   may be incorrect.

@nguyenzung @Zena-park thank you. I close the issue


Upload .rev file at the end

I use dploy heavily. Is there a way to upload .rev file at the end (after all other changes have been uploaded). So if the connection breaks in between, I can start uploading from beginning instead of going to ftp and manually uploading rest of the files? Since dploy will just check .rev and say no changes need to be uploaded.
Thanks!

Hey @asadm, which version are you using?
On version 1.2.0 this should be happening!

My bad. I think this happens only when multiple upload slots are open. In that case, it is understandable.


Unit VnV Plan Peer Review 3 (section 4 and 5)

Hello @karolserkis ,
This issue is related to sections 4 and 5 of your document.

In section 4.4 it sounds unprofessional to say "prof smith".
I think it would be a good idea to provide some more detail in section 4.2. Perhaps you could explain the structure of the automated tests (ie cycle through an array of data and check an assert statement)
I do not understand test-Inparams. You say that you are testing values yet the input table is a list of symbols not values. Also the tables should go into the appendix. There is a bit of a contradiction: in test case derivation you mention testing for negative numbers and than you proceed to talk about specific integers that you are verifying, where are they?
Also the beginning of the other tests 5.1.2 and onwards start with the same blurb as 5.1.1 … They also reference a table of symbols for input

@whitere123 @smiths
Thanks for the feedback!


Add APIML login and logout functions for base profiles

Describe the solution you'd like

Add a description of a new feature to the ZE section of Zowe Docs
Related doc pages
https://docs.zowe.org/stable/user-guide/ze-profiles.html#working-with-zowe-explorer-profiles

@IgorCATech -- what description are you suggesting we add?


A question about FPGA-Verilog

Hello! I would like to ask about the verilog that I want to generate a CLB-scale FPGA with a 16*16 array. When I ran the configuration_chain task, I changed the "openfpga_vpr_device_layout=" to "openfpga_vpr_device_layout= --device 12x12" in the task.conf file, and Add the 12x12 fixed_layout part to the k4_N4_tileable_40nm.xml file, and finally generate the corresponding verilog, but the same operation performed 16x16 and the following error occurred (log is as follows). This problem has troubled me for a long time. I hope some seniors can give pointers. I want to successfully run the corresponding full_testbench to generate the corresponding verilog, what parts do I need to change in the basic XML schema file, thank you very much
log:
* * * * * * * * * * * * * * * * * * * *
RunDirectory : /home/kly/OpenFPGA/openfpga_flow/tasks/basic_tests/full_testbench/configuration_chain/run062
python3 /home/kly/OpenFPGA/openfpga_flow/scripts/run_fpga_flow.py /home/kly/OpenFPGA/openfpga_flow/tasks/basic_tests/full_testbench/configuration_chain/k4_N4_tileable_40nm.xml /home/kly/OpenFPGA/openfpga_flow/benchmarks/micro_benchmark/and2/and2.v --top_module and2 --run_dir /home/kly/OpenFPGA/openfpga_flow/tasks/basic_tests/full_testbench/configuration_chain/run062/k4_N4_tileable_40nm/and2/MIN_ROUTE_CHAN_WIDTH --fpga_flow yosys_vpr --openfpga_shell_template /home/kly/OpenFPGA/openfpga_flow/openfpga_shell_scripts/write_full_testbench_example_script.openfpga --openfpga_arch_file /home/kly/OpenFPGA/openfpga_flow/openfpga_arch/k4_N4_40nm_cc_openfpga.xml --openfpga_sim_setting_file /home/kly/OpenFPGA/openfpga_flow/openfpga_simulation_settings/auto_sim_openfpga.xml --openfpga_vpr_device_layout --device 14x14 --openfpga_fast_configuration  --power --power_tech /home/kly/OpenFPGA/openfpga_flow/tech/PTM_45nm/45nm.xml --vpr_fpga_verilog --vpr_fpga_verilog_dir /home/kly/OpenFPGA/openfpga_flow/tasks/basic_tests/full_testbench/configuration_chain/run062/k4_N4_tileable_40nm/and2/MIN_ROUTE_CHAN_WIDTH --vpr_fpga_x2p_rename_illegal_port --end_flow_with_test --TOP and2 --CHAN_WIDTH 300
* * * * * * * * * * * * * * * * * * * *
INFO - Validating commnad line arguments
INFO - Run directory : /home/kly/OpenFPGA/openfpga_flow/tasks/basic_tests/full_testbench/configuration_chain/run062/k4_N4_tileable_40nm/and2/MIN_ROUTE_CHAN_WIDTH
INFO - Running "yosys_vpr" Flow
INFO - Extracted lut_size size from arch XML = 4
INFO - Running Yosys with lut_size = 4
INFO - Launching Run yosys
INFO - Run yosys is written in file yosys_output.log
INFO - ACE2 output is written in file and2_ace2_output.txt
INFO - blif_3args output is written in file and2_blif_3args_output.txt
INFO - Launching Yosys
INFO - Yosys is written in file yosys_rewrite.log
INFO - Runing OpenFPGA Shell Engine
INFO - Launching OpenFPGA Shell Run
INFO - OpenFPGAShell Revision: 1603c9b4-dirty Compiled: 2021-09-22T14:59:58
INFO - OpenFPGA Shell Run is written in file openfpgashell.log
INFO - vpr result extracted in file vpr_stat.result
INFO - Launching iverilog_verification
ERROR - iverilog_verification run failed with returncode 137
ERROR - command iverilog -o compiled_and2 ./SRC/and2_include_netlists.v -s and2_autocheck_top_tb
ERROR - Current working directory : /home/kly/OpenFPGA/openfpga_flow/tasks/basic_tests/full_testbench/configuration_chain/run062/k4_N4_tileable_40nm/and2/MIN_ROUTE_CHAN_WIDTH
ERROR - Failed to run iverilog_verification task
ERROR - Exiting . . . . . .

For 16x16 FPGA, iVerilog may not be able to simulate (beyond its capability). We suggest to use commercial simulators

Modelsim
VCS
NCSim


Elasticsearch instance type names have changed

AWS Comment here: https://docs.aws.amazon.com/opensearch-service/latest/developerguide/rename.html#rename-instances

Instance types in Amazon OpenSearch Service are now in the format <type>.<size>.search—for example, m6g.large.search rather than m6g.large.elasticsearch. You don't need to take any action. Existing domains will start automatically referring to the new instance types within the API and in the Billing and Cost Management console.

The list of new instance type names are here: https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html
While the old names point to the new, would it be more "correct" to use the new names? Maybe in the first instance we can just add the new names to the list in the constants?

@NeilJed can you comment/approve PR #2199? I did shorten the names by using a prefix of "SEARCH_" instead of "OPENSEARCH_".
I pulled the instance names from the aws cli so hopefully those are all correct.

@NeilJed thank you for reviewing. I did make the sort order a little nicer and pushed it out in Release 4.5.1


test: add tests for new DEX

Description
The purpose of this PR is to increase test coverage.
Tasks

[x] x/amm/keeper
[x] x/amm/types
[x] x/exchange/keeper
[x] x/exchange/types
[x] x/amm invariant checks
[x] x/exchange invariant checks

this failed lint part If you put sanity check because there is no possibility of this part occurring, why don't you panic it so that you can check the occurrence with simulation, fuzzing, etc. before going to production?

this failed lint part If you put sanity check because there is no possibility of this part occurring, why don't you panic it so that you can check the occurrence with simulation, fuzzing, etc. before going to production?

This is being discussed separately. Another PR will resolve this issue later.


Mintfreeos action failed with assertion failure: the correct mint fee has not been paid.

21/6/22 freeosgov2 v0.9.22, Iteration = 459939
Mint POINTs to FREEOS using mint fee payment only (no freepoints). freeosgov2 parameter dummyfee=1
User: verovera, mint amount=1.0000 POINT, mintfeefree=None
mintfreeos action failed-> Error assertion failure with message: the correct mint fee has not been paid.
Please note: Got the same error with another test scenario when trying to mint freeos using freepoints/mint fee combo (vivvestin).

29/6/22 Retest. freeosgov2 v0.9.26. Fixed.


Someone help me. I'm having this problem when compiling znc.

@DarthGandalf This is my system:

Why are you trying to build it on Android?

This?
https://play.google.com/store/apps/details?id=com.termux&hl=en_US&gl=US
https://wiki.termux.com/wiki/Main_Page

@DarthGandalf I don't have pc so I do everything on android.

@RealKindOne Yes

Why didn't you provide all the details in the initial question? First, please read http://www.catb.org/~esr/faqs/smart-questions.html
Quick google search points at https://stackoverflow.com/questions/4610086/pthread-cancel-alternatives-in-android-ndk and https://github.com/tux-mind/libbthread
You can try those


[Card] Issue

There is no card component on radix-ui themes. The card <Card> causes the react app "Cannot find module 'card' on @radix-ui/themes"

@wildrap I'm not associated with this repo, but just FYI it works fine for me, so it's probably something with your setup (module system, bundler or just need to reinstall/restart without config changes).. I did experience some glitches like this though when trying to import the css file, but after a few restarts it got resolved magically. I'm using the most standard vite+typescrypt setup.

@wildrap I can confirm that the card is exported as we are using it on radix-ui.com all over the place. Are you able to import any other component?
Here's what it should look like:
import { Card } from '@radix-ui/themes';

Yes I am able to import other component except for the card.

Can you put together a minimal example that reproduces this? What is your setup?

I'll close this for now as we can’t reproduce this issue and no reproduction is provided


Same inputs yield different results when the tool is run twice

I'm running Vivado 2022.1 and Python 3.9, and invoking the tool with this command:
python3.9 find_fault_bits.py betrusted_soc.bit betrusted_soc_route.dcp -r -d
Running off of commit 415fab146e3f50931b5c3ec6e38277ad1fb76908
If I run this command twice in a row, I get different outputs for e.g. betrusted_soc_sample_bits.json.
One run, for example, yields this:
[
    [
        [
            "00020aa0",
            "027",
            "31"
        ]
    ],
    [
        [
            "00020691",
            "051",
            "22"
        ]
    ],
    [
        [
            "00020694",
            "051",
            "22"
        ]
    ],
    [
        [
            "00020694",
            "052",
            "00"
        ]
    ],
    [
        [
            "0000002a",
            "000",
            "00"
        ]
    ],
    [
        [
            "00400120",
            "002",
            "15"
        ],
        [
            "00400215",
            "004",
            "07"
        ]
    ]
]

and the next will give this
[
    [
        [
            "00020ca2",
            "086",
            "31"
        ]
    ],
    [
        [
            "00020e15",
            "080",
            "09"
        ]
    ],
    [
        [
            "00000904",
            "093",
            "07"
        ]
    ],
    [
        [
            "0000090e",
            "094",
            "11"
        ]
    ],
    [
        [
            "0000002a",
            "000",
            "00"
        ]
    ],
    [
        [
            "00401320",
            "004",
            "15"
        ],
        [
            "00001515",
            "083",
            "07"
        ]
    ]
]

Here's what the diff of the two is:
4,5c4,5
<             "00020aa0",
<             "027",
---
>             "00020ca2",
>             "086",
11,13c11,13
<             "00020691",
<             "051",
<             "22"
---
>             "00020e15",
>             "080",
>             "09"
18,20c18,20
<             "00020694",
<             "051",
<             "22"
---
>             "00000904",
>             "093",
>             "07"
25,27c25,27
<             "00020694",
<             "052",
<             "00"
---
>             "0000090e",
>             "094",
>             "11"
39,40c39,40
<             "00400120",
<             "002",
---
>             "00401320",
>             "004",
44,45c44,45
<             "00400215",
<             "004",
---
>             "00001515",
>             "083",

Is this the expected outcome? My assumption is the tool would list all the problem bits and it would be deterministic, but perhaps I am not understanding the nature of the tool correctly.
To reproduce, you can copy these files (temporarily staged in a weird directory, will be removed eventually):
https://ci.betrusted.io/trng/betrusted_soc_route.dcp
https://ci.betrusted.io/trng/betrusted_soc.bit

Saw response in other thread. Understood now on what is supposed to happen, this is expected behavior.