swanvis broken?

Hi
I've been an extremely satisfied user of swanvis up until now. The last time I used it was in mid-January, about 6 months ago. I tried to use it again now and it seems to be broken?
I tried to re-install with pip and the installation failed, i used 'pip3' like another user stated in another issue and that did run to completion, but when trying to import into python itself the package couldn't be found.
I cloned the repository and installed it with 'pip3 install .'. That worked and I was able to load the package into python. but then i ran 'sg = swan.SwanGraph()' and got "AttributeError: module 'swan_vis' has no attribute 'SwanGraph'"!! What gives??
ETA: Python 3.7.6 in a conda env

Oh no! I'm so sorry that this happened. Looking at the commit log to master there really shouldn't have been anything pushed that would cause such a problematic error (except for a Python version requirement change, which the version you're running satisfies), and I'm able to import and initialize a SwanGraph using the following code without getting the same errors that you did.
import swan_vis as swan
sg = swan.SwanGraph()

To replicate your situation I used the following steps:

Created a fresh conda environment with Python version 3.7.6
Cloned the most recent master commits for swan_vis
Used pip3 install -e . in the swan_vis main directory to install it

Maybe it's worth trying these steps using a fresh conda environment to see if that's able to get it to work. If that doesn't work I'd love to keep working with you to get it up and running again.

Ah set up a fresh conda environment and it works again! Thanks for your help!

Yay! Thanks for giving that a try!


Save future generations time

Am closing this in favor of #4093, which redoes a lot of documentation around concurrency handling and makes it clearer that stored-generated rowversion-like concurrency tokens are database-specific.


raftstore: prevent removing voters directly in 2 replica raft group

Signed-off-by: LintianShi<EMAIL_ADDRESS>
What is changed and how it works?

Issue Number: Close #10595
Problem Summary:
It may lead to region unavailable when removing a voter from a 2 replica raft group directly.
What's Changed:

Prevent tikv from removing voters directly in 2 replica raft group. The work on PD side is done in https://github.com/tikv/pd/pull/4564.

Related changes

PR to update pingcap/docs/pingcap/docs-cn:
Need to cherry-pick to the release branch

Check List
Tests

Integration test

Side effects

Breaking backward compatibility

Release note
When a raft group contains less than three replicas, voters cannot be removed directly or it may lead to region unavailable. Before removing a voter, it should be demoted first.

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests


Support for serving multiple isolated sites/pages?

I'm building an app with angular2-meteor, Typescript, and Meteor 1.3. I'd also like to create an add-in for Outlook 365 which shares some of the resources from my app (services, definition files, and meteor's connection to my database). (An Office add-in is just a web page which is loaded inside the Outlook client or web app.) Can I do this with angular2-meteor without forcing Outlook to load the rest of the app? (And without downloading the office API when visiting my web app.) In other words, can I serve two separate sites from the same meteor instance?
There's something in the tutorial about multiple root components, but I haven't been able to find out more about that, and am not even sure that's what I'm after.
My apologies if this isn't appropriate here. I also posted on Stack Overflow, but it seemed worth asking here whether this is a feature supported by the framework.

This article recommends the following for integrating the office APIs:
Office.initialize = function (reason) { ng.platform.browser.bootstrap(app.ExcelComponent); };
Thus only bootstrapping Angular after Office has initialized. Is it possible to do that for one part of the site (say, myapp.com/outlook) and have the rest of the site load from a different bootstrapping?

If you are ok to load resources of two Angular2 apps simultaneously, you can separate apps  bootstrapping using FlowRouter and this NPM https://github.com/barbatus/angular2-meteor-universal.
If you'd like to avoid loading bundled resources, it's not implemented yet. You can follow though this issue
https://github.com/Urigo/angular2-meteor/issues/280

Thanks! For the record, I found it worked much better, and gave me much more flexibility, to handle them entirely separately. I have the two sites hosted on the same DigitalOcean droplet, served to different subdomains.

@twastvedt what did you find to work much better?

Oh, sorry, that wasn't clear. I just mean that I ended up not even trying to do this at all. I have a DigitalOcean droplet which uses nginx virtual hosts to serve two apps, one to mydomain.com and one to outlook.mydomain.com. In the end, the only thing I needed to share between the projects was my app's Typescript definition file, which I have in a separate repository that both projects depend on. Here are the references I used, if anyone wants to try to replicate this:

Server setup using nginx
Set up SSL
Deploy Meteor using Passenger
Multiple apps and Mongo on same droplet - though I actually have Mongo running on Modulus.
UFW Firewall


Unable to turn off SNW on embeds

I embedded a picture via copy and paste and saw it had a counter on it so I tried turning off the embeds in the settings and reopening the note. Unfortunately, that did not work. Below are the things I've tried:

Deleting the picture and copy-pasting again.
Restarting Obsidian
Turning off SNW, turning it back on again.
Turning off SNW, turning it back on again, and restarting Obsidian

Thank you for reporting this. I am wondering if you have the counter for gutters turned on? These only show counts for embeds that are full lines, like pictures. Perhaps turn off the gutter counter and see if it gives you the desired results. Please keep in mind that only embeds are displayed in the gutter, so by turning this off you won't lose any other counters.


No integration for Dynamics

This link suggests there is an integration for MS Dynamics, but the Integrations page does not show it as available.
https://learn.microsoft.com/en-us/viva/goals/vg-integrations-administration-overview

Hello, @standswell
I am looking into this.

Hello @standswell
I was informed that the integrations are now enabled at tenant level.
Hope this information helps you,

You can follow these instructions if you are the Global Admin of the tenant, to find tenant-level integrations
https://learn.microsoft.com/en-us/viva/goals/vg-integrations-administration-overview#how-to-manage-integrations

@get-itips  Great work...thank you!


Allow to build native images

Currently this requires that command line
mvn package -Pnative  -Dquarkus.native.container-build=true -Dquarkus.container-image.build=true
If I understand https://quarkus.io/guides/container-image#quarkus-container-image_quarkus.container-image.build correctly, it may be possible to automatically build + push without the -D options.

Outdated.


[Release] sdk/resourcemanager/authorization/armauthorization/3.0.0-beta.1

https://github.com/Azure/sdk-release-request/issues/4261

The breaking changes are introduced and approved in this PR.


Document Xcode Cordova build pitfall

Coming from the symptom from https://github.com/apache/cordova-ios/issues/760#issuecomment-645604332:

I get the same error.

with explanation of the pitfall from https://github.com/apache/cordova-ios/issues/760#issuecomment-645616290:

it looks like your Xcode GUI is trying to just build the Cordova subproject, which is not really tested or supported by us. Please click on this control and use it to select your application build project:

I suspect that this would affect other users. I think this should be documented as a pitfall.

The screenshots may be outdated but I think the pitfall is self-evident and needs to be documented. I think this is not specific to Ionic.

Build succeded :: in VScode

When i open .xcodeProj file then run build it shows error of info.plist


How to sign in with google?

Is there a recommended way to sign in with google while using mongodb realm?
The only thing I found about it is this:

But how does this connection between mongodb and google work, do I have to change something here too?

Hi,
We don't support Google authentication yet but this is on the top of our list of features for the next releases, so stay tuned.

See issue #396 (and PR #740)

Awesome, how can I test it?
I tried it this way:
realm_dart:
git:
url: https://github.com/realm/realm-dart.git
ref: kn/auth-providers-no-tests

There are a few problems with the above.
During development before releasing to pub.dev we use path dep on realm_common. When you use a git dep, you hit https://github.com/flutter/flutter/issues/47324.
Secondly, when running dart run realm_dart install to install the native libs you may not get the right one, since we have not rolled a proper release.
However, we will be releasing soon, and I suspect these changes will be included.

Resolved in 0.3.2+beta


RHEL7, v0.25.1, "CXXABI_1.3.8 not found"

Have you ensured the platform and version of Node.js used for npm install is the same as the platform and version of Node.js used at runtime?

Yes

Are you using the latest version? Is the version currently in use as reported by npm ls sharp the same as the latest version as reported by npm view sharp dist-tags.latest?

Yes, 0.25.1

If you are installing as a root or sudo user, have you tried with the npm install --unsafe-perm flag?

Tried with & without

If you are using the ignore-scripts feature of npm, have you tried with the npm install --ignore-scripts=false flag?

Not using, but have tried

What is the complete output of running npm install --verbose sharp? Have you checked this output for useful error messages?

Cut out a lot of the noise around other packages etc... no errors
[12:56:07]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>[12:56:07]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm]
[12:56:07]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] ><EMAIL_ADDRESS>install /data/teamcity-agent/work/ed14a4d9a022f175/sourceCode/node_modules/sharp
[12:56:07]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] > (node install/libvips && node install/dll-copy && prebuild-install --runtime=napi) || (node-gyp rebuild && node install/dll-copy)
[12:56:07]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm]
[12:56:07]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] info sharp Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.9.1/libvips-8.9.1-linux-x64.tar.gz
[12:56:10]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] prebuild-install info begin Prebuild-install version 5.3.3
[12:56:10]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] prebuild-install info looking for cached prebuild @ /data/teamcity-agent/work/ed14a4d9a022f175/_prebuilds/0a8714-sharp-v0.25.1-napi-v3-linux-x64.tar.gz
[12:56:10]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] prebuild-install http request GET https://github.com/lovell/sharp/releases/download/v0.25.1/sharp-v0.25.1-napi-v3-linux-x64.tar.gz
[12:56:10]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] prebuild-install http 200 https://github.com/lovell/sharp/releases/download/v0.25.1/sharp-v0.25.1-napi-v3-linux-x64.tar.gz
[12:56:10]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] prebuild-install info downloading to @ /data/teamcity-agent/work/ed14a4d9a022f175/_prebuilds/0a8714-sharp-v0.25.1-napi-v3-linux-x64.tar.gz.6854-1bb64237a6c75.tmp
[12:56:10]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] prebuild-install info renaming to @ /data/teamcity-agent/work/ed14a4d9a022f175/_prebuilds/0a8714-sharp-v0.25.1-napi-v3-linux-x64.tar.gz
[12:56:10]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] prebuild-install info unpacking @ /data/teamcity-agent/work/ed14a4d9a022f175/_prebuilds/0a8714-sharp-v0.25.1-napi-v3-linux-x64.tar.gz
[12:56:11]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] prebuild-install info unpack resolved to /data/teamcity-agent/work/ed14a4d9a022f175/sourceCode/node_modules/sharp/build/Release/sharp.node
[12:56:11]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] prebuild-install info install Successfully installed prebuilt binary!
[12:56:11]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] npm verb lifecycle<EMAIL_ADDRESS>unsafe-perm in lifecycle true
[12:56:11]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] npm verb lifecycle<EMAIL_ADDRESS>PATH: /usr/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/data/teamcity-agent/work/ed14a4d9a022f175/sourceCode/node_modules/sharp/node_modules/.bin:/data/teamcity-agent/work/ed14a4d9a022f175/sourceCode/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
[12:56:11]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] npm verb lifecycle<EMAIL_ADDRESS>CWD: /data/teamcity-agent/work/ed14a4d9a022f175/sourceCode/node_modules/sharp
[12:56:11]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] npm timing audit submit Completed in 1074ms
[12:56:11]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] npm http fetch POST 200 https://internaldomain/security/audits/quick 1075ms
[12:56:11]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] npm timing audit body Completed in 0ms
[12:56:11]	[npm install sharp --ignore-scripts=false --verbose --unsafe-perm] npm timing action:install Completed in 3273ms

