-
Notifications
You must be signed in to change notification settings - Fork 581
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
Bear dependencies should be optional dependencies in setup.py #1000
Comments
I guess they won't be installed by default then? |
right, which will speed up installation and reduce headaches for all. |
There are actually two sets of bear dependencies. Direct imports
Indirect imports
IMO these are all optional. Without them, the bear wont run, but coala will run and other bears can be used. Which means that |
how would I install optional packages for a bear (or even all bears if I want to) conveniently? |
See For all bears, We can make as many extras as we like, with as many overlapping subsets as we want. e.g. bear specific extras
and language specific extras
And a user could mix them like
|
ah sorry seems I've missed that in the text :) |
blocked on #1044 |
#1044 complete. Pending implementation on ci |
A lot of auditing required between requirements.txt and the generated version; e,g. #1212 |
And |
Now, the only requirements needed by coala-bears is I've done most of the fixes to python dependencies (see #1231 and #1230), and then will PR a "switch to using generated bear-requirements.txt". There are then some extra GCI tasks I can create to improve setup.py and the requirements generator. |
Remove all bear requirements from requirements.txt, and use .ci/generate_bear_requirements.py to create and verify that the bear-requirements is identical to the PipRequirement found in the bears. Update the PipRequirement in the bears to match the versions currently being installed, and also remove the PipRequirement for libclang-py, as this dependency is provided by coala. Updates setup.py to add an extra 'alldeps' that is be used by CI to transition to explicitly requesting additional dependencies so 100% coverage and `coala --ci` work correctly. Uses pip to install wheels, as it supports extras while setup.py would require a non-standardised command line option to be added. Closes coala#1000
Not quite solved. |
Before we can remove the python dependencies from the coala-bears install requirements, the other coala repositories need to switch to using the 'alldeps' extra. Related to coala/coala-bears#1000
@jayvdb status? do we still need to remove things? |
Ya, we need to remove things from setup.py . |
coala-bears will soon stop depending on all of the Python dependencies that are required for the bears written in Python. To install all Python dependencies, an 'alldeps' extra needs to be used. Related to coala/coala-bears#1000
coala and the docker have been fixed to use |
This problem has caused a huge breakage as VintBear is broken until Vimjas/vint#217 is fixed. Everything fails as can be seen at coala/coala#4283 |
Remove all bear requirements from requirements.txt, and use .ci/generate_bear_requirements.py to create and verify that the bear-requirements is identical to the PipRequirement found in the bears. Update the PipRequirement in the bears to match the versions currently being installed, and also remove the PipRequirement for libclang-py, as this dependency is provided by coala. Updates setup.py to add an extra 'alldeps' that is be used by CI to transition to explicitly requesting additional dependencies so 100% coverage and `coala --ci` work correctly. Uses pip to install wheels, as it supports extras while setup.py would require a non-standardised command line option to be added. Closes coala#1000
ApertiumLintBear in the bears 0.12 pre-release requires many host library and utilities, via package libxslt1-dev or similar. As it is not used, it is more efficient to remove it, and the hard dependency should be removed before 0.12 release due to coala/coala-bears#1000 . Also undo the VintBear workaround, which is unnecessary after 0.11.1.
It should be possible to install this package without any bear dependencies.
setup.py shoukd use extras for each Python dependency that bears use.
And then an additional extra "alldeps" which includes all bear deps.
Once done, people should migrate to using pip install
coala-bears[alldeps]
and then we can remove them from the default deps.Or we could create a coala-bears-minimal package which has no bear deps.
The text was updated successfully, but these errors were encountered: