ember-osf-preprints
This is the codebase for OSF preprints. This guide will help you get started if you're interested.
Prerequisites
You will need the following things properly installed on your computer.
Installation
git clone
this repository- To pull in local preprint provider assets as well, use
git clone --recursive
instead (assuming you are using git >= 1.6.5).
- To pull in local preprint provider assets as well, use
yarn install --frozen-lockfile
bower install
Preprint Provider Assets
If you will be using local preprint provider assets (rather than the CDN):
- If you did not clone the repository using --recursive, run:
git submodule update --init --recursive
- Set the PROVIDER_ASSETS_URL environment variable to 'local'
Updating Assets
- To refresh your local assets, run:
git submodule update
- To update the assets submodule to the latest assets, run:
npm run update-assets
- To update to the latest assets and create a hotfix, run:
npm run updates-assets-hotfix
Running / Development
For local development, this is designed to run alongside (and from within) the flask application for osf.io.
- Check out this OSF feature branch: https://github.com/CenterForOpenScience/osf.io/tree/feature/ember-preprints
- Start your Ember server:
ember serve
- Copy these lines
to your
website/settings/local.py
file. Uncomment'/preprints/': 'http://localhost:4200',
and restart your flask app. - Visit your app at http://localhost:5000/preprints/
Provider Domains
- Start the API server
- Run
sudo ./scripts/add-domains.js
. This will add the domains to your/etc/hosts
. Use--dry
for a dry run. - Visit your app at one of the provider domains with
https://local.<domain>:4200
(e.g.http://local.socarxiv.org:4200
)
If you encounter problems, make sure that your version of ember-osf is up to date. If login fails, try logging in from any other OSF page, then returning to the preprints app.
Generating test data on the OSF
There are a few scripts to run to populate your local preprint providers list, and help generate some "fake" preprints locally so you can begin testing using the OSF API.
- Populate the OSF's PrerpintProvider model with data:
python -m scripts.populate_preprint_providers
- Populate the OSF's Subject model with data:
python -m scripts.update_taxonomies
- Create "fake" preprints using some additional arguments to the
create_fakes
script:
python -m scripts.create_fakes -u user@email.io --nprojects 2 --preprint True --preprintprovider osf,psyarxiv
notes: You can enter as many providers as you like, seperated by commas. Also, this script does not currently create actual fake files, only fake file metadata; the file itself won't render in a preprint view, but you can still request its information from the API.
Code Generators
Make use of the many generators for code, try ember help generate
for more details
Running Tests
You can run tests either with ember installed on your machine or by using Docker
On your local machine
ember test
ember test --server
With Docker
docker build --tag preprints .
docker run preprints
Building
ember build
(development)ember build --environment production
(production)
Further Reading / Useful Links
- Requirements and road map for this service
- ember.js
- ember-cli
- Development Browser Extensions