Have stackviz output a usable python sdist
It seems that on a CI node, we just want to have approximately "pip install stackviz" and have it "just work". This makes "npm run prod" produce a .tar.gz appropriate for this. Firstly, I have moved the gulp output to "gulp-build" rather than "build" because "build" is generic and can get distutils confused. Second, after building with gulp, we tack on a "setup.py sdist" call to generate the final package. Thirdly, the MANIFEST.in is updated to prune out unneeded files from the final distribution. pbr is putting everything in git into the manifest, but we can trim all all the nodejs source stuff. The generated files in gulp-build are added to the manifest (since they're generated, and not in git). Finally, these are added via data-files as "share/stackviz-html". This is essentially standalone and can be moved, or symlinked to as required. The end result is that the .tar.gz created is installable on nodes an contains everything required to run stackviz. Documentation is updated. Change-Id: I64cbc7e90bd2610733c9d5c6275cce99f2571883 Signed-off-by: Paul Belanger <pabelanger@redhat.com>
This commit is contained in:
parent
13df5b0817
commit
02dc3ab7f5
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,6 +2,7 @@
|
||||
.idea
|
||||
node_modules
|
||||
build
|
||||
gulp-build
|
||||
app/js/templates.js
|
||||
app/data
|
||||
*.py[cod]
|
||||
|
9
MANIFEST.in
Normal file
9
MANIFEST.in
Normal file
@ -0,0 +1,9 @@
|
||||
# ignore these; pbr is putting everything in git
|
||||
# in the sdist, but we're a hybird package
|
||||
prune test
|
||||
prune gulp
|
||||
prune app
|
||||
|
||||
# The html/js to view results; created by npm run build
|
||||
# installed in "html" via data-file in setup.cfg
|
||||
recursive-include gulp-build *
|
23
README.rst
23
README.rst
@ -64,8 +64,21 @@ The production application can be build using::
|
||||
|
||||
gulp prod
|
||||
|
||||
The result will be written to :code:`./build` and should be appropriate for
|
||||
distribution. Note that all files are not required:
|
||||
This will automatically build portable html/javascript and python
|
||||
utilities into ``dist/stackviz-VERSION.tar.gz``.
|
||||
|
||||
You should probably install this into a ``virtualenv`` on the target
|
||||
system::
|
||||
|
||||
virtualenv stackviz
|
||||
./virtualenv/bin/pip install /path/to/stackviz-VERSION.tar.gz
|
||||
# to run stackviz export
|
||||
./virtualenv/bin/stackviz-export
|
||||
|
||||
Note the required html will be placed in ``virtualenv/share/stackviz-html``
|
||||
as a data-file (or elsewhere, if installed as a system package; this
|
||||
may vary on distributions). This can be moved as required. Note that
|
||||
all files in there are not required:
|
||||
|
||||
- Directory structure (:code:`js/`, :code:`css/`, :code:`fonts/`,
|
||||
:code:`images/`): required.
|
||||
@ -77,10 +90,8 @@ distribution. Note that all files are not required:
|
||||
- Source maps (:code:`js/main.js.map`, :code:`js/main.js.map.gz`): only required
|
||||
for debugging purposes.
|
||||
|
||||
Data should be written to :code:`build/data/` using :code:`stackviz-export` like
|
||||
above. Note that the static production code generated above is portable, and can
|
||||
be generated anywhere and copied to another host to be combined with exported
|
||||
data.
|
||||
Data should be written to :code:`stackviz-html/data/` using
|
||||
:code:`stackviz-export` like above.
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
@ -8,17 +8,17 @@ module.exports = {
|
||||
|
||||
'styles': {
|
||||
'src' : 'app/styles/**/*.scss',
|
||||
'dest': 'build/css'
|
||||
'dest': 'gulp-build/css'
|
||||
},
|
||||
|
||||
'scripts': {
|
||||
'src' : 'app/js/**/*.js',
|
||||
'dest': 'build/js'
|
||||
'dest': 'gulp-build/js'
|
||||
},
|
||||
|
||||
'fonts': {
|
||||
'src' : ['app/fonts/**/*'],
|
||||
'dest': 'build/fonts'
|
||||
'dest': 'gulp-build/fonts'
|
||||
},
|
||||
|
||||
'views': {
|
||||
@ -31,14 +31,14 @@ module.exports = {
|
||||
},
|
||||
|
||||
'gzip': {
|
||||
'src': 'build/**/*.{html,xml,json,css,js,js.map}',
|
||||
'src': 'gulp-build/**/*.{html,xml,json,css,js,js.map}',
|
||||
'rewrite': '**/*.html',
|
||||
'dest': 'build/',
|
||||
'dest': 'gulp-build/',
|
||||
'options': {}
|
||||
},
|
||||
|
||||
'dist': {
|
||||
'root' : 'build'
|
||||
'root' : 'gulp-build'
|
||||
},
|
||||
|
||||
'browserify': {
|
||||
@ -54,7 +54,7 @@ module.exports = {
|
||||
|
||||
'data': {
|
||||
'src' : ['app/data/**/*'],
|
||||
'dest': 'build/data'
|
||||
'dest': 'gulp-build/data'
|
||||
}
|
||||
|
||||
};
|
||||
|
@ -17,7 +17,7 @@ gulp.task('server', function() {
|
||||
|
||||
// Serve index.html for all routes to leave routing up to Angular
|
||||
server.all('/*', function(req, res) {
|
||||
res.sendFile('index.html', { root: 'build' });
|
||||
res.sendFile('index.html', { root: 'gulp-build' });
|
||||
});
|
||||
|
||||
// Start webserver if not already running
|
||||
@ -33,4 +33,4 @@ gulp.task('server', function() {
|
||||
|
||||
s.listen(config.serverPort);
|
||||
|
||||
});
|
||||
});
|
||||
|
@ -72,6 +72,6 @@
|
||||
"postinstall": "if [ ! -d .venv ]; then tox -epy27 --notest; fi",
|
||||
"test": "gulp unit",
|
||||
"lint": "eslint ./",
|
||||
"prod": "gulp prod"
|
||||
"prod": "gulp prod; python setup.py sdist"
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user