question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

MAINT: Vendoring policy

See original GitHub issue

I think we should perhaps discuss/revisit our policy of vendoring, at least for some dependencies we might want to try using install_requires nowadays. Even matplotlib nowadays has some dependencies:

https://github.com/matplotlib/matplotlib/blob/806f00aa8faa03c19adb66560272e956bb7ddc09/setup.py#L315-L324

I know the numpy/scipy/sklearn stack does not require anything (other than setuptools maybe?) but I see us as closer to matplotlib than these core (very C-based) scientific libraries. Also the packaging ecosystem (pip wheels, conda/mamba) has matured quite a bit I think since we made the conscious decision to vendor (5+ years ago IIRC?).

I bring this up because it would be nice to vendor fewer libraries (ideally zero?), and in #10197 we’re discussing possibly vendoring another library (packaging).

We can also discuss this at our next dev meeting if it’s easier.

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:11 (11 by maintainers)

github_iconTop GitHub Comments

2reactions
jasmainakcommented, Jan 13, 2022

could pooch also be added and we do away with “data dependencies” while we’re at it? I’ve stumbled upon this multiple times in packages that use MNE as dependency. The distinction seems a bit artificial to me as I’ve never seen anyone use MNE without downloading some sample data and trying an example first …

2reactions
larsonercommented, Jan 12, 2022

what packages would you recommend to add to install_requires?

Okay let’s look through the seven things we keep in mne/externals, plus the one (packaging) that we need for #10197

the tempita library we vendor is not really maintained anymore.

… And good point – maybe we only vendor things that are no longer maintained. So my proposal is:

Remove

  • FieldTrip.py – it’s for realtime buffer support, we shouldn’t even have this anymore, we should put it in mne-realtime

Add to install_requires:

  • decorator: pure python, maintained
  • h5io: pure python, only strict dep is numpy IIRC, maintained
  • packaging: will be maintained by pypa folks, needed for #10197
  • pymatreader: pure python, only depends on scipy IIRC, maintained
  • tqdm: already an optional dependency with [data], but we use it elsewhere (like for progress bars) so I think we might just want a hard dep here

Move

  • tempita: move to mne/reports for now where it’s needed, and maybe @hoechenberger can see how much work it would be to move to jinja2 or some other templating system rather than sticking with something that is not maintained
  • doccer.py: originally adapted from SciPy, it’s only ~100 lines so we should just move it to utils/docs.py or wherever our doc-filling code lives
Read more comments on GitHub >

github_iconTop Results From Across the Web

FSS/PPS 03.13 - Vendor Maintenance : Policy and Procedure ...
This document establishes policy and procedures for vendor maintenance associated with Texas State University including, but not limited to, the creation of ...
Read more >
Vendor Setup and Maintenance Policy - KnowledgeLeader
This policy establishes the responsibilities and authorizations for completing and accurately maintaining the vendor master file (“VMF”) at a company.
Read more >
Create Your Vendor Onboarding Policy – A Must Have for ...
What documents and are required to be collected from the vendor based on different criteria. For example, if a vendor prefers to be...
Read more >
Vendor Setup and Maintenance Policy - Eau Claire County
This policy applies to all spending activities processed by accounting related to purchasing goods or services as well as operating expenses. A new...
Read more >
5 Recommendations to Train Your New Vendor Maintenance ...
How to set up a new vendor, how to change an existing vendor, etc. From it, a Welcome Letter to new vendors or...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found