Skip to content
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

Building file should be more atomic #445

Open
boredstiff opened this issue Jul 13, 2017 · 7 comments
Open

Building file should be more atomic #445

boredstiff opened this issue Jul 13, 2017 · 7 comments

Comments

@boredstiff
Copy link

Hi,

Description

.buildingX.X.X file should be more atomic in determining a package's viability for resolution. We feel that the existence of this file should prevent Rez from resolving a package, even if the package.py exists. The reason for this is that if Rez didn't get to the step where it removes this file, then something failed - and if something failed, we probably don't want that package to go into production.

Steps to Reproduce

  1. Build a package.
  2. Leave the package.py file in place.
  3. Create an empty .buildingX.X.X file in the package family folder with the X.X.X representing the version.
  4. Resolve an environment with this package and version. The resolution points to the built package.

Desired Result

If the .buildingX.X.X file is found, no additional steps should be done to attempt to resolve the package.

Additional

We're thinking about patching this in our local fork, and if you decide that you agree with this change, I'd be happy to push the changes upstream, but I'm sure we'll need more discussion about that.

So with this recent discussion happening on the Rez Google Group, we have begun re-evaluating our package syncing solution between our facilities, as we believed the existence of the file would indicate what was described above. Now we are looking at either going with a solution similar to Alexandra's where our sync agent copies the package.py as a separate job after the package has been synced, or we're looking at patching our local fork.

@instinct-vfx
Copy link
Contributor

After thinking about it a little i was wondering if it also may make sense to go for a more generic name for the file like .ignoreX.X.X as it seems that one of the main use cases besides releasing is syncing rather than building.

@boredstiff
Copy link
Author

That's a good point @instinct-vfx - that seems to be the consensus for user expectation from the thread.

@pmolodo
Copy link
Contributor

pmolodo commented Jul 13, 2017

We would prefer this behavior, as it's nice to have an easy way to temporarily disable/hide a package.

@nerdvegas
Copy link
Contributor

nerdvegas commented Jul 18, 2017 via email

@instinct-vfx
Copy link
Contributor

I completely agree on making that distinction.

@skral
Copy link
Contributor

skral commented Aug 29, 2017

Added the functionality of an .ignore file and opened a PR #453

@nerdvegas
Copy link
Contributor

Just adding to this old thread as everybody (myself included) missed an important point.

.building files cannot be used to ignore the package completely, because they can exist after a package has been released, while a new variant is being installed into the package.

A recent update now means that package.py updates are atomic, and so I do wonder if the .building file needs to be created for the non-first variant anymore.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants