sagemath / sage-windows

Build tools for the Sagemath Windows installer
350 stars 47 forks source link

Making release script more modular #56

Open ChrisJefferson opened 3 years ago

ChrisJefferson commented 3 years ago

As previously discussed, I would like to use this infrastructure to release GAP (which is also distributed with SAGE).

As an initial step, I was thinking about making a directory 'sagemath', and moving files relating specifically to sage into that directory, then editing the Makefile to have a variable (which can be changed) which uses this variable as a base.

As a concrete suggestion, I'm thinking about changing:

PATCHES=patches
CYGWIN_EXTRAS=cygwin_extras
RESOURCES=resources
DOT_SAGE=dot_sage

To something like:

PROGBASE?=sagemath
PATCHES=$(PROGBASE)/patches
CYGWIN_EXTRAS=$(PROGBASE)/cygwin_extras
RESOURCES=$(PROGBASE)/resources
DOT_SAGE=$(PROGBASE)/dot_sage

Before I started doing that, I wanted to check if that was OK. The other option would be to just change to "PATCHES?=patches".

embray commented 3 years ago

I was thinking something a bit more ambitious, though maybe more ambitious than I have time for... A lot of this machinery can work in general for creating an InnoSetup installer for some software that relies on Cygwin. All the Sage-specific Makefile rules can be moved out to separate files. Likewise the .iss file can be modularized a bit (.iss scripts will tend to be fairly application-specific, but there are a lot of bits in SageMath.iss that solve generic problems related to packaging Cygwin).

ChrisJefferson commented 3 years ago

I'm having a look. One practical question, is there a "known good" target I can run to get a sage release? 'develop' seems currently broken (not sure if the issue is known, thought I would start just getting a good installer).

I wanted to make some small cleanups/changes, but obviously don't want to break building sage while I'm doing it.

embray commented 3 years ago

No idea why develop would be broken, but if you set SAGE_VERSION=9.2 it should work.