mirror of
https://github.com/commercialhaskell/stackage.git
synced 2026-02-02 09:30:28 +01:00
commit
be62d7a7b1
22
CURATORS.md
22
CURATORS.md
@ -1,7 +1,7 @@
|
|||||||
This is a collection of instructions covering the processes that the Stackage curators - the
|
This is a collection of instructions covering the processes that the Stackage curators - the
|
||||||
guys who maintain the Stackage project itself - should be doing on a regular basis.
|
guys who maintain the Stackage project itself - should be doing on a regular basis.
|
||||||
Originally this was handled largely by Michael Snoyman,
|
Originally this was handled largely by Michael Snoyman,
|
||||||
but now we are a team of 4 people handling requests weekly in rotation.
|
but now we are a team of 5 people handling requests weekly in rotation.
|
||||||
Curation activities are mostly automated, and do not take up a significant amount of time.
|
Curation activities are mostly automated, and do not take up a significant amount of time.
|
||||||
|
|
||||||
## Workflow overview
|
## Workflow overview
|
||||||
@ -223,6 +223,26 @@ rm -r nightly/work/builds/nightly/
|
|||||||
```
|
```
|
||||||
This should also be done when moving the Nightly docker image to a new version of Ubuntu.
|
This should also be done when moving the Nightly docker image to a new version of Ubuntu.
|
||||||
|
|
||||||
|
If you're impatient and would like to build the Docker image on the
|
||||||
|
build server instead of waiting for Docker Hub, you can run the
|
||||||
|
following command:
|
||||||
|
|
||||||
|
```
|
||||||
|
DIR=$(mktemp -d)
|
||||||
|
(cd $DIR \
|
||||||
|
&& git clone https://github.com/fpco/stackage \
|
||||||
|
&& cd stackage \
|
||||||
|
&& docker build --tag snoyberg/stackage:nightly .)
|
||||||
|
rm -rf $DIR
|
||||||
|
```
|
||||||
|
|
||||||
|
Note that we do a clean clone of the `stackage` repo instead of using
|
||||||
|
the existing checkout because of how `docker build` works: it will
|
||||||
|
send the entire local directory contents as context to the Docker
|
||||||
|
daemon, which in the case of the build tree is a _lot_ of content. (We
|
||||||
|
can discuss the wisdom—or lack thereof—of Docker's
|
||||||
|
approach separately.)
|
||||||
|
|
||||||
## stackage-build server
|
## stackage-build server
|
||||||
|
|
||||||
You'll need to get your SSH public key added to the machine. ~/.ssh/config info:
|
You'll need to get your SSH public key added to the machine. ~/.ssh/config info:
|
||||||
|
|||||||
@ -2,7 +2,7 @@ This project is built around the concept of maintainers taking responsibility fo
|
|||||||
|
|
||||||
The idea behind Stackage is that, if all packages work with the newest versions of dependencies, we avoid dependency hell. Specifically, we aim for:
|
The idea behind Stackage is that, if all packages work with the newest versions of dependencies, we avoid dependency hell. Specifically, we aim for:
|
||||||
|
|
||||||
* All packages are buildable and testable from Hackage. We recommend [the Stack Travis script](http://docs.haskellstack.org/en/stable/GUIDE.html#travis-with-caching), which ensures a package is not accidentally incomplete.
|
* All packages are buildable and testable from Hackage. We recommend [the Stack Travis script](https://docs.haskellstack.org/en/stable/travis_ci/), which ensures a package is not accidentally incomplete.
|
||||||
* All packages are compatible with the newest versions of all dependencies (You can find restrictive upper bounds by visiting http://packdeps.haskellers.com/feed?needle=PACKAGENAME).
|
* All packages are compatible with the newest versions of all dependencies (You can find restrictive upper bounds by visiting http://packdeps.haskellers.com/feed?needle=PACKAGENAME).
|
||||||
* All packages in a snapshot are compatible with the versions of libraries that ship with the GHC used in the snapshot ([more information on lenient lower bounds](https://www.fpcomplete.com/blog/2014/05/lenient-lower-bounds)).
|
* All packages in a snapshot are compatible with the versions of libraries that ship with the GHC used in the snapshot ([more information on lenient lower bounds](https://www.fpcomplete.com/blog/2014/05/lenient-lower-bounds)).
|
||||||
|
|
||||||
@ -105,10 +105,11 @@ following the above steps, you can get your package into the next major LTS
|
|||||||
Haskell release.
|
Haskell release.
|
||||||
|
|
||||||
If you would like to get your package added to an existing LTS Haskell major
|
If you would like to get your package added to an existing LTS Haskell major
|
||||||
release (e.g., if `lts-3.21` is out, you would want your package to appear in
|
release (e.g., if `lts-8.9` is out, you would want your package to appear in
|
||||||
`lts-3.22`), please do the following in addition to the steps above:
|
`lts-8.10`), please do the following in addition to the steps above:
|
||||||
|
|
||||||
* Open up a new issue on the [lts-haskell repo](https://github.com/fpco/lts-haskell/issues/new)
|
* Open up a new issue on the [lts-haskell repo](https://github.com/fpco/lts-haskell/issues/new)
|
||||||
* Specify the LTS major version you would like your package to go into (e.g., lts-3)
|
* Specify the LTS major version you would like your package to go into (e.g., lts-8)
|
||||||
* Provide a list of packages you would like added, and if relevant, any upper bounds on those packages
|
* Provide a list of packages you would like added, and if relevant, any upper bounds on those packages
|
||||||
* Be patient! The LTS releases are by their nature more conservative than nightly, and therefore adding new packages is a more manual process. The Stackage curators will try to get to your issue quickly, but there may be some delay.
|
* Be patient! The LTS releases are less frequent than Nightly and by their nature more conservative, and therefore adding new packages is a more manual process. The Stackage curators will try to get to your issue as soon as possible, but it may take some time.
|
||||||
|
* To add a package to more than one LTS version please file separate tickets for each major LTS release, since they will typically be built and added at different times.
|
||||||
|
|||||||
@ -17,7 +17,7 @@ Add your package
|
|||||||
We welcome all packages, provided:
|
We welcome all packages, provided:
|
||||||
|
|
||||||
* The package author/maintainer agrees to the [maintainers agreement](https://github.com/fpco/stackage/blob/master/MAINTAINERS.md).
|
* The package author/maintainer agrees to the [maintainers agreement](https://github.com/fpco/stackage/blob/master/MAINTAINERS.md).
|
||||||
* The package is buildable and testable from Hackage. We recommend [the Stack Travis script](http://docs.haskellstack.org/en/stable/GUIDE.html#travis-with-caching), which ensures a package is not accidentally incomplete.
|
* The package is buildable and testable from Hackage. We recommend [the Stack Travis script](https://docs.haskellstack.org/en/stable/travis_ci/), which ensures a package is not accidentally incomplete.
|
||||||
* The package is compatible with the newest versions of all dependencies (You can find restrictive upper bounds by visiting http://packdeps.haskellers.com/feed?needle=PACKAGENAME).
|
* The package is compatible with the newest versions of all dependencies (You can find restrictive upper bounds by visiting http://packdeps.haskellers.com/feed?needle=PACKAGENAME).
|
||||||
* The package is compatible with the versions of libraries that ship with GHC ([more information on lenient lower bounds](https://www.fpcomplete.com/blog/2014/05/lenient-lower-bounds)).
|
* The package is compatible with the versions of libraries that ship with GHC ([more information on lenient lower bounds](https://www.fpcomplete.com/blog/2014/05/lenient-lower-bounds)).
|
||||||
|
|
||||||
|
|||||||
44
become-a-curator.md
Normal file
44
become-a-curator.md
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
## We are no longer accepting applications, please wait until next time
|
||||||
|
|
||||||
|
We are looking to expand the stackage curator team!
|
||||||
|
|
||||||
|
As a stackage curator you will help the community by curating and
|
||||||
|
publishing the widely used nightly and LTS snapshots: Collections of
|
||||||
|
packages that are guaranteed to play well together. All curators are
|
||||||
|
volunteers.
|
||||||
|
|
||||||
|
This is a great opportunity to contribute to the haskell community and get
|
||||||
|
familiar with the tools of the trade! You will also be in regular
|
||||||
|
contact with experienced community members.
|
||||||
|
|
||||||
|
We don't have any prerequisites, but familiarity with any of Haskell,
|
||||||
|
Cabal, Stack, Linux, Git, and Docker is a plus.
|
||||||
|
|
||||||
|
We work in shifts of one week, which means you will be on duty every
|
||||||
|
6th week. Our suggestion is to pair you up with another curator to
|
||||||
|
help out in the beginning.
|
||||||
|
|
||||||
|
The workload is usually about 30 minutes per day, whenever you have
|
||||||
|
time. The work consists of keeping the builds running on the build
|
||||||
|
server, filing issues for packages needing updates when new releases
|
||||||
|
occur, and closing resolved issues. The LTS snapshots are prepared
|
||||||
|
once a week. All communication with package maintainers happen on
|
||||||
|
github.
|
||||||
|
|
||||||
|
We also have a curator slack channel where we help each other out.
|
||||||
|
|
||||||
|
The current curator team consists of:
|
||||||
|
* Adam Bergmark
|
||||||
|
* Dan Burton
|
||||||
|
* Jens Petersen
|
||||||
|
* Luke Murphy
|
||||||
|
* Michael Snoyman
|
||||||
|
|
||||||
|
We onboarded Luke as the newest member a few months ago and this
|
||||||
|
helped us iron out and document the process further.
|
||||||
|
|
||||||
|
You can read the curator documentation here: https://github.com/fpco/stackage/blob/master/CURATORS.md
|
||||||
|
|
||||||
|
To apply, please fill in this form: [REDACTED]
|
||||||
|
|
||||||
|
If you applied last time, we encourage you to do so again!
|
||||||
File diff suppressed because it is too large
Load Diff
@ -20,6 +20,10 @@ apt-get install -y software-properties-common
|
|||||||
|
|
||||||
add-apt-repository ppa:hvr/ghc -y
|
add-apt-repository ppa:hvr/ghc -y
|
||||||
add-apt-repository -y ppa:marutter/rrutter
|
add-apt-repository -y ppa:marutter/rrutter
|
||||||
|
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
|
||||||
|
add-apt-repository -y --keyserver hkp://keyserver.ubuntu.com:80 'deb http://download.mono-project.com/repo/debian wheezy main'
|
||||||
|
add-apt-repository -y --keyserver hkp://keyserver.ubuntu.com:80 'deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main'
|
||||||
|
add-apt-repository -y --keyserver hkp://keyserver.ubuntu.com:80 'deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main'
|
||||||
|
|
||||||
GHCVER=8.0.2
|
GHCVER=8.0.2
|
||||||
|
|
||||||
@ -34,6 +38,7 @@ apt-get install -y \
|
|||||||
sudo \
|
sudo \
|
||||||
curl \
|
curl \
|
||||||
freeglut3-dev \
|
freeglut3-dev \
|
||||||
|
fsharp \
|
||||||
git \
|
git \
|
||||||
gradle \
|
gradle \
|
||||||
libadns1-dev \
|
libadns1-dev \
|
||||||
@ -66,6 +71,7 @@ apt-get install -y \
|
|||||||
libgtksourceview-3.0-dev \
|
libgtksourceview-3.0-dev \
|
||||||
libhidapi-dev \
|
libhidapi-dev \
|
||||||
libicu-dev \
|
libicu-dev \
|
||||||
|
libimlib2-dev \
|
||||||
libjudy-dev \
|
libjudy-dev \
|
||||||
liblapack-dev \
|
liblapack-dev \
|
||||||
libleveldb-dev \
|
libleveldb-dev \
|
||||||
@ -75,6 +81,7 @@ apt-get install -y \
|
|||||||
libmagickcore-dev \
|
libmagickcore-dev \
|
||||||
libmagickwand-dev \
|
libmagickwand-dev \
|
||||||
libmarkdown2-dev \
|
libmarkdown2-dev \
|
||||||
|
libmono-2.0-dev \
|
||||||
libmp3lame-dev \
|
libmp3lame-dev \
|
||||||
libmpfr-dev \
|
libmpfr-dev \
|
||||||
libmysqlclient-dev \
|
libmysqlclient-dev \
|
||||||
@ -111,11 +118,12 @@ apt-get install -y \
|
|||||||
llvm-3.7 \
|
llvm-3.7 \
|
||||||
locales \
|
locales \
|
||||||
m4 \
|
m4 \
|
||||||
|
minisat \
|
||||||
|
mono-mcs \
|
||||||
nettle-dev \
|
nettle-dev \
|
||||||
nodejs \
|
nodejs \
|
||||||
npm \
|
npm \
|
||||||
openjdk-8-jdk \
|
openjdk-8-jdk \
|
||||||
protobuf-compiler \
|
|
||||||
python-mpltoolkits.basemap \
|
python-mpltoolkits.basemap \
|
||||||
python3-matplotlib \
|
python3-matplotlib \
|
||||||
python3-numpy \
|
python3-numpy \
|
||||||
@ -183,7 +191,69 @@ wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \
|
|||||||
&& apt-get update \
|
&& apt-get update \
|
||||||
&& apt-get install -y llvm-4.0
|
&& apt-get install -y llvm-4.0
|
||||||
|
|
||||||
|
# Install version 3 of the protobuf compiler. (The `protobuf-compiler` package only
|
||||||
|
# supports version 2.)
|
||||||
|
curl -OL https://github.com/google/protobuf/releases/download/v3.3.0/protoc-3.3.0-linux-x86_64.zip \
|
||||||
|
&& sudo unzip -o protoc-3.3.0-linux-x86_64.zip -d /usr bin/protoc \
|
||||||
|
&& rm -f protoc-3.3.0-linux-x84_64.zip
|
||||||
|
|
||||||
|
# Install the TensorFlow C API.
|
||||||
|
curl https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-linux-x86_64-1.1.0.tar.gz > libtensorflow.tar.gz \
|
||||||
|
&& sudo tar zxf libtensorflow.tar.gz -C /usr \
|
||||||
|
&& rm libtensorflow.tar.gz \
|
||||||
|
&& ldconfig
|
||||||
|
|
||||||
## non-free repo for mediabus-fdk-aac
|
## non-free repo for mediabus-fdk-aac
|
||||||
#apt-add-repository multiverse \
|
#apt-add-repository multiverse \
|
||||||
# && apt-get update \
|
# && apt-get update \
|
||||||
# && apt-get install -y libfdk-aac-dev
|
# && apt-get install -y libfdk-aac-dev
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Install opencv.
|
||||||
|
|
||||||
|
OPENCV_VERSION="3.2.0"
|
||||||
|
|
||||||
|
apt-get install -y \
|
||||||
|
cmake \
|
||||||
|
pkg-config \
|
||||||
|
libjpeg-dev \
|
||||||
|
libtiff5-dev \
|
||||||
|
libjasper-dev \
|
||||||
|
libpng12-dev \
|
||||||
|
libavcodec-dev \
|
||||||
|
libavformat-dev \
|
||||||
|
libswscale-dev \
|
||||||
|
libxvidcore-dev \
|
||||||
|
libx264-dev \
|
||||||
|
libv4l-dev \
|
||||||
|
liblapacke-dev \
|
||||||
|
libgtk-3-dev \
|
||||||
|
libopenblas-dev \
|
||||||
|
libhdf5-dev \
|
||||||
|
libtesseract-dev \
|
||||||
|
libleptonica-dev \
|
||||||
|
python3-dev \
|
||||||
|
gfortran
|
||||||
|
|
||||||
|
# Make a new directory
|
||||||
|
rm -rf /tmp/opencv-build
|
||||||
|
mkdir /tmp/opencv-build
|
||||||
|
cd /tmp/opencv-build
|
||||||
|
|
||||||
|
# Download OpenCV
|
||||||
|
curl -L https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.tar.gz | tar xz
|
||||||
|
curl -L https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.tar.gz | tar xz
|
||||||
|
|
||||||
|
cd opencv-${OPENCV_VERSION}
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -D CMAKE_BUILD_TYPE=RELEASE \
|
||||||
|
-D CMAKE_INSTALL_PREFIX=/usr/local \
|
||||||
|
-D OPENCV_EXTRA_MODULES_PATH=/tmp/opencv-build/opencv_contrib-${OPENCV_VERSION}/modules
|
||||||
|
|
||||||
|
make -j
|
||||||
|
|
||||||
|
make install
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user