Overview: • About Miller • Miller in 10 minutes • File formats • Miller features in the context of the Unix toolkit • Record-heterogeneity • Internationalization Using Miller: • FAQ • Cookbook part 1 • Cookbook part 2 • Cookbook part 3 • Data-diving examples • Manpage • Reference • Reference: Verbs • Reference: DSL • Documents by release • Installation, portability, dependencies, and testing Background: • Why? • Why C? • Why call it Miller? • How original is Miller? • Performance Repository: • Things to do • Contact information • GitHub repo |
• Prebuilt executables • Building from source • From release tarball using autoconfig • From git clone using autoconfig • Without using autoconfig • Windows (beta) • Precompiled binaries • Building from source • Continuous build using Appveyor • In case of problems • Dependencies • Required external dependencies • Optional external dependencies • Internal dependencies • Creating a new release: for developers • Misc. development notes Miller license
Two-clause BSD license
https://github.com/johnkerl/miller/blob/master/LICENSE.txt.
Prebuilt executables
Please see
https://github.com/johnkerl/miller/releases where there are builds for OSX
Yosemite, Linux i686 (statically linked), and Linux x86-64 (dynamically
linked).
Homebrew installation support for OSX is available via
brew update && brew install miller sudo apt-get install miller Building from sourceFrom release tarball using autoconfigMiller allows you the option of using GNU autoconfigure to build portably. Grateful acknowledgement: Miller’s GNU autoconfig work was done by the generous and expert efforts of Thomas Klausner.
From git clone using autoconfig
Without using autoconfigGNU autoconfig is familiar to many users, and indeed plenty of folks won’t bother to use an open-source software package which doesn’t have autoconfig support. And this is for good reason: GNU autoconfig allows us to build software on a wide diversity of platforms. For this reason I’m happy that Miller supports autoconfig. But, many others (myself included!) find autoconfig confusing: if it works without errors, great, but if not, the ./configure && make output can be exceedingly difficult to decipher. And this also can be a turn-off for using open-source software: if you can’t figure out the build errors, you may just keep walking. For this reason I’m happy that Miller allows you to build without autoconfig. (Of course, if you have any build errors, feel free to contact me at kerl.john.r+miller@gmail.com, — or, better, open an issue with “New Issue” at https://github.com/johnkerl/miller/issues.) Steps:
Windows (beta)Status as of 2017-04-15: Miller is built on Windows using MSYS2: http://www.msys2.org/. You can install MSYS2 and build Miller from its source code within MSYS2, and then you can use the binary from outside MSYS2. You can also use a precompiled binary.Precompiled binariesMiller releases from 5.1.0w onward will have a precompiled Windows binary, in addition to the MacOSX, Linux 32-bit static, and Linux 64-bit precompiled binaries as on previous releases. Important caveat: due to the issue tracked in https://github.com/Alexpux/MSYS2-packages/issues/872, you will need to download three files: the mlr.exe file as well as libpcre-1.dll and libpcreposix-0.dll. This situation is unfortunate and inconvenient; I felt it worthwhile to get a Windows beta out to users (due to demand) while this issue is being resolved. For example: C:\> mkdir \mbin. Then place libpcreposix-0.dll, libpcre-1.dll, and mlr.exe all into C:\mbin. Then put that into your %PATH%, e.g. with C:\> set PATH=%PATH%;\mbin.Building from sourceYou will first need to install MSYS2: http://www.msys2.org/. Then, start an MSYS2 shell, e.g. (supposing you installed MSYS2 to C:\msys2\) run C:\msys2\mingw64.exe. Within the MSYS2 shell, you can run the following to install dependent packages:pacman -Syu pacman -Su pacman -S base-devel pacman -S msys2-devel pacman -S mingw-w64-x86_64-toolchain pacman -S mingw-w64-x86_64-pcre pacman -S msys2-runtime C:\> set PATH=%PATH%;\msys64\mingw64\bin C:\> mkdir \mbin C:\> copy \msys64\mingw64\bin\libpcreposix-0.dll \mbin C:\> copy \msys64\mingw64\bin\libpcre-1.dll \mbin C:\> copy \msys64\wherever\you\installed\miller\c\mlr.exe \mbin C:\> set PATH=%PATH%;\mbin Continuous build using AppveyorCurrently Miller is autorun using Travis on every build (https://travis-ci.org/johnkerl/miller/builds). This was set up by the generous assistance of SikhNerd on Github, tracked in https://github.com/johnkerl/miller/issues/15. There is a similar continuous-build system for Windows. As of 2017-04-15 https://ci.appveyor.com/project/johnkerl/miller is not correctly set up, but in the future, it will auto-build Miller commits and releases.In case of problems
If you have any build errors, feel free to contact me at kerl.john.r+miller@gmail.com,
— or, better, open an issue with “New Issue” at
https://github.com/johnkerl/miller/issues.
DependenciesRequired external dependenciesThese are necessary to produce the mlr executable.
Optional external dependenciesThis documentation pageset is built usingInternal dependenciesThese are included within the Miller source tree and do not need to be separately installed (and in fact any separate installation will not be picked up in the Miller build):
Creating a new release: for developers
At present I’m the primary developer so this is just my checklist for making new releases.
In this example I am using version 3.4.0; of course that will change for subsequent revisions.
git remote add upstream https://github.com/Homebrew/homebrew-core # one-time setup only git fetch upstream git rebase upstream/master git checkout -b miller-3.4.0 shasum -a 256 /path/to/mlr-3.4.0.tar.gz edit Formula/miller.rb git add Formula/miller.rb git commit -m 'miller 3.4.0' git push -u origin miller-3.4.0 (submit the pull request)Social-media updates. Afterwork:
Misc. development notes
I use terminal width 120 and tabwidth 4.
|