Open assumptionsoup opened 6 years ago
I agree that there probably needs to be a more complete "quickstart" procedure.
It might be good to create a rez-quickstart
command that launches an interactive set of prompts that builds and saves a rez config file that sets the local and release paths (similar to sphinx-quickstart
for sphinx
docs) in addition to creating the implicit arch/os/platform packages.
Why is this directory in the hidden subfolder?
That's the local release directory. Most rez users specify a shared network release directory (or custom local release directories) in the rez config file. I don't necessarily think the default local directory needs to change, but I do agree it would be good to prompt new users to specify the local and primary release directories prior to running rez, so they at least know what those directories are and where they're at.
In general, much of the rez documentation needs to be updated, which would prevent a lot of this confusion.
Wait, there's a local release directory and a network release directory? I'm running rez-bind
with the release option -r
. This is the resolution order in bind.py:
if opts.release:
install_path = config.release_packages_path
elif opts.install_path:
install_path = opts.install_path
else:
install_path = config.local_packages_path
The .rez
folder comes from config.release_packages_path
. How would a non-local release directory ever get resolved? Using two different configs?
I like the idea of a rez-quickstart, that did a little more hand holding. That would help get some initial concepts out of the way, and build a foundation for starting to work with rez.
Sorry, I misspoke, the .rez location is the default release directory, just most people change it to a network share in their rezconfig (at least I'm pretty sure most people do it that way). Technically, I think rez now supports multiple release directories.
There are a couple different paths that need to be set up
release_packages_path
-- for doing rez-release
local_packages_path
-- mostly for local development with rez-build
packages_path
-- list of paths to search for rez packages. Generally includes the previous two paths along with a directory that contains packages for "external" libraries.This is something else that could probably be improved (or perhaps it already is and I don't know about it yet; rez has had a lot of updates in the last couple years).
There does kind of need to be a concept of local and shared release directories, since the implicit packages -- os, platform, arch -- need to be "released" locally (and only locally). The release directory also probably shouldn't be in the users home directory since it's a system wide package.
Part of the reason the quickstart side of things hasn't gotten much love is down to my wanting to deprecate the rez-bind functionality in favor of new 'native' packages - which are just normal packages, but ones that make use of the more programmable aspects of the package.py that are now available (attributes as functions). So what I would like to do instead is replace the builtin bind modules with a set of analogous builtin packages - ie put a minimal package repo inside the rez source repo itself - and then expose a quickstart option which installs from that.
I think removing rez-bind would be a good thing, as it is cause for confusion, and would move to a completely homogenous approach to package creation/installation.
Thx A
On Wed, Apr 11, 2018 at 5:29 AM, Brendan Abel notifications@github.com wrote:
Sorry, I misspoke, the .rez location is the default release directory, just most people change it to a network share in their rezconfig. Technically, I think rez now supports multiple release directories.
There are a couple different paths that need to be set up
- release_packages_path -- for doing rez-release
- local_packages_path -- mostly for local development with rez-build
- packages_path -- list of paths to search for rez packages. Generally includes the previous two paths along with a directory that contains packages for "external" libraries..
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/nerdvegas/rez/issues/505#issuecomment-380219580, or mute the thread https://github.com/notifications/unsubscribe-auth/ABjqStaFD7mg_TpSMqgEG5qhC0vtASMgks5tnQgAgaJpZM4TNc10 .
When getting started with rez, by default the release directory
~/.rez/packages/int
does not exist. Given the somewhat sparse documentation for rez in this area, any new user will most likely run into the exact same error I did:It's super unclear what a lockfile directory is, or why it should exist. There's no mention in the error that this relates to the release directory. Then the directory itself is confusing. Without any context that
int
pairs with a correspondingext
directory, my first thought was that rez was incorrectly casting an int variable somewhere. This was obviously not the case, I merely hadn't created this directory (as the error says). But even if I had created it, I would have been confused:.rez
? Nothing else is in a hidden directory. If I'm releasing software, why am I putting it in a hidden location? It says this is a lockfile, obviously I shouldn't be creating that folder myself. Rez needs a lockfile to know if someone else has control of some internal config directory.I would suggest two changes:
release_packages/internal