Developer

Source contributions are welcome! Use the GitHub pull request workflow to submit a change proposal.

These docs describe how to get involved in the development of the Slice project.

Are you looking for a way to report issues? Check out the Issues docs!

Slice source code contributions

The Slice application source repository is hosted on GitHub.

Requirements

  • Python 3.6+ interpreter
  • Build dependencies defined in our dev-requirements.txt file installed in a Python virtual environment

Development Environment Setup by Platform

The following instructions define how to build a Python virtual environment, install the appropriate Python dependencies, and launch the application to test your source edits.

macOS and Linux

Clone the repository with:

1git clone https://github.com/source-foundry/Slice.git

Create a Python 3.6+ virtual environment with:

1cd Slice
2python3 -m venv .venv

Install the required build dependencies with:

1source .venv/bin/activate
2pip install -r dev-requirements.txt

Make edits to the project source files locally and test your changes by launching the application with:

1make run

Add tests for your new source and run the test pytest- and tox-based test suite with:

1tox

Windows

The following instructions are validated in Powershell 7 on Windows 10.

Clone the repository with:

1git clone https://github.com/source-foundry/Slice.git

Create a Python 3.6+ virtual environment with:

1cd Slice
2python3 -m venv venv

Install the required build dependencies with:

1.\venv\Scripts\activate
2pip install -r dev-requirements.txt

Make edits to the project source files locally and test your changes by launching the application with:

1python src\run.py

Add tests for your new source and run the pytest- and tox-based test suite with:

1tox

Compile App Distributions by Platform

The following instructions demonstrate how to compile single file PyInstaller builds for platform-specific distribution.

Please note that there are undocumented app code signing / notarization steps. These steps are not required for local development builds. Your application package is likely to be different than an application package compiled at a given commit for release in this project but the approach to launch the application and the function of the source do not differ. Please reach out on the repository if you are building a derivative with the intent to distribute to others and need more information about release preparation.

Linux

We do not currently provide application package distributions for Linux distros.

macOS

Set up your macOS development environment as described in the section above, activate your Python virtual environment, and build the Slice.app package bundle with the following command from the root of the source repository:

1make build-macos

Slice.app is found on the path dist/Slice.app.

Windows

The following instructions work on Win 10.

Set up your Windows development environment as described in the section above, activate your Python virtual environment, and build the Slice.exe application executable with the following command from the root of the source repository:

1pyinstaller --noconfirm .\target\PyInstaller-Windows\Slice-Windows.spec

Slice documentation contributions

The Slice documentation source repository is hosted on GitHub.

The Slice documentation is authored in Markdown files and automatically compiled to production HTML docs when the Markdown sources are merged to the main branch of the documentation repository. The Markdown files are located in the content directory of the repository and follow the URL directory/file path structure that you see on the documentation site.

Please do not commit or push updated HTML, CS, or JS files with your pull request! You should only submit Markdown file changes if you are editing site content.

Requirements

Install the Go compiler and hugo package on your system to test local changes before pushing a pull request.

Review local edits

Edit the Markdown files locally and examine your edits by running the following command from the root of the documentation repository:

1hugo serve

hugo compiles the static website and runs a local web server so that you can view changes. View your local edits by opening http://localhost:1313/ in your web browser. The site will automatically update each iteration of revisions if you allow the hugo serve command to run while editing and saving content in the Markdown files.