[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Octave-Forge: requirement for a maintainer Makefile for release
From: |
Oliver Heimlich |
Subject: |
Re: Octave-Forge: requirement for a maintainer Makefile for release |
Date: |
Sun, 11 Dec 2016 11:45:27 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Icedove/45.4.0 |
On 10.12.2016 19:55, Carnë Draug wrote:
> 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.
I can give an example from the interval package. I, as a developer,
have chosen not to put any generated files under version control. When
I started the package this seemed like a less important decision and I
have decided this way because it seemed like the cleanest solution.
As a consequence, making a release is not a simple “hg archive”. I need
a maintainer Makefile and have to regenerate a lot of files and patch
them into the tarball created by “hg archive”. This step involves a
bunch of more or less exotic programs which I do not expect to be
present at the user's computer (otherwise the files could have been
generated by src/Makefile during “pkg install”). All of these steps are
very specific to this particular package and when I wrote the maintainer
Makefile I didn't really care about interoperability of the Makefile for
different systems.
At the moment it is not easy to make a release for the interval package
unless you have installed all aforementioned dependencies.
However, if we decide that it should be easier to make or verify a
package release by a third party, I could just put the generated files
under version control. The maintainer Makefile would barely change,
except that the release target became much simpler after a fresh clone
of the repository. The other side of the coin is that I would have to
be more careful to keep generated files in sync during commits.
> 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.
The only problem that I see here is that you can get into “dependency
hell” as mentioned above. Putting all generated files under version
control could be a way out and this would also allow to simply “pkg
install” a development version directly from the source repository.
Best
Oliver