From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by sympa.inria.fr (Postfix) with ESMTPS id 9905D7EE20 for ; Wed, 14 Nov 2012 15:41:25 +0100 (CET) Received-SPF: None (mail4-smtp-sop.national.inria.fr: no sender authenticity information available from domain of edwin+ml-ocaml@etorok.net) identity=pra; client-ip=176.9.138.55; receiver=mail4-smtp-sop.national.inria.fr; envelope-from="edwin+ml-ocaml@etorok.net"; x-sender="edwin+ml-ocaml@etorok.net"; x-conformance=sidf_compatible Received-SPF: Pass (mail4-smtp-sop.national.inria.fr: domain of edwin+ml-ocaml@etorok.net designates 176.9.138.55 as permitted sender) identity=mailfrom; client-ip=176.9.138.55; receiver=mail4-smtp-sop.national.inria.fr; envelope-from="edwin+ml-ocaml@etorok.net"; x-sender="edwin+ml-ocaml@etorok.net"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: Pass (mail4-smtp-sop.national.inria.fr: domain of postmaster@mail.etorok.net designates 176.9.138.55 as permitted sender) identity=helo; client-ip=176.9.138.55; receiver=mail4-smtp-sop.national.inria.fr; envelope-from="edwin+ml-ocaml@etorok.net"; x-sender="postmaster@mail.etorok.net"; x-conformance=sidf_compatible; x-record-type="v=spf1" X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av8EAPqso1CwCYo3/2dsb2JhbABEgmzAUIEIgh4BAQQBQAEBNgIECwsYCRYPCQMCAQIBRRMIAheHaQcDB6dLhDcBBY8XBowtBYMAgyeVf4EcjyeCcQ X-IronPort-AV: E=Sophos;i="4.83,250,1352070000"; d="scan'208";a="162455508" Received: from mail.etorok.net ([176.9.138.55]) by mail4-smtp-sop.national.inria.fr with ESMTP; 14 Nov 2012 15:41:22 +0100 Received: from [IPv6:2a02:2f02:1022:e050:1e6f:65ff:fe23:db0d] (unknown [IPv6:2a02:2f02:1022:e050:1e6f:65ff:fe23:db0d]) by mail.etorok.net (Postfix) with ESMTPSA id BE7A446A8 for ; Wed, 14 Nov 2012 15:41:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=etorok.net; s=MAILOUT; t=1352904081; bh=V8ByvmezISfmAWMBbLQ7Ub4x/sUJe6geMmsn793U3CI=; h=Message-ID:Date:From:MIME-Version:To:Subject:References: In-Reply-To:Content-Type:Content-Transfer-Encoding; b=DZA8ozSdkFABJDzET8a/CpPuAqAdeKcsZjGwqc494ZT/gM89jf+Vc9XpiQ+NkMzYI pQ9/k+6os7oW2bGnW7Yg1fNWq1aNShBiYoHVmL9vuc0ftbDOR6eYJEuubNfiEuX/wC p3RAPFidyQZz4i7n1/pE/otv2bSDu2Vb/qQI5eJE= Message-ID: <50A3AD8F.7020301@etorok.net> Date: Wed, 14 Nov 2012 16:41:19 +0200 From: =?ISO-8859-1?Q?T=F6r=F6k_Edwin?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.10) Gecko/20121027 Icedove/10.0.10 MIME-Version: 1.0 To: caml-list@inria.fr References: <20121114124355.7e8ca762@xivilization.net> In-Reply-To: <20121114124355.7e8ca762@xivilization.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamav-milter 0.97.6 at mail X-Virus-Status: Clean Subject: Re: [Caml-list] Preferred layout for new packages On 11/14/2012 01:43 PM, Marek Kubica wrote: > Hi, > > I'm kinda new to the OCaml eco system and therefore a bit confused on a > number of issues: > > 1. Build system: what to use? I have tried OMake some time ago and > liked the automatic recompilation, but writing the OMakefiles was quite > awful and it does not seem popular. OMake has some nice features for more complex projects, for example polling the FS for changes and automatically rebuilding. However it requires your users to have OMake installed too, so ocamlbuild has an advantage here (it is installed together with the compiler). > What is the state of the art > solution? Try oasis, it provides a good starting point: http://oasis.forge.ocamlcore.org/ You can later extend it with custom rules in _tags/myocamlbuild.ml if needed. > > 2. Unit tests: I used OUnit which was okay, but maybe there are better > solutions? I've seen that there is Kaputt and I have seen that there is > https://github.com/camlunity/ocaml-quickcheck as well as > https://github.com/vincent-hugot/iTeML which was extracted from > batteries recently. Kaputt seems to be a superset of OUnit feature-wise, don't know about the others. I've only used OUnit. > > 3. Stdlib: I don't mind depending on batteries and/or core, are there > any reasons against? Especially in the unit tests it drove me nuts that > I wasn't able to display results without writing printers, and I know > batteries has at least a generic printer. Are you writing an application or a library? If you're writing a library it is probably better to avoid unneeded dependencies, or provide optional subpackages (see the recent thread about pgocaml.batteries). That way people who don't use batteries/core can still use your package. Best regards, --Edwin