ESP32S2 - https-server fail to configure MBEDTLS_EXTERNAL_MEM_ALLOC   (IDFGH-5286)

Environment

Development Kit:      none

ESP32-S2-WROVER

IDF version: 4.2.1

Build System:  cmake

Compiler version: xtensa-esp32s2-elf-gcc.exe (crosstool-NG esp-2020r3) 8.4.0

Operating System:     Windows

Using an IDE: Visual studio code - Espressif IDF 1.0.3

Problem Description
sdkconfig: CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC can`t be configured for ESP32S2
Expected Behavior
CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC=y  in sdkconfig
Actual Behavior
CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC is always reverted to  CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC
Steps to reproduce

open example "HTTPS_REQUEST" (in my case with VSC and extension Espressif IDE)

=>Espressif IDF in VSC automaticly use ESP32S2

open SDK Configuration editor

press SAVE

sdkconfig gets configured:

CONFIG_IDF_TARGET="esp32s2"
CONFIG_IDF_TARGET_ESP32S2=y

...
# CONFIG_ESP32S2_SPIRAM_SUPPORT is not set
...
CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y

based on sdkconfig.ci it should be (however i use ESP32S2 => therefore disabled SPIRAM_SUPPORT disabled might be ok?):
CONFIG_ESP32_SPIRAM_SUPPORT=y
CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC=y

enable CONFIG_IDF_TARGET_ESP32S2
and set
mbedTLS - Memory allocation strategy to external SPIRAM  ( CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC )

ERROR:
{"version":2,"save":"c:\\esp\\esp-idf\\examples\\protocols\\https_request\\sdkconfig"}
Saving config to c:\esp\esp-idf\examples\protocols\https_request\sdkconfig...

{"version": 2, "values": {}, "ranges": {}, "visible": {}}

{"version": 2, "set": { "MBEDTLS_EXTERNAL_MEM_ALLOC": true }}

---------------------------ERROR--------------------------

Error: The following config symbol(s) were not visible so were not updated: MBEDTLS_EXTERNAL_MEM_ALLOC

-----------------------END OF ERROR-----------------------
{"version": 2, "values": {}, "ranges": {}, "visible": {}, "error": ["The following config symbol(s) were not visible so were not updated: MBEDTLS_EXTERNAL_MEM_ALLOC"]}

{"version":2,"save":"c:\\esp\\esp-idf\\examples\\protocols\\https_request\\sdkconfig"}
Saving config to c:\esp\esp-idf\examples\protocols\https_request\sdkconfig...

{"version": 2, "values": {}, "ranges": {}, "visible": {}}

it seems there is no way to use external PSRAM for MbedTLS with ESP32S2 as it always gets reverted
=> for my remaining Project PSRAM is recognized and works, but i need it for https
sdkconfig.LOG

https://github.com/espressif/esp-idf/commit/cf4b9ef854651596a6014ac47e209d426b901c29

@oachkatzalschwoaf Please check if commit linked above by @negativekelvin fixes your problem. We will backport similar fix for release/v4.2 branch as well, it shall appear in v4.2.2 official release.

thanks, my issue is fixed by: cf4b9ef854651596a6014ac47e209d426b901c29

Fixed with https://github.com/espressif/esp-idf/commit/06bf491f1324568862c2ae4e9ca15f23425c5618 on v4.2 branch


Feature/poet 27 store questions

Hi @haolinj, I've made necessary changes to this branch. Please review for PR. Thank you.

Thank you @haolinj, i've updated the exception handling.

@sabiipoks Can you please resolve the merge conflict? Otherwise I cannot merge it. Thanks.

@haolinj, merge conflict has been resolved.


internal: lerna -> lerna-lite

https://github.com/ghiscoding/lerna-lite is better maintained and supports pnpm + workspace:
Also: Hoist linting to root
Based on https://github.com/ntucker/anansi/pull/1585

Codecov Report

Merging #2108 (3d09b0d) into master (5f653c9) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #2108   +/-   ##
=======================================
  Coverage   98.48%   98.48%
=======================================
  Files         102      102
  Lines        1918     1918
  Branches      405      405
=======================================
  Hits         1889     1889
  Misses         13       13
  Partials       16       16

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Can't edit an organization after creation

Steps to reproduce

Create an Organization
Wait to be redirected on the Organization page

Current Behavior

No ability to edit the settings
Takes two browser refresh to be visible

Expected Behavior

Immediate ability to edit the settings

Possible Fix

It's likely that the cache for the LoggedInUser needs to be refreshed so the Frontend knows the authenticated user is an admin
It seems to work when creating a Collective and not an Organization, we can get inspiration from there.

A $200 bounty was attached to this issue. Anyone submitting a Pull Request will be rewarded with $200 the Pull Request is reviewed, accepted and merged. More info.

hey @znarf  I want to fix this.

@JoyLubega All right, initial time limit is 1 week. This can later be extended if there is demonstrable progress. Good luck!

:trophy: This issue is now completed by @JoyLubega
To claim the bounty, you can either:

Submit an invoice to https://opencollective.com/engineering/expenses/new (please mention the issue number in the expense's title)
Or ask for an Open Collective gift card of the same value (to donate to other collectives)


Add default configuration path

Although the QUICKSTART says the lagopus.conf can be located in a /etc/lagopus/ directory, it does not look for it in such directory. Only /usr/local/etc/lagopus/lagopus.conf is available as a local configuration path with the default ./configure option other than the file in the current directory.

Hi @kenji114
Thanks your pull request but we reject this pull request.
The previous QUICKSTART has several wrong stuff, so we have fixed the QUCIKSTART.
And current lagopus daemon option provide for users to specify configuration path with -C filename or `--config filename``.
Thanks,


share-data-between-apps

Please use the form below, leaving the prefilled data to help us. Thank you.
Page link: share-data-between-apps
Document link: _index.md
My Issue/Suggestion
There is no description about the authorization. Username/pw. Where can i configure it?

Hi Johannes,
Thanks for your question,
This document shows how to publish data as a Published OData Service. If you look at the documentation for the Published OData Service, you will see that there is a section on security which applies in this case.
I have added a link to this document in commit f08219c48932ed245b38f9fcc8924abde8e4f836 to make it easier to find this information.
Thank you for pointing out this improvement, it makes Mendix easier to use for everyone.
Yours
Mark

Thank you. I found my mistake. I always generate a webservice user. But in the section allowed roles is a hint, that a webservice user cannot access odata service. It's a bit confusing. ;)


Editor issues with touch screens

When editing on iOS (iPad, Safari) and I press the shift-key, it behaves as if it is locked on (despite being displayed as a normal shift-enabled state - i.e. not solid up-arrow with underbar).
That is, if I press this sequence of keys: shifttitle the editor will then contain TITLE, and not Title.
Oh, the number of times I've written a title like #HERE is THE magic OF the THING (which is meant to be word-capped), or simply HERE IS A SENTENCE WHERE I HAVE TYPED MUCH WORDS VERY CAPS BEFORE REALISING IS ALL CAPS ARGH DELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDEL.
As noted above, the shift key has the appearance of one-tap-enabled, but behaves as if caps-locked. (Well, technically shift-locked, as Shift,! actually produces the !). If I had to guess, the page is consuming the keypress but not reflecting as having been typed, and thus the keyboard isn't releasing the shift-once state.
This behaviour does not happen on MacOS in Chrome.
Does this happen on other mobile platforms?
I'd like to fix this behaviour as it is incredibly annoying, but I'm guessing it's more a case of react/javascript shenanigans than simply tweaking html5 autocapitalization attribute value.

Found mentions of this being an issue with React Native and causing issues with other projects.

@ericscheid I just tried this on iOS (iphone) Safari and Firefox and do not have the same issue.  Want to double check and see what happens now?

I know Codemirror has issues with mobile devices, specifically touch-interaction. Was this using touch or a separate keyboard? If touch, eventually when Codemirror 6 releases we can switch to that which solves a lot of the problems with touch screens.

All I'm hearing is @calculuschild enthusiastic support for responsibe, mobile friendly redesign
:)

Tested on iPad IOS 12.5.4 with touch keybord — still occurs.

Is this still occurring?

Fixing this requires upgrading to Codemirror 6.

Rather, this is not our bug at all, this is a codemirror bug, we have nothing to fix, and we already have a codemirror 6 issue. #3511 . Closing this.


Gif/video sticker is not being Formatted into sticker

when using with image wsf perfectly works with it.
but if i try video or gif to make sticker the sticker does not send output.

I found Termux Package of libvips
that can be executed with
 pkg install libvips
But The error is same...
Should i use flag -g

I'm having the same problem here. my solution was rollback for 3.x version

Fixed in 4.4.1


Loading custom schema files.

I have a bundle the "AuthenticationBundle" in where I have required ldaptools and ldaptools-bundle.
This AuthenticationBundle I include itself in a bigger project. I have my ldap config inside the AuthenticationBundle and that config I include in my bigger project.
In my custom schema I defined a ldap_user type but when I use the ldapmanager to query ldap it shows up as type user inside a dump.

Does this mean it didn't load the schema file?
An additional question I have is:
I have specified which User object to use (I have a custom one inplementing the proper LdapUserInterface but that config is under the security  section. Does this mean this only takes effect when you have ldaptools do the full user authentication?

My query is the following.
$query = $this->manager->buildLdapQuery();

$ldapObject = $query
    ->select('*')
    ->where(['objectClass' => 'inetOrgPerson'])
    ->andWhere(['cn' => $username])
    ->setScopeSubTree()
    ->setBaseDn($this->baseDn)
    ->getLdapQuery()
    ->getOneOrNullResult();

I haven't tried putting the from() call into the mix yet. I'll try that monday.
The following is the config:
ldap_tools:
  security:
    user: HeinenoordAssuradeuren\AuthenticationBundle\Entity\User
    login_query_attribute: cn
    ldap_object_type: ldap_user

And here is the relevant portion of my schema:
extends_default: openldap
objects:
  ldap_user:
    extends_default: ['openldap', 'user']
    type: ldap_user

So i am guessing this should work going by your explaination.
If this indeed should work then I'll try providing the from() method.
So just for verification.
Should the query return an instance of my own user (it does implement the interface you mentioned)
once I call getOneResult() (or equivalent like I am using)?
Or do I have to do something different to have it return my own user object?

Yeah, you'll want your query to reference your custom type using the from method. Any schema type in LdapTools can be referenced in the from method like that:
$query = $this->manager->buildLdapQuery();

$ldapObject = $query
    ->select('*')
    ->from('ldap_user')
    ->where(['name' => $username])
    ->setScopeSubTree()
    ->setBaseDn($this->baseDn)
    ->getLdapQuery()
    ->getOneOrNullResult();

You also need to make sure to reference your custom schema in your Symfony config:
ldap_tools:
    general:
        schema_folder: "%kernel.root_dir%/Resources/schema"

Now it selects the correct schema object to use but now I have gotten an arror on an internal ldaptools class. Its about the attributes on my schema file.
In the zip is the HTML output of the symfony error and my schema yml file.
As far as I can see there is no error in my schema file.
I am sorry to bother you with this. But I am not sure if I am missing something or not.
I have compared my ldap schema with the default one to see if i did something wrong but I cannot see it.
error-ldaptools.zip

That actually appears to be a bug to me. When it's merging attributes from the libraries OpenLDAP schema user definition it's duplicating certain attributes instead of overwriting them. I will need to look at it later.

@ChadSikorra Did you get the chance to look at it?

Apologies, it has been a hectic past week. I'm starting to look at it today. Sometime this week I should have a fix.

Ah ty, I decided to ask because I use this bundle at work so somewhere this week I kinda need the feature.
Sorry to be a bother.
Ty for the support!

No problem. I found the source of the issue, and a somewhat hacky solution. If I can't find a better solution I'll add the workaround and tag a new minor release for the LdapTools library.

I pushed a commit on LdapTools that I think should fix this: https://github.com/ldaptools/ldaptools/commit/94f930b06447ec1fd1ed5d04c9356c619e29ac07. Could you please try it against master on the LdapTools library to see if this resolves it for you?

I am not getting the error anymore. But whether or not I have that ->from('ldap_user') statement, I don't see the type filled in in the LdapObject. Its also a LdapObject so i assume the conversion from an ldapObject to a User entity only works if I use the LdaptoolsBundle security itself. That is something I can't use unfortunately since I use ldaptools on an API I access with a seperate frontend.
Though its not the end of the world because I made a converter of my own.
But yes, the error is resolved it seems!

UPDATE:  I DO see that type now all of a sudden. Not sure why i didn;t earlier. so it seems to work perfect now

Alright, great! I tagged a new minor release (0.25.1) on the LdapTools library, as luckily there were only other minor changes at this point since the last tag. Closing this out. If you have any other questions let me know.


onboard designer to base aepp, desktop connection, airgap, ledger integrations

this is in progress. removing the sprint 38 label as we don't need the designer during this sprint.


feat(sdk/go): implement pg SDK for TinyGo

feat(sdk/go): implement pg SDK for TinyGo

The code about rdbms is similar on different db sdk. @adamreese  Should we move rdbms code into a internal pkg?

I'm not sure if there's much code we can share because the C types that are generated per API are distinct types.

I tested executing outbound pg sql with parameters that was failed. Error log is
query failed: Error { kind: Db, cause: Some(DbError { severity: "ERROR", parsed_severity: Some(Error), code: SqlState(E42601), message: "syntax error at or near \",\"", detail: None, hint: None, position: Some(Original(27)), where_: None, schema: None, table: None, column: None, datatype: None, constraint: None, file: Some("scan.l"), line: Some(1180), routine: Some("scanner_yyerror") }) }

It's same on rust outbound pg sdk too.


Regex or escaping problem

Hi,
I try to do a simple query in my python script but I've a problem and I need your help.
In InfluxDB cli : No problem
select Percent_Free_Space from win_disk where time > now() - 1m and "instance" =~ /D:\\MountPoints\\DB10_DATA/ and "host" =~ /DB01/
In Python script : Problem
for i in instances_list:     query = 'select last(percent_free_space) from "win_disk" WHERE "instance" =~ /{}/ AND "host" =~ /{}/'.format(i, 'DB01')     query_percent_free_disk_space_instance = client.query(query)     response_percent_free_disk_space_instance = list(query_percent_free_disk_space_instance)     print(response_percent_free_disk_space_instance)
instances_list are built using :
query_win_disk_instance = client.query('SHOW TAG VALUES FROM "win_disk" WITH KEY = "instance" WHERE host =~ /{0}/'.format('DB01')) response_win_disk_instance = list(query_win_disk_instance.get_points()) instances_list = [e['value'] for e in response_win_disk_instance]
Error :
influxdb.exceptions.InfluxDBClientError: 400: {"error":"error parsing query: error parsing regexp: invalid escape sequence: \M at line 1, char 68"}
Have you a solution at this problem ?
Thanks

Is this issue still occurring in the latest release?

Closing due to lack of response -- we can reopen if needed.


ignore tslinting typings and reference.ts with module file structure

plz create a new branch for each PR, don't send PR from your master


[T4A2][F09-B3]Yuan Wenyi

Convert the Parser method to static method
Add instance-level member int sequenceNumber and class-level member nextSequenceNumber to the Person class

Good job!!

@ywy13250 Some comments added. Please close the PR after reading comments.


Doc: Add integration attribute and replace plugin header

Release notes
[rn:skip]  [Use changelog entry]
What does this PR do?
Adds :integration:attribute and replaces basic plugin header with integration header in  output-elastic_workplace_search.asciidoc

Published at v2.1.1: https://rubygems.org/gems/logstash-integration-elastic_enterprise_search/versions/2.1.1


Add setting for maximum number of columns

Right now the number of columns is calculated by dividing the available
space by the necessary space. I want to have an option to limit the
number of calculated columns, without changing the width of the div my
grid lives in.
In order to limit the number of calculated columns max_cols is set to a
number. To have 'unlimited' columns set the value of max_cols to -1 (as
is done in the default settings). This provides the arbitrary useful
functionality to set the max number of columns to 0. Any sideeffect
caused by this is mitigated by checking that the max_cols is larger
than the min_cols setting.

Hi, I'm facing a similar problem. I'm initialising gridster as below but it always renders more than 2 cols in a row. Any advice?
$(".gridster ul").gridster({
                 widget_margins: [10, 10],
                 widget_base_dimensions: [300, 170],
                 autogrow_cols: false,
                 max_cols: 2,
                 resize: {
                     enabled: false
                 }
             });

Thanks


Can You Expain How ToMake bot Clearly bro

i have done the bot by seeing your instructions but the bot not working why bro

#1

#1


KAS Grants to Attributes/Values should be able to be LISTed

Background
We have a concept in policy protos of assignments of KASs to Attribute Definitions, and assignments to Attribute Values.
https://github.com/opentdf/platform/blob/main/service/policy/attributes/attributes.proto#L11-L23
There are administration and test needs to LIST the known KAS grants in platform policy.
Acceptance Criteria

[ ] new LIST protos/RPC ListKeyAccessServerGrants that returns:

[ ] NamespaceGrants with KAS info and Namespace info (id, ns fqn)
[ ] AttributeGrants with KAS info and Attribute info (id. attr fqn)
[ ] ValueGrants with KAS info and Value info (val id, val fqn, attr id)

[x] new db queries in sqlc (see query.sql and readme) to support this list API
[x] integration tests & fixtures

Blocked by #1296

Only partially completed


'-a' flag  produces different output than '-a='

for example, when listing configs:
ENG000656:workflow aaronschlesinger$ deis config:list -a test1
=== test1 Config
A        B
FOO      1
ONE      1
ENG000656:workflow aaronschlesinger$ deis config:list -a=test1
=== =test1 Config

The former and the latter should produce the same output, or one should error.
Replaces deis/workflow#127

This is the expected behavior (posting to add some context from deis/controller#127).
Normal flags are--flagname=<value> and the short version of the flag is -f <value>.
Docopt doesn't really support this.


chore: set timeout for nodejs tests

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

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

Your semantic-release bot :package::rocket:


Recaptcha fixes

What this PR does / why we need it:
Recaptcha needs a bit if rework to function correctly.
Which issue this PR fixes (optional - uncomment and add issue):
fixes #3
Special notes:
Still needs styling and conflict resolution. The errors not showing is already open as issue.

Let's do the error messages in a separate PR.

The styling on the recaptcha. Probably just make it responsive on mobile and fit a bit better into the overall fragment. Right now it sits awkwardly on the left side without fitting into any specific area.

I tried aligning it with the button. It might be a bit better. Check them out.

Styling looks good. Great work.
Conflicts still need resolving.

You opened another PR. Ok let's close it here than.


CI/CD running data pipeline in FlowEHR

As a Data Engineer
I want to make sure that FlowEHR runs integration tests on data pipeline
So that I can be confident that my pipeline works with the rest of FlowEHR
Acceptance criteria:

Github Action workflow step that checks that checks that the data pipeline has ran successfully

Notes:

The idea is that he data pipeline will have data quality checks that constitute part of this integration test

Unit tests for the data pipeline code will run in its own repo

[x] #137

Possibly for the future but quality checks are interesting - we might need the ability to switch them on/off - if we're running against synth data in a PR / infra-test then i'd guess all the data quality checks (like "a heart rate should be 20 - 120") would likely fail

Blocked yet another time, this time by not having data source secrets in Databricks secret scope:

Blocked on not having an environment setup for UCLH-FlowEHR in which to run these tests


Migrate from Travis to Github Actions

Github Actions is built in by default to Github and generally has lower setup barrier than Travis.  We've recently moved NixOps and nixpkgs-update over to it and it's generally quite nice.  It might be worth considering for this repo as well.

We could also include multiple CI configs (github actions, travis, builds.sr.ht, gitlab...) and let the user choose

No objections if someone maintains it.

I have in my repository now this github action: https://github.com/Mic92/nur-packages/blob/master/.github/workflows/build.yml
It is simpler than our current travis template.

cc @domenkozar

Looks good - I plan to redo the action to fix the current two annoying issues in a couple of days :)

This is my attempt: https://github.com/nix-community/nur-packages-template/pull/20

GitHub Actions would be appreciated since I have some packages that trigger the time limit on Travis CI.

We have both now. Travis support is also about to be revamped leaving users to choice which to pick.


:pushpin: Pin dependencies for build

Pin dependencies for build

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

@conda-forge-admin, please rerender


How to add board column value to task details/form?

Thanks for the well written article.
I followed the examples and was able to add board column/lane to the Backlog items. Unfortunately, the same thing doesn't seem to work for tasks in Sprint board columns. Am I missing something?
Here's some more context...
This works well - Backlog item view shows the right Details for the column and lane 😊 thank you for the article

Here's the task example, which is not working. The column and lane shows only a padlock icon and no values:

The task is in the "Peer Review" column in the sprint board, and I was expecting to see "Peer Review" in the column field.

Is there a different column field i should be using for tasks?
Thank you :)
[Enter feedback here]

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

ID: 693f7181-d29c-151f-3622-266b9046e1fe
Version Independent ID: afc2f554-6ab0-19e8-d0f0-c14af8c89b64
Content: Customize the web form to an inherited process - Azure DevOps Services
Content Source: docs/organizations/settings/work/customize-process-form.md
Product: devops
Technology: devops-agile
GitHub Login: @KathrynEE
Microsoft Alias: kaelli

Hi @ivyclark - thanks for your question. While we look at whether to cover your scenario in the article, these resources may shed some light:

Azure DevOps Services
Azure DevOps Support Bot
Azure DevOps on Stack Overflow

@ivyclark - Thank you for your inquiry.  There aren't corresponding Kanban fields--e.g., Board Column, Board Column Done--for Tasks to support tracking of intermediate states you add to Taskboard columns. If this is a feature you'd like supported, please request it through our Developer community page.

Thanks @KathrynEE and @TimShererWithAquent for confirming.  We'll use a different approach.


Add support for using comment system other than Disqus

I don't use disqus. I was hoping to have some support from the theme itself. Right now, I am overriding the single.html to accommodate the comment system, but is there a better way to do that then this PR?

Feel free to close the PR if there are better solutions then this.

Here's my thought:
If people want to use a custom comment system, overriding the template is a must, because we can't offer every comment system. Adding an extra config makes it seems more complicated. Why not put everything inside a layouts/partials/comments.html by default, so if people wants to customize, they can just copy this file to Hugo site's root layouts/partial/ to do whatever they want which will do the override job very well.
Thank you so much for sharing your ideas, however, I think it's easier to do this myself, so I'm going to close this PR. By the way, It feels amazing to see someone is actually using my theme and wants to improve it! 😊


update the name of image serverjre8 in docker.io

Oracle no longer controls the store/oracle images and do not recommend they are used as base images. The Dockerfiles in this repo use the oracle/ prefix to identify images that should be built locally using another Dockerfile from this repo.
In this case, you should build the OracleJava/8 first as oracle/serverjre:8 and then build the WebLogic images.


How to join an existing domain  - winbindd not found

We would like to be able to configure samba as a ROLE_DOMAIN_MEMBER.  I have the correct parameters set and can can enter the shell and "net join ads" with proper credentials, but there is no winbindd process and so clients cannot properly authenticate using ADS credentials from an external server.
Where is winbindd?

Yes we might need to install the samba-winbind package.

The problem is that I want to use SAMBA as an AD domain member (not a DC), but this appears to be impossible with Alpine Linux because it uses "musl", and musl will not ever talk to winbind.  So Samba works ok in Alpine for a standalone server, but is not going to work as an AD domain member.
Found this in one of my MANY searches for help:
Never used Alpine Linux, but a quick internet search shows that the
best way to use Samba with Alpine Linux is to not use Samba with Alpine
Linux.

Moving on to a different container image...


Comment based help spring clean

The documentation on many functions in this module, especially around the examples, is lacking.
If you've got the documentation bug, please help!

Have you considered converting the documentation to markdown using PlatyPS? It would give you web documentation in addition to Get-Help documentation.
I generated a quick example here:
https://github.com/tomlarse/BurntToast/blob/iss77/docs/
And the externalhelp MAML-XML file here:
https://github.com/tomlarse/BurntToast/blob/iss77/BurntToast/en-US/BurntToast-help.xml

I did a long time ago (that's how the current markdown help was generated... but it's now well out of date.)
External and/or Update-able help has also been on my backlog for ages, but I can handle that once everything is up to date.

I'll do a bit of this but I feel there is room for a couple folks to dig in. Many hands makes light work.

Absolutely! There's a tonne to be done and plenty of room for multiple PRs from people.


Do not throw if template root has comment node as a sibling

Quick solution idea for https://github.com/AmpersandJS/ampersand-view/issues/88

let's make a decision here and close this up! code looks good (+1). @mikehedman has a valid point--perhaps not so minimalist. he's lookin' to help keep @lukekarrys filesize report numbers down :smile:

I'd vote for a note in the comments and maybe updating the error message to be Views can only have one root element, including comment nodes.

I'm with @lukekarrys on this. Let's improve the error thrown as per his suggestion.

Updated.

@kamilogorek sorry, I don't think I was clear enough. What I'm thinking is we just change the error but remove the other code changes. As long as people realize what the error is I think it's fine to not support having a comment at the root. Most template languages have some syntax to allow comments that don't end up in the compiled source anyway.

@HenrikJoreteg ok, sounds fair enough. Reversed and updated.

+1 :shipit:

released as v7.4.2


Update frost.toml for testnet-15

Description
All previous genesis validators should name their PRs "Update {validator_alias}.toml for tesntet-15" and provide links to previous PRs merged.
If this is an UPDATE for a previous genesis validator
Checks are made against your net_address. If this has changed since the previous testnet, make sure you provide links of previous prs merged from your previous git username.
Thanks in advance!
Checklist before merging

[ ] Only one toml is added in this PR
[ ] The file being added is indeed a .toml file
[ ] The toml being added is to the correct folder, and only to the correct folder
[ ] The eth_hot_key and eth_cold_key are present
[ ] The email, discord, elements telegram, and twitter fields are present and valid

Previous Pull request:
https://github.com/anoma/namada-testnets/pull/1104


Please add Fused Gromov Wasserstein

Hi,
To compare huge molecules with different numbers of atoms, It would be great to have a way to do this:
https://tvayer.github.io/materials/Titouan_Marseille_2019.pdf
http://proceedings.mlr.press/v97/titouan19a.html
One problem we hit was, running out of GPU memory, it would be hella useful to do some blockwise reduction or something like that

Hi bionicles,
Currently given the preliminary stage of this package, advanced algorithms such as those you cite are out of current project scope.
However, if you'd like to implement such algorithms and contribute to the package, feel free :)
zsteve


Changing Servers

I know this has been brought up a few times. But for the life of me I just cant figure out how to get it to change servers. Or if it is, to verify that it is looking at the new server.
I modified the docker-compose.yml file and have re-ran the ansible-playbook main.yml. But nothing seems to change for me.

I guess nevermind, not sure what I did as I kept monkeying around with it after this post and now it is showing higher numbers.


[Bug]: Text selection is different with what we see

Attach (recommended) or Link to PDF file
PDF file
Web browser and its version
Chrome 130.0.6723.117
Operating system and its version
Windows 11 22631.4460
PDF.js version
v4.8.69
Is the bug present in the latest PDF.js version?
Yes
Is a browser extension
No
Steps to reproduce the problem

Open https://stackblitz.com/~/github.com/IKKEM-Lin/pdfjs-test
Select "the catholyte and anolyte" as follow image and copy text

What is the expected behavior?
The paste result should be "the catholyte and anolyte" as text selection.
BTW: the behavior of pdf viewer embed in google chrome is work as expected.
What went wrong?
The paste result is "he catholyte and anolyt".
Link to a viewer
https://stackblitz.com/~/github.com/IKKEM-Lin/pdfjs-test
Additional context
No response

@Snuffleupagus I have the exact same issue running Firefox v 133 on Ubuntu. I also have the same issue with my PDFs.  Please help me understand how this bug is closed if it only works on a Beta or Nightly version of the current browsers. Can you please elaborate? Thank you.


Use multiple ZK sessions for BK and ManagedLedger

Motivation
Using multiple ZK sessions in ManagedLedger can speed up the concurrent graceful shutdown and reloading of many topics at the same time.
Default is being kept to 1 single ZK session.
Modifications
Create multiple ZK sessions and multiple BK instances. Topics are hashed to a specific ZK/BK instance.

@rdhabalia can you redo the failover tests with this patch, using ~16 zk sessions to check the difference?

@merlimat I am not sure about which failover tests we should run ?

@rdhabalia I was meaning the broker graceful shutdown to measure the perceived unavailability time of topics. With multiple zk session, for 1K topics, it should be well < 1sec

Sure, I think I will spend some time to prepare the test and perform that test because I couldn't find the same test right now. I will do it by this week and will post the result.

I was meaning the broker graceful shutdown

I tested it in two rounds (6K topics and 12K topics) in two different brokers (1 with 16 Zksession and other with 1 zkSession). Below comparison doesn’t show significant difference in unloading bundles. I think multi-zkSession can be helpful if we unload bundles parallely. I will make that change and will test it with again. Please find below result for both the results:
(1) Round 1:
Total NS=3 (each with 3 bundles), bundles = 9 , total topics =6000 distributed among 9 bundles
(A) Started broker with 16 ZKSession

Log for confirmation of 16 zk-session
00:13:12.798 [main] INFO  c.y.p.b.ManagedLedgerClientFactory   - Successfully created 16 ZooKeeper sesssion(s)
total loaded topic in destination metrics: before shutting down brokers: 6313
shutdown broker log

00:33:21.695 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun1_0/0x00000000_0xffffffff namespace-bundle with 2000 topics completed in 1291.0 ms
00:33:21.815 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/shared-consumer_0/0x00000000_0xffffffff namespace-bundle with 102 topics completed in 119.0 ms
00:33:21.825 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading pulsar/perf-gq1b/perf1b-broker2.messaging.gq1.yahoo.com:4080/0x00000000_0xffffffff namespace-bundle with 0 topics completed in 9.0 ms
00:33:21.873 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/shared-consumer_1/0x00000000_0xffffffff namespace-bundle with 102 topics completed in 47.0 ms
00:33:22.634 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun1_1/0x00000000_0xffffffff namespace-bundle with 2000 topics completed in 761.0 ms
00:33:23.322 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun1_2/0x00000000_0xffffffff namespace-bundle with 2000 topics completed in 687.0 ms
00:33:23.352 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/shared-consumer_2/0x00000000_0xffffffff namespace-bundle with 102 topics completed in 30.0 ms
00:33:23.353 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms/perf-gq1b/perf1b-broker2.messaging.gq1.yahoo.com:4080/0x00000000_0xffffffff namespace-bundle with 0 topics completed in 0.0 ms
00:33:23.357 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/reconnect_0/0x00000000_0xffffffff namespace-bundle with 7 topics completed in 3.0 ms
:
:
00:33:23.357 [shutdown-thread-501-1] INFO  c.y.p.broker.service.BrokerService   - Unloading 9 namespace-bundles completed in 2.962 seconds

(B) Started broker with 1 zk session (broker without this commit)

Client reconnected to this broker and loaded same topics and then triggered shutdown

00:54:36.115 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun1_1/0x00000000_0xffffffff namespace-bundle with 2000 topics completed in 976.0 ms
00:54:36.850 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun1_0/0x00000000_0xffffffff namespace-bundle with 2000 topics completed in 735.0 ms
00:54:36.962 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/shared-consumer_2/0x00000000_0xffffffff namespace-bundle with 102 topics completed in 111.0 ms
00:54:37.602 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun1_2/0x00000000_0xffffffff namespace-bundle with 2000 topics completed in 639.0 ms
00:54:37.608 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/reconnect_0/0x00000000_0xffffffff namespace-bundle with 7 topics completed in 5.0 ms
00:54:37.642 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/shared-consumer_0/0x00000000_0xffffffff namespace-bundle with 102 topics completed in 34.0 ms
00:54:37.643 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading pulsar/perf-gq1b/perf1b-broker1.messaging.gq1.yahoo.com:4080/0x00000000_0xffffffff namespace-bundle with 0 topics completed in 1.0 ms
00:54:37.678 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/shared-consumer_1/0x00000000_0xffffffff namespace-bundle with 102 topics completed in 34.0 ms
00:54:37.680 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms/perf-gq1b/perf1b-broker1.messaging.gq1.yahoo.com:4080/0x00000000_0xffffffff namespace-bundle with 0 topics completed in 1.0 ms
:
:
00:54:37.680 [shutdown-thread-69-1] INFO  c.y.p.broker.service.BrokerService   - Unloading 9 namespace-bundles completed in 2.565 seconds

Round 2:
Total NS: 9 (each with 3 bundles) , Total Bundle=27, Total topics = 12000
(A) Broker with zkSession = 16
01:12:30.174 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun2_0/0x00000000_0xffffffff namespace-bundle with 1334 topics completed in 540.0 ms
01:12:30.592 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun2_2/0x00000000_0xffffffff namespace-bundle with 1334 topics completed in 417.0 ms
01:12:30.611 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading pulsar/perf-gq1b/perf1b-broker2.messaging.gq1.yahoo.com:4080/0x00000000_0xffffffff namespace-bundle with 0 topics completed in 18.0 ms
01:12:31.041 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun2_1/0x00000000_0xffffffff namespace-bundle with 1334 topics completed in 430.0 ms
01:12:31.417 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun2_4/0x00000000_0xffffffff namespace-bundle with 1333 topics completed in 376.0 ms
01:12:31.821 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun2_7/0x00000000_0xffffffff namespace-bundle with 1333 topics completed in 403.0 ms
01:12:32.168 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun2_5/0x00000000_0xffffffff namespace-bundle with 1333 topics completed in 347.0 ms
01:12:32.176 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms/perf-gq1b/perf1b-broker2.messaging.gq1.yahoo.com:4080/0x00000000_0xffffffff namespace-bundle with 0 topics completed in 7.0 ms
01:12:32.611 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun2_6/0x00000000_0xffffffff namespace-bundle with 1333 topics completed in 435.0 ms
01:12:33.052 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun2_3/0x00000000_0xffffffff namespace-bundle with 1333 topics completed in 441.0 ms
01:12:33.464 [shutdown-thread-501-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun2_8/0x00000000_0xffffffff namespace-bundle with 1333 topics completed in 411.0 ms
:
:
01:12:33.464 [shutdown-thread-501-1] INFO  c.y.p.broker.service.BrokerService   - Unloading 11 namespace-bundles completed in 3.846 seconds

(B) Broker with zkSession = 1
01:17:38.679 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun2_6/0x00000000_0xffffffff namespace-bundle with 1333 topics completed in 489.0 ms
01:17:39.075 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun2_2/0x00000000_0xffffffff namespace-bundle with 1334 topics completed in 395.0 ms
01:17:39.488 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun2_8/0x00000000_0xffffffff namespace-bundle with 1333 topics completed in 413.0 ms
01:17:39.858 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun2_0/0x00000000_0xffffffff namespace-bundle with 1334 topics completed in 369.0 ms
01:17:40.254 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun2_3/0x00000000_0xffffffff namespace-bundle with 1333 topics completed in 395.0 ms
01:17:40.615 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun2_4/0x00000000_0xffffffff namespace-bundle with 1333 topics completed in 360.0 ms
01:17:40.967 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun2_5/0x00000000_0xffffffff namespace-bundle with 1333 topics completed in 352.0 ms
01:17:41.299 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun2_1/0x00000000_0xffffffff namespace-bundle with 1334 topics completed in 332.0 ms
01:17:41.651 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun2_7/0x00000000_0xffffffff namespace-bundle with 1333 topics completed in 351.0 ms
01:17:41.652 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms/perf-gq1b/perf1b-broker1.messaging.gq1.yahoo.com:4080/0x00000000_0xffffffff namespace-bundle with 0 topics completed in 1.0 ms
01:17:41.653 [shutdown-thread-69-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading pulsar/perf-gq1b/perf1b-broker1.messaging.gq1.yahoo.com:4080/0x00000000_0xffffffff namespace-bundle with 0 topics completed in 1.0 ms
:
:
01:17:41.653 [shutdown-thread-69-1] INFO  c.y.p.broker.service.BrokerService   - Unloading 11 namespace-bundles completed in 3.475 seconds

I have added concurrent-bundle unloading change and tested result with both versions:
Round 3: Total NS=12, Total topics = 22K
(A) Broker with zkSession = 16
00:42:16.669 [main] INFO  c.y.p.b.ManagedLedgerClientFactory   - Successfully created 16 ZooKeeper sesssion(s)
:
00:54:28.400 [pulsar-1-18] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading pulsar/perf-gq1b/perf1b-broker2.messaging.gq1.yahoo.com:4080/0x00000000_0xffffffff namespace-bundle with 0 topics completed in 104.0 ms
00:54:28.400 [pulsar-1-3] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms/perf-gq1b/perf1b-broker2.messaging.gq1.yahoo.com:4080/0x00000000_0xffffffff namespace-bundle with 0 topics completed in 104.0 ms
00:54:34.574 [pulsar-1-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_4/0x00000000_0xffffffff namespace-bundle with 1833 topics completed in 6278.0 ms
00:54:34.586 [pulsar-1-16] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_9/0x00000000_0xffffffff namespace-bundle with 1833 topics completed in 6290.0 ms
00:54:34.590 [pulsar-1-11] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_6/0x00000000_0xffffffff namespace-bundle with 1833 topics completed in 6294.0 ms
00:54:34.599 [pulsar-1-14] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_10/0x00000000_0xffffffff namespace-bundle with 1833 topics completed in 6303.0 ms
00:54:34.609 [pulsar-1-6] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_2/0x00000000_0xffffffff namespace-bundle with 1834 topics completed in 6314.0 ms
00:54:34.611 [pulsar-1-15] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_1/0x00000000_0xffffffff namespace-bundle with 1834 topics completed in 6315.0 ms
00:54:34.611 [pulsar-1-12] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_11/0x00000000_0xffffffff namespace-bundle with 1833 topics completed in 6315.0 ms
00:54:34.623 [pulsar-1-17] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_0/0x00000000_0xffffffff namespace-bundle with 1834 topics completed in 6327.0 ms
00:54:34.627 [pulsar-1-8] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_5/0x00000000_0xffffffff namespace-bundle with 1833 topics completed in 6331.0 ms
00:54:34.630 [pulsar-1-5] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_7/0x00000000_0xffffffff namespace-bundle with 1833 topics completed in 6334.0 ms
00:54:34.640 [pulsar-1-10] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_8/0x00000000_0xffffffff namespace-bundle with 1833 topics completed in 6344.0 ms
00:54:34.640 [pulsar-1-2] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_3/0x00000000_0xffffffff namespace-bundle with 1834 topics completed in 6345.0 ms
:
00:54:34.641 [shutdown-thread-501-1] INFO  c.y.p.broker.service.BrokerService   - Unloading 14 namespace-bundles completed in 6.361 seconds

(B) Broker with zkSession = 1
01:06:17.218 [pulsar-1-3] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading pulsar/perf-gq1b/perf1b-broker1.messaging.gq1.yahoo.com:4080/0x00000000_0xffffffff namespace-bundle with 0 topics completed in 53.0 ms
01:06:17.218 [pulsar-1-5] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms/perf-gq1b/perf1b-broker1.messaging.gq1.yahoo.com:4080/0x00000000_0xffffffff namespace-bundle with 0 topics completed in 54.0 ms
01:06:22.350 [pulsar-1-8] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_9/0x00000000_0xffffffff namespace-bundle with 1833 topics completed in 5186.0 ms
01:06:22.357 [pulsar-1-16] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_8/0x00000000_0xffffffff namespace-bundle with 1833 topics completed in 5193.0 ms
01:06:22.419 [pulsar-1-6] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_1/0x00000000_0xffffffff namespace-bundle with 1834 topics completed in 5254.0 ms
01:06:22.431 [pulsar-1-17] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_6/0x00000000_0xffffffff namespace-bundle with 1833 topics completed in 5266.0 ms
01:06:22.452 [pulsar-1-2] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_3/0x00000000_0xffffffff namespace-bundle with 1834 topics completed in 5288.0 ms
01:06:22.461 [pulsar-1-4] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_4/0x00000000_0xffffffff namespace-bundle with 1833 topics completed in 5296.0 ms
01:06:22.464 [pulsar-1-7] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_7/0x00000000_0xffffffff namespace-bundle with 1833 topics completed in 5299.0 ms
01:06:22.464 [pulsar-1-20] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_5/0x00000000_0xffffffff namespace-bundle with 1833 topics completed in 5299.0 ms
01:06:22.475 [pulsar-1-19] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_11/0x00000000_0xffffffff namespace-bundle with 1833 topics completed in 5311.0 ms
01:06:22.482 [pulsar-1-12] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_2/0x00000000_0xffffffff namespace-bundle with 1834 topics completed in 5318.0 ms
01:06:22.485 [pulsar-1-15] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_0/0x00000000_0xffffffff namespace-bundle with 1834 topics completed in 5320.0 ms
01:06:22.485 [pulsar-1-11] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun4_10/0x00000000_0xffffffff namespace-bundle with 1833 topics completed in 5320.0 ms
:
01:06:22.485 [shutdown-thread-69-1] INFO  c.y.p.broker.service.BrokerService   - Unloading 14 namespace-bundles completed in 5.33 seconds

After making concurrent bundle unloading change : unload 2 bundles concurrently
Total-topics: 15K
total-budles: 14
(1) 1 zk session : total = 3.791 seconds
03:51:26.283 [pulsar-1-13] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun8_1/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 1043.0 ms
03:51:26.283 [pulsar-1-18] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun8_10/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 1043.0 ms
03:51:26.283 [pulsar-1-9] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun8_4/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 1043.0 ms
03:51:27.156 [pulsar-1-9] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun8_3/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 871.0 ms
03:51:27.156 [pulsar-1-12] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun8_11/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 872.0 ms
03:51:27.157 [pulsar-1-7] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun8_7/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 873.0 ms
03:51:27.177 [pulsar-1-15] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms/perf-gq1b/perf1b-broker1.messaging.gq1.yahoo.com:4080/0x00000000_0xffffffff namespace-bundle with 0 topics completed in 20.0 ms
03:51:27.987 [pulsar-1-20] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun8_0/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 830.0 ms
03:51:27.988 [pulsar-1-2] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun8_5/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 831.0 ms
03:51:27.988 [pulsar-1-10] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun8_9/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 811.0 ms
03:51:27.998 [pulsar-1-1] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading pulsar/perf-gq1b/perf1b-broker1.messaging.gq1.yahoo.com:4080/0x00000000_0xffffffff namespace-bundle with 0 topics completed in 10.0 ms
03:51:29.019 [pulsar-1-8] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun8_6/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 1020.0 ms
03:51:29.020 [pulsar-1-13] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun8_8/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 1031.0 ms
03:51:29.020 [pulsar-1-3] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun8_2/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 1032.0 ms
:
03:51:29.021 [shutdown-thread-69-1] INFO  c.y.p.broker.service.BrokerService   - Unloading 14 namespace-bundles completed in 3.791 seconds

Summary of each bundle unload time:
1250 topics ->1043.0 ms
1250 topics ->1043.0 ms
1250 topics ->1043.0 ms
1250 topics ->871.0 ms
1250 topics ->872.0 ms
1250 topics ->873.0 ms
1250 topics ->830.0 ms
1250 topics ->831.0 ms
1250 topics ->811.0 ms
1250 topics ->1020.0 ms
1250 topics ->1031.0 ms
1250 topics ->1032.0 ms

(2) 16 zk-session: time to unload all bundles: 4.148 seconds
04:25:22.151 [main] INFO  c.y.p.b.ManagedLedgerClientFactory   - Successfully created 16 ZooKeeper sesssion(s)
:
04:34:39.239 [pulsar-1-9] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun12_11/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 1114.0 ms
04:34:39.243 [pulsar-1-6] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun12_4/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 1118.0 ms
04:34:39.248 [pulsar-1-13] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun12_5/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 1123.0 ms
04:34:40.216 [pulsar-1-15] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun12_3/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 967.0 ms
04:34:40.216 [pulsar-1-9] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun12_7/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 977.0 ms
04:34:40.218 [pulsar-1-19] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun12_2/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 974.0 ms
04:34:40.236 [pulsar-1-19] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading pulsar/perf-gq1b/perf1b-broker2.messaging.gq1.yahoo.com:4080/0x00000000_0xffffffff namespace-bundle with 0 topics completed in 17.0 ms
04:34:41.196 [pulsar-1-14] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun12_0/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 979.0 ms
04:34:41.196 [pulsar-1-3] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun12_6/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 959.0 ms
04:34:41.196 [pulsar-1-7] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun12_8/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 980.0 ms
04:34:41.205 [pulsar-1-8] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms/perf-gq1b/perf1b-broker2.messaging.gq1.yahoo.com:4080/0x00000000_0xffffffff namespace-bundle with 0 topics completed in 9.0 ms
04:34:42.261 [pulsar-1-17] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun12_1/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 1064.0 ms
04:34:42.261 [pulsar-1-6] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun12_10/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 1055.0 ms
04:34:42.262 [pulsar-1-11] INFO  c.y.p.broker.namespace.OwnedBundle   - Unloading cms-java-systest/perf-gq1b/simple-backlogun12_9/0x00000000_0xffffffff namespace-bundle with 1250 topics completed in 1065.0 ms
04:34:42.262 [shutdown-thread-501-1] INFO  c.y.p.broker.service.BrokerService   - Unloading 14 namespace-bundles completed in 4.148 seconds

Summary of each bundle unload time:
1250 topics ->1114.0 ms
1250 topics ->1118.0 ms
1250 topics ->1123.0 ms
1250 topics ->967.0 ms
1250 topics ->977.0 ms
1250 topics ->974.0 ms
1250 topics ->979.0 ms
1250 topics ->959.0 ms
1250 topics ->980.0 ms
1250 topics ->1064.0 ms
1250 topics ->1055.0 ms
1250 topics ->1065.0 ms

@rdhabalia Thanks for doing the detailed test! I'm closing this PR then, since there is no advantage.
Probably the improvement I saw when I did my tests several months ago was due to either:
https://github.com/merlimat/pulsar/commit/a61ca62a395bb79dab0bfa0e98081ba1a26ea722
or
https://github.com/merlimat/pulsar/commit/9e175dd3cfb8cdf165004dd2b53616e224e60b0c
The 1st one I think it's kind of safe, though the 2nd commit is a bit tricky because that would remove the ledger fencing if there were no writes


add pylint-common and pylint-django to requirements/local.txt

pylint-common, pylint-celery and pylint-django are defined as plugins in pylintrc, perhaps we should add them to the requirements?
# Code quality
# ------------------------------------------------------------------------------
flake8==3.5.0  # https://github.com/PyCQA/flake8
coverage==4.5.1  # https://github.com/nedbat/coveragepy
pylint-common==0.2.5  # https://github.com/landscapeio/pylint-common
pylint-django==0.9.4  # https://github.com/PyCQA/pylint-django
pylint-celery==0.3  # https://github.com/PyCQA/pylint-celery

Or for pylint-common remove it from the pylintrc instead as according to https://github.com/landscapeio/pylint-common
"Note: No longer maintained
This was used as part off prospector but has been removed. It is no longer maintained (in this fork at least) as most of the functions are now replaced by pylint builtins or are no longer valid."

What about pylint-plugin-utils?
pylint-plugin-utils==0.4  # https://github.com/PyCQA/pylint-plugin-utils`

I don't think we should pylint-plugin-utils, as far as I understand, it's a module to help write plugin, not meant to be used directly?
Agree with @MarcSkovMadsen, we should clean up our references to pylint-common, but the other 2 are welcome additions, I think.


RSS feed

^ feature request :)

@NotWoods I actually do generate one, but I got rid of the link to it from the sidebar 😛 http://kevinyap.ca/atom.xml


OS: Add support for Cucumber Linux

Description
Add support for Cucumber Linux.
They use Slackware's package management scripts, so the package manager is pkgtool. https://wiki.cucumberlinux.com/wiki/package_management
Resolves  #1213

--distro_shorthand on

LGTM :+1:


fix: osmo parser fixes

Parse osmo & cosmos tx history correctly for swaps.
To test:
make sure you are using the best cosmos/osmosis nodes, see: https://github.com/shapeshift/web/pull/2375
link locally, swap atom -> osmo and osmo -> atom. see transactions in history are for correct amounts of outgoing and incoming tokens.
NOTE ABOUT A KNOWN ISSUE:
You will not see incoming "atom" after an osmo->atom trade come over the websockets. you will only see this tx after reloading the page. This is a known issue: https://github.com/shapeshift/lib/issues/961
Screenshot below demonstrates  atom -> osmo followed by osmo -> atom (read from the bottom up)
You will notice transactions with no amounts, these are the ibc atom on osmo tokens being sent and received ephemerally during the trade

@elmutt Can we get more descriptive in what exactly this fixes i.e how broken is "broken" now and what should we expect to see when testing this?

@elmutt Can we get more descriptive in what exactly this fixes i.e how broken is "broken" now and what should we expect to see when testing this?

Added testing instructions.

Question, if the ibc events during trade are ephemeral, could/should we omit those entirely as it is a wash and just clutters up the tx history? I suppose it is technically a transaction that occurs for the user, but I don't know how useful it is to display?
@shapeshift/product

I do think it's important that we display an "IBC send" if possible. We can make a separate ticket for it, because I dont consider it a blocker. Just thinking in the case that it gets stuck on the IBC channel, without the trade executing (for some reason) the user can see where their funds are.

Tested locally and this does what is says it does.
The issue with requiring enough balance of the receive asset likely needs to be solved before we merge.
I'm not sure of the longer-term solution, but in the short-term we can block the user from performing the trade if the receive balance is insufficient. This should only be a couple of lines to add.
Pending @shapeshift/product's thoughts on this.

I don't think we should need to hold up merging this PR waiting on an answer for the zero balance thing. We just cant release to the public without it but its not really related to this PR

I don't think we should need to hold up merging this PR waiting on an answer for the zero balance thing. We just cant release to the public without it but its not really related to this PR

Yep, as it's still behind a flag I'm ok with that.
Just spin up a ticket for it before this gets merged so we can track the issue.

I don't think we should need to hold up merging this PR waiting on an answer for the zero balance thing. We just cant release to the public without it but its not really related to this PR

Yep, as it's still behind a flag I'm ok with that.
Just spin up a ticket for it before this gets merged so we can track the issue.

https://github.com/shapeshift/web/issues/2377

Tested again as a sanity check:

Swap confirmation Tx

https://www.mintscan.io/osmosis/txs/96384380E94EA8B70CE00FDB801C7B62100D97C083BF1CA12A76E85CAEF65BAF

Tx history

This looks good. It seems that when there is a Tx failure, our Tx history gets shuffled and sets the previous successful swap Tx as the very last Tx (the first in the list from the top).
I'm conceptually ok with this PR as this fixes what it is supposed to fix, but after you confirm that Tx history shuffle bug  @elmutt, we should create an issue for it

Tested again as a sanity check:

Swap confirmation Tx

https://www.mintscan.io/osmosis/txs/96384380E94EA8B70CE00FDB801C7B62100D97C083BF1CA12A76E85CAEF65BAF

Tx history

This looks good. It seems that when there is a Tx failure, our Tx history gets shuffled and sets the previous successful swap Tx as the very last Tx (the first in the list from the top).
I'm conceptually ok with this PR as this fixes what it is supposed to fix, but after you confirm that Tx history shuffle bug @elmutt, we should create an issue for it. Ill stamp this after.

I haven't seen that exact issue manifest before and im not sure how these parser changes would result in them being out of order. Maybe it was a one-time fluke with unchained returning txs?
The only bug I'm currently aware of is during an osmo-> atom swap the atom tx will not appear until the page is refreshed, this issue:
https://github.com/shapeshift/lib/issues/961

Retested lib built and linked with the latest changes and the parsing still doesn't look right:

ATOM -> OSMO swap

IBC received Tx: https://www.mintscan.io/cosmos/txs/728B14C9E4469B1A880AD6C6406BF8E6C8B82D906EC960EB0A6CBD558F87BDDF
Looks like this is wrongly parsing this intermediary Tx as the receive Tx:
https://www.mintscan.io/cosmos/txs/728B14C9E4469B1A880AD6C6406BF8E6C8B82D906EC960EB0A6CBD558F87BDDF

OSMO -> ATOM swap looking good:

IBC swap exact amount Tx: https://www.mintscan.io/osmosis/txs/493E685C7C2E8E4817CF8271789E9901CF1C4506286E2386B00DFA1F17510B50


[BUG] VM Backup Created before v1.3 Should Not Report The Progress After Upgrade

Describe the bug
VM backup created before v1.3 should not show the progress after the upgrade to v1.3 and above
To Reproduce
Steps to reproduce the behavior:

Building Harvester with v1.2.1
Creating VM and doing VM Backup
Upgrade to Harvester v1.3.0
VM Backup has the status ReadyToUse but the progress stays at 0%

Expected behavior
VM Backup should hide the progress report in this condition
Environment

Harvester ISO version: master-head branch (commit 12d5e49354cdbdd9da88ffe46d452e55217cfee8)

Additional Context
For the VMBackup object created before the upgrade, it would have an empty value for the field .status.progress and .status.volumeBackups[*].progress, in the mean time, the field .status.readyToUse is already true, for example:
VMBackup created before upgrade:
apiVersion: harvesterhci.io/v1beta1
kind: VirtualMachineBackup
metadata:
  name: vm-b1
  namespace: default
spec:
  source:
    apiGroup: kubevirt.io
    kind: VirtualMachine
    name: vm
  type: backup
status:
  ....
  readyToUse: true
  ....
    name: vm-fzs6h
  volumeBackups:
  - creationTime: "2024-01-31T04:27:21Z"
    ....
    name: vm-b1-volume-vm-disk-0-jyd92
    persistentVolumeClaim:
    ....
    readyToUse: true
    volumeName: disk-0

VMBackup created after upgrade:
apiVersion: harvesterhci.io/v1beta1
kind: VirtualMachineBackup
metadata:
  name: vm-b2
  ....
spec:
  source:
    apiGroup: kubevirt.io
    kind: VirtualMachine
    name: vm
  type: backup
status:
  ....
  progress: 100
  readyToUse: true
  ....
  volumeBackups:
  - creationTime: "2024-01-31T08:31:56Z"
    ....
    name: vm-b2-volume-vm-disk-0-jyd92
    progress: 100
    readyToUse: true
    volumeName: disk-0
    volumeSize:<PHONE_NUMBER>0

Provide test result on v1.2-a822a3a4-head -> v1.3-4372cbc4-head, close as fixed.
Environment

Harvester

Version: v1.2-a822a3a4-head -> v1.3-4372cbc4-head
Profile: QEMU/KVM, 2 nodes (8C/20G/500G)
ui-source: Auto

Steps

Prerequisites

 Enable backup-target :heavy_check_mark:

 Create VM :heavy_check_mark:

 Backup VM :heavy_check_mark:

Upgrade to v1.3-head

 Upgrade successfully :heavy_check_mark:

 GUI shows VM backup correctly :heavy_check_mark:

 Restore ok :heavy_check_mark:


Appeal approval outside Guardian

Summary
Complex appeal approval flow can't be modelled using policy config YAML file so in that case, Guardian should be able to integrate with existing complex approval flow like bpmn.
Proposed solution
Guardian can integrate with exiting approval flow either by webhook or subscribe to events.

my rough thought for now is, we can introduce type field in the approval step configuration. If the approach for this is to fetch to external service, we can set the type as fetch and provide the host, creds, payload etc. While the existing human/auto approval step would be the normal type

Hmm. This is interesting. I can think of couple of types.

pardon me, I just realized that we already have strategy field with possible values auto and manual, we can simply introduce http for this 😁

my proposal for this:
# policy
id: my-policy
steps:
- name: owner-approval
  strategy: manual
  approvers:
  - $appeal.resource.details.owner
- name: external-approval
  strategy: auto
  http:
    url: http://example.com/approval/$appeal.account_id
    authorization:
      type: basic
      username: user
      password: pass
  approve_if: '$response.status == 200 && $response.body.foo == "bar"'

no direct API contract with guardian
can just use existing auto strategy with the same resolution using existing approve_if. Only needs to add $response params if http config presents
one field addition which is http containing target API info

@rahmatrhd any reason to use auto and not http?

@ravisuhag because http fetch approval is essentially an automatic approval that doesn't require human approval

@rahmatrhd One concern I have is that lot of params will become optional. If the strategy is this then set this and this and so on. So it might get tricky for policy users to figure out for which strategy which params I should use. Same on the implementation side and combinations start to increase. So, would it make sense to actually segregate it as per strategy? thoughts?

I think in addition to the above and detailed documentation, we should have also a command/api similar to guardian policy validate or guardian policy lint so that one can run it and check if the policy file that they have created is valid. and if valid, detailed error output to describe what is incorrect.


bug(MatRipple): mat-ripple-element is not fired correctly on disable

Working on resolving a bug that MatRipple stuck in the focus state. When on disable, sometimes the ripple cannot fade out the ripple in time. After investigation, it seems that there is opportunity when the mouseup event is not captured before setting to disable and mat-ripple-element is not fired correctly .
Reproduce the error
Live example in stackblitz
Step to reproduce

Immediately click the icon button when move the cursor on it.
Try couple of times if you cannot see the state stuck after you move away the cursor.
Try more times after you reproduce it - you will see the color of the state becomes darker, since multiple mat-ripple-elements are not fired correctly.

Expected behavior
mat-ripple-element should be always deleted on mouse up
Environment
Angular Material: 11.2.9
rxjs: 6.6.7
Browser: Chrome
Operating system: Mac
Fix
On disable, it should call fadeOutAll() method to make sure all mat-ripple-elements are fired. So I propose to have this change on the ripple disabled variable:
  set disabled(value: boolean) {
    if (value) {
      this.fadeOutAll();
    }
    this._disabled = value;
    this._setupTriggerEventsIfEnabled();
  }

If this is approved, I will go ahead and create a pull request.

cc @devversion who I think was the last one to do major work on the ripple
Just to make sure I fully understand the reproduction- the issue is that the button becomes disabled after the ripple has been initiated, but before the ripple animation completes and the element is removed?

cc @devversion who I think was the last one to do major work on the ripple
Just to make sure I fully understand the reproduction- the issue is that the button becomes disabled after the ripple has been initiated, but before the ripple animation completes and the element is removed?

Yes I believe so.

Relates to internal ticket 184573511


Find Open Tree species that are missing from OneZoom

@hyanwong @jrosindell I wrote a simple script to locate those. I filtered out all the names that don't contain exactly one underscore, since we only care about species.
I ended up with 15304. You can see the whole list here. They are in the order in which they appear in the Newick, which is post-order traversal.
I have not tried to analyze it yet.

Looking randomly at Hylomyscus, a genus or rodents:

OneZoom has 8 species
OpenTree has 18 species

So that looks like a legit set of missing species in this case.

Neat, thanks. I suspect this is a mix of (mostly) OpenTree mistakes /  synonyms / subspecies /mispellings, and OneZoom absences.
For example, here's a genus that appears a lot in that list: wikipedia list 33 species, and OneZoom has 32. I've looked up some information for the first few
Lepus_crawshayi (synonym for _Lepus victoriae_)
Lepus_angolensis (subspecies: _[Lepus microtis angolensis](https://www.wikidata.org/wiki/Q20905190)_)
Lepus_ansorgei (synonym for _Lepus victoriae_)
Lepus_atlanticus (subspecies of _Lepus capensis_)
Lepus_canopus (unclear, not on wikipedia)
Lepus_chadensis (unclear, probably not a species)
Lepus_cordeauxi (probably a variety, or maybe form (e.g. cited in https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0180137)
Lepus_creticus (subspecies in crete?)

.... (I haven't looked at the others)

Lepus_crispii
Lepus_cyprius
Lepus_douglasii
Lepus_formosus
Lepus_harterti
Lepus_hawkeri
Lepus_innesi
Lepus_judeae
Lepus_kabylicus
Lepus_lilfordi
Lepus_longicaudatus
Lepus_ochropus
Lepus_omanensis
Lepus_pallidior
Lepus_pamirensis
Lepus_primaevus
Lepus_przewalskii
Lepus_saxatalis
Lepus_sefranus
Lepus_siamensis
Lepus_swinhoei
Lepus_talai
Lepus_tigrensis
Lepus_tunetae
Lepus_vassali
Lepus_verae-crucis
Lepus_veter
Lepus_whitakeri
Lepus_zuluensis

If you compare to https://en.wikipedia.org/wiki/Hare, you'll

Ah yes, synonyms are probably a big part of it. e.g. I was looking at the Jaguarundi. Open Tree has both Puma yagouaroundi and Puma yaguarondi, with different OTTs. I'm guessing this is bogus data, referring to the same animal.
OneZoom just has Puma yaguarondi.
Interestingly, Wikipedia says it's been reclassified into a new genus: Herpailurus yagouaroundi
(https://en.wikipedia.org/wiki/Jaguarundi).
So the early conclusion is that Open Tree is not in very good shape, and that trying to use it directly is unwise? Should this be discussed with them?

Ah yes, synonyms are probably a big part of it. e.g. I was looking at the Jaguarundi. Open Tree has both Puma yagouaroundi and Puma yaguarondi, with different OTTs. I'm guessing this is bogus data, referring to the same animal.

Yes, this is a typo (not in the OpenTree, but in the source data from which the open tree has been taken)

So the early conclusion is that Open Tree is not in very good shape, and that trying to use it directly is unwise? Should this be discussed with them?

They do know this, but it's a never-ending task keeping up with synonyms etc.
There's no canonical way to find out which names are good or bad, sadly. And often old synonyms are resurrected with better taxonomy.
In the case of the mice that you found (Hylomyscus), OpenTree is pretty good. They are only missing 4 recently described species that are on wikipedia (no active links yet Mahale wood mouse, Hylomyscus mpungamachagorum Demos, Hutterer & Kerbis Peterhans, 2020
Pygmy wood mouse, Hylomyscus pygmaeus Kerbis Peterhans, Hutterer & Demos, 2020
Stanley’s wood mouse, Hylomyscus stanleyi Kerbis Peterhans, Hutterer & Demos, 2020
Mother Ellen’s wood mouse, Hylomyscus thornesmithae (Kerbis Peterhans, Hutterer & Demos, 2020)) and the Volcano wood mouse, Hylomyscus vulcanorum - I'm not sure why they don't have that.

Another thing is that Open Tree has some extinct species, so we'd need to filter those out. e.g. Acinonyx_pardinensis is an extinct cheetah.

Yes, that's true (even in the synthetic tree). Ideally we'd remove the extinct species from the comparison (should be easy, if they are properly flagged up as extinct in the OpenTree, which they usually (but not always) are.

should be easy, if they are properly flagged up as extinct in the OpenTree

In this particular case, it's not flagged.

should be easy, if they are properly flagged up as extinct in the OpenTree

In this particular case, it's not flagged.

Oh, yes, there are many of those. There is a special flag for issues about these in the OpenTree. I'll bring up an issue (but spotting them by hand is very tiresome!)

I filtered out all the ones marked as extinct in the taxonomy. It went down by 262, to 15042. Same link above has the updated list, and you can see the diff here.

For some areas, like birds and mammals, wikipedia is almost the best source for species lists. But for most of the rest of the tree it is not.
It might be useful to look at species status on wikidata. In fact, it's almost certainly going to be better to find extinct / extract information on wikidata than elsewhere.

I wonder how easy it is to get information out of the wikidata JSON about whether something is extinct or not?

It's probably easy, since https://www.wikidata.org/wiki/Q2272925 (Acinonyx pardinensis) shows it as an instance of 'fossil taxon'. So it's in the json somewhere. I'll look for it later.
We could also use this to flag any taxon that is marked as extinct in Wikidata but not in Open Tree, so we can report them all.

We could also use this to flag any taxon that is marked as extinct in Wikidata but not in Open Tree, so we can report them all.

Yeah, that would be great. There might be a number in the inverts (for example I seem to remember editing out by hand a number of fossil nautilus species)

I did this and found 14807 taxa that are marked as extinct in Wikidata, but not in Open Tree. You can see the list here.
However, I suspect that many are incorrectly marked as extinct in Wikidata. e.g. The first one Ictiobus is marked as a fossil taxon, when it's clearly extant.
So it doesn't seem like we can trust either Open Tree or Wikidata when it comes to the extinct flag :(

Re extinctness data, it's probably better going with species-level assignments. Making a whole genus as extinct/extant is notoriously error-prone (since the same genus can contain both extinct and extant members.
Looking at that list, most of the species marked seem truly extinct (some very recently so).

Ah yes, great point about extinct for higher taxa. I have updated that same list to only contain species, bringing the count to 11651.
So it sounds like a large number of these are indeed extinct, and hence represent a missing extinction flag in the Open Tree taxonomy. Clearly, we're not going to report them one by one. Is it worth trying to do something about it?

I can mention it to OpenTree, but I think we are likely to want to maintain own own additional list where we override the extinct/extant flag given by OpenTree. I imagine this could be in the form of a text file that we commit to the GitHub repo so that OpenTree can get a list to look at from us, if need be.
There might also be one or two species that we want to add to that list by hand. And in addition we might want to identify those species that are "recently" extinct (e.g. in the last 2000 years), as we tend to include those on the OneZoom tree too (e.g. dodo, elephant bird, moas).
Thinking about how to maintain and modify such a list, as well as how ton incorporate it into the OpenZoom trees in the future, could be a useful thing?

I added a comment to https://github.com/OpenTreeOfLife/feedback/issues/578 to let them know of the more general issue.
I also updated the list to include the OTT and the scientific name (instead of the less precise Wikidata name).
Right now, it's in a gist, but we can add more formally to the repo later. And I have a (sort of dirty) tool to regenerate the list.
Identifying those that are recently extinct is an interesting challenge, because as far as I can tell, Wikidata does not have that information. Instead, we could go to English Wikipedia, and scrape it from the taxobox.
e.g. for Acinonyx pardinensis, the Wikipedia page taxobox shows a temporal range of Late Pliocene–Middle Pleistocene, and we could scrape that and map it to a date (say 1.3 Ma).
But for the Thylacine, it says "Early Pleistocene–Holocene", which is useless (no extinction). Lower down in the box, it says 'Extinct (1936) (IUCN 3.1)', but it looks ad hoc, and not easily scrapable in an automated way.
As an alternative, we could scrape this very nice Timeline of extinctions in the Holocene page. I hate scraping, but it seems that's often the only way to get good data in this business...

Popping back to the original topic of this thread, if I exclude all species that are marked as extinct on either OT or Wikidata, we end up with 14588 species that are in the Open Tree but not in OneZoom. Full list here. So we further reduced it by 454.
Not sure how much further I can take this, so I will leave it there for now.


Tag people & places with links in English text (Kopf)

@nathangibson Upload English text to Recogito
@vanessa612 Get account at https://recogito.pelagios.org
@vanessa612 Compare English text with https://recogito.pelagios.org/document/jexbw0z4n6qlhn/part/1/edit. Tag corresponding people and places in English text. Copy the tag with the "https://usaybia.net/person/" URI for each person. We can add the other URIs automatically later.

@vanessa612
After #2 is complete, let me know so that I can upload it to Recogito.

For reference: https://github.com/usaybia/usaybia-data/wiki/Using-Recogito

This process is now documented here: https://github.com/usaybia/usaybia-data/wiki/Using-Recogito#english

You can copy the URIs from these spreadsheets, which have the URIs listed in order with the Arabic name, exported from the Arabic document:
For Recogito Kopf 901-929 (=Mueller 2:239-255) use this spreadsheet
For Recogito Kopf 929-946 (=Mueller 2:256-274) use this spreadsheet

When a person is referred to in the English only by a title ("the vizier") or pronoun, you don't have to tag it. Only names. (Sometimes it will be different from what's in the Arabic.)


Auto build the tsdb cli tool with every release.

the tsdb tool would be useful for troubleshooting tsdb problems and now with the new analyze command from https://github.com/prometheus/tsdb/pull/478 it would be helpful to auto build and executable with travis for every new tsdb release.
Than we can ask users to just download and run different commands for troubleshooting an issue.
don't think we need a docker image for this so a simple executable for linux64 would be fine to start with.
@simonpasquier , @SuperQ 	maybe you can help with this one?

@krasi-georgiev Looks like there's some staticcheck errors:
checkpoint_test.go:34:2: this value of s is never used (SA4006)
checkpoint_test.go:34:5: this value of k is never used (SA4006)
cmd/tsdb/main.go:458:3: this value of err is never used (SA4006)
db_test.go:1524:5: this value of err is never used (SA4006)
head.go:688:18: argument should be pointer-like to avoid allocations (SA6002)
head.go:700:17: argument should be pointer-like to avoid allocations (SA6002)
head_test.go:393:2: should check returned error before deferring hb.Close() (SA5001)
head_test.go:678:6: this value of chunkCreated is never used (SA4006)
index/index_test.go:341:9: this value of err is never used (SA4006)
index/index_test.go:354:4: this value of err is never used (SA4006)
labels/labels_test.go:153:3: this value of m is never used (SA4006)
querier.go:586:6: this value of chks is never used (SA4006)
querier.go:586:19: this result of append is never used, except maybe in other appends (SA4010)
repair_test.go:68:2: this value of meta is never used (SA4006)
wal.go:891:19: argument should be pointer-like to avoid allocations (SA6002)
wal.go:896:19: argument should be pointer-like to avoid allocations (SA6002)
wal.go:901:19: argument should be pointer-like to avoid allocations (SA6002)
wal_test.go:293:2: this value of wal is never used (SA4006)

these should be fixed in https://github.com/prometheus/tsdb/pull/475
maybe you can have one final look and will merge it.


Reproducing result form SplineCNN result using PyG

I am trying to replicate SplineCNN's MNIST result. I only got about 70% accuracy( as opposed to ~99% reported in the paper). Here's my attempt:
#Importing modules:
import torch
import torch.nn.functional as F
import torch_geometric.transforms as T
from torch_geometric.data import Data
from torch_geometric.utils import grid,normalized_cut
from torch_geometric.nn import (SplineConv, graclus, max_pool, max_pool_x,
                                global_mean_pool)
import numpy as np

1. Loading MNIST data:( I am using spektral to load MNIST data as I started learning GNNs using spektral and the mnist load module is very flexible)
!pip install spektral
from spektral.datasets import mnist
X_train, y_train, X_val, y_val, X_test, y_test, Aspek = mnist.load_data()
#concatenating train and val data
X_train = np.concatenate((X_train,X_val),axis=0)
y_train = np.concatenate((y_train,y_val),axis=0)

2. Creating dataset:
#creating grid graph
pos1 = grid(28,28)

#creating MNIST train data
from torch_geometric.data import InMemoryDataset

class MNISTDataset(InMemoryDataset):
    def __init__(self, root, transform=None, pre_transform=None):
        super(MNISTDataset, self).__init__(root, transform, pre_transform)
        self.data, self.slices = torch.load(self.processed_paths[0])

    @property
    def raw_file_names(self):
        return []

    @property
    def processed_file_names(self):
        return ['/tmp/mdata.pt']

    def download(self):
        pass

    def process(self):

        data_list= []
        for i in range(0, len(X_train)):
            data = Data(x=torch.tensor(X_train[i],dtype=torch.float).view(784,1)
            ,edge_index=pos1[0],y=torch.tensor(y_train[i]).view(1).long(),
            pos=pos1[1])

            data_list.append(data)

        data, slices = self.collate(data_list)
        torch.save((data, slices), self.processed_paths[0])

#creating MNIST test data

class MNISTtestDataset(InMemoryDataset):
    def __init__(self, root, transform=None, pre_transform=None):
        super(MNISTtestDataset, self).__init__(root, transform, pre_transform)
        self.data, self.slices = torch.load(self.processed_paths[0])

    @property
    def raw_file_names(self):
        return []

    @property
    def processed_file_names(self):
        return ['/tmp/mdata1.pt']

    def download(self):
        pass

    def process(self):

        data_list= []
        for i in range(0, len(X_test)):
            data = Data(x=torch.tensor(X_test[i],dtype=torch.float).view(784,1)
            ,edge_index=pos1[0],y=torch.tensor(y_test[i]).view(1).long(),
            pos=pos1[1])

            data_list.append(data)

        data, slices = self.collate(data_list)
        torch.save((data, slices), self.processed_paths[0])

transform = T.Cartesian(cat=False)
datasetrain = MNISTDataset(root='/tmp/Mdtrain', transform=transform)
datasetest = MNISTtestDataset(root='/tmp/Mdtest', transform=transform)

# Creating dataloader for training and testing
from torch_geometric.data import DataLoader
train_loader = DataLoader(datasetrain, batch_size=64, shuffle=True)
test_loader = DataLoader(datasetest, batch_size=64)

3. Model
d = datasetrain
def normalized_cut_2d(edge_index, pos):
    row, col = edge_index
    edge_attr = torch.norm(pos[row] - pos[col], p=2, dim=1)
    return normalized_cut(edge_index, edge_attr, num_nodes=pos.size(0))

class Net(torch.nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = SplineConv(d.num_features, 32, dim=2, kernel_size=5)
        self.conv2 = SplineConv(32, 64, dim=2, kernel_size=5)
        self.fc1 = torch.nn.Linear(64, 512)
        self.fc2 = torch.nn.Linear(512, d.num_classes)

    def forward(self, data):
        data.x = F.elu(self.conv1(data.x, data.edge_index, data.edge_attr))
        weight = normalized_cut_2d(data.edge_index, data.pos)
        cluster = graclus(data.edge_index, weight, data.x.size(0))
        data.edge_attr = None
        data = max_pool(cluster, data, transform=transform)

        data.x = F.elu(self.conv2(data.x, data.edge_index, data.edge_attr))
        weight = normalized_cut_2d(data.edge_index, data.pos)
        cluster = graclus(data.edge_index, weight, data.x.size(0))
        x, batch = max_pool_x(cluster, data.x, data.batch)

        x = global_mean_pool(x, batch)
        x = F.elu(self.fc1(x))
        x = F.dropout(x, training=self.training)
        return F.log_softmax(self.fc2(x), dim=1)

4.Training and Testing
#Training module
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = Net().to(device)
optimizer = torch.optim.Adam(model.parameters(), lr=0.01, weight_decay=5e-4)

def train(epoch):
    model.train()

    for data in train_loader:
        data = data.to(device)
        optimizer.zero_grad()
        F.nll_loss(model(data), data.y).backward()
        optimizer.step()

def test():
    model.eval()
    correct = 0

    for data in test_loader:
        data = data.to(device)
        pred = model(data).max(1)[1]
        correct += pred.eq(data.y).sum().item()
    return correct / len(datasetest)

for epoch in range(1, 50):
    train(epoch)
    test_acc = test()
    print('Epoch: {:02d}, Test: {:.4f}'.format(epoch, test_acc))

What am I missing here? Any guidance would be helpful.

@rusty1s Could you please let me know what am I doing wrong here?

I will try to rerun it by myself.

Only looking at your code, there are a few differences to the architecture we use:

We use a 2-hop neighboring grid with kernel size 5 (which would be nearly identical to stacking 2 convs with kernel_size=3x3)
We do not make use of global mean pooling before the final classification, and instead flatten the input representation.

@rusty1s  Thanks for replying.

Do you think my dataset generation is correct? I understand that for SplineCNN position is necessary as it is based on spatial graph conv. So, I created my dataset to reflect that.

I am following this : SConv((5, 5),1,32)→ MaxP(4) → SConv((5, 5),32,64) → MaxP(4) →FC(512) → FC(10) from your paper. I thought the code above reflected that except for the global max pool. What would the code look like for the arch you have on your paper?

I understand that the SplineConv that I am using does not have a huge receptive field. However, I thought the network above should be good enough to give me over 95% accuracy on MNIST.

I'm not sure your dataset generation is correct. Spektral may use a different ordering? I always used the dataset provided by torchvision.
I prepared two simple scripts that should get you going. One that uses graclus and global_mean_pool (which reaches around 92% after 5 epochs already) and one that uses the flattening approach without graclus (which reaches around 97% after 1 epoch). You can find them here and here.

Thanks @rusty1s. I will go through your codes and compare them with mine to see what I am missing. Thanks again for your help.


ci: cargo publish

We should automatically publish to crates.io on tagging a release.

https://github.com/MarcoIeni/release-plz


Autopass doesn't parse any entry

After installing autopass and puting the long key-id in the config file, I get this error
Error: folder/username is not in the password store.
Failed parsing entry 'folder/username':

Pass exited with error when reading from folder/username
/usr/bin/autopass:352:in `basename': no implicit conversion of Hash into String (TypeError)
	from /usr/bin/autopass:352:in `rescue in entry_from'
	from /usr/bin/autopass:343:in `entry_from'
	from /usr/bin/autopass:384:in `block in update_cache'
	from /usr/bin/autopass:382:in `each'
	from /usr/bin/autopass:382:in `update_cache'
	from /usr/bin/autopass:309:in `initialize'
	from /usr/bin/autopass:411:in `new'
	from /usr/bin/autopass:411:in `<main>'

I did a pass init 0x<longkeyid> for the setup of pass

does pass show folder/username work?

Yes, it works. I am able to use rofi-pass but not autopass ...

i see. could it be, that you have set $PASSWORD_STORE but your autopass config doesn't reflect that?

Just to make sure: you're using the master branch?

Everything gpg accepts as a value for the --recipient option is accepted as cache_key. This isn't related to that though. It's simply a case of pass not being able to find your password store.

I installed autopass via AUR, the PKGBUILD is here so I think I am using the master branch. And I didn't set $PASSWORD_STORE_DIR, mine is still at ~/.password-store

Hum I just retrieved the last version of autopass and now I have another error
Failed parsing entry 'folder/username':
uninitialized constant PassBackend::Config
Did you mean?  RbConfig
               CONFIG
/usr/bin/autopass:352:in `basename': no implicit conversion of Hash into String (TypeError)
	from /usr/bin/autopass:352:in `rescue in entry_from'
	from /usr/bin/autopass:343:in `entry_from'
	from /usr/bin/autopass:388:in `block in update_cache'
	from /usr/bin/autopass:386:in `each'
	from /usr/bin/autopass:386:in `update_cache'
	from /usr/bin/autopass:309:in `initialize'
	from /usr/bin/autopass:415:in `new'
	from /usr/bin/autopass:415:in `<main>'

sorry, my bad. That was a typo

Oh something changed,
Failed parsing entry 'folder/username':
no implicit conversion of Symbol into String
/usr/bin/autopass:352:in `basename': no implicit conversion of Hash into String (TypeError)
	from /usr/bin/autopass:352:in `rescue in entry_from'
	from /usr/bin/autopass:343:in `entry_from'
	from /usr/bin/autopass:388:in `block in update_cache'
	from /usr/bin/autopass:386:in `each'
	from /usr/bin/autopass:386:in `update_cache'
	from /usr/bin/autopass:309:in `initialize'
	from /usr/bin/autopass:415:in `new'
	from /usr/bin/autopass:415:in `<main>'

hm, I'm pretty sure it's the same error, but stderr of the pass command is swallowed by IO.popen. Let's see.

@anhtuann: How about now?

Yes ! Now autopass opens ! I have a regex error when trying to copy/paste passwords but that's another issue. Thanks for the fix


 element does not have a [lang] attribute

Version
"@nuxtjs/i18n": "^8.0.0-beta.4",
"nuxt": "3.0.0-rc.13"
Reproduction Link
https://stackblitz.com/github/retroriff/nuxt-refresh
@nuxtjs/i18n configuration
i18n: {
    baseUrl: process.env.BASE_URL || "http://localhost:3000",
    defaultLocale: "en",
    detectBrowserLanguage: false,
    locales: [
      {
        code: "en",
        iso: "en-GB",
        name: "English",
        file: "en-GB.json"
      }
    ],
    parsePages: false,
    lazy: true,
    langDir: "locales"
  }

 element does not have a [lang] attribute.

Thank you for your reporting!
I've just checked your stackblitz
You need to specify the i18n head meta info that is getten with useLocaleHead into useHead that is built-in composable in Nuxt.
nuxtjs/i18n v8 docs said:
https://v8.i18n.nuxtjs.org/guide/seo
Thanks!

The issue is here: https://i18n.nuxtjs.org/api#nuxti18nhead
I somehow got trapped by this outdated document website and it still documents old API, I was so confused until I find the current thread!


Add migration to add pks to all tables

Prep for adding pglogical replication.
Any table replicated by pglogical needs a primary key.
@gtanzillo @Fryguy

:+1: Looks good!


Check for duplicate data before dumping from IL

Ideally, we wouldn't add duplicate data to the NLU data or to stories. Related code: https://github.com/RasaHQ/rasa_core/pull/1651 -- we should also remove events added by IL as well as any unfeaturized slot events, etc. before comparing for whether stories are equal or not.

Probably best to attack the NLU via this and close two issues: https://github.com/RasaHQ/rasa/issues/1446

I reckon the code for these will probably be re0used from https://github.com/RasaHQ/roadmap/issues/456

check if this is still the case


fix(plugin): can not load plugins

can not load plugins while karma installed in sub dir in node_modules
Close #2221

I signed it!

make a new pr #2230 with user info match the CLA


ADServiceAccount: Add support for Group Managed Service Accounts on target machine

ISSUE TITLE:

ADServiceAccount: Add support for Group Managed Service Accounts on target machine
ISSUE DESCRIPTION:

There does not appear to be support for Group Managed Service Accounts via DSC implemented via Install-ADServiceAccount
Suggest DSC modules adding:
Install-ADServiceAccount -Identity 'xxx'
Test-AdServiceAccount -Identity 'xxx'

Hi @jlongo62 - thanks for raising this. It does look like a gap - I also checked in ActiveDirectoryDsc and it does not look like it is in there either, although there is the ability to create MSA/gMSA in there.
The question I'd have is: is the resource most appropriate in this module or within the ActiveDirectoryDsc module? @johlju - any thoughts on this one?

This is being discussed here https://github.com/PowerShell/ActiveDirectoryDsc/issues/265
Since the cmdlets requires having the ADDSAdministration module installed, if the resource would be here it will be a prerequisites for this particular resource. The resources in ActiveDirectoryDsc already have this prerequisites.  Although, as @PlagueHO says in previous comment, that resource would target more computers than just domain controllers. But so could ADUser and ADGroup, etc. They don't need to be run on a domain controller to add users and groups, although they update the domain (controllers) which this resource would not do, it would only target the computer it is run on.
My though is to keep ComputerMangementDsc to have resources that can be used without needing prerequisites other than is already installed in the OS by default. 🤔  Then this resource would fit better in ActiveDirectoryDsc.
But if t would be added here, then I would be okay with that too.

@johlju - really great point about the dependence on ADDSAdmin module. I think it would be best to avoid adding a dependency on ADDSAdmin in this module. So I agree- I think the resource is better suited to ActiveDirectoryDsc.

@jlongo62 Please see issue https://github.com/PowerShell/ActiveDirectoryDsc/issues/265 and see if you can contribute to the discussion, or even better send in a PR to ActiveDirectoryDsc to help resolve this.
Suggest to close this issue as this time since we are tracking this in https://github.com/PowerShell/ActiveDirectoryDsc/issues/265.

Closing this issue and we continue to track it in https://github.com/dsccommunity/ActiveDirectoryDsc/issues/265.


Fix warnings when syncing a workspace containing a bazelignore file

The warnings look like this
WARNING: Pattern '//dist/...:all' was filtered out by ignored directory 'dist'
They occur because the plugin passes paths from bazelignore into "bazel query" as exclusions. Bazel warns about this, as excluding a path that Bazel already knows should be ignored is likely a user error.
The reason bazelignore paths are ending up in the query is that we want the IDE to mark the paths as excluded from the project. For that reason, the plugin parses the bazelignore file, and adds the paths to an exclusion list. That list happens to also be passed to "bazel query".
This commit keeps bazelignore paths in the general exclusion list, but generates a separate list of paths to use for "bazel query", which only contains exclusions not listed in bazelignore.

thanks @srdo-humio! the PR looks good to me but can you add tests to cover the new behaviour?

Yes, I assume you just mean tests that the query string is now excluding bazelignored files? I'll try to add a test for that.

Added a test. Let me know if you think the testing needs to be more extensive.

That looks good, thanks @srdo-humio!


move docs/CONTRIBUTING.md to top of the repo directory

This change replaces the old (outdated CONTRIBUTED.md) at this location as we discussed on slack.
@unclejack PTAL whn you get a chance.

LGTM


Statistics on calibrations

For validating calibration curves, it could be a good idea to add some info on the quality of the linear fit, i.e. a possibility of making a plot of residuals vs. concentration or similar. And if we're getting very fancy also adding some confidentiality intervals. dreaming big

I moved this issue to spectro_inlets_quant, issue number 4: https://github.com/SpectroInlets/spectro_inlets_quantification/issues/4