-
Notifications
You must be signed in to change notification settings - Fork 121
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
Make the API thread-safe #377
Comments
I don't understand why we need to ditch pep517 to make the API thread-safe, can you explain? |
Sorry, we are not required to. If we stay with pep517, we will have to at least ditch their runners and implement a custom runner that calls our own runner API. |
We just have to pass some env vars I thought to the runner - all we'd have to do is make sure we're wrapping the pep517/user-provided runners. |
No, we need to change the runner API as the one in |
Actually, we can get by setting the environments we need to clear in #375 to an empty string, but it might break code that checks for the environment variable, it should be fine though. |
The `IsolatedEnv` has been reworked to subsume env creation logic. `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. The `IsolatedEnv` takes IsolatedEnvManager` as an argument instead of passing the manager's attributes to the env piecemeal. `ProjectBuilder.from_isolated_env` has been added to auto-fill init args from an isolated env. The `ProjectBuilder`'s properties were made read-only. Mutating the builder is not necessary with the addition of `from_isolated_env`. Factored out parsing `pyproject.toml`. Fixed passing the absolute path to the srcdir validator in the project builder. Reworded `ProjectBuilder` docstrings for clarity. Moved runner logic to the isolated env as prelude to fixing pypa#377. As a consequence the runner is not replaceable when using isolation. Removed pip version detection. The default env updates pip in a subprocess.
The `IsolatedEnv` has been reworked to subsume env creation logic. `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. The `IsolatedEnv` takes IsolatedEnvManager` as an argument instead of passing the manager's attributes to the env piecemeal. `ProjectBuilder.from_isolated_env` has been added to auto-fill init args from an isolated env. The `ProjectBuilder`'s properties were made read-only. Mutating the builder is not necessary with the addition of `from_isolated_env`. Factored out parsing `pyproject.toml`. Fixed passing the absolute path to the srcdir validator in the project builder. Reworded `ProjectBuilder` docstrings for clarity. Moved runner logic to the isolated env as prelude to fixing pypa#377. As a consequence the runner is not replaceable when using isolation. Removed pip version detection. The default env updates pip in a subprocess.
The `IsolatedEnv` has been reworked to subsume env creation logic. `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. The `IsolatedEnv` takes IsolatedEnvManager` as an argument instead of passing the manager's attributes to the env piecemeal. `ProjectBuilder.from_isolated_env` has been added to auto-fill init args from an isolated env. The `ProjectBuilder`'s properties were made read-only. Mutating the builder is not necessary with the addition of `from_isolated_env`. Factored out parsing `pyproject.toml`. Fixed passing the absolute path to the srcdir validator in the project builder. Reworded `ProjectBuilder` docstrings for clarity. Moved runner logic to the isolated env as prelude to fixing pypa#377. As a consequence the runner is not replaceable when using isolation. Removed pip version detection. The default env updates pip in a subprocess.
The `IsolatedEnv` has been reworked to subsume env creation logic. `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. The `IsolatedEnv` takes IsolatedEnvManager` as an argument instead of passing the manager's attributes to the env piecemeal. `ProjectBuilder.from_isolated_env` has been added to auto-fill init args from an isolated env. The `ProjectBuilder`'s properties were made read-only. Mutating the builder is not necessary with the addition of `from_isolated_env`. Reworded `ProjectBuilder` docstrings for clarity. Moved runner logic to the isolated env as prelude to fixing pypa#377. As a consequence the runner is not replaceable when using isolation. Removed pip version detection. The default env updates pip in a subprocess.
The `IsolatedEnv` has been reworked to subsume env creation logic. `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. The `IsolatedEnv` takes IsolatedEnvManager` as an argument instead of passing the manager's attributes to the env piecemeal. `ProjectBuilder.from_isolated_env` has been added to auto-fill init args from an isolated env. The `ProjectBuilder`'s properties were made read-only. Mutating the builder is not necessary with the addition of `from_isolated_env`. Moved runner logic to the isolated env as prelude to fixing pypa#377. As a consequence the runner is not replaceable when using isolation. Removed pip version detection. The default env updates pip in a subprocess.
The `IsolatedEnv` has been reworked to subsume env creation logic. `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. The `IsolatedEnv` takes IsolatedEnvManager` as an argument instead of passing the manager's attributes to the env piecemeal. `ProjectBuilder.from_isolated_env` has been added to auto-fill init args from an isolated env. The `ProjectBuilder`'s properties were made read-only. Mutating the builder is not necessary with the addition of `from_isolated_env`. Moved runner logic to the isolated env as prelude to fixing pypa#377. As a consequence the runner is not replaceable when using isolation. Removed pip version detection. The default env updates pip in a subprocess.
The `IsolatedEnv` has been reworked to subsume env creation logic. `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. The `IsolatedEnv` takes IsolatedEnvManager` as an argument instead of passing the manager's attributes to the env piecemeal. `ProjectBuilder.from_isolated_env` has been added to auto-fill init args from an isolated env. The `ProjectBuilder`'s properties were made read-only. Mutating the builder is not necessary with the addition of `from_isolated_env`. Moved runner logic to the isolated env as prelude to fixing pypa#377. As a consequence the runner is not replaceable when using isolation. Removed pip version detection. The default env updates pip in a subprocess.
The `IsolatedEnv` has been reworked to subsume env creation logic. `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. The `IsolatedEnv` takes IsolatedEnvManager` as an argument instead of passing the manager's attributes to the env piecemeal. `ProjectBuilder.from_isolated_env` has been added to auto-fill init args from an isolated env. The `ProjectBuilder`'s properties were made read-only. Mutating the builder is not necessary with the addition of `from_isolated_env`. Moved runner logic to the isolated env as prelude to fixing pypa#377. As a consequence the runner is not replaceable when using isolation. Removed pip version detection. The default env updates pip in a subprocess.
The `IsolatedEnv` has been reworked to subsume env creation logic. `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. The `IsolatedEnv` takes IsolatedEnvManager` as an argument instead of passing the manager's attributes to the env piecemeal. `ProjectBuilder.from_isolated_env` has been added to auto-fill init args from an isolated env. The `ProjectBuilder`'s properties were made read-only. Mutating the builder is not necessary with the addition of `from_isolated_env`. Moved runner logic to the isolated env as prelude to fixing pypa#377. As a consequence the runner is not replaceable when using isolation. Removed pip version detection. The default env updates pip in a subprocess.
The `IsolatedEnv` has been reworked to subsume env creation logic. `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. The `IsolatedEnv` takes IsolatedEnvManager` as an argument instead of passing the manager's attributes to the env piecemeal. `ProjectBuilder.from_isolated_env` has been added to auto-fill init args from an isolated env. Moved env mangling logic to the `IsolatedEnv` as prelude to fixing pypa#377. The runner is, for now, not replaceable when using isolation. The `ProjectBuilder`'s properties were made read-only. Mutating the builder is not necessary with the addition of `from_isolated_env`. `ProjectBuilder.script_dir` was removed. Adding the `script_dir` to the path is the responsibility of the isolated env. Removed pip version detection. The default env updates pip in a subprocess.
The `IsolatedEnv` has been reworked to subsume env creation logic. `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. The `IsolatedEnv` takes IsolatedEnvManager` as an argument instead of passing the manager's attributes to the env piecemeal. `ProjectBuilder.from_isolated_env` has been added to auto-fill init args from an isolated env. Moved env mangling logic to the `IsolatedEnv` as prelude to fixing pypa#377. The runner is, for now, not replaceable when using isolation. The `ProjectBuilder`'s properties were made read-only. Mutating the builder is not necessary with the addition of `from_isolated_env`. `ProjectBuilder.script_dir` was removed. Adding the `script_dir` to the path is the responsibility of the isolated env.
The `IsolatedEnv` has been reworked to subsume env creation logic. `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. The `IsolatedEnv` takes IsolatedEnvManager` as an argument instead of passing the manager's attributes to the env piecemeal. `ProjectBuilder.from_isolated_env` has been added to auto-fill init args from an isolated env. Moved env mangling logic to the `IsolatedEnv` as prelude to fixing pypa#377. The runner is, for now, not replaceable when using isolation. The `ProjectBuilder`'s properties were made read-only. Mutating the builder is not necessary with the addition of `from_isolated_env`. `ProjectBuilder.script_dir` was removed. Adding the `script_dir` to the path is the responsibility of the isolated env.
The `IsolatedEnv` has been reworked to subsume env creation logic. `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. The `IsolatedEnv` takes IsolatedEnvManager` as an argument instead of passing the manager's attributes to the env piecemeal. `ProjectBuilder.from_isolated_env` has been added to auto-fill init args from an isolated env. Moved env mangling logic to the `IsolatedEnv` as prelude to fixing pypa#377. The runner is, for now, not replaceable when using isolation. The `ProjectBuilder`'s properties were made read-only. Mutating the builder is not necessary with the addition of `from_isolated_env`. `ProjectBuilder.script_dir` was removed. Adding the `script_dir` to the path is the responsibility of the isolated env.
The `IsolatedEnv` has been reworked to subsume env creation logic. `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. The `IsolatedEnv` takes IsolatedEnvManager` as an argument instead of passing the manager's attributes to the env piecemeal. `ProjectBuilder.from_isolated_env` has been added to auto-fill init args from an isolated env. Moved env mangling logic to the `IsolatedEnv` as prelude to fixing pypa#377. The runner is, for now, not replaceable when using isolation. The `ProjectBuilder`'s properties were made read-only. Mutating the builder is not necessary with the addition of `from_isolated_env`. `ProjectBuilder.script_dir` was removed. Adding the `script_dir` to the path is the responsibility of the isolated env.
The `IsolatedEnv` has been reworked to subsume env creation logic. `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. The `IsolatedEnv` takes IsolatedEnvManager` as an argument instead of passing the manager's attributes to the env piecemeal. `ProjectBuilder.from_isolated_env` has been added to auto-fill init args from an isolated env. Moved env mangling logic to the `IsolatedEnv` as prelude to fixing pypa#377. The runner is, for now, not replaceable when using isolation. The `ProjectBuilder`'s properties were made read-only. Mutating the builder is not necessary with the addition of `from_isolated_env`. `ProjectBuilder.script_dir` was removed. Adding the `script_dir` to the path is the responsibility of the isolated env.
The `IsolatedEnv` has been reworked to subsume env creation logic. `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. The `IsolatedEnv` takes IsolatedEnvManager` as an argument instead of passing the manager's attributes to the env piecemeal. `ProjectBuilder.from_isolated_env` has been added to auto-fill init args from an isolated env. Moved env mangling logic to the `IsolatedEnv` as prelude to fixing pypa#377. The runner is, for now, not replaceable when using isolation. The `ProjectBuilder`'s properties were made read-only. Mutating the builder is not necessary with the addition of `from_isolated_env`. `ProjectBuilder.script_dir` was removed. Adding the `script_dir` to the path is the responsibility of the isolated env.
The `IsolatedEnv` has been reworked to subsume env creation logic. `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. The `IsolatedEnv` takes IsolatedEnvManager` as an argument instead of passing the manager's attributes to the env piecemeal. `ProjectBuilder.from_isolated_env` has been added to auto-fill init args from an isolated env. Moved env mangling logic to the `IsolatedEnv` as prelude to fixing pypa#377. The runner is, for now, not replaceable when using isolation. The `ProjectBuilder`'s properties were made read-only. Mutating the builder is not necessary with the addition of `from_isolated_env`. `ProjectBuilder.script_dir` was removed. Adding the `script_dir` to the path is the responsibility of the isolated env.
* `IsolatedEnv` reworked to subsume env creation logic. * `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. * `ProjectBuilder.from_isolated_env` added to auto-fill init args from an isolated env. * Made the `IsolatedEnv` responsible for customising the environ as a prelude to fixing pypa#377. Removed `ProjectBuilder.scripts_dir`. * `ProjectBuilder`'s @properties made read-only. Mutating the builder is not necessary with the addition of `ProjectBuilder.from_isolated_env`.
* `IsolatedEnv` reworked to subsume env creation logic. * `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. * `ProjectBuilder.from_isolated_env` added to auto-fill init args from an isolated env. * Made `IsolatedEnv` responsible for customising the environ as a prelude to fixing pypa#377. Removed `ProjectBuilder.scripts_dir`. * `ProjectBuilder`'s @properties made read-only. Mutating the builder is not necessary with the addition of `ProjectBuilder.from_isolated_env`.
* `IsolatedEnv` reworked to subsume env creation logic. * `IsolatedEnvBuilder` renamed to `IsolatedEnvManager`. * `ProjectBuilder.from_isolated_env` added to auto-fill init args from an isolated env. * Made `IsolatedEnv` responsible for customising the environ as a prelude to fixing pypa#377. Removed `ProjectBuilder.scripts_dir`. * `ProjectBuilder`'s @properties made read-only. Mutating the builder is not necessary with the addition of `ProjectBuilder.from_isolated_env`.
What's the status on this? After 1611da0 |
As per the discussion in #375.
This will require us to ditch
pep517
for our own backend invocation implementation.I will try to look into it this weekend.
The text was updated successfully, but these errors were encountered: