Shared marketplace for all users

The current application only displays sale items for one account at a time. This allows users to purchase items from other users, but it is impossible to find items that are for sale without knowing an existing user's address.
The application should have a tab that shows a list of all items that are listed for sale.

Implemented by #27


psych tries to parse leading '%' after '---' as directives

According to the YAML 1.2 grammar:
[209] l-directive-document 	::= 	l-directive+  l-explicit-document ;
[82] 	l-directive 	::= 	“%” ( ns-yaml-directive | ns-tag-directive | ns-reserved-directive ) s-l-comments ;
[208] l-explicit-document 	::= 	c-directives-end ( l-bare-document  | ( e-node s-l-comments ) )  ;
[203] 	c-directives-end 	::= 	“-” “-” “-”
Using Ruby 1.9.3, Yaml 1.3.4 (also happens with Ruby 2.1.5, YAML2.0.5):
irb(main):009:0> YAML.load("---\nx")
=> "x"  # Correct
irb(main):010:0> YAML.load("---\n%x")
Psych::SyntaxError: (): found uknown directive name while scanning a directive at line 2 column 1
from /usr/lib/ruby/1.9.1/psych.rb:203:in parse' 	from /usr/lib/ruby/1.9.1/psych.rb:203:in parse_stream'
from /usr/lib/ruby/1.9.1/psych.rb:151:in parse' 	from /usr/lib/ruby/1.9.1/psych.rb:127:in load'
from (irb):10
from /usr/bin/irb:12:in `'
I see the 'uknown' typo has been fixed.

Psych uses libyaml as it's parser, and libyaml only supports YAML 1.1 grammar right now.  Once libyaml is updated to support 1.2, then Psych will support 1.2.  Thanks!


set the fields in configuration classes private

in configuration case classes, get*** functions are defined to access to the fields, so for consistency, make the fields private

hi Grant,
Could you rebase your code before submit PR?
Thanks,
William


Backup-utils: Show progress when backing up and restoring a GitHub Enterprise Server appliance

Summary
When a GitHub Enterprise Server administrator backs up their appliance, or restores their appliance from a backup, the backup/restore tooling does not currently show how the operation is progressing. We are updating backup-utils so that administrators can see how these operations are progressing.
Intended Outcome
GitHub Enterprise Server administrators understand how far through a backup or restore operation they are.
How will it work?
We will add details to our backup and restore tools that will allow us to track how a backup or restore operation is progress. We will then use these details to add a progress bar to the command line interfaces for the backup and restore tools.

🚢 This has shipped with GHES 3.9<EMAIL_ADDRESS>Closing as complete.


updateInstaller extraction creates subfolders

Hi,
I installed 7.0 with latest CFix 2110 today and when I check the updateInstaller folder (tried to check the log) I see this:
[root@cnx7-was updateInstaller]# pwd
/opt/HCL/Connections/updateInstaller
[root@cnx7-was updateInstaller]# tree -L 5
.
├── fixes
│   └── CFix.70.2110-IC<IP_ADDRESS>-Common-Fix.jar
└── HCL_Connections_Install
    └── tools
        └── updateInstaller
            ├── bin
            │   ├── wpwsadmin.bat
            │   └── wpwsadmin.sh
            ├── config
            │   ├── earFullExpander.py
            │   ├── exportAppEAR.py
            │   ├── updateAppEAR.py
            │   └── updateApp.py
            ├── earLauncher
            │   └── launcher.exe
            ├── fixes
            ├── jvm
            │   └── aix
            ├── lib
            │   ├── commons-collections-3.2.1.jar
            │   ├── commons-configuration-1.5-plus-node-clone.jar
            │   ├── commons-lang-2.4.jar
            │   ├── commons-logging-1.0.4.jar
            │   ├── icu4j-68.1.jar
            │   ├── lcui.jar
            │   ├── nativefile.jar
            │   ├── org.eclipse.core.commands.jar
            │   ├── org.eclipse.equinox.common.jar
            │   ├── org.eclipse.jface.jar
            │   ├── org.eclipse.swt.gtk.aix.ppc64.jar
            │   ├── org.eclipse.swt.gtk.linux.s390x_3.7.0.v3735b.jar
            │   ├── org.eclipse.swt.gtk.linux.x86_64.jar
            │   ├── org.eclipse.swt.win32.win32.x86_64.jar
            │   └── org.eclipse.ui.forms_3.5.100.v20110425.jar
            ├── updateSilent.bat
            ├── updateSilent.sh
            ├── updateWizard.bat
            ├── updateWizard.sh
            └── version
                └── lcui.product

so HCL_Connections_Install/tools/updateInstaller are too much.
I checked the packages HCL_Connections_79_updateInstaller_2104.zip and 2102.zip, both show this folder structure! Should start with updateInstaller, then we can just decompress in /opt/HCL/Connections.

I see in the repo that the updateSilent.sh is called from this path, but it seems weird! The log and /opt/HCL/Connections/version/log tell me the update is installed, but the updateWizard.sh can't uninstall it, it seems it can't find it. So I think it will be a problem with the next update.

Thanks for the feedback.  The current approach expects the updateInstaller zip and fix jar are separate (https://github.com/HCL-TECH-SOFTWARE/connections-automation#installing-ifix-for-hcl-connections) but as you point they are bundled as one zip.  We'll create an internal ticket to update.

Not sure which update HCL_Connections_70_Update.jar is, but the newest CFix update name is:
CFix.70.2110-IC<IP_ADDRESS>-Common-Fix.jar
I tried with all commands, but the updateInstaller does not know that this fix is installed.

The Connections documentation says extract to temp folder and move the files: https://help.hcltechsw.com/connections/v7/admin/migrate/t_im_upgrade.html

ok, have you tried these settings?
ifix_apar:                                     CFix.70.2110
ifix_file:                                       CFix.70.2110-IC<IP_ADDRESS>-Common-Fix.jar   (this jar would need to be in the same dir as cnx_repository_url)
cnx_ifix_installer:                        "updateInstaller_2110.zip"         (or whatever the updateInstaller zip is called)

Yes, the installation works, I can see the log files in /opt/HCL/Connections/version/log but when I try to check the installed fixes with updateWizard or updateSilent, or try to uninstall it, the update*.sh tells me that no fix is installed. I think that's related to the wrong folder.

Installation was successful, I just wondered why I can't see the fix in updateWizard as installed.

trying it myself...

I can reproduce the issue where using the updateWizard it reports there is no fix installed.  It's out of scope of this project but I'll report it to the team.
As you stated it's a directory issue, I moved /opt/HCL/Connections/updateInstaller/HCL_Connections_Install/tools/updateInstaller to /opt/HCL/Connections/updateInstaller2, running updateWizard from there detects the cfix.

So it could be fixed when the updateInstaller is moved to the documented position. I think following the documentation makes sense here.

We'll address in later release.

Addressed in Jan release.


[STORM-3627] Add flag to use metrics shortname for topology

Adding topology configuration topology.metrics.use.shortname to allow for use of shortnames in case metrics tick is enabled using topology.enable.v2.metrics.tick.
This allows for use of shortname instead of complete naming convention that includes, topology-id, worker, component details in the metrics name.

Closing this as it can cause duplicate reporting.


Spike: investigate Cosmos SDK

Problem
We need to have a production ready blockchain that can be used for the following:

Have MASA as native asset for paying for transactions
Enable staking by Validators to secure the network
Enable delegation of stake by Miners to Validators
Enable the deployment of other tokens on our network
Enables the storage of a shared state - for example nodeData
Enables a trusted party (a Validator) to attest and allow non-validators to join the network
May simplify our architecture

We have cards that already capture part of the issues that we want to tackle:
https://github.com/masa-finance/masa-oracle/issues/590
https://github.com/masa-finance/masa-oracle/issues/507
https://github.com/masa-finance/masa-oracle/issues/518
https://github.com/masa-finance/masa-oracle/issues/496
https://github.com/masa-finance/masa-oracle/issues/382
https://github.com/masa-finance/masa-oracle/issues/381
Description
This card is about investigating if we can use the Cosmos SDK to implement Blockchain, CAS and consensus being the nodes and allow to have token with proof of work.
Acceptance criteria
The objective of this card is to make sure that Cosmos SDK can cover the features described in the cards listed above and to which extent. We want to know if its a viable solution to tackle most of the issues instead of backing our own solution on top of libp2p.

[ ] We want to know how much overlap there is infeature between Cosmos SDK and libp2p
[ ] How many features we miss from libp2p, and if it is a better replacement to it
[ ] Create new follow-up cards as needed
[ ] Close relevant card related to libp2p in  place of equivalent with Cosmos SDK
[ ] Before closing the card, have a brainstorming session with the team to show off the difference between Comsos SDK and libp2p and if they can co-operate together
[ ] We need also to know if libp2p and Cosmos SDK can be used in the same node or we can replace functionalities by building on top of Cosmos SDK and deprecate libp2p

Spike Outcome: Cosmos SDK with Oracle Node Integration
After conducting a spike to evaluate Cosmos SDK for our Oracle Node, we’ve confirmed that Cosmos SDK offers a robust framework for implementing a production-ready blockchain that aligns with our key requirements. We successfully set up a Cosmos-based chain and created a custom module that enables on-chain data storage using Cosmos’ consensus model, demonstrating its suitability for our needs.
1. Native Asset (MASA) for Transaction Fees

Supported: Cosmos SDK allows the definition of custom native assets. You can create MASA as the primary token on the blockchain, which can be used to pay transaction fees. By leveraging the SDK's x/bank and x/auth modules, you can define MASA's functionality, including fee payment and token management.

2. Staking for Network Security (Validators)

Supported: Cosmos SDK provides an x/staking module for staking, designed to enable Proof-of-Stake (PoS) mechanisms. Validators can bond (stake) tokens like MASA, participate in block validation, and receive rewards. This module is highly configurable, allowing you to set staking parameters that fit your network's requirements for security.

3. Delegation of Stake by Miners to Validators

Supported: The Cosmos SDK’s staking module also supports delegation, allowing token holders (e.g., Miners) to delegate their tokens to Validators. This feature allows them to earn a share of the staking rewards without directly validating blocks. Delegators maintain their tokens but entrust Validators to perform the network's consensus duties, securing the network by increasing the Validator's stake weight.

4. Deployment of Additional Tokens on the Network

Supported: Cosmos SDK’s modular design allows for the creation and management of multiple tokens. You can define additional tokens alongside MASA using the x/bank module and custom modules if specific token behaviors are needed. Additionally, Cosmos SDK supports multi-asset environments and enables flexibility in handling token issuance, transfer, and management.

5. Shared State Storage (e.g., nodeData)

Supported: Cosmos SDK supports on-chain storage of shared data through custom modules. We prototyped a custom module with gRPC services to get and set nodeData, enabling straightforward access and manipulation of this shared state across nodes. This setup leverages Cosmos SDK’s state management, ensuring that nodeData is stored consistently and available network-wide through gRPC calls, with consensus and data integrity maintained through Cosmos' underlying Merkle proofs and Tendermint consensus.

6. Validator Attestation for Network Entry (Trusted Party Authorization)

Supported with Customization: Cosmos SDK can support a Validator attestation system, although it may require a custom module. Validators can be configured to perform specific roles beyond block validation, such as approving new nodes. Custom logic can be added to enforce policies where certain Validators attest to the legitimacy of new nodes joining the network, effectively enabling a trusted entry mechanism.

7. Simplified Architecture Compared to libp2p (Hybrid Approach)

Supported: I am proposing a hybrid approach where Cosmos SDK handles consensus, storage, and coin management, while libp2p remains responsible for the operational work of the distributed network. This setup leverages Cosmos SDK’s strengths in blockchain-specific functions, simplifying the architecture by consolidating blockchain essentials within Cosmos while keeping libp2p optimized for custom peer-to-peer operations. This approach balances Cosmos SDK’s robust state management and consensus capabilities with libp2p’s flexibility for distributed task handling, providing an efficient framework that meets both blockchain and operational requirements.

Next Steps:

Proceed with follow-up tickets to formalize implementation details, including defining MASA as the native asset, configuring staking/delegation, and further developing shared state mechanisms.
Continue with a team brainstorming session to finalize the architecture and determine any remaining overlap or gaps between Cosmos SDK and libp2p.

Closing with the https://github.com/masa-finance/masa-oracle/issues/619 as follow-up.
Outcome: We know that Cosmos SDK is having all the features we need for having our own blockchain and token, but we want to make sure before jumping into it, to not loose all the benefits of using a libp2p-based transport layer, and go back at a "web2" style of network.


Confirm workflow is robust to different celltyping label

It has occurred to me that, although code has been written with sufficient flexibility to handle using a different reference label besides label.ont for SingleR celltyping, this may not have been sufficiently tested so there could be some cryptic bugs in there! Best to catch them now!
This issue tracks running the workflow through with a different label, like label.main, and debugging as needed.

Closed by #443


Readme correction - DscResource of Module xhyper-v is xVhdFile not xVhdFileDirecotry

Readme.md correction - DscResource Name of Module xhyper-v is xVhdFile not xVhdFileDirectory
PS C:> Get-DscResource -Module xhyper-v | select name
Name
xVHD
xVhdFile
xVMHyperV
xVMSwitch

This change is

Hi @eissko, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. Real humans will now evaluate your PR.

TTYL, MSBOT;

Resolved the merge conflict. I'll go ahead and merge as it is common for the Friendlyname to be specified instead of part of the class name


Uplift tools and initial changes for api version 2024-02-15-preview

@microsoft-github-policy-service agree company="Microsoft"


Store zip codes to avoid unnecesary calls to fetchState

@tianhuil
This small change avoids calls to fetchState if the user decides (or has a typo) on their postcode. Potentially saving at least 1 request to the google geocode API which can be expensive.
To check that it works go to staging-site and input a zip code, then go back to the zip code input when the START button is pressed again there should be no call to trpc if the zipcode was already submitted.
Here's the server site

Hi @ccardozov: thanks for submitting this.  This isn't a major use case for us but thanks for the thought.


Potential error with mocking email after multiple emails are being sent

Laravel Version: 5.5.x
PHP Version: 7.1
Database Driver & Version: MySQL

Description:
I was writing some tests for my application and noticed some not expected behavior. When running tests inside application there is few email being to sent. I was about to catch them and test as well however after first email is sent for some reason Mail  facade returns Mailer class instead of MailFake.
Steps To Reproduce:
For example test case:
public function test(ApiTester $I) : void
{
    // Prevent actual email being sent
    Mail::fake();

    // Do some stuff
    // Email 1 inside application is sent..
    // get_class(app('mailer')) == Illuminate\Support\Testing\Fakes\MailFake
    Mail::assertSent(Action1Mail::class, function (Action1Maill $mail) {
        return $mail->getVal() == 1;
    });
    // get_class(app('mailer')) == Illuminate\Support\Testing\Fakes\MailFake
    // Calling Mail::fake(); here makes no sense!

    // Do some stuff
    // Email 2 inside application is sent..

    // Boom, error:  [BadMethodCallException] Method assertSent does not exist.
    // Because: get_class(app('mailer')) == Illuminate\Mail\Mailer
    // And no more: get_class(app('mailer')) == Illuminate\Support\Testing\Fakes\MailFake
    Mail::assertSent(Action2Mail::class, function (Action2Mail $mail) {
        return $mail->getVal() == 2;
    });
}

I can't replicate this, the Mail is faked without any alteration, could be something in your project re-constructing the mailer.

Thank you @themsaid. I'll try to re-produce issue on clear laravel installation and will update issue accordingly.


Add float quickcheck implementations (fixes #45)

This builds on top of #43 to add Quickcheck helpers for floating point.
I generate a few different types of floats by constructing them from their component parts, using new functions defined on the Float trait. The Add implementation could be refactored to use these new functions for clarity.

Interesting test failure here:
https://travis-ci.org/japaric/rustc-builtins/jobs/153852666#L15056
Slightly different results, possibly a rounding error?

Interesting that only soft float arm target failed. That means that these intrinsics match the output of hardware instructions (the hard float arm targets pass) but don't match the output of libcompiler-rt.a's intrinsics?

:umbrella: The latest upstream changes (presumably #67) made this pull request unmergeable. Please resolve the merge conflicts.

Rebased

I mostly just want to see if this works...
@homunkulus try

@mattico ah sorry homu is currently configured to only let me "try". Mostly because changing that default configuration is annoying :P.
@homunkulus try

@homunkulus try
(homu was out of sync :X)

:hourglass: Trying commit 831074e with merge 831074e...

:broken_heart: Test failed - status-appveyor

Rebased

Rebased on #74. Should be mergable now.

@homunkulus try

:hourglass: Trying commit 010d153 with merge 010d153...

:sunny: Test successful - status-appveyor, status-travis
State: approved= try=True

Awesome @mattico!

@japaric so is the plan to merge this into rust-lang/rust before doing more work on it?

I'm going to try to land this in rust-lang/rust, yeah. But feel free to keep working on it in the mean time :+1:.

@mattico could you re-send this PR?


404 error screen appears after navigating to a non-existing page even when there is a global middleware that redirects to an existing page

Environment

Operating System: Windows_NT
Node Version:     v20.17.0
Nuxt Version:     3.13.2
CLI Version:      3.13.2
Nitro Version:    2.9.7
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      compatibilityDate, ssr
Runtime Modules:  -
Build Modules:    -

The bug does not depend on OS because it was reproduced in an app deployed via GitHub Actions
Reproduction
Demo repo: https://github.com/nicky1038/nuxt-404-demo
The app is deployed via GitHub Actions: https://nicky1038.github.io/nuxt-404-demo
Reproduction is simple:

go to https://nicky1038.github.io/nuxt-404-demo/non-existing (or http://localhost:3000/non-existing if you launched the dev server)

404 screen will appear but it shouldn't, since there should be a redirect to /existing-page
It is noteworthy that:

nuxt 3.12.0 is the first version with this bug
this bug appears only when ssr: false is set

Describe the bug
Since nuxt 3.12, when using ssr: false option, there is a bug.
Before 3.12, a global middleware could be used to redirect users from non-existing pages to existing ones, without the need to create dummies for that non-existing pages.
Now, even if there is such a global middleware with redirects to existing pages, there is a 404 error, when the page that user visits at first does not exist.
Additional context
No response
Logs
No response

I think this is the same issue as #27903


python3Packages.shodan: 1.26.1 -> 1.27.0

Motivation for this change
https://github.com/achillean/shodan-python/blob/master/CHANGELOG.md#1270
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 161516 run on x86_64-linux 1

6 packages built:

ioccheck
python310Packages.shodan
python310Packages.slowapi
python39Packages.shodan
python39Packages.slowapi
theharvester


docs(readme): update readme Getting start, .env.example

Description

adds .env.example
updates readme

How to test

Pull down this repo into a new dir
Follow instructions in readme
You should be able to get the application running

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


Parse a property-object's name as a parameter of a function

It should be possible to parse a property-object's name as a function's parameter. The syntax of a property-object's name is a literal surrounded by square brackets []
text-to-function ([myColumn])

Close in inital push


Update dcdiag.md

Under the "DCDiag known tests" section, for the "Intersite" test, the Registry path is missing a letter (H from HKEY).

#assign: @robinharwood, @Xelu86
@robinharwood @Xelu86
Can you review the proposed changes?
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team


Document CTRL-D shortcut to exit

Thank you, but CTRL-D acts a little differently – it deletes a character on the cursor, or close fzf if the prompt is empty, just like it does on your shell and any other programs that support standard readline key bindings. So mentioning it with the other keys can be misleading. You can read more about the default key bindings is man fzf.

Ah, OK, nevermind..


Created Arkanoid game

PR Description 📜
The objective is to break all the bricks on the screen using a ball while preventing the ball from falling out of the play area with the help of a paddle.
Features:

Brick Types: The game includes three types of bricks (gold, silver and red), each with different hit points and corresponding score values.
Dynamic Speed: The ball speed increases as the score increases, adding more challenge to the game.
Scoring System: Track your current score and lives.
Persistent Highest Score: Highest score is saved locally in your browser.

Fixes #3800

Mark the task you have completed ✅

[x] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[x] I have added screenshot for website preview in assets/images
[x] I have added entries for my game in main README.md
[x] I have added README.md in my folder
[x] I have added working video of the game in README.md (optional)
[x] I have specified the respective issue number for which I have requested the new game.

Add your screenshots(Optional) 📸
Game Board  :

Game Over :

Thank you soo much for contributing to our repository 💗

Thank you @its-kritika ,for creating the PR and contributing to our GameZone 💗
Review team will review the PR and will reach out to you soon! 😇
Make sure that you have marked all the tasks that you are done with ✅.
Thank you for your patience! 😀

Thank you  @its-kritika , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀

Hey @its-kritika,
You can't work on a closed issue 👀!
Follow the proper guideline and make a new PR again 😀.
Happy Hacking 💗


General neuropil grouping terms needed

For new term requests, please provide the following information:
Preferred term label
larval dorsomedial neuropil
larval centromedial neuropil
larval ventrolateral neuropil
larval ventromedial neuropil
larval central neuropil
May have missed it but we seem to have terms for e.g.
central neuropil of [every larval segment] but no grouping term.
Expression data is rarely defined in specific segments and one can't assume that it applies to all so a grouping term is needed.
Suggested parent term
ventral nerve cord synaptic neuropil subdomain

The thing that I would like to able to capture and distinguish is that expression occurs in the ventrolateral neuropil as opposed to the dorsomedial, centromedial, ventromedial, or central neuropil (for example). That's why I think there should be the term larval ventrolateral neuropil in addition to having ventrolateral neuropil of larval (every individual segment).
Any place that specific terms like this are listed individually for each segment without a generic (but still specific) grouping term are not useful for expression curation.

Revisiting this ticket just now - I think the appropriate terms for this use case are the ones I previously suggested - "__ subdivision of ventral nerve cord"
I will add your suggested labels as synonyms

Hi Clare,
Sorry not to respond sooner. I agree with your solution.
The necessary terms were already there but since you added the synonyms I
will be more likely to find them.
Thanks,
Bev
On Fri, May 29, 2020 at 4:06 AM Clare72<EMAIL_ADDRESS>wrote:

Revisiting this ticket just now - I think the appropriate terms for this
use case are the ones I previously suggested - "__ subdivision of ventral
nerve cord"
I will add your suggested labels as synonyms
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/FlyBase/drosophila-anatomy-developmental-ontology/issues/381#issuecomment-635829965,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHXWB5KHRDAW5RNQJIKHBN3RT5UJ3ANCNFSM4FX3CBAQ
.


Document how to edit the tutorial.

Point to madoko webpage, and explain how to open the tutorial.mdk through github. Explain the code loading features.

Maybe also document a bit the web technology behind it in case we have to migrate it to a new server, or @ad-l  wants to go on a long holiday.

Some brave souls have been sending pull requests, if we document the process there may may be more.


Fix image deletion in cloud

The original cause of having the bug in overwriting a variant in cloud is the merge of this PR:
https://github.com/Agenta-AI/agenta/pull/1648/files#diff-4af8b049c024bc22c09888d302175367a80b67f5ba7bc0c92e526c5a875d8c0fL154-L155
The removal of isOssEE() env is correct however keeping the call to the remove_image was wrong.
The code below was never running and is causing errors in cloud, and on top of this it's not needed.
    if isOssEE():
        await deployment_manager.remove_image(base.image)

@mmabrouk

I don't understand the logic behind the change in the previous PR

In the original pull request, the remove_image function is triggered only within isOssEE(). However, we do not possess such an environment. There is no instance of this environment within our entire codebase, including all repositories. It was a dead code. Consequently, the code was never executed. Additionally, removing a Docker image on EE is unclear, as the specifics of the EE environment, including whether Docker or other cloud services will be used, remain undefined.

and this one

Because again that line was introduced to the codebase by mistake, it was again never executed before the merge of the original PR. Now as it's merged and it's deployed we can't overwrite a variant in cloud anymore as we don't have such corresponding method in the deployment manager;
Error while updating variant: status_code: 500, body: {'detail': "Unexpected error while trying to update the app variant: module 'agenta_backend.cloud.services.lambda_deployment_manager' has no attribute 'remove_image'"}
Failed to add variant.```

@mmabrouk

I don't understand the logic behind the change in the previous PR

In the original pull request, the remove_image function is triggered only within isOssEE(). However, we do not possess such an environment.
What do you mean by there is no environment? The code reads

def isOssEE():
    return os.environ["FEATURE_FLAG"] in ["oss", "ee"]

Which means that this condition is active if we are in OSS or in EE. Obviously, EE in this case does not matter for the now. The fix would have been to change the condition to isOSS, and not removing it.

Additionally, removing a Docker image on EE is unclear, as the specifics of the EE environment, including whether Docker or other cloud services will be used, remain undefined.

But let's remove it in OSS then. I think that makes total sense, no reason to remove that.

It was again never executed before the merge of the original PR.

I don't understand how you can say that. Clearly it was executed for OSS, the condition is if we are in OSS (or EE, but let's ignore that), we remove the images.

Now as it's merged and it's deployed we can't overwrite a variant in cloud anymore as we don't have such corresponding method in the deployment manager;
Yes, because of the previous PR!

Summary: Let's please revert the core to the state before the previous PR and exchange isOssEE by isOss.

What do you mean by there is no environment? The code reads
I mean it's not a defined environment we regularly use from product perspective not from code perspective.


Break out NoDevice property validation (Fixes #1551)

NoDevice is a string for launch template block device mapping and a null object for EC2 block device mapping
This addresses the issue by breaking out block device mapping to two separate objects. The EC2 version will keep the original name for backwards compatibility purposes and the launch template version will take up a new name

Working on fixing the testing issues

The testing issue have been addressed The original solution was using a shared dictionary between two classes, but after consideration of the script which auto generations object skeletons I went with the more verbose method which duplicates the shared properties between the two device block mapping objects.

Thanks! Agree with you on implementation.


File google-services.json is missing. The Google Services Plugin cannot function without it.

What went wrong:
Execution failed for task ':app:processDebugGoogleServices'.

File google-services.json is missing. The Google Services Plugin cannot function without it.
Searched Location:
/home/digital/Darpan_AndroidWorks/flutter_project/flutter-musicplayer/android/app/src/nullnull/debug/google-services.json
/home/digital/Darpan_AndroidWorks/flutter_project/flutter-musicplayer/android/app/src/debug/nullnull/google-services.json
/home/digital/Darpan_AndroidWorks/flutter_project/flutter-musicplayer/android/app/src/nullnull/google-services.json
/home/digital/Darpan_AndroidWorks/flutter_project/flutter-musicplayer/android/app/src/debug/google-services.json
/home/digital/Darpan_AndroidWorks/flutter_project/flutter-musicplayer/android/app/src/nullnullDebug/google-services.json
/home/digital/Darpan_AndroidWorks/flutter_project/flutter-musicplayer/android/app/google-services.json

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 10s
Finished with error: Gradle task assembleDebug failed with exit code 1

To build and check the app, comment out below lines
apply plugin: 'com.google.gms.google-services' in "..\flutter-musicplayer-master\android\app\build.gradle"
classpath 'com.google.gms:google-services:3.2.1' in "..\flutter-musicplayer-master\android\build.gradle"
firebase_admob: ^0.9.0+2 in "pubspec.yaml"


[improve][broker] Improve NamespaceUnloadStrategy error message

Motivation
The log message printed when failing to create the NamespaceUnloadStrategy class instance mistakenly references a different config option.
Additionally fixes setup for tests in ProxyWithExtensibleLoadManagerTest, where the option was defaulting to value org.apache.pulsar.broker.loadbalance.impl.ThresholdShedder, which is incompatible with the extensible load manager, and was producing the following error message during test runs:
2024-01-10T14:57:28,347 - ERROR - [main:UnloadScheduler@222] - Error when trying to create namespace unload strategy: org.apache.pul
sar.broker.loadbalance.impl.LeastLongTermMessageRate
java.lang.RuntimeException: org.apache.pulsar.broker.loadbalance.impl.ThresholdShedder does not implement org.apache.pulsar.broker.l
oadbalance.extensions.scheduler.NamespaceUnloadStrategy
        at org.apache.pulsar.common.util.Reflections.createInstance(Reflections.java:75) ~[pulsar-common-3.3.0-SNAPSHOT.jar:3.3.0-SN
APSHOT]
        at org.apache.pulsar.broker.loadbalance.extensions.scheduler.UnloadScheduler.createNamespaceUnloadStrategy(UnloadScheduler.j
ava:217) ~[pulsar-broker-3.3.0-SNAPSHOT.jar:3.3.0-SNAPSHOT]

Modifications
Alter the log message in org.apache.pulsar.broker.loadbalance.extensions.scheduler.UnloadScheduler#createNamespaceUnloadStrategy to properly reference config option loadBalancerLoadSheddingStrategy.
Set loadBalancerLoadSheddingStrategy to org.apache.pulsar.broker.loadbalance.extensions.scheduler.TransferShedder in ProxyWithExtensibleLoadManagerTest#configureExtensibleLoadManager.
Verifying this change

[x] Make sure that the change passes the CI checks.

This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

If the box was checked, please highlight the changes

[ ] Dependencies (add or upgrade a dependency)
[ ] The public API
[ ] The schema
[ ] The default values of configurations
[ ] The threading model
[ ] The binary protocol
[ ] The REST endpoints
[ ] The admin CLI options
[ ] The metrics
[ ] Anything that affects deployment

Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

Matching PR in forked repository
PR in forked repository: https://github.com/dragosvictor/pulsar/pull/8/files

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (46ec730) 73.54% compared to head (69f619e) 73.55%.

Additional details and impacted files

@@             Coverage Diff              @@
##             master   #21880      +/-   ##
============================================
+ Coverage     73.54%   73.55%   +0.01%
- Complexity    32311    32327      +16
============================================
  Files          1859     1859
  Lines        138281   138280       -1
  Branches      15156    15156
============================================
+ Hits         101693   101716      +23
+ Misses        28689    28677      -12
+ Partials       7899     7887      -12

Flag
Coverage Δ

inttests
24.14% <0.00%> (-0.02%)
:arrow_down:

systests
23.67% <0.00%> (-0.07%)
:arrow_down:

unittests
72.84% <100.00%> (+0.02%)
:arrow_up:

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

Files
Coverage Δ

...dbalance/extensions/scheduler/UnloadScheduler.java
85.43% <100.00%> (-0.15%)
:arrow_down:

... and 59 files with indirect coverage changes


Fix Lens icon size in macOS

Based on #1999.
Using official design resources as template for Lens app icon. Now it has proper size, a bit smaller than current one + shadow effect applied.

MacOS 11 (Big Sur)

Windows

MacOS Catalina

Fixes #2005
Signed-off-by: Alex Andreev<EMAIL_ADDRESS>

Is it possible to generate this on demand from the SVG instead of committing these binary files to the repo?

I'm not sure it is easily possible right now. Design guidlines has only empty presets in prepared PSD file.


ci: add timeouts to GHA jobs and steps to avoid e2e tests holding MacOS environment for 6 hours

Signed-off-by: Yaroslav Skopets<EMAIL_ADDRESS>Summary

this PR sets deadlines for e2e test jobs on Mac to avoid wasting resources for 6 hours when Docker for Mac fails to install correctly

Implementation notes

This PR is based on master prior to #135
This PR only makes sense if #135  is reverted from master
If this PR is merged on master without reverting #135, it will cause all builds to fail (because they take 3,5+ hours and this PR is trying to prevent that)

merged because the last build passed without hanging. Hopefully, this was a transient problem after all.

oops I see that you had created a branch, so merging isn't too useful. my mistake.
Anyway, in a previous PR I added the trigger thing that allows you to kick-off a build without adding a commit. I invoked that and will monitor this:

If that passes, I'll cherry-pick the commit into master, so that timeouts insure next time.
If it doesn't pass, I'll raise a PR that reverts the following and has your timeout commit:
ci/e2e//macos/install_docker.sh <- revert this to the old contents
ci/e2e//macos/.licenserignore <- remove this as dead links means we don't know precisely where ^^ came from
Before or after any of this, it takes an hour for all the things to pass, so patience please. I will watch this and make sure the changes you made here aren't lost!

I made notes in #135 about some suspicious stuff in the logs using current docker.
I opened a new branch with the old install script and the timeouts commit and used the above workflow action to trigger a build on it. https://github.com/tetratelabs/getenvoy/actions/runs/691789638
Will watch this and see how it goes


Work on page name, Meta Tag, SEO , Name In URL

Related Issue [#284 }
The title is not defining the site as it opens. It would be better if the title name is similar to site name.
Closes: #[284]
Description of Changes

Favicon is changed and now it is more suited to site as i showed in the issue.
Title is optimized now as you move to the other page it changes according to the page.

Checklist:

[ ] My code adheres to the established style guidelines of this project.
[ ] have conducted a self-review of my code.
[ ] have included comments in areas that may be difficult to understand.
[ ] have made corresponding updates to the project documentation.
[ ] My changes have not introduced any new warnings.

Screenshots
|           Original           |

|         Updated           |

and so on..

I did some mistake during pull request so i'm closing this PR and will raise a new one.


Memory Leak in tf.keras.Model.fit

Please make sure that this is a bug. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:bug_template
System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 18.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): 1.14.0
Python version: 3.6
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory:

You can collect some of this information using our environment capture
script
You can also obtain the TensorFlow version with: 1. TF 1.0: python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)" 2. TF 2.0: python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"
Describe the current behavior
During training of a keras model with fit, the memory consumption is constantly increasing until the machine eventually runs out of memory.
Note: The observed issue is only observed with tensorflow installed with conda or the one used in the AWS Deep Learning AMI that was optimized for the respective compute instance. If I just install tensorflow with pip the memory consumption does not increase until failure. Since I am not an expert on building tensorflow from source I can only guess that it has something to do with the way tensorflow was build from source by the package provider.
Describe the expected behavior
For a small training dataset of a couple of MB, a machine with 16 GiB memory should not run out of memory.
Code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate the problem.
I used this code and a fresh conda environment to reproduce the issue:
$ conda create -n myenv python=3.6 tensorflow
$ conda activate myenv

