Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/juhp/devconf2018-talk-fedora-haskell

Presentation at devconf.cz 2018
https://github.com/juhp/devconf2018-talk-fedora-haskell

Last synced: 17 days ago
JSON representation

Presentation at devconf.cz 2018

Awesome Lists containing this project

README

        

% ![](20110717032101!Fedora_infinity.png "Fedora Logo"){ width=128 } ![](HaskellLogoStyPreview-1.png "Haskell Logo")\
Fedora Haskell and tracking Stackage
% Jens Petersen
% Devconf.cz 2018, Brno (Jan 28)

## I am Jens Petersen

Red Hat and Fedora

Fedora Haskell project and SIG founder

# Haskell

## Why Haskell and GHC?

- Functional purity and immutability
- Lazy evaluation
- Statically and strongly typed
- Good concurrency
- Native executables
- Garbage collected

## Examples of Haskell packages?

## Haskell packages

- pandoc
- ShellCheck
- xmonad and xmobar
- git-annex
- hledger
- shake

also: ghc, Purescript, Elm, Agda and idris

## [Enterprise Haskell](http://industry.haskell.org/)

- Facebook
- Banks (financial trading, etc)
- Cardano blockchain
- etc

Services: Well Typed, FP Complete, ...

# Haskell Ecosystem

## [Hackage](http://hackage.haskell.org)

main Haskell upstream package source repository

- cabal-install package tool
- has revisions of dependency bounds!

Package .cabal files have detailed metadata including dependencies allowing most packages to be packaged completely automatically

- [example](https://hackage.haskell.org/package/cabal-rpm)

## [Stackage](http://stackage.org)

Stable consistent buildable Haskell package sets

Currently about 2600 packages

- [example](https://www.stackage.org/package/cabal-rpm)

stack build tool

# Fedora Haskell

## Fedora Haskell SIG

Started in 2007

## Fedora Haskell challenges

currently ~450 Haskell sources packages in Fedora

GHC has strict version binary dependencies:

- updating ghc or libraries requires a lot of rebuilding

-

Lack of packaging manpower led to some deps subpackaging

## Fedora Haskell Packagers

Many people have helped with packaging including:

- Active:
Elliott\ Sales\ de\ Andrade,\
Robert-André\ Mauchin, Jens\ Petersen

- Packagers:
Ben\ Boeckel, Ricky\ Elrod, Zach\ Oglesby

- Former:
Bryan\ O'Sullivan, Yaakov\ Nemoy, Conrad\ Meyer, Lakshmi\ Narasimhan, Shakthi\ Kannan, Michel\ Salim

# Tools for Fedora Haskell

# cabal-rpm

## [cabal-rpm](https://hackage.haskell.org/package/cabal-rpm)

RPM packaging tool

- converts Haskell package .cabal files to RPM .spec files
- can update packages and refresh packaging

OpenSuse has also used cabal-rpm

## Demo of cabal-rpm

# Fedora Haskell Tools

## fedora-haskell-tools

- fhpkg: clones, diff's, pulls, commits packages
- fhbuild: builds locally, in mock, "chain" builds in Koji
- fhbz: refreshes or closes Update bugs with deps or builds

## Demo of fedora-haskell-tools

# Future plans

## Improvements to tools

- improve reliability (updating and koji building)
- async parallel building (also koji chain-build)
- docker for local building
- performance: caching of built package info
- editors for .cabal and .spec files
- push the Haskell types

- querying for Fedora (Haskell) packages\
(in the post-pkgdb world)

## Distro Haskell competition

- Nixos: all of Hackage!
- OpenSuse: Stackage LTS

## Continuous integration?

To keep Fedora in sync with Stackage LTS

Copr: build a subset of Stackage?

Koschei

Fedora CI

## Fedora Haskell Contributions

# Questions?

## More information

- Freenode #fedora-haskell
- Fedora Haskell SIG:
-
-
-