coala/coala-html

Make the package hackable and updatable

tushar-rishav opened this issue · 3 comments

tl;dr

The goal is to allow user to fetch the latest updates from coalahtml main package and also let me hack on the local package. An ideal solution would be that allows both.

  • Hackability
  • Updates

Details

Imagine user has a local copy of coalahtml angular app which is generated the first time user runs coala-html. Let's call it A.
Now he didn't like certain feature and so he decided to make changes to A locally, so now it's A -> A*. Also user may want to fetch the latest changes from coalahtml main pacakge and Ideally any updates from coalahtml main package should be applied to A* keeping the local changes(applied by the user) intact and not overwriting it.
Now the sugegsted patch basically checks if the user asks for reload, if yes then just ignore the local changes and replace the local files with coalahtml main angular package files
that means A* -> A
Which user wouldn't want
User would rather want to keep A* and still apply the patch from main package.
otherwise keep the A* intact and just update the json configs

For reference the patch is at http://pastebin.com/TA8xqNB2
It doesn't work completely as there are flaws in this approach. Also I gave up working on this approach because we needed something better solution. The patch has been added to support the explanation above.

CC @Uran198

Thanks for reporting this issue!

@coala-analyzer/coala-contributors, your aid is required, fellow coalaian. Help us triage and solving this issue!

One approach was to just check if certain files exist. This approach isn't nice because @Uran198 pointed out that checking only index.html is bad for several reasons:

  • It's hardcoded. In the future there may be no index.html
  • User may break their angular app and want to make it all work again. How will he know that index.html he needs to remove.
  • Just by accident, user may have a project with coalahtml directory and index.html in it.
    I think there may be others
    You can have angular app separated complitely and do git clone

Another approach could be to use git clone to get angular app and separate it into separate repo. This way if user will hack, he can merge it, or use entirely different application for presenting. Seems very flexible, not sure about the ease of implementation, though.