Updated 2019-08-06
Contributing
Thanks for considering making a contribution to the Allzpark project!
The goal of Allzpark is making film and games productions more fun to work on, for artists and developers alike. Almost every company with any experience working in this field has felt the pain of managing software and versions when all you really want to do is make great pictures. Allzpark can really help with that, and you can really help Allzpark!
Quickstart
Allzpark works out of the Git repository.
git clone https://github.com/mottosso/allzpark.git
cd allzpark
python -m allzpark --demo
Get the up-to-date requirements by having a copy of Allzpark already installed.
- See Quickstart for details
Architecture
The front-end is written in Python and Qt.py, and the back-end is bleeding-rez. You are welcome to contribute to either of these projects.
Graphically, the interface is written in standard Qt idioms, like MVC to separate between logic and visuals. The window itself is an instance of QMainWindow
, whereby each "tab" is a regular QDockWidget
, which is how you can move them around and dock them freely.
User preferences is stored in a QSettings
object, including window layout. See view.py:Window.closeEvent()
for how that works.
Development
To make changes and/or contribute to Allzpark, here's how to run it from its Git repository.
git clone https://github.com/mottosso/allzpark.git
cd allzpark
python -m allzpark
From here, Python picks up the allzpark
package from the current working directory, and everything is set to go. For use with Rez, try this.
# powershell git clone https://github.com/mottosso/allzpark.git cd allzpark . env.ps1 > python -m allzpark
This will ensure a reproducible environment via Rez packages.
Versioning
You typically won't have to manually increment the version of this project.
Major and minor versions are incremented for breaking and new changes respectively, the patch version however is special. It is incremented automatically in correspondance with the current commit number. E.g. commit number 200 yields a patch number of 200. See allzpark/version.py
for details.
To see the patch version as you develop, ensure git
is available on PATH, as it is used to detect the commit number at launch. Once built and distributed to PyPI, this number is then embedded into the resulting package. See setup.py
for details.
Resources
The current icon set is from Haiku.
Guidelines
There are a few ways you can contribute to this project.
- Use it and report any issues here
- Submit ideas for improvements or new features here
- Add or improve this documentation
- Help write tests to avoid regressions and help future contributors spot mistakes
Any other thoughts on how you would like to contribute? Let me know.
Documentation
The documentation you are reading right now is hosted in the Allzpark git repository on GitHub, and built with a static site-generator called mkdocs along with a theme called mkdocs-material.
Mkdocs can host the entirety of the website on your local machine, and automatically update whenever you make changes to the Markdown documents. Here's how you can get started.
You can either use Rez and Pipz.
cd allzpark\docs rez env pipz -- install -r requirements.txt . serve.ps1
Or install dependencies into your system-wide Python.
cd allzpark\docs pip install -r requirements.txt mkdocs serve
cd allzpark/docs rez env pipz -- install -r requirements.txt rez env git python mkdocs_material-4.4.0 mkdocs_git_revision_date_plugin==0.1.5 -- mkdocs serve
Or install dependencies into your system-wide Python.
cd allzpark/docs pip install -r requirements.txt mkdocs serve
You should see a message about how to browse to the locally hosted documentation in your console.
Guidelines
Things to keep in mind as you contribute to the documentation
- Windows-first Allzpark is for all platforms, but Windows-users are typically less tech-savvy than Linux and MacOS users and the documentation should reflect that.
- Try-catch When documenting a series of steps to accomplish a task, start with the minimal ideal case, and then "catch" potential errors afterwards. This helps keep the documentation from branching out too far, and facilitates a cursory skimming of the documentation. See quickstart for an example.