What is the output of running npx envinfo --binaries --system?

[13:17:15]	[Step 1/19]   System:
[13:17:15]	[Step 1/19]     OS: Linux 3.10 CentOS Linux 7 (Core)
[13:17:15]	[Step 1/19]     CPU: (2) x64 Intel(R) Xeon(R) CPU E5-2666 v3 @ 2.90GHz
[13:17:15]	[Step 1/19]     Memory: 331.74 MB / 3.52 GB
[13:17:15]	[Step 1/19]     Container: Yes
[13:17:15]	[Step 1/19]     Shell: 4.2.46 - /bin/bash
[13:17:15]	[Step 1/19]   Binaries:
[13:17:15]	[Step 1/19]     Node: 12.15.0 - /usr/bin/node
[13:17:15]	[Step 1/19]     npm: 6.13.7 - /usr/bin/npm
[13:17:15]	[Step 1/19]
[13:17:15]	[Step 1/19] Process exited with code 0

Output of yum info glibc

[12:56:01]	[Step 1/19] Installed Packages
[12:56:01]	[Step 1/19] Name        : glibc
[12:56:01]	[Step 1/19] Arch        : x86_64
[12:56:01]	[Step 1/19] Version     : 2.17
[12:56:01]	[Step 1/19] Release     : 292.el7
[12:56:01]	[Step 1/19] Size        : 13 M
[12:56:01]	[Step 1/19] Repo        : installed
[12:56:01]	[Step 1/19] From repo   : base
[12:56:01]	[Step 1/19] Summary     : The GNU libc libraries
[12:56:01]	[Step 1/19] URL         : http://www.gnu.org/software/glibc/
[12:56:01]	[Step 1/19] License     : LGPLv2+ and LGPLv2+ with exceptions and GPLv2+
[12:56:01]	[Step 1/19] Description : The glibc package contains standard libraries which are used by
[12:56:01]	[Step 1/19]             : multiple programs on the system. In order to save disk space and
[12:56:01]	[Step 1/19]             : memory, as well as to make upgrading easier, common system code is
[12:56:01]	[Step 1/19]             : kept in one place and shared between programs. This particular
[12:56:01]	[Step 1/19]             : package contains the most important sets of shared libraries: the
[12:56:01]	[Step 1/19]             : standard C library and the standard math library. Without these
[12:56:01]	[Step 1/19]             : two libraries, a Linux system will not function.

Environment:

Teamcity agent (CI system) running on CentOS 7
The NPM install of sharp and all other packages is working just fine. But as soon as the applications requires sharp we get the following error. This has only started happening since updating from 0.24.x, application will not work with version 0.25.1 of sharp but is fine with 0.24.1
[12:56:48]	[Step 7/19] Error requiring file: /data/teamcity-agent/work/ed14a4d9a022f175/sourceCode/test/manifest.js
[12:56:48]	[Step 7/19]
[12:56:48]	[Step 7/19] Something went wrong installing the "sharp" module
[12:56:48]	[Step 7/19]
[12:56:48]	[Step 7/19] /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /data/teamcity-agent/work/ed14a4d9a022f175/sourceCode/node_modules/sharp/build/Release/sharp.node)
[12:56:48]	[Step 7/19]
[12:56:48]	[Step 7/19] - Remove the "node_modules/sharp" directory then run
[12:56:48]	[Step 7/19]   "npm install --ignore-scripts=false --verbose" and look for errors
[12:56:48]	[Step 7/19] - Consult the installation documentation at https://sharp.pixelplumbing.com/install
[12:56:48]	[Step 7/19] - Search for this error at https://github.com/lovell/sharp/issues
[12:56:48]	[Step 7/19]
[12:56:48]	[Step 7/19] Error:
[12:56:48]	[Step 7/19] Something went wrong installing the "sharp" module
[12:56:48]	[Step 7/19]
[12:56:48]	[Step 7/19] /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /data/teamcity-agent/work/ed14a4d9a022f175/sourceCode/node_modules/sharp/build/Release/sharp.node)
[12:56:48]	[Step 7/19]
[12:56:48]	[Step 7/19] - Remove the "node_modules/sharp" directory then run
[12:56:48]	[Step 7/19]   "npm install --ignore-scripts=false --verbose" and look for errors
[12:56:48]	[Step 7/19] - Consult the installation documentation at https://sharp.pixelplumbing.com/install
[12:56:48]	[Step 7/19] - Search for this error at https://github.com/lovell/sharp/issues
[12:56:48]	[Step 7/19]
[12:56:48]	[Step 7/19]     at Object.<anonymous> (/data/teamcity-agent/work/ed14a4d9a022f175/sourceCode/node_modules/sharp/lib/constructor.js:34:9)
[12:56:48]	[Step 7/19]     at Module._compile (internal/modules/cjs/loader.js:955:30)
[12:56:48]	[Step 7/19]     at Object.require.extensions.<computed> [as .js] (/data/teamcity-agent/work/ed14a4d9a022f175/sourceCode/node_modules/@hapi/lab/lib/coverage.js:127:28)

Hi, sharp defines _GLIBCXX_USE_CXX11_ABI=0 during compilation to prevent this problem from occurring:
https://github.com/lovell/sharp/blob/4894c10dd9c746c9a260544e2254cfd7613adc55/binding.gyp#L127-L130
I suspect this relates to the internal N-API migration #1282 included from v0.25.0.
When I compile locally I see the expected '-D_GLIBCXX_USE_CXX11_ABI=0' having been defined, so I'm unsure where this might be coming from.

Thanks for looking at it. Let me know if you need any other info to help

It looks like migrating to N-API has placed a new dependency on the __cxa_throw_bad_array_new_length symbol, which is unavailable in the version of the C++ runtime provided by RHEL7 and its variants.
$ nm build/Release/sharp.node | grep CXXABI_1.3.8
U __cxa_throw_bad_array_new_length@@CXXABI_1.3.8

This might relate to exception handling in N-API and the use of throw Napi::Error::New(...) but more research is required.
A possible workaround on CentOS 7 is to use the npm install --build-from-source flag.
https://sharp.pixelplumbing.com/install#building-from-source

@lovell - I have encountered the same problem today (RHEL 7,  sharp v0.25.1, message "CXXABI_1.3.8 not found" on require('sharp')).
I can confirm that npm install --build-from-source is a viable work around.  However, our server process needs to frequently run npm operations, so this isn't an ideal long term solution in our case.  Do you expect there to be a fix that avoids this work around?  Thanks!

The __cxa_throw_bad_array_new_length symbol is used where the C++ source has new Class[n] notation, which I suspect is occuring within the N-API layer of Node.js itself.
RHEL provides gcc v4.8.5 but __cxa_throw_bad_array_new_length was added in v4.9. Setting _GLIBCXX_USE_CXX11_ABI=0 doesn't appear to prevent newer versions of gcc from outputting this symbol.
The "fix" for this is probably going to be to generate the prebuilt binaries on RHEL/CentOS 7 and gcc v4.8.5 instead of Ubuntu Xenial and gcc v5.3.1 as is currently the case.

Commit d8426b1 switches the Linux x64 glibc CI environment to use CentOS 7, so the prebuilt binaries in the future v0.25.2 release onwards will be compatible again with RHEL7.

v0.25.2 is now available, using Centos 7 for the prebuilt binaries.

For anyone coming here with a similar error using sharp v0.33.0 or later, that's because the prebuilt binaries no longer support CentOS 7.
The supported glibc and musl libc versions are documented at https://sharp.pixelplumbing.com/install#prebuilt-binaries
There's some background at https://github.com/lovell/sharp-libvips/issues/176 but the summary is that CentOS is essentially EOL and you'll experience better performance on the same hardware by upgrading.


"amplify push" : stop asking confirmation for generating types

Is your feature request related to a problem? Please describe.
I'm always frustrated when I run "amplify push", wait 10 seconds for Amplify to confirm changes, then another 10-20seconds to have another confirmation if I want to generate types. Sometimes I forget this step and come back after a few minutes, thinking Amplify have sync my changes with the cloud, but no because I didn't confirm this step!
Describe the solution you'd like
Add a flag to automatically confirm steps.
Describe alternatives you've considered
remove the confirmation for generating types.

Hi @anisg, you can use the yes flag! amplify push -y


Server Initialisation Failure

Coincidental to a vscode update, I now see a server initialisation failure for this extension, on startup of vscode.  Symptoms are a Server Initialisation error, with the following output:
[Error - 10:00:58 AM] Server initialization failed.
Message: Request initialize failed with message: abort(Assertion failed: bad export type for tree_sitter_php_external_scanner_create: undefined). Build with -s ASSERTIONS=1 for more info.
Code: -32603
[Error - 10:00:58 AM] Cucumber Language Server client: couldn't create connection to server.
Message: Request initialize failed with message: abort(Assertion failed: bad export type for tree_sitter_php_external_scanner_create: undefined). Build with -s ASSERTIONS=1 for more info.
Code: -32603
Additionally, colour coding of my Gherkin stops working until I uninstall the extension and re-start.
Reproducing? Your best chance of reproducing the issue locally, I think, would be:

Windows 10
Visual Studio Code as below:

Version: 1.78.0 (user setup)
Commit: 252e5463d60e63238250799aef7375787f68b4ee
Date: 2023-05-03T20:09:00.748Z
Electron: 22.4.8
Chromium: 108.0.5359.215
Node.js: 16.17.1
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19045
Sandboxed: No

I have the same issue, probably after recent update of VSC

Same here, just updated an bamm ... :-( Right in the moment I wanted to write some tests ...

Duplicate of https://github.com/cucumber/vscode/issues/155.

Happens for me but on MacOS 13.3.1

Thanks all for raising, closing as a duplicate of #155, please continue any discussion there, thanks!


[CI Regression?] Re-enable flake8

@jaraco it looks like after https://github.com/pypa/setuptools/pull/2486 flake8 is always skipped:
$ tox -- --flake8 -vv -k FLAKE8
python develop-inst-noop: ~/src/github/pypa/setuptools
python installed: apipkg==1.5,appdirs==1.4.4,attrs==20.3.0,black==20.8b1,click==7.1.2,contextlib2==0.6.0.post1,coverage==5.3.1,distlib==0.3.1,docutils==0.16,execnet==1.7.1,filelock==3.0.12,flake8==3.8.4,flake8-2020==1.6.0,iniconfig==1.1.1,jaraco.apt==2.0,jaraco.classes==3.1.0,jaraco.collections==3.0.0,jaraco.context==3.0.0,jaraco.envs==2.0.0,jaraco.functools==3.0.1,jaraco.test==4.0.1,jaraco.text==3.2.0,mccabe==0.6.1,mock==4.0.3,more-itertools==8.6.0,mypy==0.790,mypy-extensions==0.4.3,packaging==20.8,path==15.0.1,path.py==12.5.0,pathspec==0.8.1,Paver==1.3.4,pip==20.2.4,pluggy==0.13.1,py==1.10.0,pycodestyle==2.6.0,pyflakes==2.2.0,pyparsing==2.4.7,pytest==6.2.1,pytest-black==0.3.12,pytest-checkdocs==2.1.1,pytest-cov==2.10.1,pytest-fixture-config==1.7.0,pytest-flake8==1.0.7,pytest-mypy==0.8.0,pytest-shutil==1.7.0,pytest-virtualenv==1.7.0,pytz==2020.4,regex==2020.11.13,-e git+ssh://git@github.com/pypa/setuptools.git@ac2311014ab27409f1ca109101131fd7383cdc32#egg=setuptools,six==1.15.0,tempora==4.0.1,termcolor==1.1.0,toml==0.10.2,tox==3.20.1,tox-venv==0.4.0,typed-ast==1.4.1,typing-extensions==<IP_ADDRESS>,virtualenv==20.2.2,wheel==0.35.1,yg.lockfile==2.3,zc.lockfile==2.0
python run-test-pre: PYTHONHASHSEED='14316484'
python run-test: commands[0] | pytest --flake8 -vv -k FLAKE8
================================ test session starts ================================
platform linux -- Python 3.9.0, pytest-6.2.1, py-1.10.0, pluggy-0.13.1 -- ~/src/github/pypa/setuptools/.tox/python/bin/python
cachedir: .tox/python/.pytest_cache
rootdir: ~/src/github/pypa/setuptools, configfile: pytest.ini
plugins: checkdocs-2.1.1, shutil-1.7.0, virtualenv-1.7.0, flake8-1.0.7, black-0.3.12, cov-2.10.1, mypy-0.8.0, jaraco.test-4.0.1
collected 805 items / 690 deselected / 2 skipped / 113 selected

bootstrap.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)        [  0%]
conftest.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)         [  1%]
easy_install.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)     [  2%]
[...snip...]
setuptools/installer.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8...) [ 22%]
setuptools/launch.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 ch...) [ 23%]
setuptools/lib2to3_ex.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE...) [ 24%]
setuptools/monkey.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 ch...) [ 25%]
setuptools/msvc.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)  [ 26%]
setuptools/namespaces.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE...) [ 26%]
setuptools/package_index.py::FLAKE8 SKIPPED (file(s) previously passed FL...) [ 27%]
setuptools/py34compat.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE...) [ 28%]
[...snip...]
tools/ppc64le-patch.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 ...) [ 99%]
tools/tox_pip.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)    [100%]

----------- coverage: platform linux, python 3.9.0-final-0 -----------
Name                                              Stmts   Miss  Cover   Missing
-------------------------------------------------------------------------------
_distutils_hack/__init__.py                          66     43    35%   12-18, 28-33, 45-52, 63-64, 69-74, 77-88, 95-98, 105-106, 116, 120-123
_distutils_hack/override.py                           1      0   100%
[...snip...]
-------------------------------------------------------------------------------
TOTAL                                             17820  14002    21%

============================== short test summary info ==============================
SKIPPED [2] setuptools/tests/test_msvc.py:17: could not import 'distutils.msvc9compiler': No module named 'winreg'
SKIPPED [115] .tox/python/lib/python3.9/site-packages/pytest_flake8.py:116: file(s) previously passed FLAKE8 checks
======================= 117 skipped, 690 deselected in 2.42s ========================
______________________________________ summary ______________________________________
  python: commands succeeded
  congratulations :)

By the way, actually invoking .tox/python/bin/python -m flake8 directly runs for 1m 24s being extremely slow to recursively scan the dirs because of https://github.com/pypa/setuptools/pull/2486/files#r546877674.

Excluding a few dirs makes flake8 finish in 16s (that's over 5x faster). Invoking flake8 revealed some other configuration problems. It makes me think that flake8 wasn't run in CI long before https://github.com/pypa/setuptools/pull/2486.

It's working as intended for me:
setuptools main $ git clean -fdx
...
setuptools main $ tox -- -k flake8 -v -p no:cov
python create: /Users/jaraco/code/public/pypa/setuptools/.tox/python
python develop-inst: /Users/jaraco/code/public/pypa/setuptools
python installed: apipkg==1.5,appdirs==1.4.4,attrs==20.3.0,black==20.8b1,click==7.1.2,contextlib2==0.6.0.post1,coverage==5.3.1,distlib==0.3.1,docutils==0.16,execnet==1.7.1,filelock==3.0.12,flake8==3.8.4,flake8-2020==1.6.0,iniconfig==1.1.1,jaraco.apt==2.0,jaraco.classes==3.1.0,jaraco.collections==3.0.0,jaraco.context==3.0.0,jaraco.envs==2.0.0,jaraco.functools==3.0.1,jaraco.test==4.0.1,jaraco.text==3.2.0,mccabe==0.6.1,mock==4.0.3,more-itertools==8.6.0,mypy==0.790,mypy-extensions==0.4.3,packaging==20.8,path==15.0.1,path.py==12.5.0,pathspec==0.8.1,Paver==1.3.4,pip==20.2.4,pluggy==0.13.1,py==1.10.0,pycodestyle==2.6.0,pyflakes==2.2.0,pyparsing==2.4.7,pytest==6.2.1,pytest-black==0.3.12,pytest-checkdocs==2.1.1,pytest-cov==2.10.1,pytest-fixture-config==1.7.0,pytest-flake8==1.0.7,pytest-mypy==0.8.0,pytest-shutil==1.7.0,pytest-virtualenv==1.7.0,pytz==2020.4,regex==2020.11.13,-e git+gh://pypa/setuptools@ac2311014ab27409f1ca109101131fd7383cdc32#egg=setuptools,six==1.15.0,tempora==4.0.1,termcolor==1.1.0,toml==0.10.2,tox==3.20.1,tox-venv==0.4.0,typed-ast==1.4.1,typing-extensions==<IP_ADDRESS>,virtualenv==20.2.2,wheel==0.35.1,yg.lockfile==2.3,zc.lockfile==2.0
python run-test-pre: PYTHONHASHSEED='35910917'
python run-test: commands[0] | pytest -k flake8 -v -p no:cov
========================================================== test session starts ==========================================================
platform darwin -- Python 3.9.0, pytest-6.2.1, py-1.10.0, pluggy-0.13.1 -- /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python
cachedir: .tox/python/.pytest_cache
rootdir: /Users/jaraco/code/public/pypa/setuptools, configfile: pytest.ini
plugins: flake8-1.0.7, mypy-0.8.0, black-0.3.12, jaraco.test-4.0.1, shutil-1.7.0, checkdocs-2.1.1, virtualenv-1.7.0
collected 805 items / 690 deselected / 2 skipped / 113 selected

bootstrap.py::FLAKE8 PASSED                                                                                [  0%]
conftest.py::FLAKE8 PASSED                                                                                [  1%]
easy_install.py::FLAKE8 PASSED                                                                                [  2%]
pavement.py::FLAKE8 PASSED                                                                                [  3%]
setup.py::FLAKE8 PASSED                                                                                [  4%]
docs/conf.py::FLAKE8 PASSED                                                                                [  5%]
pkg_resources/__init__.py::FLAKE8 PASSED                                                                                [  6%]
pkg_resources/tests/__init__.py::FLAKE8 PASSED                                                                                [  6%]
pkg_resources/tests/test_find_distributions.py::FLAKE8 PASSED                                                                     [  7%]
pkg_resources/tests/test_markers.py::FLAKE8 PASSED                                                                                [  8%]
pkg_resources/tests/test_pkg_resources.py::FLAKE8 PASSED                                                                          [  9%]
pkg_resources/tests/test_resources.py::FLAKE8 PASSED                                                                              [ 10%]
pkg_resources/tests/test_working_set.py::FLAKE8 PASSED                                                                            [ 11%]
setuptools/__init__.py::FLAKE8 PASSED                                                                                [ 12%]
setuptools/_deprecation_warning.py::FLAKE8 PASSED                                                                                [ 13%]
setuptools/_imp.py::FLAKE8 PASSED                                                                                [ 13%]
setuptools/archive_util.py::FLAKE8 PASSED                                                                                [ 14%]
setuptools/build_meta.py::FLAKE8 PASSED                                                                                [ 15%]
setuptools/config.py::FLAKE8 PASSED                                                                                [ 16%]
setuptools/dep_util.py::FLAKE8 PASSED                                                                                [ 17%]
setuptools/depends.py::FLAKE8 PASSED                                                                                [ 18%]
setuptools/dist.py::FLAKE8 PASSED                                                                                [ 19%]
setuptools/errors.py::FLAKE8 PASSED                                                                                [ 20%]
setuptools/extension.py::FLAKE8 PASSED                                                                                [ 20%]
setuptools/glob.py::FLAKE8 PASSED                                                                                [ 21%]
setuptools/installer.py::FLAKE8 PASSED                                                                                [ 22%]
setuptools/launch.py::FLAKE8 PASSED                                                                                [ 23%]
setuptools/lib2to3_ex.py::FLAKE8 PASSED                                                                                [ 24%]
setuptools/monkey.py::FLAKE8 PASSED                                                                                [ 25%]
setuptools/msvc.py::FLAKE8 PASSED                                                                                [ 26%]
setuptools/namespaces.py::FLAKE8 PASSED                                                                                [ 26%]
setuptools/package_index.py::FLAKE8 PASSED                                                                                [ 27%]
setuptools/py34compat.py::FLAKE8 PASSED                                                                                [ 28%]
setuptools/sandbox.py::FLAKE8 PASSED                                                                                [ 29%]
setuptools/ssl_support.py::FLAKE8 PASSED                                                                                [ 30%]
setuptools/unicode_utils.py::FLAKE8 PASSED                                                                                [ 31%]
setuptools/version.py::FLAKE8 PASSED                                                                                [ 32%]
setuptools/wheel.py::FLAKE8 PASSED                                                                                [ 33%]
setuptools/windows_support.py::FLAKE8 PASSED                                                                                [ 33%]
setuptools/command/__init__.py::FLAKE8 PASSED                                                                                [ 34%]
setuptools/command/alias.py::FLAKE8 PASSED                                                                                [ 35%]
setuptools/command/bdist_egg.py::FLAKE8 PASSED                                                                                [ 36%]
setuptools/command/bdist_rpm.py::FLAKE8 PASSED                                                                                [ 37%]
setuptools/command/bdist_wininst.py::FLAKE8 PASSED                                                                                [ 38%]
setuptools/command/build_clib.py::FLAKE8 PASSED                                                                                [ 39%]
setuptools/command/build_ext.py::FLAKE8 PASSED                                                                                [ 40%]
setuptools/command/build_py.py::FLAKE8 PASSED                                                                                [ 40%]
setuptools/command/develop.py::FLAKE8 PASSED                                                                                [ 41%]
setuptools/command/dist_info.py::FLAKE8 PASSED                                                                                [ 42%]
setuptools/command/easy_install.py::FLAKE8 PASSED                                                                                [ 43%]
setuptools/command/egg_info.py::FLAKE8 PASSED                                                                                [ 44%]
setuptools/command/install.py::FLAKE8 PASSED                                                                                [ 45%]
setuptools/command/install_egg_info.py::FLAKE8 PASSED                                                                             [ 46%]
setuptools/command/install_lib.py::FLAKE8 PASSED                                                                                [ 46%]
setuptools/command/install_scripts.py::FLAKE8 PASSED                                                                              [ 47%]
setuptools/command/py36compat.py::FLAKE8 PASSED                                                                                [ 48%]
setuptools/command/register.py::FLAKE8 PASSED                                                                                [ 49%]
setuptools/command/rotate.py::FLAKE8 PASSED                                                                                [ 50%]
setuptools/command/saveopts.py::FLAKE8 PASSED                                                                                [ 51%]
setuptools/command/sdist.py::FLAKE8 PASSED                                                                                [ 52%]
setuptools/command/setopt.py::FLAKE8 PASSED                                                                                [ 53%]
setuptools/command/test.py::FLAKE8 PASSED                                                                                [ 53%]
setuptools/command/upload.py::FLAKE8 PASSED                                                                                [ 54%]
setuptools/command/upload_docs.py::FLAKE8 PASSED                                                                                [ 55%]
setuptools/tests/__init__.py::FLAKE8 PASSED                                                                                [ 56%]
setuptools/tests/contexts.py::FLAKE8 PASSED                                                                                [ 57%]
setuptools/tests/environment.py::FLAKE8 PASSED                                                                                [ 58%]
setuptools/tests/files.py::FLAKE8 PASSED                                                                                [ 59%]
setuptools/tests/fixtures.py::FLAKE8 PASSED                                                                                [ 60%]
setuptools/tests/namespaces.py::FLAKE8 PASSED                                                                                [ 60%]
setuptools/tests/script-with-bom.py::FLAKE8 PASSED                                                                                [ 61%]
setuptools/tests/server.py::FLAKE8 PASSED                                                                                [ 62%]
setuptools/tests/test_archive_util.py::FLAKE8 PASSED                                                                              [ 63%]
setuptools/tests/test_bdist_deprecations.py::FLAKE8 PASSED                                                                        [ 64%]
setuptools/tests/test_bdist_egg.py::FLAKE8 PASSED                                                                                [ 65%]
setuptools/tests/test_build_clib.py::FLAKE8 PASSED                                                                                [ 66%]
setuptools/tests/test_build_ext.py::FLAKE8 PASSED                                                                                [ 66%]
setuptools/tests/test_build_meta.py::FLAKE8 PASSED                                                                                [ 67%]
setuptools/tests/test_build_py.py::FLAKE8 PASSED                                                                                [ 68%]
setuptools/tests/test_config.py::FLAKE8 PASSED                                                                                [ 69%]
setuptools/tests/test_dep_util.py::FLAKE8 PASSED                                                                                [ 70%]
setuptools/tests/test_depends.py::FLAKE8 PASSED                                                                                [ 71%]
setuptools/tests/test_develop.py::FLAKE8 PASSED                                                                                [ 72%]
setuptools/tests/test_dist.py::FLAKE8 PASSED                                                                                [ 73%]
setuptools/tests/test_dist_info.py::FLAKE8 PASSED                                                                                [ 73%]
setuptools/tests/test_distutils_adoption.py::FLAKE8 PASSED                                                                        [ 74%]
setuptools/tests/test_easy_install.py::FLAKE8 PASSED                                                                              [ 75%]
setuptools/tests/test_egg_info.py::FLAKE8 PASSED                                                                                [ 76%]
setuptools/tests/test_extern.py::FLAKE8 PASSED                                                                                [ 77%]
setuptools/tests/test_find_packages.py::FLAKE8 PASSED                                                                             [ 78%]
setuptools/tests/test_glob.py::FLAKE8 PASSED                                                                                [ 79%]
setuptools/tests/test_install_scripts.py::FLAKE8 PASSED                                                                           [ 80%]
setuptools/tests/test_integration.py::FLAKE8 PASSED                                                                               [ 80%]
setuptools/tests/test_manifest.py::FLAKE8 PASSED                                                                                [ 81%]
setuptools/tests/test_msvc.py::FLAKE8 PASSED                                                                                [ 82%]
setuptools/tests/test_msvc14.py::FLAKE8 PASSED                                                                                [ 83%]
setuptools/tests/test_namespaces.py::FLAKE8 PASSED                                                                                [ 84%]
setuptools/tests/test_packageindex.py::FLAKE8 PASSED                                                                              [ 85%]
setuptools/tests/test_register.py::FLAKE8 PASSED                                                                                [ 86%]
setuptools/tests/test_sandbox.py::FLAKE8 PASSED                                                                                [ 86%]
setuptools/tests/test_sdist.py::FLAKE8 PASSED                                                                                [ 87%]
setuptools/tests/test_setopt.py::FLAKE8 PASSED                                                                                [ 88%]
setuptools/tests/test_setuptools.py::FLAKE8 PASSED                                                                                [ 89%]
setuptools/tests/test_test.py::FLAKE8 PASSED                                                                                [ 90%]
setuptools/tests/test_unicode_utils.py::FLAKE8 PASSED                                                                             [ 91%]
setuptools/tests/test_upload.py::FLAKE8 PASSED                                                                                [ 92%]
setuptools/tests/test_upload_docs.py::FLAKE8 PASSED                                                                               [ 93%]
setuptools/tests/test_virtualenv.py::FLAKE8 PASSED                                                                                [ 93%]
setuptools/tests/test_wheel.py::FLAKE8 PASSED                                                                                [ 94%]
setuptools/tests/test_windows_wrappers.py::FLAKE8 PASSED                                                                          [ 95%]
setuptools/tests/text.py::FLAKE8 PASSED                                                                                [ 96%]
setuptools/tests/textwrap.py::FLAKE8 PASSED                                                                                [ 97%]
tools/finalize.py::FLAKE8 PASSED                                                                                [ 98%]
tools/ppc64le-patch.py::FLAKE8 PASSED                                                                                [ 99%]
tools/tox_pip.py::FLAKE8 PASSED                                                                                [100%]

======================================================== short test summary info ========================================================
SKIPPED [2] setuptools/tests/test_msvc.py:17: could not import 'distutils.msvc9compiler': No module named 'winreg'
============================================ 115 passed, 2 skipped, 690 deselected in 12.79s ============================================
________________________________________________________________ summary ________________________________________________________________
  python: commands succeeded
  congratulations :)

setuptools main $ tox -- -k flake8 -v -p no:cov
python develop-inst-noop: /Users/jaraco/code/public/pypa/setuptools
python installed: apipkg==1.5,appdirs==1.4.4,attrs==20.3.0,black==20.8b1,click==7.1.2,contextlib2==0.6.0.post1,coverage==5.3.1,distlib==0.3.1,docutils==0.16,execnet==1.7.1,filelock==3.0.12,flake8==3.8.4,flake8-2020==1.6.0,iniconfig==1.1.1,jaraco.apt==2.0,jaraco.classes==3.1.0,jaraco.collections==3.0.0,jaraco.context==3.0.0,jaraco.envs==2.0.0,jaraco.functools==3.0.1,jaraco.test==4.0.1,jaraco.text==3.2.0,mccabe==0.6.1,mock==4.0.3,more-itertools==8.6.0,mypy==0.790,mypy-extensions==0.4.3,packaging==20.8,path==15.0.1,path.py==12.5.0,pathspec==0.8.1,Paver==1.3.4,pip==20.2.4,pluggy==0.13.1,py==1.10.0,pycodestyle==2.6.0,pyflakes==2.2.0,pyparsing==2.4.7,pytest==6.2.1,pytest-black==0.3.12,pytest-checkdocs==2.1.1,pytest-cov==2.10.1,pytest-fixture-config==1.7.0,pytest-flake8==1.0.7,pytest-mypy==0.8.0,pytest-shutil==1.7.0,pytest-virtualenv==1.7.0,pytz==2020.4,regex==2020.11.13,-e git+gh://pypa/setuptools@ac2311014ab27409f1ca109101131fd7383cdc32#egg=setuptools,six==1.15.0,tempora==4.0.1,termcolor==1.1.0,toml==0.10.2,tox==3.20.1,tox-venv==0.4.0,typed-ast==1.4.1,typing-extensions==<IP_ADDRESS>,virtualenv==20.2.2,wheel==0.35.1,yg.lockfile==2.3,zc.lockfile==2.0
python run-test-pre: PYTHONHASHSEED='2739366957'
python run-test: commands[0] | pytest -k flake8 -v -p no:cov
========================================================== test session starts ==========================================================
platform darwin -- Python 3.9.0, pytest-6.2.1, py-1.10.0, pluggy-0.13.1 -- /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python
cachedir: .tox/python/.pytest_cache
rootdir: /Users/jaraco/code/public/pypa/setuptools, configfile: pytest.ini
plugins: flake8-1.0.7, mypy-0.8.0, black-0.3.12, jaraco.test-4.0.1, shutil-1.7.0, checkdocs-2.1.1, virtualenv-1.7.0
collected 805 items / 690 deselected / 2 skipped / 113 selected

bootstrap.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                            [  0%]
conftest.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                             [  1%]
easy_install.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                         [  2%]
pavement.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                             [  3%]
setup.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                                [  4%]
docs/conf.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                            [  5%]
pkg_resources/__init__.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                               [  6%]
pkg_resources/tests/__init__.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                         [  6%]
pkg_resources/tests/test_find_distributions.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                          [  7%]
pkg_resources/tests/test_markers.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                     [  8%]
pkg_resources/tests/test_pkg_resources.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                               [  9%]
pkg_resources/tests/test_resources.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                   [ 10%]
pkg_resources/tests/test_working_set.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                 [ 11%]
setuptools/__init__.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                  [ 12%]
setuptools/_deprecation_warning.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                      [ 13%]
setuptools/_imp.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                      [ 13%]
setuptools/archive_util.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                              [ 14%]
setuptools/build_meta.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                [ 15%]
setuptools/config.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                    [ 16%]
setuptools/dep_util.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                  [ 17%]
setuptools/depends.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                   [ 18%]
setuptools/dist.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                      [ 19%]
setuptools/errors.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                    [ 20%]
setuptools/extension.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                 [ 20%]
setuptools/glob.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                      [ 21%]
setuptools/installer.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                 [ 22%]
setuptools/launch.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                    [ 23%]
setuptools/lib2to3_ex.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                [ 24%]
setuptools/monkey.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                    [ 25%]
setuptools/msvc.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                      [ 26%]
setuptools/namespaces.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                [ 26%]
setuptools/package_index.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                             [ 27%]
setuptools/py34compat.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                [ 28%]
setuptools/sandbox.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                   [ 29%]
setuptools/ssl_support.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                               [ 30%]
setuptools/unicode_utils.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                             [ 31%]
setuptools/version.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                   [ 32%]
setuptools/wheel.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                     [ 33%]
setuptools/windows_support.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                           [ 33%]
setuptools/command/__init__.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                          [ 34%]
setuptools/command/alias.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                             [ 35%]
setuptools/command/bdist_egg.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                         [ 36%]
setuptools/command/bdist_rpm.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                         [ 37%]
setuptools/command/bdist_wininst.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                     [ 38%]
setuptools/command/build_clib.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                        [ 39%]
setuptools/command/build_ext.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                         [ 40%]
setuptools/command/build_py.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                          [ 40%]
setuptools/command/develop.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                           [ 41%]
setuptools/command/dist_info.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                         [ 42%]
setuptools/command/easy_install.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                      [ 43%]
setuptools/command/egg_info.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                          [ 44%]
setuptools/command/install.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                           [ 45%]
setuptools/command/install_egg_info.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                  [ 46%]
setuptools/command/install_lib.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                       [ 46%]
setuptools/command/install_scripts.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                   [ 47%]
setuptools/command/py36compat.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                        [ 48%]
setuptools/command/register.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                          [ 49%]
setuptools/command/rotate.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                            [ 50%]
setuptools/command/saveopts.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                          [ 51%]
setuptools/command/sdist.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                             [ 52%]
setuptools/command/setopt.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                            [ 53%]
setuptools/command/test.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                              [ 53%]
setuptools/command/upload.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                            [ 54%]
setuptools/command/upload_docs.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                       [ 55%]
setuptools/tests/__init__.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                            [ 56%]
setuptools/tests/contexts.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                            [ 57%]
setuptools/tests/environment.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                         [ 58%]
setuptools/tests/files.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                               [ 59%]
setuptools/tests/fixtures.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                            [ 60%]
setuptools/tests/namespaces.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                          [ 60%]
setuptools/tests/script-with-bom.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                     [ 61%]
setuptools/tests/server.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                              [ 62%]
setuptools/tests/test_archive_util.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                   [ 63%]
setuptools/tests/test_bdist_deprecations.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                             [ 64%]
setuptools/tests/test_bdist_egg.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                      [ 65%]
setuptools/tests/test_build_clib.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                     [ 66%]
setuptools/tests/test_build_ext.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                      [ 66%]
setuptools/tests/test_build_meta.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                     [ 67%]
setuptools/tests/test_build_py.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                       [ 68%]
setuptools/tests/test_config.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                         [ 69%]
setuptools/tests/test_dep_util.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                       [ 70%]
setuptools/tests/test_depends.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                        [ 71%]
setuptools/tests/test_develop.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                        [ 72%]
setuptools/tests/test_dist.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                           [ 73%]
setuptools/tests/test_dist_info.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                      [ 73%]
setuptools/tests/test_distutils_adoption.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                             [ 74%]
setuptools/tests/test_easy_install.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                   [ 75%]
setuptools/tests/test_egg_info.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                       [ 76%]
setuptools/tests/test_extern.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                         [ 77%]
setuptools/tests/test_find_packages.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                  [ 78%]
setuptools/tests/test_glob.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                           [ 79%]
setuptools/tests/test_install_scripts.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                [ 80%]
setuptools/tests/test_integration.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                    [ 80%]
setuptools/tests/test_manifest.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                       [ 81%]
setuptools/tests/test_msvc.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                           [ 82%]
setuptools/tests/test_msvc14.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                         [ 83%]
setuptools/tests/test_namespaces.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                     [ 84%]
setuptools/tests/test_packageindex.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                   [ 85%]
setuptools/tests/test_register.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                       [ 86%]
setuptools/tests/test_sandbox.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                        [ 86%]
setuptools/tests/test_sdist.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                          [ 87%]
setuptools/tests/test_setopt.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                         [ 88%]
setuptools/tests/test_setuptools.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                     [ 89%]
setuptools/tests/test_test.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                           [ 90%]
setuptools/tests/test_unicode_utils.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                  [ 91%]
setuptools/tests/test_upload.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                         [ 92%]
setuptools/tests/test_upload_docs.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                    [ 93%]
setuptools/tests/test_virtualenv.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                     [ 93%]
setuptools/tests/test_wheel.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                          [ 94%]
setuptools/tests/test_windows_wrappers.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                               [ 95%]
setuptools/tests/text.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                [ 96%]
setuptools/tests/textwrap.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                            [ 97%]
tools/finalize.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                       [ 98%]
tools/ppc64le-patch.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                  [ 99%]
tools/tox_pip.py::FLAKE8 SKIPPED (file(s) previously passed FLAKE8 checks)                                                        [100%]

======================================================== short test summary info ========================================================
SKIPPED [2] setuptools/tests/test_msvc.py:17: could not import 'distutils.msvc9compiler': No module named 'winreg'
SKIPPED [115] .tox/python/lib/python3.9/site-packages/pytest_flake8.py:116: file(s) previously passed FLAKE8 checks
================================================= 117 skipped, 690 deselected in 1.79s ==================================================
________________________________________________________________ summary ________________________________________________________________
  python: commands succeeded
  congratulations :)

Note, you don't need to pass --flake8. With the inclusion of jaraco.test and the configuration in pyproject.toml, --flake8 will be implied if the pytest flake8 plugin is present and enabled (and not if not). By default, the plugin is present and enabled, but can be disabled with -p no:flake8 or uninstalling it.
Note that I also saw the skips on the second run. That's working as intended. The flake8 tests don't need to be run a second time if the files haven't changed since they were last checked.
Also, you can see the tests ran in 13s for me, and 1.8s for the second attempt.
I did disable coverage for these runs to avoid the noisy (buggy) output that coverage generates.

Note that I also saw the skips on the second run. That's working as intended. The flake8 tests don't need to be run a second time if the files haven't changed since they were last checked.

It's interesting that I didn't see any PASSED lines and that's what I'm confused about. Still, I've found a number of misconfigured settings in the configs. Also, I think that flake8 should run w/o such problems separately because there's no other clean way of seeing what's happening when you run it.

I've made an intentional syntax error in bootstrap.py but that fails on the collection step of pytest not even getting to flake8. I guess that's fine...

If you run git clean -fdx first, that should clear out the cache and I'd expect you'll get passed lines.
Agreed, it would be nice for flake8 to run naturally, though I'm okay with that usage being broken as long as the test suite is able to enforce the flake8 checks during the test run.
I believe the use of extend-ignore (jaraco/skeleton#28) should address that concern, as you describe.

I've verified that making style violations adds the failed entries and fixing that produces PASSED. I didn't realize there's some cache. Anyway, it's quite confusing to see linters among regular tests.

I believe the use of extend-ignore (jaraco/skeleton#28) should address that concern, as you describe.

Almost. Also, there's extend-exclude that still results in some violations showing up (specifically under setuptools/_distutils/).

FWIW I'll probably send a few PRs later to address what I've noticed.

FWIW I'll probably send a few PRs later to address what I've noticed.

Sounds good. For this first round, I'm aiming toward simplicity and conformance with the skeleton without unduly compromising the project's expectations. I'd like to let these changes stabilize before tweaking them further. Feel free to send PRs, but I may choose to sit on them for some time, especially if they're not critical changes.

skeleton PR: https://github.com/jaraco/skeleton/pull/33

setuptools PR: https://github.com/pypa/setuptools/pull/2508

Invalid config entries PR: https://github.com/pypa/setuptools/pull/2509.

It looks like this issue has been addressed.


Use ReadOnlySpan arguments instead of long[] where advantageous.

Based on discussion in #621.
@tarekgh, can you add some principles for how I should systematically look for these locations?

I think we've covered most of them by now.


Initial Dapr integration

Fixes #16
Hi community, I am just building a simple Dapr integration for CNOE Stacks.
I would love to build deeper examples with Backstage, but I didn't found out much more resources on that.
Can you please help me to review this first?

@salaboy @nabuskey I think I made all the requested changes.. I will work on a separate repo for some Dapr Backstage templates.. let me know if you want me to add something else to this PR, I would prefer to keep it simple

@nabuskey sorry about that.. now it is fixed

Thank you @salaboy this is very cool. Would be good to publish some Backstage templates to go with it for some sample usecase applications similar ot what we have here and I think you and @csantanapr should have a "How to use Dapr in Dev Platforms" session maybe?

I am working on those templates with examples in different languages.
I will keep you posted. Let’s record a video or I can write a blog post
with those examples.

Blog: http://salaboy.com http://salaboy.wordpress.com

Github user: http://github.com/salaboy

Twitter: http://twitter.com/salaboy

Mauricio "Salaboy" Salatino -

On Fri, 9 Aug 2024 at 21:07, Nima Kaviani @.***> wrote:

Thank you @salaboy https://github.com/salaboy this is very cool. Would
be good to publish some Backstage templates to go with it for some sample
usecase applications similar ot what we have here
http://localhost:3000/docs/reference-implementation/integrations/terraform/s3-bucket
and I think you and @csantanapr https://github.com/csantanapr should
have a "How to use Dapr in Dev Platforms" session maybe?
—
Reply to this email directly, view it on GitHub
https://github.com/cnoe-io/stacks/pull/26#issuecomment-2278664305, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AACCMXT7XHZWNFVU6X2G5ZTZQUOPXAVCNFSM6AAAAABL4JZTDSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZYGY3DIMZQGU
.
You are receiving this because you were mentioned.Message ID:
@.***>

awesome sounds good!

awesome @salaboy


Clean and avoid "repeating yourself" on forms.py

The main commit (the second one) is a-hell-of-a-diff because I took all the repeated code in TicketForm and PublicTicketForm and put it in an AbstractTicketForm.
I found some inconsistencies while translating django-helpdesk, and then understood that they were due to some repeated code and repeated fields between those two forms.
However, I have yet to address the failing build on Python 3.4. I don't recall doing any "dangerous stuff" there, but Travis doesn't lie.

Current coverage is 51.04% (diff: 52.77%)

Merging #443 into master will increase coverage by 0.64%

@@             master       #443   diff @@
==========================================
  Files            32         32
  Lines          2879       2866    -13
  Methods           0          0
  Messages          0          0
  Branches        471        465     -6
==========================================
+ Hits           1451       1463    +12
+ Misses         1291       1263    -28
- Partials        137        140     +3

Powered by Codecov. Last update cbbad8d...681a189

This is great! Thanks for the work @alexbarcelo.

@reduxionist thx for the comments. Regarding variable naming, I almost changed them, but decided to leave the original ones in some places. In this case, it was a better idea to avoid single-letter variables everywhere.
The last commit uses a dict to simplify a little bit the code on the case pattern. There is room for improvement, but at the time it seemed a straightforward reasonable way to improve readability.

The module is much cleaner now, and a refactoring that increases test coverage without even having to add new tests is a big win! 😃  Thanks very much @alexbarcelo!


[bug]: Unable to install Invoke AI on M1 Mac

Is there an existing issue for this?

[X] I have searched the existing issues

OS
macOS
GPU
cuda
VRAM
16
What happened?
I am unable to get everything installed for invoke ai. i get this when i try to run
configure_invokeai.py --root=.
configure_invokeai.py --root=.
#!/usr/bin/env bash
set -eu
if [ $# -ge 1 ] && [ "${1:0:2}" == "-h" ]; then
echo "Usage: update.sh "
echo "Updates InvokeAI to use the indicated version of the code base."
echo "Find the version or branch for the release you want, and pass it as the argument."
echo "For example: update.sh v2.2.5 for release 2.2.5."
echo "             update.sh main for the current development version."
echo ""
echo "If no argument provided then will install the version tagged with 'latest', equivalent to"
echo "update.sh latest"
exit -1
fi
INVOKE_AI_VERSION=${1:-latest}
INVOKE_AI_SRC="https://github.com/invoke-ai/InvokeAI/archive/$INVOKE_AI_VERSION.zip"
INVOKE_AI_DEP=https://raw.githubusercontent.com/invoke-ai/InvokeAI/$INVOKE_AI_VERSION/environments-and-requirements/requirements-base.txt
ensure we're in the correct folder in case user's CWD is somewhere else
scriptdir=$(dirname "$0")
cd "$scriptdir"
function _err_exit {
if test "$1" -ne 0
then
echo "Something went wrong while installing InvokeAI and/or its requirements."
echo "Update cannot continue. Please report this error to https://github.com/invoke-ai/InvokeAI/issues"
echo -e "Error code $1; Error caught was '$2'"
read -p "Press any key to exit..."
exit
fi
}
if ! curl -I "$INVOKE_AI_DEP" -fs >/dev/null; then
echo '$INVOKE_AI_VERSION' is not a known branch name or tag. Please check the version and try again.
exit
fi
echo This script will update InvokeAI and all its dependencies to version '$INVOKE_AI_VERSION'.
echo If you do not want to do this, press control-C now!
read -p "Press any key to continue, or CTRL-C to exit..."
curl -L "$INVOKE_AI_DEP" > environments-and-requirements/requirements-base.txt
. .venv/bin/activate
./.venv/bin/python -mpip install -r requirements.txt
_err_exit $? "The pip program failed to install InvokeAI's requirements."
./.venv/bin/python -mpip install $INVOKE_AI_SRC
_err_exit $? "The pip program failed to install InvokeAI."
echo InvokeAI updated to '$INVOKE_AI_VERSION'
./.venv/bin/python .venv/bin/configure_invokeai.py --root .
_err_exit $? "The configure script failed to run successfully."
Screenshots
configure_invokeai.py --root=.
configure_invokeai.py --root=.
#!/usr/bin/env bash
set -eu
if [ $# -ge 1 ] && [ "${1:0:2}" == "-h" ]; then
echo "Usage: update.sh "
echo "Updates InvokeAI to use the indicated version of the code base."
echo "Find the version or branch for the release you want, and pass it as the argument."
echo "For example: update.sh v2.2.5 for release 2.2.5."
echo "             update.sh main for the current development version."
echo ""
echo "If no argument provided then will install the version tagged with 'latest', equivalent to"
echo "update.sh latest"
exit -1
fi
INVOKE_AI_VERSION=${1:-latest}
INVOKE_AI_SRC="https://github.com/invoke-ai/InvokeAI/archive/$INVOKE_AI_VERSION.zip"
INVOKE_AI_DEP=https://raw.githubusercontent.com/invoke-ai/InvokeAI/$INVOKE_AI_VERSION/environments-and-requirements/requirements-base.txt
ensure we're in the correct folder in case user's CWD is somewhere else
scriptdir=$(dirname "$0")
cd "$scriptdir"
function _err_exit {
if test "$1" -ne 0
then
echo "Something went wrong while installing InvokeAI and/or its requirements."
echo "Update cannot continue. Please report this error to https://github.com/invoke-ai/InvokeAI/issues"
echo -e "Error code $1; Error caught was '$2'"
read -p "Press any key to exit..."
exit
fi
}
if ! curl -I "$INVOKE_AI_DEP" -fs >/dev/null; then
echo '$INVOKE_AI_VERSION' is not a known branch name or tag. Please check the version and try again.
exit
fi
echo This script will update InvokeAI and all its dependencies to version '$INVOKE_AI_VERSION'.
echo If you do not want to do this, press control-C now!
read -p "Press any key to continue, or CTRL-C to exit..."
curl -L "$INVOKE_AI_DEP" > environments-and-requirements/requirements-base.txt
. .venv/bin/activate
./.venv/bin/python -mpip install -r requirements.txt
_err_exit $? "The pip program failed to install InvokeAI's requirements."
./.venv/bin/python -mpip install $INVOKE_AI_SRC
_err_exit $? "The pip program failed to install InvokeAI."
echo InvokeAI updated to '$INVOKE_AI_VERSION'
./.venv/bin/python .venv/bin/configure_invokeai.py --root .
_err_exit $? "The configure script failed to run successfully."
Additional context
listed
Contact Details
<EMAIL_ADDRESS>

Looks like you opened the shell script in a text editor and pasted it here instead of running it in the terminal. To run a shell script, make sure you're in the right directory in Terminal.app, and then ./install.sh (the name of the script preceeded by a dot and slash).


x/tools/gopls: triggers packages.Load on ctrl-hover

Build info
golang.org/x/tools/gopls master
    golang.org/x/tools/gopls@(devel)
<EMAIL_ADDRESS>h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
<EMAIL_ADDRESS>h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
<EMAIL_ADDRESS>h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=
<EMAIL_ADDRESS>=> ../
<EMAIL_ADDRESS>h1:9zdDQZ7Thm29KFXgAX/+yaf3eVbP7djjWp/dXAppNCc=
<EMAIL_ADDRESS>h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM=

Go info
go version go1.13.4 linux/amd64

What did you do?
Hovered over an indentifier with the ctrl key held down in VSCode.
What did you expect to see?
A hover more or less instantly.
What did you see instead?
Delay due to a packages.Load call. The hover triggers a didOpen for the file that declares the identifier I'm hovering over, and that didOpen seems to trigger a packages.Load call on it.

As of CL 208265, we no longer call go/packages.Load on file opens, so this should be fixed now.


Support kwargs-based callbacks for DynamicMap?

Currently, DynamicMap requires that its callback use positional arguments, and it provides the values along each kdim in the order of the kdims, as in:
import numpy as np
import holoviews as hv
import imagen as ig
import imagen.transferfn as tf
from imagen.image import FileImage
from imagen.transferfn.sheet_tf import Convolve
hv.notebook_extension()
%opts Image (cmap="gray") {+axiswise}

FileImage.filename = "/Users/jbednar/imagen/doc/images/ellen_arthur.pgm"

kdims = [hv.Dimension('size',                   range=(0.1, 2)),
         hv.Dimension('positive_size',          range=(0.1, 2)),
         hv.Dimension('negative_size',          range=(0.3, 4)),
         hv.Dimension('positive_aspect_ratio',  range=(1.0,10)),
         hv.Dimension('negative_aspect_ratio',  range=(1.0,10))]

def filtered_images(size,positive_size,negative_size,positive_aspect_ratio,negative_aspect_ratio):
    convolver = Convolve(kernel_pattern=ig.DifferenceOfGaussians(**locals()))
    return FileImage(output_fns=[convolver])[:]

FileImage()[:] + hv.DynamicMap(filtered_images, kdims=kdims)

Positional arguments work well for one or two arguments, but once there are a lot of them (and the above code shows only a small subset of the arguments that could be kdims in this example), keyword arguments can be much safer.  E.g. in the code above, if I add a kdim to that list, I need to be sure to add the appropriate argument to the filtered_images argument list, in precisely the right spot, or else everything will get jumbled.  If all I'm doing is passing the arguments down to some other object, as I am here, it's redundant and fragile to redeclare them in this way.
Can we make DynamicMap support calling its callback using keyword arguments instead, either by adding a parameter to it kwarg_callback=True or by inspecting the callback to determine whether it uses positional or keyword arguments?

I think this would be a very reasonable thing to support. I'm just wondering if we should consider using inspection to do the right thing automatically...

Addressed by the PR referenced above. Closing.


Better diagnostics tooling

To achieve better and faster insights in the event of an outage, we want to improve our diagnostics tooling built into the node.

This is done!


add a CLI

Create a command-line tool for configuring & deploying code-server instances to the cloud. This aims to solve two problem:

creating a new dev cloud environment is repetitive
creating test environments for code-server (for testing issues) can be difficult  - @jsjoeio's idea 💡

This will be good for creating consistent dev workspaces or test environments for code-server. For example
# launch an ubuntu server with nginx
$ lcs --ubuntu nginx
Creating...
Access your server at https://x.x.x.x:80
Password: asd832sd

# launch a blank ubuntu server and get SSH access
$ lcs --ubuntu blank
...

# launch an ubuntu server configured with code-server --link and 2 GB memory
$ lcs ubuntu --link --mem 2
...

I am planning on supporting this with the Vultr because of their developer-friendly API.

Love the sound of this! The environments that I see often:

nginx
Docker
Railway

Those seem to be the most common. I think that's a great starting point.

potentially do this in rust? https://egghead.io/courses/creating-a-digital-garden-cli-with-rust-34b8


Get span in bytes instead of characters?

I was slightly surprised to find that .map_with_span() on a char parser returns values in units of char, not bytes. I guess it makes sense now that I think about it, but I'm so used to dealing with Range<usize> being byte ranges for Rust strings that I didn't really think about it.
The rest of my code uses UTF-8 byte ranges. Do you know of an elegant way to get the spans as UTF-8 byte ranges instead? I can think of a few less-than-ideal options.

As of the (alpha) 1.0 releases, all spans are byte offsets. In 0.9 you can use byte offsets too by constructing Stream manually.

Aha, I upgraded to 1.0.0-alpha4 and that did the trick! If it helps you write the documentation, here were the things I had to change:

pub type Span = std::ops::Range<usize>; -> pub type Span = SimpleSpan<usize>;
.chain() -> .then()
.collect::<String>().map( -> .map_slice(
.labelled(..) -> Dunno, I just removed these for now... :-|
skip_then_retry_until([]) -> skip_then_retry_until(any().ignored(), end())
.parse_recovery(s) -> .parse(s)
take_until(just("*/")) -> any().and_is(just("*/").not()).repeated()).then(just("*/")) (feels like there's probably a better way here?)

I also couldn't figure out why this slightly modified ident() function doesn't work (it's supposed to allow ~ as a special identifier):
#[must_use]
pub fn ident<'a, I: ValueInput<'a> + StrInput<'a, C>, C: Char, E: ParserExtra<'a, I>>(
) -> impl Parser<'a, I, &'a C::Str, E> + Copy + Clone {
    any()
        // Use try_map over filter to get a better error on failure
        .try_map(|c: C, span| {
            if c.to_char().is_ascii_alphabetic() || c.to_char() == '_' || c.to_char() == '?' {
                Ok(c)
            } else {
                Err(Error::expected_found([], Some(MaybeRef::Val(c)), span))
            }
        })
        .then(
            any()
                // This error never appears due to `repeated` so can use `filter`
                .filter(|c: &C| c.to_char().is_ascii_alphanumeric() || c.to_char() == '_' || c.to_char() == '?' || c.to_char() == '\'')
                .repeated(),
        )
        .or(just('~'))
        .slice()
}

The error messages are hard! Documentation is generally excellent though, so it wasn't too bad an upgrade. Thanks for the great library! Don't think I'd go back to Nom or Tree Sitter.

here were the things I had to change:

Thanks! That's going to be quite useful when I finally get round to writing migration docs from 0.9 to 1.0.

* `.labelled(..)` -> Dunno, I just removed these for now... :-|

labelled still exists, but is behind the label feature flag for now.

* `take_until(just("*/"))` -> `any().and_is(just("*/").not()).repeated()).then(just("*/"))` (feels like there's probably a better way here?)

This is the current recommended approach, yes. It's unfortunate that it's more noisy, but and_is and not in combination are much more flexible than take_until (which ended up often being only a half solution for many problems). At some point I might try to take common patterns like this and put them into some sort of escaped combinator that makes this sort of thing a bit easier.

I also couldn't figure out why this slightly modified ident() function doesn't work (it's supposed to allow ~ as a special identifier):

When you say that it doesn't work, what do you mean? Do you get compiler errors, or does it not parse a certain input correctly?

The error messages are hard! Documentation is generally excellent though, so it wasn't too bad an upgrade. Thanks for the great library! Don't think I'd go back to Nom or Tree Sitter.

Thanks for your kind words! I definitely agree with regard to error messages: I'd really like to see Rust get better at these sort of diagnostics. I'm firmly of the opinion that it's possible to produce better results, but unfortunately I don't have enough knowledge of rustc to make the changes myself.

labelled still exists, but is behind the label feature flag for now.

Aha, thanks!

When you say that it doesn't work, what do you mean?

I get this compilation error:
error[E0277]: the trait bound `Just<char, _, _>: chumsky::private::ParserSealed<'_, _, (C, ()), _>` is not satisfied
    --> sail_parser\src\lib.rs:310:13
     |
310  |         .or(just('~'))
     |          -- ^^^^^^^^^ the trait `chumsky::private::ParserSealed<'_, _, (C, ()), _>` is not implemented for `Just<char, _, _>`
     |          |
     |          required by a bound introduced by this call
     |
     = help: the trait `chumsky::private::ParserSealed<'a, I, T, E>` is implemented for `Just<T, I, E>`
     = note: required for `Just<char, _, _>` to implement `Parser<'_, _, (C, ()), _>`
note: required by a bound in `or`
    --> C:\Users\Tim\.cargo\registry\src\index.crates.io-6f17d22bba15001f\chumsky-1.0.0-alpha.4\src\lib.rs:1190:12
     |
1187 |     fn or<B>(self, other: B) -> Or<Self, B>
     |        -- required by a bound in this associated function
...
1190 |         B: Parser<'a, I, O, E>,
     |            ^^^^^^^^^^^^^^^^^^^ required by this bound in `Parser::or`

error[E0277]: the trait bound `Just<char, _, _>: chumsky::private::ParserSealed<'_, _, (C, ()), _>` is not satisfied
   --> sail_parser\src\lib.rs:311:10
    |
311 |         .slice()
    |          ^^^^^ the trait `chumsky::private::ParserSealed<'_, _, (C, ()), _>` is not implemented for `Just<char, _, _>`
    |
    = help: the trait `chumsky::private::ParserSealed<'a, I, T, E>` is implemented for `Just<T, I, E>`
    = note: required for `Just<char, _, _>` to implement `Parser<'_, _, (C, ()), _>`
    = note: required for `Or<Then<TryMap<chumsky::primitive::Any<_, _>, C, [closure@sail_parser\src\lib.rs:297:18: 297:30]>, Repeated<chumsky::combinator::Filter<chumsky::primitive::Any<_, _>, [closure@sail_parser\src\lib.rs:307:25: 307:32]>, C, _, _>, C, (), _>, Just<char, _, _>>` to implement `chumsky::private::ParserSealed<'_, _, (C, ()), _>`
note: required by a bound in `chumsky::Parser::slice`
   --> C:\Users\Tim\.cargo\registry\src\index.crates.io-6f17d22bba15001f\chumsky-1.0.0-alpha.4\src\lib.rs:303:5
    |
303 |     ParserSealed<'a, I, O, E>
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Parser::slice`
...
416 |     fn slice(self) -> Slice<Self, O>
    |        ----- required by a bound in this associated function

error[E0277]: the trait bound `Just<char, _, _>: chumsky::private::ParserSealed<'_, I, (C, ()), E>` is not satisfied
   --> sail_parser\src\lib.rs:294:6
    |
294 | ) -> impl Parser<'a, I, &'a C::Str, E> + Copy + Clone {
    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `chumsky::private::ParserSealed<'_, I, (C, ()), E>` is not implemented for `Just<char, _, _>`
    |
    = help: the trait `chumsky::private::ParserSealed<'a, I, T, E>` is implemented for `Just<T, I, E>`
    = note: required for `Just<char, _, _>` to implement `Parser<'_, I, (C, ()), E>`
    = note: required for `Or<Then<TryMap<chumsky::primitive::Any<I, E>, C, [closure@sail_parser\src\lib.rs:297:18: 297:30]>, Repeated<chumsky::combinator::Filter<chumsky::primitive::Any<I, E>, [closure@sail_parser\src\lib.rs:307:25: 307:32]>, C, I, E>, C, (), E>, Just<char, _, _>>` to implement `chumsky::private::ParserSealed<'_, I, (C, ()), E>`
    = note: 3 redundant requirements hidden
    = note: required for `Slice<Or<Then<TryMap<chumsky::primitive::Any<I, E>, C, [closure@sail_parser\src\lib.rs:297:18: 297:30]>, Repeated<chumsky::combinator::Filter<chumsky::primitive::Any<I, E>, [closure@sail_parser\src\lib.rs:307:25: 307:32]>, C, I, E>, C, (), E>, Just<char, _, _>>,
(C, ())>` to implement `Parser<'a, I, &'a <C as chumsky::text::Char>::Str, E>`

The problem here is that the output types of a and b in a.or(b) need to match. In your specific case, you have:
any()
    .then(...) // Output type = (char, _)
    .or(just('~') /* Output type = char */)
    .slice()

You can see is mismatch here. An easy approach to solving this, since the output value gets thrown away anyway, is to just use .ignored() on both parsers to give them both an output type of ():
any()
    .then(...)
    .ignored() // Output type = ()
    .or(just('~').ignored() /* Output type = () */)
    .slice()

Ah that still didn't quite compile, but one of the compilation errors was complaining about C: Char, saying I should use where instead. Since I don't care about being that generic I just changed all the Cs to char and it worked!


add bob.json, leap.json test data

A couple of common first exercises.

Thanks, it's really nice to get these common problems into a common format. There's been a lot of drift over the past 18 months.

Mm hm, thank you.  I didn't find much drift in leap, but a few languages had made interesting additions to bob.
I've been including pretty much whatever I find but I've been thinking about how to handle cases where a language might want to use a subset of the test cases.  For example one addition for bob was some unusual Unicode space characters--a non-breaking space and an en-width space.  It's fine for the moment because I believe Go is the only language at this point attempting to generate code from the json and Go handles these well.  But what if Unicode was tricky to deal with?  You might not want to test it in a beginner-level exercise.  A recourse with the current json would be to generate code for all cases where "description" didn't equal "other whitespace".  It's a little kludgy but I'm not inclined to invent any new conventions until simple solutions like this become inadequate.
An example that Go didn't handle well was the mixed data type test cases in custom-set.  When I first collected the test cases, I tried to use the word "mixed" in the description, thinking my Go program could skip any test case with the word "mixed".  That turned out not to work.  Oh, I could have made it work, but it was going to be a extra effort.  I backtracked and put these mixed-type test cases in a separate section of the json, which is easily ignored in Go.  I think it's a Go thing that the first technique was awkward.  I'm guessing that with a dynamically typed language--or maybe just a different json decoder in Go--it wouldn't have been a problem.  Anyway, I did what was easy for the moment.  Tradeoffs of doing it differently can be considered if or when someone has trouble with a code generator in another language.

I'm not inclined to invent any new conventions until simple solutions like this become inadequate.
[...]
Tradeoffs of doing it differently can be considered if or when someone has trouble with a code generator in another language.

Yes, I think this is the best approach for now.
Thanks again.


Virtual dom

How hard would it be to implement Virtual DOM (like Facebook React, render the tree, diff trees, update) in terms of scalatags? In combination with Signals/Observable types it would be nice to use pure functions to re-render each time when "something" occurs. With Virtual DOM it should only update the parts which have been changed, so the experience stays smooth and performant. Elm does this aswell: http://elm-lang.org/blog/Blazing-Fast-Html.elm. More about this: https://github.com/evancz/elm-architecture-tutorial

See javascript impl: https://github.com/Matt-Esch/virtual-dom

You could easily write bindings for Scalatags to whatever framework you want, e.g. @japgolly wrote some for React.js itself https://github.com/japgolly/scalajs-react) which took a few hundred LOC (not much). Re-implementing the logic from first principles is possible but will take a bit more work.
Realistically, I'm not going to do it anytime soon. Feel free to go do it, it's not hard ^_^


fix(collection/sshd): change acquistion yaml

The default config uses syslog. Change it to the sshd-parser.

This is no correct as if you have the syslog parser installed it should be able to parse the program name from the log line
$ sudo cscli explain --log 'Feb 19 10:38:14 myhost sshd[3355]: Disconnected from authenticating user ftp <IP_ADDRESS> port 26138 [preauth]' --type syslog --only-successful-parsers -v
line: Feb 19 10:38:14 myhost sshd[3355]: Disconnected from authenticating user ftp <IP_ADDRESS> port 26138 [preauth]
├ s00-raw
|       └ 🟢 crowdsecurity/syslog-logs (+12 ~9)
|               └ update evt.ExpectMode : %!s(int=0) -> 1
|               └ update evt.Stage :  -> s01-parse
|               └ update evt.Line.Raw :  -> Feb 19 10:38:14 myhost sshd[3355]: Disconnected from authenticating user ftp <IP_ADDRESS> port 26138 [preauth]
|               └ update evt.Line.Src :  -> /tmp/cscli_explain1310535647/cscli_test_tmp.log
|               └ update evt.Line.Time : 0001-01-01 00:00:00 +0000 UTC -> 2024-09-03 10:00:23.121648753 +0000 UTC
|               └ create evt.Line.Labels.type : syslog
|               └ update evt.Line.Process : %!s(bool=false) -> true
|               └ update evt.Line.Module :  -> file
|               └ create evt.Parsed.priority :
|               └ create evt.Parsed.program : sshd
|               └ create evt.Parsed.timestamp : Feb 19 10:38:14
|               └ create evt.Parsed.timestamp8601 :
|               └ create evt.Parsed.facility :
|               └ create evt.Parsed.logsource : syslog
|               └ create evt.Parsed.message : Disconnected from authenticating user ftp <IP_ADDRESS> port 26138 [preauth]
|               └ create evt.Parsed.pid : 3355
|               └ update evt.Time : 0001-01-01 00:00:00 +0000 UTC -> 2024-09-03 10:00:23.121672153 +0000 UTC
|               └ update evt.StrTime :  -> Feb 19 10:38:14
|               └ create evt.Meta.datasource_path : /tmp/cscli_explain1310535647/cscli_test_tmp.log
|               └ create evt.Meta.datasource_type : file
|               └ create evt.Meta.machine : myhost
├ s01-parse
|       └ 🟢 crowdsecurity/sshd-logs (+6 ~1)
|               └ update evt.Stage : s01-parse -> s02-enrich
|               └ create evt.Parsed.sshd_client_ip : <IP_ADDRESS>
|               └ create evt.Parsed.sshd_invalid_user : ftp
|               └ create evt.Meta.log_type : ssh_failed-auth
|               └ create evt.Meta.service : ssh
|               └ create evt.Meta.source_ip : <IP_ADDRESS>
|               └ create evt.Meta.target_user : ftp
├ s02-enrich
|       ├ 🟢 crowdsecurity/dateparse-enrich (+2 ~2)
|               ├ create evt.Enriched.MarshaledTime : 2024-02-19T10:38:14Z
|               ├ update evt.Time : 2024-09-03 10:00:23.121672153 +0000 UTC -> 2024-02-19 10:38:14 +0000 UTC
|               ├ update evt.MarshaledTime :  -> 2024-02-19T10:38:14Z
|               ├ create evt.Meta.timestamp : 2024-02-19T10:38:14Z
|       ├ 🟢 crowdsecurity/geoip-enrich (+13)
|               ├ create evt.Enriched.SourceRange : <IP_ADDRESS>/24
|               ├ create evt.Enriched.Longitude : 114.165700
|               ├ create evt.Enriched.ASNOrg : Chang Way Technologies Co. Limited
|               ├ create evt.Enriched.ASNumber : 207566
|               ├ create evt.Enriched.IsInEU : false
|               ├ create evt.Enriched.IsoCode : HK
|               ├ create evt.Enriched.Latitude : 22.257800
|               ├ create evt.Enriched.ASNNumber : 207566
|               ├ create evt.Meta.ASNNumber : 207566
|               ├ create evt.Meta.IsInEU : false
|               ├ create evt.Meta.ASNOrg : Chang Way Technologies Co. Limited
|               ├ create evt.Meta.IsoCode : HK
|               ├ create evt.Meta.SourceRange : <IP_ADDRESS>/24
├-------- parser success 🟢
├ Scenarios
├ 🟢 crowdsecurity/ssh-bf
├ 🟢 crowdsecurity/ssh-bf_user-enum
├ 🟢 crowdsecurity/ssh-slow-bf
└ 🟢 crowdsecurity/ssh-slow-bf_user-enum

Thanks for the very fast response.
Then I would suggest updating this line with instructions on how to use the sshd parser, as the current wording is a bit confusing: https://github.com/crowdsecurity/hub/pull/1109/files#diff-05d748cef28bea4cbaf1e0e46322c1ce1417c1225f69f46393aeaa8ae80c4c1fL21.
If you agree, I’d be happy to make the change.

Thanks for the very fast response.
Then I would suggest updating this line with instructions on how to use the sshd parser, as the current wording is a bit confusing: https://github.com/crowdsecurity/hub/pull/1109/files#diff-05d748cef28bea4cbaf1e0e46322c1ce1417c1225f69f46393aeaa8ae80c4c1fL21. If you agree, I’d be happy to make the change.

imo since the example shown is a syslog file the change should be reverted and then the line below should be updated to be something like
if the defined file is not `syslog` format then the `label` should be updated to `sshd`

changed it.

After having a look at other collections, I kind of disagree with you.
We normally make an example with the specific parser e.g. apache2 and write a note that syslog can also be used.
So for consistenty I would prefer changing the example to the sshd parser instead of changing the notes.
What do you think?
The collections I checked:

https://app.crowdsec.net/hub/author/crowdsecurity/collections/apache2
https://app.crowdsec.net/hub/author/crowdsecurity/collections/traefik
https://app.crowdsec.net/hub/author/crowdsecurity/collections/nginx

After having a look at other collections, I kind of disagree with you. We normally make an example with the specific parser e.g. apache2 and write a note that syslog can also be used.
So for consistenty I would prefer changing the example to the sshd parser instead of changing the notes.
What do you think?
The collections I checked:
* https://app.crowdsec.net/hub/author/crowdsecurity/collections/apache2

* https://app.crowdsec.net/hub/author/crowdsecurity/collections/traefik

* https://app.crowdsec.net/hub/author/crowdsecurity/collections/nginx

Well that's because those applications handle there own logging to a different file by default and can opt in to using syslog. However, for ssh 99% of the time the default is to syslog and rarely you log to another file that is not the syslog format.

Ah I see. Thanks for clearing this up for me :)


Questions can be administered to specific user types (CBOs vs. Applicants)

Is your feature request related to a problem? Please describe.
If CBOs are completing applications on behalf of applicants and program admins have follow-up questions, it will be unclear who the program admin should reach out to in order to complete application (esp. since #1215 provides contact information of TI on behalf of client).
Describe the solution you'd like
Ability to ask different set of questions (or additional questions) depending on user type.  In example above, TI can check a box saying they are the primary point of contact and this question will not also be shown to applicant.
Additional context
Workaround, we can ask who is the primary point of contact for this application in the form.
Done when
CiviForm admin can administer questions based on user type.

Assigned for the ux design and flow.


Inappropiate render of some widgets

Description of the Bug
Inappropiate work of some widgets when fullscreen mode is on
Code and Logs
https://github.com/HeaTTheatR/KivyMD/tree/master/demos/kitchen_sink
Screenshots

Versions

OS: Windows 10
Python: 3.6
Kivy: 1.11.1
KivyMD: 0.102.0

Windows 10 64 bit, screen 1920x1080

@Mountaino Apparently, this is only on Windows, because the problem does not reproduce on my computer.

@ArtemSBulgakov , @HeaTTheatR this can be closed right ?

@wasimafser Yes. useranimationcard.py is still in the library, but it will be removed

The useranimationcard.py module has been removed.


Chore: Refactor (small) custom javascript to add unit tests

The current Javascript shim that persists query strings for the person list view should be unit tested.

Leaving this wontfix and closing because I want to do a larger JS restructure.