[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [MirageOS-devel] [ANN] Topkg 0.7.0
Hello (last one today, promised), I'd like to announce the first release of topkg. For those who know topkg, it is no longer an embedded script but a library that you add as a build dependency to your package. It now also comes with an optional tool that helps you to manage your package and make swift and correct releases. Bla bla bla: ``` Topkg is a packager for distributing OCaml software. It provides an API to describe the files a package installs in a given build configuration and to specify information about the package's distribution creation and publication procedures. The optional topkg-care package provides the `topkg` command line tool which helps with various aspects of a package's life cycle: creating and linting a distribution, releasing it on the WWW, publish its documentation, add it to the OCaml OPAM repository, etc. Topkg is distributed under the ISC license and has **no** dependencies. This is what your packages will need as a *build* dependency. Topkg-care is distributed under the ISC license and depends on fmt, logs, bos, cmdliner and opam-lib. ``` Install: opam install topkg topkg-care Homepage: http://erratique.ch/software/topkg API docs & manual: http://erratique.ch/software/topkg/doc/Topkg.html#basics See also `topkg help release` and `topkg help` A few things worth noting: * Topkg pretends to work on Windows (provided your build system does) but early users may need to give a hand, please do report issues if things go wrong. * Topkg pretends to be able to work with hg source repositories, the same as for Windows applies. * Topkg should be able to work with other build systems than ocamlbuild. But a few things (e.g. documentation support or dependency linting) do at the moment rely on ocamlbuild being used. It's not my priority but I'm not against improving it to make it easier to use with other build systems. * Topkg only supports OCaml from 4.01 on and hence will also impose this limit on your packages. * Topkg has toy, proof of concept, support to publish documentation and distributions via GitHub's pages and release system. I'm personally not using this so do not hesitate to report broken or suboptimal behaviour. Better support — especially gh issue interaction for 'topkg issue' and better authentication would be nice, but is left in the hands of a motivated github user. Someone should develop and distribute a good github topkg delegate (e.g. using ocaml-github) that github users can install; see 'toy-github-topkg-delegate --help' and 'topkg help delegate'; the source of the toy delegate [1] can be used as a blueprint. Do not hesitate to get in touch for more information and/or design discussion. Topkg may not be the final word in OCaml building & packaging, however, depending on your needs, topkg's release workflow (see 'topkg help release') may come as a significant improvement over the current status quo. I have been using a similar but more ad-hoc system with my packages for a few years now since I realized that oasis was getting in my way to scale modularity. Except for the maintainability problem of having an embedded script which is now gone with this new incarnation of topkg, it has already been shown to work quite well in practice for me and a limited number of other persons, in a large range of software install scenarios, YMMV. Best, Daniel P.S. If you are on github and start to use `topkg` you can mention me (@dbuenzli) in the inaugural PR or commit, I'm interested to see how it is used and misused. [1] https://github.com/dbuenzli/topkg/blob/v0.7.0/src-bin/toy_github_delegate.ml _______________________________________________ MirageOS-devel mailing list MirageOS-devel@xxxxxxxxxxxxxxxxxxxx http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |