Friday, March 28, 2014

Elixir and breakage on Travis

Development on Elixir is still moving at break neck speed and currently they have bumped up their Erlang version to support RB17-r1 for the map support.

There is a lot of delicious goodness that will eventually come but this also causes a lot of fun breakage on Travis and Drone.io if you test your projects there.

Currently while Travis supports RB17-r1 in their otp_release, you might want to choose not to test your apps against that. If that is the case, you can change your .travis.yml from using trunk to using a release by changing the steps a little bit:

 
otp_release:
     - R16B03-1
before_install: 
     - git clone git://github.com/elixir-lang/elixir
     - cd elixir && make && cd ..
 before_script:
    - "export PATH=`pwd`/elixir/bin:$PATH"
    - export PATH=`pwd`/elixir/bin:$PATH
     - MIX_ENV=test mix do deps.get
 script:
     - MIX_ENV=test mix test
 
To:
 
otp_release:
    - R16B02
before_install:
    - wget -c https://github.com/elixir-lang/elixir/archive/v0.12.5.tar.gz
    - tar -xvzf v0.12.5.tar.gz
    - cd elixir-0.12.5 && make && cd ..
before_script:
    - export PATH=`pwd`/elixir-0.12.5/bin:$PATH
    - MIX_ENV=test mix do deps.get
    - MIX_ENV=test mix do deps.compile
script:
    - MIX_ENV=test mix amrita --trace 

 
 
The drone.io settings should be something similar. 
 
Found a better way of doing this which is you don't really have to use the manual wget method but you can just clone the repo then check out a branch within it. That way you don't have to tangle with all the version string messiness. Check out my final version:

https://raw.githubusercontent.com/lowks/Radpath/master/.travis.yml

Monday, March 17, 2014

Eixir: Radpath -> A library inspired by Python's enhpath.py

Have not been spending a lot of quality time with Python these days, rather have been trying my hand at being a polyglot and trying out a few of them new languages over the horizon like:

I tried these languages mostly through the exercises in exercism.io which was really a refreshing time away from my beloved Python who I have used for years. Taking a holiday away from the true and tried sometimes and going on the path of least traveled can provide refreshing view on what you are doing and bring you back charged up with ideas. 

Out of all of them, Elixir with it's famous "|>" pipe-lining stuck with me and seemed to map with the noggin' the most with it's root mostly planted on the Ruby sphere with some Erlang love sprinkled here and there.

While using it's File and Path library, though I missed a lot of the OO style Python libraries, and seeing as how there didn't seem to be any good ones out there, I decided to go home one weekend and roll my own! There and behold, Radpath was born! I have only implemented some very basic functions like file listing with filtering, directory listing, and tempfiles.

While this is not really a Python post per-say, but I would say that the main inspiration for this library is the multitudes of great OO path libraries I have had the pleasure of using for all my time in Python, so enjoy the library and don't forget to leave a suggestion or two.