Please use the new Repository to open new issues

This issue is made to notify People that are still here and create new issues / Pull Requests
Please use the new Repository to open new issues

(Please dont close this)

@Ben305 if you want you can execute npm deprecate typegoose "This package got moved to @typegoose/typegoose" to fully migrate to the new package

You can archive the repo, so people can't create new issues, and so that it's clear there's no ongoing development.

@dandv from what i know, in "personal" repositories, only the owner can archive it

Right, @szokodiakos, can you archive the repo please?


On my machine, fast pose extractor is working very slow

Fast pose extractor is working about several seconds on each image, in the same time legacy slow implementation works less then second on each image.
What is the reason?

Hi! This looks strange, possibly you built it in a Debug mode or linked against libraries in a Debug mode. Also how did you measure the time? Possibly your system started a background task at that time.

No, I didn't built in Debug mode. I mesured time, using datetime.now(), before and after each call of exctract_poses().
Also some time ago, fast pose extractor worked nice. But after smth changed in the system maybe (I don't exactly now what), it began to work slow. I didin't changed code of pose extraction.

Ok, closing.


Incorrect path to Angular library

I am using Angular library and have the following folder structure:
coollibrary
  - components
    - my.component.ts
  - services
    - my.service.ts
public_api.ts

In public_api, I export the component and service and make the library build.
After that I can import the necessary things in my project using
import { MyComponent } from 'coollibrary';

but I can not use the following path:
import { MyComponent  } from 'coollibrary/components'

Can I use correct path?

You can check this guide on how to introduce a second entry point in your library.


Add DPG: High Resolution Population Data for Humanitarian Operations

Works towards unicef#555, may need some cleanup.
( created with https://github.com/ericherman/dpg-csv-to-json )

high resolution population density data initially submitted with several gaps in the DPG standard indicators which need to be addressed before we can proceed with the review:

[ ] Clear Ownership
[ ] Platform Independence
[ ] Adherence to Standards & Best Practices
[ ] Adherence to Privacy and Applicable Laws
[ ] Do No Harm
[ ] Protection from Harassment

I have contacted the person who made the submission and will update once they come through.

High Resolution Population Density Data is pending successful nomination . Areas to be addressed include:

[ ] To adopt a catchier project name that is specific and less generic than the current one.

[ ] Secondly, considering UNICEF is listed as the organization owner for this project, it would represent the interests of the organization better to host this repo under UNICEF GitHub organization versus using an individual GitHub account.

Digital solutions that are no longer active, or do not provide the required documentation needed for review, will be moved into the archive hence moving High Resolution Population Data for Humanitarian Operations to archives as per the archiving policy. Thanks.


Fix redeploy command missing registry authentication

Fixed

Fixes the redeploy command missing registry authentication

This is by design. Point of redeploy over deploy is to do fewer steps that aren't necessary when repeatedly deploying.

@dhh hmm, this is failing for me because it's trying to build and push the image to a private registry. It only works if I use the --skip-push flag. Should the redeploy command default to only pulling then?

If you’ve deployed once on that machine, you should already be logged into the registry. Then you can do redeploy from there. If that’s not working for some reason, you can also just use deploy every time.

Yeah, I think the issue is because I'm using the alias install, so it runs in a container. The docker client there isn't authenticated. But that's okay, I'll use the deploy cmd or redeploy with the --skip-push flag if I need a config change.


Passing state from root to subcommands

Working on a tool with a handful of subcommands, I find myself wanting to handle common work in the root command, and then pass some state to the subcommand. I’m not sure what might be possible, but something like this is what I’d like to be able to do:
% raise3d --addr <IP_ADDRESS> monitor --notify

@main
struct RootCommand : AsyncParsableCommand<Raise3DAPI> {
    static
    var
    configuration = CommandConfiguration(commandName: "raise3d",
                        abstract: "A utility to interact witih Raise3D printers.",
                        subcommands: [Monitor.self])

    @Option(help: "The printer’s local address.")
    var addr: String

    @Option(help: "The printer’s password.")
    var password: String?

    mutating
    func run() async throws -> Raise3DAPI {
        let password = self.password ?? { /* prompt user for password */ }()
        let api = Raise3DAPI(host: self.options.addr, password: self.options.password)
        try await api.login()
        return api
    }
}

struct Monitor : AsyncParsableCommand<Raise3DAPI> {
    static
    var configuration = CommandConfiguration(commandName: "monitor",
                                                abstract: "Monitor the printer and optionally notify of errors.")

    @Option(help: "Notify if error.")
    var notify: Bool = false

    mutating
    func run(state inAPI: Raise3DAPI) async throws
    {
        while (true) {
            let jobInfo = try await inAPI.getJobInfo()

            if self.notify && jobInfo.status == .error {
                //  Send notification
            }

            Task.sleep(for: .seconds(1))
        }
    }
}

class Raise3DAPI
{
    // …
}

This lets subcommands be a little cleaner, because they don't have to redundantly declare the global options, and all the common work is done in the parent command. The desired state is generic.

If you nest Monitor inside RootCommand, then you can add a property annotated with @OptionGroup in the former to access the options of the latter:
@main
struct RootCommand : AsyncParsableCommand<Raise3DAPI> {
...
  struct Monitor : AsyncParsableCommand<Raise3DAPI> {
   ...
    @OptionGroup
    var root: RootCommand

    mutating func run() async throws
      // Access `root.addr` and `root.password`...
  }
}

But you can't just make run in RootCommand return a value that you inject into the subcommand: Only one run command is invoked and that's the one of the subcommand.
Maybe you can make Raise3DAPI conform to ParsableArguments such that you can inject that value directly as an @OptionGroup (docs).

I've been able to do this via the validate method on the Root command, as SAP runs that method that for every command in the tree, even if you don't have a run method implemented


BIG update layout

theme.css
Changed the section css, removed the border-bottom and added in a before tag for styling

2.index.html
Fix the problem with the panel, remove the subtitle "Course"
want to keep the page clean, so reduce the number of titles in it
3.dash.css
remove the css on the bottom, it is repeated in theme.css bottom

teamsearch.html
changed layout, mainly fixing the spacing(margin)
put the recomand and invite list on the right

5.teampanel.html/.css
I changed the layout for STUDENT, fixing the spacing, and display info in organized way
havn't done much witht the TEACHER part
6.teaminfo.html
Add in layout to display the value,
HAVN'T CHANGE VAR TO  ANGULAR, someone else please do it, i am not familiar with the js wrote. Thanks
7.userinfo.html
same with teaminfo.html. BUT, i added in a slot to display "DESCRIPTION". it is not implement yet, not in js. Please add one extra attribute for student profile.
8.myProfile.html
added textarea input for "DESCRIPTION"
used new section css for the titles

INPUTSTYLE.js and the rest
I integrated the pull request from billy, there shound't be anyproblem. But for safty, Billy would u mind checking it and tell me if there is any problem.

too many conflict, I merged manually


backwards update

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


fix(pam_passwdqc): remove accidental paste from pam_passwdqc.erb

Fixes #298
Signed-off-by: Nils Ballmann<EMAIL_ADDRESS>

Thanks!!

@mcgege thanks for merging this! Would be awesome to get a new release containing this.

Hi Roger,
just published a new release 😊
From: Roger Meier @.>
Sent: Tuesday, October 11, 2022 6:52 PM
To: dev-sec/puppet-os-hardening @.>
Cc: Michael Geiger @.>; Mention @.>
Subject: Re: [dev-sec/puppet-os-hardening] fix(pam_passwdqc): remove accidental paste from pam_passwdqc.erb (PR #299)
@mcgege https://github.com/mcgege  thanks for merging this! Would be awesome to get a new release containing this.
—
Reply to this email directly, view it on GitHub https://github.com/dev-sec/puppet-os-hardening/pull/299#issuecomment-1274994245 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ABPTZZVLIT6GG77OKIIKFWLWCWLL3ANCNFSM6AAAAAAQ4XQ6EM .
You are receiving this because you were mentioned.  https://github.com/notifications/beacon/ABPTZZQUBOWQF7KCDLJWVU3WCWLL3A5CNFSM6AAAAAAQ4XQ6EOWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSL73PEK.gif Message ID: @.*** @.***> >


Created RandomSeed type

My intention is to use it in EffectData, just like I used DegreesAngle in #574

Could you explain your motivations for the change please?
I don't have any real objections, but also don't see it being as useful as for angles where the different units make an explicit type more beneficial
Also, is there a reason to limit it to positive numbers and disallow INT_MAX?

The motivation would be creating the seed control based on type and not the caption. The numbers are limited to those values because Random doesn't produce ints outside of that range

OK thanks.
Leaving the checks in is probably fine then, but could you add some documentation explaining the purpose of the class since it's not as general purpose?
This could also perhaps go in the Effects folder rather than Classes

Sure, I've moved the file and added comments

Looks good, thanks! Agreed, the wiki docs only need to be updated after it's used for SimpleEffectDialog


Extract transport from Myceli

This work is mostly preparation for future work implementing a QUIC transport, but will be useful for bringing in any other transport.

Extracts out a Transport trait
Creates UdpTransport implementation, which is identical to the current UDP protocol

@plauche you have conflicts to resolve.


Update jenkins to latest LTS

Related:

https://github.com/adoptium/infrastructure/issues/2108
https://github.com/adoptium/infrastructure/issues/2763
https://github.com/adoptium/infrastructure/issues/2950

The latest jenkins LTS requires that all agents are running JDK11 or later. This has now been achieved so we are looking to schedule an upgrade next week to the current LTS (2.365.3 - we are currently on 2.346.3) - precise time/date TBC but likely early morning UTC.
As part of this work we should also ensure that the agent version used on machines that aren't launched over ssh are updated (Some of them are already out of date) Perhaps this could be checked and if necessary auto-updated on each launch in the future?)

Scheduled to start at 0930 GMT/UTC on Thursday

NOTE: This has been deferred to next week

Advisory from today: https://www.jenkins.io/security/advisory/2023-03-08/

We had some issues with the upgrade and failures with the GitHub plugin, possibly as a result of the plugins not having been upgraded prior to attempting the upgrade. We have managed to back everything out, and upgraded the plugins, but will reschedule the upgrade again for a future date.

@karianna This is our server (still on jenkins Jenkins 2.346.3) GHA plugin 0.39

On another server running Jenkins 2.361.4 which has 0.37 it says 0.39 requires  Jenkins 2.375.1 - quite a surprise that it's working for us :-)

This is why we can't have nice things

Having done some experiments today with a near-replica on another instances, I'm reasonably confident that this upgrade will now work. Suggest we target the upgrade for the earliest opportunity on the week after the release (starts 27th March)

Plugin advisory due tomorrow: https://groups.google.com/g/jenkinsci-advisories/c/oADJ7nuLF48/m/eHcQwSZ7FAAJ

Upgrade to 2.387.1 complete. We have left the folloowing two plugins which seemed particularly risky to try and do within our allocated on hour slot but a large number of other plugins have been updated so hopefully they are all working as exepcted:

SAML 2.333.vc81e525974a_c -> 4.385.v4dea_91565e9d Warning: The new version of this plugin is marked as incompatible with the installed version. This is usually the case because its behavior changed, or because it uses a different settings format than the installed version. Jobs using this plugin may need to be reconfigured, and/or you may not be able to cleanly revert to the prior version without manually restoring old settings. Consult the plugin release notes for details.
SSH Build Agents 2.333.vc81e525974a_c -> 2.877.v365f5eb_a_b_eec Warning: The new version of this plugin is marked as incompatible with the installed version. This is usually the case because its behavior changed, or because it uses a different settings format than the installed version. Jobs using this plugin may need to be reconfigured, and/or you may not be able to cleanly revert to the prior version without manually restoring old settings. Consult the plugin release notes for details.

Two new plugins were installed:

https://plugins.jenkins.io/job-restrictions/ (Ref https://github.com/adoptium/infrastructure/issues/2108#issuecomment-1474073224)
https://plugins.jenkins.io/build-name-setter/ (Ref: https://github.com/adoptium/infrastructure/issues/434)


Still Crashing <IP_ADDRESS>

I know i reported this issue already, but im on this mekanism build and its still happening, and more frequently.
My server keeps crashing from it, is this currently being fixed at least?
I really need it fixed /= as unexpected crashes are really bad for a 24/7 server and its world(corruption)
http://pastebin.com/eaP0bZ9P

Added a proper null check, should be fixed.


Google groups link not working

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to the login page http://<IP_ADDRESS>:8000/login/
Click on Google Group
No content is displayed

Expected behavior
valid group should be displayed. If this is not longer needed then the link should be removed
Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

OS: macOS 10.15
Browser chrome
Version 83.0.4103.116

Additional context
Add any other context about the problem here.

working on

working on testing in issues


Updating internal links in README

Links were directing to avalanche folder, when that folder name has been changed to avalanche_rl in this fork. I've updated the links in the README.

Thank you!


Remove custom kafka test container for FIPS with new version of image

Description
Workaround introduced in  https://github.com/apache/camel-quarkus/pull/6091 won't be necessary with the new version of strimz<i kafka image. The fix was merged (see https://github.com/strimzi/test-container-images/pull/26)
Once the fix is part of the image, the custom image can be removed (https://github.com/apache/camel-quarkus/blob/main/integration-tests-support/kafka/src/main/java/org/apache/camel/quarkus/test/support/kafka/KafkaTestResource.java#L77-L84) and the code can be made easier.

Duplicate of https://github.com/apache/camel-quarkus/issues/6097.

I'll close as it's a duplicate.


ATONG1222

Before you open an issue
If the issue is:

A simple typo or similar correction, you can submit a PR. See the contributor guide for instructions.
A general support question, consider asking on a support forum site.
A site design concern, create an issue at MicrosoftDocs/feedback.
A problem completing a tutorial, compare your code with the completed sample.
A duplicate of an open or closed issue, leave a comment on that issue.

Issue description
<include description here>
Target framework
Check the .NET target framework(s) being used, and include the version number(s).

[ ] .NET Core
[ ] .NET Framework
[ ] .NET Standard

If using the .NET Core SDK, include dotnet --info output. If using .NET Framework without the .NET Core SDK, include info from Visual Studio's Help > About Microsoft Visual Studio dialog.

dotnet --info output or About VS info
<replace>

Given this issue is just using the template text, I'm just closing it. Let us know if you meant to report a docs issue instead @atongkuze.


Added IsDefaultShadowEnabled flag for version compatibility; Closes #23;

Added the IsDefaultShadowEnabled setter to (Menu)Flyouts of ToggleSplitButton, SplitButton, and DropDownButton.
Description

Added the IsDefaultShadowEnabled flag using the API present checks and style setter.
Motivation and Context

Fixes #23;
How Has This Been Tested?

Tested manually by starting application.
Screenshots (if appropriate):
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Hmm interesting. Worked on my machine, but now I am getting the same error after pulling again 🤔 .
I will look into this.

@chingucoding, we've had a bit of an internal miscommunication and this change is not needed. While the code changes in your PR won't do any harm, they also won't provide any benefit. Because this change primarily serves to increase the code complexity without any user benefit, I recommend abandoning this PR.

Okay, I will close this PR then.


reference change

yngdieng web deployment pipeline is currently broken. So your change probably won't take effect soon. But it will be live once the pipeline is fixed. We have no ETA for fixing the pipeline.


GH-1186: Add idleBetweenPolls container option

Fixes https://github.com/spring-projects/spring-kafka/issues/1186
A new ContainerProperties.idleBetweenPolls option allows to configure
a sleep interval between poll calls in the main container loop.
The actual sleep interval is selected as a minimum from provided
option and difference between max.poll.interval.ms and records
processing time

@artembilan  @garyrussell  would you mind check this issue https://github.com/spring-projects/spring-kafka/issues/1601


python3Packages.responses: 0.13.4 -> 0.14.0

Motivation for this change
Update to latest upstream release 0.14.0
Change log: https://github.com/getsentry/responses/releases/tag/0.14.0
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

This is a semi-automatic executed nixpkgs-review with nixpkgs-review-checks extension. It is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
Result of nixpkgs-review pr 137356 run on x86_64-linux 1

26 packages marked as broken and skipped:

python38Packages.arviz
python38Packages.dask-xgboost
python38Packages.dm-sonnet
python38Packages.graph_nets
python38Packages.mlxtend
python38Packages.optuna
python38Packages.pygbm
python38Packages.pymc3
python38Packages.pywick
python38Packages.rl-coach
python38Packages.shap
python38Packages.sklearn-deap
python38Packages.skorch
python39Packages.arviz
python39Packages.dask-xgboost
python39Packages.dm-sonnet
python39Packages.graph_nets
python39Packages.mlxtend
python39Packages.optuna
python39Packages.pygbm
python39Packages.pymc3
python39Packages.pywick
python39Packages.rl-coach
python39Packages.shap
python39Packages.sklearn-deap
python39Packages.skorch

26 packages failed to build and already failed to build on hydra master:

paperless-ng: log was empty
python38Packages.baselines: log was empty
python38Packages.edward: log was empty
python38Packages.graspologic: log was empty
python38Packages.mask-rcnn: log was empty
python38Packages.pytorch-metric-learning: log was empty
python38Packages.scikit-optimize: log was empty
python38Packages.scikit-tda: log was empty
python38Packages.spacy: log was empty
python38Packages.spacy-transformers: log was empty
python38Packages.textacy: log was empty
python38Packages.tflearn: log was empty
python38Packages.umap-learn: log was empty
python39Packages.baselines: log was empty
python39Packages.edward: log was empty
python39Packages.graspologic: log was empty
python39Packages.mask-rcnn: log was empty
python39Packages.pytorch-metric-learning: log was empty
python39Packages.scikit-optimize: log was empty
python39Packages.scikit-tda: log was empty
python39Packages.spacy: log was empty
python39Packages.spacy-transformers: log was empty
python39Packages.textacy: log was empty
python39Packages.tflearn: log was empty
python39Packages.umap-learn: log was empty
tts: log was empty

1 package failed to build and are new build failure:

gpt2tc: log was empty

413 packages built:

apio
beancount (python39Packages.beancount)
beets
beetsExternalPlugins.alternatives
beetsExternalPlugins.copyartifacts
beetsExternalPlugins.extrafiles
brutalmaze
buildbot (python39Packages.buildbot)
buildbot-full (python39Packages.buildbot-full)
buildbot-ui (python39Packages.buildbot-ui)
corsair (python39Packages.corsair-scan)
deja-dup
detect-secrets (python39Packages.detect-secrets)
duplicity
duply
dvc-with-remotes
dyndnsc
eolie
errbot
fava
fdroidserver
gcalcli
git-annex-remote-googledrive
home-assistant
kitty
kmymoney
ledger2beancount
lexicon
lieer
matrix-dl
matrix-synapse
matrix-synapse-plugins.matrix-synapse-mjolnir-antispam
matrixcli
mopidy-spotify-tunigo
nixops
ntfy
opsdroid
privacyidea
python38Packages.PyRMVtransport
python38Packages.aiojobs
python38Packages.aiorun
python38Packages.amcrest
python38Packages.aria2p
python38Packages.asyncstdlib
python38Packages.asyncwhois
python38Packages.bash_kernel
python38Packages.batchgenerators
python38Packages.bayesian-optimization
python38Packages.beancount
python38Packages.beancount_docverif
python38Packages.buildbot
python38Packages.buildbot-full
python38Packages.buildbot-ui
python38Packages.celery
python38Packages.censys
python38Packages.certauth
python38Packages.chirpstack-api
python38Packages.cirq
python38Packages.cirq-google
python38Packages.cnvkit
python38Packages.confuse
python38Packages.corsair-scan
python38Packages.dask-glm
python38Packages.dask-ml
python38Packages.denonavr
python38Packages.dependency-injector
python38Packages.detect-secrets
python38Packages.digital-ocean
python38Packages.django-raster
python38Packages.djmail
python38Packages.drivelib
python38Packages.fastapi
python38Packages.fixerio
python38Packages.flit
python38Packages.flitBuildHook
python38Packages.flower
python38Packages.furo
python38Packages.gcsfs
python38Packages.gensim
python38Packages.globus-sdk
python38Packages.goobook
python38Packages.google-api-core
python38Packages.google-api-python-client
python38Packages.google-auth
python38Packages.google-auth-httplib2
python38Packages.google-auth-oauthlib
python38Packages.google-cloud-access-context-manager
python38Packages.google-cloud-appengine-logging
python38Packages.google-cloud-asset
python38Packages.google-cloud-automl
python38Packages.google-cloud-bigquery
python38Packages.google-cloud-bigquery-datatransfer
python38Packages.google-cloud-bigquery-logging
python38Packages.google-cloud-bigtable
python38Packages.google-cloud-container
python38Packages.google-cloud-core
python38Packages.google-cloud-datacatalog
python38Packages.google-cloud-dataproc
python38Packages.google-cloud-datastore
python38Packages.google-cloud-dlp
python38Packages.google-cloud-dns
python38Packages.google-cloud-error-reporting
python38Packages.google-cloud-firestore
python38Packages.google-cloud-iam
python38Packages.google-cloud-iam-logging
python38Packages.google-cloud-iot
python38Packages.google-cloud-kms
python38Packages.google-cloud-language
python38Packages.google-cloud-logging
python38Packages.google-cloud-monitoring
python38Packages.google-cloud-org-policy
python38Packages.google-cloud-os-config
python38Packages.google-cloud-pubsub
python38Packages.google-cloud-redis
python38Packages.google-cloud-resource-manager
python38Packages.google-cloud-runtimeconfig
python38Packages.google-cloud-secret-manager
python38Packages.google-cloud-securitycenter
python38Packages.google-cloud-spanner
python38Packages.google-cloud-speech
python38Packages.google-cloud-storage
python38Packages.google-cloud-tasks
python38Packages.google-cloud-testutils
python38Packages.google-cloud-texttospeech
python38Packages.google-cloud-trace
python38Packages.google-cloud-translate
python38Packages.google-cloud-videointelligence
python38Packages.google-cloud-vision
python38Packages.google-cloud-websecurityscanner
python38Packages.google-resumable-media
python38Packages.googlemaps
python38Packages.grip
python38Packages.gspread
python38Packages.habitipy
python38Packages.hdbscan
python38Packages.herepy
python38Packages.hmmlearn
python38Packages.hyppo
python38Packages.ibm-cloud-sdk-core
python38Packages.ibm-watson
python38Packages.ignite
python38Packages.imbalanced-learn
python38Packages.ipfshttpclient
python38Packages.json-logging
python38Packages.jupyterlab
python38Packages.jupyterlab_server
python38Packages.jupytext
python38Packages.kmapper
python38Packages.kubernetes
python38Packages.librosa
python38Packages.lightgbm
python38Packages.loca
python38Packages.mapbox
python38Packages.matrix-api-async
python38Packages.matrix-client
python38Packages.mlrose
python38Packages.moto
python38Packages.mwclient
python38Packages.nbconflux
python38Packages.nilearn
python38Packages.oauthenticator
python38Packages.openapi-core
python38Packages.openrouteservice
python38Packages.openshift
python38Packages.osmnx
python38Packages.pathy
python38Packages.persim
python38Packages.pot
python38Packages.ppscore
python38Packages.pydrive
python38Packages.pyfxa
python38Packages.pynndescent
python38Packages.pyro-ppl
python38Packages.pysaml2
python38Packages.pytenable
python38Packages.pytest-cid
python38Packages.python-forecastio
python38Packages.python-twitch-client
python38Packages.python-twitter
python38Packages.pytorch (python38Packages.pytorchWithoutCuda)
python38Packages.pytorch-lightning
python38Packages.pyvera
python38Packages.qiskit
python38Packages.qiskit-aqua
python38Packages.qiskit-ignis
python38Packages.responses
python38Packages.ripser
python38Packages.rising
python38Packages.sapi-python-client
python38Packages.scikit-bio
python38Packages.scikit-learn
python38Packages.scikit-survival
python38Packages.seqeval
python38Packages.simple-salesforce
python38Packages.slack-sdk
python38Packages.slackclient
python38Packages.slicer
python38Packages.slowapi
python38Packages.smart-open
python38Packages.solo-python
python38Packages.sphinx-inline-tabs
python38Packages.surt
python38Packages.tensorboardx
python38Packages.test-tube
python38Packages.threadpoolctl
python38Packages.tldextract
python38Packages.torchgpipe
python38Packages.torchvision
python38Packages.tunigo
python38Packages.twitch-python
python38Packages.upcloud-api
python38Packages.vilfo-api-client
python38Packages.vowpalwabbit
python38Packages.weboob
python38Packages.woob
python38Packages.word2vec
python38Packages.xgboost
python38Packages.zulip
python39Packages.PyRMVtransport
python39Packages.aiojobs
python39Packages.aiorun
python39Packages.amcrest
python39Packages.aria2p
python39Packages.asyncstdlib
python39Packages.asyncwhois
python39Packages.bash_kernel
python39Packages.batchgenerators
python39Packages.bayesian-optimization
python39Packages.beancount_docverif
python39Packages.celery
python39Packages.censys
python39Packages.certauth
python39Packages.chirpstack-api
python39Packages.cirq
python39Packages.cirq-google
python39Packages.cnvkit
python39Packages.confuse
python39Packages.dask-glm
python39Packages.dask-ml
python39Packages.denonavr
python39Packages.dependency-injector
python39Packages.digital-ocean
python39Packages.django-raster
python39Packages.djmail
python39Packages.drivelib
python39Packages.fastapi
python39Packages.fixerio
python39Packages.flit
python39Packages.flitBuildHook
python39Packages.flower
python39Packages.furo
python39Packages.gcsfs
python39Packages.gensim
python39Packages.globus-sdk
python39Packages.goobook
python39Packages.google-api-core
python39Packages.google-api-python-client
python39Packages.google-auth
python39Packages.google-auth-httplib2
python39Packages.google-auth-oauthlib
python39Packages.google-cloud-access-context-manager
python39Packages.google-cloud-appengine-logging
python39Packages.google-cloud-asset
python39Packages.google-cloud-automl
python39Packages.google-cloud-bigquery
python39Packages.google-cloud-bigquery-datatransfer
python39Packages.google-cloud-bigquery-logging
python39Packages.google-cloud-bigtable
python39Packages.google-cloud-container
python39Packages.google-cloud-core
python39Packages.google-cloud-datacatalog
python39Packages.google-cloud-dataproc
python39Packages.google-cloud-datastore
python39Packages.google-cloud-dlp
python39Packages.google-cloud-dns
python39Packages.google-cloud-error-reporting
python39Packages.google-cloud-firestore
python39Packages.google-cloud-iam
python39Packages.google-cloud-iam-logging
python39Packages.google-cloud-iot
python39Packages.google-cloud-kms
python39Packages.google-cloud-language
python39Packages.google-cloud-logging
python39Packages.google-cloud-monitoring
python39Packages.google-cloud-org-policy
python39Packages.google-cloud-os-config
python39Packages.google-cloud-pubsub
python39Packages.google-cloud-redis
python39Packages.google-cloud-resource-manager
python39Packages.google-cloud-runtimeconfig
python39Packages.google-cloud-secret-manager
python39Packages.google-cloud-securitycenter
python39Packages.google-cloud-spanner
python39Packages.google-cloud-speech
python39Packages.google-cloud-storage
python39Packages.google-cloud-tasks
python39Packages.google-cloud-testutils
python39Packages.google-cloud-texttospeech
python39Packages.google-cloud-trace
python39Packages.google-cloud-translate
python39Packages.google-cloud-videointelligence
python39Packages.google-cloud-vision
python39Packages.google-cloud-websecurityscanner
python39Packages.google-resumable-media
python39Packages.googlemaps
python39Packages.grip
python39Packages.gspread
python39Packages.habitipy
python39Packages.hdbscan
python39Packages.herepy
python39Packages.hmmlearn
python39Packages.hyppo
python39Packages.ibm-cloud-sdk-core
python39Packages.ibm-watson
python39Packages.ignite
python39Packages.imbalanced-learn
python39Packages.ipfshttpclient
python39Packages.json-logging
python39Packages.jupyterlab
python39Packages.jupyterlab_server
python39Packages.jupytext
python39Packages.kmapper
python39Packages.kubernetes
python39Packages.librosa
python39Packages.lightgbm
python39Packages.loca
python39Packages.mapbox
python39Packages.matrix-api-async
python39Packages.matrix-client
python39Packages.mlrose
python39Packages.moto
python39Packages.mwclient
python39Packages.nbconflux
python39Packages.nilearn
python39Packages.oauthenticator
python39Packages.openapi-core
python39Packages.openrouteservice
python39Packages.openshift
python39Packages.osmnx
python39Packages.pathy
python39Packages.persim
python39Packages.pot
python39Packages.ppscore
python39Packages.pydrive
python39Packages.pyfxa
python39Packages.pynndescent
python39Packages.pyro-ppl
python39Packages.pysaml2
python39Packages.pytenable
python39Packages.pytest-cid
python39Packages.python-forecastio
python39Packages.python-twitch-client
python39Packages.python-twitter
python39Packages.pytorch (python39Packages.pytorchWithoutCuda)
python39Packages.pytorch-lightning
python39Packages.pyvera
python39Packages.qiskit
python39Packages.qiskit-aqua
python39Packages.qiskit-ignis
python39Packages.responses
python39Packages.ripser
python39Packages.rising
python39Packages.sapi-python-client
python39Packages.scikit-bio
python39Packages.scikit-learn
python39Packages.scikit-survival
python39Packages.seqeval
python39Packages.simple-salesforce
python39Packages.slack-sdk
python39Packages.slackclient
python39Packages.slicer
python39Packages.slowapi
python39Packages.smart-open
python39Packages.solo-python
python39Packages.sphinx-inline-tabs
python39Packages.surt
python39Packages.tensorboardx
python39Packages.test-tube
python39Packages.threadpoolctl
python39Packages.tldextract
python39Packages.torchgpipe
python39Packages.torchvision
python39Packages.tunigo
python39Packages.twitch-python
python39Packages.upcloud-api
python39Packages.vilfo-api-client
python39Packages.vowpalwabbit
python39Packages.weboob
python39Packages.woob
python39Packages.word2vec
python39Packages.xgboost
python39Packages.zulip
qutebrowser
s3ql
sewer
snakemake
sourcehut.buildsrht
sourcehut.coresrht
sourcehut.dispatchsrht
sourcehut.gitsrht
sourcehut.hgsrht
sourcehut.hubsrht
sourcehut.listssrht
sourcehut.mansrht
sourcehut.metasrht
sourcehut.pastesrht
sourcehut.todosrht
tebreak
theharvester
twitch-chat-downloader
urlwatch
wlc
zulip-term


breezy: 3.2.0 -> 3.2.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/breezy/versions.
meta.description for breezy is: "Friendly distributed version control system"
meta.homepage for breezy is: "https://www.breezy-vcs.org/"
meta.changelog for breezy is: ""
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

/nix/store/kshhyr1ma1ywi2j5g3av295p2a0vn8dk-python3.8-breezy-3.2.1/bin/brz passed the binary check.

/nix/store/kshhyr1ma1ywi2j5g3av295p2a0vn8dk-python3.8-breezy-3.2.1/bin/bzr-receive-pack passed the binary check.

/nix/store/kshhyr1ma1ywi2j5g3av295p2a0vn8dk-python3.8-breezy-3.2.1/bin/bzr-upload-pack passed the binary check.

/nix/store/kshhyr1ma1ywi2j5g3av295p2a0vn8dk-python3.8-breezy-3.2.1/bin/git-remote-bzr passed the binary check.

/nix/store/kshhyr1ma1ywi2j5g3av295p2a0vn8dk-python3.8-breezy-3.2.1/bin/bzr passed the binary check.

/nix/store/kshhyr1ma1ywi2j5g3av295p2a0vn8dk-python3.8-breezy-3.2.1/bin/.brz-wrapped passed the binary check.

/nix/store/kshhyr1ma1ywi2j5g3av295p2a0vn8dk-python3.8-breezy-3.2.1/bin/.bzr-receive-pack-wrapped passed the binary check.

/nix/store/kshhyr1ma1ywi2j5g3av295p2a0vn8dk-python3.8-breezy-3.2.1/bin/.bzr-upload-pack-wrapped passed the binary check.

/nix/store/kshhyr1ma1ywi2j5g3av295p2a0vn8dk-python3.8-breezy-3.2.1/bin/.git-remote-bzr-wrapped passed the binary check.

5 of 9 passed binary check by having a zero exit code.

9 of 9 passed binary check by having the new version present in output.

found 3.2.1 with grep in /nix/store/kshhyr1ma1ywi2j5g3av295p2a0vn8dk-python3.8-breezy-3.2.1

found 3.2.1 in filename of file in /nix/store/kshhyr1ma1ywi2j5g3av295p2a0vn8dk-python3.8-breezy-3.2.1

directory tree listing: https://gist.github.com/14ca0d442640cc7c49a903f2e8ca4a64

du listing: https://gist.github.com/e7430a9759017191447ee530c0a2e3e3

Rebuild report (if merged into master) (click to expand)

58 total rebuild path(s)

15 package rebuild(s)

15 x86_64-linux rebuild(s)
15 i686-linux rebuild(s)
13 x86_64-darwin rebuild(s)
15 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
breezy
cabal2nix
dep2nix
devpi-client
flatpak-builder
haskellPackages.cabal2nix-unstable
hydra-unstable
nix-prefetch-bzr
nix-prefetch-scripts
nix-update-source
python38Packages.breezy
python38Packages.check-manifest
python39Packages.breezy
python39Packages.check-manifest
vcstool

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/kshhyr1ma1ywi2j5g3av295p2a0vn8dk-python3.8-breezy-3.2.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A breezy https://github.com/r-ryantm/nixpkgs/archive/dbc34159b2b282d3191c4d206721b45ae44c34f4.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/kshhyr1ma1ywi2j5g3av295p2a0vn8dk-python3.8-breezy-3.2.1
ls -la /nix/store/kshhyr1ma1ywi2j5g3av295p2a0vn8dk-python3.8-breezy-3.2.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review took longer than 45m and timed out

Maintainer pings
cc @marsam for testing.

Result of nixpkgs-review pr 129767 at dbc34159 run on aarch64-linux 1

1 package failed to build:

devpi-client

13 packages built successfully:

breezy (python38Packages.breezy)
cabal2nix
dep2nix
flatpak-builder
haskellPackages.cabal2nix-unstable
hydra-unstable
nix-prefetch-bzr
nix-prefetch-scripts
nix-update-source
python38Packages.check-manifest
python39Packages.breezy
python39Packages.check-manifest
vcstool

1 suggestion:

warning: unclear-gpl
gpl2 is a deprecated license, please check if project uses gpl2Plus or gpl2Only and change meta.license accordingly.
Near pkgs/development/python-modules/breezy/default.nix:39:5:
   |
39 |     license = licenses.gpl2;
   |     ^

Note that build failures may predate this PR, and could be nondeterministic or hardware dependent.
Please exercise your independent judgement. Does something look off? Please file an issue or reach out on IRC.


upload artifacts as bundle

If you try to load 2 artifacts with the same groupId and artifactId you will get bad request:
<html>
  <body>
     <error>Repository with ID= does not allow updating artifacts.</error>
  </body>
</html>

The lib try to upload them one by one so the second one will try to update the first.
this should be uploaded as one.
as describe in this: How-can-I-programatically-upload-an-artifact-into-Nexus

This is not a bug, it is a setting of nexus. Triple (groupId, artifactId, version) have to be unique for each artifact. Try a different version.


MM-9734 Fix permalink view loading from search results

Fixes posts not loading around selected posts due to wrong assumption that ChannelStore.getCurrent() can be used to get channel id for post, before emitPostFocusEvent has finished loading.
It works fine when you boot to a permalink, but doesn't work correctly if you switch channel view to permalink view.
This caused surrounding posts to be requested but with wrong channel id, and empty results were returned.
Ticket Link
https://mattermost.atlassian.net/browse/MM-9734

@grundleborg

@koxen thanks very much for the fix! Please could you rebase it onto the release-4.8 branch so we can merge it into that rather than master?

This branch has no conflicts with the base branch
better now?

give me 5 minutes to fix this

Yeah, that looks great. Jenkins is getting confused though, so I'll try and persuade it to actually build it properly.

Hey @koxen there's something a bit wrong with this PR - it looks like github isn't serving up the actual commit with the code in properly when cloning this repo. I think Github just screwed up for some reason. Would you be able to rewrite the commits somehow so they have different commit hashes and then open a fresh PR? Hopefully that will unbreak Github and then we can get this tested.

Thanks very much for the fix @koxen


Fix NumPut missing parameter and test result

Fix #123

Would you mind also adding some more basic tests? Both the .ah1 and .ah2 files. Like for a simple NumPut single var conversion, and then also for the examples you shown in the Issue #123 ?

Sure, done.

tests passed so i'm assuming its all good.
thank you for your bug report and contribution!


Latest Mongoose is not compatible with Azure CosmosDB

Latest Mongoose version is not compatible with Azure's CosmosDB. Just installing Mongoose as per documentation (npm i mongoose --save) won't do the trick and will furthermore break your application with an error, that looks like that:
Server at ***.documents.azure.com:10255 reports maximum wire version 2,
but this version of the Node.js Driver requires at least 6 (MongoDB 3.6)

This was already discussed in the issue here https://github.com/Automattic/mongoose/issues/11072. I managed to workaround it for now by downgrading to "mongoose": "^5.13.15" but I hope to be able to perceive that as an extremely temporarily solution.
I suppose that the docs should mention that issue somewhere.

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

ID: 846b40c7-def7-ba1d-ed11-f9946e9828e4
Version Independent ID: db7c0853-1e3b-6460-ad6e-65381cd52263
Content: Connect the Angular app to Azure Cosmos DB's API for MongoDB using Mongoose
Content Source: articles/cosmos-db/mongodb/tutorial-develop-nodejs-part-5.md
Service: cosmos-db
Sub-service: cosmosdb-mongo
GitHub Login: @johnpapa
Microsoft Alias: jopapa

#assign:gahl-levy

#please-close


[MCS-DE-GO] Unknown Intent in Child Dialogs override by Parent

When we are in a child dialog and configure an "Unknown Intent" within the child, whenever the "Unknown Intent" is hit, it calls the Unknown Intent of the parent, if it exists.

Hi @goergenj By default, dialogs are set to auto end ("autoEndDialog": false,). So, if you are getting into your child dialog, depending on how you have that configured, it might be exiting back to the parent. If you will be handling unknown intents at both places, you should set your child dialog to not automatically end. If you can share more details or an example, that might help confirm the behavior.
Feel free to see my example here:
https://github.com/dmvtech/UnknownInParentAndChild
Use tc to trigger the child dialog and hi to trigger a message and then end the child dialog.

Hi @goergenj Any luck here? Did my sample help understand the behavior? Or did I misunderstand your scenario?

Hi @goergenj I am closing this as I believe this has a correct approach/answer to your issue. If you do not believe this is the case, please comment and we can reopen.


Class creation is slow

My environment is rustc 1.40, python 3.8, Windows 10.
💥 Reproducing
Make a pyclass and benchmark it!
I realize this could be a quirk of my current setup, but I was doing some benchmarking, and realized that it can take up to 440ns to create a Python class object. This is fine in isolation, but when performance matters, and you are making a lot of these objects (or want to make them as fast as possible) it matters. I created a simple Cython test file to compare, and it was more than 2x faster in creating the class (~200ns).
Here is the sample Cython code:
# cython: language_level=3
cdef class Example:
    def __cinit__(self):
        self.a = 4
        self.b = "Test"
    cdef public long a
    cdef public str b

You can compile an extension from it with cythonize -b test.pyx.
The Rust code is the obvious:
use pyo3::prelude::*;

#[pyclass]
pub struct Example {
    #[pyo3(get, set)]
    pub a: i64,
    #[pyo3(get, set)]
    pub b: String,
}

#[pymethods]
impl Example {
    #[new]
    fn new(obj: &PyRawObject) {
        obj.init({
            Example {
                a: 4,
                b: String::from("Hello"),
            }
        });
    }
}

#[pymodule]
fn example(_py: Python, m: &PyModule) -> PyResult<()> {
    m.add_class::<Example>()?;

    Ok(())
}

I realize this is probably not the biggest priority, but it seems odd that class creation would be so much slower.

Could you post your rust build commands and commands for how you benchmarked this?
Thanks

Sure! I just used cargo build --release (I'd have used target-cpu=native but I'm getting a heap corruption ICE if I do that). Then I write a simple benchmark using pytest-benchmark like the following:
import example
def test_class_creation_rust(benchmark):
    benchmark(example.Example)

This calls example.Example() which is the best benchmark I could think of atm.

Thank you for investingating that, but...
PyO3 has some fundamental overhead in its core, so I'm not sure we can fix it :thinking:

Ah I see, that's too bad :/
I was under the assumption pyo3 was zero cost. Thank you for the information!

Why does pyo3 track allocations and use PyRef rather than just increment and decrement the PyObject's reference count?

@ijl
I think I had some discussions about this... but now only found this comment
https://github.com/PyO3/pyo3/issues/271#issuecomment-438225851
Now I'm too drunk to do more detailed explanation..., but I'll do it soon and I want to rethink about this problem.
If we can remove ReleasePool, it's really great.

More about object design: https://github.com/PyO3/pyo3/issues/356#issuecomment-467659694

I was able to reproduce this in ipython. In the following, examplec is the cython code.
$ ipython
Python 3.7.5rc1 (default, Oct  8 2019, 16:47:45)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.9.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import examplec

In [2]: %timeit examplec.Example()
68.7 ns ± 0.315 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

In [3]: import example

In [4]: %timeit example.Example()
224 ns ± 1.6 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

PyO3 has some fundamental overhead in its core, so I'm not sure we can fix it thinking

What sort of overhead is there that cython doesn't seem to require?

@ehiggs
Sorry for the delay but I wrote an explanation #679

@ethanhs we've made steps to improve this in 0.10.1 - would be curious if you'd be interested in rerunning the benchmarks performed to see what the improvement is like?
My guess is we're still not as fast as cython but hopefully we're closer, and maybe we'll find the next steps someday soon!

@davidhewitt I ended up making a quick repo of my test for reproducibility. https://github.com/ethanhs/clscreate.
The mean times I got on my Ryzen 9 3900x on Windows with nightly 2020-05-12:
Cython: 75.9655 ns
Python: 247.2162 ns
PyO3: 354.3962 ns

Oh man, it's a bit disappointing that class creation is slower than native Python classes even. I mean it's not suprising that they're also well optimised, but still...
Definitely we shall have to look at improvements here :)

Yeah, it is rather unfortunate. If I remember correctly, when I initially posted this was also the case that PyO3 was slow than Python, so at least it isn't a regression.
I look forward to improvements to come! :)

Just as an update to this, I updated the clscreate test to PyO3 0.14.5 - https://github.com/davidhewitt/clscreate
On my Core i7-10750H, with Python 3.9.5, now I get mean times of:
Cython 52ns
PyO3 107ns
Python 174ns
... so we're now 2x Cython rather than 5x, and we're notably faster than plain Python! 🎉
I'm going to close this issue; also we track a benchmark at https://github.com/PyO3/pyo3/blob/56ef7c9f6d98d66e5e8cee3a31695bec555c76db/examples/pyo3-benchmarks/tests/test_benchmarks.py#L95 (though we don't yet compare against Cython).

I'm having a similar performance issue with a custom wrapper around tuple (code below).
It turned out so ridiculously slow that it was not funny, i.e. in calling a Rust function that consumes PyPoint instance and returns a PyPoint instance it is a major bottleneck, eating about 95% of the execution time of the whole function.  I've done some digging, and these are the results:

I've made another function that takes "raw" tuples instead of PyPoint instances, and it appears that just unwrapping and wrapping tuples is about 50% of the cost of creation and destructuring of PyPoint instances.
I've made a Python class (MyPoint, also below) to compare, and it has about the same creation and destructuring cost as rust class, so it does not appear that PyO3 is doing something alarmingly wrong
This is still a massive pitfall, and if it is impossible to avoid this, maybe we should say in the docs that pyclass should be avoided at any possible cost?
This does, of course, open a Pandora's box for problems with typing across Python/Rust boundary, as wrapper classes provide a very nice way to ensure Python code can not feed random junk to Rust code, and with plain tuples it is more tricky.

#[derive(Debug, Copy, Clone)]
pub struct Point(f64, f64);

#[pyclass]
pub struct PyPoint(Point);

#[pymethods]
impl PyPoint {
    #[new]
    pub fn new(data: (f64, f64)) -> Self {
        PyPoint{0:Point{0:data.0, 1:data.1}}
    }

    fn __repr__(&self) -> String {
        format!("[{}, {}]", self.0.0, self.0.1)
    }

    fn __getitem__(&self, i:usize) -> PyResult<f64> {
        match self.as_list().get(i)
        {
            None => {Err(PyKeyError::new_err("index out of range"))}
            Some(v) => {Ok(*v)}
        }
    }

    fn as_list(&self) -> [f64; 2] {
        return [self.0.0, self.0.1]
    }

    fn as_tuple(&self) -> (f64, f64) {
        return (self.0.0, self.0.1)
    }
}
impl Deref for PyPoint {
    type Target = Point;
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}

fn noop_tuple(x:(f64,f64), y:(f64,f64))->Option<((f64,f64),((f64,f64)))>
{
    Some((x,y))
}

class MyTuple:
    __slots__ = ['x', 'y']
    def __init__(self, d):
        self.x, self.y = d

    def as_tuple(self):
        return self.x, self.y

def bench():
    for name, fn in {
        "tuple_wrap": lambda _p1, _p2, _: [tuple(r) for r in [_p1, _p2]],
        "rs_function":lambda _p1, _p2, _: [ tuple(r) for r in o3.noop_tuple(_p1, _p2)],
        "rs_class": lambda _p1, _p2, _: [tuple(r.as_tuple()) for r in [o3.PyPoint(_p1), c3.PyPoint(_p2)]],
        "py_class": lambda _p1, _p2, _: [tuple(r.as_tuple()) for r in [MyTuple(_p1), MyTuple(_p2)]], }.items():
        t1 = time.time()
        for N in range(10000):
            p1, p2 = (N,N), (N,N)
            _ = fn(p1, p2, 1.0)
        t2 = time.time()
        print(f"{name}: {(t2 - t1) * 1000} ms")

@alexpyattaev thanks for challenging this.
You're correct to say that PyO3 class creation is roughly on the same speed as Python class creation (some cases we are faster, some cases we are slower). We are limited by needing to create a Python object and all the machinery that requires. I do hope that one day we can find optimisations that mean we are consistently faster than Python, but I don't think this will ever be orders of magnitude difference.
I think you have been a bit too fast to conclude that tuples are always better. Your example has a lot going on, so to make it easier to compare I've reduced it to just three #[pyfunction] to compare:

takes_py_tuples - the simplest case which doesn't create or destroy any Python objects
takes_rs_tuples - a variant of the above which converts the Python tuples into Rust tuples and back
takes_rs_tuples_makes_class - a variant of the above which converts the Python tuples into Rust tuples and then returns a tuple of PyPoint

Code at the bottom. Some example numbers (Mac M1, Python 3.10.6, rust 1.66.0-beta.1):
$ python test.py
py_tuples: 2.0890235900878906 ms
rs_tuples: 3.6208629608154297 ms
rs_class: 3.233194351196289 ms

While there is some variance, with this measurement I see that creating PyPoint from Rust is slightly faster than creating Python tuples.
You are correct that there is overhead converting from Python <-> Rust, and our user guide does discuss this. I still defend that it is better to use #[pyclass] than raw tuples for most use cases, you have acknowledged the typing benefit yourself above. There will always be exceptions, in some cases #[pyclass] may be slower, and whichever is faster it's always best to avoid creating and destroying Python objects in a hot loop if you can restructure your algorithm to avoid this.

lib.rs
use pyo3::prelude::*;
use pyo3::types::PyTuple;

#[derive(Debug, Copy, Clone)]
pub struct Point(f64, f64);

#[pyclass]
pub struct PyPoint(Point);

#[pymethods]
impl PyPoint {
    #[new]
    pub fn new(data: (f64, f64)) -> Self {
        PyPoint {
            0: Point {
                0: data.0,
                1: data.1,
            },
        }
    }
}

#[pyfunction]
fn takes_py_tuples<'py>(x: &'py PyTuple, y: &'py PyTuple) -> (&'py PyTuple, &'py PyTuple) {
    (x, y)
}

#[pyfunction]
fn takes_rs_tuples(x: (f64, f64), y: (f64, f64)) -> ((f64, f64), (f64, f64)) {
    (x, y)
}

#[pyfunction]
fn takes_rs_tuples_makes_class(x: (f64, f64), y: (f64, f64)) -> (PyPoint, PyPoint) {
    (PyPoint::new(x), PyPoint::new(y))
}

#[pymodule]
fn pyo3_scratch(_: Python, m: &PyModule) -> PyResult<()> {
    m.add_class::<PyPoint>()?;
    m.add_function(wrap_pyfunction!(takes_py_tuples, m)?)?;
    m.add_function(wrap_pyfunction!(takes_rs_tuples, m)?)?;
    m.add_function(wrap_pyfunction!(takes_rs_tuples_makes_class, m)?)?;
    Ok(())
}

test.py
import time

import pyo3_scratch

def bench():
    for name, fn in {
        "py_tuples": lambda _p1, _p2: pyo3_scratch.takes_py_tuples(_p1, _p2),
        "rs_tuples": lambda _p1, _p2: pyo3_scratch.takes_rs_tuples(_p1, _p2),
        "rs_class": lambda _p1, _p2: pyo3_scratch.takes_rs_tuples_makes_class(_p1, _p2),
    }.items():
        t1 = time.time()
        for N in range(10000):
            p1, p2 = (N, N), (N, N)
            _ = fn(p1, p2)
        t2 = time.time()
        print(f"{name}: {(t2 - t1) * 1000} ms")
        assert len(_) == 2

if __name__ == "__main__":
    bench()

Well, now we are diving further into the rabbit hole =) A few notes/updates to your suggested benchmark:

Taking  &'py PyTuple and returning it right away is inappropriate, as in order to actually use its content you still need to do some extra work.  I've updated all the functions to do "useful work" which requires de structuring Python objects, I think it levels the playing field a bit. With that refinement, dealing in PyTuple is no longer that beneficial compared to rust tuple (as it really should be the same thing).
I've recalled that Python has a massive namespace lookup overhead, and taking names local has a massive impact when making plenty of class instances to feed input values into functions. I've added appropriate benchmarks to illustrate that (as well as baseline for pure python implementation).
Just measuring means did not feel right anymore, so added mean squared error too.
SW/HW specs rustc 1.64.0 (a55dd71d5 2022-09-19), AMD Ryzen 3500U, YMMV.

Below are the timings with updated tests:
Just lambda, no work               : 2.701 ms, +-0.013 us
Normal Python function             : 7.163 ms, +-0.044 us
PyTuple in and out                 : 8.640 ms, +-0.183 us
Rust tuple in and out              : 8.490 ms, +-0.364 us
Rust tuple in and out, local       : 7.404 ms, +-0.269 us
Rust tuple in, pyclass out         : 6.901 ms, +-0.064 us
Rust tuple in, pyclass out, local  : 5.997 ms, +-0.049 us
pyclass in, pyclass out            : 13.058 ms, +-0.424 us
pyclass in, pyclass out, fast      : 11.085 ms, +-0.123 us

TL;DR of the results so far is:

when targeting lowest overhead possible, it seems that rust tuples are the preferred approach (at least on my hardware, to test on your hardware run the bench).
pyclass as return type is fine, i.e. no significant extra cost compared to just returning tuple
if possible local imports should be used, especially if using pyclass instances for input parameters

Bottom line, I think docs should be patched to include this result (or maybe just drop this code straight into Examples? Not sure what would be best, please advise. There does not appear to be any performance loss in PyO3 itself (at least nothing major).

#[derive(Debug, Copy, Clone)]
pub struct Point(f64, f64);

#[pyclass]
pub struct PyPoint(Point);

#[pymethods]
impl PyPoint {
    #[new]
    pub fn new(data: (f64, f64)) -> Self {
        PyPoint {
            0: Point {
                0: data.0,
                1: data.1,
            },
        }
    }
}

#[pyfunction]
fn takes_py_tuples<'py>(
    py: pyo3::Python<'py>,
    x: &'py PyTuple,
    y: &'py PyTuple,
) -> PyResult<(&'py PyTuple)> {
    let xx: (f64, f64) = x.extract()?;
    let yy: (f64, f64) = y.extract()?;
    let r1 = PyTuple::new(py, [xx.0 + 1.0, yy.1 + 1.0]);
    let r2 = PyTuple::new(py, [xx.1 + 1.0, yy.0 + 1.0]);
    Ok(PyTuple::new(py, ([r1, r2])))
}

#[pyfunction]
fn takes_rs_tuples(x: (f64, f64), y: (f64, f64)) -> ((f64, f64), (f64, f64)) {
    ((x.0 + 1.0, y.1 + 1.0), (x.1 + 1.0, y.0 + 1.0))
}

#[pyfunction]
fn takes_rs_tuples_makes_class(x: (f64, f64), y: (f64, f64)) -> (PyPoint, PyPoint) {
    (
        PyPoint::new((x.0 + 1.0, y.1 + 1.0)),
        PyPoint::new((x.1 + 1.0, y.0 + 1.0)),
    )
}

#[pyfunction]
fn takes_rs_class_makes_class(x: &PyPoint, y: &PyPoint) -> (PyPoint, PyPoint) {
    (
        PyPoint {
            0: Point(x.0 .0 + 1.0, y.0 .1 + 1.0),
        },
        PyPoint {
            0: Point(x.0 .1 + 1.0, y.0 .0 + 1.0),
        },
    )
}

#[pymodule]
fn pyo3_scratch(_py: Python, m: &PyModule) -> PyResult<()> {
    m.add_class::<PyPoint>()?;
    m.add_function(wrap_pyfunction!(takes_py_tuples, m)?)?;
    m.add_function(wrap_pyfunction!(takes_rs_tuples, m)?)?;
    m.add_function(wrap_pyfunction!(takes_rs_tuples_makes_class, m)?)?;
    m.add_function(wrap_pyfunction!(takes_rs_class_makes_class, m)?)?;
    Ok(())
}

import time
import  pyo3_scratch

#shortcut imports for faster speed
PyPoint = pyo3_scratch.PyPoint
takes_rs_class_makes_class = pyo3_scratch.takes_rs_class_makes_class
takes_rs_tuples_makes_class = pyo3_scratch.takes_rs_tuples_makes_class
takes_rs_tuples = pyo3_scratch.takes_rs_tuples

def py_fn(_p1, _p2):
    # this is the benchmark logic. Yes it is silly.
    return (_p1[0] + 1.0, _p2[1] + 1.0), (_p1[1] + 1.0, _p2[0] + 1.0)

def bench():
    B=10
    for name, fn in {
        "Just lambda, no work": lambda _p1, _p2: (_p1, _p2),
        "Normal Python function": lambda _p1, _p2: py_fn(_p1, _p2),
        "PyTuple in and out": lambda _p1, _p2: pyo3_scratch.takes_py_tuples(_p1, _p2),
        "Rust tuple in and out": lambda _p1, _p2: pyo3_scratch.takes_rs_tuples(_p1, _p2),
        "Rust tuple in and out, local": lambda _p1, _p2: takes_rs_tuples(_p1, _p2),
        "Rust tuple in, pyclass out": lambda _p1, _p2: pyo3_scratch.takes_rs_tuples_makes_class(_p1, _p2),
        "Rust tuple in, pyclass out, local": lambda _p1, _p2: takes_rs_tuples_makes_class(_p1, _p2),
        "pyclass in, pyclass out": lambda _p1, _p2: pyo3_scratch.takes_rs_class_makes_class(pyo3_scratch.PyPoint(_p1), pyo3_scratch.PyPoint(_p2)),
        "pyclass in, pyclass out, fast": lambda _p1, _p2: takes_rs_class_makes_class(PyPoint(_p1), PyPoint(_p2)),
    }.items():
        times = []
        for _ in range(B):
            t1 = time.time()
            for N in range(10000):
                p1, p2 = (N, N), (N, N)
                _ = fn(p1, p2)
            t2 = time.time()
            times.append(t2-t1)
        mean = sum(times) / B
        mse = sum(map(lambda i: (i-mean)**2, times))/B
        print(f"{name:35}: {mean* 1000:.3f} ms, +-{mse*1e6:.3f} us")
        assert len(_) == 2

if __name__ == "__main__":
    bench()

Thanks for the further exploration, and sorry for my slow reply.
This shows that we can be fast to make #[pyclass] objects, but not when the creation is done from Python, so there should be wins to be gained on the #[new] implementation within PyO3. It looks like Python has a tp_vectorcall which can be used as an alternative to tp_new, but that's not available for the "heap types" PyO3 uses. I've asked upstream about this in https://github.com/python/cpython/issues/100554


 Retrieve the LoaderExceptions property for more information.
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.RuntimeAssembly.get_DefinedTypes()
   at System.Linq.Enumerable.<SelectManyIterator>d__17`2.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at AutoMapper.Configuration.MapperConfigurationExpression.AddMapsCore(IEnumerable`1 assembliesToScan)
   at AutoMapper.MapperConfiguration.Build(Action`1 configure)
   at GitReleaseManager.Core.AutoMapperConfiguration.Configure() in /_/src/GitReleaseManager.Core/AutoMapperConfiguration.cs:line 13
   at GitReleaseManager.Cli.Program.RegisterServices(BaseSubOptions options) in /_/src/GitReleaseManager.Cli/Program.cs:line 76
   at CommandLine.ParserResultExtensions.WithParsed[T](ParserResult`1 result, Action`1 action)
   at GitReleaseManager.Cli.Program.<Main>d__1.MoveNext() in /_/src/GitReleaseManager.Cli/Program.cs:line 30
GitReleaseManager: Process returned an error (exit code 1).

Your Environment
Running this using cake (Cake.CoreCLR 1.1.0).

Version Used: 0.12.0
Edition Used .NET Core
Operating System and version (Windows 10, Ubuntu 18.04): Windows 10

I confirm that I am seeing the exact same problem, with the exact same stack trace, using the same version of GitReleaseManager (0.12.0).

I also confirm that the problem goes away when reverting to 0.11.0

I'm seeing the same error using Cake 1.2.0. Resolved by reverting to GRM 0.11.0.
Too bad. I really wanted to try a custom template. :-(

This error is not limited to usage of Cake, but occurs also if the GitReleaseManager.exe from https://www.nuget.org/packages/GitReleaseManager/0.12.0 is executed manually. It, however, does not occur if GitReleaseManager is installed globally using the choco package. (Also, it does not occur if the .NET tool version is used.)
Comparing the nuget GitReleaseManager.0.12.0.nupkg to the coco gitreleasemanager.portable.0.12.0.nupkg, the latter contains a GitReleaseManager.exe.config: If I copy this config back to the other locations (i.e. the tools folder of an unzipped version of GitReleaseManager.0.12.0.nupkg or the ./tools/GitReleaseManager.0.12.0/tools/ folder of a Cake script) everything works as before.

Huge thanks for @nils-a for finding the underlying problem here.  This didn't come up in the initial testing that was done prior to shipping 0.12.0 due to the fact that I was testing with the .NET Global Tool version of GitReleaseManager.  This problem that we are seeing here is specific to the Full Fat .NET Framework version of the tool that is shipped to NuGet.org namely this one:
https://www.nuget.org/packages/GitReleaseManager/
We are away to publish a v0.12.1 release of GitReleaseManager which should fix this problem.


centos7，install  Pkcs11  still show Could NOT find Pkcs11 (missing: Pkcs11_FOUND)

-- Skipping optional feature MbedTLS for cryptography (encryption, certificate validation, hashing functions)
--     Enable feature MbedTLS using "-DWITH_MBEDTLS=ON"
-- Checking for module 'libpkcs11-helper-1'
--   No package 'libpkcs11-helper-1' found
CMake Error at /usr/local/cmake-3.23.0/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Pkcs11 (missing: Pkcs11_FOUND)
Call Stack (most recent call first):
/usr/local/cmake-3.23.0/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
cmake/FindPkcs11.cmake:27 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
winpr/CMakeLists.txt:296 (find_package)
-- Configuring incomplete, errors occurred!
ls /usr/lib64/ |grep libpkcs11-helper
libpkcs11-helper.so.1
libpkcs11-helper.so.1.0.0
question：
when I use ubuntu  ，I would apt install libpkcs11-helper1-dev to solve them. This problem occurs when using centos7.9. I tried to download the rpm package pkCS11-Helper-1.11-3.el7.x86_64. rpm, but the message "ould NOT find Pkcs11 (missing: Pkcs11_FOUND)" was still displayed., does the latest version no longer support centos7.9?
I went through almost all the web sites, but still didn't find a suitable solution,please give me a good idea.

pkcs11-helper-1.11-3.el7.x86_64.rpm  Have been installed

I encountered the same problem on ubuntu can, centos7 failed, if urgent, recommend switching to ubuntu。

Thank you. Do you have a copy of the simplified centos7 configuration? As in 2.111.2 Simplified configuration of cmake... -DWITH_FFMPEGH=OFF, 3.X There are too many configurations that need to be changed for centos7 compilation and it is not easy to install. Do you have a simple version configuration parameter option that has been tested? I need to make a frerrdp client based on centos7

Thanks  akallabeth https://github.com/FreeRDP/FreeRDP/wiki/Compilation is great!


validate_schema=True breaks with partition columns and dataset=True

Describe the bug
Sorry, it's me again, and again about the error on missing columns: https://github.com/awslabs/aws-data-wrangler/pull/1370
When using dataset=True and non-empty partition_colums during write, validate_schema=True and non-empty columns fails during read because partition columns are removed from the dataframe before writing.
Is this now intended behavior? As someone using partitioning and datasets a lot, I find this a non-intuitive and breaking change in behavior. Especially as partition columns are transparently removed during write and added back during read.
How to Reproduce
>>> import awswrangler as wr
>>> import pandas as pd

>>> df = pd.DataFrame({"column":[1], "partition": [2]})

>>> wr.catalog.create_database("test_partition_columns")

# write simple partitioned dataset
>>> wr.s3.to_parquet(
...     df,
...     dataset=True,
...     database="test_partition_columns",
...     table="test_table",
...     path="s3://<redacted>/test_partition_columns/test_table/",
...     partition_cols=["partition"],
... )
{
    'paths': [
        's3://<redacted>/test_partition_columns/test_table/partition=2/06cdfcd5ebd14e92a88b1ee18fd5061d.snappy.parquet'
    ],
    'partitions_values': {
        's3://<redacted>/test_partition_columns/test_table/partition=2/': ['2']
    }
}

# reading all columns works just fine
>>> wr.s3.read_parquet(
...     "s3://<redacted>/test_partition_columns/test_table/",
...     dataset=True,
...     validate_schema=True,
... )
   column partition
0       1         2

# reading a column that is there ('partition', see above) explicitly fails
>>> wr.s3.read_parquet(
...     "s3://<redacted>/test_partition_columns/test_table/",
...     dataset=True,
...     validate_schema=True,
...     columns=["column", "partition"],
... )
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/rschmidtke/miniconda3/envs/<redacted>/lib/python3.9/site-packages/awswrangler/s3/_read_parquet.py", line 777, in read_parquet
    return _read_parquet(
  File "/home/rschmidtke/miniconda3/envs/<redacted>/lib/python3.9/site-packages/awswrangler/s3/_read_parquet.py", line 540, in _read_parquet
    table=_read_parquet_file(
  File "/home/rschmidtke/miniconda3/envs/<redacted>/lib/python3.9/site-packages/awswrangler/s3/_read_parquet.py", line 489, in _read_parquet_file
    raise exceptions.InvalidArgument(f"column: {column} does not exist")
awswrangler.exceptions.InvalidArgument: column: partition does not exist

# not reading the 'partition' column still returns it though, but this may already be existing behavior
>>> wr.s3.read_parquet(
...     "s3://<redacted>/test_partition_columns/test_table/",
...     dataset=True,
...     validate_schema=True,
...    columns=["column"],
... )
   column partition
0       1         2

Expected behavior
Not to fail. But not sure how to implement this. When dataset=True and columns is non-empty, extract the PartitionKeys from the table input and remove them from columns if present?
Your project
No response
Screenshots
No response
OS
Ubuntu 20.04.4 LTS
Python version
3.9.13
AWS DataWrangler version
2.16.1
Additional context
No response

Thanks @robert-schmidtke for keeping us on top of this. It should be fixed in #1427. We will most likely plan for this in 2.17.x.

Thanks for addressing this right away! I was able to work around the issue on my end, but I'll be eager to test 2.17 once it's out :)


Middleware chaining refactor

Do you want to request a feature or report a bug?
feature (refactor)
What did you want?
Speaking about Negroni replacement.
From #1391:
@rjshep

After digging into this a bit more I'm not sure whether it makes sense to continue with removing Negroni.
I like the fact that removing it allows the use of simple net/http handlers. However in order to do that we either need to build of the chain of middlewares from right to left (i.e. starting with the last in the chain) or we go left to right and then need to keep track of the last in the chain and update it each time a new middleware is added.
The former means quite a lot of reordering of code within server.go, in order to build the chains right to left and is counter-intuitive.  The latter means we're effectively duplicating what Negroni does at the moment, just in a different way.
If we were to move ahead with removing Negroni then my preference is for the former approach, however I'm not sure that they amount of effort involved is really worth it.  I'd value your thoughts.

@timoreimann

At my workplace, we use https://github.com/justinas/alice to chain regular net/http handlers in a human-friendly manner. It's a very small dependency that does the job well.
Given that we have a net win of ~400 files being removed (including one dependency), I personally think it's still worth pursuing the effort to remove Negroni. (Admittedly, that's easy for me to say as I'm not the one doing the hard work.)

This may be a silly question, but what would the benefit be from removing negroni?

Reduced complexity: We can get rid of one dependency and only have to care about a single type of handler, which also conforms to the standard net/http one.
We would also lose a net of 400-ish lines of code.

I'll look into using https://github.com/justinas/alice and see how straightforward it would to be to replace Negroni.

Closed by v2.0


Database Connectors

Problem
There are many requests for database types, such as MongoDB, Neo4j, Dgraph, Druid, Oracle, etc.  I’m using a more obscure database, and I don’t ever expect Prisma to offer first class support for it.  However, I would like to invest my own time into trying to make one.
Solution
Echoing https://github.com/prisma/prisma/issues/1006#issuecomment-340290344 An API for “database-adaptors” to ascribe to.  Or documentation and an example on how to write my own adapter.  I don’t know where to start.
Alternatives
Not writing an adapter.  Or, not using Prisma.  Or, writing my own queries and mutations with nexus-prisma instead of having them generated for me.
Additional context
I am under the impression that there will always be more databases to support and maintain, and that having a systematic way for the community to contribute to the less popular databases would be beneficial in the long run.

We do have plans for it but this will happen far in the future.
You can watch Marcus' talk on this subject: https://youtu.be/RAoXdyI_PH4?t=581

Looking forward to the Core Connector Pattern 👍

Did it ever happen?


Listen click on specific view on multi view cell

Thank for this awesome work.
I have two buttons in each cell, how can get to know which button was clicked?

How about setting the click listener on your button directly when you create the ViewHolder of your cell, instead of using the global cell click listener?

How about setting the click listener on your button directly when you create the ViewHolder of your cell, instead of using the global cell click listener?

But how to access column and row position in ViewHolder?

How about setting the click listener on your button directly when you create the ViewHolder of your cell, instead of using the global cell click listener?

How can I access column and row position in ViewHolder? not found any way there.

In your adapter's onBindCellViewHolder method you receive the row and column index. You can pass them to your your ViewHolder to do what you need.
https://github.com/evrencoskun/TableView/blob/c33f96fa09f3e355e4bdcaafec468db46e6b9523/tableview/src/main/java/com/evrencoskun/tableview/adapter/ITableAdapter.java#L46

In your adapter's onBindCellViewHolder method you receive the row and column index. You can pass them to your ViewHolder to do what you need.
https://github.com/evrencoskun/TableView/blob/c33f96fa09f3e355e4bdcaafec468db46e6b9523/tableview/src/main/java/com/evrencoskun/tableview/adapter/ITableAdapter.java#L46

Thank its working fine.
But one doubt, each time onBindCellViewHolder assigning click listener will cause performance overhead?

I would set it in your ViewHolder constructor, it that's possible. Don't recreate a new click listener each time the cell is updated. And you can keep the row and column index in your ViewHolder, so they can be accessed from your click listener.

ViewHolder

That is the issue I don't find any method to access column and row position in ViewHolder constructor.
Can you please provide a sample code for access column and row position in ViewHolder constructor?

It's not in the constructor of the ViewHolder, but it's coming from the `onBindCellViewHolder() method.
Here's a sample code (I quickly wrote it here, so I'm not 100% sure it works).
// Adapt your current ViewHolder to have something like this
class CellViewHolder extends AbstractViewHolder {
    private int column = -1;
    private int row = -1;

    public CellViewHolder(@NonNull View itemView) {
        super(itemView);

        itemView.setOnClickListener(v -> {
            if (column >= 0 && row >= 0) {
                // TODO Do something with column and row
            }
        });
    }

    public void bindTo(Cell cell, int column, int row) {
        this.column = column;
        this.row = row;

        // Your usual binding
    }
}

// Adapt your current onBindCellViewHolder to have something like this
public void onBindCellViewHolder(@NonNull AbstractViewHolder holder, @Nullable Cell cellItemModel, int columnPosition, int rowPosition) {
    ((CellViewHolder) holder).bindTo(cellItemModel, columnPosition, rowPosition);
}

Thanks again It's working


Add support for classification_report

Is your feature request related to a problem? Please describe.
Implements classification_report for classification metrics.(https://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html)

Hi. I would like to work on this feature, can you please give me a little more detail?....Do we need to add a new script inside "mars/mars/metrics/" that generates the classification report?

@hekaisheng Hi, Can I continue to this issue if that's okay? As far as I understood the requirements are something like this:

Implement a function that can generate reports for the major classification metrics.
Should I assume that this function should be kept in this directory: mars/mars/metrcs? Or should I create a backend just like prometheus or console for this ?

is this open to work ?? as i'm intrested to work upon this @hekaisheng


Healthcheck fix for FA IP address not found w/ valid connection

Proposed fix for #78

Thanks @fredclausen :-)


dashboard/app: fix typo and change reporting description

Fix a typo in mail_bisect_result.txt related to the "syz fix:" line.
Improve the description to make it clearer why sending a "syz fix:" is important.

Codecov Report

Merging #1374 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1374   +/-   ##
=======================================
  Coverage   57.82%   57.82%
=======================================
  Files         131      131
  Lines       24773    24773
=======================================
  Hits        14324    14324
  Misses       9779     9779
  Partials      670      670

Continue to review full report at Codecov.

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


install parallel

The parallel command is used by bats in https://github.com/stackrox/infra

@BradLugo when you asked to add parallel to the UI image was it just for consistency between the images, or did you notice it was needed there, too? If it's nost needed there, then I'll close this in favor of removing parallel from infra's tests

Just for consistency

Closing, as this is no longer needed


Missing documentation for github_actions_secret

github_actions_secret documentation page is returning 404:
https://www.terraform.io/docs/providers/github/r/github_actions_secret.html

Fixed with https://github.com/terraform-providers/terraform-provider-github/issues/405.
I am awaiting release of v2.5.1 which I think will apply the fix.


don't make us require it in the app

I suggest we find a way not to require it in index.js (you do suggest to install it as dev dependency which would mean it is not available in production)
possible solutions:

wrap it in a logical test on the environement >>  not ideal, and bloat
wrap it in a separate dev.index.js which then loads index.js
...

Also the cli usage can be as simple as:
nodejs-dashboard app.js
which under the hood calls node -r nodejs-dashboard app.js.

Yes please, Have a global (-g) install available for this module.

I normally go with your second possible suggestion. I place it next to babel-register.

Great suggestion @saelfaer  and @Volox-- going to experiment with a couple different options . I like @Volox's idea of using -r but we'd need to ensure it's compatible with things like babel-node.


React router compat

I'm looking into the issue but I was curious if anyone has this working with react-router as well. Somehow route matching is broken (after using aliasify). I'll post back if I figure out what's up.

I recall someone posting about using them together, but can't seem to find it.  I'm interested in making them play nice though, any errors/repos help emensely.

Too lazy to dig around today haha, but there was no exception, just a warning message saying it couldn't match, which is odd, the Redux input is identical. Seems like all of the React methods are there, otherwise it would be throwing, so there must be a tiny incompatibility somewhere

Ah no probem haha. This has me thinking it's something to do with the internal shape of the VNode, but that's a bit of a guess. I will send about putting a demo together today.

Found the issue that causes react-router to fail.  React Router uses the props.children attribute to iterate over nested Routes.  When using preact-compat to emulate the props attribute, it fails to insert the children property back in with attributes.
preact-compat - Aliases the attributes property, but doesn't add back the children attribute React uses
https://github.com/developit/preact-compat/blob/master/src/index.js#L45
react-router - Creates a "route" from the props of an element, assumes there is a children property
https://github.com/reactjs/react-router/blob/master/modules/RouteUtils.js#L38

Interesting. Might already have a fix for this locally then, will try to get it out in short order.

Any ETA on this?

I've knocked out all the other top priority bugs and I'm working on compatibility stuff now.  I'll keep you posted!

I get an error with Reat-Router too.
The console logs:
Uncaught Error: Required prop `createElement` was not specified in `<<anonymous>>`.

It seems to originate from:
https://github.com/developit/preact-compat/blob/master/src/index.js#L276
prop is 'createElement' and this.displayName is 'RouterContext' when it fails

Do any of you have repos / repros I could take a look at for this?  I want to make sure I'm testing against the setup that is breaking here.  Thanks!

It seems it just wont work for me. I did as in readme, about resole and alias, but I just see plain page and this:

My code:

Index and Error404 function components with simple div+text returned.

I need to have preact-compat alias props.children. This will require Preact 5 (beta) FYI

@developit what should I do? Install latest preact and alias 'props.children': 'preact-compat'? :o

Just working on an update to patch this and one other issue using preact 5 with preact-compat. Expect a release there shortly.

Commit auto-closed, which was probably a little hopeful on my part.  If anyone can give this a whirl if you still have a breaking example, let me know if it's working now!

@idchlife ping me on Gitter if you can - I just published 5.0.1-beta.15 that fixes a bug caused by overzealous minification, was resulting in some very very strange behavior (random elements added/removed, etc) due to a loop variable not being reset on each iteration causing fall-through.

@developit Still not working.
Had a bit time to try out with the current versions. (preact 5.1.0-beta.19 and preact-compat 1.8.1)
https://github.com/developit/preact-compat/blob/1.8.1/src/index.js#L300
The createElement prop is still missing for the RouterContext component.
There is a key createElement in props but it's undefined and it seems to be the only undefined there. components, history, location, params, router and routes all have values.
When running in production mode RouterContext really seems to call this.props.createElement() (which is missing then) so this doesn't seem to be a wrong alarm.

Hmm - this points to it being an issue with getDefaultProps() in preact-compat. Looking there now.

This is very strange - I can't reproduce the defaultProps issue in isolation:  https://jsfiddle.net/developit/2vtwzbng/7/
@kay-is if you still have this running somewhere, any chance you can check if RouterContext's getDefaultProps() is even being called?  Or if this.constructor.defaultProps is properly set on the instance you were looking at.

getDefaultProps() of RouterContext is called once.
this.constructor.defaultProps is {createElement: function createElement()} when I got to the line where the error is thrown.

I found the bug, will release a fix very shortly!

Another wishful close perhaps, but<EMAIL_ADDRESS>should fix the issue you pointed out @kay-is 🎱

@developit sadly, I'm still getting  [react-router] Location "/" did not match any routes error even though there is a proper route: https://github.com/slmgc/preact-baobab-template/blob/dev/src/common/routes.js#L5
"preact": "5.1.0-beta.20",
"preact-compat": "1.8.2",

@developit This fixed my bug, but now I got an issue like @slmgc
The / route seems to work, since the navigation is rendered, but every route inside that isn't recognized.
Warning: [react-router] Location "/map" did not match any routes
Warning: [react-router] Location "/settings" did not match any routes
This is my route definition:
export const Main = () =>

  <Router history={browserHistory}>

    <Route path='/' component={App}>
      <IndexRoute component={Map}/>
      <Route path='map' component={Map}/>
      <Route path='settings' component={Settings}/>
      <Route path='*' component={NotFound}/>
    </Route>

  </Router>

const App = props =>

    <Navigation>
      <Link to='/map'>Map</Link>
      <Link to='/settings'>Settings</Link>
    </Navigation>

    {props.children}

const NotFound = () =>
404 - Not Found

Thanks for the minimal repro. I'm debugging this now and have found the likely cause.

@kay-is Alright, that repro now appears to be working with<EMAIL_ADDRESS>and<EMAIL_ADDRESS>http://jsfiddle.net/developit/wtpfyfnt/17/

@developit I've tried to use preact with my 19k LoC project, runs smoothly, react-router works, all seems ok, excellent job! 👍

@developit I've tried to use preact with my 19k LoC application and it seemed that all is ok until I've stumbled upon an issue with redirects. Here's the minimal failing example:
import {Redirect, Route} from 'react-router'
const Home = () =>
Home

<Route>
      <Route path="/home" component={Home} />
      <Redirect from="*" to="/home" />
</Route>

It fails with [react-router] Location "/" did not match any routes and works if you'll try to go to /home directly. I've checked it with hashHistory as well as browserHistory.

@developit Yes, 1.9.0 works now with the nested routes.
But ....! ;)
The <IndexRoute> doesn't work. Maybe the same issue that @slmgc has with <Redirect>?
It also doesn't work in your fiddle example. Home is never displayed.

Ah OK, I wondered about that. I'll see what's causing those issues.

@developit do you think we should reopen this issue so everyone knows it's being worked on?

Yes :)

Anything I can help with? (Router committer here)

Hi Tim - the remaining issue is that for some reason IndexRoute and Redirect don't work.  If it's similar to the previous issue, I'm thinking the process of creating the nested routes definition is failing to see these two types of VNodes.

Sounds like there's a difference in how props.children works in Preact? (Sorry if these are pedantic questions. I'm not (yet!) a Preact user) Are the ReactElements that API provides anything different? We read through them to create "route" elements from those ReactElements, so maybe there is some API difference in how you represent those elements? Interestingly, it's only those Route types that have a customized createRouteFromReactElement, so there could be an API difference there.

@developit I think I have found the root of this problem: I'm not entirely sure but it looks like static methods of components aren't inherited with preact, which leads to:
// Component classes may have a static create* method.
if (element.type.createRouteFromReactElement) {

being falsely in RouteUtils.js (which is not the case with React). As a result it leads to a routes object containing:
[{
  "childRoutes":[
    {"path":"/", "component": function},
    {"from":"*","to":"/"}
  ]
}]

instead of:
[{
  "childRoutes":[
    {"path":"/", "component": function},
    {"from":"*","onEnter": function, "to":"/", "path": "*"}
  ]
}]

You could see it contains onEnter method.

@slmgc Amazing, I can't believe I didn't catch that. I've just added support for statics to createClass(). It's released as<EMAIL_ADDRESS>

@timdorr Sorry for missing your points there!  It looks like the issue @slmgc noticed is related to your last point. Preact's VNode is different from ReactElement - the goal of preact-compat is to patch those differences (aliasing attributes as props and so on).

Ladies and Gentlemen, I believe we now have full support for react-router!
http://jsfiddle.net/developit/wtpfyfnt/

Eww... Dont work with
"react-router": "^3.0.2",
"preact": "^7.2.0",
"preact-compat": "^3.13.1",

@Creeplays would need more details to actually debug. Do you have a repro?

I'm getting the following:
WARNING in ./~/react-router/es/InternalPropTypes.js
4:13-22 "export 'PropTypes' was not found in 'react'

@hassanbazzi sounds like you're using Webpack 2 but not transpiling node_modules. Change your aliases to this:
alias: {
  'react': 'preact-compat/dist/preact-compat',
  'react-dom': 'preact-compat/dist/preact-compat'
}

import { render } from "preact";
import React from "react";
import ReactDOM from "react-dom";
import { Router, IndexRoute, Route, browserHistory } from "react-router";
import { LayoutPortal, LayoutTabs } from "./app/components/index";
import { Login, Register } from "./app/index";

if (process.env.NODE_ENV === "development") {
	const a11y = require("react-a11y");
	a11y(React, { ReactDOM });
}

const App = () => (
	<Router history={browserHistory}>
		<Route component={LayoutPortal}>
			<Route path="/" component={LayoutTabs}>
				<IndexRoute component={Login} />
				<Route path="login" component={Login} />
				<Route path="register" component={Register} />
			</Route>
		</Route>
	</Router>
);

render(<App />, document.getElementById("earth-portal-app"));

And I changed my aliases to this:
	resolve: {
		alias: {
			// allow using react components in preact
			"react": "preact-compat",
			"react-dom": "preact-compat"
		}
	},

But it keep giving this error:
Error: Required prop `history` was not specified in `Router`.

Uncaught TypeError: Cannot read property 'location' of undefined.

I don't think browserHistory is something you import from react-router. Usually it is done like this:
import { createBrowserHistory } from 'history';

<Router history={createBrowserHistory()}>

@developit react-router has included browserHistory since version 2.

What version are you using? It's not included in version 4.

in v2 and v3 it is included. I haven't checked v4 yet.

Sorry, I think I was unclear: do you know what version of React Router you have installed?  If you're importing things from react-router and they are null, that would seem to indicate you have a version you weren't expecting (like building as if you're getting version 3, but version 4 is installed).

@developit I am not able to use preact-compat/dist/preact-compat because I see Uncaught Error: Cannot find module "react-dom/server". server.js is just in the root directory

@seeden You don't have to do that since 3.14.0. Just alias preact-compat directly.

@timdorr it is not working with webpack 2 tree shaking (modules = false)

Well, that would be a separate issue then. This is a very old issue about react router. I would open up something new if that's not working.

Yup, new issue would be best.  The error is caused by Webpack/babel freezing the exports of ES Modules, which are enabled now that you're using modules:false.  React Hot Loader then tries to mutate these, which triggers an exception.
FWIW you won't see any file size difference for preact-compat with tree shaking enabled.

For me the preact-compat only works with react-router in version 3.0.3, if I install 3.0.4+ i get the runtime error: "Uncaught TypeError: _this.setState is not a function" on that line: https://github.com/ReactTraining/react-router/blob/v3/modules/Router.js#L105
But I think the react-router is not the cause of this error because with React i don't get that error
preact: 8.1.0
preact-compat: 3.14.3
react: 15.5.4
react-dom: 15.5.4
test repo: https://github.com/lucasljj/preact-compat-issue-repo

note: I tried with preact 7.2 and 7.1 and get the same error

React Router v3 now exports ES5 and your webpack setup is picking it up.  If you want to use that, you'll need to run babel-loader on the source. Otherwise you can alias 'react-router': 'react-router/lib'.

Hey @developit! This issue with _this.setState is not a function is happening with the precompiled version (I think @lucasljj may have just linked to the original source to help out).

If it helps at all, here is what the proto chain for _this currently consists of in that breakpoint (apologies for the incoming image spam)

Happy to dig in and grab more info if you have any hunches of what I should be looking for. Can also shoot you a link to the project if you need a repro case (not open-source quite yet, but can give you access).
I'd be happy to take a look if you're able to provide access.

Figured it out. It looks like the new release of react-router is using the new create-react-class package that was introduced so the React team could deprecate createClass from core. I temporarily fixed the issue in my project by adding create-react-class.js:
// create-react-class.js
const { createClass } = require('preact-compat');
module.exports = createClass;

and then setup an alias for create-react-class to point to my JS file. Since consumers of create-react-class expect a default export, I guess you can't just alias to preact-compat. Maybe just publishing a create-preact-class package and documenting in the README for preact-compat is enough?

Ahh that actually seems like something we're going to want to fix in preact-compat and document. Likely we'll need to provide an alias.

@developit Happy to PR if you let me know how you want to fix it. Maybe
alias: {
    'create-react-class': 'preact-compat/createClass'
}

That would be amazing! I'd actually suggest throwing it in lib since that's already set up:
// lib/create-react-class.js
module.exports = require('preact-compat').createClass;

alias: {
  'create-react-class': 'preact-compat/lib/create-react-class'
}


Menu.py mod Adds resume from .zip, send and receive zips

These patches add a menu.py that displays local checkpoints and downloaded checkpoints. This does not affect any local files and offers them as default runs.
3 locations are added

baselines/downloaded_checkpoints/
www - locations of app.py
www/uploads - location of metadata.json
app.py hosts index.html and allows uploads and downloads of checkpoints
Hosted checkpoints, downloaded checkpoints and native checkpoints are kept separately.
tailwind CDN can be uncommented to look better.
defaults to <IP_ADDRESS>:5000

The main issue I see now is training / saving times are so long you need to watch and wait for a .zip to come up before you cancel out and lose a ton of training.

Hey, looks cool! This has quite a bit of new code which I can't review/test very thoroughly right now, but it looks like it operates pretty independently from the existing code? I'd be happy to merge this if you're willing to take responsibility for maintaining and handling any issues related to this feature!

Hey that sounds great. Yes the current code does not affect any of your existing files but it does run and create files new folders.
Rather than immediately merge it to main would you consider doing a menu branch so it's easy to access but those people know to expect functionality change and we get some feedback. I would really like some "guidance" in context of your preferences for listing run_ file to be displayed as the 99, 98, 97 options to make that front and center?
A branch could give some time for those questions to settle and see it's received
In the meantime I'll confuse on optimization and documentation before a merge to main.

wha this looks great @techmore.
I didn't have the time to dedicate to this project last couple of days but i see @PWhiddy is thinking about merging it with the master.  That would be awesome.
I'll try to try it out myself in the meantime. Talk to you soon


Add Git Autocomplete to terminal

Pressing tab to autocomplete works for terminal commands like cd etc, but not for git commands (or git branches). This would be a great addition to VS code.

Hi,
This is an issue with how you've configured your shell -- not VSCode.
(my tab-completion works in VSCode)
It sounds like you're on a UNIX system -- git normally comes with a bash-completion file,
You need to tell your system to source it for it to work.
Please close this issue -- Thanks!

@stealthybox thanks for chiming, closing.


TCP ServiceEntry mesh-external addresses are disregarded, allowing traffic to any IP

This issue is related to https://github.com/istio/istio/issues/5498.

In order to demonstrate this bug, one can follow these steps:

Deploy a recent build from here:

https://gcsweb.istio.io/gcs/istio-prerelease/daily-build/release-0.8-20180530-09-15/

Apply a ServiceEntry to wikipedia.org

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: wikipedia-ext
spec:
  hosts:
  - wikipedia.org
  addresses:
  - <IP_ADDRESS>/27
  - <IP_ADDRESS>/27
  - <IP_ADDRESS>/27
  - <IP_ADDRESS>/27
  - <IP_ADDRESS>/27
  ports:
  - number: 443
    protocol: TCP
    name: tcp-port
  resolution: NONE

(this snippet is taken from Control Egress TCP Traffic task)

Deploy the sleep sample

istioctl kube-inject -f ./samples/sleep/sleep.yaml

Curl from inside the sleep app to an external service other than wikipedia.org (e.g. www.google.com).
If one receives status 200 it's problem since the access should be forbidden.

kubectl exec -it $(kubectl get pod -l app=sleep -o jsonpath={.items..metadata.name}) -c sleep -- curl -o /dev/null -s -w "%{http_code}\n"  https://www.google.com

Retrieve the adsz through pilot's debug service.

kubectl exec -it $(kubectl get pod -l app=sleep -o jsonpath={.items..metadata.name}) -c istio-proxy -- curl istio-pilot.istio-system:9093/debug/adsz

The relevant listener of sleep's proxy looks like:
{
  "name": "<IP_ADDRESS>_443",
  "address": {
    "socketAddress": {
      "address": "<IP_ADDRESS>",
      "portValue": 443
    }
  },
  "filterChains": [
    {
      "filters": [
        {
          "name": "envoy.tcp_proxy",
          "config": {
              "deprecated_v1": true,
              "value": {
                    "route_config": {
                          "routes": [
                                {
                                      "cluster": "outbound|443||wikipedia.org"
                                    }
                              ]
                        },
                    "stat_prefix": "outbound|tcp|443"
                  }
            }
        }
      ]
    }
  ],
  "deprecatedV1": {
    "bindToPort": false
  }
}

(The full response of adsz is attached here: adsz.txt)
Note tha lack of destination_ip_list field that should restrict the access.
The relevant cluster is defined as follows:
{
  "name": "outbound|443||wikipedia.org",
  "type": "ORIGINAL_DST",
  "connectTimeout": "1.000s",
  "lbPolicy": "ORIGINAL_DST_LB",
  "circuitBreakers": {
    "thresholds": [
      {

      }
    ]
  }
}

I do not think it was fixed.

Any ETA? If it is not available by end of this week, the fix will most likely not be included in 0.8.1.

@costinm ^

@PiotrSikora we could really use support for destination addresses in the filter chains as it will allow us to merge multiple filter chains for the same port for cases like above. This has evne come up in the mailing lists.

@PiotrSikora is expecting to merge this by tomorrow.

@rshriram is this meant for 1.0?

I can reproduce this even without specifying addresses at all.
Just having this ServiceEntry allows access to any domain via https:
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: wikipedia-ext
spec:
  hosts:
    - "wikipedia.org"
  ports:
    - number: 443
      protocol: TCP
      name: tcp-port

Yes, this is for 1.0. Waiting on https://github.com/envoyproxy/envoy/pull/3890 to land


Merges https://github.com/speedskater/node-webkit-builder

Merges zip extension for all platforms into current nw-builder release. (See: https://github.com/nwjs/nw-builder/pull/200)

Closing in favour of #193. Thanks though