From: Dario Teixeira <darioteixeira@yahoo.com>
To: OCaml mailing-list <caml-list@inria.fr>
Subject: [Caml-list] OPAM conventions
Date: Wed, 12 Dec 2012 06:47:00 -0800 (PST) [thread overview]
Message-ID: <1355323620.61324.YahooMailNeo@web120404.mail.ne1.yahoo.com> (raw)
Hi,
I've been looking at the OPAM package database -- trying to determine overall
conventions and best practices -- and I came across some inconsistencies.
Though in most cases these are purely cosmetical, I reckon that nevertheless
we could all benefit if some standardisation is agreed upon on. Examples:
1) Package naming
For some values of "foo", OPAM's package name for project "ocaml-foo"
is also "ocaml-foo", whereas for others is simply "foo". This is an
ackowledged issue by OPAM developers:
https://github.com/OCamlPro/opam-repository/issues/163
In my mind, there are only two sensible policies for naming OPAM packages:
a) OPAM packages should preserve the name of the original project.
Thus, if the project is named "ocaml-foo", the OPAM package will
also be "ocaml-foo".
b) OPAM packages should have the same name as the findlib entry.
If project "ocaml-foo" registers itself in findlib with name
"foo", then "foo" should also be the name of the OPAM package.
Good arguments can be made for and against each option. Though this
is largely a bike-shedding issue, I think the community should make
a decision sooner rather than later.
2) Invoking executables
To invoke, say, a configure script, some packages will nonchalantly
just declare ["./configure"] whereas others will ask the shell to
do it: ["sh" "configure"]. While either should work in any Unix
system, should one be preferred for compatibility with more exotic
systems?
3) Package removal
For most values of "foo", package "foo" will just declare ["ocamlfind"
"remove" "foo"]. However, this approach seems a bit brittle to me.
If the Makefile supports "uninstall" (which is the usually the case
for OASIS packages), then I reckon that ["%{make}%" "uninstall"]
should be preferred.
Having said that, it seems that ["%{make}%" "uninstall"] is currently
not working (OPAM tries to download the package de novo upon removal!).
Is this a bug or a feature?
4) Findlib dependency
Most packages do declare a dependency on ocamlfind. However, this is
not universal, even for packages that do register themselves with findlib.
What should be the standard here: always declare a dependency, or omit
it altogether since it is implied?
Thank you for your attention!
Best regards,
Dario Teixeira
next reply other threads:[~2012-12-12 14:48 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-12 14:47 Dario Teixeira [this message]
2012-12-12 16:53 ` Markus Mottl
2012-12-12 17:36 ` Anil Madhavapeddy
2012-12-12 18:01 ` Wojciech Meyer
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=1355323620.61324.YahooMailNeo@web120404.mail.ne1.yahoo.com \
--to=darioteixeira@yahoo.com \
--cc=caml-list@inria.fr \
/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