The MousikóFídi developer's guide!
The MousikóFídi developer's guide!
All development should be done on the
dev branch. To contribute a patch to MousikóFídi:
my-cool-feature, but don't get too crazy)
To get set up for development, first install the required dependencies:
cd /path/to/mousikofidi # Optionally use the --user flag if desired pip3 install -r requirements.txt pip3 install -r dev-requirements.txt
The main test targets all require a
yuicompressor executable to be available on your system.
Run the tests once just to be sure you're in a good spot:
cd /path/to/mousikofidi make tests # tests-quiet or tests-verbose are also available
Then hack away! You can run the dev server like this:
This is of course useful when working on the codebase.
pre-commit.sh script within this repo is meant to function as a pre-commit hook.
It can be installed via
make githooks, but this also happens automatically when
make dev-requirements and
make test (and variants) are ran.
Installation can also be done by manually invoking the script:
Having this hook installed ensures that commits will not break tests and is essential for working with the MousikóFídi codebase.
Adding a new CSS theme to MousikóFídi is a relatively simple process:
.cssfile that will represent your theme's styling in the
mousikofidi/static/cssdirectory of the MousikóFídi code repository. Give it a distinct name that represents the theme well.
.minversion). Do this for both the
THEMESdict in the main MousikóFídi python file. Follow the format of the existing themes; give your theme's name and the path to the file minus the extension.
To add a new date-based "holiday" logo to MousikóFídi:
mousikofidi/staticdirectory of the MousikóFídi code repository. Give it a distinct name that represents the holiday or idea behind it well. Whatever you want, really.
LOGOSdict in the main MousikóFídi python file.
"date conditional": "file-name.png"
date_conditionalcan me a specific
month-daystring, such as
Tests should accompany any new features or fixes as needed.
Please always run tests before making a commit.
Python code should be formatted with Python Black. This is checked as part of the test process when any one of
make test-quiet, or
make test-verbose are ran.
Also available are the
make test-black-quiet, and
make test-black-verbose targets.
This is checked as part of the main test targets, but a working installation of
yuicompressor is required.
Also ran with tests are
flake8 checks. The
flake8 package is installed as part of the dev setup process above.
Before tests can pass, a
~/.config/flake8 file must exist on your system and it must include the below lines at minimum:
[flake8] ignore = E501, E402, W503 max-line-length = 160
All tests for the Python code in MousikóFídi are driven by
pytest package is installed as part of the dev setup process above.
All tests against Python and HTML code are done here.
test_js.html template, which is viewable at the
/test-js route on any instance (note, the tests only work if the
example dir is found.)
A release artifact is published to PyPI via a sourcehut build when a git tag is pushed. This is handled by the
pypi-upload.sh script included in the base of the MousikóFídi code repo.
commit c7aa8adde209af4256caa44eb0a930f96d40d5ef Author: Hristos N. Triantafillou <firstname.lastname@example.org> Date: 2019-11-25T12:46:48-06:00 Put the "Contributing" section at the top, mention the dev branch The way things were before, it wasn't very clear that the "dev" branch is what someone would want to work off of (need to even). Moving the "Contributing" section to the top, and adding specific wording about "dev", will help make this more clear. I've also swapped out the git-send-email.io link for a direct link to the new "make a patch" link on sourcehut, and removed the bit about the git book (out of scope for the document anyways).