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

Improve approach to obtain additional python packages needed for some use cases #839

Closed
21 tasks done
georgemccabe opened this issue Mar 12, 2021 · 0 comments · Fixed by #967
Closed
21 tasks done
Assignees
Labels
component: CI/CD Continuous integration and deployment issues component: external dependency External dependency issue component: testing Software testing issue priority: high High Priority requestor: METplus Team METplus Development Team type: enhancement Improve something that it is currently doing
Milestone

Comments

@georgemccabe
Copy link
Collaborator

georgemccabe commented Mar 12, 2021

I learned that the marine_and_coastal use case takes 15 seconds to run, but takes 35-40 minutes in GitHub Actions because it takes an extremely long time to obtain the xesmf package that is needed for that use case. A large portion of the processing time in all of the use cases that have additional packages involves obtaining packages.

Describe the Enhancement

Consider a new approach to getting python dependencies for use cases. A possible solution would be to create a Docker image that installs conda and creates conda environments for each group of package dependencies (i.e. if use case(s) needs X, Y, and Z packages, create an environment and add only those 3 packages to it). We could then create another Docker image used for these tests that is based on the METplus image but also adds the content from the environment image so that they are available for the use case tests. This would greatly reduce execution time in GitHub Actions and also help isolate the environments for the use cases to ensure only the package that we list as dependencies are required.

Time Estimate

~ 2-3 days

Sub-Issues

Consider breaking the enhancement down into sub-issues.

  • Add a checkbox for each sub-issue here.

Relevant Deadlines

List relevant project deadlines here or state NONE.

Funding Source

2791541

Define the Metadata

Assignee

  • Select engineer(s) or no engineer required
  • Select scientist(s) or no scientist required

Labels

  • Select component(s)
  • Select priority
  • Select requestor(s)

Projects and Milestone

  • Review projects and select relevant Repository and Organization ones or add "alert:NEED PROJECT ASSIGNMENT" label
  • Select milestone to next major version milestone or "Future Versions"

Define Related Issue(s)

Consider the impact to the other METplus components.

Enhancement Checklist

See the METplus Workflow for details.

  • Complete the issue definition above, including the Time Estimate and Funding Source.
  • Fork this repository or create a branch of develop.
    Branch name: feature_<Issue Number>_<Description>
  • Complete the development and test your changes.
  • Add/update log messages for easier debugging.
  • Add/update unit tests.
  • Add/update documentation.
  • Push local changes to GitHub.
  • Submit a pull request to merge into develop.
    Pull request: feature <Issue Number> <Description>
  • Define the pull request metadata, as permissions allow.
    Select: Reviewer(s), Project(s), Milestone, and Linked issues
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Close this issue.
@georgemccabe georgemccabe added type: enhancement Improve something that it is currently doing component: testing Software testing issue priority: high High Priority alert: NEED ACCOUNT KEY Need to assign an account key to this issue component: CI/CD Continuous integration and deployment issues component: external dependency External dependency issue requestor: METplus Team METplus Development Team labels Mar 12, 2021
@georgemccabe georgemccabe added this to the METplus-4.0.0 milestone Mar 12, 2021
@georgemccabe georgemccabe self-assigned this Mar 12, 2021
@TaraJensen TaraJensen removed the alert: NEED ACCOUNT KEY Need to assign an account key to this issue label Jun 7, 2021
@georgemccabe georgemccabe linked a pull request Jun 28, 2021 that will close this issue
12 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: CI/CD Continuous integration and deployment issues component: external dependency External dependency issue component: testing Software testing issue priority: high High Priority requestor: METplus Team METplus Development Team type: enhancement Improve something that it is currently doing
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants