The haskell pipes platform
To quickly get the latest non-haddock suite of pipes-4.0 you have two options:
A sources.txt is maintained so all packages can be installed with:
cabal-meta install -j
Or if you are using cabal-dev
:
cabal-meta --dev install -j
If you are using an old version of Cabal
, then the -j
switch (which enables
installing packages in parallel) might not be available. Just remove it.
clone and update
git clone https://github.com/Gabriel439/pipes-platform.git
cd pipes-platform
git submodule update --init --remote (--rebase)
The submodule command is somewhat dependent on your git version, or otherwise reliant on the git gods so your mileage may vary. If the above doesn't work try just:
git submodule update --init
as --remote is a more modern git convention.
This grabs each of the libraries as submodules, and inserts them into the deps directory.
install
You then just have to cabal install
within each of the deps directories (using the order in .travis.yml).
To add a library,
Starting with a fresh fork of this repo:
git checkout -b new-lib
git submodule add -b master https://github.com/bgamari/pipes-vector.git deps/pipes-vector
git submodule update --remote --rebase
Add the repository to cabal-meta
's sources.txt
file:
echo "https://github.com/bgamari/pipes-vector.git master" >> sources.txt
Add the package to pipes-platform.cabal
, and to .travis.yml
push the new commit and send a pull request
git push origin new-lib
The approximate work-flow goes something like this:
Start with a fresh fork and new branch
swap out the submodule reference by editing .submodule like so:
[submodule "deps/pipes-vector"]
path = deps/pipes-vector
- url = https://github.com/bgamari/pipes-vector.git
- branch = master
+ url = https://github.com/tonyday567/pipes-vector.git
+ branch = dep-fix
sync this change
git checkout -b lib-change
git submodule sync -- deps/pipes-vector
git submodule update --remote --rebase
git push origin new-lib
send a pull request
To quickly test and fix a travis-ci fail
a. log issue with upstream (and wait), or
b. attempt a hot-fix
branch:
fork the offending upstream library
git clone https://github.com/bgamari/pipes-vector.git master
cd pipes-vector
git checkout -b hot-fix
debug and hack the fix
git push origin hot-fix
to test start a new branch of pipes-platform and swap libraries in the same way as described in changng branches.
(optionally), push the hot-fix branch so travis can test it.
If it looks good, pull request the fix in step 2. to the upstream library