#16483: New Build/Packaging System
-------------------------------------+-------------------------------------
Reporter: vbraun | Owner:
Type: enhancement | Status: new
Priority: major | Milestone: sage-6.3
Component: build | Keywords:
Merged in: | Authors: Volker Braun
Reviewers: | Report Upstream: N/A
Work issues: | Branch:
Commit: | u/vbraun/buildsystem
6000c999ce03b8a86281615312db40f01e59181c| Dependencies:
Stopgaps: |
-------------------------------------+-------------------------------------
Our current build/packaging system is at the limits of what one can do
just with a Makefile and shell scripts. This ticket aims to implement a
new system
* Git-aware: use SHA1 hashes instead of timestamps for dependency
calculations
* Unified machine-readable package configuration using YAML
* Dependency handling also for optional packages
* Distinction between different types of dependencies: build time, runtime
hard/soft, testing.
* Modular, allowing for easy experimentation with per-package backends
* written in pure Python without any dependencies
* doctested for Python 2.6, 2.7, 3.3, and 3.4.
The entire package configuration will be in a file
`SAGE_ROOT/build/pkgs/<name>/package.yaml`, for example
{{{
name:
matplotlib
category:
standard
source:
version:
1.3.1
tarball:
name: matplotlib-{source.version}.tar.gz
sha1: f340378c43c4c3f6219ef9fd84af4ebbe18f8feb
builder:
type: SpkgInstallScript
install_script: spkg-install
depends:
build:
- pkgconf
- setuptools
hard:
- python
- numpy
- freetype
- libpng
- gdmodule
- dateutil
- pyparsing
}}}
--
Ticket URL: <http://trac.sagemath.org/ticket/16483>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.