octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Octave-Forge: requirement for a maintainer Makefile for release


From: Carnë Draug
Subject: Re: Octave-Forge: requirement for a maintainer Makefile for release
Date: Sat, 10 Dec 2016 18:55:00 +0000

On 2 December 2016 at 13:24, Alexander Barth <address@hidden> wrote:
> "You can still keep all the 6 Makefile on your packages the same, it's
> just that you would have to sync them when a change is made.  You can
> even a one line Makefile that only calls your script (but your existing
> script would still have to be committed on the six repos).  I would
> guess that they wouldn't change much overtime so it wouldn't be too
> much of a burden."
>
> Yes, this is what I wanted to avoid: copying code in 6 different
> places and maintaining all 6 copies.
>
>
> Last time I checked, it was not necessary for R or Julia package to
> provide a Makefile for package containing only scripts. Shouldn't we
> rather make to process of submitting a package not as simple as
> possible (at least for packages which a just a collection of scripts
> without any C/C++ or Fortran code)? The number of octave package is
> with 69 (+33 unmaintained) rather low compared to Julia (1128
> including the unmaintained packages) or R (9624).

R and Julia packages do not need a Makefile and neither does Octave
which will happily install from a tarball.  The requirement is on
Octave Forge which is one site for Octave packages.

In Julia a package must be a git a repository and the structure in
the repository must be the structure of the "release" since the release
is just a tag on the repository [1].

In R I know of at least 3 package sites: CRAN, bioconductor, and r-forge.
I know little of those but at least bioconductor requires a fixed
structure on a github repository so that core language commands
("R CMD build") can build a package from a known commit in the
master branch [2].

They still require package maintainers to provide a commit hash (or tag)
to make the release just like we do at Octave Forge now.  They do not
require a Makefile but they require a fixed structure on the repository.

If a package in the repository has the same structure as the package
release, then making a release is as simple as exporting a specific
commit.  That will be a really simple Makefile and may looks pointless.
But requiring a Makefile instead of a fixed structure allows package
maintainers to develop in any structure they want.

Anyway, what the other projects do and don't do is not really important.
One of the requirements in Octave Forge is that we host a clone of the
repository from where releases can be made.  Until now we have been
trusting package maintainers but packages have been released with code
that was never committed.  A method to reproduce a release from the
repository is needed to prevent that and since a lot of packages already
have a maintainer Makefile, that seems like the best option.

Carnë

[1] 
http://docs.julialang.org/en/release-0.5/manual/packages/#package-development
[2] https://github.com/Bioconductor/Contributions/blob/master/CONTRIBUTING.md



reply via email to

[Prev in Thread] Current Thread [Next in Thread]