The Journal of Open Source Software (JOSS) is a developer friendly journal for research software packages.
The Journal of Open Source Software (JOSS) is an academic journal with a formal peer review process that is designed to improve the quality of the software submitted. Upon acceptance into JOSS, a CrossRef DOI is minted and we list your paper on the JOSS website.
In a perfect world, papers about software wouldn't be necessary. Unfortunately, for most researchers, academic currency relies on papers rather than software and citations are, thus, crucial for a successful career.
We built this journal because we believe that after you've done the hard work of writing great software, it shouldn't take weeks and months to write a paper1 about your work.
We have a simple submission workflow and extensive documentation to help you prepare your submission. If your software is already well documented then paper preparation should take no more than an hour.
1 After all, this is just advertising.
The JOSS submission tool is hosted at https://joss.theoj.org
If you're looking for the JOSS reviews repository head over here: https://github.com/openjournals/joss-reviews/issues
In order to have a more open and welcoming community, JOSS adheres to a code of conduct adapted from the Contributor Covenant code of conduct.
Please adhere to this code of conduct in any interactions you have in the JOSS community. It is strictly enforced on all official JOSS repositories, the JOSS website, and resources. If you encounter someone violating these terms, please let the Editor-in-Chief (@arfon) or someone on the editorial board know and we will address it as soon as possible.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
PostgreSQL and Elasticsearch should be installed and running locally for JOSS to work
- Install packages with bundler -
bundle install
- Set rails env in your shell (or prepend to each command):
export RAILS_ENV=development
- Create the database with
bin/rails db:create
- Run any pending db migrations
bin/rails db:migrate
- (Optional) seed the data with demo data (see
db/seeds.rb
)bin/rails db:seed
- After running elasticsearch, create an index with
curl -X PUT http://localhost:9200/joss-production
Note - you may need to disable the default security settings of elasticsearch by editing yourconfig/elasticsearch.yml
- Create search indexes:
bin/rails searchkick:reindex:all
- Run
bin/rails s
You may encounter an error on startup like:
Started GET "/" for 127.0.0.1 at 2024-08-15 13:03:02 -0700
objc[41226]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called.
objc[41226]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug.
To resolve it, either in your shell file or in the shell itself add:
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
See rails#38560