Open miquelduranfrigola opened 5 months ago
The following relevant questions were raised by the @ersilia-os/harvard-t4sg. I try to respond:
The way I envisage this is as follows (but I am open to discussion!):
ersilia inspect
command as described above.ersilia inspect
command.
In sum, I see the .yml file as a workflow for running several steps (e.g. install ersilia, inspect model, etc.). In this project, we'll have to work both on .py and .yml files.I would definitely work on VSCode. By consensus, worflow files are stored in .github/workflows/
, so if you write them in VSCode and push changes, they will be reflected in the GitHub web interface.
Yes, you can create it in the ersilia-os/ersilia-maintenance/.github/workflows
folder
May I work on this issue @miquelduranfrigola as I am a beginner in Ersilia and would love to work in this issue?
Hello @anshikavashistha, thanks for your message. This work is led by a team of volunteers from Harvard T4SG, so we are well covered for now! We'll let you know if we need assistance.
No problem @miquelduranfrigola Please let me know if you need any kind of assistance
Hello @ersilia-os/harvard-t4sg
The first version of the workflow works! https://github.com/ersilia-os/ersilia-maintenance/actions/runs/8382908764/job/22957612010
There are just a few things to finalize related to this PoC. Please see this issue for more.
While working with @dzumii over some improvements towards https://github.com/ersilia-os/ersilia-maintenance we observed that the model inspection code being utilised by this repository is in fact not within Ersilia, and is inside a much divergent fork from the original contributor. It is imperative that we move that code to the main ersilia repository such that it is easier to extend and maintain. At present, the fork is >35 commits ahead and about ~100 commits behind the upstream, making it harder to simply follow the pull request route. I propose simply doing a git diff and creating a patch commit to merge this within the ersilia main repository.
Post this code migration, we should evaluate whether to close this issue or keep it open for further discussion. Thoughts @miquelduranfrigola ?
After inspecting the contents of the diff between the two repositories, the only files we need to keep are the following:
ModelInspector
class. Please make sure to remove all print
calls and replace them with debug logs.
@dzumii do you think you'd be able to take this up?
Ok, I will check it out @DhanshreeA
Background
This is the opening issue of the project Ersilia Automation Workflow Module done in collaboration with Harvard Tech For Social Good (T4SG). The goal is to create suite of GitHub Actions workflows and a Python-based CLI testing module that run several critical monitoring and maintenance tasks for the Ersilia Model Hub.
Useful resources
To become familiar with the Ersilia Model Hub, these resources can be helpful:
First steps
To get started with the project, we need to:
Set up users.
t4sg
team in Ersilia.main
branch of the ersilia-maintenance repository. @miquelduranfrigola will do it.Work on a case example on the Ersilia CLI
In the Ersilia CLI, we have a
ModelTester
class that we did not manage to bring to production yet. It can be found here. In my opinion, we should write an independent script in the context of this project, containing its own evaluator or tester class - the currentModelTester
is too involved to get started with. If you agree, let's:/publish/inpect.py
) containing a main class calledModelInspector
(feel free to change naming).True
:"eos3b5e"
since the URL https://github.com/ersilia-os/eos3b5e is valid, while"eos9xyz"
does not lead to a valid URL https://github.com/ersilia-os/eos9xyz.ModelInspector
class as part of the CLI commands. You can find out how commands are written in Ersilia by browsing other examples. I would say that, for now, we can create a command that works like this:ersilia inspect eos3b5e
and returns a JSON string or file, in this case something like{'is_github_url_available': 'True'}
. (@DhanshreeA - we may want to eventually merge theinspect
andtest
commands, but for now I would keep it separate to simplify the project).Implement an automation on the Ersilia Maintenance repository
Following this first example, we should create a GitHub Actions workflow that:
workflow_dispatch
trigger is also added.eos3b5e
. Therefore, the action should run something likeersilia inspect eos3b5e > inspect_output.json
. We can also try if foreos9xyz
.is_github_url_available
field isFalse
. In this example, an issue would be created foreos9xyz
but not foreos3b5e
.Next steps
As soon as we have finished with this first steps, we will: