Skip to content
forked from taqtiqa/jlenv

Robust Julia version management for development and production.

License

Notifications You must be signed in to change notification settings

taqtiqa-mark/jlenv

 
 

Repository files navigation

jlenv: Simple Julia Version Management


Build Status CodeFactor Codacy Badge

Use jlenv to pick a Julia version for your application and guarantee that your development environment matches production.

Further documentation is here.

NOTE: Please use a tagged release.
Master is where upcoming changes land ahead of a release.

jlenv Does...

  • Change the global Julia version on a per-user basis.
  • Support per-project Julia versions.
  • Override the Julia version with an environment variable.

jlenv Does NOT....

  • Load into your shell.
  • Override shell commands (cd, etc.).
  • Have more than a one-word configuration file.
  • Install Julia.
  • Manage packages.
  • Require changes to Julia for compatibility.
  • Prompt you with warnings when you switch projects.

Further documentation is here. Changelog is here

Powerful in development. Specify your app's Julia version once, in a single file. Keep all your teammates on the same page. No headaches running apps on different versions of Julia. Just Works™ from the command line and with app servers like Pow. Override the Julia version anytime: just set an environment variable.

Rock-solid in production. Your application's executables are its interface with ops. The Julia version dependency lives in one place—your app—so upgrades and rollbacks are atomic, even when you switch versions.

One thing well. jlenv is concerned solely with switching Julia versions. It's simple and predictable. A rich plugin ecosystem lets you tailor it to suit your needs. Compile your own Julia versions, or use the julia-build plugin to automate the process. See more plugins listed here..

Developers

We welcome issue reports, feature requests and pull requests.

B.A.T.S

There are two gotchas that might ease any frustration:

  1. Due to a bug in Bats, empty lines are discarded from ${lines[@]}, causing line indices to change and preventing testing for empty lines.
  2. Bats can appear to hang - see here for more details.

The following snippet produces a tables of failed tests:

$ time CI=1 test/run|
  sed -e '/^not ok\|\.bats/!d'|
  tr '[:space:]' '[\n*]'|
  sort |
  uniq -c |
  sort -nr|
  grep bats

Requested Contributor Conduct

In the interest of fostering an excellent code base, we try to encourage anyone to participate in our project. Please do likewise.

About

Robust Julia version management for development and production.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 98.6%
  • Other 1.4%