Getting Started

Environment

Our projects all require the same basic toolchain, which helps to simplify things. Before you get to work, you'll need the following:

  • A relatively recent version of Windows, Mac OSX or Linux

  • A working copy of Git installed

  • A GitLab account configured to use SSH.

  • A working installation of Python 3.6

  • A working copy of pip, which should have come with your Python installation

  • Pipenv, installed using pip install pipenv

  • A decent code editor or IDE - we recommend PyCharm

Pipenv

Pipenv is a pivotal part of our projects, and you will need to get to grips with it. It solves two major problems:

  1. How to easily distribute dependencies for a project without worrying about licensing
    • Pipenv uses pip internally, and dependencies are usually sourced from PyPi

  2. How to keep the dependencies from different projects from intefering with each other
    • Pipenv sets up what is known as a virtualenv - a virtual environment - using the venv module

Usage of Pipenv is relatively simple, and is generally done directly from a terminal - on Windows, known as a cmd window.

  • pipenv sync sets up the project in the current directory by creating a virtualenv and installing the project's dependencies to it - this is generally the first command you'll want to run after downloading a project

  • pipenv install <package> allows you to add a new dependency to the virtualenv, automatically adding it to the project's Pipfile for easy distribution

  • pipenv uninstall <package> allows you to remove a dependency from the virtualenv, automatically removing it from the project's Pipfile for easy distribution

  • pipenv update is used to redownload the dependencies and recreate the Pipfile.lock file, allowing you to update the version of your dependencies where applicable - but this is not very useful for anyone that isn't a project maintainer

  • pipenv run <script/program> is used to run a script or program within the virtualenv directly, and is the preferred method of running things within your virtualenv

  • pipenv shell will activate the virtualenv in your shell, providing you with direct access to it - you can use deactivate when you're done to return your shell to normal

There are a handful of editors and IDEs out there that support Pipenv natively. For more information on this, you can look at the Community Integrations page on the Pipenv documentation site.

Projects

Before you get started with this section make sure you've set up your environment above, and ensure that you also know how to use Git. If not, see our Git basics guide.

We have two major projects at the moment, and they're both very important to the day-to-day running of our community. The first project is our bot, which you'll see online on Discord as @Python. The second is our website - in fact, you're using it right now!

For project-specific information, please see the following pages: