-
Notifications
You must be signed in to change notification settings - Fork 337
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding Artifact Repository #1380
Conversation
This is pretty exciting @ttrently! I haven't reviewed any of it yet, but I took some time to link to some resources. Long ago, someone tried to create a MongoDB repository plugin and even created a PR, see #205. You could potentially re-use part of it or at maybe just take inspirations from it. Additionally, there is REP-003 that tracks package caching. In the REP (Rez Enhancement Proposal) and its comments, there is some wording that makes me believe the package repository could say "I need all my packages to be locally cached". This would allow to mix and match multiple package repository types without forcing all resolved packages to be cached. |
Yes, to a degree, and primary comment updated with usage information. I'm still a bit unsure of how to handle complex paths, so for this I kept it close to how normal package repositories are handled, ie. Artifact repository paths are defined and lookups happen based on the order of those paths. |
The new description is helpful and thanks for that. Can you update the description to mention that you implement part of that discussion, what's implemented, what's not, etc. I would also suggest that you mention which library it depends, etc. (Note that I won't have time to review until next week). |
Hey @ttrently , I'm curious if you made more progress on this work. Let us know if we can help in any way! |
Pull head REZ to ttrently/rez master
UPDATE: Latest commit implements an artifact repository based on discussions found on #1393
Add support for
artifact_repository
plugins which allow for hosting of package payloads in remote servers. This works in conjunction with a MongoDB instance that contains the package information for querying and lookup.Requirements
This implementation requires some additional packages that have not been included in
rez.vendor
.These can be installed via
python -m pip install PKG --target path\to\rez\Lib\site-packages
.How To Use
In order to use you will need an existing S3 bucket and a MongoDB instance with a named database and a collection called "packages".
In your
rezconfig.py
you will need to set the following:If your MongoDB instance also requires a username / password, you can set it via:
When these are set, it will format the packages path url as:
rez-build
The
rez-build
command has been extended to allow for installing to artifact repositories. This is done through the new-a
--artifact-path
argument fromrez-build
.Example:
This build command will do the following:
foo
package normally$TEMP\rez\package_name\package_version
, this is what will be pushed to the artifact repository.Missing / To-Do
artifact_path
qualifier, but may need to be more complex in the future.