caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Daniel Bünzli" <daniel.buenzli@erratique.ch>
To: OCaml List <caml-list@inria.fr>
Cc: "mirageos-devel@lists.xenproject.org"
	<mirageos-devel@lists.xenproject.org>
Subject: [Caml-list] [ANN] Topkg 0.7.0
Date: Mon, 23 May 2016 23:58:46 +0200	[thread overview]
Message-ID: <958923288A8E475CB578D73146F7FAFB@erratique.ch> (raw)

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



             reply	other threads:[~2016-05-23 21:58 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-23 21:58 Daniel Bünzli [this message]
2016-05-23 22:36 ` Paolo Donadeo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=958923288A8E475CB578D73146F7FAFB@erratique.ch \
    --to=daniel.buenzli@erratique.ch \
    --cc=caml-list@inria.fr \
    --cc=mirageos-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).