Skip to content
This repository has been archived by the owner on Aug 7, 2023. It is now read-only.

Install linter automatically. #7

Closed
keplersj opened this issue Sep 6, 2015 · 4 comments
Closed

Install linter automatically. #7

keplersj opened this issue Sep 6, 2015 · 4 comments

Comments

@keplersj
Copy link

keplersj commented Sep 6, 2015

By using atom-package-deps you are able to install linter automatically on activation. This will allow new Atom users to install only your package and nothing else, removing one step from the installation process.

Please see AtomLinter/linter-ruby#38 for example.

trevershick added a commit to trevershick/linter-clojure that referenced this issue Nov 18, 2015
Addresses AtomLinter#7

Instead of a manual requirement for linter to be preinstalled,
use atom-package-deps to install 'linter' when activated (if not
already installed).  This allows for much simpler installation.
@dvcrn
Copy link

dvcrn commented Dec 17, 2015

Can we strip this out again or make it optional? There are cases where you want more granular control over your packages and packages installing packages makes this very tiresome.

Nuclide users for example use the nuclide-diagnostics package which conflicts with linter and disables it.

@Arcanemagus
Copy link
Member

@dvcrn This use case has already been handled. The linter package will be installed if it isn't already... but if you have it installed but disabled it will not be re-enabled. So simply disable linter and keep on using nuclide-diagnostics.

Until Atom implements service dependencies this is unfortunately the best that we can do without relying on every user to install linter themselves.

Marking this as closed as this has been implemented in #11.

@dvcrn
Copy link

dvcrn commented Dec 18, 2015

To clear up, we had a very specific usecase over at proton - dvcrn/proton#50. Proton orchestrates package installations for you. The problem was that when a sub-packge (we call them 'layers') implements linter support even though the user didn't enable the linter layer, linter-clojure (and friends) would just pull linter in. On next atom start, proton would see that linter is installed without it being orchestrated through proton and proceeds to remove it. Then linter-clojure installs it in again and so on.

We went with lazy-loading linter-clojure. If linter is not installed, linter-clojure will not be installed either so it can't hard install linter automatically later on.

@Arcanemagus
Copy link
Member

Just finished reading through that issue, looks like an interesting and quite complex project.

@steelbrain is currently working on splitting the linter UI out into a separate package that integrates via a service with linter. Once that is complete you guys may be interested in building your own UI to better integrate into the changes you are making.

It looks like you guys are basically implementing a workaround for exactly what the service dependencies PR on atom/apm that I linked above is meant to solve. Once that gets completed a lot of these issues can be solved relatively simply but for now unfortunately we are stuck with this situation.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants