Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unneeded feedstock #2

Closed
FarhanTejani opened this issue Jul 19, 2018 · 26 comments
Closed

Unneeded feedstock #2

FarhanTejani opened this issue Jul 19, 2018 · 26 comments

Comments

@FarhanTejani
Copy link

FarhanTejani commented Jul 19, 2018

I am arguing for the deletion of this feedstock for the following reasons:

@nehaljwani
Copy link
Member

cc @jakirkham

I am okay with the proposal.

@hmaarrfk
Copy link
Contributor

hmaarrfk commented Jan 31, 2019

We got pytorch-cpu compiling on conda-forge

https://github.com/conda-forge/pytorch-cpu-feedstock

I still can't get windows to compile, but if somebody would like to help on that front it would be appreciated.

If you would make this recipe depend on pytorch-cpu then it would work out for conda-forge, at least on linux.

@nlgranger
Copy link

Presently, this package seems to depend on 'pytorch' whereas conda-forge only provides 'pytorch-cpu', this is confusing for users like me.

@hmaarrfk
Copy link
Contributor

The reason I packaged it that way is that there is a huge difference in performance between the two. I figured at least this way, if people depend on pytorch, they will know that only pytorch-cpu exists on conda-forge. We can make a meta package pytorch that will dependent on either pytorch-cpu or pytorch-gpu,

I might be tempted to work on this soon.

@jph00
Copy link

jph00 commented Sep 29, 2019

Having torchvision in conda-forge is big problem. It's not compatible with the official pytorch conda packages, is very out of date, and results in conflicts when attempting to install software that depends on torchvision, if conda-forge is configured with a high channel priority (as in the recommended install steps on the conda-forge site). In addition, most PyTorch users use GPU, which isn't supported in the conda-forge package.

What's the process for getting packages removed from conda-forge that cause problems? This issue was raised over a year ago, was ok'd by @nehaljwani, and then nothing happened. There's zero upside to having this on conda-forge, and many downsides.

@hmaarrfk
Copy link
Contributor

I think the package could be updated to a more modern version.

It seems that the setup process now requires pytorch.

Conda forge is community lead and complicated software like pytorch is simply challenging to package in an ecosystem.

People expecting GPU performance will not find a package called pytorch from conda forge

@jph00
Copy link

jph00 commented Sep 29, 2019

You're breaking a lot of downstream software by leaving this here, meaning that anyone wanting to use pytorch in its normal configuration can't use conda-forge. I strongly hope you reconsider, for the health of the conda-forge community and python more generally.

If you don't, I very much hope that the project leadership will consider removing it, or at least publish clear guidelines explaining how ecosystem-breaking packages like this can be appealed and on what basis such appeals will be considered.

@hmaarrfk
Copy link
Contributor

hmaarrfk commented Sep 29, 2019

I'm just having trouble understanding the use case.

Are you using

conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
.
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /home/mark/miniconda3/envs/pytorch

  added / updated specs:
    - cudatoolkit=10.0
    - pytorch
    - torchvision


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    cudatoolkit-10.0.130       |                0       261.2 MB
    intel-openmp-2019.4        |              243         729 KB
    libblas-3.8.0              |      12_openblas          10 KB  conda-forge
    libcblas-3.8.0             |      12_openblas          10 KB  conda-forge
    liblapack-3.8.0            |      12_openblas          10 KB  conda-forge
    mkl-2019.4                 |              243       131.2 MB
    ninja-1.9.0                |       h6bb024c_0         1.6 MB  conda-forge
    pytorch-1.2.0              |py3.7_cuda10.0.130_cudnn7.6.2_0       428.0 MB  pytorch
    torchvision-0.4.0          |       py37_cu100         9.8 MB  pytorch
    ------------------------------------------------------------
                                           Total:       832.5 MB

Then maybe

conda update --all

and that is breaking your system?

Why not add the pytorch channel with higher priority than the conda-forge channel? That seems like it should solve the issues.

FWIW: I've also started to build pytorch 1.2 CPU, conda-forge/pytorch-cpu-feedstock#8 Their tar balls didn't include the versioned dependencies, making it much harder to auto update

@hmaarrfk
Copy link
Contributor

it seems that pytorch-cpu is a build time requirement for torchvision(-cpu????) they moved to tracking features, enabling a more streamlined install.

I agree that torchvision probably shouldn't have been added in before pytorch(-cpu) was built.

That said, I think that

conda config --add channels conda-forge
conda config --add channels pytorch

should enable pytorch to have highest priority, making the pytorch install good, while using conda-forge packages

The pytorch channel seems quite limited to software directly related to pytorch, and doesn't seem like it will add many conflicts
https://anaconda.org/pytorch/repo

@jph00
Copy link

jph00 commented Sep 29, 2019

Yes it's possible to add an extra install step, which would be required by every single dependency on pytorch, to work around this breakage.

But better would be to remove this package so that everyone else doesn't have to work around the problem. It adds nothing, almost no-one uses it, and causes a lot of pain. I spent the last 24 hours trying to work around it in a way that doesn't require me to tell every single user to change their conda setup.

@hmaarrfk
Copy link
Contributor

I really do understand your frustration. I'm sorry it has caused you so many problems.

I'm just trying to better understand your install steps.

Following the instructions from the pytorch website, I get the following:

(pytorch) mark@mark-owl:~$ conda install pytorch torchvision cpuonly -c pytorch
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /home/mark/miniconda3/envs/pytorch

  added / updated specs:
    - cpuonly
    - pytorch
    - torchvision


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    cpuonly-1.0                |                0           2 KB  pytorch
    intel-openmp-2019.4        |              243         729 KB
    mkl-2019.4                 |              243       131.2 MB
    ninja-1.9.0                |       h6bb024c_0         1.6 MB  conda-forge
    pytorch-1.2.0              |      py3.7_cpu_0        31.3 MB  pytorch
    torchvision-0.4.0          |         py37_cpu        13.2 MB  pytorch
    ------------------------------------------------------------
                                           Total:       178.1 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      pkgs/main/linux-64::_libgcc_mutex-0.1-main
  bzip2              conda-forge/linux-64::bzip2-1.0.8-h516909a_1
  ca-certificates    conda-forge/linux-64::ca-certificates-2019.9.11-hecc5488_0
  certifi            conda-forge/linux-64::certifi-2019.9.11-py37_0
  cffi               conda-forge/linux-64::cffi-1.12.3-py37h8022711_0
  cpuonly            pytorch/noarch::cpuonly-1.0-0
  freetype           conda-forge/linux-64::freetype-2.10.0-he983fc9_1
  intel-openmp       pkgs/main/linux-64::intel-openmp-2019.4-243
  jpeg               conda-forge/linux-64::jpeg-9c-h14c3975_1001
  libblas            conda-forge/linux-64::libblas-3.8.0-12_openblas
  libcblas           conda-forge/linux-64::libcblas-3.8.0-12_openblas
  libffi             conda-forge/linux-64::libffi-3.2.1-he1b5a44_1006
  libgcc-ng          pkgs/main/linux-64::libgcc-ng-9.1.0-hdf63c60_0
  libgfortran-ng     pkgs/main/linux-64::libgfortran-ng-7.3.0-hdf63c60_0
  liblapack          conda-forge/linux-64::liblapack-3.8.0-12_openblas
  libopenblas        conda-forge/linux-64::libopenblas-0.3.7-h6e990d7_1
  libpng             conda-forge/linux-64::libpng-1.6.37-hed695b0_0
  libstdcxx-ng       pkgs/main/linux-64::libstdcxx-ng-9.1.0-hdf63c60_0
  libtiff            conda-forge/linux-64::libtiff-4.0.10-h57b8799_1003
  lz4-c              conda-forge/linux-64::lz4-c-1.8.3-he1b5a44_1001
  mkl                pkgs/main/linux-64::mkl-2019.4-243
  ncurses            conda-forge/linux-64::ncurses-6.1-hf484d3e_1002
  ninja              conda-forge/linux-64::ninja-1.9.0-h6bb024c_0
  numpy              conda-forge/linux-64::numpy-1.17.2-py37h95a1406_0
  olefile            conda-forge/noarch::olefile-0.46-py_0
  openssl            conda-forge/linux-64::openssl-1.1.1c-h516909a_0
  pillow             conda-forge/linux-64::pillow-6.1.0-py37h6b7be26_1
  pip                conda-forge/linux-64::pip-19.2.3-py37_0
  pycparser          conda-forge/linux-64::pycparser-2.19-py37_1
  python             conda-forge/linux-64::python-3.7.3-h33d41f4_1
  pytorch            pytorch/linux-64::pytorch-1.2.0-py3.7_cpu_0
  readline           conda-forge/linux-64::readline-8.0-hf8c457e_0
  setuptools         conda-forge/linux-64::setuptools-41.2.0-py37_0
  six                conda-forge/linux-64::six-1.12.0-py37_1000
  sqlite             conda-forge/linux-64::sqlite-3.29.0-hcee41ef_1
  tk                 conda-forge/linux-64::tk-8.6.9-hed695b0_1003
  torchvision        pytorch/linux-64::torchvision-0.4.0-py37_cpu
  wheel              conda-forge/linux-64::wheel-0.33.6-py37_0
  xz                 conda-forge/linux-64::xz-5.2.4-h14c3975_1001
  zlib               conda-forge/linux-64::zlib-1.2.11-h516909a_1006
  zstd               conda-forge/linux-64::zstd-1.4.0-h3b9ef0a_0


Proceed ([y]/n)? y


Downloading and Extracting Packages
ninja-1.9.0          | 1.6 MB    | ############################################################### | 100%
mkl-2019.4           | 131.2 MB  | ############################################################### | 100%
cpuonly-1.0          | 2 KB      | ############################################################### | 100%
intel-openmp-2019.4  | 729 KB    | ############################################################### | 100%
torchvision-0.4.0    | 13.2 MB   | ############################################################### | 100%
pytorch-1.2.0        | 31.3 MB   | ############################################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
(pytorch) mark@mark-owl:~$ conda update --all
Collecting package metadata (current_repodata.json): done
Solving environment: done

# All requested packages already installed.

(pytorch) mark@mark-owl:~$ conda install torchvision
Collecting package metadata (current_repodata.json): done
Solving environment: done

# All requested packages already installed.
  • conda update --all leaves the torchvision package alone
  • conda install torchvision leaves the torchvision package alone

If your users have an old version of the package, then maybe provide the command:

conda install "torchvision>=0.4" "pytorch>=1.2" -c pytorch

or similar.

Can you provide me with a list install steps that are able to recreate the issue for you?

I don't have the powers to delete this package, (and I will likely reupload the 0.4 package when pytorch 1.2 gets built), so I am very interested in learning more about your usecase

Feel free to ping the core team to delete the package, but they are swamped
https://conda-forge.org/docs/orga/guidelines.html#fixing-broken-packages
and if they miss your ping, then it can take even more time.

@hmaarrfk
Copy link
Contributor

And this is my config

(pytorch) mark@mark-owl:~$ conda config --show
add_anaconda_token: True
add_pip_as_python_dependency: True
aggressive_update_packages:
  - ca-certificates
  - certifi
  - openssl
allow_conda_downgrades: False
allow_cycles: True
allow_non_channel_urls: False
allow_softlinks: False
always_copy: False
always_softlink: False
always_yes: None
anaconda_upload: None
auto_activate_base: True
auto_update_conda: True
bld_path:
changeps1: True
channel_alias: https://conda.anaconda.org
channel_priority: flexible
channels:
  - conda-forge
  - defaults
client_ssl_cert: None
client_ssl_cert_key: None
clobber: False
conda_build: {}
create_default_packages: []
croot: /home/mark/miniconda3/conda-bld
custom_channels:
  pkgs/main: https://repo.anaconda.com
  pkgs/r: https://repo.anaconda.com
  home/mark/miniconda3/conda-bld: file://
  pkgs/pro: https://repo.anaconda.com
custom_multichannels:
  defaults:
    - https://repo.anaconda.com/pkgs/main
    - https://repo.anaconda.com/pkgs/r
  local:
    - file:///home/mark/miniconda3/conda-bld
debug: False
default_channels:
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
default_python: 3.7
default_threads: None
deps_modifier: not_set
dev: False
disallowed_packages: []
download_only: False
dry_run: False
enable_private_envs: False
env_prompt: ({default_env})
envs_dirs:
  - /home/mark/miniconda3/envs
  - /home/mark/.conda/envs
error_upload_url: https://conda.io/conda-post/unexpected-error
execute_threads: 1
extra_safety_checks: False
force: False
force_32bit: False
force_reinstall: False
force_remove: False
ignore_pinned: False
json: False
local_repodata_ttl: 1
migrated_channel_aliases: []
migrated_custom_channels: {}
non_admin_enabled: True
notify_outdated_conda: True
offline: False
override_channels_enabled: True
path_conflict: clobber
pinned_packages: []
pip_interop_enabled: False
pkgs_dirs:
  - /home/mark/miniconda3/pkgs
  - /home/mark/.conda/pkgs
proxy_servers: {}
quiet: False
remote_connect_timeout_secs: 9.15
remote_max_retries: 3
remote_read_timeout_secs: 60.0
repodata_fns:
  - current_repodata.json
  - repodata.json
repodata_threads: None
report_errors: None
restore_free_channel: False
rollback_enabled: True
root_prefix: /home/mark/miniconda3
safety_checks: warn
sat_solver: pycosat
separate_format_cache: False
shortcuts: True
show_channel_urls: None
solver_ignore_timestamps: False
ssl_verify: True
subdir: linux-64
subdirs:
  - linux-64
  - noarch
target_prefix_override:
track_features: []
unsatisfiable_hints: True
update_modifier: update_specs
use_index_cache: False
use_local: False
use_only_tar_bz2: False
verbosity: 0
verify_threads: 1
whitelist_channels: []

@hmaarrfk
Copy link
Contributor

Just a note: It seems that as of 0.3, torchvision builds depend on cpu/gpu configurations.

@jph00
Copy link

jph00 commented Sep 29, 2019 via email

@hmaarrfk
Copy link
Contributor

hmaarrfk commented Sep 29, 2019

Depending on pytorch should be fine no?

I named it pytorch-cpu to explicitly avoid people meaning the GPU version and getting something they don't want.

Finally, you can specify the version of the package you need. In that case, if you specify - torchvision >=0.4 in your meta.yaml, then your package will not be able to install with the version from conda forge.

Users will have to have the pytorch channel enabled, but I guess that can be done with a -c flag.

@hmaarrfk
Copy link
Contributor

I named it pytorch-cpu to explicitly avoid people meaning the GPU version and getting something they don't want.

At the time, this followed pytorch's convention, with the exception of the macos build.

@jph00
Copy link

jph00 commented Sep 29, 2019 via email

@hmaarrfk
Copy link
Contributor

I know, even though I'm not a maintainer here, I guess I could ping. But honestly, I'm not convinced it is the best way to help you.

@jph00 I still think the correct way for you to resolve your package correctly is to restrict your required version of torchvision in the meta.yaml file.

Hi @conda-forge/core,

Please move this package from main to broken on the conda-forge channel on anaconda.org
because:

It was built with an external dependency.

@jph00
Copy link

jph00 commented Sep 30, 2019 via email

@hmaarrfk
Copy link
Contributor

hmaarrfk commented Sep 30, 2019

does your software really support that many versions of pytorch/torchvision? With such a fast moving software, I is really suprising I find that really amazing!

@rgommers
Copy link

rgommers commented Dec 3, 2019

Hi @conda-forge/core,

Please move this package from main to broken on the conda-forge channel on anaconda.org
because:

Note: this got no response, this package is still installable. Ping @jakirkham and @jjhelmus, adding to the discussion for tomorrow. Deletion of this feedstock seems preferable to adding a broken label, but either of those would be helpful.

@Maltimore
Copy link

I believe the package is now finally broken, since it cannot import pillow 7.0.0, but pillow doesn't seem to be pinned to a lower version in this repo.

python-pillow/Pillow#4130

Maybe now would be a good time to reconsider deleting this package.

@nehaljwani
Copy link
Member

@ocefpaf What's your opinion on this? I am OK with moving all builds to archive and marking this feedstock as deprecated (but don't have the powers to do so 😉)

@ocefpaf
Copy link
Member

ocefpaf commented Mar 9, 2020

@ocefpaf What's your opinion on this? I am OK with moving all builds to archive and marking this feedstock as deprecated (but don't have the powers to do so )

All the packages here are in the epoch cf201901 label. Only people who know what to do can install that. @Maltimore if you are installing it from that label you want to reproduce an old env and you are expected to know that you may get broken env. There is no need to remove it from there and no users that relies on the main channel will get it.

Regarding archiving this feedstock, that is up to you @nehaljwani, as the sole maintainer here. If you want to do so I can archive it for you.

@nehaljwani
Copy link
Member

Thanks for the quick response, @ocefpaf ! Please archive this feedstock.

@isuruf
Copy link
Member

isuruf commented Jan 17, 2021

Unarchiving the feedstock as we have pytorch packages available in conda-forge and it's okay to have torchvision packages in conda-forge.

@isuruf isuruf closed this as completed Jan 17, 2021
@conda-forge conda-forge locked and limited conversation to collaborators Jan 17, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants