Contribute

This section is for those who want to contribute to the Story Navigator add-on by building from source, extending, customizing, or fixing bugs in it.
Contributing guidelines
Welcome! Story Navigator is an open-source project that helps analyzing textual stories using the lenses of narrative psychology, narrative analysis, and narrative theory. We aim to work with a a wide range of textual data. If you’re trying Story Navigator with your data, your experience, questions, bugs you encountered, and suggestions for improvement are important to the success of the project.
We have a Code of Conduct, please follow it in all your interactions with the project.
Questions, feedback, bugs
Use the search function to see if someone else already ran accross the same issue. Feel free to open a new issue here to ask a question, suggest improvements/new features, or report any bugs that you ran into.
Submitting changes
Even better than a good bug report is a fix for the bug or the implementation of a new feature. We welcome any contributions that help improve the code.
When contributing to this repository, please first discuss the change you wish to make via an issue with the owners of this repository before making a change. You can also contact the developers at developers@storynavigator.com before submitting PRs.
Contributions can come in the form of:
Bug fixes
New features
Improvement of existing code
Updates to the documentation
Etc
We use the usual GitHub pull-request flow. For more info see GitHub’s own documentation.
Typically this means:
Forking the repository and/or make a new branch
Making your changes
Make sure that the tests pass and add your own
Make sure the documentation is updated for new features
Pushing the code back to Github
One of the code owners will review your code and request changes if needed. Once your changes have been approved, your contributions will become part of Story Navigator.
Getting started with development
Setup
Story Navigator targets Python 3.9.12 or newer.
Clone the repository into the storynavigator directory:
git clone https://github.com/navigating-stories/orange-story-navigator
Install using virtualenv:
cd storynavigator
python3 -m venv env
source env/bin/activate
python3 -m pip install -e .[develop]
Alternatively, install using Conda:
cd storynavigator
conda create -n storynavigator python=3.10
conda activate storynavigator
pip install -e .[develop]
Running tests
Story Navigator uses pytest to run the tests. You can run the tests for yourself using:
pytest
To check coverage:
coverage run -m pytest
coverage report # to output to terminal
coverage html # to generate html report
Building the documentation
The documentation is written in markdown, and uses mkdocs to generate the pages.
To build the documentation for yourself:
pip install -e .[docs]
mkdocs serve
You can find the documentation source in the docs directory.
Making a release
Make a new release.
Under ‘Choose a tag’, set the tag to the new version. The versioning scheme we use is SemVer, so bump the version (major/minor/patch) as needed.
The upload to pypi is triggered when a release is published and handled by this workflow.
The upload to zenodo is triggered when a release is published.