Using Gitpod — PyMC dev documentation (original) (raw)

About Gitpod#

Gitpod is a browser-based development environment.

These are some benefits to using Gitpod:

Using Gitpod to Contribute to PyMC#

These instructions are for contributing specifically to the pymc-devs/pymc repo.

Gitpod Workflow#

  1. Fork the pymc repo: pymc-devs/pymc
  2. Create a Gitpod account. You can login and authorize access via your GitHub account: https://gitpod.io/
  3. Grant GitHub / Gitpod integration permissions.
    a) Go to: https://gitpod.io/user/integrations
    b) Select GitHub and then “Edit Permissions”
    c) Select these permission: user:email, public_repo, repo, workflow
    gitpod_integration
    Gitpod integration options#
  4. Within Gitpod, create a “New Workspace”. Here you will want to select the forked pymc repo. If you do not see it, you can paste your forked repo path into the “Context URL” box. For example: https://github.com/yourusername/pymc. Then select “New Workspace”.
    gitpod_workspace
    Gitpod workspace#
    Note
    Gitpod will pull a container and set up the workspace. It will take a few minutes for the container to build.
  5. Once Gitpod is up and running, the interface is similar to a Visual Studio Code (VSC) interface, which will appear in your browser. You will observe installation notices in the terminal window. This can take 5-10 minutes. Once that is complete, the terminal will indicate you are on the “(base)” environment on Gitpod with your forked repo.
    Here is an example:
    (base) gitpod@reshamas-pymc-0ygu5rf74md:/workspace/pymc$
    Note
    This working environment has been set up with micromamba which is a small, pure-C++ executable with enough functionalities to bootstrap fully functional conda-environments.
  6. Check that your git remotes are correct with git remote -v at the terminal.
    Example:
    (base) gitpod@reshamas-pymc-0ygu5rf74md:/workspace/pymc$ git remote -v
    origin https://github.com/reshamas/pymc.git (fetch)
    origin https://github.com/reshamas/pymc.git (push)
    upstream https://github.com/pymc-devs/pymc.git (fetch)
    upstream https://github.com/pymc-devs/pymc.git (push)
    (base) gitpod@reshamas-pymc-0ygu5rf74md:/workspace/pymc$
  7. Check which version of python and pymc are being used at the terminal.
    Check the version of pymc: pip list | grep pymc
    Example:
    (base) gitpod@reshamas-pymc-vpfb4pvr90z:/workspace/pymc$ pip list | grep pymc
    pymc 5.1.0 /workspace/pymc
    pymc-sphinx-theme 0.1
    Check the version of python: python3 --version
    Example:
    (base) gitpod@reshamas-pymc-vpfb4pvr90z:/workspace/pymc$ python3 --version
    Python 3.11.0
  8. Syncing the repository
    Ensure you are in the correct place:
    cd /workspace/pymc
    git checkout main
    Sync the repository code and version tags: git pull upstream main --tags
    Update installed version number: pip install -e .
    Example:
    Obtaining file:///workspace/pymc
    Installing build dependencies ... done
    Checking if build backend supports build_editable ... done
    Getting requirements to build editable ... done
    Preparing editable metadata (pyproject.toml) ... done
    Requirement already satisfied: arviz>=0.13.0 in /opt/conda/lib/python3.11/site-packages (from pymc==5.1.1+303.g6f8f9eef) (0.15.1)
    ...
    Building editable for pymc (pyproject.toml) ... done
    Created wheel for pymc: filename=pymc-5.1.1+303.g6f8f9eef-0.editable-py3-none-any.whl size=11527 sha256=6211b7149b3ab09813b2badb3010f54d2d4ab014f75054d73f204ac5ea82ed82
    Stored in directory: /tmp/pip-ephem-wheel-cache-wmkfx8pd/wheels/73/bf/14/341b7fa040e9af1991e12077c13913921be3069fe3bdf78752
    Successfully built pymc
    Installing collected packages: pytensor, pymc
    Attempting uninstall: pytensor
    Found existing installation: pytensor 2.10.1
    Uninstalling pytensor-2.10.1:
    Successfully uninstalled pytensor-2.10.1
    Successfully installed pymc-5.1.1+303.g6f8f9eef pytensor-2.18.6
    Check the PyMC version being used: python -c "import pymc; print(pymc.__version__)"
    Example:
    (base) gitpod@reshamas-pymc-syxfrf90fp0:/workspace/pymc$ python -c "import pymc; print(pymc.version)"
    5.1.1+303.g6f8f9eef

Reminder: Git Workflow#

Attention

At the terminal, before beginning work, remember to create a feature branch:

git checkout -b feature-branch

After working on a file, follow the Git workflow:

Resources#

Gitpod Notes#

Billing#

The Gitpod free plan currently allows 500 free credits per month, which is 50 hours of standard workspace usage. Usage information can be found in the Gitpod billing section.

Caution

Be sure to check out the Gitpod policies on Workspace Deletion and learn more about: