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 6C8D97EE20 for ; Thu, 15 Nov 2012 02:20:31 +0100 (CET) Received-SPF: None (mail4-smtp-sop.national.inria.fr: no sender authenticity information available from domain of berenger@riken.jp) identity=pra; client-ip=134.160.33.161; receiver=mail4-smtp-sop.national.inria.fr; envelope-from="berenger@riken.jp"; x-sender="berenger@riken.jp"; x-conformance=sidf_compatible Received-SPF: Pass (mail4-smtp-sop.national.inria.fr: domain of berenger@riken.jp designates 134.160.33.161 as permitted sender) identity=mailfrom; client-ip=134.160.33.161; receiver=mail4-smtp-sop.national.inria.fr; envelope-from="berenger@riken.jp"; x-sender="berenger@riken.jp"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: Pass (mail4-smtp-sop.national.inria.fr: domain of postmaster@postman.riken.jp designates 134.160.33.161 as permitted sender) identity=helo; client-ip=134.160.33.161; receiver=mail4-smtp-sop.national.inria.fr; envelope-from="berenger@riken.jp"; x-sender="postmaster@postman.riken.jp"; x-conformance=sidf_compatible; x-record-type="v=spf1" X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhoBAHxCpFCGoCGhmWdsb2JhbABEw2kBAQEBAQgLCwcUJ4IeAQEEAQwmAQVAEQsYCRYPCQMCAQIBRRMIAQEXh2oGC7s1jC0FgwCDJwOIWI0kgRyET41W X-IronPort-AV: E=Sophos;i="4.83,254,1352070000"; d="scan'208";a="162510509" Received: from postman1.riken.jp (HELO postman.riken.jp) ([134.160.33.161]) by mail4-smtp-sop.national.inria.fr with ESMTP; 15 Nov 2012 02:20:29 +0100 Received: from postman.riken.jp (postman1.riken.jp [127.0.0.1]) by postman.riken.jp (Postfix) with SMTP id C82F432C01A1; Thu, 15 Nov 2012 10:20:25 +0900 (JST) Received: from [172.27.98.103] (rikad98.riken.jp [134.160.214.98]) by postman.riken.jp (Postfix) with ESMTPA id 3A0CA32A0047; Thu, 15 Nov 2012 10:20:25 +0900 (JST) Message-ID: <50A44359.8060303@riken.jp> Date: Thu, 15 Nov 2012 10:20:25 +0900 From: Francois Berenger User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121028 Thunderbird/16.0.2 MIME-Version: 1.0 To: caml-list@inria.fr References: <20121114124355.7e8ca762@xivilization.net> <50A3AD8F.7020301@etorok.net> In-Reply-To: <50A3AD8F.7020301@etorok.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-PMX-Version: 5.6.0.2009776, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2012.11.15.11224 Subject: Re: [Caml-list] Preferred layout for new packages On 11/14/2012 11:41 PM, Török Edwin wrote: > 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). Nowadays, OPAM allows to install most OCaml software and libraries easily. For example: $ opam install omake Will install omake for you. Cf. http://opam.ocamlpro.com/ or https://github.com/OCamlPro/opam Regards, F. >> 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 >