Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751641AbdFSPNY convert rfc822-to-8bit (ORCPT ); Mon, 19 Jun 2017 11:13:24 -0400 Received: from smtp2-2.goneo.de ([85.220.129.34]:57378 "EHLO smtp2-2.goneo.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750828AbdFSPNX (ORCPT ); Mon, 19 Jun 2017 11:13:23 -0400 X-Spam-Flag: NO X-Spam-Score: -2.793 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: [PATCH] changes.rst: explain the usage of virtual environment From: Markus Heiser In-Reply-To: <20170619113801.6b2f21dc@vento.lan> Date: Mon, 19 Jun 2017 17:13:10 +0200 Cc: Jonathan Corbet , Christoph Hellwig , Linux Doc Mailing List , Mauro Carvalho Chehab , "linux-kernel@vger.kernel.org org List" , Greg Kroah-Hartman , SeongJae Park , Masahiro Yamada , Max Filippov Content-Transfer-Encoding: 8BIT Message-Id: <21438695-B994-4E19-9235-F7A024540D5D@darmarit.de> References: <736d4f4128feaf09f0de91e665dd0666ffa07a18.1497870046.git.mchehab@s-opensource.com> <20170619130837.GA25524@infradead.org> <20170619074653.4fbcdd36@lwn.net> <59B0A362-D044-4FA8-9286-6D955B8DB241@darmarit.de> <20170619113801.6b2f21dc@vento.lan> To: Mauro Carvalho Chehab X-Mailer: Apple Mail (2.3273) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2705 Lines: 94 > Am 19.06.2017 um 16:38 schrieb Mauro Carvalho Chehab : > > HI Markus, > Hi Mauro :) [...] >> Typically I have a PY_ENV target in my projects, building a virtualenv >> in a folder named ./local. E.g. in LinuxDoc [1] I use something like this: >> >> PY ?=3 >> PYTHON ?= python$(PY) >> .. >> VIRTUALENV = virtualenv --python=$(PYTHON) >> VTENV_OPTS = "--no-site-packages" >> PY_ENV = ./local/py$(PY) > > I would split the PATH name on a separate var. This way, if one would > like to have multiple Sphinx versions, all it would need would be to > change the directory. > I would prefer to call it as "./sphinx" (or something similar). I will take this in mind. > So, I would do: > > PY_DIR = ./sphinx > PY_ENV = $(PY_DIR)/py$(PY) > > Don't forget to add $PY_DIR directory to .gitignore on your patch. good point ;) >> .. >> quiet_cmd_virtualenv = PYENV $@ >> cmd_virtualenv = \ >> if [ ! -d "./$(PY_ENV)" ];then \ >> $(VIRTUALENV) $(VIRTUALENV_VERBOSE) $(VTENV_OPTS) $2; \ >> else \ >> echo "using virtualenv from $2"; \ >> fi >> ... >> # to build *local* environment, python and virtualenv from the OS is needed! >> $(PY_ENV): virtualenv-exe python-exe >> $(call cmd,virtualenv,$(PY_ENV)) >> @$(PY_ENV_BIN)/pip install $(PIP_VERBOSE) -r requirements.txt > > Shouldn't it be using "pip$(PY)" instead? No, with @$(PY_ENV_BIN)/pip you always use the pip from the environment and this is always named pip. E.g:: ./local/py3/bin/pip ./local/py2/bin/pip Or: same as "sphinx-build" command .. there is no sohinx-build3 ;) > Also, better to seek for requirements on a file under Documentation/sphinx/ > directory. right, the above was only a sloppily C&P from what I have in my project. >> .. >> >> And the sphinxbuild coammand is used from there:: >> >> SPHINXBUILD ?= $(PY_ENV_BIN)/sphinx-build >> >> By this I can stick versions packages. E.g. to select last version of >> RTD theme and Sphinx version 1.5 or upper, I add the following lines to >> my reqierements.txt:: >> >> Sphinx>=1.5 >> sphinx_rtd_theme >> >> If you are interested, I can prepare a patch, to add such functionality >> (as option) to Documents/Makefile (which will be documented in the doc-guide). > > Yeah, IMHO, it makes sense to have something like that at the main build, > as an optional feature, e. g. perhaps adding a new make target, like: > > $ make sphinx_virtenv > > That would create and populate PY_DIR. If $PY_DIR/bin/sphinx-build exists > and it is executable file, run it. Otherwise, use the system's sphinx, > if available. OK, I will prepare a RFC patch ... I will have time for this only on the weekend, so have some patience with me. -- Markus --