Settings

Theme

Show HN: ENVy, a Development Environment Manager

envy-project.github.io

13 points by magmastonealex 6 years ago · 7 comments

Reader

ahnick 6 years ago

What advantage does this offer over just using docker-compose directly?

  • magmastonealexOP 6 years ago

    We found that working inside a docker container isn't usually turn-key.

    You need to figure out a system to get UID/GIDs in sync between the container and the host (otherwise you mess up permissions of files in your repository. This isn't terribly hard, but is annoying boilerplate to keep writing.

    Plus, docker-compose doesn't really offer command discovery. Looking at a docker compose file, I don't know how to run the project's build steps, or run their linter or tests. Having to look that up is, in my opinion, annoying.

    In general, we try to provide sane defaults, so that users (and to some extent maintainers) don't need to understand Docker and how it works in order to start using it.

    • toomuchtodo 6 years ago

      > Plus, docker-compose doesn't really offer command discovery. Looking at a docker compose file, I don't know how to run the project's build steps, or run their linter or tests. Having to look that up is, in my opinion, annoying.

      Shouldn’t this be in the README at / of the project?

magmastonealexOP 6 years ago

Hi Hacker News!

We have been working on a tool called ENVy:

http://envy-project.github.io/ https://github.com/envy-project/envy

ENVy is an environment manager to make working on disparate projects easier. You don't need to worry about what a package is called on your Linux distribution, or figure out how to build for Mac from scratch.

Part of our goal was to make it easier to contribute to open source. We noticed that long contributing guides dissuades casual involvement - if you have to install a bunch of dependencies (that you won't necessarily know how or remember to get rid of), and spend half an hour getting set up, you're not very likely to fix a typo or make a 30 second fix for a personally annoying bug.

There's also some value for business projects - we've found times that you just need to make a "simple" change to another team's codebase, and it turns into a multi-day effort of setting up an environment.

Setup with ENVy is as simple as typing `envy up` for any project you want to work on. Running `envy nuke` removes all traces of that environment. With ENVy, you don't need to hunt down a lint command or how you run the tests. `envy -h` shows you all the commands you can run - or just jump into a shell with `envy shell`.

You can read more about ENVy on our site, but the short version is that we think it'll make it easier for contributors to help out in open-source projects.

If you're interested, you can check out some examples to get up and running:

https://github.com/envy-project/examples

Under the hood, it handles the intricacies of setting up and working within a Docker container - it sounds simple on the surface, but networking, file permissions, and setup can wind up being kind of complicated.

We definitely realize that a critical mass of users and projects is required to have this be a truly useful project, and we've started to open some pull requests in open-source projects to gauge maintainer interest.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection