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

Make gitrekt into a standalone package #38

Closed
lambdadog opened this issue Dec 21, 2018 · 2 comments
Closed

Make gitrekt into a standalone package #38

lambdadog opened this issue Dec 21, 2018 · 2 comments
Labels

Comments

@lambdadog
Copy link

Would be useful for people interested in implementing a git server component into their own projects.

Currently depending on gitrekt is a bit of a mess for a project, as you would have to first clone gitgud and then add the dependency based on its path since gitgud is an umbrella project, which is unintuitive and fairly unportable without using something like submodules, which no one wants to do for their project

@lambdadog
Copy link
Author

Alternatively, you could just upload it to hex.pm since that doesn't depend on packages being in the git root, although I could understand if you'd prefer not to upload an unfinished package to it

@redrabbit
Copy link
Owner

redrabbit commented Dec 26, 2018

Hi @beta-phenylethylamine,

Would be useful for people interested in implementing a git server component into their own projects.

Yes, it would be very nice to have a plug-and-play Git backend you could drop as a project dependency. In it current state GitGud does not provide a simple way to do so out of the box.

The project is currently split into three main components (umbrella application):

Publishing :gitrekt on it own means that people would still have to implement a lot (Git transport protocols, SSH, HTTP), authentication, authorization, database schemas to work with etc.

One possibility would be to drastically refactor :gitrekt in order to include SSH and HTTP transport protocols and provide a flexible way (config files?, macros?) to let people use their own structs and endpoints to handle authentication, authorization, user and repository management, etc.

An other possibility with the current project structure, would be to publish all three components as separate Hex packages with a dependency hierarchy between the packages looking as follow:

:gitrekt <- :gitgud <- :gitgud_web

People could use :gitrekt and implement things on their own, or use :gitgud in order to have more built-in feature or even :gitgud_web for the whole shebang.

Alternatively, you could just upload it to hex.pm since that doesn't depend on packages being in the git root, although I could understand if you'd prefer not to upload an unfinished package to it

If I remember correctly, Hex does not support publishing umbrella application.

Also, the project is approaching version 0.2 and for me it is not polished enough to be published as package. I would rather continue to work with the current umbrella application where I have more flexibility over all components (not having to care about breaking API changes between package versions, etc.).

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

No branches or pull requests

2 participants