psimons
Automate Haskell Packaging
an invention by psimons
We have various individual tools to automate parts of the Haskell packaging process, like cabal-rpm
, but those tools aren't integrated into a fully automated system that keeps Haskell packages up-to-date with as little human intervention as possible. I would like to build that system. Stackage provides us with an accurate list of packages and versions that are known to work together well, and there are basically two flavors: the nightly snapshot (bleeding edge) and the LTS release (stable API). The former is appropriate for Tumbleweed, IMHO, and the latter is appropriate for stable releases like SLE or Leap.
Now, we can use cabal-rpm
to generate spec
files automatically for all packages in a Stackage release and check them into OBS. The process does need some tweaking, however, because cabal-rpm
generates spec files that don't always work well for SUSE. We could (a) branch cabal-rpm
and add SUSE-specific know-how to remedy that issue or we could (b) maintain a set of patches that adapt the generated spec files to our needs. Once the Stackage releases are available in an OBS development project, we need another automated process that submits all updated packages to openSUSE:Factory, etc.
Provide tools to analyze the life-time of maintenance and release requests in IBS/OBS
an invention by psimons
We need statistical analysis and key performance indicators to describe the lifetime of maintenance and release requests in IBS, for example: - How long does an update take starting from the time the first maintenance request is created and stopping at the time the update is released to customers?
Automatically guess changelog entries for Haskell packages from upstream
an invention by psimons
All our packages have a *.changes
file and ideally that file would mention relevant changes from upstream, i.e. during version updates. Currently, we find that information manually when packaging Haskell software. This is unsatisfactory because of the sheer size of the package set and the massive number of updates we receive from Hackage. The packaging itself is completely automatic, but editing the *.changes
files is not and this issue prevents us from shipping more packages in Tumbleweed and elsewhere.
Now, during this Hackweek I'd like to write code that given two Haskell package versions old
and new
can determine the upstream changelog entries between those two and create a pleasantly formatted entry for the *.changes
file that won't need any manual editing to pass the review team. Then I'd like to integrate this into cabal2obs
, or maybe even cabal2spec
.
Write a simple ESMTP mail server in Haskell
a project by psimons
Hackweek 21?
Postmaster desperately needs a mail spool. I need to come up with a good way to store meta information about queued messages. An sqlite database seems like a natural fit because I might want to do some nontrivial queries in there to figure out which messages to deliver (and where). On the other hand, interfacing with sqlite is a bit unpleasant, so instead I might want to write one big JSON file that contains all relevant information. That would certainly suffice for the first version ...
Learn DaVinci Resolve
an invention by psimons
Project Description
I've been using open-source video editing software like Shotcut before and I used to be pretty happy with it. Nowadays, however, I need more sophisticated workflows that allow me to process n-log video, do color grading, synchronize video and audio from multiple sources, have better looking effects, and so on. I've reached the point where Shotcut just can't do what I would like it to.
Update Haskell ecosystem in Tumbleweed to GHC-9.6.x
a project by psimons
Project Description
We are currently at GHC-9.4.x, which a bit old. So I'd like to take a shot at the latest version of the compiler, GHC-9.6.x. This is gonna be interesting because the new version requires major updates to all kinds of libraries and base packages, which typically means patching lots of packages to make them build again. A significant part of the development effort will be live-streamed on Twitch so that others can collaborate easily.
Looking for projects around:
Nothing at the moment
Activity