-
Notifications
You must be signed in to change notification settings - Fork 57
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
Clone without virtualenv #462
base: master
Are you sure you want to change the base?
Conversation
Why do we need to do this? |
Because, for my project in don't need to deploy my sources with setup.py or anything else.
|
Ok, that's reasonable justification for this feature. I would, however, like to simplify the implementation. The use of metaclasses is a bit over-engineered. I think we could replace it and the As it is, the use of the metaclass means I have to think harder than necessary about the code to come to the conclusion that it's just a complicated way to dispatch between two alternative workspace classes. |
Yes, today it's overkill. I have in my brain a others type of workspaces:
I wrote anything about that yet, but a real factory mechnanism seems to me a good start. Other factories possibilities are:
|
If there's really a need for many different kinds of workspaces, this is definitely my preference. It's how the rest of CR works, and it seems to work very well.
Right. In my experience the hard part of defining a new plugin type is figuring out what the proper abstraction/API is. It sounds like you've identified 4 or 5 examples, and that should be enough for us to start to design a reasonable plugin API for workspaces.
Maybe I misunderstand what you're saying, but I think letting 3rd parties write workspace plugins is very desirable. |
It is very desirable is the base API is well defined. But it is not the case yet. |
Good, then we're in agreement :) |
Can I close this in favor of defining a plugin system for workspaces? |
@@ -123,6 +123,11 @@ def badge_format(self): | |||
def badge_thresholds(self): | |||
return self.badge['thresholds'] | |||
|
|||
@property | |||
def cloning_config_workspace_type(self): | |||
"The 'workspace' section of the cloning section" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"The 'workspace' section of the cloning section" | |
"""The 'workspace' section of the cloning section.""" |
Create working directory in /tmp without creating virtualenv.
Then we can run tests within current environment (environment where cosmic-ray was launched from).
For this, multiple Workspace classes was created and workspace instantiation is driven with a new parameter [cloning] workspace_type