Update: More gold-standard modules, imminent Hackage release
Hello, all! It is time for another update, but first:
I must apologize, for I have fallen prey to my tendency to keep my eyes on the horizon instead of on the finish line, and have ended up moving my own goalposts. Truth be told, botan-bindings
and botan-low
passed the finish line some time ago, and I really should have pulled the trigger on publishing them already.
This is where I really appreciate the community framework; weekly meetings with Jos茅 have been helping me to keep my updates more regular, and also keep me on track and appraised of any concerns. Frankly, I don鈥檛 want to be a silo鈥檇 developer, and communication is an essential part of that.
As such, a minor course correction: I鈥檓 switching focus, and the goal of the next update is going to be the publishing of botan-bindings
and botan-low
to hackage as a candidate package (alongside the third monthly status report, of course, which is also now due! Egads!).
I am a bit anxious, never having published a package to hackage before. I look at the project and its very easy for me to forget what I鈥檝e done, and only see what still needs to be done, or could be done - perfectionist鈥檚 disease. Its fine, it doesn鈥檛 have to be perfect, it just has to be sufficient for initial release, and it is. We can still keep working on it after we publish.
There鈥檚 a few things that must happen before publishing:
First, according to hackage requirements, I need someone to endorse me, so if a fine citizen or two could assist me in this, I would appreciate it.
Secondly, there鈥檚 the minor question of pkgconfig-depends
vs extra-libraries
. Right now, the stanzas in botan-bindings.cabal
look like this:
library
...
includes:
botan/ffi.h
if os(windows)
extra-libraries: botan-3
else
pkgconfig-depends: botan-3 >= 3.0.0
...
This has been working so far, but I want to ensure is configured properly, since it is how we link to the Botan C++
library. There are more than a few different ways of handling this, spread over several discussions:
- What's the benefit of pkgconfig-depends?
- Allowing pkg-config to fail 路 Issue #6771 路 haskell/cabal 路 GitHub
- Backtrack when no pkgconfigdb is present by gbaz 路 Pull Request #7621 路 haskell/cabal 路 GitHub
I鈥檇 like to handle it properly - if I鈥檝e read the discussions correctly, we can crank the cabal version dependency up and improve it. I鈥檇 appreciate any suggestions here.
Thirdly, I need to go over botan-bindings
and botan-low
with a fine-toothed comb and do a few things like establish dependency version constraints to make the package acceptable to hackage. I鈥檒l be on this for the next few days, and then hopefully upload it as a candidate on Monday.
So, time to get it done!
Now, back to this update.
- The following modules have been completed to gold-standard, and conform to
Botan.Types.Class
:- Botan.BlockCipher
- AES
- ARIA
- Blowfish
- Camellia
- CAST
- DES
- GOST
- IDEA
- Noekeon
- SEED
- Serpent
- SHALCAL
- SM4
- Threefish
- Twofish
- Botan.BlockCipher
- I鈥檝e added a temporary BlockCipher128 typeclass while a proper blocksize constraint is developed.
- There have been improvements to error reporting, and the last exception message is now attached to any thrown Haskell exceptions.
- I鈥檝e laid out a Botan.Easy module that exposes a
saltine
-like interface of recommended algorithms
That鈥檚 all for now, it鈥檚 been pushed to the repo. We鈥檒l be back on this stuff after we publish to hackage.