"""Example that reproduces the memory consumption increase during training."""
import numpy as np
import tensorflow as tf

def build_model():
    """Build a simple logistic regression model."""
    x = tf.keras.Input((100,))
    h = tf.keras.layers.Flatten()(x)
    output = tf.keras.layers.Dense(1, activation='sigmoid')(h)
    return tf.keras.Model(inputs=[x], outputs=[output])

def load_data():
    """Load some dummy data."""
    x = np.random.randn(1000000, 100).astype(np.float32)
    y = np.random.choice([0, 1], size=(1000000, 1)).astype(np.float32)
    return x, y

def train(model, x, y):
    """Train the model on some data."""
    model.compile(optimizer=tf.keras.optimizers.Adam(lr=0.001),
                  loss=tf.keras.losses.binary_crossentropy)
    model.fit(x, y, epochs=10000, batch_size=1280)

if __name__ == '__main__':
    x, y = load_data()
    model = build_model()
    train(model, x, y)

Other info / logs
Here are the logs from the tensorflow version installed with conda maybe it helps someone to reproduce how tensorflow was compiled and reproduce the issue:
OMP: Info #212: KMP_AFFINITY: decoding x2APIC ids.
OMP: Info #213: KMP_AFFINITY: cpuid leaf 11 not supported - decoding legacy APIC ids.
OMP: Info #149: KMP_AFFINITY: Affinity capable, using global cpuid info
OMP: Info #154: KMP_AFFINITY: Initial OS proc set respected: 0-3
OMP: Info #156: KMP_AFFINITY: 4 available OS procs
OMP: Info #157: KMP_AFFINITY: Uniform topology
OMP: Info #159: KMP_AFFINITY: 1 packages x 1 cores/pkg x 4 threads/core (1 total cores)
OMP: Info #214: KMP_AFFINITY: OS proc to physical thread map:
OMP: Info #171: KMP_AFFINITY: OS proc 0 maps to package 0 thread 0
OMP: Info #171: KMP_AFFINITY: OS proc 2 maps to package 0 thread 1
OMP: Info #171: KMP_AFFINITY: OS proc 1 maps to package 0 thread 2
OMP: Info #171: KMP_AFFINITY: OS proc 3 maps to package 0 thread 3
OMP: Info #250: KMP_AFFINITY: pid 20360 tid 20360 thread 0 bound to OS proc set 0
WARNING: Logging before flag parsing goes to stderr.
W0910 21:18:07.612579<PHONE_NUMBER>30112 deprecation.py:506] From /home/ubuntu/anaconda3/envs/tfkerasbug/lib/python3.6/site-packages/tensorflow/python/ops/init_ops.py:1251: calling VarianceScaling.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.
Instructions for updating:
Call initializer instance with the dtype argument instead of passing it to the constructor
W0910 21:18:07.634243<PHONE_NUMBER>30112 deprecation.py:323] From /home/ubuntu/anaconda3/envs/tfkerasbug/lib/python3.6/site-packages/tensorflow/python/ops/nn_impl.py:180: add_dispatch_support.<locals>.wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.where in 2.0, which has the same broadcast rule as np.where
2019-09-10 21:18:07.824063: I tensorflow/core/platform/cpu_feature_guard.cc:145] This TensorFlow binary is optimized with Intel(R) MKL-DNN to use the following CPU instructions in performance critical operations:  SSE4.1 SSE4.2 AVX AVX2 FMA
To enable them in non-MKL-DNN operations, rebuild TensorFlow with the appropriate compiler flags.
2019-09-10 21:18:07.829994: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency:<PHONE_NUMBER> Hz
2019-09-10 21:18:07.830112: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x55e5e924d9b0 executing computations on platform Host. Devices:
2019-09-10 21:18:07.830142: I tensorflow/compiler/xla/service/service.cc:175]   StreamExecutor device (0): <undefined>, <undefined>
2019-09-10 21:18:07.830228: I tensorflow/core/common_runtime/process_util.cc:115] Creating new thread pool with default inter op setting: 2. Tune using inter_op_parallelism_threads for best performance.
2019-09-10 21:18:07.848855: W tensorflow/compiler/jit/mark_for_compilation_pass.cc:1412] (One-time warning): Not using XLA:CPU for cluster because envvar TF_XLA_FLAGS=--tf_xla_cpu_global_jit was not set.  If you want XLA:CPU, either set that envvar, or use experimental_jit_scope to enable XLA:CPU.  To confirm that XLA is active, pass --vmodule=xla_compilation_cache=1 (as a proper command-line flag, not via TF_XLA_FLAGS) or set the envvar XLA_FLAGS=--xla_hlo_profile.
OMP: Info #250: KMP_AFFINITY: pid 20360 tid 20372 thread 1 bound to OS proc set 2
OMP: Info #250: KMP_AFFINITY: pid 20360 tid 20374 thread 2 bound to OS proc set 1
OMP: Info #250: KMP_AFFINITY: pid 20360 tid 20375 thread 3 bound to OS proc set 3
OMP: Info #250: KMP_AFFINITY: pid 20360 tid 20376 thread 4 bound to OS proc set 0
KMP_AFFINITY: pid 20360 tid 20373 thread 5 bound to OS proc set 2
OMP: Info #250: KMP_AFFINITY: pid 20360 tid 20377 thread 6 bound to OS proc set 1
OMP: Info #250: KMP_AFFINITY: pid 20360 tid 20378 thread 7 bound to OS proc set 3
OMP: Info #250: KMP_AFFINITY: pid 20360 tid 20379 thread 8 bound to OS proc set 0

@dekromp ,
When i tried installing tensorflow from conda and run the given code,I didn't face any error. Can you provide more info on the issue? Also try running the code on latest tensorflow version.Thanks!

How long did you run it? It takes some time until the increase in memory is clearly visible. On an AWS ec2 m4.xlarge instance it growths roughly 6MB/s. I don't think that my minimal example will cause an error on your machine just a constant increase in memory consumption which you can observe when you look at it for  ~10 minutes.

Hi.
I have the same problem. I also installed TF2.0 with pip in a conda virtual environment on my computer. I tried to implement DQN with TF2.0. I found the memory would increase if I used model.fit, but it not with model.train_on_batch.
Here's my code:
from collections import deque
import random
import gym
import numpy as np
import tensorflow as tf

class DQN(object):
    def __init__(self, state_dim, action_dim, lr, init_buffer_size=100):
        self.step = 0
        self.update_freq = 200
        self.replay_buffer_size = 1000
        self.replay_buffer = deque(maxlen=self.replay_buffer_size)
        self.lr = lr
        self.model = self._create_model(state_dim, action_dim)
        self.target_model = self._create_model(state_dim, action_dim)
        self._state_dim = state_dim
        self._action_dim = action_dim
        self._init_buffer_size = init_buffer_size

    def _create_model(self, state_dim, action_dim):
        inputs = tf.keras.Input(shape=state_dim)
        fc1 = tf.keras.layers.Dense(512)(inputs)
        q_outs = tf.keras.layers.Dense(action_dim)(fc1)

        model = tf.keras.Model(inputs=inputs, outputs=q_outs)
        model.compile(loss='mean_squared_error', optimizer=tf.keras.optimizers.Adam(self.lr))

        return model

    def act(self, state, epsilon=0.1):
        if np.random.uniform() < epsilon:
            return np.random.choice(range(self._action_dim))
        else:
            return np.argmax(self.model(np.array([state])))

    def save_model(self, file_path='MountainCar-v0-dqn.h5'):
        print('model saved')
        self.model.save(file_path)

    def save_transition(self, s, a, r, next_s, terminated):
        self.replay_buffer.append((s, a, r, next_s, terminated))

    def train(self, batch_size=64, lr=1, gamma=0.99):
        if len(self.replay_buffer) < self._init_buffer_size:
            return

        self.step += 1

        if self.step % self.update_freq == 0:
            print("Copying weights.")
            self.target_model.set_weights(self.model.get_weights())

        # print("Buffer Length:{}".format(len(self.replay_buffer)))

        minibatch = random.sample(self.replay_buffer, batch_size)
        s_batch = np.array([replay[0] for replay in minibatch])
        next_s_batch = np.array([replay[3] for replay in minibatch])

        Q = self.model(s_batch).numpy()
        target_Q = self.target_model(next_s_batch).numpy()

        for i, exp in enumerate(minibatch):
            _, a, r, _, done = exp
            if done:
                Q[i][a] = r
            else:
                Q[i][a] = r + gamma * np.amax(target_Q[i])

        self.model.fit(s_batch, Q, verbose=0)
        # self.model.train_on_batch(s_batch, Q)

def main():
    env = gym.make('MountainCar-v0')
    episodes = 10000  # train with 1000 episodes
    score_list = []
    agent = DQN(state_dim=env.observation_space.shape, action_dim=env.action_space.n, lr=0.001)

    for i in range(episodes):
        s = env.reset()
        score = 0
        while True:
            a = agent.act(s)
            # env.render()
            next_s, reward, done, _ = env.step(a)
            agent.save_transition(s, a, reward, next_s, done)
            agent.train()
            score += reward
            s = next_s
            if done:
                score_list.append(score)
                print('episode:', i, 'score:', score, 'max:', max(score_list))
                break
        if np.mean(score_list[-10:]) > -160:
            agent.save_model()
            break

    env.close()

if __name__ == "__main__":
    main()

We only control the pip package. If you're seeing an issue with conda but not pip I would suggest that you file an issue with conda.

Not really helpful, but thanks anyway.

@robieta
Hi,  not sure why this got closed just because conda was used instead of pip. I'm also running into issues with this (using TF 2.0.0, CPU only on RedHat) and I installed with conda. I'd be happy to show some sample code to replicate and the metrics I've collected from trying to debug this memory lead issue.
If you all do not deal with the conda package....who does? And why would there be any difference, as long as the TF version is the same?

i see this with pip too. memory usage keeps increasing for fit.

@ysyyork Can you please create a new issue with a standalone code to reproduce the error? Thanks!


Minor: add version to RuntimeEnv::new deprecation message

Which issue does this PR close?

Closes #.
Rationale for this change
Having a version in the message lets us know when we can remove it in the future
What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

i found two more deprecations without the since version -- https://github.com/apache/datafusion/pull/13543


Add choices parameter to all fields

This PR resolves #35. It uses the typesystem.Choice class to add choice validation to the base ModelField class. I have verified that it is working with at least the Integer and String fields.

Looks nice! I've not really figured out how this interacts in the integer case, since it's typed as str choices.
Also, looks like the test case needs some tweaking?... https://travis-ci.org/encode/orm/jobs/654198625?utm_medium=notification&utm_source=github_status

@tomchristie My mypy does complain that it expects a str in choices. However, the tests show that boolean and integer choices are handled okay. Maybe the choices class types can be relaxed a bit, or maybe something else is happening here (the class maybe converts everything to string before comparing, which can have undesirable results, or it might in some cases require to use string only functions, breaking the functionality.)


v2.5.5 fails to build on NVIDIA Jetson AGX Orin (aarch64/arch=compute_87,code=sm_87)

Hi,
I noticed that the new version 2.5.5 breaks build from source on Jetson devices.
Previously working build script
git clone --depth=1 https://github.com/Dao-AILab/flash-attention
cd flash-attention
git apply flash-attn.diff
python3 setup.py install

flash-attn.diff - Git Patch used to enable the build from the source
diff --git a/setup.py b/setup.py
index 75c92cb..5971477 100644
--- a/setup.py
+++ b/setup.py
@@ -45,20 +45,38 @@ SKIP_CUDA_BUILD = os.getenv("FLASH_ATTENTION_SKIP_CUDA_BUILD", "FALSE") == "TRUE
 # For CI, we want the option to build with C++11 ABI since the nvcr images use C++11 ABI
 FORCE_CXX11_ABI = os.getenv("FLASH_ATTENTION_FORCE_CXX11_ABI", "FALSE") == "TRUE"

+def get_system() -> str:
+    """
+    Returns the system name as used in wheel filenames.
+    """
+    if platform.system() == "Windows":
+        return "win"
+    elif platform.system() == "Darwin":
+        mac_version = ".".join(platform.mac_ver()[0].split(".")[:1])
+        return f"macos_{mac_version}"
+    elif platform.system() == "Linux":
+        return "linux"
+    else:
+        raise ValueError("Unsupported system: {}".format(platform.system()))

-def get_platform():
+
+def get_arch():
     """
-    Returns the platform name as used in wheel filenames.
+    Returns the system name as used in wheel filenames.
     """
-    if sys.platform.startswith("linux"):
-        return "linux_x86_64"
-    elif sys.platform == "darwin":
-        mac_version = ".".join(platform.mac_ver()[0].split(".")[:2])
-        return f"macosx_{mac_version}_x86_64"
-    elif sys.platform == "win32":
-        return "win_amd64"
+    if platform.machine() == "x86_64":
+        return "x86_64"
+    elif platform.machine() == "arm64" or platform.machine() == "aarch64":
+        return "aarch64"
     else:
-        raise ValueError("Unsupported platform: {}".format(sys.platform))
+        raise ValueError("Unsupported arch: {}".format(platform.machine()))
+
+
+def get_platform() -> str:
+    """
+    Returns the platform name as used in wheel filenames.
+    """
+    return f"{get_system()}_{get_arch()}"

 def get_cuda_bare_metal_version(cuda_dir):
@@ -115,14 +133,11 @@ if not SKIP_CUDA_BUILD:
                 "FlashAttention is only supported on CUDA 11.6 and above.  "
                 "Note: make sure nvcc has a supported version by running nvcc -V."
             )
-    # cc_flag.append("-gencode")
-    # cc_flag.append("arch=compute_75,code=sm_75")
-    cc_flag.append("-gencode")
-    cc_flag.append("arch=compute_80,code=sm_80")
+
     if CUDA_HOME is not None:
         if bare_metal_version >= Version("11.8"):
             cc_flag.append("-gencode")
-            cc_flag.append("arch=compute_90,code=sm_90")
+            cc_flag.append("arch=compute_87,code=sm_87")

     # HACK: The compiler flag -D_GLIBCXX_USE_CXX11_ABI is set to be the same as
     # torch._C._GLIBCXX_USE_CXX11_ABI

Error when building v2.5.5 on Jetson
...
12:11:17 FAILED: /opt/flash-attention/build/temp.linux-aarch64-cpython-310/csrc/flash_attn/src/flash_bwd_hdim256_bf16_sm80.o
12:11:17 /usr/local/cuda/bin/nvcc  -I/opt/flash-attention/csrc/flash_attn -I/opt/flash-attention/csrc/flash_attn/src -I/opt/flash-attention/csrc/cutlass/include -I/usr/local/lib/python3.10/dist-packages/torch/include -I/usr/local/lib/python3.10/dist-packages/torch/include/torch/csrc/api/include -I/usr/local/lib/python3.10/dist-packages/torch/include/TH -I/usr/local/lib/python3.10/dist-packages/torch/include/THC -I/usr/local/cuda/include -I/usr/include/python3.10 -c -c /opt/flash-attention/csrc/flash_attn/src/flash_bwd_hdim256_bf16_sm80.cu -o /opt/flash-attention/build/temp.linux-aarch64-cpython-310/csrc/flash_attn/src/flash_bwd_hdim256_bf16_sm80.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -O3 -std=c++17 -U__CUDA_NO_HALF_OPERATORS__ -U__CUDA_NO_HALF_CONVERSIONS__ -U__CUDA_NO_HALF2_OPERATORS__ -U__CUDA_NO_BFLOAT16_CONVERSIONS__ --expt-relaxed-constexpr --expt-extended-lambda --use_fast_math -gencode arch=compute_87,code=sm_87 --threads 4 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1016"' -DTORCH_EXTENSION_NAME=flash_attn_2_cuda -D_GLIBCXX_USE_CXX11_ABI=1 -ccbin gcc
12:11:17 Killed
...
12:16:23 ninja: build stopped: subcommand failed.
12:16:23 Traceback (most recent call last):
12:16:23   File "/usr/local/lib/python3.10/dist-packages/torch/utils/cpp_extension.py", line 2100, in _run_ninja_build
12:16:23     subprocess.run(
12:16:23   File "/usr/lib/python3.10/subprocess.py", line 526, in run
12:16:23     raise CalledProcessError(retcode, process.args,
12:16:23 subprocess.CalledProcessError: Command '['ninja', '-v', '-j', '12']' returned non-zero exit status 1.
12:16:23
12:16:23 The above exception was the direct cause of the following exception:
12:16:23
12:16:23 Traceback (most recent call last):
12:16:23   File "/opt/flash-attention/setup.py", line 302, in <module>
12:16:23     setup(
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/__init__.py", line 103, in setup
12:16:23     return distutils.core.setup(**attrs)
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/core.py", line 185, in setup
12:16:23     return run_commands(dist)
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/core.py", line 201, in run_commands
12:16:23     dist.run_commands()
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/dist.py", line 969, in run_commands
12:16:23     self.run_command(cmd)
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/dist.py", line 963, in run_command
12:16:23     super().run_command(command)
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/dist.py", line 988, in run_command
12:16:23     cmd_obj.run()
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/command/install.py", line 85, in run
12:16:23     self.do_egg_install()
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/command/install.py", line 137, in do_egg_install
12:16:23     self.run_command('bdist_egg')
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/cmd.py", line 318, in run_command
12:16:23     self.distribution.run_command(command)
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/dist.py", line 963, in run_command
12:16:23     super().run_command(command)
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/dist.py", line 988, in run_command
12:16:23     cmd_obj.run()
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/command/bdist_egg.py", line 167, in run
12:16:23     cmd = self.call_command('install_lib', warn_dir=0)
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/command/bdist_egg.py", line 153, in call_command
12:16:23     self.run_command(cmdname)
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/cmd.py", line 318, in run_command
12:16:23     self.distribution.run_command(command)
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/dist.py", line 963, in run_command
12:16:23     super().run_command(command)
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/dist.py", line 988, in run_command
12:16:23     cmd_obj.run()
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/command/install_lib.py", line 11, in run
12:16:23     self.build()
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/command/install_lib.py", line 111, in build
12:16:23     self.run_command('build_ext')
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/cmd.py", line 318, in run_command
12:16:23     self.distribution.run_command(command)
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/dist.py", line 963, in run_command
12:16:23     super().run_command(command)
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/dist.py", line 988, in run_command
12:16:23     cmd_obj.run()
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/command/build_ext.py", line 89, in run
12:16:23     _build_ext.run(self)
12:16:23   File "/usr/local/lib/python3.10/dist-packages/Cython/Distutils/old_build_ext.py", line 186, in run
12:16:23     _build_ext.build_ext.run(self)
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/command/build_ext.py", line 345, in run
12:16:23     self.build_extensions()
12:16:23   File "/usr/local/lib/python3.10/dist-packages/torch/utils/cpp_extension.py", line 873, in build_extensions
12:16:23     build_ext.build_extensions(self)
12:16:23   File "/usr/local/lib/python3.10/dist-packages/Cython/Distutils/old_build_ext.py", line 195, in build_extensions
12:16:23     _build_ext.build_ext.build_extensions(self)
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/command/build_ext.py", line 467, in build_extensions
12:16:23     self._build_extensions_serial()
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/command/build_ext.py", line 493, in _build_extensions_serial
12:16:23     self.build_extension(ext)
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/command/build_ext.py", line 250, in build_extension
12:16:23     _build_ext.build_extension(self, ext)
12:16:23   File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/command/build_ext.py", line 548, in build_extension
12:16:23     objects = self.compiler.compile(
12:16:23   File "/usr/local/lib/python3.10/dist-packages/torch/utils/cpp_extension.py", line 686, in unix_wrap_ninja_compile
12:16:23     _write_ninja_file_and_compile_objects(
12:16:23   File "/usr/local/lib/python3.10/dist-packages/torch/utils/cpp_extension.py", line 1774, in _write_ninja_file_and_compile_objects
12:16:23     _run_ninja_build(
12:16:23   File "/usr/local/lib/python3.10/dist-packages/torch/utils/cpp_extension.py", line 2116, in _run_ninja_build
12:16:23     raise RuntimeError(message) from e
12:16:23 RuntimeError: Error compiling objects for extension

@ms1design Thanks a lot for sharing this -- I was also trying to build the FlashAttention on the Jetson AGX Orin 64 GB. So I followed your steps and applied the diff that you specified
git clone --depth=1 https://github.com/Dao-AILab/flash-attention
cd flash-attention
git apply flash-attn.diff
python3 setup.py install

@ms1design How much time does it take for your build to finish? For me it never seems to finish and gets stuck at this point

And which nvcc and CUDA version are you using?

Many thanks @ms1design for letting me know this -- yes, I am giving it a try right now.
I wanted to actually compare:

TensorRT-LLM (https://github.com/dusty-nv/jetson-containers/tree/master/packages/llm/tensorrt_llm)
QServe (https://github.com/mit-han-lab/qserve)

Which jetson-container would you recommend in order to install QServe?

@iamsiddhantsahu just try to build the QServe from source on jetson from a new container. You can follow docs: https://github.com/dusty-nv/jetson-containers/blob/master/docs/packages.md

@ms1design thanks for the suggestion -- yes will try that
I think QServe depends on the FlashAttention and xFormers package that I was interested in flash-attention container https://github.com/dusty-nv/jetson-containers/tree/master/packages/llm/flash-attention


Segmenttion fault when syncing from scratch with <IP_ADDRESS>

When syncing from scratch with sapphired on version <IP_ADDRESS> the daemon crashes with the following error
Segmentation fault (core dumped)

If I restart the daemon it keeps syncing and then eventually crashes again.
Machine specs:

OS: Ubuntu <IP_ADDRESS>
CPU: Ryzen 7 3700X
RAM: 64GB
Disk size: 1TB
Disk Type (HD/SDD): HD (Raid 1)

Some extra info. Even after sync has completed the node is still failing with the segmentation fault.
Some sample logs
Added time data, samples 70, offset -10 (+0 minutes)
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
socket recv error Connection reset by peer (104)
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901814, us=<IP_ADDRESS>:45328, peer=120
Added time data, samples 71, offset +0 (+0 minutes)
nTimeOffset = +0
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
receive version message: /Sapphire Core:1.4.0/: version 70927, blocks=206444, us=<IP_ADDRESS>:45328, peer=121
Added time data, samples 72, offset +0 (+0 minutes)
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901814, us=<IP_ADDRESS>:45328, peer=122
Added time data, samples 73, offset +0 (+0 minutes)
nTimeOffset = +0
asking peer for sporks
CheckBlock : skipping transaction locking checks
UpdateTip: new best=23abddeaf98d5627dec33654e34ec9dd8090b91752453d8ee0f6c78c45b58609  height=901815 version=7  log2_work=68.7403139180786269  tx=10281823  date=2021-01-10 00:29:54 progress=1.000000  cache=0.4MiB(2075txo)
ERROR: ProcessBlock: Active Masternode not initialized.
ProcessNewBlock : ACCEPTED Block 901815 in 22 milliseconds with size=43938
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
socket recv error Connection reset by peer (104)
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901815, us=<IP_ADDRESS>:45328, peer=123
Added time data, samples 74, offset +13 (+0 minutes)
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
ProcessMessages: advertising address <IP_ADDRESS>:45328
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901815, us=<IP_ADDRESS>:35672, peer=124
Added time data, samples 75, offset +0 (+0 minutes)
nTimeOffset = +0
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
receive version message: /Sapphire Core:1.4.0/: version 70927, blocks=901814, us=<IP_ADDRESS>:45328, peer=126
Added time data, samples 76, offset +0 (+0 minutes)
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901815, us=<IP_ADDRESS>:45328, peer=127
Added time data, samples 77, offset +0 (+0 minutes)
nTimeOffset = +0
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
receive version message: /Sapphire Core:1.4.0/: version 70927, blocks=901815, us=<IP_ADDRESS>:45328, peer=128
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901815, us=<IP_ADDRESS>:45328, peer=129
Added time data, samples 78, offset -1 (+0 minutes)
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901815, us=<IP_ADDRESS>:45328, peer=130
Added time data, samples 79, offset +0 (+0 minutes)
nTimeOffset = +0
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
connect() to <IP_ADDRESS>:45328 failed after select(): Connection refused (111)
connect() to [2a01:4f9:2a:2443::50f]:45328 failed after select(): Connection refused (111)
connect() to [2a01:4f8:200:64c5::4b]:45328 failed after select(): Connection refused (111)
ProcessMessages: advertising address <IP_ADDRESS>:45328
receive version message: /Sap Core:1.3.3/: version 70926, blocks=901815, us=[2a01:4f8:141:332b::4]:41040, peer=131
Added time data, samples 80, offset +0 (+0 minutes)
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
ResendWalletTransactions()
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901815, us=<IP_ADDRESS>:45328, peer=132
Added time data, samples 81, offset +0 (+0 minutes)
nTimeOffset = +0
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901815, us=<IP_ADDRESS>:45328, peer=133
Added time data, samples 82, offset +0 (+0 minutes)
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
connect() to <IP_ADDRESS>:45328 failed after select(): Connection refused (111)
connected to self at <IP_ADDRESS>:35320, disconnecting
ProcessSpork : got updated spork 10007 (SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT) with value<PHONE_NUMBER> (signed at<PHONE_NUMBER>)
Wrote spork SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT to database
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901815, us=<IP_ADDRESS>:45328, peer=136
Added time data, samples 83, offset +0 (+0 minutes)
nTimeOffset = +0
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
socket recv error Connection reset by peer (104)
receive version message: /Sap Core:1.3.3/: version 70926, blocks=901815, us=<IP_ADDRESS>:45328, peer=137
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901815, us=<IP_ADDRESS>:45328, peer=138
Added time data, samples 84, offset +0 (+0 minutes)
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
Segmentation fault (core dumped)

Some extra info. Even after sync has completed the node is still failing with the segmentation fault.
Some sample logs
Added time data, samples 70, offset -10 (+0 minutes)
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
socket recv error Connection reset by peer (104)
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901814, us=<IP_ADDRESS>:45328, peer=120
Added time data, samples 71, offset +0 (+0 minutes)
nTimeOffset = +0
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
receive version message: /Sapphire Core:1.4.0/: version 70927, blocks=206444, us=<IP_ADDRESS>:45328, peer=121
Added time data, samples 72, offset +0 (+0 minutes)
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901814, us=<IP_ADDRESS>:45328, peer=122
Added time data, samples 73, offset +0 (+0 minutes)
nTimeOffset = +0
asking peer for sporks
CheckBlock : skipping transaction locking checks
UpdateTip: new best=23abddeaf98d5627dec33654e34ec9dd8090b91752453d8ee0f6c78c45b58609  height=901815 version=7  log2_work=68.7403139180786269  tx=10281823  date=2021-01-10 00:29:54 progress=1.000000  cache=0.4MiB(2075txo)
ERROR: ProcessBlock: Active Masternode not initialized.
ProcessNewBlock : ACCEPTED Block 901815 in 22 milliseconds with size=43938
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
socket recv error Connection reset by peer (104)
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901815, us=<IP_ADDRESS>:45328, peer=123
Added time data, samples 74, offset +13 (+0 minutes)
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
ProcessMessages: advertising address <IP_ADDRESS>:45328
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901815, us=<IP_ADDRESS>:35672, peer=124
Added time data, samples 75, offset +0 (+0 minutes)
nTimeOffset = +0
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
receive version message: /Sapphire Core:1.4.0/: version 70927, blocks=901814, us=<IP_ADDRESS>:45328, peer=126
Added time data, samples 76, offset +0 (+0 minutes)
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901815, us=<IP_ADDRESS>:45328, peer=127
Added time data, samples 77, offset +0 (+0 minutes)
nTimeOffset = +0
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
receive version message: /Sapphire Core:1.4.0/: version 70927, blocks=901815, us=<IP_ADDRESS>:45328, peer=128
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901815, us=<IP_ADDRESS>:45328, peer=129
Added time data, samples 78, offset -1 (+0 minutes)
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901815, us=<IP_ADDRESS>:45328, peer=130
Added time data, samples 79, offset +0 (+0 minutes)
nTimeOffset = +0
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
connect() to <IP_ADDRESS>:45328 failed after select(): Connection refused (111)
connect() to [2a01:4f9:2a:2443::50f]:45328 failed after select(): Connection refused (111)
connect() to [2a01:4f8:200:64c5::4b]:45328 failed after select(): Connection refused (111)
ProcessMessages: advertising address <IP_ADDRESS>:45328
receive version message: /Sap Core:1.3.3/: version 70926, blocks=901815, us=[2a01:4f8:141:332b::4]:41040, peer=131
Added time data, samples 80, offset +0 (+0 minutes)
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
ResendWalletTransactions()
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901815, us=<IP_ADDRESS>:45328, peer=132
Added time data, samples 81, offset +0 (+0 minutes)
nTimeOffset = +0
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901815, us=<IP_ADDRESS>:45328, peer=133
Added time data, samples 82, offset +0 (+0 minutes)
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
connect() to <IP_ADDRESS>:45328 failed after select(): Connection refused (111)
connected to self at <IP_ADDRESS>:35320, disconnecting
ProcessSpork : got updated spork 10007 (SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT) with value<PHONE_NUMBER> (signed at<PHONE_NUMBER>)
Wrote spork SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT to database
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901815, us=<IP_ADDRESS>:45328, peer=136
Added time data, samples 83, offset +0 (+0 minutes)
nTimeOffset = +0
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
socket recv error Connection reset by peer (104)
receive version message: /Sap Core:1.3.3/: version 70926, blocks=901815, us=<IP_ADDRESS>:45328, peer=137
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
receive version message: /SAPP Core:<IP_ADDRESS>/: version 70926, blocks=901815, us=<IP_ADDRESS>:45328, peer=138
Added time data, samples 84, offset +0 (+0 minutes)
asking peer for sporks
AdvertiseLocal: advertising address <IP_ADDRESS>:45328
Segmentation fault (core dumped)

This issue is solved with version 1.4.1
Closing the issue.


DPL-558 Classify the barcodes based on their relevant tag sets when creating a new sample library

Closes #
Changes proposed in this pull request:

...

[] Add tag-set-select input
[] Add tag select input


controller: Don't require auth for GET /ca-cert

Maybe we should do this: If an auth header is provided for the endpoint, check it so that it still errors out when the auth token is invalid?


How to let jedis knows a rediscluster node was crashed?

hi all:
l was setup a rediscluster with redis-4.0.10
following is cluster nodes:
<IP_ADDRESS>:9001(master)
<IP_ADDRESS>:9002(master)
<IP_ADDRESS>:9003(master)
<IP_ADDRESS>:9004(slave)
<IP_ADDRESS>:9005(slave)
<IP_ADDRESS>:9006(slave)
I was using JedisCluster to connect it with jedis-2.9.0, However when a cluster node(<IP_ADDRESS>:9001) crashed，how to let jedis knows <IP_ADDRESS>:9001 has crashed？

@gaochaoBJ There is not any way to let Jedis know about crash. But Jedis would fail to connect with the crashed node, it would recognize it as unreachable.


Username and Password

I perform a ./submarine.sh and pointed my browser to the URL, however I'm having issues with logging on.
I try to create an account, however after I enter my username and password, it never lets me log on.

@vinhdiesal welcome to the Submarine
You could install submarine on K8s by helm install submarine ./helm-charts/submarine, refer to https://github.com/apache/submarine/blob/master/docs/userdocs/k8s/helm.md
And then log in to the workbench with default username admin, password admin
If you faced any problem, let me know.

I installed helm and access the submarine login page at localhost:8080, however I username:: admin and password admin is not working.

@vinhdiesal Did you make sure all pods start properly?
Could I see the output of kubectl get pods

Here are the results of get pod
default                pod/notebook-controller-deployment-55c8b5f57f-dnk8p       1/1     Running             1          41h
default                pod/pytorch-operator-565d9769cc-zlmgh                     1/1     Running             3          41h
default                pod/submarine-database-75b9d48759-sqftf                   1/1     Running             1          41h
default                pod/submarine-server-b464b7cd-xjg4v                       1/1     Running             1          41h
default                pod/tf-job-operator-787b45dc6b-cghxr                      1/1     Running             5          41h

@vinhdiesal Could you attach to the database container and connect to the MySQL service then execute select * from sys_user;?


Fix/1078 fail immediately on 403

Fixes issue https://github.com/ably/ably-cocoa/issues/1078

@maratal can you fix (or disable) those red tests?

Maybe we'll consider this situation as "all test passed"? @QuintinWillison @lukasz-szyszkowski


Fixed a couple of typos

added missing semicolon and updated the pool and job names in the corresponding delete functions

Hi @yossidahan, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;


Fix Authentication ID resolver for GraphQL

The query that was failing is this:
{
	sources(filter: { name: "id", operation: "eq", value: "138" }) {
		applications {
			application_type_id
			id
			availability_status_error
			availability_status
			paused_at
			authentications {
				id
			}
		}
	}
}

which was returning:
{
	"data": {
		"sources": [
			{
				"applications": [
					{
						"application_type_id": "2",
						"id": "245",
						"availability_status_error": "",
						"availability_status": "",
						"paused_at": null,
						"authentications": [
							{
								"id": ""
							}
						]
					}
				]
			}
		]
	}
}

Notice the "" on Authentication ID. This was being caused by the resolver incorrectly pulling the string ID we have on the Authentication struct.
So what I did was force the resolver to be generated via editing gqlgen.yml - ran make generate then implemented the check.

After the fix the response looks great:
{
	"data": {
		"sources": [
			{
				"applications": [
					{
						"application_type_id": "2",
						"id": "245",
						"availability_status_error": "",
						"availability_status": "",
						"paused_at": null,
						"authentications": [
							{
								"id": "362"
							}
						]
					}
				]
			}
		]
	}
}

cc @lpichler @MikelAlejoBR @petracihalova
This is what it looks like when a field isn't quite working right in the graphql implementation. Merging to get the UI working.


Add Krikri::OAIParserHeaders mixin to QDC and MODS parsers

:+1:
Commit message?

is that any better? :smile_cat:

:rocket:

:green_apple:


ansible: <IP_ADDRESS> -> <IP_ADDRESS>

Motivation for this change
Bump to the latest upstream release version.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[x] macOS
[x] other Linux distributions

[x] N/A Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

built locally. Tested with ansible -m ping. Merging! Thanks for the update.

Built locally, tested with ansible -m ping. Everything worked, so merging. Thanks for the update!


Implemented Inspectlet tracking service

Basic user identification
Added tests

@njam please review

@fauvel lgtm. An enable/disable flag in the service configuration would be helpful? Or will this be removed after the tests?

The enabling/disabling of tracking services is being handled by CM_Service_Trackings.

Tagged 1.117.5.


component groups not really removed

if I create a component group "foo"  then delete it, when i try to recreate it i get:
Oups. Il s'est passé quelque chose avec ce composantgroupe de composants.

Le champ name est déjà utilisé.

that translates to this field name is already used.

We soft delete components, but have no way of reviving them.

confirmed as working, thanks.


Try to fix TagBot

alternative to https://github.com/beacon-biosignals/SlackThreads.jl/pull/11

Let's try this


compute so slowly

I ran the video_tracking.py with GPU. But it worked so slowly. The log's output is below:
Time required: 860.9sec
6235 vertices and 1 classes and 6536778 edges
starting objective: -4550.940549
....pair updates: 100.195555
....new sets: 386.270724
....updating class labels: 0.000000
..new objective: -5037.406828
....pair updates: 32.952381
....new sets: 0.000000
....updating class labels: 0.000000
..new objective: -5070.359209
....pair updates: 6.934516
....new sets: 0.000000
....updating class labels: 0.000000
..new objective: -5077.293725
....pair updates: 0.159989
....new sets: 0.000000
....updating class labels: 0.000000
..new objective: -5077.453715
....pair updates: 0.232185
....new sets: 0.000000
....updating class labels: 0.000000
..new objective: -5077.685900
Objective: -5077.685900
num_people:  1839
Object 0 tracked at [666,275, 735,546]
Object 1 tracked at [632,25, 705,349]
Object 2 tracked at [124,451, 232,683]
Object 3 tracked at [568,285, 671,514]
Object 4 tracked at [389,315, 443,628]
is_new_person!
is_new_person!
People(this frame): 7
People(cumulative): 7
Frame: 1/72
Time required: 1674.7sec
6186 vertices and 1 classes and 6411429 edges
starting objective: -4521.743644
....pair updates: 72.095567
....new sets: 417.133020
....updating class labels: 0.000000
..new objective: -5010.972232

....pair updates: 27.561003
....new sets: 1.150275
....updating class labels: 0.000000
..new objective: -5039.683510

Did i run the demo with wrong way?   I followed the guidance "python3 video_tracking.py -f 'test_video_01f.mov'".

@junedgar I have meet the same problem,but I run the code with CPU the time required is 577.5 sec. How did you run the code with GPU?

I've met the same problem, I solve this by clone the original repo: pose_tensorflow and copy the tracking related code to repo:pose_tensorflow. You can give it a try. it works for me.
I guess that problem comes from some configuration of pose_tensorflow used in this project.


Automatic build of docker images fails

Currently, most automatic docker image builds fail. See https://hub.docker.com/r/owlbarn/owl/builds/
The reason is due to the -llapacke linking option. This linking option only make senses on Ubuntu because the binary installation of OpenBLAS on Ubuntu does not include Lapacke so we have to install lapacke seprately.
However, for other Linux distributions, separate Lapacke is not needed since OpenBLAS binary already includes all the functions. -llapacke linking option then will cause linking error on non-ubuntu systems.

I ran into a similar issue when compiling owl with the latest openblas built from source.
I got an error /usr/bin/ld: cannot find -llapacke.
I had to remove -llapacke from configure.ml to make it work:
diff --git a/src/owl/config/configure.ml b/src/owl/config/configure.ml
index 5df90be5..6e7f1905 100644
--- a/src/owl/config/configure.ml
+++ b/src/owl/config/configure.ml
@@ -48,7 +48,7 @@ let get_default_libs c =
     "-lm";
   ] in
   get_os_type c |> function
-  | ("linux"|"linux_elf") -> "-llapacke" :: ls
+  | ("linux"|"linux_elf") -> ls
   | (""|"macosx"|"mingw64") -> ls
   | s -> failwith ("get_default_libs: unknown system "^s)

Maybe configurator could detect whether -llapacke is needed by trying to compile some small c programs.

Installation process still needs a lot of work, software configuration and dependency is always a pain on different platforms, especially for complex software like Owl. I was unfortunately overwhelmed by the core development work so cannot really sort this out.
Help is appreciated.

I gave this a go using the method I've described above, and it compiled on my machine - wrote a small c program that prints out the LAPACK version:
diff --git a/src/owl/config/configure.ml b/src/owl/config/configure.ml
index 5df90be5..0fe07933 100644
--- a/src/owl/config/configure.ml
+++ b/src/owl/config/configure.ml
@@ -42,13 +42,27 @@ let get_default_cflags _c = [
 ]

+let openblas_includes_lapacke c =
+  C.c_test c ~link_flags:["-lopenblas"] {|
+#include <lapacke.h>
+#include <stdio.h>
+
+int main(void) {
+  lapack_int vers_major = 0, vers_minor = 0, vers_patch = 0;
+  LAPACK_ilaver(&vers_major, &vers_minor, &vers_patch);
+  printf("LAPACK version: major=%d, minor=%d, patch=%d\n", vers_major, vers_minor, vers_patch);
+  return 0;
+}
+|}
+
 let get_default_libs c =
   let ls = [
     "-lopenblas";
     "-lm";
   ] in
   get_os_type c |> function
-  | ("linux"|"linux_elf") -> "-llapacke" :: ls
+  | ("linux"|"linux_elf") ->
+    if openblas_includes_lapacke c then ls else "-llapacke" :: ls
   | (""|"macosx"|"mingw64") -> ls
   | s -> failwith ("get_default_libs: unknown system "^s)

I'll try to test this a bit more.


API v2:  add "gateway" entities

As discussed with @csantanapr,
In API v2 we plan to add support for "API Gateways" ... that is, a way to declaratively specify a mapping between a set of whisk assets (actions, triggers) and a REST API.
The general architecture would have two features:
1)  a "gateway descriptor", an artifact which describes the mapping between the REST API and OpenWhisk stuff.   This will be based on OpenAPI/swagger.
2) an "API Gateway" service, which implements the mapping.   This can be based on , say, nginx and OpenResty.
The OpenWhisk system will manage and persist entities which are "gateway descriptors" ... that is, extended swagger files.
For now, let's call these entities "gateways" ... we can debate and change the name if someone has a better idea.
We will add "gateway" entities to the set of entities managed by the OW API, which currently includes actions, triggers, rules, and packages.
This issue is intended to track the addition to the OW API to track gateway entities.
As an initial proposal, we would add CRUD REST as usual to the paths:
/openwhisk/namespaces/{ns}/gateways/{gatewayName}
So to be consistent with the rest of the API, we'd have the usual REST Verbs for GET and DELETE.    POST would be used to create or update a gateway entity, where the form body is the extended swagger object that is the gateway descriptor.   Let's not discuss PUT vs. POST REST philosophy in this issue, please ? :)
We intended to dogfood the implementation of the gateway management service ... we will introduce OW "system" actions which manage the persistence of these gateway entities, in a couchdb/cloudant database.
Work items include:

[ ] Building the CRUD OW actions for gateway artifacts
  introducing v2 of the OW API (technically not necessary since this is a non-breaking addition to the API)
[ ] hook up routes in the controller to the CRUD actions
[ ] ensure the gateway actions are only available to a privileged "system" user, not normal users.

Step 2 of the API design:
Each gateway entity will include at least a collection of entities called routes.   A route will specify at least an HTTP Verb, an OW action, and some information about parameter mapping.
The API will support the usual CRUD OW operations on individual routes via:
/openwhisk/namespaces/{ns}/gateways/{gatewayName/routes/{id}

thanks for the writeup @sjfink .
a few thoughts / comments on this:

naming: instead of gateway', what about calling it '(api-)mapping'? the rationale is...we're not allow crud operations of gateways or descriptors of gateways, but rather of these mappings?
have we thought through what the master record of these mappings is going to be? eg if we allow creating them via the ow api -- where would we be storing them? e.g. if we store them in the ow db and in the gw itself, we might run into integrity problem given users can also interact with the gw without going through the ow api.
cardinality / lifecycle dependency: what constitutes the boundaries of a mapping? eg if i execute wsk action restify <actionname>, i assume that is going to result in the creation of mapping for that action, right? how would i add more routes to a mapping (eg would i have to specify the mapping name (to your earlier point) as part of wsk action restify? can a mapping refer to multiple actions (i think the answer should probably be 'yes', given a mapping is imho an expression of an api) ?

comment to track naming suggestions for the entity in our REST API which is a "collection of routes".  Please edit this comment to add more suggestions.
Options include:

gateway
mapping
route-collection
route-set
api-mapping
api-map
....

if we store them in the ow db and in the gw itself, we might run into integrity problems

Yes, there should be a single database which is the source of truth, and a single service which maintains the source of truth.   For now, the OW database will be the source of truth since there is no other option.

cardinality

Let's restrict this issue to the API, not the CLI or UX.   From the API, I hope the API design above is clear that a "route collection ('gateway' entity)" contains a set of routes.

Is this the appropriate issue in which to discuss the RAS design for the backend route management actions?  Since these are effectively OpenWhisk components, integrating the action logging with the OpenWhisk system logging would be important (Kibana access).  Also, we may need to consider some sort of "workflow" id, which is another correlator that wraps 1 or more actions - to handle the case when route management actions invoke other actions.

@mdeuser let's keep this issue focused on the API design, and move implementation stuff to separate issues.

Reading this thread got me wondering if the intent is to combine all concerns into a single database. From a microservice architecture perspective I think we could be dealing with distinct concerns that could be isolated in distinct microservices should we chose to. API Management may bring extra concerns on top of serverless ones, and I'm listing a few bellow:

restification - defining RESTful endpoints -> which I think is what this thread intends to solve, but feel free to keep me honest.
API Facade - a pattern for combining multiple endpoints into a single API . I think @mbehrendt might have referred to this when he asked how would i add more routes to a mapping
Traffic Management -Throttling and Rate limiting plans which are a combination of:

API plans - rules around a single API
Application plans - rules concerning applications that use an API
User plans - rules concerning the end-users that use and application that consumes an API

Application AuthN and AuthZ - how do applications authenticate ? API-KEY, OAuth Tokens.
Users AuthZ - how to authorize users to consume an API. This is usually in a relation to a User plan. ( i.e.  applications may want to limit free subscribers more than the paid ones )

So if we implement all these into OW ( starting with restification for now but possibly growing to the other aspects ) then would it make it easy to swap API Management implementations later ?

webactions and API gw integration has landed long ago now.


Fix typing for hasProperty assertion.

Fixes #781

So what do we need to merge this?

@Turbo87 would you mind cutting a release which includes this? 🙏 Would love to take advantage of it in a small library I'm open-sourcing!

v1.5.0 should be out in a couple of minutes once CI is done :)

Thank you! Really appreciate it!


Could U sell BPMN.Sharp library source code.

Could U sell BPMN.Sharp library source code.
And how much it cost ???

BPMN.Sharp is another project separate from BPMN View. BPMN.Sharp library is freely available from NuGet under loyal MIT license suitable for personal and commercial usage. Access to source code of BPMN.Sharp is negotiable as a part of large enterprise projects. It is not offered standalone.


Is Yew compatible with other browsers than Chrome?

hello, I tried to create a simple app and compiled correctly, it only worked on Chrome, and only on Chrome, when I tried to run the app on other browsers it didn't work.
I tried to change the versions of Yew 0.15 and 0.16 but it didn't work, even using the stdweb.
Edge console output:

Opera still the same:

Maybe you should give more information which template are you using to create the app. You can try yew-template-parcel at least it works in Chrome, Firefox, Safari and Internet Edge

Thanks, ive builded this template and now works fine, routes too... but, ill not close this issue now, i need to understand what i have maded wrong in my project, to post here, and if i can use this framework without template, i think is more clean use without a template to this small project, ok?

Thanks for the issue @SamukaDEV! Templates are not required so we aim to have a good experience across all browsers.
Could you please create an example repo that has this issue? That would help determine the cause

Thanks for the issue @SamukaDEV! Templates are not required so we aim to have a good experience across all browsers.
Could you please create an example repo that has this issue? That would help determine the cause

@jstarry ill try, im not pro in github haha
and learned Rust only for 4 days, my project is a simple TODO app, and i dont know if the error is in some code that o have writed! 😅

https://github.com/SamukaDEV/wasm-app
@jstarry
repo with the current problematic app!
maybe im writing some code wrong i think, but still the same! compiling to Chrome, not others
Obs: this is without the template! ive make some changes to aproximate!

Oh my god, thanks for the patience, ive founded the error, really is my code! XD 😅😅


Merging git support to main branch

Merging git support to main branch
Will be version 1.2 when merged

Codecov Report

Merging #51 (18ee269) into main (24c0030) will decrease coverage by 22.71%.
The diff coverage is 4.76%.

@@             Coverage Diff             @@
##             main      #51       +/-   ##
===========================================
- Coverage   84.81%   62.09%   -22.72%
===========================================
  Files           4        5        +1
  Lines         270      372      +102
===========================================
+ Hits          229      231        +2
- Misses         41      141      +100

Impacted Files
Coverage Δ

git_algo_rgb_plot.py
0.00% <0.00%> (ø)

merge_csv.py
65.16% <100.00%> (+0.80%)
:arrow_up:

Continue to review full report at Codecov.

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


Pasting unicode characters not supported by font into conemu results in invalid raw data

Following up on #2286, there is another issue where pasting content that is not supported by the current console font results in invalid data being transferred to WSL.
Note that this is not a report about broken rendering of unicode/emoji glyphs, etc. This is about the raw data that is being transferred become corrupt on paste.
As an example, copy this emoji to the clipboard 🤷 then follow the steps below:
$ cat | hexdump -C

At the cat prompt, paste the emoji from the clipboard, press Enter, then hit ctrl+D to end the cat read from stdin.
The results are
mqudsi@Blitzkrieg /m/d/G/paypal> cat | hexdump -C
��
00000000  ef bf bd ef bf bd 0a                              |.......|
00000007

While the 🤷 cannot be rendered by my console font, that should not preclude it from being used (though not correctly represented). However, in this case the "symbol not found" unicode character is put in its place, and that is what comes out in the resulting hex dump.

This should be resolved as of Insiders Build 17101.