VisionSystemsInc / VisionSystemsInc/terra

New terra pipenv environment pattern

Open
#136 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
2
Forks
3
Avg merge
22m
Merged PRs (30d)
1

Description

Currently, all terra apps use terra's Pipfile for the terra environment.

Unfortunately the move of pipenv to drop markered packages that are not being used by the currently locking python is causing a ripple affect, that is starting to be noticed as we upgrade some of our pythons.

  • We already knew we could no longer rely on pipenv for cross platform package tracking.
  • This is also limiting our ability to support different versions of python.

To combat this problem and handle other situations, a method of maintaining a terra Pipfile.lock in the project rather than in the external terra is proposed:

  • Start off by copying the external/terra/Pipfile to terra_env/Pipfile.
  • The Terra_Pipenv function can be part of this process, checking if the file is different every time you run Terra_Pipenv, and either tell the user it's out of date, or start an update process
  • This means each terra app can lock to a specific version of python, rather than leaving it in a lose range of support, like terra is.
  • Allows a specific project to use specific versions of packages it may require.
  • If the CLI/workflow/service definition ever needed a third party package, this can be supported (where as now, it cannot without using PYTHONPATH.)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading external/terra/Pipfile and the Terra_Pipenv function, then compare that environment with the proposed terra_env/Pipfile. Define how Terra_Pipenv detects a changed source file and reports or performs an update. Done means each terra app can maintain its own Pipfile.lock, Python version, and project-specific package requirements.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.