Provide selectors and/or an API that makes testing fully mounted components easier.

We use React Material UI (great library, btw!) and write tests for each component that we construct. Recently we ran into an issue where it was challenging to test a component which wrapped the <Select /> component, due to difficulties in triggering behavior in the component provided by the Material UI package.
We'd like to propose the addition of stable selectors and/or some sort of API for assisting test authorship. I'll clarify / provide examples below, as to avoid making the introduction too large.

[x] This is not a v0.x issue.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior
When testing a component that uses a Material UI based component, I should be able to easily trigger interactivity in the Material UI components.
Current Behavior
To trigger behavior in Material UI components I have to decipher the appropriate DOM selector (which often appears unstable) and encode it in my test.
Examples
Let's say we've got a component that looks like so (greatly simplified for the purpose of example):
const FilterByDate = ({ dates }) => (
   <Select>
      dates.map(({ from, to }) => <MenuItem value={[ from, to ].join(':')}>{from}-{to}</MenuItem>
   </Select>
);

Let's say I want to write a test that uses mount (I realize shallow could be used to remedy the issue but in this specific case we'd like to use mount) and want to write a test to inspect the options that are rendered.  One might try:
it('shows options'), () = >  {
   const wrapper = mount(<FilterByDateList dates={mkMockDates()} />);
   wrapper.find(Select).simualte('click');
   expect(wrapper.find(MenuItem)).to.have.length(3);
});

Unfortunately this doesn't appear to work, instead we have to find the selector for the element that actually has an onClick listener. To do so we use debug() and ultimately end up with a test like:
it('shows options'), () = >  {
   const wrapper = mount(<FilterByDateList dates={mkMockDates()} />);
   wrapper.find('.MuiSelect-select-108.MuiSelect-selectMenu-109.MuiInput-input-120').simualte('click');
   expect(wrapper.find(MenuItem)).to.have.length(3);
});

While this works, the selector seems very brittle.  I'd like to instead see something like:
wrapper.find(Select.Selelectors.CLICKABLE_MENU_SELECTOR).simualte('click');

Ultimately just some sort of stable identifier, selector or API that components provide so that test authors can write tests against fully mounted components.  I can, of course, see why you may want to prevent this, as to prevent consumers of your library from binding to the internal details of your software.
Context
We're writing tests using enzyme for components that use those provided by React Material.
Would love to have a discussion about this.  Thanks again for writing such a great library!

Interesting issue, I have to admit that we are only using the native implementation of the Select because there is too many issues with the non-native version. This is one of them.

I had similar issues recently but in my opinion this is more of an issue with enzyme. enzyme doesn't actually simulate the event but just calls the on* prop of the wrapper with the object you passed to simulate (see simulate common-gotchas). That's in my opinion not useful at all since you have to mock the event objects yourself which is very brittle since they are implemented by browser vendors.
I think event handling is more of an issue for e2e tests with actual browsers.

@codeviking Why don't you trigger the change event directly on the select rather than trying to click on a specific item? You can have a look at how we are handling the issue:
https://github.com/mui-org/material-ui/blob/063dc82f07c19aaafeb3f0899946a68d5b4b4849/packages/material-ui/src/Select/Select.test.js#L68-L80

FWIW, this solution does no longer work with MUI v4 as the onClick event handler was replaced with onMouseDown. I was able to migrate using the following approach:
 wrapper.find('[role="button"]').simulate('mousedown', {button: 0});

I wonder if there is any plan from MUI team to make @testing-library/react the preferred way to test components over Enzyme. Currently, the latter is documented and not the former.

@gilbsgilbs We have started to migrate all our tests to @testing-library 6 months ago. If you want to help us with the outdated testing page of the documentation, continue on #17070 :).

Thanks for this pointer @oliviertassinari, that makes a lot of sense. I'd for sure like to help the project, but to be honest, I just discovered @testing-library today while digging into MUI's source code (because v4 upgrade broke some of my tests). I need to get my hands in it first.
Still trust me, it'd be an absolute delight for me to remove any dependency or reference to Enzyme given the terrible DX I had with all AirBnB's projects I've come to use so far :smile: .

I think that it would be fair to keep a mention to enzyme. It has been a great help so far, even if we have found testing library even better. If the timing is not right, don't worry, you can take your time, we will love to see your contribution :).

I think that it would be fair to keep a mention to enzyme. It has been a great help so far, even if we have found testing library even better. If the timing is not right, don't worry, you can take your time, we will love to see your contribution :).


fix(deps): update terraform terraform-ibm-modules/secrets-manager/ibm to v1.17.13

This PR contains the following updates:

Package
Type
Update
Change

terraform-ibm-modules/secrets-manager/ibm (source)
module
patch
1.17.12 -> 1.17.13

Release Notes

terraform-ibm-modules/terraform-ibm-secrets-manager (terraform-ibm-modules/secrets-manager/ibm)
v1.17.13
Compare Source
Bug Fixes

deps: update terraform ibm to latest for the deployable architecture solution (#194) (dd819a8)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/run pipeline

/run pipeline

/run pipeline

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

GitHub release
v8.11.10

Your semantic-release bot :package::rocket:


i want to know if i can get the real distance in every pixel in the depth image

Python Library versions
python：3.10.0
Camera Info
model:      4.0
firmware:   3.3
uid:        60003C
resolution: 160x60
port:       COM3

Describe the bug

Steps to Reproduce
What is expected?
i want to know if i can get the real distance in every pixel in the depth image
What is actually happening?
Any additional comments?

@praymich your image failed to upload so I don't have the full context.
But it is 100% possible to get the distance measurement of each pixel. Start by looking at the example python programs, specifically distance.py: https://github.com/OnionIoT/tau-lidar-camera/tree/master/examples
And then follow the API documentation to see how to extract depth data from the frames: https://taulidarcamera.readthedocs.io/
Let us know how it goes!

@praymich your image failed to upload so I don't have the full context.
But it is 100% possible to get the distance measurement of each pixel. Start by looking at the example python programs, specifically distance.py: https://github.com/OnionIoT/tau-lidar-camera/tree/master/examples
And then follow the API documentation to see how to extract depth data from the frames: https://taulidarcamera.readthedocs.io/
Let us know how it goes!

oh thank you，i get it . i also want know the meaning in the data_depth, the scale unit is meter? like examle,
<class 'array.array'> 1.0356920957565308 means distance 1.03m about?

@praymich yep, the scale is meters. You can confirm this visually using the camera - perhaps holding your hand about 50cm away and confirming the program outputs about 0.5m.
I'm going to go ahead and close this issue. If you have any further questions, feel free to open a new issue or join the conversation on the Onion Community Forum


Add error for non-Proc-typed block argument

Motivation

https://github.com/sorbet/sorbet/issues/6483
The Ruby VM does not allow this.
Test plan

See included automated tests.

We have a policy of testing changes to Sorbet against Stripe's codebase before
merging them. I've kicked off a test run for the current PR.  When the build
finishes, I'll share with you whether or how it failed. Thanks!
Stripe employees can see the build results here:
→ https://go/builds/bui_MdfW1NQlJLbJsV
→ https://go/builds/bui_MdfWyr8Bkurxqp

Current dependencies on/for this PR:

master

PR #6484

PR #6486   👈

PR #6487

This comment was auto-generated by Graphite.

We have a policy of testing changes to Sorbet against Stripe's codebase before
merging them. I've kicked off a test run for the current PR.  When the build
finishes, I'll share with you whether or how it failed. Thanks!
Stripe employees can see the build results here:
→ https://go/builds/bui_MdgHIDMkIMepod
→ https://go/builds/bui_MdgIJZO7YDXSbO


Name async client threads

This is primarily a debugging aid for threaded (beyond solicit)
applications.

This change is

Coverage increased (+0.005%) to 94.924% when pulling afa9947d5ad04f636a47f7f6a478badd38d7b910 on jwilm:named-async-client-threads into 47b4fe5bd25f1a38ad042fa8490c4d8a80d62e41 on mlalic:master.

Good stuff.


[AutoPR datafactory/resource-manager] Modify SecureString to SecretBase in SDK for ExecuteSSISPackage activity in pipeline

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/7466

(message created by the CI based on PR content)

This PR has been merged into https://github.com/Azure/azure-sdk-for-python/pull/7705


Let Observatory timeline's 'profiles' be segmented buttons instead of a dropdown

Small nit quality of life improvement.
Consider the following (flutter) developer's workflow:
1- put in test code and timeline traces
2- flutter run --profile
3- click the observatory link
4- open timeline
5- click profiles dropdown
6- click on dart developer (most useful for flutter developers)
7- do stuff
8- click refresh
The repeat from 1 maybe 20 times until whatever that needs figuring out is figured out. Any reduction of human steps (5-6) in the workflow could reduce friction.
Note: perhaps 2-6 is a flutter specific issue since profile mode apps can't be hot reloaded.

@B3rn475

@xster the VM has a parameter to enable the streams at startup --timeline_streams=Compiler,Dart,GC.
If we add this parameter in the flutter tools too and forward it to the VM we can remove completely steps 5 and 6 by just starting flutter using flutter run --profile --timeline_streams=Compiler,Dart,GC


Support for darwin arm64?

When building for darwin arm64 (M1/M2 macs), I get this error
# github.com/cloudfoundry/gosigar
../../../go/pkg/mod/github.com/cloudfoundry/gosigar@v1.3.4/concrete_sigar.go:20:12: cpuUsage.Get undefined (type Cpu has no field or method Get)
../../../go/pkg/mod/github.com/cloudfoundry/gosigar@v1.3.4/concrete_sigar.go:30:14: cpuUsage.Get undefined (type Cpu has no field or method Get)
../../../go/pkg/mod/github.com/cloudfoundry/gosigar@v1.3.4/concrete_sigar.go:49:11: l.Get undefined (type LoadAverage has no field or method Get)
../../../go/pkg/mod/github.com/cloudfoundry/gosigar@v1.3.4/concrete_sigar.go:55:11: m.Get undefined (type Mem has no field or method Get)
../../../go/pkg/mod/github.com/cloudfoundry/gosigar@v1.3.4/concrete_sigar.go:61:11: m.GetIgnoringCGroups undefined (type Mem has no field or method GetIgnoringCGroups)
../../../go/pkg/mod/github.com/cloudfoundry/gosigar@v1.3.4/concrete_sigar.go:67:11: s.Get undefined (type Swap has no field or method Get)
../../../go/pkg/mod/github.com/cloudfoundry/gosigar@v1.3.4/sigar_shared.go:12:21: procTime.Get undefined (type *ProcTime has no field or method Get)

Took a quick look at the source code, seems like we are only supporting amd64. Do we have any plans to support arm64? am I missing something?

Closing as a duplicate to #58
Please look at #58 for answers.


Pagekit update may overwrite files in storage

The Pagekit release packages include files which are linked from the demo content (2 pagekit logos + the hero image). These packages are also used when running Pagekit updates. If a user has a file with the same name in their storage folder, this file is overwritten.
Problem: Removing these files from the release package will mean that the demo content links to missing files.
Suggestion: Host the files externally (pagekit.com/demo-images/) and statically link from the demo content.

Files inside the storage folder are not updated automatically (https://github.com/pagekit/pagekit/blob/develop/app/installer/src/SelfUpdater.php#L20).


5.3

Applied changes that make the plugin work with UE version 5.3

Didn't notice the 5.3 branch already existed 🤷


[Bug] documentation / functionality to generate correct c++ code for generics when using serde-name

🐛 Bug
If you need to generate C++ code for a generic, documentation needs more information on how to obtain correct code, or serde-generate needs to generate valid code for C++ generics when using recommended procedure
To reproduce
Extended from the example in serde-name, recommended in serde-reflection docs.
use std::path::PathBuf;

use serde::{Deserialize, Serialize};
use serde_generate::SourceInstaller;
use serde_name::{DeserializeNameAdapter, SerializeNameAdapter};
use serde_reflection::{FormatHolder, Samples, Tracer, TracerConfig};

#[derive(Serialize, Deserialize)]
#[serde(remote = "Foo")] // Generates Foo::(de)serialize instead of implementing Serde traits.
struct Foo<T> {
    data: T,
}

impl<'de, T> Deserialize<'de> for Foo<T>
where
    T: Deserialize<'de>,
{
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
    where
        D: serde::de::Deserializer<'de>,
    {
        Foo::deserialize(DeserializeNameAdapter::new(
            deserializer,
            std::any::type_name::<Self>(),
        ))
    }
}

impl<T> Serialize for Foo<T>
where
    T: Serialize,
{
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: serde::ser::Serializer,
    {
        Foo::serialize(
            self,
            SerializeNameAdapter::new(serializer, std::any::type_name::<Self>()),
        )
    }
}

fn main() {
    // Testing the Deserialize implementation
    assert!(serde_name::trace_name::<Foo<u64>>()
        .unwrap()
        .ends_with("Foo<u64>"));

    // Testing the Serialize implementation
    use serde_reflection::*;
    let mut tracer = Tracer::new(TracerConfig::default());
    let mut samples = Samples::new();
    let (mut ident, _) = tracer
        .trace_value(&mut samples, &Foo { data: 1u64 })
        .unwrap();
    ident.normalize().unwrap();
    assert!(matches!(ident, Format::TypeName(s) if s.ends_with("Foo<u64>")));
    let registry = tracer.registry().unwrap();
    let config = serde_generate::CodeGeneratorConfig::new("generic_to_cpp".to_string())
        .with_encodings(vec![serde_generate::Encoding::Bincode]);
    let installer = serde_generate::cpp::Installer::new(PathBuf::from("a_new_lib"));
    installer.install_module(&config, &registry).unwrap();
    installer.install_bincode_runtime().unwrap();
    installer.install_serde_runtime().unwrap();
}

Generated C++ code
#pragma once

#include "serde.hpp"
#include "bincode.hpp"

namespace generic_to_cpp {

    struct generic_to_cpp::Foo<u64> {
        uint64_t data;
// and more like this

😢
Expected C++ code

ideally, something like

#include "serde.hpp"
#include "bincode.hpp"

namespace generic_to_cpp {

    template <typename T>
    struct Foo{
        T data;
// etc.
}

Otherwise, an example that shows how to build on the example in serde-name to obtain valid C++ code for the instantiated type.

System information
Please complete the following information:

Serde Reflection version 0.3.6
Rust version 1.74.0

Additional context
I've also tried this at least with trace_type.

Hi @johnperry-math, Thanks for the report. You were almost there! What's missing is applying some form of name mangling on top of std::any::type_name::<Self>() in both places. Perhaps using an existing crate like mangling would do it?
Explanation: The code of serde-generate currently assumes that the names in the registry look like typical Rust identifiers (without special characters). I think that's fair because support for generics is highly experimental. If there is enough interest, we could enforce this invariant and provide examples of work-around.

I'm sorry it's taken me a while to reply. I think I found a workaround at the time, and I didn't worry about it when you replied, and then it fell off my radar, and then when I did remember, I didn't quite follow what you're saying, and... well, here we are.
I took a look at the mangling crate, and I'm not sure how that's supposed to help. Am I supposed to:

...use a serde rename to indicate:

the desired C++ type? (template <typename T> Foo<T>) or
the compiler-mangled type? (not sure and :fearful: to find out)

...write a custom macro to tell serde-reflection what to do?

Sorry if the reply is completely off-base.

Ok so we can see that your generate C++ code contains "Foo" in a position of an identifier so that won't work.
This string is the result of calling std::any::type_name::() in the rust code.
Instead you need to define a suitable function "mangling" and use mangling(std::any::type_name::())
You can use a rust crate called mangling (i think) or you can define the function yourself, for instance replacing < and > by _


Properties with getter and setter methods aren't visible via Reflection

I'm using a idehelper generator based on reflection to keep in sync my docs while developing my extension. I noticed that those kind of properties aren't visible by reflection, i'm missing something?

Same for Magic Interfaces like ArrayAccess and Countable, are not accessible via reflection.

Are you talking about properties using __get and __set? Those aren't visible using reflection and this is not something we can fix unfortunately. It sadly doesn't work when you implement this completely in userspace either.

Can the Php7 version solve this?
I'm talking about properties registered with :
...
Php::Class o("ZSocket");
o.property("ipv4only", &ZSocket::get_ipv4only, &ZSocket::set_ipv4only);
o.property("type", &ZSocket::get_socket_type);
Those properties aren't available with reflection using the legacy (php 5.4+) version

This works identical in the PHP 7 version, meaning there is no reflection for these properties. I am not sure whether it is possible to make this. Perhaps it would be possible to register some form of iterator for our custom properties.
If you have the time to make this and create a pull-request I would be happy to merge it.


Use custom user agent

Prometheus currently uses the default golang HTTP user agent Go-http-client/1.1. In order to unambiguously identify scrape requests, it'd be helpful to see a custom Prometheus user agent.

How does that relate to the Accept header that it sends?

It wouldn't. This helps users debugging issues by making it easier to identify requests from Prometheus servers.

:+1:

PR sets a custom user agent, though i'm not sure about the name. Default was Go-http-client/1.1 proposed is Prometheus-scraper/1.0. Is that any good?

I had something like "Prometheus v1.5.2" in mind. I'm open to more specific
agent identifiers like including "-scraper" of people think that removes
confusion.
On Fri, Feb 24, 2017, 04:20 Erdem Agaoglu<EMAIL_ADDRESS>wrote:

PR sets a custom user agent, though i'm not sure about the name. Default
was Go-http-client/1.1 proposed is Prometheus-scraper/1.0. Is that any
good?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/prometheus/prometheus/issues/2440#issuecomment-282231800,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAANaH7TPPU54_pxYMLLJ_Ks9oxIX-3Gks5rfpLZgaJpZM4MGNTp
.

Updated PR to make use of build version.


Apply asio stackless coroutine.

Applied boost asio's stackless coroutine to process_mqttpacket functions.
I expected faster compile time but no significant difference observed.
maset 0a0c6a9bd4ec0d324a0c1314e23e921f48743f17
        Command being timed: "make no_tls_both"
        User time (seconds): 37.66
        System time (seconds): 1.81
        Percent of CPU this job got: 99%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0:39.54
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 2980752
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 0
        Minor (reclaiming a frame) page faults: 1013237
        Voluntary context switches: 62
        Involuntary context switches: 676
        Swaps: 0
        File system inputs: 0
        File system outputs: 141152
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0

This PR
        Command being timed: "make no_tls_both"
        User time (seconds): 37.52
        System time (seconds): 1.71
        Percent of CPU this job got: 99%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0:39.30
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 3005936
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 0
        Minor (reclaiming a frame) page faults: 1030592
        Voluntary context switches: 62
        Involuntary context switches: 670
        Swaps: 0
        File system inputs: 0
        File system outputs: 155432
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0

Time and memory consumption are not changed.
Object size after stripped becomes smaller.
-rwxr-xr-x 1 kondo   892272  2月 23 20:28 coro*
-rwxr-xr-x 1 kondo   970096  2月 23 20:28 master*

I guess that it is caused by reducing template instantiation by each phase.
But it doesn't make effects to compile times.
I don't decide yet the PR should be merged.
The parsing code looks more straight forward. It is good.
I also checked run time performance by continuous publish. There are no big difference. It is expected result.

A few thoughts.

if you move the parsing functions out of the endpoint class entirely, you will probably get smaller code because of fewer nested templates.

the boot asio macro based co routines are more complex to write, but may have smaller code size, as they are only a swtch-case and integer.

Good luck!

Thank you for the comment.

A few thoughts.

if you move the parsing functions out of the endpoint class entirely, you will probably get smaller code because of fewer nested templates.

Yes but there are only four variation of the template instantiation. Those are mqtt, mqtts, ws, and wss.
I tested them locally but no significant compile times difference are observed.

the boot asio macro based co routines are more complex to write, but may have smaller code size, as they are only a swtch-case and integer.

The keyword yield introduced by yield.hpp is the same as the macro BOOST_ASIO_CORO_YIELD.
https://www.boost.org/doc/libs/1_75_0/doc/html/boost_asio/reference/coroutine.html#boost_asio.reference.coroutine.alternate_macro_names
https://github.com/boostorg/asio/blob/boost-1.75.0/include/boost/asio/yield.hpp
https://github.com/boostorg/asio/blob/boost-1.75.0/include/boost/asio/unyield.hpp
So, the PR has already used macro based (simple switch case) stackless coroutine.
By the way, I ran the CI of the PR several times, then the total time of each task became shorter.
I guess that total ( I mean something like integration) memory consumption might reduced and it helps parallel build performance, even if the peak memory consumption is similar.
I will merge the PR soon.

We've tested the performance of coroutine version using our proprietary broker.
No significant runtime performance difference from non coroutine version is observed.
So I merge the PR.


[#1762] Fixed ngrok path focus issue in app settings editor.

#1762
===
Opening up the app settings page will now set focus to the ngrok path input field.

Coverage increased (+0.2%) to 65.781% when pulling 5ed44e538608e56c71c4ef1dc5f3ff07dd61a53f on toanzian/acc-#1762 into 9bcee003ed639c525ed7f4c4bf51bce8e7a61365 on master.


Seems to be broken with latest sphinx 1.7.6

Thank you for making this theme available!
With sphinx 1.7.6 at least bullet lists and therefore table of contents and navigation seem to be broken.

Thank you for your feedback.
I uploaded fixed version (0.5.1) to PyPI.
Sorry, please build your document again with new version.

@myyasuda Thank you very much for the quick fix! Now the navbar gets correctly initialised.


Add CWMS Data API Timeseries Integration

Description
This PR adds the ability to link and display timeseries data from the CWMS Data API in MIDAS.
The OpenAPI documentation for the public API used for this integration is available at https://cwms-data.usace.army.mil/cwms-data/swagger-ui.html

FYI, we've been making improvements that we haven't been able to push to that URL yet, you may want to review https://cwms-data-test.cwbi.us/cwms-data.
Though you should be fine for the basics, we did recently change what the default format is when using */* or just application/json/application/xml to make things easier on downstream users and us.

Thanks @MikeNeilson, I appreciate you bringing this up. I'll take a look and keep this in mind as we continue development on this feature.


Feature: kill notification with given tag

The title. This would be great for scripting usage. I am currently using xnotify to send a "low battery" notification and with this feature I would be able to automatically remove the notification when pluging the charger. Thanks 4 the repo.

I found a way more or less. I create a notification with the TAG I want to close and SEC:1. This solution closes the notification with one second of delay, pretty usable.

One feature i had in mind to implement in XNotify is to add commands.
For example, if a notification line begins with, say, an exclamation point, it is interpreted as a command instructing XNotify what to do with the currently open notifications (such as close notifications with a given tag).
That feature would then replace the signal interface, which is clumsy and limited to two or three static operations without any argument or object to act upon.
That should be a major change on the interface. And the command syntax particularly should be simple but also extensible, with a handful set of commands.
I am going to think on possible commands (such as close, which can be parameterized by TAG or position of the notification on the queue) and on a syntax for them. Feel free to comment ideas on that in this issue.


stages/org.osbuild.mkfs.ext4: add ext4 options

Add optional flags to the org.osbuild.mkfs.ext4 stage enabling/disabling the metadata_csum_seed and orphan_file features.

One suggestion but otherwise this LGTM.. You can now rebase this on top of latest main and drop the first two commits.

opened upstream at https://github.com/osbuild/osbuild/pull/1538


Create example of how to create a gltf file from scratch

I'm creating my own mesh and I would like to save the result into a gltf file. There are no examples or documentation about how to do this.

Yes this would be useful since the test we have write now doesn't create one from scratch.
One strategy is to declare a lot of things on the stack, e.g.:
    cgltf_image images[3] = {
        {(char*)"tile color", (char*)"tile_color.png"},
        {(char*)"tile orm", (char*)"tile_orm.png"},
        {(char*)"tile normal", (char*)"tile_normal.png"},
    };
    cgltf_image& color_image = images[0];
    cgltf_image& orm_image = images[1];
    cgltf_image& normal_image = images[2];

    cgltf_texture textures[3] = {
        {(char*)"tile color", &color_image},
        {(char*)"tile orm", &orm_image},
        {(char*)"tile normal", &normal_image},
    };
    cgltf_texture& color_texture = textures[0];
    cgltf_texture& orm_texture = textures[1];
    cgltf_texture& normal_texture = textures[2];

    cgltf_material materials[4] = {};
    cgltf_material& tile_bottom_material = materials[0];
    cgltf_material& tile_top_material = materials[1];
    cgltf_material& tile_glow_material = materials[2];
    cgltf_material& player_material = materials[3];

    tile_top_material.name = (char*)"tile top";
    tile_top_material.alpha_cutoff = 0.5f;
    tile_top_material.has_pbr_metallic_roughness = true;
    tile_top_material.pbr_metallic_roughness = {
        .base_color_texture = {&color_texture, 0, 1.0f},
        .metallic_roughness_texture = {&orm_texture, 0, 1.0f},
        .base_color_factor = {1, 1, 1, 1},
        .metallic_factor = 1,
        .roughness_factor = 1,
    };
    tile_top_material.occlusion_texture = {&orm_texture, 0, 1.0f};
    tile_top_material.normal_texture = {&normal_texture, 0, 1.0f};
    etc...

Here's a more complete example of writing a gltf from scratch:
https://github.com/prideout/par/blob/master/test/test_octasphere.cpp
We could add a pointer to this from the README, or we could copy it into a unit test.  I'll defer to @jkuhlmann on how best to proceed.


Page metadata

Is your feature request related to a problem? Please describe.
Components that are used in layouts currently don't have access to which route they're being used on. The $page store tells us the underlying path and the params that have been extracted from that path, but doesn't tell us anything about which route those params have meaning in.
When making a navbar in Sapper, I generally have to re-analyze $page.path with regexes or string comparisons or whatever in order to tell which page I'm on and what state the navbar should be in.
Describe the solution you'd like
Since the framework has already decided which route this request maps to, it can expose this information in the $page store. The most immediately obvious way to me for this to be handled would be for the relative path to the .svelte file that is the page route be included as a string in (say) $page.route.
Describe alternatives you've considered
If we didn't want the inelegance or fragility of exposing file paths as strings, would be to let each page component expose - in some way - a user-specified key that Kit doesn't do anything with apart from exposing in the $page store. This could be a separate module context export, or it could be another value in the load response, or maybe something else. This was also suggested in https://github.com/sveltejs/kit/issues/1459
How important is this feature to you?
It'd be nice to have. That my code needs to re-figure out something about what page I'm on that the framework has already determined and then kept for itself is irritating.
Additional context
None that I can think of right now.

This would be more of an issue with route fallthrough (#548) because there's no longer necessarily a quick way to tell routes apart looking just at their paths.

I think this is important, because it looks like sveltekit doesn't export segment like sapper did. (At least segment is always undefined when I export it from $layout). Currently I'm using $page.path.substring(1) for all my route needs, but it would be great if there was an actual route param, as I'm not sure the substring works with all edge cases.

@alteredorange This code helped me implement a simple selected state in my SvelteKit demo app. Thank you.

Using $page.path works, but I want to e.g. see $error there when I'm on an error page. Currently, there is no way to do that afaik? Next.js has router.route for example

Exposing error information has its own issue, #598.

Apologies if I'm missing something but from my understanding:
The ability to get the relative path to the .svelte file is crucial and the only way to properly generate hrefs  without relying on any kind of hardcoded values (like current folder depth or name). See this common use case (caps for clarity):
│── index.svelte
│── layout.svelte
├── CATS
│   ├── layout.svelte
│   └── SIAMESE
│       ├── layout.svelte
│       ├── GENERAL
│       │   └── index.svelte
│       ├── DETAILS
│       │   └── index.svelte
│       └── PICTURES
│           └── index.svelte
│   └── PERSIAN
│       ├── layout.svelte
│       ├── PRESENTATION
│       │   └── index.svelte
│       ├── DETAILS
│       │   └── index.svelte
│       └── PICTURES
│           └── index.svelte
├── DOGS
│   └── ...
├── TURTLES
│   └── ...

Say each layout needs to display links related to its current level, ending up with 3 levels of menus:
CATS | DOGS | TURTLES
   SIAMESE | PERSIAN
      GENERAL | DETAILS | PICTURES

$page.path having the same value in each of the layout it makes it a bit cumbersome to generate link items or hrefs. Here is what you probably end up doing for each level of layout :
// specific to this route depth level, risky
const depth = 2

// awkward
const baseUrl = $page.path.split('/').slice(0, depth+1).join('/') + '/'

$: active = $page.path.split('/')[depth + 1]

const items = ['PRESENTATION','DETAILS','PICTURES' ].map(item => ({
name: item,
href: baseUrl + item,
}))

Which also inevitably leads to the creation of a helper store. With $page.relative this could be simplified to:
$: active = $page.relative.split('/').pop()

const items = ['PRESENTATION','DETAILS','PICTURES' ].map(item => ({
name: item,
href: $page.relative + '/' + item,
}))

In addition a $page.relativeGlob would be very helpful to allow completely removing hardcodes from layouts (although I don't have to much hope for this one):
$: active = $page.relative.split('/').pop()

const items =  $page.relativeGlob.map(item => ({
name: item,
href: $page.relative + '/' + item,
}))

@gterras could you do something like that with Vite's import.meta.glob?

@gterras could you do something like that with Vite's import.meta.glob?
https://github.com/babichjacob/university-website/blob/84b5e7ff44550910550a3c809ccb9f1402df301b/README.md

Automatically putting the file path in the $page store would increase the bundle size.
#1459 describes this issue in a different way, which is wanting a way to set a variable in the leaf, which is made available to the layout (e.g. menuCategory = 'animals')

Having a page component update some state that's read by a component in a higher-level layout component sounds like it would likely not work well with SSR.
I take your point about exposing file paths in the $page store (which always felt like an ugly API to me anyway). Having some freeform metadata that's exposed either as a module export from the page component or as something returned by the load function and which is then exposed on the $page store seems like a tidy way to do this and like it would have only a very small effect on people who aren't using the feature.

Having a page component update some state that's read by a component in a higher-level layout component sounds like it would likely not work well with SSR.

Despite doing a lot on SvelteKit, I've still done little with Svelte itself. Do store updates not work in SSR? The Svelte docs don't mention any such restriction, so it's not clear to me what the issue might be

I haven't tried this particular case, but in general, SSR'd results that depend on state that's updating during the rendering of the component are a best-effort, no-promises type of thing. We're building the HTML string as we go in SSR - we don't instantiate a whole DOM tree and then wait for all of the state to settle and then serialize it (which would be a lot more expensive).
Store updates within a single component probably mostly work in SSR (as long as the updates happen synchronously), but it's using them to communicate between components that's making me doubtful.
Even if this worked in Svelte, where would the store live? It couldn't be its own external file, because then that would be shared by all visitors to the site on the server side.

Even if this worked in Svelte, where would the store live?

Per-request state seems like a problem we should have an answer to. Right now, you could put it on locals on the server-side for instance. Then you could transmit it to the client in session and instantiate a store with it. That's a little complicated and messy, but it's a problem I've seen people face quite a few times in other contexts
That being said, your suggestion on the API sounds reasonable. How about something like this:
I don't know a good name for this but something like this only on the page (i.e. leaf node. not the layouts):
export const pageData = ({ request }) => {
    ...
}

And then whatever it returned would be made available in load as a parameter:
export const load = ({ pageData}) => {
    ....
}

Would it be possible to implement an API similar to https://github.com/didier/sveo? I'd love to help where possible.
<script module="context">
  // /about.svelte
  export const metadata = {
    title: 'Hello world',
    description: 'Have a wonderful day.'
  }
</script>

<script context="module">
  // /__layout.svelte
  export const load = async ({ metadata }) => {
    // The metadata from the page component
    const { title, description } = metadata

    return {
      props: {
        title,
        description
      }
    }
  }
</script>

This would make SEO stuff a lot easier, since we can define titles and other data on a page level and have all the meta tags handled by the layout component.

I believe adding this functionality would also make it easier to make sveltekit websites work well with link previews, for similar reasons as SEO. I'm not completely familiar with how different websites/messaging services generate link previews, but I've run into a few issues in the past with them (page titles including undefined, for example).

Rich has a suggestion today: allow specifying stuff in leaf nodes just like you can do with layouts and then make it available in the page store.


PHOENIX-4010 Hash Join cache may not be send to all regionservers whe…

…n we have stale HBase meta cache

@JamesRTaylor , can you please review, I have removed the dependency on PHOENIX-3163.

Ping @JamesRTaylor

Thanks for the ping, @ankitsinghal. The code looks good, but if we can fix up the tests with a couple of tweaks, we'll be good to go after rebasing.

Thanks @JamesRTaylor , have taken care the review comments in latest commit. Let me know if it is fine now

+1

Already merged.


Html rendering

Architecture changed.

Base class Generator added.
Module Auxiliaries added which contains file handling operations. Could be merged into base class Generator.
HTMLGenerator added.
Plist and HTML Writers added which handles output to appropriate file format.

@segiddins updated.
nokogiri dependency removed.

Any chance of merging this branch ?

I don't think it's done, see: https://github.com/CocoaPods/cocoapods-acknowledgements/pull/47/files#diff-86a5d812fd9ecac367ea96aaa1964994R4

@orta
It is an obsoleted class. ( or duplicate ). I use PlistGenerator instead. They are identical in terms of Model.
You can check invocations of HTMLGenerator. Maybe anybody can figure out what we can do with it in future. For now it is empty and it copies whole body of PlistGenerator. ( yeah, copy-paste is evil ).

Weird, build error.
Bundler could not find compatible versions for gem "bundler":
  In Gemfile:
    bundler (~> 1.3)
  Current Bundler version:
    bundler (2.0.1)

@segiddins Could you post a review?


[Improvement] Distinguish Sparse/Dense operator for temp resource request

FResourceRequest is added for many MKL/Sparse ops. While many normal dense operator don't need it, the resource is requested and causes reduced parallelism due to the limit of max number of temp requests per GPU MXNET_EXEC_NUM_TEMP

Some dense operators also need temp space, additional information (whether this operator needs temp space in FCompute) is required, but I think we need discuss about the form of this kind of information (register another attribute in nnvm graph or in other ways). I can work on this issue if the form of additional information is decided.

After some discussion with @piiswrong and @zheng-da I think the following additional interface will be sufficient to distinguish most of the ops:
using FResourceRequestEx = std::function<
  std::vector<ResourceRequest> (const NodeAttrs& n, const DispatchMode dispatch_mode, const int dev_mask)>;

We need to replace FResourceRequest with FResourceRequestEx for the ops we want to change.

Sounds good. I will have a try. Thanks.


Uncaught Error: Could not append entry: although write access is granted

I give write permissions to all identities when creating the database:
 const identities = await Identities({ path: `./orbitdb/test/identities` })
  const id = "test"
  const identity = identities.createIdentity({ id })
  orbitdb = await createOrbitDB({ipfs: ipfs, identities, id: `test`, directory: `./orbitdb/test`})
 db = await orbitdb.open("test",
      {type: 'documents',
        AccessController: OrbitDBAccessController({ write: [orbitdb.identity.id, '*']})})

In the other peer I connect with:
 db = await orbitdb.open(dbAddress,
      {type: 'documents'})

Still when the other peer connects the append operation fails with:

Uncaught Error: Could not append entry

In identities.js I can see that the identity is not found, but since I have specified:
const getIdentity = async (hash) => {
    const bytes = await storage.get(hash)

What is wrong with the write permission how I use it?

Out of interest, what happens if you change the above write to:
db = await orbitdb.open("test",
      {type: 'documents',
        AccessController: OrbitDBAccessController({ write: ['*']})})

Does not make a difference. In canAppend my other peer is always checking await identities.getIdentity(entry.identity) and does not find the identity. I assume this identity is only in the creating nodes local identities DB and the syncing node does not have it.
  const canAppend = async (entry) => {
    const writerIdentity = await identities.getIdentity(entry.identity)
    if (!writerIdentity) {
      return false
    }

    const { id } = writerIdentity
    // If the ACL contains the writer's public key or it contains '*'
    const hasWriteAccess = await hasCapability('write', id) || await hasCapability('admin', id)
    if (hasWriteAccess) {
      return identities.verifyIdentity(writerIdentity)
    }

    return false
  }

Pass ipfs to your identities function so that peer1 can get peer2's identity hash from its identity store.
 const identities = await Identities({ ipfs, path: `./orbitdb/test/identities` })

When canAppend checks the entry's identity, if it isn't available locally, it will try and retrieve it from the other peer. using IPFS:
const canAppend = async (entry) => {
  const writerIdentity = await identities.getIdentity(entry.identity) // <-- getIdentity will query IPFS for the other peer's identity.

Thanks. I will try this. Is the documentation in sync with this recommendation? There the code snippet is:
const identities = await Identities()
const anotherIdentity = identities.createIdentity('userB')

const db = orbitdb.open('my-db', { AccessController: OrbitDBAccessController({ write: [orbitdb.identity.id, anotherIdentity.id]) })

In my case I also pass a path, maybe this is the difference.

The fix works. Great. So, is a fix to the ACCESS_CONTROLLER doc needed? I can create a pull request or you can fix it, whatever you prefer.

PRs are always welcome. Feel free to capture your thoughts in a PR and I will take a look.

PRs are always welcome. Feel free to capture your thoughts in a PR and I will take a look.

Done so. Not sure if the ipfs argument could also be necessary for the IPFSAccessController.


Invalid Links - missing /ef/ prefix in produced href

The following links are invalid:

porting EDMX (missing /ef/ prefix)
Review behavior changes between EF6 and EF Core (missing /ef/ prefix)
here (missing /ef/ prefix)
port from EDMX (missing /ef/ prefix)
Code as source of truth
Database as source of truth
Hybrid model
detailed differences between EF6 and EF Core

The sources link path do have the /ef/ prefix, like other links that work on this page. So I do not see what is wrong.
I also tried running it locally with DocFX, but could not really work with it or find out more. (missing CSS, wrong href paths)

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

ID: 9cbb86f3-378b-e83d-56c3-c0532192bd13
Version Independent ID: c96b2fcb-8af0-f05b-e188-a6c59dd9f428
Content: Port from EF6 to EF Core - EF
Content Source: entity-framework/efcore-and-ef6/porting/index.md
Product: entity-framework
Technology: entity-framework-core
GitHub Login: @JeremyLikness
Microsoft Alias: avickers

Subpages under this node have the same problem.

Fixed by #3672.


Table Filter improvements

use virtualized list to implement the filter options list, previously we were simply creating N dom elements directly, not really have performance issue but also not accessible
accessibility improvements including the keyboard navigation on the list and the total vs selected numbers screen reader improvements.
changed the way filters work, now filters are only showing the values that is currently being displayed
some margin/padding tweaks to make the right and left sides look the same

It might be easier to just show you what was changed and how it looks in action, I will ping you guys
tomorrow to do a demo.
before:

after:

The search box area and accessibility improvements are inspired by the vscode quick pick dialog:

Pull Request Test Coverage Report for Build 773277701

1 of 139 (0.72%)  changed or added relevant lines in 2 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.01%) to 43.577%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/sql/base/browser/ui/table/tableDataView.ts
0
1
0.0%

src/sql/base/browser/ui/table/plugins/headerFilter.plugin.ts
1
138
0.72%

Files with Coverage Reduction
New Missed Lines
%

src/sql/base/browser/ui/table/plugins/headerFilter.plugin.ts
2
0.82%

Totals

Change from base Build 771881513:
-0.01%

Covered Lines:
26258

Relevant Lines:
55041

💛  - Coveralls


Check if ped is in vehicle to prevent broken animations

Check if ped is in vehicle to prevent broken animations (Mainly noticeable on vehicles like cabrios and (motor)cycles)

Why not move the vehicle check up into the IF so it doesn't even try loading the animdict?

Why not move the vehicle check up into the IF so it doesn't even try loading the animdict?

You're right, if changed it

sanchez (motorcycle): https://i.imgur.com/uMkWzD1.png
9F Cabrio: https://i.imgur.com/39s8IEc.png
I personally don't see anything wrong with the animation for the vehicles/types of vehicles you mentioned?

sanchez (motorcycle): https://i.imgur.com/uMkWzD1.png
9F Cabrio: https://i.imgur.com/39s8IEc.png
I personally don't see anything wrong with the animation for the vehicles/types of vehicles you mentioned?

Yes now that I think of it, it is when you are using the shoulder-radio animation. However because I never really used the plugin myself other than fixing this for a friend I'm not sure if he changed the animation himself or that it is a parameter within your plugin to use it. If it is the last a check could be added so it only stops it when using that animation.
It is this animation, but when you use it in a vehicle the arm does the weird twisty thing.

if this animation isn't something provided by the plugin itself feel free to ignore it. I just didn't realize then he changed the animation himself to that instead of the default one.

That animation is in the script but is behind a config option, i'll take a look at it


Issue installing Saleor in Windows 10

(Please take the time and describe the problem you're having before you propose a solution.)
What I'm trying to achieve
I'm trying to install Saleor locally on my PC to develop. It is a Windows 10.
Steps to reproduce the problem

python -m pip install -r requirements.txt

What I expected to happen
...
What happened instead/how it failed
https://i.imgur.com/pIw2J0p.png
If i comment in requirements
#maxminddb-geolite2==2017.803
#maxminddb==1.3.0
i have next error:
https://i.imgur.com/QxfHtOg.png
(Please include a stack trace if this problem results in a crash.)
(venv) E:\dev\saleor>python -m pip freeze
amqp==2.2.2
asn1crypto==0.24.0
attrs==17.4.0
Babel==2.5.3
billiard==<IP_ADDRESS>
bleach==2.1.3
boto3==1.5.31
botocore==1.8.45
braintree==3.39.1
cairocffi==0.8.0
CairoSVG==2.1.3
celery==4.1.0
certifi==2018.1.18
cffi==1.11.4
chardet==3.0.4
colorama==0.3.9
cryptography==2.1.4
cssselect2==0.2.1
defusedxml==0.5.0
dj-database-url==0.4.2
dj-email-url==0.0.10
Django==1.11.12
django-babel==0.6.2
django-bootstrap4==0.0.5
django-cache-url==2.0.0
django-celery-results==1.0.1
django-countries==5.2
django-debug-toolbar==1.9.1
django-elasticsearch-dsl==0.4.4
django-environ==0.4.4
django-filter==1.1.0
django-fsm==2.6.0
django-graphql-jwt==0.1.9
django-impersonate==1.3
django-js-asset==1.0.0
django-mptt==0.9.0
django-payments==0.12.1
django-phonenumber-field==2.0.0
django-prices==1.0.0
django-prices-openexchangerates==1.0.0
django-redis==4.8.0
django-render-block==0.5
django-storages==1.6.5
django-templated-email==2.2.0
django-versatileimagefield==1.9
django-webpack-loader==0.5.0
docutils==0.14
elasticsearch==5.5.2
elasticsearch-dsl==5.4.0
Faker==0.8.11
freezegun==0.3.9
google-i18n-address==2.3.0
google-measurement-protocol==1.0.0
graphene==2.0.1
graphene-django==2.0.0
graphql-core==2.0
graphql-relay==0.4.5
html5lib==1.0.1
idna==2.6
iso8601==0.1.12
jmespath==0.9.3
jsonfield==2.0.2
kombu==4.1.0
Markdown==2.6.11
maxminddb==1.3.0
multidict==3.3.2
oauthlib==2.0.6
pdfrw==0.4
phonenumberslite==8.9.1
Pillow==5.0.0
pluggy==0.6.0
prices==1.0.0
promise==2.1
psycopg2-binary==2.7.4
purl==1.3.1
py==1.5.2
pycparser==2.18
PyJWT==1.5.3
Pyphen==0.9.4
pytest==3.4.0
pytest-django==3.1.2
pytest-mock==1.7.0
python-dateutil==2.6.1
pytz==2018.3
PyYAML==3.12
redis==2.10.6
requests==2.18.4
Rx==1.6.0
s3transfer==0.1.12
singledispatch==<IP_ADDRESS>
six==1.11.0
sqlparse==0.2.4
stripe==1.77.1
suds-jurko==0.6
text-unidecode==1.1
tinycss2==0.6.1
typing==3.6.2
urllib3==1.22
vine==1.1.4
webencodings==0.5.1
wrapt==1.10.11
xmltodict==0.11.0
yarl==0.17.0

Just double checking, which Python version are you using?

))) funny
update pip to 10.0.0b2
install Python 3.7.0b3
not install https://i.imgur.com/uhn4NtE.png
`(saleor) E:\dev\saleor>python -m pip install -r requirements.txt
Ignoring uwsgi: markers 'platform_system != "Windows"' don't match your environment
Requirement already satisfied: amqp==2.2.2 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 7))
Requirement already satisfied: asn1crypto==0.24.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 8))
Requirement already satisfied: attrs==17.4.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 9))
Requirement already satisfied: babel==2.5.3 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 10))
Requirement already satisfied: billiard==<IP_ADDRESS> in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 11))
Requirement already satisfied: bleach==2.1.3 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 12))
Requirement already satisfied: boto3==1.5.31 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 13))
Requirement already satisfied: botocore==1.8.45 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 14))
Requirement already satisfied: braintree==3.39.1 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 15))
Requirement already satisfied: cairocffi==0.8.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 16))
Requirement already satisfied: cairosvg==2.1.3 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 17))
Requirement already satisfied: celery[redis]==4.1.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 18))
Requirement already satisfied: certifi==2018.1.18 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 19))
Requirement already satisfied: cffi==1.11.4 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 20))
Requirement already satisfied: chardet==3.0.4 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 21))
Collecting cryptography==2.1.4 (from -r requirements.txt (line 22))
Using cached cryptography-2.1.4.tar.gz
Requirement already satisfied: cssselect2==0.2.1 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 23))
Requirement already satisfied: defusedxml==0.5.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 24))
Requirement already satisfied: dj-database-url==0.4.2 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 25))
Requirement already satisfied: dj-email-url==0.0.10 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 26))
Requirement already satisfied: django-babel==0.6.2 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 27))
Requirement already satisfied: django-bootstrap4==0.0.5 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 28))
Requirement already satisfied: django-cache-url==2.0.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 29))
Requirement already satisfied: django-celery-results==1.0.1 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 30))
Requirement already satisfied: django-countries==5.2 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 31))
Requirement already satisfied: django-debug-toolbar==1.9.1 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 32))
Requirement already satisfied: django-elasticsearch-dsl==0.4.4 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 33))
Requirement already satisfied: django-environ==0.4.4 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 34))
Requirement already satisfied: django-filter==1.1 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 35))
Requirement already satisfied: django-fsm==2.6.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 36))
Requirement already satisfied: django-graphql-jwt==0.1.9 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 37))
Requirement already satisfied: django-impersonate==1.3 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 38))
Requirement already satisfied: django-js-asset==1.0.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 39))
Requirement already satisfied: django-mptt==0.9.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 40))
Collecting django-payments==0.12.1 (from -r requirements.txt (line 41))
Requirement already satisfied: django-phonenumber-field==2.0.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 42))
Requirement already satisfied: django-prices-openexchangerates==1.0.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 43))
Requirement already satisfied: django-prices==1.0.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 44))
Requirement already satisfied: django-redis==4.8.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 45))
Requirement already satisfied: django-render-block==0.5 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 46))
Requirement already satisfied: django-storages==1.6.5 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 47))
Requirement already satisfied: django-templated-email==2.2.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 48))
Collecting django-versatileimagefield==1.9 (from -r requirements.txt (line 49))
Using cached django_versatileimagefield-1.9-py2.py3-none-any.whl
Requirement already satisfied: django-webpack-loader==0.5.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 50))
Requirement already satisfied: django==1.11.12 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 51))
Requirement already satisfied: docutils==0.14 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 52))
Requirement already satisfied: elasticsearch-dsl==5.4.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 53))
Requirement already satisfied: elasticsearch==5.5.2 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 54))
Requirement already satisfied: faker==0.8.11 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 55))
Requirement already satisfied: freezegun==0.3.9 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 56))
Requirement already satisfied: google-i18n-address==2.3.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 57))
Requirement already satisfied: google-measurement-protocol==1.0.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 58))
Requirement already satisfied: graphene-django==2.0.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 59))
Requirement already satisfied: graphene==2.0.1 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 60))
Requirement already satisfied: graphql-core==2.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 61))
Requirement already satisfied: graphql-relay==0.4.5 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 62))
Requirement already satisfied: html5lib==1.0.1 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 63))
Requirement already satisfied: idna==2.6 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 64))
Requirement already satisfied: iso8601==0.1.12 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 65))
Requirement already satisfied: jmespath==0.9.3 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 66))
Requirement already satisfied: jsonfield==2.0.2 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 67))
Requirement already satisfied: kombu==4.1.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 68))
Requirement already satisfied: markdown==2.6.11 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 69))
Requirement already satisfied: maxminddb-geolite2==2017.803 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 70))
Requirement already satisfied: maxminddb==1.3.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 71))
Requirement already satisfied: multidict==3.3.2 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 72))
Requirement already satisfied: oauthlib==2.0.6 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 73))
Requirement already satisfied: pdfrw==0.4 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 74))
Requirement already satisfied: phonenumberslite==8.9.1 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 75))
Collecting pillow==5.0.0 (from -r requirements.txt (line 76))
Using cached Pillow-5.0.0.tar.gz
Requirement already satisfied: pluggy==0.6.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 77))
Requirement already satisfied: prices==1.0.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 78))
Requirement already satisfied: promise==2.1 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 79))
Requirement already satisfied: psycopg2-binary==2.7.4 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 80))
Requirement already satisfied: purl==1.3.1 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 81))
Requirement already satisfied: py==1.5.2 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 82))
Requirement already satisfied: pycparser==2.18 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 83))
Requirement already satisfied: pyjwt==1.5.3 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 84))
Requirement already satisfied: pyphen==0.9.4 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 85))
Requirement already satisfied: pytest-django==3.1.2 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 86))
Requirement already satisfied: pytest-mock==1.7.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 87))
Requirement already satisfied: pytest-vcr==0.3.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 88))
Requirement already satisfied: pytest==3.4.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 89))
Requirement already satisfied: python-dateutil==2.6.1 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 90))
Requirement already satisfied: python3-openid==3.1.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 91))
Requirement already satisfied: pytz==2018.3 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 92))
Requirement already satisfied: pyyaml==3.12 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 93))
Requirement already satisfied: redis==2.10.6 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 94))
Requirement already satisfied: requests-oauthlib==0.8.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 95))
Requirement already satisfied: requests==2.18.4 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 96))
Requirement already satisfied: rx==1.6.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 97))
Requirement already satisfied: s3transfer==0.1.12 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 98))
Requirement already satisfied: singledispatch==<IP_ADDRESS> in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 99))
Requirement already satisfied: six==1.11.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 100))
Requirement already satisfied: social-auth-app-django==2.1.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 101))
Requirement already satisfied: social-auth-core==1.6.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 102))
Requirement already satisfied: sqlparse==0.2.4 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 103))
Requirement already satisfied: stripe==1.77.1 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 104))
Requirement already satisfied: suds-jurko==0.6 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 105))
Requirement already satisfied: text-unidecode==1.1 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 106))
Requirement already satisfied: tinycss2==0.6.1 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 107))
Requirement already satisfied: typing==3.6.2 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 108))
Requirement already satisfied: urllib3==1.22 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 109))
Requirement already satisfied: vcrpy==1.11.1 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 111))
Requirement already satisfied: vine==1.1.4 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 112))
Requirement already satisfied: weasyprint==0.42.2 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 113))
Requirement already satisfied: webencodings==0.5.1 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 114))
Requirement already satisfied: wrapt==1.10.11 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 115))
Requirement already satisfied: xmltodict==0.11.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 116))
Requirement already satisfied: yarl==0.17.0 in c:\users\kirill\saleor\lib\site-packages (from -r requirements.txt (line 117))
Requirement already satisfied: setuptools in c:\users\kirill\saleor\lib\site-packages (from pytest==3.4.0->-r requirements.txt (line 89))
Requirement already satisfied: colorama; sys_platform == "win32" in c:\users\kirill\saleor\lib\site-packages (from pytest==3.4.0->-r requirements.txt (line 89))
Building wheels for collected packages: cryptography, pillow
Running setup.py bdist_wheel for cryptography ... error
Failed building wheel for cryptography
Running setup.py clean for cryptography
Running setup.py bdist_wheel for pillow ... error
Complete output from command C:\Users\Kirill\saleor\Scripts\python.exe -u -c "import setuptools, tokenize;file='C:\Users\Kirill\AppData\Local\Temp\pip-build-0fmje2_o\pillow\setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d C:\Users\Kirill\AppData\Local\Temp\tmpxhd9tkobpip-wheel- --python-tag cp37:
Single threaded build for Windows
C:\Users\Kirill\AppData\Local\Temp\pip-build-0fmje2_o\pillow\setup.py:35: RuntimeWarning: Pillow does not yet support Python 3.7 and does not yet provide prebuilt Windows binaries. We do not recommend building from source on Windows.
RuntimeWarning)
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-3.7
creating build\lib.win-amd64-3.7\PIL
copying src\PIL\BdfFontFile.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\BmpImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\BufrStubImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ContainerIO.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\CurImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\DcxImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\DdsImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\EpsImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ExifTags.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\features.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\FitsStubImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\FliImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\FontFile.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\FpxImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\FtexImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\GbrImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\GdImageFile.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\GifImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\GimpGradientFile.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\GimpPaletteFile.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\GribStubImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\Hdf5StubImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\IcnsImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\IcoImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\Image.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageChops.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageCms.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageColor.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageDraw.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageDraw2.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageEnhance.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageFile.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageFilter.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageFont.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageGrab.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageMath.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageMode.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageMorph.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageOps.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImagePalette.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImagePath.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageQt.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageSequence.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageShow.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageStat.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageTk.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageTransform.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImageWin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\ImtImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\IptcImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\Jpeg2KImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\JpegImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\JpegPresets.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\McIdasImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\MicImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\MpegImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\MpoImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\MspImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\OleFileIO.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\PaletteFile.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\PalmImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\PcdImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\PcfFontFile.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\PcxImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\PdfImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\PixarImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\PngImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\PpmImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\PsdImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\PSDraw.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\PyAccess.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\SgiImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\SpiderImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\SunImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\TarIO.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\TgaImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\TiffImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\TiffTags.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\version.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\WalImageFile.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\WebPImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\WmfImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\XbmImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\XpmImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL\XVThumbImagePlugin.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL_binary.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL_tkinter_finder.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL_util.py -> build\lib.win-amd64-3.7\PIL
copying src\PIL_init_.py -> build\lib.win-amd64-3.7\PIL
running egg_info
writing src\Pillow.egg-info\PKG-INFO
writing dependency_links to src\Pillow.egg-info\dependency_links.txt
writing top-level names to src\Pillow.egg-info\top_level.txt
reading manifest file 'src\Pillow.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '.c'
warning: no files found matching '.h'
warning: no files found matching '.sh'
no previously-included directories found matching 'docs_static'
warning: no previously-included files found matching '.coveragerc'
warning: no previously-included files found matching 'codecov.yml'
warning: no previously-included files found matching '.editorconfig'
warning: no previously-included files found matching '.landscape.yaml'
warning: no previously-included files found matching '.travis'
warning: no previously-included files found matching '.travis*'
warning: no previously-included files found matching 'appveyor.yml'
warning: no previously-included files found matching 'build_children.sh'
warning: no previously-included files found matching 'tox.ini'
warning: no previously-included files matching '.git' found anywhere in distribution
warning: no previously-included files matching '.pyc' found anywhere in distribution
warning: no previously-included files matching '.so' found anywhere in distribution
writing manifest file 'src\Pillow.egg-info\SOURCES.txt'
running build_ext
The headers or library files could not be found for zlib,
a required dependency when compiling Pillow from source.
Please see the install instructions at:
https://pillow.readthedocs.io/en/latest/installation.html
Traceback (most recent call last):
File "C:\Users\Kirill\AppData\Local\Temp\pip-build-0fmje2_o\pillow\setup.py", line 792, in
zip_safe=not (debug_build() or PLATFORM_MINGW), )
File "C:\Users\Kirill\saleor\lib\site-packages\setuptools_init_.py", line 129, in setup
return distutils.core.setup(**attrs)
File "C:\Users\Kirill\AppData\Local\Programs\Python\Python37\Lib\distutils\core.py", line 148, in setup
dist.run_commands()
File "C:\Users\Kirill\AppData\Local\Programs\Python\Python37\Lib\distutils\dist.py", line 966, in run_commands
self.run_command(cmd)
File "C:\Users\Kirill\AppData\Local\Programs\Python\Python37\Lib\distutils\dist.py", line 985, in run_command
cmd_obj.run()
File "C:\Users\Kirill\saleor\lib\site-packages\wheel\bdist_wheel.py", line 202, in run
self.run_command('build')
File "C:\Users\Kirill\AppData\Local\Programs\Python\Python37\Lib\distutils\cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "C:\Users\Kirill\AppData\Local\Programs\Python\Python37\Lib\distutils\dist.py", line 985, in run_command
cmd_obj.run()
File "C:\Users\Kirill\AppData\Local\Programs\Python\Python37\Lib\distutils\command\build.py", line 135, in run
self.run_command(cmd_name)
File "C:\Users\Kirill\AppData\Local\Programs\Python\Python37\Lib\distutils\cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "C:\Users\Kirill\AppData\Local\Programs\Python\Python37\Lib\distutils\dist.py", line 985, in run_command
cmd_obj.run()
File "C:\Users\Kirill\AppData\Local\Programs\Python\Python37\Lib\distutils\command\build_ext.py", line 339, in run
self.build_extensions()
File "C:\Users\Kirill\AppData\Local\Temp\pip-build-0fmje2_o\pillow\setup.py", line 580, in build_extensions
raise RequiredDependencyException(f)
main.RequiredDependencyException: zlib
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "", line 1, in
File "C:\Users\Kirill\AppData\Local\Temp\pip-build-0fmje2_o\pillow\setup.py", line 804, in
raise RequiredDependencyException(msg)
main.RequiredDependencyException:
The headers or library files could not be found for zlib,
a required dependency when compiling Pillow from source.
Please see the install instructions at:
https://pillow.readthedocs.io/en/latest/installation.html

Failed building wheel for pillow
Running setup.py clean for pillow
Failed to build cryptography pillow
Installing collected packages: cryptography, django-payments, pillow, django-versatileimagefield
Running setup.py install for cryptography ... error
Exception:
Traceback (most recent call last):
File "C:\Users\Kirill\saleor\lib\site-packages\pip\compat_init_.py", line 73, in console_to_str
return s.decode(sys.stdout.encoding)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8d in position 69: invalid start byte
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Kirill\saleor\lib\site-packages\pip\basecommand.py", line 215, in main
status = self.run(options, args)
File "C:\Users\Kirill\saleor\lib\site-packages\pip\commands\install.py", line 342, in run
prefix=options.prefix_path,
File "C:\Users\Kirill\saleor\lib\site-packages\pip\req\req_set.py", line 784, in install
**kwargs
File "C:\Users\Kirill\saleor\lib\site-packages\pip\req\req_install.py", line 878, in install
spinner=spinner,
File "C:\Users\Kirill\saleor\lib\site-packages\pip\utils_init_.py", line 676, in call_subprocess
line = console_to_str(proc.stdout.readline())
File "C:\Users\Kirill\saleor\lib\site-packages\pip\compat_init_.py", line 75, in console_to_str
return s.decode('utf_8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8d in position 69: invalid start byte`
Does anyone know the normal version?

if i migrate i have error:
(saleor) E:\dev\saleor>python manage.py migrate
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Users\Kirill\saleor\lib\site-packages\django\core\management\__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "C:\Users\Kirill\saleor\lib\site-packages\django\core\management\__init__.py", line 308, in execute
    settings.INSTALLED_APPS
  File "C:\Users\Kirill\saleor\lib\site-packages\django\conf\__init__.py", line 56, in __getattr__
    self._setup(name)
  File "C:\Users\Kirill\saleor\lib\site-packages\django\conf\__init__.py", line 41, in _setup
    self._wrapped = Settings(settings_module)
  File "C:\Users\Kirill\saleor\lib\site-packages\django\conf\__init__.py", line 110, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "C:\Users\Kirill\saleor\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 726, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "E:\dev\saleor\saleor\__init__.py", line 1, in <module>
    from .celeryconf import app as celery_app
  File "E:\dev\saleor\saleor\celeryconf.py", line 3, in <module>
    from celery import Celery
  File "<frozen importlib._bootstrap>", line 1032, in _handle_fromlist
  File "C:\Users\Kirill\saleor\lib\site-packages\celery\local.py", line 509, in __getattr__
    module = __import__(self._object_origins[name], None, None, [name])
  File "C:\Users\Kirill\saleor\lib\site-packages\celery\app\__init__.py", line 5, in <module>
    from celery import _state
  File "C:\Users\Kirill\saleor\lib\site-packages\celery\_state.py", line 15, in <module>
    from celery.utils.threads import LocalStack
  File "C:\Users\Kirill\saleor\lib\site-packages\celery\utils\__init__.py", line 10, in <module>
    from .nodenames import worker_direct, nodename, nodesplit
  File "C:\Users\Kirill\saleor\lib\site-packages\celery\utils\nodenames.py", line 7, in <module>
    from kombu.entity import Exchange, Queue
  File "C:\Users\Kirill\saleor\lib\site-packages\kombu\entity.py", line 6, in <module>
    from .abstract import MaybeChannelBound, Object
  File "C:\Users\Kirill\saleor\lib\site-packages\kombu\abstract.py", line 6, in <module>
    from .connection import maybe_channel
  File "C:\Users\Kirill\saleor\lib\site-packages\kombu\connection.py", line 893
    return self.transport.implements.async
                                         ^
SyntaxError: invalid syntax

Hello again, please don't use Python 3.7, it's a nightly version which is incompatible at the moment.
Please use try to install and use Python 3.6.5.

Also, if you run into any compilation errors during pip install -r requirements.txt on Python 3.6.5, make sure you have visual studio 2015 installed (or higher, as from Python 3.5 or 3.6, higher versions of Visual Studio's compiler are compatible if I recall correctly), it may be the reason why Pillow is not compiling.

Successfully installed.
python=3.6.5
django=1.11.12
THX!!!