caml-list - the Caml user's mailing list
 help / Atom feed
From: "Josh Berdine" <josh@berdine.net>
To: "Ocaml Mailing List" <caml-list@inria.fr>
Subject: Re: [Caml-list] opam and dune [Was: How to use -map]
Date: Thu, 08 Aug 2019 20:03:22 +0100
Message-ID: <F84AA9C6-2BE1-4328-A32F-703FCC58D50B@berdine.net> (raw)
In-Reply-To: <CAJbYVJLjFSo8i2S1=6X=fxpxeZuZYjuf-8Rq6FvN9M791gc+pA@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3614 bytes --]

FWIW, there is a very similar stumbling block when working on a pinned 
package that has an opam file in the opam repo but not in the package's 
own source repo. In this case the problem does not have anything to do 
with whether the opam file is generated or not, and is independent of 
dune.

This situation arises if e.g. you `opam pin --dev` (or pin a local git 
clone of) such a package, and then make source changes that also require 
changes to the opam file. At that point, opam uses the opam file from 
the opam repo whether or not there is a local one (that is not in source 
control).

Perhaps this situation is too uncommon to warrant the time to address 
it, but I have hit it and don't know a satisfactory work-around.

Cheers, Josh

On 8 Aug 2019, at 19:05, Yawar Amin wrote:

> Checking in generated build system files is fairly common practice 
> now.
> Lots of build systems/package managers have 'lockfiles' that are 
> generated
> to help with reproducible builds. These need to be checked in. In fact 
> I
> think opam has two different ways of generating 'lockfiles'.
>
> Regards,
>
> Yawar
>
> On Wed, Aug 7, 2019 at 4:32 PM Ian Zimmerman <itz@very.loosely.org> 
> wrote:
>
>> On 2019-08-06 11:47, Ian Zimmerman wrote:
>>
>>> So, for now, I'm sticking with Makefiles. :-P
>>
>> I decided to give dune a try, mostly to give myself an excuse to
>> procrastinate with other projects.  After some rough going but being
>> able to figure it out, I hit what seems like an impassable strait.
>>
>> dune generates the $package.opam file, therefore that file should not 
>> be
>> on version control.  _But_ then "opam pin ." insists on getting that
>> very file from the version control repo, instead of using the local 
>> one:
>>
>>  matica!179 aaa$ opam pin .
>> [NOTE] Package aaa is already pinned to
>> git+file:///home/itz/git/aaa#master (version 0.0.8~dev).
>> [aaa.0.0.8~dev] no changes from git+file:///home/itz/git/aaa#master
>> [WARNING] aaa's opam file has uncommitted changes, using the 
>> versioned one
>> aaa is now pinned to git+file:///home/itz/git/aaa#master (version
>> 0.0.8~dev)
>> The following actions will be performed:
>>   - install aaa 0.0.8~dev*
>> Do you want to continue? [Y/n] y
>> [aaa.0.0.8~dev] synchronised from git+file:///home/itz/git/aaa#master
>>
>> <><> Processing actions
>> <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
>> [ERROR] The compilation of aaa failed at
>> "/home/itz/.local/packages/opam/opam-init/hooks/sandbox.sh build dune
>>         subst".
>>
>> #=== ERROR while compiling aaa.0.0.8~dev
>> ======================================#
>> # context     2.0.4 | linux/x86_64 | ocaml-base-compiler.4.07.1 |
>> pinned(git+file:///home/itz/git/aaa#master#193ad3bd)
>> # path
>> ~/.local/packages/opam/default/.opam-switch/build/aaa.0.0.8~dev
>> # command     ~/.local/packages/opam/opam-init/hooks/sandbox.sh build 
>> dune
>> subst
>> # exit-code   1
>> # env-file    ~/.local/packages/opam/log/aaa-10257-b76d46.env
>> # output-file ~/.local/packages/opam/log/aaa-10257-b76d46.out
>> ### output ###
>> # Error: No <package>.opam files found.
>>
>>
>>
>> <><> Error report
>> <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
>> +- The following actions failed
>> | - build aaa 0.0.8~dev
>> +-
>> - No changes have been performed
>>
>> So how do you get around this?
>>
>> --
>> Please don't Cc: me privately on mailing lists and Usenet,
>> if you also post the followup to the list or newsgroup.
>> To reply privately _only_ on Usenet and on broken lists
>> which rewrite From, fetch the TXT record for no-use.mooo.com.
>>



[-- Attachment #2: Type: text/html, Size: 5124 bytes --]

  reply index

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-31 21:18 [Caml-list] How to use -map , -no-alias-deps and friends? Ian Zimmerman
2019-07-31 21:52 ` Nicolás Ojeda Bär
2019-08-06 18:48   ` Ian Zimmerman
2019-08-07 20:32     ` [Caml-list] opam and dune [Was: How to use -map] Ian Zimmerman
2019-08-08  1:39       ` Rudi Grinberg
2019-08-08 17:48         ` Hendrik Boom
2019-08-08 17:54           ` Rudi Grinberg
2019-08-08 19:38             ` Daniel Bünzli
2019-11-15  0:32         ` Ian Zimmerman
2019-08-08 18:05       ` Yawar Amin
2019-08-08 19:03         ` Josh Berdine [this message]
2019-07-31 22:08 ` [Caml-list] How to use -map , -no-alias-deps and friends? Florian Angeletti
2019-07-31 23:15   ` Ian Zimmerman
2019-08-01  9:40     ` Florian Angeletti

Reply instructions:

You may reply publically 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=F84AA9C6-2BE1-4328-A32F-703FCC58D50B@berdine.net \
    --to=josh@berdine.net \
    --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

caml-list - the Caml user's mailing list

Archives are clonable: git clone --mirror https://inbox.ocaml.org/caml-list

AGPL code for this site: git clone https://public-inbox.org/ public-inbox