per-version hints proposal

Jon Turney jon.turney@dronecode.org.uk
Thu Dec 8 19:30:00 GMT 2016


On 30/08/2016 13:24, Jon Turney wrote:
> On 20/06/2016 16:28, Jon Turney wrote:
>> Currently, the setup.hint file is shared between all versions.
>>
>> This means that manual intervention (by the package maintainer, or on
>> sourceware) is needed when versions have different dependencies.
>>
>> To automate this problem out of existence, I suggest replacing the
>> setup.hint file in an upload with a package-version-release.hint file.
[...]
>> * 'curr', 'prev' and 'test' don't make sense on a per-version basis.  So
>> I suggest a separate file for these version overrides (versions.hint?)
>
> This file is called override.hint.

While not a great deal of use is made of test versions, this mechanism 
doesn't seem to be working well for that, and there have been several 
requests to improve it.

There's no automation to generate override.hint, and writing it 
correctly requires too much knowledge about how calm is going to process it.

(e.g. if the curr: version is N, we can upload a version N+1 as test: 
with an override.hint that says 'test: N+1', but if we then want to 
upload version N+2 as a replacement test, you need to know that you 
should write an override.hint that says 'curr: N test: N+2' otherwise 
calm will automatically promote N+1 to curr (and vault any N-1, which 
makes this a pain to revert))

The proposal to address this is:

Add support to calm for a 'test:' line in PVR.hint, marking a version as 
a test version.

If multiple versions are marked test, the highest version will be used 
as the test version in the generated setup.ini (and thus offered for 
installation using the 'exp' control in setup.)

(Note to self: why isn't this control labelled 'test', which is an 
actual english word???)

Versions marked as test cannot be used as curr: (so test versions are 
never automatically promoted to curr)

override.hint will continue to work, and, if one exists it takes 
precedence over these rules.

cygport will be updated to (details TBC) accept a --test flag which is 
significant to the cygport package stage, and adds this 'test:' line to 
all the generated PVR.hint files.

To promote a package from test to curr, a script will be run on 
sourceware to remove the test: line from the existing PVR.hints in a 
given package subtree, for a given VR.

Since this requires shell access on sourceware, if you don't have that, 
you can ask here or on #cygwin-developers.

If all the people with shell access are unavailable, if you still have 
the cygport build directory, you can manually amend all the PVR.hints 
under PVR.arch/dist/ to remove the 'test:' line, and re-upload them.

Finally, the package can be rebuilt with a bumped release number and 
without --test, although opinion is mixed as to if this is a good idea 
or not.

I would like to provide an automatic mechanism to allow package 
maintainers to promote their own test packages, but there are a few 
stumbling blocks in the way of that, currently.



More information about the Cygwin-apps mailing list