Skip to content
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

Support addons hosted on git repositories #13

Closed
Cephel opened this issue Sep 18, 2019 · 11 comments
Closed

Support addons hosted on git repositories #13

Cephel opened this issue Sep 18, 2019 · 11 comments
Assignees

Comments

@Cephel
Copy link

Cephel commented Sep 18, 2019

It would be pretty nice if you could have it install and maintain an addon by installing it via its repository URL.

@AcidWeb
Copy link
Owner

AcidWeb commented Sep 18, 2019

QA nightmare. Git repos don't have standard structure plus most of them don't include required libraries.

@Cephel
Copy link
Author

Cephel commented Sep 19, 2019

That's a user problem, not a support problem. By its nature, addons from a git repository would be more of a pro user thing.

@AcidWeb
Copy link
Owner

AcidWeb commented Sep 20, 2019

I will think how to implement it.

@AcidWeb AcidWeb self-assigned this Sep 20, 2019
@kanegasi
Copy link

Adding to Cephel's thought, an option to add a github repository manually would be nice, but concerning general support, you could provide some sort of check an author could put in their repository that flags their addon on github as a "standard install". Many authors already use pkgmeta files and other markers for projects.

@AcidWeb
Copy link
Owner

AcidWeb commented Sep 21, 2019

I would argue if "standard install" even exist. Yes - there are some standards but they don't guarantee repository structure. And I think adding something that will detect it is out-of-scope for this project.

Considering that will be power user feature I'm rather thinking about approach where user set repo directories/symlinks manually and CurseBreaker just execute git pull.

I still think about it.

@kanegasi
Copy link

What I meant by "standard install" is that pulling the repo as-is would be exactly how the addon is supposed to be installed into Interface\AddOns, as in the repo has the necessary libs, folders, files, and .toc. The detect flag would put the responsibility of a correct install on the author and not CB.

In any case, I look forward to what you'll do with github support.

@AcidWeb
Copy link
Owner

AcidWeb commented Sep 22, 2019

I was thinking about using GitHub releases but it is somewhat messy and still have the same issue as cloning bare repo.

I will stick with my original idea to automate git pulls nothing more. It will be fully power-user feature.

@Cephel
Copy link
Author

Cephel commented Sep 26, 2019

I would prefer if by default, CurseBreaker assumes the addon repository is directly hosted on the source tree, so the root folder has the .toc file and such, meaning you can check it out directly into the interface/addons folder.

Then, a flag should exist to specifiy subfolders within the repository, in case the repository root starts with a folder, ie. <repositiory>/addon/*.toc rather than <repository>/*.toc. The flag could look like this: install <git-url> --toc addon which would instruct it to look for the .toc file inside an addon folder in the repository root and checkout the folder appropriately.

Supporting these two use cases would make almost every addon hosted on git viable to be imported.

@AcidWeb
Copy link
Owner

AcidWeb commented Sep 26, 2019

This make sense but I rather implement something that will detect TOC and structure automatically.

@AcidWeb
Copy link
Owner

AcidWeb commented Sep 27, 2019

There is also third popular scenario. Two addons in repo - one TOC directly in root of repo and second in sub-directory. Quite common scenario if addon have separate options addon.

I'm starting to think that proper support of GitHub is not worth the time investment needed to implement that in civilized way.

@AcidWeb
Copy link
Owner

AcidWeb commented Oct 17, 2019

After long consideration I not found any way of supporting it in a way that I like.

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

No branches or pull requests

3 participants