AcademySoftwareFoundation / AcademySoftwareFoundation/rez

Another way to test packages in dev stage

Open
#1,263 24 comments 0 reactions 0 assignees View on GitHub
enhancement rez-test
Dominant language
Python
Stars
1.1k
Forks
374
Avg merge
9d 12h
Merged PRs (30d)
5

Description

Allow resolving a package from a random specified place instead of paths from rezconfig `packages_path` for testing purpose before release to production repo.

Let's say we have a package `helloworld` in **d:\dev\helloworld** (no version specified at this time) want to test, hope to init env like this:
`rez-env helloworld pkg1 pkg2 ... -d d:\dev`
`helloworld` will be resolved to D:\dev\helloworld, `pkg1` and `pkg2` resolved to a repository path in rez config. or if they are also in D:\dev folder.
```
helloworld d:\dev\helloworld
pkg1-3.3 c:\users\user\packages\pkg1\3.3\ (local)
pkg2-1.0.0 c:\users\user\packages\pkg2\1.0.0 (local)
```
or just directly specify the package path:
`rez-env helloworld@d:\dev\helloworld pkg1 pkg2 ...`

**Motivation**
Current workflow for testing a package generally is `rez-build -i`, then `rez-test` if we have unit test code or open dcc or `rez-env xxx -- python` to test.
This means you have to copy a package to the `local package path` , this path also in `packages_path` in rezconfig.py to search pacakges by default.

Reason why I don't test a packge in this way:
In my studio, all our workstations will be used to render jobs at night, which means if I have some packages are in test stage in local, any production render jobs that using my workstation will use these code, this is not what we are expected. (Some packages we do mirror to local to speed up the load time in production, local path is not always for testing purpose.)

If I want to invite other developers/artists to test my packages(not a formal test in our pipeline), I have to copy to a central repository and give a `testing version` carefully to avoid affecting production, since these packages are in develop stage, I really don't want to `release` it to production repository, instead just putting it to a sandbox and tell rez-env to resolve these packages from given paths, required pacakges still can be resolved from formal production repos.

Contributor guide

Open the contributing guide

Research direction

Start with the rez-env command and the rezconfig packages_path behavior described in the issue. Trace how requested packages are resolved and how local package paths are represented; the work is complete when a specified sandbox path can provide selected packages while other dependencies continue resolving from configured repositories.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.