Skip to content

New repository is not completely loaded when packages/opam path exists #7083

Description

@rjbou

If a new repository (no diff loading) contains the path packages/opam, opam tries to load that opam file, soft fails, doesn't read the other paths under packages/ and register the repository.

### OPAMDEBUGSECTIONS="FILE(opam) opam-file RSTATE UPDATE" OPAMDEBUG=-3 opam repository add new-default-strict ./REPO --this-switch --strict
FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s
RSTATE LOAD-REPOSITORY-STATE @ ${BASEDIR}/OPAM
RSTATE Cache found
[new-default-strict] Initialised
UPDATE Repository has new changes
RSTATE load repo new-default-strict from dir
FILE(opam) Read packages/opam (out of ${BASEDIR}/OPAM/repo/new-default-strict) in 0.000s
RSTATE ERR: directory name not a valid package: ignored ${BASEDIR}/OPAM/repo/new-default-strict/packages/opam
### OPAMDEBUGSECTIONS="FILE(opam) opam-file RSTATE UPDATE" OPAMDEBUG=-3 opam repository add new-default ./REPO --this-switch
FILE(config) Read ${BASEDIR}/OPAM/config in 0.000s
RSTATE LOAD-REPOSITORY-STATE @ ${BASEDIR}/OPAM
RSTATE Cache found
[new-default] Initialised
UPDATE Repository has new changes
RSTATE load repo new-default from dir
FILE(opam) Read packages/opam (out of ${BASEDIR}/OPAM/repo/new-default) in 0.000s
RSTATE ERR: directory name not a valid package: ignored ${BASEDIR}/OPAM/repo/new-default/packages/opam
### :XII:1:b: List available package
### opam switch create opam-at-root-pkg-sw-from-scratch --empty --repo=new-default,new-default-strict
### opam repository --this-switch
<><> Repository configuration for switch opam-at-root-pkg-sw-from-scratch <><><>
1 new-default file://${BASEDIR}/REPO
2 new-default-strict file://${BASEDIR}/REPO
### opam list -A --repo new-default-strict
# Packages matching: from-repository(new-default-strict) & any
# No matches found

Found when looking at #6871 & #6924

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions