Skip to content

Add Alire and Octave manifest support #103

Description

@andrew

Add manifest support for Alire and GNU Octave so consumers can discover their dependencies without treating them as another package ecosystem. Checked through the public manifests.Parse entrypoint at revision 33c7742ad0854ad9c2125b803ae442cc29fb5099, using Go 1.27.1.

An Alire manifest is currently rejected:

result, err := manifests.Parse("alire.toml", []byte(`
name = "hello"
version = "1.0.0"
description = "Hello world"
licenses = "MIT"

[[depends-on]]
libhello = "^1.0.0"
`))
// err: unknown manifest file: alire.toml

An Octave package description is accepted as CRAN:

result, err := manifests.Parse("DESCRIPTION", []byte(`Name: hello
Version: 1.0.0
Date: 2026-09-22
Author: Example
Maintainer: Example
Title: Hello world
Description: A sample Octave package.
Depends: octave (>= 4.0.0)
License: GPL-3.0-or-later
`))

The second call succeeds with Ecosystem: "cran", an empty package name and a dependency whose PURL is pkg:cran/octave. It should recognise the Octave format and preserve its identity and requirements. Existing R DESCRIPTION parsing must continue to work, with ambiguous inputs handled explicitly.

For Alire, parse package identity, licenses and depends-on declarations while preserving conditional dependencies and distinctions between registry dependencies and local/Git overrides. The Alire catalog specification documents the format. Octave's package index provides real package archives for fixtures.

Add tests through public Parse with realistic inputs for both formats and regression coverage for R. Brief currently encounters these gaps during package discovery; the format support belongs here so all consumers receive the same result.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions