- Do not change the working directory when creating a virtual environment. This makes combining
dmenv
andpyenv
much easier. - Add
dmenv create
command to create an empty virtual environment.
- Breaking: the
--system-site-packages
option must be passed before any subcommand, and the path of the virtual environment has changed:
<= 0.18:
$ dmenv install --system-site-packages
# virtual environment created in .venv/dev/3.7/
>= 0.19:
$ dmenv --system-site-packages install
# virtual environment created in .venv/dev-system/3.7/
- Fix #110:
dmenv tidy
now works even from an activated virtual environment.
- Add a
tidy
command, to re-generate locks from a clean virtual environment.
- Add a
process-scripts
command, to generate scripts inDMENV_SCRIPTS_PATH
.
- Fix regression:
dmenv init
could only be used with the--project
option - Improve error messages when setup.py or requirements.lock is not found
- Improve error handling when parsing output from
info.py
- Fix message when using
dmenv --production install
- Fix regression that caused parsing output of
dmenv show
commands to stop working
- Fix #94: Look for
setup.py
in the parent directories when trying to resolve the project path.
- When
foo.py
is present at the root of the project, you can usdmenv run foo.py
directly instead of the more awkwarddmenv run -- python foo.py
- Fix syntax of generated setup.py (#86)
- Fix regression: keep the top comment when running bump-in-lock
- Restore generation of pre-compiled binaries from travis.
- Fix incorrect
--help
message - Better error handling when the virtual environment or binary path do not exist
- Fix typo in
setup.cfg
template
All reported by @theodelrieu. Thanks, man.
This leads to far more readable code.
Note: this may break when using setuptools <= 30.3.0 (roughly Python 3.5). Use dmenv init --no-setup-cfg
if you
need compatibility with old Python versions.
- Implement #77: Add a new
--production
flag to useprod
extra requirements instead ofdev
. This allows having dependencies just for production environments.
- Use
dmenv show:outdated
to show outdated dependencies.
dmenv install
anddmenv lock
commands learned the--system-site-packages
option to create virtual environments that have access to packages installed globally on the system.
This is done with the --production
flag. For instance, dmenv --production install
.
dmenv --production lock
will create a production.lock
that contains no development dependencies.
Virtual environment location has changed to allow both production and full virtual environments to coexist:
- When using
DMENV_VENV_OUTSIDE_PROJECT
version | location |
---|---|
<= 0.11 | DATA_DIR/dmenv/venv/3.7.1/foo/ |
>= 0.12, default | DATA_DIR/dmenv/venv/dev/3.7.1/foo/ |
>= 0.12, with --production | DATA_DIR/dmenv/venv/prod/3.7.1/foo/ |
- Otherwise:
version | location |
---|---|
<= 0.11 | .venv/3.7.1/foo/ |
>= 0.12, default | .venv/dev/3.7.1/foo/ |
>= 0.12, with --production | .venv/prod/3.7.1/foo/ |
- Run
dmenv clean
withdmenv 0.11
to clean up the deprecated location - Upgrade to
dmenv 0.12
- Run
dmenv install
to create the new virtual environment
- Fix metadata on Cargo to include new tagline.
- Add
dmenv show:bin_path
to show the path of the virtual environment binaries.
- Fix #31: make sure the wheel
package gets frozen when running
dmenv lock
. Note: this also causes other packages likesetuptools
andpip
itself to get frozen. As a consequencedmenv install
no longer upgrades pip automatically, and so the--no-upgrade-pip
option is gone.
- Allow using
dmenv
outside the current project, by setting an environment variable namedDMENV_VENV_OUTSIDE_PROJECT
.
-
Fix #54: rename
--cwd
option to--project
. -
Avoid blindly overwriting the
requirements.lock
file when running.dmenv lock
. See #11 and #7 for background.
- Fix #49: return code was always 0 when using
dmenv run
on Windows. (regression introduced in0.8.1
).
- Add documentation link to
Cargo.toml
.
- Fix #45:
dmenv env
can be used with non-ASCII chars on Windows.
dmenv run
now usesexecv
fromlibc
. This means the child process is killed when killingdmenv
. The previous behavior (starting a new process) can be activated with the--no-exec
option.
- Allow using
python3 -m virtualenv
instead ofpython3 -m venv
to create the virtual environments by setting an environment variable namedDMENV_NO_VENV_STDLIB
. This can be used to work around some bugs in Debian-based distributions.
- Add
bump-in-lock
command. Use to bump version or git references in therequirements.lock
file.
- Run
setup.py develop
with--no-deps
. - Rename
show
toshow:venv_path
, addshow:deps
to display the list of dependencies.
dmenv init
: since name is required, it is now an argument, no longer an option. So instead ofdmenv init --name foo --version 0.42
, usedmenv init foo --version 0.42
- Add a command named
dmenv develop
that just runspython setup.py develop
and nothing else. dmenv install
: add--no-upgrade-pip
and--no-develop
options.
- Add a
--author
option todmenv init
, used when generating thesetup.py
file. - Fix #12:
dmenv lock
now exits immediately if the lock file is missing. - Workaround Debian bug in pip (See #15 for details).
-
Write some metadata inside the
requirements.lock
file. -
Improve
dmenv run
:- Suggest running
lock
orinstall
- Do not crash if used without arguments
- Suggest running
- Fix CI on Windows.
dmenv
no longer needs a configuration file.- Find the Python interpreter to use by looking in the PATH environment variable.
- Fix #9: If
dmenv
is run inside an existing virtual environment, just use it.
- Also upgrade pip when running
dmenv install
. - Fix incorrect message when running
dmenv lock
.
- Fix regression introduced in 0.3.1: create config path parent subdirectory before trying to write inside it.
- Add a
dmenv
subdirectory to the configuration file path.
- Replace command
freeze
bylock
.
- Add command
dmenv init
to generate a workingsetup.py
file.
- Fix running dmenv on Windows.
- The configuration file is now read from $HOME (
~/.config
on Linux and macOS,%HOME%\AppData\Local
on Windows).
- The
.dmenv.toml
file is now required.
- Can be used with multiple python versions, using the
.dmenv.toml
config file.
- Initial release.