mirror of
https://github.com/commercialhaskell/stackage.git
synced 2026-01-12 15:28:29 +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
|
||||
guys who maintain the Stackage project itself - should be doing on a regular basis.
|
||||
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.
|
||||
|
||||
## 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.
|
||||
|
||||
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
|
||||
|
||||
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:
|
||||
|
||||
* 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 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.
|
||||
|
||||
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
|
||||
`lts-3.22`), please do the following in addition to the steps above:
|
||||
release (e.g., if `lts-8.9` is out, you would want your package to appear in
|
||||
`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)
|
||||
* 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
|
||||
* 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:
|
||||
|
||||
* 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 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 -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
|
||||
|
||||
@ -34,6 +38,7 @@ apt-get install -y \
|
||||
sudo \
|
||||
curl \
|
||||
freeglut3-dev \
|
||||
fsharp \
|
||||
git \
|
||||
gradle \
|
||||
libadns1-dev \
|
||||
@ -66,6 +71,7 @@ apt-get install -y \
|
||||
libgtksourceview-3.0-dev \
|
||||
libhidapi-dev \
|
||||
libicu-dev \
|
||||
libimlib2-dev \
|
||||
libjudy-dev \
|
||||
liblapack-dev \
|
||||
libleveldb-dev \
|
||||
@ -75,6 +81,7 @@ apt-get install -y \
|
||||
libmagickcore-dev \
|
||||
libmagickwand-dev \
|
||||
libmarkdown2-dev \
|
||||
libmono-2.0-dev \
|
||||
libmp3lame-dev \
|
||||
libmpfr-dev \
|
||||
libmysqlclient-dev \
|
||||
@ -111,11 +118,12 @@ apt-get install -y \
|
||||
llvm-3.7 \
|
||||
locales \
|
||||
m4 \
|
||||
minisat \
|
||||
mono-mcs \
|
||||
nettle-dev \
|
||||
nodejs \
|
||||
npm \
|
||||
openjdk-8-jdk \
|
||||
protobuf-compiler \
|
||||
python-mpltoolkits.basemap \
|
||||
python3-matplotlib \
|
||||
python3-numpy \
|
||||
@ -183,7 +191,69 @@ wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \
|
||||
&& apt-get update \
|
||||
&& 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
|
||||
#apt-add-repository multiverse \
|
||||
# && apt-get update \
|
||||
# && 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