GIJI web client
Clone or download
Pull request Compare This branch is 17 commits ahead, 136 commits behind cyverse:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
api
extras
logs
scripts
test/bdd
travis
troposphere
.babelrc
.editorconfig
.esformatter
.eslintignore
.eslintrc
.gitignore
.travis.yml
CHANGELOG.md
FEATURE_INFO_TEMPLATE.txt
LICENSE.txt
LINT.md
Makefile
PULL_REQUEST_TEMPLATE.md
README.md
REQUIREMENTS.md
configure
dev_requirements.in
dev_requirements.txt
manage.py
package.json
postcss.config.js
requirements.in
requirements.txt
themeImagesPath.js.j2
variables.ini.dist
variables_templates.json
webpack.config.js

README.md

Troposphere

Installation

Troposphere's backend

Install the required python packages

pip install -r requirements.txt

A separate environment is provided for developers

pip install -r dev_requirements.txt

The *requirements.txt files are generated using pip-tools. See REQUIREMENTS.md for instructions on using pip-tools and upgrading packages in Troposphere.

Development

Quick feedback

The webpack-dev-server will serve new bundles to a browser when files change.

It has the following features:

  • Changes result in a browser refresh (you know they are propagated)
  • The bundle is served from memory not disk
  • Small changes result in small compiles

Currently troposphere uses nginx to serve its assets. This makes it trivial to serve these assets from the dev server.

Update your nginx definition (at /etc/nginx/locations/tropo.conf)

location /assets {
    # This just needs to point to the dev server which runs on 8080
    proxy_pass https://server.example.com:8080;
}

Finally start the dev server:

npm run serve -- --host server.example.com --port 8080 --https  --cert /path/to/cert --key /path/to/key

If you would like to enable CSS hot reloading, prefix the npm command like so:

CSS_IN_JS=true npm run serve ...

By default we extract CSS from the larger bundle into a separate asset that is parsed/loaded before any js, this ensures that the content of our html will be styled the first time it is shown. However, CSS hot reloading only works if the CSS is shipped in the JS. The caveat is that html content is shipped without initial styling.

Note: CSS_IN_JS is completely ignored in a production environment.

Linting

See LINT.md

Coding Style

  • Use an EditorConfig plugin to leverage the project's .editorconfig

Git Hooks

The hooks below give helpful hints about common tasks like migrating, or installing dependencies.

Link the following hook to get these hints after pulling in code. From the root of the project:

ln -fs ../../extras/hooks/post-merge.hook .git/hooks/post-merge