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

Refactor RuntimeFramework and related classes #1168

Closed
CharliePoole opened this issue Feb 28, 2022 · 0 comments · Fixed by #1170
Closed

Refactor RuntimeFramework and related classes #1168

CharliePoole opened this issue Feb 28, 2022 · 0 comments · Fixed by #1170
Assignees
Labels
Enhancement V4 All issues related to V4 - use -label:V4 to get non-V4 issues
Milestone

Comments

@CharliePoole
Copy link
Member

RuntimeFramework was originally created for use in a single-threaded environment. The introduction of parallel execution and especially parallel loading of tests has exposed some weaknesses. Additionally, the class serves a number of disparate functions. Simplifying and otherwise refactoring it will allow us to move forward with pluggable agents, which is why this issue is a part of #909.

Ideally, we should remove all knowledge of the environment from RuntimeFramework. An instance of RuntimeFramework does
not need to know, for example, if it is available on the current system. In the present architecture, that's really the job of the RuntimeFrameworkService. Other functions may actually belong in TestAgency.

All the static properties of RuntimeFramework need to be examined for thread-safety, particularly CurrentFramework
and AvailableFrameworks. The latter is preventing implementation of parallel loading. We may be able to move all this functionality to services or utility classes eliminating the use of public static properties here.

Although all of the above is essentially refactoring, I'm treating this as an enhancement since it enables us to move ahead on new features, which are otherwise blocked.

@CharliePoole CharliePoole added this to the 4.0 milestone Feb 28, 2022
@CharliePoole CharliePoole self-assigned this Feb 28, 2022
@CharliePoole CharliePoole modified the milestones: 4.0, 4.0.0-beta.1 Dec 29, 2024
@CharliePoole CharliePoole added the V4 All issues related to V4 - use -label:V4 to get non-V4 issues label Feb 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement V4 All issues related to V4 - use -label:V4 to get non-V4 issues
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant