Skip to content

Conversation

@IAlibay
Copy link
Member

@IAlibay IAlibay commented Feb 14, 2025

My small laptop can't run tests because they take too long :(

Developers certificate of origin

@IAlibay
Copy link
Member Author

IAlibay commented Feb 14, 2025

Time to beat is 24 mins.

@IAlibay IAlibay changed the title [DNM] trying to speed up CI a little bit Trying to speed up CI a little bit Feb 14, 2025
@IAlibay IAlibay marked this pull request as ready for review February 14, 2025 20:18
@IAlibay IAlibay requested a review from atravitz February 14, 2025 20:18
@codecov
Copy link

codecov bot commented Feb 14, 2025

Codecov Report

❌ Patch coverage is 95.23810% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 92.52%. Comparing base (e369a20) to head (4137d16).
⚠️ Report is 270 commits behind head on main.

Files with missing lines Patch % Lines
openfe/tests/protocols/conftest.py 92.59% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1131      +/-   ##
==========================================
- Coverage   94.66%   92.52%   -2.14%     
==========================================
  Files         143      143              
  Lines       11012    11030      +18     
==========================================
- Hits        10425    10206     -219     
- Misses        587      824     +237     
Flag Coverage Δ
fast-tests 92.52% <95.23%> (?)
slow-tests ?

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@IAlibay
Copy link
Member Author

IAlibay commented Feb 14, 2025

Time to beat is 24 mins.

Now it's roughly 15 mins, so ~ 40% improvement. Still plenty more that could be done, but for the tests I need to run faster this is a win.

Copy link
Contributor

@atravitz atravitz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a few questions

@pytest.fixture(scope='function')
# Note: scope on this can sometimes cause segfault, may need to revert to
# function scope if it happens.
@pytest.fixture(scope='class')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is purely for speed-up reasons? I'm hesitant about increasing test fixture scope as a shortcut if we're at all concerned about them being mutated.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(for the future) we discussed this and agreed that we should remove session scopes on everything.

r.close()

@pytest.fixture()
@pytest.fixture(scope='class')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same question as above

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(for the future) this one really benefits from a session scope, we'll try to leave it here for now.

@pytest.fixture(scope='session')
def charged_benzene(benzene_modifications):
benzene_offmol = benzene_modifications['benzene'].to_openff()
benzene_offmol.assign_partial_charges(partial_charge_method='gasteiger')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it pre-charging the molecule that does the speed-up here? If so, can we just include the charges hard-coded in the file, so that we 1) don't need to generate charges at all and 2) remove any reproducibility issues stemming from the partial charge method?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should, but replacing benzene_modifications directly is a bit of a pain because we have tests that check for charges (or lack thereof) that uses these files. So we should do it as a separate data entry (in a separate issue).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove any reproducibility issues stemming from the partial charge method?

There are no reproducibility issues with gasteiger charges. They are fully reproducible, all the time.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to @jthorton it's not if the hybridization changes - so it's onlys table if rdkit doesn't change the graph

@IAlibay
Copy link
Member Author

IAlibay commented Feb 17, 2025

let's discuss this at today's meeting

@IAlibay
Copy link
Member Author

IAlibay commented Feb 19, 2025

Decision from today's call: @atravitz and @mikemhenry will work on improving dispatched AWS runners and we'll use this to test the workflow where we manually dispatch long jobs & work through a PR.

@IAlibay IAlibay closed this Aug 26, 2025
@IAlibay IAlibay reopened this Oct 13, 2025
@github-actions
Copy link

No API break detected ✅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants