isort should support alphabetical-only sorting

I have some codebases where the naming conventions don't follow the expected constant/class/function naming patterns, so isort interleaves the imports weirdly when it tries to guess the type of an imported name based on its capitalisation.
I would like to be able to (optionally) tell isort to do a pure alpha-sort.

Hi @OddBloke,
isort has a couple of options to enable what you want:
order_by_type: False <- This will tell isort not to care about the types of imports
force_alphabetical_sort: True <- forces all imports to be sorted as a single section, instead of within other groups (such as straight vs from
Thanks!
~Timothy

Thanks!


sqlcmd exits with 0 on error

I am not sure where to report this, I recognize sql-docs is not likely the right place, please point me in the correct direction.
sqlcmd exits with a 0 instead of 1 (or something else) when errors happen such as RESTORE DATABASE is terminating abnormally. which makes bash scripting problematic.  Since the script doesn't know to exit when something fails and marches on.

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

ID: 39bb4ba1-ae62-07a3-f79a-138f14cf2f10
Version Independent ID: beaa4e7d-e771-cc96-0e59-34d9b1d5e8cc
Content: Install SQL Server command-line tools on Linux - SQL Server
Content Source: docs/linux/sql-server-linux-setup-tools.md
Product: sql
Technology: linux
GitHub Login: @VanMSFT
Microsoft Alias: vanto

@jonfen -- Jonathon, thank you for your feedback.  Please consider these resources for scripting assistance:

SQL Server on Microsoft Q&A
DBA Stack Exchange
Stack Overflow

This is probably the best place to raise your concern, as it involves product code rather than documentation:

SQL Server Feedback

cc @VanMSFT for awareness
I am closing this issue now.  You are welcome to @ mention me for any followup.
We hope to hear from you again.


Humble: MoveIt2 Getting Started Tutorial - colcon build failed(moveit_kinematics)

Description
Not able to build the Colcon workspace, even if i'm following the tutorial at
Getting started tutorial
Overview of your issue here.
Your environment

ROS Distro: Humble
OS Version: Ubuntu 22.04
Source build, (I've tried both main and humble)

Steps to reproduce
Follow the tutorial Getting started tutorial
Expected behaviour
Build colcon workspace without error.

This should be resolved now by new versions of generate_parameter_library fixing the bug that sparked this.


"type": "cubemap"  pattern， Whether to support network pictures？

What's a "network picture"?

Do not load local images, use https network resources

What's a "network picture"?什么是“网络图片”？
Do not load local images, use https network resources,

use https network resources

That's the typical usage. The cube map example loads images over HTTPS:
https://pannellum.org/documentation/examples/cube-map/

Okay, thank you. I've taken care of that


Datagrid as component in form component - filter submit bug

I have a form component and inside that i am creating datagrid component. When i want to submit a form or add container with button to WebChemistry/Multiplier (its a replicator) the filter is submitted even there is no filter... After filter submit any form operation is skipped (data save, my snippets refresh, etc.)
$grid = new DataGrid();
        $this->addComponent($grid, $name);
        $grid->setStrictSessionFilterValues(false);
        $grid->setPagination(false);
        $grid->setRememberState(false);
        $grid->setAutoSubmit(false);

Any idea what to do with this bug? Or am i doing something wrong?

So basically you have nested forms because the datagrid itself is a form. Not sure if this behavior is indeed supported. Even HTML5 itself does not support this feature.
From top of my head, you could modify the datagrid template (you do not use filters anyway) in which you would remove the wrapping form of the datagrid.. not sure thou how that would turn out

public static function removeFormElementsFromDatagrid(string $html): string
{
  return \Nette\Utils\Strings::replace($html, [
    '/<form\s+.*>+/' => '',
    '/<input type="hidden"\s+.*-->/' => '',
    '/<\/form>/' => ''
  ], NULL, 1);
}

{capture $grid}
  {control grid}
{/capture}
{$grid|removeFormElementsFromDatagrid|noescape}

Thank you very much. Looks like it works!


Add an asm test suite for Wasmtime

This commit adds a suite of tests at tests/asm/*.wat which is intended to replace the tests in cranelift/filetests/filetests/wasm. Tests are configured differently than before using Wasmtime CLI flags rather than a custom TOML-based configuration scheme. Otherwise though the same shape of tests is supported.
This commit migrates a small handful of tests as a showcase and bulk migration is left for a follow-up.

This was inspired by https://github.com/bytecodealliance/wasmtime/pull/8125 and the discussion there


Add a feature to allow "Weekly book club" Enso projects to be opened directly from a link

Add a feature to allow "Weekly book club" Enso projects to be opened directly from a link

This would probably be accomplished via enso:// links.


Can't add individual songs

Hi There,
I use spotty for ~2 years now. I was never able to add individual songs from the search results.
Anything I can try / do ?

Please report this in Spotty-Plugin and provide more information about what LMS version, what Spotty, step-by-step instructions to reproduce the issue etc.


Add stream_xor_ic functions and Use vec! instead of repeat

:)

Repeat is very slow, using vec! instead of it, will have a considerable performance boost.
before:

after:

@dnaq Can you review this PR?

Can you split this into two different pull requests?

I kept the pr open since I haven’t added the _ic functions yet. Do you want me to reopen the issue?

It has a two years ago issue


Add optional right component to Page component so we can easily pass right buttons in

Current dependencies on/for this PR:

main

PR #1851

PR #1852

PR #1853

PR #1854

PR #1855

PR #1856   👈

PR #1857

This stack of pull requests is managed by Graphite.


remove FirebaseRoot

remove FirebaseRoot type
remove global Firebase object

Fixes #26.
For those lacking context on the change, it's mostly a refactoring to simplify the main Firebase object creation and work around global initialization order.
I'd suggest to look at the example code as a guide for the review:
https://github.com/proppy/firebase-iot-button/blob/remove-global/examples/FirebasePush_ESP8266/FirebasePush_ESP8266.ino
/cc @leedenison @aliafshar @gguuss @beriberikix @tjohns

PTAL


Explicitly creating a new store with PASSWORD_STORE results in a warning

$ PASSWORD_STORE=$PWD gopass init
[init] Initializing a new password store ...
[init] WARNING: Store is already initialized

Is this expected? I'm concerned this will collide with my existing password-store in $HOME using the traditional pass utility. My use-case here is I'm trying to leverage the enhanced team-based features og gopass here and explicitly create a new team-based secrets store for some internal secrets.

What are you trying to do?
If you just run gopass without any environment variable you should be able to interact with your existing password store right away.

I was trying to create a different store from my $HOME/.password-store. sorry if my OP was confusing.

It doesn't allow creation of a parallel store. It just allows sub-store.
~/.password $ gopass init
[init] Initializing a new password store ...
[init] WARNING: Store is already initialized
Please select a private key for encrypting secrets:
[0] gpg - <REDACTED>
[1] gpg - <REDACTED>
Please enter the number of a key (0-1, [q]uit) [0]: 1

Error: failed to initialize store: failed to init store '' at '/home/user/.password-store': failed to initialize new sub store: Found already initialized store at /home/user/.password-store.
You can add secondary stores with gopass init --path <path to secondary store> --store <mount name>: Found already initialized store at /home/user/.password-store.
You can add secondary stores with gopass init --path <path to secondary store> --store <mount name>

That's sadly a very confusing behaviour :/ But thanks for clearing that up!

I'm trying to do the same thing i.e. have my password stores in a directory different to the home directory. @rEnr3n can you explain what is happening or how to clone a password store to a directory other than the home directory? So far nothing I've tried works.

I don't think it allows you to change your root store. It just allows you to mount substores from other directories. It will look similar to this.
gopass
├── NewStore (/home/vagrant/NewStore)
│   └── test1
└── test1

Root store has 1 secret. One substore with the same secret (copied over).

Here are the commands I ran on a clean vm

gopass (follow the wizard)
gopass generate test1
mkdir NewStore
gopass mounts add NewStore ~/NewStore
cp .password-store/test1.gpg ~/NewStore

For future searchers of this issue:

By default gopass setup will use gpg encryption and git storage. This will create a new password store in $HOME/.local/share/gopass/stores/root and a configuration in $HOME/.config/gopass/config using gpg encryption and git for versioned storage.

You can also specify another directory for the .config and .local folders using the env variable GOPASS_HOMEDIR=/some/other/path


Add content detail for notification (toast)

No content detail for notification (toast). Currently all contents gets put within a heading tag.
https://latest-208.lightningdesignsystem.com/components/notifications#flavor-toast-error-with-details

Fixed in new Toast component.


Optimize SubWallet Performance

Is your feature request related to a problem? Please describe.
Hey, today I notice that the SubWallet extension constantly takes a small amount of CPU  usage does it do some redundant work?
Hope it will be optimized in the next version.

@saltict fix in issue https://github.com/Koniverse/SubWallet-Extension/issues/80


Error in community hosted pipeline

I am having a problem running the community hosted pipeline for PR https://github.com/redhat-openshift-ecosystem/community-operators-prod/pull/3772
The pipeline seems to be failing due to it being unable to find a reviewer. The user in question https://github.com/scottexton still exists and their profile is active.
I am unsure what I can do to resolve this issue
Thanks

Looks like I ran into the same issue: https://github.com/redhat-openshift-ecosystem/community-operators-prod/pull/3866
The logs of the get-ci-reviewer tasks show that the an user is not found, but this user exists in GitHub and also approved the PR.

The bugfix has been already released and the issue with non-existent users is fixed.


Extension Registry has broken extensions

Description
There's a percentage of extensions in the cdr registry that are distributed incorrectly. One of the most prominent ones is the Discord extension because its dist files are missing. I encourage eveyrone to report broken extensions here as well.

#990 is related

I'm getting the following errors when trying to use some of the extensions (install is completed successfully)
Activating extension 'redhat.vscode-yaml' failed: Cannot find module 'vscode-languageclient'.
and
Activating extension 'DavidAnson.vscode-markdownlint' failed: Cannot find module '/config/extensions/davidanson.vscode-markdownlint-0.30.2/bundle'.
These were both working fine with code-server v1


Getting unreachable opcode error when calling into jsvm.testnet

I'm trying to make a call into jsvm.testnet on the example status message contract and getting this error:
❯ near call jsvm.testnet call_js_contract \
    --accountId instanton.testnet \
    --args $(node near-sdk-js/encode_call.js instanton.testnet init '') \
    --base64

Scheduling a call: jsvm.testnet.call_js_contract(aW5zdGFudG9uLnRlc3RuZXQAaW5pdAA=)
Doing account.functionCall()
Receipt: 3F6XonmvVDs8mFeGXxVcn1W17PnH416WD8uYgmt7j5Hu
        Failure [jsvm.testnet]: Error: {"index":0,"kind":{"ExecutionError":"WebAssembly trap: An `unreachable` opcode was executed."}}
ServerTransactionError: {"index":0,"kind":{"ExecutionError":"WebAssembly trap: An `unreachable` opcode was executed."}}
    at Object.parseResultError (/Users/tensor/space/near-cli-js/node_modules/near-api-js/lib/utils/rpc_errors.js:31:29)
    at Account.signAndSendTransactionV2 (/Users/tensor/space/near-cli-js/node_modules/near-api-js/lib/account.js:160:36)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async scheduleFunctionCall (/Users/tensor/space/near-cli-js/commands/call.js:57:38)
    at async Object.handler (/Users/tensor/space/near-cli-js/utils/exit-on-error.js:52:9) {
  type: 'FunctionCallError',
  context: undefined,
  index: 0,
  kind: {
    ExecutionError: 'WebAssembly trap: An `unreachable` opcode was executed.'
  },
  transaction_outcome: {
    block_hash: '6Fboj3nZsE6NNLNYWXDJAC8qkLGUfFXpX4r6ZRaTL6sp',
    id: 'A4nZ5XtcUptfppbggrJkKrpEmNb69KayQRZWQvRkimTs',
    outcome: {
      executor_id: 'instanton.testnet',
      gas_burnt:<PHONE_NUMBER>426,
      logs: [],
      metadata: [Object],
      receipt_ids: [Array],
      status: [Object],
      tokens_burnt: '242800820142600000000'
    },
    proof: [ [Object], [Object], [Object] ]
  }
}

@ailisp any ideas what this could be?

Ahh, so I figured out why I was getting unreachable opcode. When deploying the contract bytes incorrectly or in the wrong encoding, it would result in this error. For example, the following diff makes a huge difference when reading in these bytes:
-   const bytes = readFileSync(base64File);
+   const bytes = readFileSync(base64File).toString();
    const base64Contract = Buffer.from(bytes, 'base64');


Update request: gpodder 3.11.1 → 3.11.2

Package name: gpodder
Latest released version: 3.11.2
Current version on the unstable channel: 3.11.1
Current version on the stable/release channel: 3.10.21
[X] Checked the nixpkgs pull requests

Changes: https://github.com/gpodder/gpodder/releases/tag/3.11.2
Notify maintainers
@svenkeidel
@Mic92

Note for maintainers: Please tag this issue in your PR.

gpodder has been updated to version 3.11.3 in #257872


test: add tests for lock reward receiver for superfluid

Closes: #XXX
What is the purpose of the change
Adds test cases for testing distribution of superfluid gauges that happens in epoch.
Testing and Verifying
New Tests are introduced in this PR
Documentation and Release Note

[ ] Does this pull request introduce a new feature or user-facing behavior changes?
[ ] Changelog entry added to Unreleased section of CHANGELOG.md?

Where is the change documented?

[ ] Specification (x/{module}/README.md)
[ ] Osmosis documentation site
[ ] Code comments?
[ ] N/A

@mattverse can this get revived and then we can merge with one approval?


Software SPI for RFID MRC-522

I have made some changes and come up with the code to interface the RFID module to any pins of arduino (tested on uno and nano) using Software SPI concept. This is really useful when the arduino's hardware (actual) SPI pins are already used by other sensors/components.
find out more at: https://github.com/abhaysbharadwaj/RFID-MRC522

Tested, works perfectly here. +1 to add it into current code. Thanks for share!

Great! your welcome!

Can be closed.


navigation.xml stated that it is utf-16 but is it really utf-16?

I checked old version and it looks like utf-16 but new one looks like utf-8 to me. Not sure if this is important

I think I caused that, I updated the file itself to utf-8 but didn't realize there was a declaration in the file itself for utf-16.
The problem I was trying to solve at the time was that git/github was treating utf-16 xml file as binary and not showing diffs.
So probably I will just change the declaration in the file to utf-8 so it matches the actual file format.


Fix inaccurate comment in custom_ui_material.wgsl shader

Objective

Modify a comment in the shader file to describe what the shader actually does
Fixes #16830

Solution

Changed the comment.

Testing

Testing is not relevant to fixing comments (as long as the comment is accurate)

This is an improvement, but to me it sounds like it is claiming some responsibility in the shader for stuff that is happening in rust code in the example.
The shader is just responsible for drawing the bar according to those material properties that are modified there.
This distinction is sort of relevant to #16829 actually, because this sort of animation could be done in the shader, and people probably want to know how to do that, but that's not what's going on here at the moment.

So it's better to describe as "The shader draws a progress bar in accordance with the data from the game/rust side of the game"?

Maybe something like

Draws a progress bar with properties defined in CustomUiMaterial.


Update Puppeteer to v20.7.2.

A quick PR to fix #660.
The only thing not updated is that headless will eventually change to a new version; we can use headless: "new" to use it.
https://developer.chrome.com/articles/new-headless/

The only thing not updated is that headless will eventually change to a new version; we can use headless: "new" to use it.

From what I understand (just to clarify what I think you're describing already), we can make that temporary change if we want to try out the new behavior (which would be a great idea). If not, our current code will just default to the new headless when the old one gets removed.
If we want to try out the new version sooner, we should make that an issue so we don't lose track of it. Maybe put a date on it or something.


Allow per project cache

@BenTheElder mentioned to me that k8s is using a different remote cache for different projects and they distinguish between projects via a path component in the URL:
https://cache.com/<project name>/(ac|cas)/
I think that's a good idea and I believe @nicolov already laid the foundations for that.

I started a prove-of-concept patch for on-disk storage here: https://github.com/gjasny/bazel-remote/tree/project_name
I noticed that for cas objects the cache enforces that the key equals the hashed content, so adding project name support there does not make much sense.

the CAS only needs to enforce this for the last segment in the URL, so it's pretty easy to do this. there's an implementation here that inspired this issue: https://github.com/kubernetes/test-infra/tree/master/greenhouse

Looking through some logs with this in place I see the following:
020/09/08 11:44:29 REMAP AC HASH ed3360a7998f204de2c2f3311a2d8563d4f87bdfb9b4b442daee115f9c0bdb8a : centos-v2-Amd => 4699610a00158646b15c49ae315da98c
658db3cd2b0f376cc48de0c65f692993
2020/09/08 11:44:29  PUT 200     X.X.X.X /centos-v2-Amd/ac/ed3360a7998f204de2c2f3311a2d8563d4f87bdfb9b4b442daee115f9c0bdb8a
2020/09/08 11:44:29 S3 UPLOAD bazel-remote-prod bazel/cas/929d6d967df38d7d70128171a34ea8794603e05f5689d7996d06639eb05375b7 OK
2020/09/08 11:44:29 REMAP AC HASH a9c38c68068a703d5a3bcbba3729d0f21d78f515ef91c88fb5ebf798389caeaa : centos-v2-Amd => 105a6b03847b7df71ba1f2c7f3769f88
69405aa859abf4965344ef1e81cb7902
2020/09/08 11:44:29 S3 UPLOAD bazel-remote-prod bazel/cas/ed3360a7998f204de2c2f3311a2d8563d4f87bdfb9b4b442daee115f9c0bdb8a OK

4699610a00158646b15c49ae315da98c was mangled to ed3360a7998f204de2c2f3311a2d8563d4f87bdfb9b4b442daee115f9c0bdb8a
PUT 200     X.X.X.X /centos-v2-Amd/ac/ed3360[...] happens because the original request path is what is logged and that doesn't contain the mangled hash
2020/09/08 11:44:29 S3 UPLOAD bazel-remote-prod bazel/cas/ed3360[...] OK is the one I don't understand. Why would we want to put the object to S3 with the original hash rather than a mangled one?

@sitsofe: 2020/09/08 11:44:29 S3 UPLOAD bazel-remote-prod bazel/cas/ed3360[...] OK is a "CAS" blob (identified by the SHA256 of the data), which we do not mangle because the risk of key collision is extremely small.
This flag only mangles "AC" hash keys, which are prone to key collisions if the client can't hash all of the inputs.


Fill in Wrath instance patterns for at least the dungeons available on launch

In globals.lua, addon.groupieUnflippedDungeonPatterns needs entries added for all wrath dungeons/raids available on launch, space separated strings.

https://docs.google.com/spreadsheets/d/1oM6i5hlA483Hyo-_JHzCYVHWQCPCR2RQOHwHlzhqeCo/edit#gid=164546189


changed login signup ui

I have changed UI of login and signup page
Pls check

Do you have any specific issue that I can solve


Ask a question

How can I add the grpc customer in ibevent?

The "new issue" form clearly asks users not to post questions as github issues. Next time please follow the instructions and use the channels mentioned below to ask questions.

PLEASE DO NOT POST A QUESTION HERE. This form is for bug reports and feature requests ONLY!
For general questions and troubleshooting, please ask/look for answers at StackOverflow, with "grpc" tag: https://stackoverflow.com/questions/tagged/grpc
For questions that specifically need to be answered by gRPC team members, please ask/look for answers at grpc.io mailing list: https://groups.google.com/forum/#!forum/grpc-io


change left and right buttons on carousel

just want to give it a different set of buttons. and preferably bigger

completed in commit ac62e21. however, i didn't change the buttons just increased the size and changed the color


Issue 427

Overview
Updates string formatting to use .format() convention.
Related Issue / Discussion
#427
Additional Information
Contribution Agreement
(as per https://github.com/geopython/pywps/blob/master/CONTRIBUTING.rst#contributions-and-licensing)

[x] I'd like to contribute [feature X|bugfix Y|docs|something else] to PyWPS. I confirm that my contributions to PyWPS will be compatible with the PyWPS license guidelines at the time of contribution.
[x] I have already previously agreed to the PyWPS Contributions and Licensing Guidelines

Coverage remained the same at 74.906% when pulling fa56aeaec52d3b3f6bc97dd5c98de84df0b814cd on tomkralidis:issue-427 into 1d23e09da0ec1f43bee2a62cce078f5a957d26fe on geopython:master.


remove react warnings about key in the db schema explorer

Coverage remained the same at 87.839% when pulling 135b35052d863170f12294f6dd346c8d10a84eb3 on f205-dbschema into 4759c9a5d134fac1898b09eb00a6cf7918c3c6cd on master.


Update earth-science-data-category.ttl

Addition of Geothermal Energy
@SalEdwards01 please review addition as SME/End User.
@LukeHauck please do technical check on added concept.
@lisa-woody FYI: vocabulary enhancement for reports
Closes #227
esdc:geothermal-energy a skos:Concept ;
    skos:broader esdc:geothermics-and-radiometrics ;
    skos:definition "The study of heatflow in the Earth's upper crust in the context of energy generation, and methods, materials and operations used in extraction of energy from geothermal sources."@en ;
    skos:inScheme <http://linked.data.gov.au/def/earth-science-data-category> ;
    skos:altLabel "Geothermal"@en ;
    skos:prefLabel "Geothermal Energy"@en .

Thanks Vance
the definition and additions of geothermal energy (geothermic and radiometrics) to the earth science data category vocab is great.
Reviewed and Approved

Thanks Vance
the definition and additions of geothermal energy (geothermic and radiometrics) to the earth science data category vocab is great.
Reviewed and Approved

Thanks @SalEdwards01 can you please click the review button and do the official approval that GitHub tracks? Cheers


vector in-place operations don't check for overlap

leads to problems:
 c(1 until c.length) :+= c(0 until c.length-1)
`
currently does the wrong thing

I also noticed that. But make sure that you wrap such a check into a "if (this.data eq that.data)" to make sure more costly checks are only executed when there is a chance for overlaps.

yep, and also that (this ne that) for elementwise operations
On Mon, Sep 21, 2015 at 1:57 AM, Matthias Langer<EMAIL_ADDRESS>wrote:

I also noticed that. But make sure that you wrap such a check into a "if
(this.data eq that.data)" to make sure more costly checks are only executed
when there is a chance for overlaps.
—
Reply to this email directly or view it on GitHub
https://github.com/scalanlp/breeze/issues/448#issuecomment-141915443.


Investigate better upcoming funding cycle (based on active ballot)

Users are wasting gas on reconfigurations when theyre using >0 day ballots. This is because the Upcoming tab doesn't reflect the latest configuration; instead, it's the queued funding cycle.
With > 0 day ballots, latest config doesnt necessarily == queued config.
We can use latestConfiguredFundingCycleOf to get the latest config, and show a badge in the UI indicating the ballot state.

https://discord.com/channels/775859454780244028/942522503258054686/981741108717572116


custom events tracking on accordions

The accordion open/close events on the covid site are tracked as GA custom events.
The editorial team finds this useful in determining if a piece of content is being read or not. They may decide to remove or reformat content based on this information.
There is not yet any code on the cannabis site to instrument the accordions so that they trigger these events.
We should

add code to track this event to both monolith and headless sites
review custom event tracking with Britt to see if there are other items we missed
make sure data is flowing through to the datastudio dashboards so stakeholders can view it easily

check if content navigation anchor links are being tracked in GA already

Verified with Britt we do need to add custom events for this, made code change on covid we can imitate on cannabis: https://github.com/cagov/covid19/pull/5007

Opened PR for this original task: https://github.com/cagov/cannabis.ca.gov/pull/313

discovered a related issue, opened new ticket to standardize event tracking since we don't have the event logic in headless or drought that is in the wordpress theme https://github.com/cagov/cannabis.ca.gov/issues/314


Replace print with proper log command

Description
This PR replaces print() used across different plugins and examples. It turned out that another person also worked on this, so there is another PR already #537 , but my uses developer.log() in a slightly different way to properly show information about error.
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[ ] The analyzer (flutter analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
[x] No, this is not a breaking change.

Closing this one as it duplicates the other PR


update testing guide of contirbution guide

CuPy verseion of https://github.com/chainer/chainer/pull/3625

Nose -> PyTest.
Removed pararell testing section, as it is inefficient.
See also: https://github.com/chainer/chainer-test/pull/315#issuecomment-330204874 and https://github.com/chainer/chainer-test/pull/320
Fix description on how Travis-CI works.

Please merge https://github.com/cupy/cupy/pull/662 first.

LGTM


PlaybackSupportFragment - ControlsOverlay autohide only at onResume()

The PlaybackSupportFragment only autohides if it's resumed. The late PlaybackOverlaySupportFragment was autohiding also after the fade in animation ended or the user stopped interacting with the playback controls. Will the autohide behaviour be readded? Users were pretty much used with the playback controls autohiding.

Closing as this discussion is related to the leanback library and not necessarily the sample. The sample demonstrates the loss in functionality as leanback upgraded.
Continuing discussion on Android TV developer's G+ post


Import main only when necessary

Before, we imported main regardless of whether the index was already complete. Only importing after checking for completion can speed up the work for an already completed index significantly when imports are expensive (e.g., importing torch).
Before:

After:

tried it and it works great -- much faster skipping


How to override default values from custom config settings?

Hi,
This is not an issue but more of a query since I'd like to pass some values to the Cacheable decorator dynamically. These would be defined in a config file and converted into an object. Essentially I have a service which contains several methods I'd like to cache like this:
... @Cacheable({ maxAge: this.config.cacheExpirationTimeInMilliseconds })     getCountries() {         return this.http.get("api/Countries");     } ...
I'm struggling to do that, since I always get an undefined reference on the config object. What should be the proper way to do this? Or better yet, how can I override default values being used by the decorator and what are those values?
Thanks in advance.

Why don't you use Angular environment variables ?

It's a legacy app and I am making some performance improvements, not too much room for refactoring. Would you give me an example of how it would work with environment variables?

Thanks! The second article gave me some ideas 👍


vimPlugins.hare-vim: init at 2022-07-02

Description of changes
Added a new vim plugin: hare-vim
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

[x] 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.11 Release Notes (or backporting 22.05 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.

Apologies, I didn't realize that this file is autogenerated. The issue now is that update.py doesn't generate a fetchFromSourcehut clause, so it uses fetchgit for non-GitHub repos. I've tested generation out and it seems like fetchgit part doesn't indent correctly while being autogenerated, here's an example from the master branch.
This issue needs to be fixed but that gets out of the scope of this PR. Please revert to your original commit and sorry for the noise again :(

Oh, right, next update would undo the indentation and add lots of noise.
Reverted.

@teto Perhaps you're the right person for review here?

Apologies, I didn't realize that this file is autogenerated. The issue now is that update.py doesn't generate a fetchFromSourcehut clause, so it uses fetchgit for non-GitHub repos. I've tested generation out and it seems like fetchgit part doesn't indent correctly while being autogenerated, here's an example from the master branch.

Anyone welcome to fix that. It doesnt block this PR though


Cleanup menu by using submenus

After #510 is merged, we will have a new React component called DropdownMenuRight which allows us to add submenus. This was used to add links to other scadnano versions.
We may also want to start doing that with some of the clutter on other menus, for example the four ways to save to localStorage under File might be cleaner to have as a sub-menu, or grouping the various "Show/Hide" options in View under a single "Show/Hide" submenu.
Originally posted by @dave-doty in https://github.com/UC-Davis-molecular-computing/scadnano/pull/510#discussion_r525249201

Closed via duplicate issue #557.


[SMALLFIX] remove a blank line in DataFileChannel

alluxio-bot, check this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/19581/
Test PASSed.

LGTM


ARROW-3319: [GLib] Add align() to GArrowInputStream and GArrowOutputStream

@shiro615 Can you review this?

It occurred to me that we could make these methods OutputStream::Align or InputStream::Align instead of top level functions. Do you have an opinion?

It's natural that InputStream::Align() and OutputStream::Align() in object oriented API.
But the current AlignStream() in ipc/ isn't bad because this functionality is for IPC.
So both InputStream::Align() and AlignStream() in ipc/ are natural to me.
In Arrow GLib API, I prefer object oriented API because it's natural in Ruby. (Arrow GLib API is mapped to Arrow Ruby API automatically.)

Thanks! I'll merge this.


C60 - Create Networks from 2D Drawing

It is already possible going through the process described in the video, it is possible to unify the steps into a single graph.
https://www.youtube.com/watch?v=FxWa_ngq-d0&feature=youtu.be


Add support for live creating/deleting GlobalSecondaryIndexes

http://aws.amazon.com/releasenotes/Amazon-DynamoDB/1151140518858718

Hi Michael
Just a +1 on this 👍
I'm building an SQL library on top of aws-sdk and using<EMAIL_ADDRESS>for npm tests
and I have
DROP INDEX idx_name ON tbl_name

which translates to aws-sdk .updateTable(...)
{
	"TableName": "tbl_name",
	"GlobalSecondaryIndexUpdates": [
		{
			"Delete": {
				"IndexName": "idx_name"
			}
		}
	]
}

still returns the index in place
would help also just to change theIndexStatus to DELETING
and disable further operations on it,  even if the index is not deleted 😄


added storybook info add-on

see see https://github.com/airbnb/react-dates/issues/171 for details

Coverage remained the same at 87.04% when pulling 6061a339a386e7033ac8ee9bdf8d987cfaacbe94 on jpollard-cs:master into 2d868255608de2877562f997d73d2ad4fa9f647d on airbnb:master.

Coverage remained the same at 87.04% when pulling 221fa5cbb377b6a94bb3819bc293aee42c4db8d1 on jpollard-cs:master into 2d868255608de2877562f997d73d2ad4fa9f647d on airbnb:master.

@ljharb requested updates have been made


Bad background color for multi-diff editor

Testing #203040

/duplicate https://github.com/microsoft/vscode/issues/202137


Create common_run bash script for all run files to use

Want to add a common run bash file at the base level with common functions that each run.sh script will use to avoid duplication
Can start with the following functions but could be more
# Check if oc is installed
log "Checking if OpenShift client is installed"
which oc &>/dev/null
if [[ $? != 0 ]]; then
  log "Looks like OpenShift client is not installed, please install before continuing"
  log "Exiting"
  exit 1
fi

# Check if kubectl is installed
log "Checking if kubernetes client is installed"
which kubectl &>/dev/null
if [[ $? != 0 ]]; then
  log "Looks like Kubernetes client is not installed, please install before continuing"
  log "Exiting"
  exit 1
fi

# Check if cluster exists and print the clusterversion under test
kubectl get clusterversion
if [[ $? -ne 0 ]]; then
  log "Unable to connect to the cluster, please check if it's up and make sure the KUBECONFIG is set correctly"
  exit 1
fi

Fixed by #4.


GSM8k with assertions notebook

Thanks @Shangyint ! left a few comments regarding the notebook. should be good to merge after that.

@arnavsinghvi11 Thanks! Fixed both issues.

Thanks!


can not find import class

Hi
@Salaboy , I build current mast branch , I find here https://github.com/droolsjbpm/jbpm-console-ng/blob/master/jbpm-console-ng-generic/jbpm-console-ng-data-filters-client/src/main/java/org/jbpm/console/ng/df/client/filter/json/DataSetLookupJSONMarshaller.java#L23
This class not exist in dashbuild. Maybe it was be remove. so I can not maven build jbpm-console-ng.
Please check it.
Thanks!

@cristianonicolai Please check it.

Hi @bxf12315, there should be a PR to fix this problem coming out any soon. @nmirasch is working on it.

@cristianonicolai @nmirasch  Thanks , If you need my help, please feel free to let me know

It should be close, because of  @nmirasch fixed


dvc run tool-tip

Fix #1579
I have only made changes to one file for adding  tag -> cmd ref/dvc add for preview of the tooltip formatting
This is because markdown's code syntax conflicts with the  tag in the Tooltip component.
Thus, our only option currently is to lose the code block and make dvc run look like this:

Also, I've kept a link to the cmd ref page of dvc run too in the tooltip so it's easier to navigate in case of more complex doubts by the user.
P.S: Also, a small grammatical correction, that I've added along with this.
@jorgeorpinel @shcheklein

@utkarshsingh99 that ticket is about the term "stage", not "dvc run". Please try to work on the Next priorities in #1255 for now like I mentioned in a GSoD email. Thanks


Run the other roles under the core directory through the molecule framework

In this PR, I'm going to attempt to run the other roles under core through the molecule framework.

[x] precheck
[x] node
[ ] cluster

There's actually no differences between these default/main.yaml files...  So I'm going to create a symlink to keep a single copy
(molecule.venv) ~/ibm-spectrum-scale-install-infra/roles/core# diff ./cluster/vars/main.yml ./common/vars/main.yml
(molecule.venv) ~/ibm-spectrum-scale-install-infra/roles/core# diff ./cluster/vars/main.yml ./node/vars/main.yml
(molecule.venv) ~/ibm-spectrum-scale-install-infra/roles/core# diff ./cluster/vars/main.yml ./precheck/vars/main.yml
(molecule.venv) ~/ibm-spectrum-scale-install-infra/roles/core#

At this point, since this is a new container that i'm running in molecule, there's no tar binary and I fail here:
    TASK [node : install | Extract installation package] ***************************
fatal: [centos7]: FAILED! => {"changed": true, "cmd": ["/tmp/Spectrum_Scale_Advanced-<IP_ADDRESS>-x86_64-Linux-install", "--silent"], "delta": "0:00:00.496278", "end": "2020-03-12 15:26:02.521130", "msg": "non-zero return code", "rc": 1, "start": "2020-03-12 15:26:02.024852", "stderr": "", "stderr_lines": [], "stdout": "ERROR: required command 'tar' is not found in PATH.", "stdout_lines": ["ERROR: required command 'tar' is not found in PATH."]}

    PLAY RECAP *********************************************************************
    centos7                    : ok=29   changed=2    unreachable=0    failed=1    skipped=15   rescued=0    ignored=0

Because we are operating in a container environment, we probably won't be able to build the kernel module because of a few reasons.  I could be running a different OS completely on the host machine running docker
(molecule.venv) root@autogen-ubuntu1604-x-master:~/ibm-spectrum-scale-install-infra/roles/core# cat /etc/*lsb*
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS"

(molecule.venv) root@autogen-ubuntu1604-x-master:~/ibm-spectrum-scale-install-infra/roles/core# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS               NAMES
d9b596e2b566        pycontribs/centos:7   "bash -c 'while true…"   21 seconds ago      Up 20 seconds                           centos7

So the header won't match
[root@centos7 /]# rpm  -qa | grep header
kernel-headers-3.10.0-1062.4.3.el7.x86_64
glibc-headers-2.17-292.el7.x86_64
[root@centos7 /]# rpm  -qa | grep header^C

!# Notice in the container, it's ubuntu :-)
[root@centos7 /]# uname -a
Linux centos7 4.4.0-173-generic #203-Ubuntu SMP Wed Jan 15 02:55:01 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@centos7 /]#

So skip building the kernel when in molecule (cdb763f)

So at this point, molecule can run until:

TASK [cluster : cluster | Create new cluster] **********************************
fatal: [centos7 -> centos7]: FAILED! => {"changed": true, "cmd": ["/usr/lpp/mmfs/bin/mmcrcluster", "-N", "/var/tmp/NodeFile", "-C", "gpfs1.local"], "delta": "0:00:01.420966", "end": "2020-03-12 16:38:11.585209", "msg": "non-zero return code", "rc": 1, "start": "2020-03-12 16:38:10.164243", "stderr": "which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)\nwhich: no pidof in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)\ncentos7:  ssh: connect to host centos7 port 22: Connection refused\r\ncentos7:  lost connection\ncentos7:  mmdsh: Unexpected error from /usr/bin/scp -p /var/mmfs/tmp/sdrfsGen0.mmcrcluster.12761 root@centos7:/var/mmfs/tmp/sdrfsGen0.mmcrcluster.12761. Return code: 1\nmmcrcluster: Command failed. Examine previous error messages to determine cause.", "stderr_lines": ["which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)", "which: no pidof in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)", "centos7:  ssh: connect to host centos7 port 22: Connection refused", "centos7:  lost connection", "centos7:  mmdsh: Unexpected error from /usr/bin/scp -p /var/mmfs/tmp/sdrfsGen0.mmcrcluster.12761 root@centos7:/var/mmfs/tmp/sdrfsGen0.mmcrcluster.12761. Return code: 1", "mmcrcluster: Command failed. Examine previous error messages to determine cause."], "stdout": "mmcrcluster: Performing preliminary node verification ...\nmmcrcluster: Processing quorum and other critical nodes ...", "stdout_lines": ["mmcrcluster: Performing preliminary node verification ...", "mmcrcluster: Processing quorum and other critical nodes ..."]}

So going into the container and doing `mmlcluster` , I see

[root@centos7 /]# mmlscluster
which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
which: no pidof in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
mmlscluster: This node does not belong to a GPFS cluster.
mmlscluster: Command failed. Examine previous error messages to determine cause.

So looks like some pre-reqs are not resolved, let me fix

Ok now those errors are not there, but GPFS isn't starting either,
[root@centos7 /]# mmlscluster
mmlscluster: This node does not belong to a GPFS cluster.
mmlscluster: Command failed. Examine previous error messages to determine cause.
[root@centos7 /]#

let me re-deploy on a CentOS host.

In adding the cluster role, i'm hitting this:
[root@centos7 tmp]# /usr/lpp/mmfs/bin/mmcrcluster -N /var/tmp/NodeFile -C gpfs1.local
mmcrcluster: Performing preliminary node verification ...
mmcrcluster: Processing quorum and other critical nodes ...
centos7:  ssh: connect to host centos7 port 22: Connection refused
centos7:  lost connection
centos7:  mmdsh: Unexpected error from /usr/bin/scp -p /var/mmfs/tmp/sdrfsGen0.mmcrcluster.12862 root@centos7:/var/mmfs/tmp/sdrfsGen0.mmcrcluster.12862. Return code: 1
mmcrcluster: Command failed. Examine previous error messages to determine cause.
[root@centos7 tmp]#

So looks like my container doesn't allow ssh passwordless, let me try and re-enable that....

I'm not sure that I want to continue with the last 2 commits...  I think the last commit may be useful, but the a04ad48  is really cleanup and would cause a huge mess with the merge conflicts.
So let me create m3 branch ... off of ae5bde3 and continue...
Victors-MBP-2:ibm-spectrum-scale-install-infra vhu$ git checkout ae5bde33e32399a72c202940423ce595b6e7dbb4
Note: checking out 'ae5bde33e32399a72c202940423ce595b6e7dbb4'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at ae5bde3 Re-enable the task prepare ssh enable login, support yum
Victors-MBP-2:ibm-spectrum-scale-install-infra vhu$ git checkout -b m3
Switched to a new branch 'm3'
Victors-MBP-2:ibm-spectrum-scale-install-infra vhu$

I'm not sure that I want to continue with the last 2 commits...  I think the last commit may be useful, but the a04ad48  is really cleanup and would cause a huge mess with the merge conflicts.
So let me create m3 branch ... off of ae5bde3 and continue...
Victors-MBP-2:ibm-spectrum-scale-install-infra vhu$ git checkout ae5bde33e32399a72c202940423ce595b6e7dbb4
Note: checking out 'ae5bde33e32399a72c202940423ce595b6e7dbb4'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at ae5bde3 Re-enable the task prepare ssh enable login, support yum
Victors-MBP-2:ibm-spectrum-scale-install-infra vhu$ git checkout -b m3
Switched to a new branch 'm3'
Victors-MBP-2:ibm-spectrum-scale-install-infra vhu$


turn warning into log when alternate_morphologies is not present

That message in essence should not be a warning message to confuse the users. It is only meaningful in debugging.

Codecov Report
Patch coverage: 100.00% and project coverage change: -0.01% :warning:

Comparison is base (e617823) 82.15% compared to head (3d3c015) 82.15%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #78      +/-   ##
==========================================
- Coverage   82.15%   82.15%   -0.01%
==========================================
  Files          73       73
  Lines        5088     5087       -1
==========================================
- Hits         4180     4179       -1
  Misses        908      908

Files Changed
Coverage Δ

bluecellulab/circuit/circuit_access.py
59.67% <100.00%> (-0.11%)
:arrow_down:

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


qat_engine in external polling

this does not work.
when in external polling mode, it failed to retrieve polling FD.
the issue is as follow:

after engine is inited, the eventPoll_ns is running. this thread needs to remove when external polling mode is enabled.
I have modified codes when external polling mode is enabled, it will first call qat_engine_finish before external_polling flag is set to one.
now, the issue is one of the qat instance is not running. I am still debugging this issue. If you can provide some suggestions, that is helpful.
thanks

Tseng

Hi Tseng,
If you want to use the external polling mode you will need to use the control command ENABLE_POLLING before the initialization of the engine.
From the documentation of ENABLE_POLLING contained in the README:
    If required this message must be sent between
    engine creation and engine initialization.

After the initialization, you can use the control message GET_POLLING_FD to obtain the file descriptor.
Does this help to solve your issue?
We don't have support for switching from internal polling to external polling after the engine is initialized. Could you change the behavior of the application or this is a requirement of your use case?

Yes, I did realize that.
Unfortunately , I can’t figure out how to enable it before engine is initialized.
Thanks
Tseng
Here is my code:
   engine = setup_engine(qat_name,0);

    if (engine == NULL) {

        fprintf(stderr," cant load qat \n");

        exit(1);

    }

    func = ENGINE_get_ctrl_function(engine);

#if 1
    func(engine,QAT_CMD_ENABLE_POLLING,0,engine,NULL);

           func(engine,QAT_CMD_GET_NUM_CRYPTO_INSTANCES,0,&numinstances,NULL);

    func(engine,QAT_CMD_ENABLE_EVENT_DRIVEN_MODE,0,NULL,NULL);

From: agrandi<EMAIL_ADDRESS>Sent: Tuesday, October 04, 2016 2:36 AM
To: 01org/QAT_Engine
Cc: tsenghu; Author
Subject: Re: [01org/QAT_Engine] qat_engine in external polling (#8)
Hi Tseng,
If you want to use the external polling mode you will need to use the control command ENABLE_POLLING before the initialization of the engine.
From the documentation of ENABLE_POLLING contained in the README:
If required this message must be sent between
engine creation and engine initialization.

After the initialization, you can use the control message GET_POLLING_FD to obtain the file descriptor.
Does this help to solve your issue?
We don't have support for switching from internal polling to external polling after the engine is initialized. Could you change the behavior of the application or this is a requirement of your use case?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/01org/QAT_Engine/issues/8#issuecomment-251341233 , or mute the thread https://github.com/notifications/unsubscribe-auth/APaHlyHSjRm7x9U6LchmoO68KhbNtPjnks5qwh4QgaJpZM4KM07H .  https://github.com/notifications/beacon/APaHl55VNbjtU5Jre1g5AxmKbqtlJ4dXks5qwh4QgaJpZM4KM07H.gif

Hi Tseng,
Just a thought but have you considered using the openssl.cnf file to enable the engine? It might not suit your use case but have a look at the end of the README.md as we added a new section last week detailing how to use it. My suggestion would be to set it up as in the example in the README.md including the additional custom messages:
ENABLE_POLLING = EMPTY
ENABLE_EVENT_DRIVEN_MODE = EMPTY
as both of these messages should be sent before initialising the engine.
I believe you should then still be able to make the calls to get the number of crypto instances and to get the event driven polling fds which should both be called after the engine has been initialised anyway and as both return values can't be called from the openssl.cnf file.
P.S. Do remember that you need to make a call to:
OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL);
as your first call to the OpenSSL library in order for OpenSSL to read in the openssl.cnf file.

Thanks,
I will look into it.
What I have do is as follow:
Modified these two parameters in e_qat.c and recompiled it.
The issue with that is, when external threads are running.  ( one thread per instance)
I got message saying “ [error] cpaCyEcPointMultiply() - : Instance not in a Running state.
I know for sure it is in running state after qat is initialized.
Tseng
From: stevelinsell<EMAIL_ADDRESS>Sent: Tuesday, October 04, 2016 8:10 AM
To: 01org/QAT_Engine
Cc: tsenghu; Author
Subject: Re: [01org/QAT_Engine] qat_engine in external polling (#8)
Hi Tseng,
Just a thought but have you considered using the openssl.cnf file to enable the engine? It might not suit your use case but have a look at the end of the README.md as we added a new section last week detailing how to use it. My suggestion would be to set it up as in the example in the README.md including the additional custom messages:
ENABLE_POLLING = EMPTY
ENABLE_EVENT_DRIVEN_MODE = EMPTY
as both of these messages should be sent before initialising the engine.
I believe you should then still be able to make the calls to get the number of crypto instances and to get the event driven polling fds which should both be called after the engine has been initialised anyway and as both return values can't be called from the openssl.cnf file.
P.S. Do remember that you need to make a call to:
OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL);
as your first call to the OpenSSL library in order for OpenSSL to read in the openssl.cnf file.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/01org/QAT_Engine/issues/8#issuecomment-251417103 , or mute the thread https://github.com/notifications/unsubscribe-auth/APaHlzJVF7drq7j64uEgGDQdSK69e9-dks5qwmw3gaJpZM4KM07H .  https://github.com/notifications/beacon/APaHl2tb5h2EgNRq-F-jZ-moeKmxesiDks5qwmw3gaJpZM4KM07H.gif

Hi Tseng,
Using the approach suggested by Steve you won't need to modify e_qat.c and recompile the engine.
With regard to the error with the instances, is your application initializing the engine multiple times - i.e. one for every thread?
Andrea

Only once, perhaps it is caused by the way I have changed in e_qat.c.
I have followed what Steve have suggested. I don’t see any difference.
Perhaps, it is not reading openssl.cnf from /etc/ssl.
Tseng
From: agrandi<EMAIL_ADDRESS>Sent: Wednesday, October 05, 2016 1:38 AM
To: 01org/QAT_Engine
Cc: tsenghu; Author
Subject: Re: [01org/QAT_Engine] qat_engine in external polling (#8)
Hi Tseng,
Using the approach suggested by Steve you won't need to modify e_qat.c and recompile the engine.
With regard to the error with the instances, is your application initializing the engine multiple times - i.e. one for every thread?
Andrea
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/01org/QAT_Engine/issues/8#issuecomment-251615560 , or mute the thread https://github.com/notifications/unsubscribe-auth/APaHl4TrTRGW6H2blbpc5JK6AetQLhmCks5qw2HzgaJpZM4KM07H .  https://github.com/notifications/beacon/APaHlz7quy00gtCWitYJs0J4AI5NcxAkks5qw2HzgaJpZM4KM07H.gif

Sorry to bother you again.
Here is what happen after I use openssl.cnf
OPENSSL_INIT: ossl_init_base: Setting up stop handlers
OPENSSL_INIT: ossl_init_config: openssl_config(NULL)
OPENSSL_INIT: ossl_init_engine_rdrand: engine_load_rdrand_int()
OPENSSL_INIT: ossl_init_load_crypto_strings: err_load_crypto_strings_int         ()
OPENSSL_INIT: ossl_init_thread_start: marking thread for err_state
OPENSSL_INIT: ossl_init_engine_dynamic: engine_load_dynamic_int()
CONF_modules_load_file ...(null) (null)
CONF_get1_default_config_file /etc/ssl/openssl.cnf
CONF_modules_load_file .../etc/ssl/openssl.cnf
vsection openssl_init
vsection openssl_init values ...12f99e0
name engines value 12fa080
module_run name engines md 0x12e7170
module_run ........
Called engine module: name engines, value engine_section
int_engine_module_init   name qat val qat_section
Configuring engine qat
ENGINE conf: doing ctrl(engine_id,qat)
ENGINE conf: doing ctrl(dynamic_path,/usr/local/openssl-1.1.0/lib/engine         s-1.1/qat.so)
[bind_qat] id=(null)
bind_qat: About to set mem functions
ENGINE conf: doing ctrl(ENABLE_EVENT_DRIVEN_MODE,EMPTY)
name ENABLE_EVENT_DRIVEN_MODE ctrlvalue EMPTY
EVENT POLL enabled 1
ENGINE conf: doing ctrl(ENABLE_POLLING,EMPTY)
name ENABLE_POLLING ctrlvalue EMPTY
POLL enabled 1
ENGINE conf: doing ctrl(default_algorithms,ALL)
name default_algorithms ctrlvalue ALL
[qat_engine_init] ---- Engine Initing
enable_external_polling 1 inited 0
looking for dir icp_dh895xcc_dev0
looking in /etc/dh895xcc_qa_dev0.conf
[error] SalCtrl_CryptoInit() - : SalCtrl_CryptoInit 0x4c000a30 0
[error] SalCtrl_CryptoInit() - : SalCtrl_CryptoInit pCryptoService 0x4c0         00a30
[error] SalCtrl_CryptoInit() - : SalCtrl_CryptoInit 0x4c000d40 0
[error] SalCtrl_CryptoInit() - : SalCtrl_CryptoInit pCryptoService 0x4c0         00d40
qat_engine_init: 2 Cy instances got
set address  0 0x7f5e4c000a30
start instance  0 0x7f5e4c000a30
Instance 0: 0x7f5e4c000a30 is running
set address  1 0x7f5e4c000d40
start instance  1 0x7f5e4c000d40
Instance 1: 0x7f5e4c000d40 is running
OPENSSL_INIT: ossl_init_add_all_ciphers: openssl_add_all_ciphers_int()
OPENSSL_INIT: ossl_init_add_all_digests: openssl_add_all_digests()
port 8000 mode 1
num of instances 2
number of instances 2  numinstances 2  cache enabled
OPENSSL_INIT: ossl_init_async: async_init()
POLL FD get 10 handle 0x7f5e4c000a30
ns_qat_epoll_create fd 10 efd 9 epoll 0x7f5e43fff2d8
0 cpu bind to 2 size 0
use_fd 0 sd =11 efd=9
set instance for thread 0 0x7f5e4c000a30
SET INSTANCE for thread 0
POLL FD get 13 handle 0x7f5e4c000d40
ns_qat_epoll_create fd 13 efd 12 epoll 0x7f5e47fff470
1 cpu bind to 3 size 0
use_fd 0 sd =14 efd=12
set instance for thread 1 0x7f5e4c000d40
SET INSTANCE for thread 1
0 : open 0 closed 0 del 0
1 : open 0 closed 0 del 0
Opened 0 closed 0 freeed 0 errors 0 ssl errors 0 epoll add 0 epoll del          0 qat_epoll 0  del 0
OPENSSL_INIT: ossl_init_thread_start: marking thread for async
OPENSSL_INIT: ossl_init_thread_start: marking thread for err_state
qat_ecdh_compute_key been called
qat_setup_async_event_notification create_fd 17
[qat_engine_init] ---- Engine Initing
enable_external_polling 1 inited 1
Instance 0x7f5e4c000a30 is running
get_next_inst 0x7f5e4c000a30
cpaCyEcPointMultiply 0x7f5e4c000a30
qat_pause_job job=0x7f5e50002710
ns_qat_epoll chann 0...
poll_one num 0 0x7f5e4c000a30 0x7f5e4c000a30
e_qat.qat_crypto_callbackFn: opDone->job 0x7f5e50002710
qat_wake_job ....
qat_wake_job write  fd=17 stat=8
qat_pause_job pause resume job=0x7f5e50002710
qat_pause_job waitctx = 0x7f5e500021e0
qat_pause_job get_fd 17
qat_pause_job return from read 17 stat 8
[qat_rsa_priv_enc] --- called.
[build_decrypt_op_buf] --- flen =36, padding = 1
qat_setup_async_event_notification get_fd 17
[qat_engine_init] ---- Engine Initing
enable_external_polling 1 inited 1
[error] Sal_ServiceIsRunning() - :  Instance not in a Running state 0x4c         000d40 state 1
[error] Sal_ServiceIsRunning() - : 0x4c000d40 ......
Instance 0x7f5e4c000d40 is running
get_next_inst 0x7f5e4c000d40
cpaCyRsaDecrypt  instance=0x7f5e4c000d40
[error] Sal_ServiceIsRunning() - :  Instance not in a Running state 0x4c         000d40 state 1
[error] Sal_ServiceIsRunning() - : 0x4c000d40 ......
[error] cpaCyRsaDecrypt() - : Instance not in a Running state
[qat_rsa_decrypt] --- cpaCyRsaDecrypt failed, sts=-1. instance=0x7f5e4c0         00d40
[qat_rsa_priv_enc] --- cpaCyRsaDecrypt failed!
0 : open 0 closed 0 del 0
1 : open 1 closed 0 del 0
Opened 1 closed 0 freeed 0 errors 0 ssl errors 0 epoll add 1 epoll del          1 qat_epoll 1  del 0
0 : open 0 closed 0 del 0
1 : open 1 closed 0 del 0
Opened 1 closed 0 freeed 0 errors 0 ssl errors 0 epoll add 1 epoll del          1 qat_epoll 1  del 0
^C
root@ubuntu-hu3:/home/tseng/epoll-engine#
From: agrandi<EMAIL_ADDRESS>Sent: Wednesday, October 05, 2016 1:38 AM
To: 01org/QAT_Engine
Cc: tsenghu; Author
Subject: Re: [01org/QAT_Engine] qat_engine in external polling (#8)
Hi Tseng,
Using the approach suggested by Steve you won't need to modify e_qat.c and recompile the engine.
With regard to the error with the instances, is your application initializing the engine multiple times - i.e. one for every thread?
Andrea
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/01org/QAT_Engine/issues/8#issuecomment-251615560 , or mute the thread https://github.com/notifications/unsubscribe-auth/APaHl4TrTRGW6H2blbpc5JK6AetQLhmCks5qw2HzgaJpZM4KM07H .  https://github.com/notifications/beacon/APaHlz7quy00gtCWitYJs0J4AI5NcxAkks5qw2HzgaJpZM4KM07H.gif

Hi Tseng,
I notice you are using both SET_INSTANCE_FOR_THREAD and ENABLE_POLLING (or I think you are, correct me if I'm wrong).
We are wondering if there is some interaction between the two going on that is causing your issue.
Is there any chance you can disable the SET_INSTANCE_FOR_THREAD calls for now and see if your problem goes away?
Steve.

Indeed, that is the case.
I will disable it.
Thanks
Tseng
From: tseng hu<EMAIL_ADDRESS>Sent: Wednesday, October 05, 2016 9:33 AM
To: '01org/QAT_Engine'; '01org/QAT_Engine'
Cc: 'Author'
Subject: RE: [01org/QAT_Engine] qat_engine in external polling (#8)
Sorry to bother you again.
Here is what happen after I use openssl.cnf
OPENSSL_INIT: ossl_init_base: Setting up stop handlers
OPENSSL_INIT: ossl_init_config: openssl_config(NULL)
OPENSSL_INIT: ossl_init_engine_rdrand: engine_load_rdrand_int()
OPENSSL_INIT: ossl_init_load_crypto_strings: err_load_crypto_strings_int         ()
OPENSSL_INIT: ossl_init_thread_start: marking thread for err_state
OPENSSL_INIT: ossl_init_engine_dynamic: engine_load_dynamic_int()
CONF_modules_load_file ...(null) (null)
CONF_get1_default_config_file /etc/ssl/openssl.cnf
CONF_modules_load_file .../etc/ssl/openssl.cnf
vsection openssl_init
vsection openssl_init values ...12f99e0
name engines value 12fa080
module_run name engines md 0x12e7170
module_run ........
Called engine module: name engines, value engine_section
int_engine_module_init   name qat val qat_section
Configuring engine qat
ENGINE conf: doing ctrl(engine_id,qat)
ENGINE conf: doing ctrl(dynamic_path,/usr/local/openssl-1.1.0/lib/engine         s-1.1/qat.so)
[bind_qat] id=(null)
bind_qat: About to set mem functions
ENGINE conf: doing ctrl(ENABLE_EVENT_DRIVEN_MODE,EMPTY)
name ENABLE_EVENT_DRIVEN_MODE ctrlvalue EMPTY
EVENT POLL enabled 1
ENGINE conf: doing ctrl(ENABLE_POLLING,EMPTY)
name ENABLE_POLLING ctrlvalue EMPTY
POLL enabled 1
ENGINE conf: doing ctrl(default_algorithms,ALL)
name default_algorithms ctrlvalue ALL
[qat_engine_init] ---- Engine Initing
enable_external_polling 1 inited 0
looking for dir icp_dh895xcc_dev0
looking in /etc/dh895xcc_qa_dev0.conf
[error] SalCtrl_CryptoInit() - : SalCtrl_CryptoInit 0x4c000a30 0
[error] SalCtrl_CryptoInit() - : SalCtrl_CryptoInit pCryptoService 0x4c0         00a30
[error] SalCtrl_CryptoInit() - : SalCtrl_CryptoInit 0x4c000d40 0
[error] SalCtrl_CryptoInit() - : SalCtrl_CryptoInit pCryptoService 0x4c0         00d40
qat_engine_init: 2 Cy instances got
set address  0 0x7f5e4c000a30
start instance  0 0x7f5e4c000a30
Instance 0: 0x7f5e4c000a30 is running
set address  1 0x7f5e4c000d40
start instance  1 0x7f5e4c000d40
Instance 1: 0x7f5e4c000d40 is running
OPENSSL_INIT: ossl_init_add_all_ciphers: openssl_add_all_ciphers_int()
OPENSSL_INIT: ossl_init_add_all_digests: openssl_add_all_digests()
port 8000 mode 1
num of instances 2
number of instances 2  numinstances 2  cache enabled
OPENSSL_INIT: ossl_init_async: async_init()
POLL FD get 10 handle 0x7f5e4c000a30
ns_qat_epoll_create fd 10 efd 9 epoll 0x7f5e43fff2d8
0 cpu bind to 2 size 0
use_fd 0 sd =11 efd=9
set instance for thread 0 0x7f5e4c000a30
SET INSTANCE for thread 0
POLL FD get 13 handle 0x7f5e4c000d40
ns_qat_epoll_create fd 13 efd 12 epoll 0x7f5e47fff470
1 cpu bind to 3 size 0
use_fd 0 sd =14 efd=12
set instance for thread 1 0x7f5e4c000d40
SET INSTANCE for thread 1
0 : open 0 closed 0 del 0
1 : open 0 closed 0 del 0
Opened 0 closed 0 freeed 0 errors 0 ssl errors 0 epoll add 0 epoll del          0 qat_epoll 0  del 0
OPENSSL_INIT: ossl_init_thread_start: marking thread for async
OPENSSL_INIT: ossl_init_thread_start: marking thread for err_state
qat_ecdh_compute_key been called
qat_setup_async_event_notification create_fd 17
[qat_engine_init] ---- Engine Initing
enable_external_polling 1 inited 1
Instance 0x7f5e4c000a30 is running
get_next_inst 0x7f5e4c000a30
cpaCyEcPointMultiply 0x7f5e4c000a30
qat_pause_job job=0x7f5e50002710
ns_qat_epoll chann 0...
poll_one num 0 0x7f5e4c000a30 0x7f5e4c000a30
e_qat.qat_crypto_callbackFn: opDone->job 0x7f5e50002710
qat_wake_job ....
qat_wake_job write  fd=17 stat=8
qat_pause_job pause resume job=0x7f5e50002710
qat_pause_job waitctx = 0x7f5e500021e0
qat_pause_job get_fd 17
qat_pause_job return from read 17 stat 8
[qat_rsa_priv_enc] --- called.
[build_decrypt_op_buf] --- flen =36, padding = 1
qat_setup_async_event_notification get_fd 17
[qat_engine_init] ---- Engine Initing
enable_external_polling 1 inited 1
[error] Sal_ServiceIsRunning() - :  Instance not in a Running state 0x4c         000d40 state 1
[error] Sal_ServiceIsRunning() - : 0x4c000d40 ......
Instance 0x7f5e4c000d40 is running
get_next_inst 0x7f5e4c000d40
cpaCyRsaDecrypt  instance=0x7f5e4c000d40
[error] Sal_ServiceIsRunning() - :  Instance not in a Running state 0x4c         000d40 state 1
[error] Sal_ServiceIsRunning() - : 0x4c000d40 ......
[error] cpaCyRsaDecrypt() - : Instance not in a Running state
[qat_rsa_decrypt] --- cpaCyRsaDecrypt failed, sts=-1. instance=0x7f5e4c0         00d40
[qat_rsa_priv_enc] --- cpaCyRsaDecrypt failed!
0 : open 0 closed 0 del 0
1 : open 1 closed 0 del 0
Opened 1 closed 0 freeed 0 errors 0 ssl errors 0 epoll add 1 epoll del          1 qat_epoll 1  del 0
0 : open 0 closed 0 del 0
1 : open 1 closed 0 del 0
Opened 1 closed 0 freeed 0 errors 0 ssl errors 0 epoll add 1 epoll del          1 qat_epoll 1  del 0
^C
root@ubuntu-hu3:/home/tseng/epoll-engine#
From: agrandi<EMAIL_ADDRESS>Sent: Wednesday, October 05, 2016 1:38 AM
To: 01org/QAT_Engine
Cc: tsenghu; Author
Subject: Re: [01org/QAT_Engine] qat_engine in external polling (#8)
Hi Tseng,
Using the approach suggested by Steve you won't need to modify e_qat.c and recompile the engine.
With regard to the error with the instances, is your application initializing the engine multiple times - i.e. one for every thread?
Andrea
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/01org/QAT_Engine/issues/8#issuecomment-251615560 , or mute the thread https://github.com/notifications/unsubscribe-auth/APaHl4TrTRGW6H2blbpc5JK6AetQLhmCks5qw2HzgaJpZM4KM07H .  https://github.com/notifications/beacon/APaHlz7quy00gtCWitYJs0J4AI5NcxAkks5qw2HzgaJpZM4KM07H.gif

Hi steve:
Epoll_wait with timeout value of 1000 millisecond is long.
Is there any reason for that ?
Please advice
Thanks
Tseng
From: stevelinsell<EMAIL_ADDRESS>Sent: Thursday, October 06, 2016 5:13 AM
To: 01org/QAT_Engine
Cc: tsenghu; Author
Subject: Re: [01org/QAT_Engine] qat_engine in external polling (#8)
Hi Tseng,
I notice you are using both SET_INSTANCE_FOR_THREAD and ENABLE_POLLING (or I think you are, correct me if I'm wrong).
We are wondering if there is some interaction between the two going on that is causing your issue.
Is there any chance you can disable the SET_INSTANCE_FOR_THREAD calls for now and see if your problem goes away?
Steve.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/01org/QAT_Engine/issues/8#issuecomment-251943939 , or mute the thread https://github.com/notifications/unsubscribe-auth/APaHl2bL6isZPGuHLQIgcQjUqvE89tVqks5qxOW1gaJpZM4KM07H .  https://github.com/notifications/beacon/APaHl5WJtBQ1aUuZO4kWCbPPsdtYzh82ks5qxOW1gaJpZM4KM07H.gif

Hi Tseng,
we use a value of 1000ms as the timeout of epoll_wait() to reduce the CPU usage and at the same time not have a synchronous call.
When an event is sent from the crypto instance, epoll_wait() will resume immediately without actually waiting for the 1000ms to pass.
The function will return if after 1000ms no event has occurred so that we have a chance to check the flag keep_polling and potentially terminate the polling thread if the engine is finishing.
If you reduce the timeout to a very small value and the engine is not actually processing any crypto operation you will see that the CPU consumption of the polling thread won't be entirely negligible.
However, this should not have an impact on the max performance when the application is heavily loaded.
Hope this helps.

Thanks,
Tseng
From: agrandi<EMAIL_ADDRESS>Sent: Monday, October 10, 2016 7:28 AM
To: 01org/QAT_Engine
Cc: tsenghu; Author
Subject: Re: [01org/QAT_Engine] qat_engine in external polling (#8)
Hi Tseng,
we use a value of 1000ms as the timeout of epoll_wait() to reduce the CPU usage and at the same time not have a synchronous call.
When an event is sent from the crypto instance, epoll_wait() will resume immediately without actually waiting for the 1000ms to pass.
The function will return if after 1000ms no event has occurred so that we have a chance to check the flag keep_polling and potentially terminate the polling thread if the engine is finishing.
If you reduce the timeout to a very small value and the engine is not actually processing any crypto operation you will see that the CPU consumption of the polling thread won't be entirely negligible.
However, this should not have an impact on the max performance when the application is heavily loaded.
Hope this helps.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/01org/QAT_Engine/issues/8#issuecomment-252637748 , or mute the thread https://github.com/notifications/unsubscribe-auth/APaHl_0_Ux7bHij3lqqGBgs6W4X17N8Nks5qyktrgaJpZM4KM07H .  https://github.com/notifications/beacon/APaHlw3OOu17IRfsMsmnG-ZGXOAZnAZ8ks5qyktrgaJpZM4KM07H.gif

I am sorry to bother you. I need some advice from you.
We have decided to upgrade to Ubuntu 16.04/linux kernel 4.4.0-57-generic.
After linux is up, I see two drivers that is related to QAT.
One is qat_dh895xcc and another one is intel_qat.
After I inserted two drivers (icp_qa_al.ko and qat_contig_mem.ko) and try to run “service qat_service start”.
It failed to start.
What do I need to do/change?
Please advice
Tseng
From: stevelinsell<EMAIL_ADDRESS>Sent: Thursday, October 06, 2016 5:13 AM
To: 01org/QAT_Engine
Cc: tsenghu; Author
Subject: Re: [01org/QAT_Engine] qat_engine in external polling (#8)
Hi Tseng,
I notice you are using both SET_INSTANCE_FOR_THREAD and ENABLE_POLLING (or I think you are, correct me if I'm wrong).
We are wondering if there is some interaction between the two going on that is causing your issue.
Is there any chance you can disable the SET_INSTANCE_FOR_THREAD calls for now and see if your problem goes away?
Steve.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/01org/QAT_Engine/issues/8#issuecomment-251943939 , or mute the thread https://github.com/notifications/unsubscribe-auth/APaHl2bL6isZPGuHLQIgcQjUqvE89tVqks5qxOW1gaJpZM4KM07H .  https://github.com/notifications/beacon/APaHl5WJtBQ1aUuZO4kWCbPPsdtYzh82ks5qxOW1gaJpZM4KM07H.gif

Hi Tseng,
I've moved your question into it's own issue as I think it maybe relevant to others.
Please find it located here #14
Steve.

Thanks
Tseng
From: stevelinsell<EMAIL_ADDRESS>Sent: Tuesday, January 10, 2017 8:50 AM
To: 01org/QAT_Engine
Cc: tsenghu; Author
Subject: Re: [01org/QAT_Engine] qat_engine in external polling (#8)
Hi Tseng,
I've moved your question into it's own issue as I think it maybe relevant to others.
Please find it located here #14 https://github.com/01org/QAT_Engine/issues/14
Steve.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/01org/QAT_Engine/issues/8#issuecomment-271629643 , or mute the thread https://github.com/notifications/unsubscribe-auth/APaHl0f8t0_D3QSzkv8rAwcaGAjv2xrVks5rQ7bBgaJpZM4KM07H .  https://github.com/notifications/beacon/APaHl5BFn5cQQdZPkBoanWNUXXUme45cks5rQ7bBgaJpZM4KM07H.gif


python: symbol lookup error: /home/xxx/miniconda3/envs/torch/lib/python3.7/site-packages/mk│ l/../../../libmkl_intel_thread.so.1: undefined symbol: __kmpc_global_thread_num

Hi, I came across this issue when run this command python -m pytorch_fid /path1 /path2.
Could anyone help me to resolve this issue?
Thanks

This seems to be an issue related to your environment configuration. Try to recreate the environment, or try creating an environment using pip instead of conda to see if the error persists.


Testing support

Here's long list of what thorough testing support could be. It is more tooling support than language feature.

1] It should be really easy to write a new test.
TEST()
{
  assert(2 + 2 == 4);
}

TEST()
{
  assert(2 + 2 == 5);
}

The main point is: one doesn't need to invent a unique name for a test.
The usual alternatives:
@test
void foo()
{
  assert(2 + 2 == 4);
}

or:
void test_foo()
{
  assert(2 = 2 == 5);
}

give false perception that test is a function (it is not, no one calls a test). Inventing a name is hard in large programs, IDE browser may be cluttered with these useless names.
Uppercase TEST makes it easy to spot.

2] Tests may have optional parameters. For example, maximum expected time for the test. If it takes longer, there's something wrong, error could be shown.
Test parameters are not like ordinary function parameters, they should be free form. E.g.:
TEST() // no parameters
{
}

TEST(time < 10 ms) // one parameter
{
  ...
}

TEST(10 ms  < time  < 30 ms) // still only one parameter
{
   ...
}

// two parameters: a name if we like to call the test individually, max time, plus some separator
TEST(name = "xyz" |  time < 1 s)
{
   ...
}

// three parameters
TEST( qwerty | asdf | x = true)
{
  ...
}

There should be several implicit parameters available:

something like __FILE__/__LINE__ for every test
how long ago (e.g. in seconds) was the source file with current test modified. Useful when running only tests from recently modified source files.

3] The last component of test system is the "test runner". It collects all tests, reads their parameters (if any), parses these parameters (giving error if it doesn't understand) and then executes all or some of the tests.
There should be default test runner, which understands couple of the most common parameters (name, timeout, ...).
Its API could be:
// returns # of executed tests,
uint run-all-tests(bool show_results_dialog_on_success);
uint run-recent-tests(uint recent_in_seconds, bool show_results_dialog_on_success);

The default test runner should be able to verify timeout constrains, if present. A default timeout could be e.g. 1. second.

4] Custom test runner may be used e.g. to run those tests used for performance regressions. These tests would be identified by a parameter, their duration would be stored somewhere, and if it gets worse, programmer would be notified.
Another use case for a test runner is code coverage.  Certain tests could be labeled so, and run only when code coverage is needed  (because they would take lot of time).
Another use case is to exclude platform specific tests.

5] It should be up to the programmer, to invoke the test runner at the beginning of the application. Either the default one (e.g. run-recent-tests), or a custom variant.
There should be no special "test invocation mode" for the compiler. It is hassle, it complicates things, it is inflexible. Just let the programmer do it explicitly in main, exactly as he wishes.

6] Where should be tests placed? There are several options:

after the relevant code (e.g. after a function)
at the end of source file (this one I do not recommend, gets messy very fast)
in a separate file (not to overcrowd the source file)

IMO programmer should have choice. Most important small tests could be placed after the functions, those long and checking minutae details could be put into the separate file.  Let's call it companion test file.
Companion test file should have name similar to its "parent source file", should have full access to it, w/o need to import anything. It should behave as if it was copy-pasted at the end of the source file.
Companion test file should define only tests (plus maybe helpers), should not export anything, should not be importable elsewhere. It should be just a convenient storage for tests, nothing else.

7] Tests should have access to everything. Nothing should be private to them.

8] Since the language plans to have generics, there could be tests for uncompilable code:
// this parameter say the code inside test must NOT compile
TEST(does-not-compile)
{
   ...

}

Parameter does-not-compile cannot be used with any other parameter together.
The compiler should make sure the code really doesn't compile, but NOT because of some trivial error, like unbalanced parenthesis or an invalid name.

9] If possible, test should be able to use any part of the project, w/o explicit need to import anything. This is keep the code clean, not to pollute it it because of the tests. If all tests are removed, the rest of the code should not need any modification.
E.g.
TEST()
{
  // this should not require explicit import, if compiler is able to infer what it is
  SomethingFromThisProject x;
  assert(foo() == x);
}

I'm not sure whether this is feasible, but it would help a lot.

10] With usual compilation modes debug and release, it should be possible to use unit test both in debug and in release too (e.g. for performance checks, and to make sure optimization didn't screw up something).

11] All tests should do memory checking. Whatever was allocated within certain test, should be also deallocated right there. I'd implemented such feature in C and C++ testing library, and it does wonders to keep application free of leaks.
I know there are big complicated tools that try to do the same, but having such tool inside every test allows to identify leaks very quickly.
Such checking against the leaks could be major "selling point" for the language.
Intentionally leaking tests could be annotated with a parameter.

12] assert could be seen as yet another tool, not just as a function:
When this fails:
assert(x == y)
you may be interested what the values of x and y were. Advanced assert could help:
assert(x == y | x = %x y = %y, z = %z); // z is an interesting value visible in this scope
Here, if assert fails, it would print x, y and z values. The syntax of assert should not be restricted by language rules. Whatever helps should be available. E.g. I could imagine something like:
assert(x == y)
{ // code block accompanying the assert
  a = x.foo();
  b =y.bar();
  assert_print(Because x has %a and y has %b it failed here);
}

This feature would help a lot against Heisenbugs.

13] When assert is fired while a test is running, it should show the exact location of the test (it should not be hidden inside a nearly useless long stack trace).

14]  There are different kinds of assert.

The good old ordinary assert. Should be used a lot, should be active in debug mode, should be compiled away in release mode. Nothing unusual here.

The assert used in a test, at the top level of such test:
TEST()
{
  assert(2 + 2 == 4);
}

If test are allowed in release mode, then such asserts should not be compiled away. There are two options:
a) use different name (e.g. verify). It would be the same as assert, but allowed only in tests, at the top level, nowhere else. It would be present even in release mode.
b) compiler should keep asserts in tests (at the top level) intact, even in release mode

There could be asserts "just to be sure", placed to notify the user that something impossible did actually happen. E.g.:
   if (something-impossible) {
      assert(false); // cannot happen
      return -1;
   }

However, when one does truly defensive testing, such situations should be arranged and tested.
But how to distinguish the situation when we intentionally provoked this situation versus the unexpected error? There are two options:
a) If assert(false) is fired, it would check whether a test is running. If it is, then it would assume it was triggered intentionally, and it would not show the error. If tests is not running, impossible bug was spotted, show it.
b) there could be special form of assert, e.g. impossible_assert(). If invoked during a test, it does nothing, outside of a test it shows error.

15] The language should standardize how to distinguish between debug and release modes, between tests compiled in and tests not present.  It should avoid the C/C++ mess with NDEBUG, DEBUG, _DEBUG and other inconsistent inventions.

16] Mocking support. The biggest feature I can imagine. Ability to replace specified functions for the duration of the test:
TEST()
{
  mock fopen = ... // fopen dummy reimplementation
  mock fclose = ...

   // code doing lot of fopen/fclose, but using mocks instead.

}

It could be implemented using function pointers. In release mode without test there would be no performance penalty at all.

17] Mocking support could be extended even to constants. E.g. timeout constant, to keep test duration down.
It could be also implemented using function pointers. The constant would became variable accessed by calling that function pointer.

18] Support for white box testing. Another potentially huge feature.
The problem: I want to be sure that this code invoked exactly 2 allocations and 2 deallocations and does NOT invoke any TCP/IP calls.
This could be handled by making the code very complicated, or by using "tracing" feature proposed here:
http://akkartik.name/post/tracing-tests
Basically, it could work this way:

Within a test you specify your intent, to watch for certain "traces". Here it would be "allocate", "deallocate", "socket", etc.
If such a trace happens (either it is logged explicitly somewhere in the code, or implicitly, e.g. a funtion call), then such a trace would be stored somewhere.
When the test ends, it goes through stored traces. It makes sure there are 2 "allocate", 2 "deallocate", no "socket" etc. It could check their proper order, it could check parameters (like bytes allocated).

E.g.
TEST()
{
  // I 'm interested in these calls - record them
  register-trace("allocate", "deallocate", "socket");

   ...
   ... code to be tested
   ...

  // now I do check whether my expectations were correct
  assert(check-for-trace("socket") == false); // no TCP/IP?

  // 2 allocations and then 2 deallocations?
  assert(check-for-trace("allocate"));
  assert(check-for-trace("allocate"));
  assert(check-for-trace("allocate") == false); // not 3

  assert(check-for-trace("deallocate"));
  assert(check-for-trace("deallocate"));
  assert(check-for-trace("deallocate") == false);

  // all collected traces would be wiped out the end of the test
}

A trace could be created explicitly:
void* allocate(uint bytes)
{
   ...
   TRACE("allocated %u bytes", bytes);
   return p;
}

or implicitly, by the compiler inserting trace when a function is called. The compiler would know (by checking the "register-trace" within all tests) which functions could be possibly checked and which do not.
void* allocate(uint bytes)
{
   ...
   TRACE("allocate()"); // inserted implicitly by the compiler
   ...
}

Implicit traces reduce clutter in the code.
The compiler should check the traced strings, to make sure there's no typo, should really do the implicit traces (to avoid unneeded clutter in the code).
The whole mechanism should be well optimized not to slow down the tests too much and to optimize trace data.
When tests are not running, no traces would be collected. There would be only small impact on performance.
When tests are not compiled in, there would be no traces and no impact at all on the performance.

19] Tests should run strictly serially. Parallel execution is virtually impossible (every single piece of code would need to be guarded against multithreading bugs). If something multithreaded has to be tested, a test should spawn such threads.
Running only recent tests automatically whenever program is started take little time and guards against bugs well.
I routinely do:
int main(void) {
#ifdef DEBUG
  (void)run-recent-tests(
    recent_in_seconds: 60 * 60 /* hour*/,
    show_results_dialog_on_success: false);
#endif
   ...

If someone really, really needs parallel execution of tests, he could write his own test runner and blame himself for the problems.

20] Having a failing test and then running remaining ones should not be supported. Its a misfeature.
If someone really, really needs this, he could write his own test runner, plus probably overload the assert.

21] There could be support to also invoke tests from foreign C code, or to allow invocation of the tests from C code. This feels to me as a trivial thing.

22] Tests are expected to run at the start of main. However, nothing stops one to invoke some of the tests at any moment, even interactively. This may help to deal with Heisenbugs.
Tests checking automatically against leaks would make this adventure less risky.
Multithreaded applications would need to protect the tests invoked in the middle of application run, but this is unavoidable.

23] People who do not like testing wouldn't be forced to use them, those who want their own unique testing framework could implement one. Ability to overload or overwrite assert would be desirable in this case.

AFAIK no language known to me supports all the features, not even half of them. Most only pay lip service to testing, few stopped in the middle (e.g. language D allows easy definition of tests, but neither test parameters not custom test runners).
Some of proposed features were implemented in C++ and even in C. It is possible to write:
#ifdef DEBUG
TEST()
{
  assert(2 + 2 == 4);
}

TEST()
{
  assert(2 + 2 == 5);
}
#endif

It was also possible to implement whitebox testing too, but w/o compiler support it gets too clumsy.

1]

one doesn't need to invent a unique name for a test.

I agree. So something like test() {} would be good for that. I think lowercase is more suitable, to keep it consistent with the rest of the language. Syntax highlighting / editor support can be used to make it easier to spot.
2] I think we can use named arguments to implement optional test parameters. For example:
test(timeout: 10.milliseconds)
{
  ...
}

test("test with a name", timeout: ...)
{
  ...
}

3] 4] I don't have any strong opinions about these at the moment.
5] I think we want a delta test command to allow running the tests without running the whole program.
The plan is to allow specifying multiple compiler commands one after another. This allows e.g. delta test run which would run the tests and then run the program if the tests were successful. (By itself delta run would just run the program.)
6] I agree that the placement of the tests should be up to the programmer.
7] Yes, tests should definitely be able to access private members.
8] Tests for uncompilable code: I agree this would nice to have. The tests could possibly even check that the error message is what's expected.
9] Actually, you don't need to import things from the same project even in normal code. So tests would be able to do this as well.
10] 11] 12] 13] Yes to all.
20]

Having a failing test and then running remaining ones should not be supported.

I think this is useful for finding out if a change broke just a few tests, or if it broke all of them. Although it should also be possible to exit after the first N errors. So there should be a way to easily toggle between these two behaviors (and a way to set the error limit N).
So many bullet points :) I'll check the remaining ones more closely later.

9] Actually, you don't need to import things from the same project even in normal code. So tests would be able to do this as well.

That would be very handy feature. A litany of #includes at the beginning of source file is worthless nuisance.

20] Having a failing test and then running remaining ones should not be supported.

I think this is useful for finding out if a change broke just a few tests, or if it broke all of them. Although it should also be possible to exit after the first N errors. So there should be a way to easily toggle between these two behaviors (and a way to set the error limit N).

Two problems I see:

How to signal the test failed? The language doesn't have exceptions (at least I hope so). Probably assert would need to set a flag, test runners would need to deal with such flag.
What if an assert somewhere deep down fails? Who is going to restore the system into reasonably  stable state, so the tests could continue? C++ is able to do this, but only for the very high cost of exception safety.

3] 4] I don't have any strong opinions about these [custom test runners] at the moment.

Being able to add customized test runner is like having an universal toolset right in the language.
(E.g. for checking for performance regressions, without external tools and scripts. I remember one guy who, as his PhD, wrote advanced performance regression checking tool for Linux kernel, in Perl.  It was not used: too much nuisance, maintenance headache, instinctive avoidance of 3rd party tools.)
I got once curious, if one can implement a test runner in D. I asked:
<EMAIL_ADDRESS>and got relevant answer, pointing to this library:
https://gitlab.com/AntonMeep/silly/-/blob/master/silly.d
When I looked inside the code, I was scared. External build tool is needed, plus heavy metaprogramming wizardry, just to run some tests.

I remembered one more feature, potentially useful for very heavy testing. (Something like this was discussed for Zig language.) It may look like:
TEST()
{
   set-up-code

   TEST()
    {
     test1-code
    }

   TEST()
    {
     test2-code
    }

   tear-down-code
}

and this would be transformed into:
TEST()
{
   set-up-code
   test1-code
   tear-down-code
}

TEST()
{
   set-up-code
   test2-code
   tear-down-code
}

How to signal the test failed?

So just to clarify, in my mind a test suite consists of one or more "tests", each of which contains one or more "asserts".
Currently a failing assert in normal (non-test) code just terminates the process. So to keep the same behavior also in tests, the test runner could run each test as a separate process and then check their exit status to know if they succeeded.
Or use a flag as you mentioned to avoid spawning so many processes. Or keep record about which test is currently running, and if it exits, continue from the next one.
There are many possibilities, and being able to run the tests in parallel would also be good to take into consideration.

What if an assert somewhere deep down fails?

I think it would be best to stop the test after the first failing assert, to not have to deal with this. It's probably reasonable to assume that every test can be run standalone, and doesn't depend on running other tests first.

Being able to add customized test runner is like having an universal toolset right in the language.

Yeah I think it wouldn't be too hard to implement. I could imagine having a library function that can be called in the test runner main to return a list of the tests, and then do what you want with them. And then another library function to submit the test results for reporting (except when you want to report them yourself). And/or letting you register a callback function that's called for each tests, allowing you to do performance timing or whatever. But I haven't thought about it deeply yet, so I'm not 100% sure if it's really that simple in practice.

Defining common set-up and tear-down code for multiple tests is a common testing framework feature, which I think is useful to have.

So just to clarify, in my mind a test suite consists of one or more "tests", each of which contains one or more "asserts".

Yes.

Currently a failing assert in normal (non-test) code just terminates the process.

Yes.

So to keep the same behavior also in tests, the test runner could run each test as a separate process and then check their exit status to know if they succeeded.

This is not IMO needed. Test which does not assert is supposed not to screw up the program state. The next test could be then run safely.
If assert fails within a test, this is the end of the program, unrecoverable error.

One more feature I forgot to mention, was to run tests in random order. This could, in theory, discover interdependence bugs (a test changing program state, another test failing because of this).
I'd once implemented random execution of tests, but is was more a nuisance than help (I never managed to find a bug this way).  Seed for randomizer should be recorded somewhere, to allow reproducibility of found problem.

Running tests as separate programs is possible, with a custom test runner, but I never needed this for my purposes.

What if an assert somewhere deep down fails?

I think it would be best to stop the test after the first failing assert, to not have to deal with this. It's probably reasonable to assume that every test can be run standalone, and doesn't depend on running other tests first.

Yes. The idea is that each test is de-facto standalone program, independent of anything else.

Being able to add customized test runner is like having an universal toolset right in the language.

Yeah I think it wouldn't be too hard to implement. I could imagine having a library function that can be called in the test runner main to return a list of the tests, and then do what you want with them. And then another library function to submit the test results for reporting (except when you want to report them yourself). And/or letting you register a callback function that's called for each tests, allowing you to do performance timing or whatever. But I haven't thought about it deeply yet, so I'm not 100% sure if it's really that simple in practice.

It is not very hard. It is possible to implement it in C++, in C and in Nim.
Nim implementation of (simple) test library took just dozen lines:
https://forum.nim-lang.org/t/653

what about a concise integrated test syntax like zig, compiler execute all the test blocks so a block can fail in any arbitrary way and reported in a nice message
test "integer overflow at compile time" {
    const x: u8 = 255;
    const y = x + 1;
}

Zig's test system is rather primitive.

It has no way to implement custom test runner, to select which tests to run. All or none are the only options.  Not good for programs with hundreds/thousands of tests. It also produces one line log for every passed test, with no chance to switch it off or customize.
Zig doesn't allow tests to have parameters, crippling versatility of this tool.
I suspect Zig code doesn't do proper recovery from failed test (like cleaning up resources). This could affect state of the system and result in false bugs elsewhere.

Long ago, I suggested better test support for Zig ( https://github.com/ziglang/zig/issues/128 and others ), but not much, if anything,  was implemented.
D's tests are better than Zig's (the language allows for cleanup after failure, but it complicates the code a lot). Nim can probably implement many of the proposed features, but the language is very hard to grok.

1]

one doesn't need to invent a unique name for a test.

I agree. So something like test() {} would be good for that. I think lowercase is more suitable, to keep it consistent with the rest of the language. Syntax highlighting / editor support can be used to make it easier to spot.
2] I think we can use named arguments to implement optional test parameters. For example:
test(timeout: 10.milliseconds)
{
  ...
}

test("test with a name", timeout: ...)
{
  ...
}

further a description, a test needs a name to execute unit tests, could have 2 alternatives:
test test_name("test with a name", timeout: ...) {}

or
test (name: test_name, "test with a name", timeout: ...) {}

in terminal:
# zig test file.zig -t test_name other_test


ocean.py: Only allow code merges if unit test code coverage ratchets up

(Prerequisite: #121 made code coverage more visible)
Is your feature request related to a problem? Please describe.
We constantly have bug "fixes" where it's just a change to the code, but there are no unit tests. Over time the quality of the sw deteriorates. The excuse is "not enough time" but this is simply untrue because we do pay back in spades. Quality comes for free, and then some. So we need to do more tactics to enhance quality. And helping to ratchet up code coverage ratchets up is a good one.
Towards code quality, if we have a constraint where % code coverage must go upwards, it not only prevents code quality from degrading due to missing tests, over time it ratchets the % coverage upwards and therefore quality upwards.
Describe the solution you'd like
Only allow a PR to be merged (or a direct commit) if % code coverage doesn't go down.
This is pretty common SW engineering practice. We did it on the bigchaindb code base with good success. Let's do it here.

Making high priority to prevent further slippage of quality.

Suggestion of how to do it:
https://github.com/oceanprotocol/ocean.js/issues/626#issuecomment-784216054

this implies the existing codequality tool used in here supports GitHub commit status notifications for each pull request, only after that is setup this repo's branch protection rules can be adapted

Assigning this to Alex, since he already started on the new checks.

done

Having this done makes me especially happy:)