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

PR feature table #260

Closed
Spedoske opened this issue Aug 13, 2023 · 3 comments
Closed

PR feature table #260

Spedoske opened this issue Aug 13, 2023 · 3 comments
Assignees

Comments

@Spedoske
Copy link
Collaborator

@tianyin @tylergu This is the features & changes table in plan 2 #235 (comment).

I think the first plan is hard because there are already a lot of code involved between the first commit and the first commit that passes the unit tests. These changes are necessary and atomic for the whole project, which make them really hard to be in different PRs. cfb5b0a...777a77d

Features & Changes Files Notes
Build Systems .pre-commit-config.yaml, requirements.txt Generate requirements.txt for backward compability
Build Systems flake.nix, flake.lock, shell.nix, ray-dashboard.patch Use nix to make sure Acto deployment is the same across nodes, used in Ray executor
Build Systems pyproject.toml, poetry.lock Use poetry to manage python dependencies
Checker Interface acto/checker/* Implement new checker interface
Checker Result Interface acto/checker/*, acto/common.py Implement new checker result interface
Collector acto/kubectl_client/collector.py Move Kubernetes cluster information collection into a standalone class
Config config.yaml, config_post_diff_test.yaml, acto/config_schema.py, acto/config.py Config files to run Acto
Coverage Collection data/rabbitmq-operator-with-coverage/* Example operator with coverage collection
Coverage Collection acto/kubectl_client/collector.py Implement coverage collection
Custom Checker Example data/strimzi-kafka-operator/oracle.py Implement Java Log Oracle
Deployment scripts/ansible/* Deployment Acto using Ansible, used in Ray executor
Deploy Interface acto/deploy.py Deploy Interface is changed because of the Runner Interface change
DIff tests acto/post_diff_test.py, acto/post_process/* rewrite Diff tests due to the change of Trials, Runners, and Deploy
Engine acto/engine_new.py Engine is rewritten because of the change of Runner, Deploy, Trial, collector Interface
Input acto/input/* move test cases partition out of the input module because the original methods is bound to thread local variable, which is not suitable now because executors can have different implementations.
Kafka Operator data/strimzi-kafka-operator/* Port Kafka operator
Parallel Executors acto/ray_acto/* It is NOT ray, it is an abstraction layer of parallel executors, with different backends including thread, process, and Ray.
Reproduce acto/reproduce.py Reproduce is rewritten because of the change of Runner, Deploy, Trial, Acto Interface
Runner acto/runner/runner.py An abstraction for an executor that accepts a trial and a function to collect snapshots, return the completed trial.
Snapshot acto/snapshot.py Add more fields and make it to able trace back previous snapshots.
Snapshot Collector acto/runner/snapshot_collector.py A set of functions to build functions that agree with the Snapshot collector function interface.
Tests test/* Fix tests for the API breaking changes
Trial acto/runner/trial.py Provide two layer of abstraction, the first layer is TrialInputIteratorLike, which decides what to do with the inputs when receiving different oracleControlFlow. The second layer is Trial, which decides how to interact with the snapshot collector.
@tianyin
Copy link
Member

tianyin commented Aug 13, 2023

Add @tylergu and @whentojump to see how to merge.

@tianyin
Copy link
Member

tianyin commented Aug 13, 2023

There are a lot of good code in the PR.

@tylergu
Copy link
Member

tylergu commented Aug 14, 2023

@Spedoske I think we can start merging from the "build system". Then for the next step we can merge the "code coverage collection", then the "checker interface". These changes should be easy to separate out and not depend on other changes.

@KashunCheng KashunCheng added this to the Merge the big refactor milestone Aug 29, 2023
@tianyin tianyin closed this as completed Feb 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants