As a developer I would like to settle on a distribution model #43
Labels
No Label
blocked
bug
build
documentation
duplicate
enhancement
finger
gemini
gopher
help wanted
http
in progress
invalid
local
needs-info
non-code
non-functional
non-urgent
question
release
rendering
suggestion
telnet
terminal
urgent
wontfix
No Milestone
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: sloum/bombadillo#43
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Depending on systems we want to support our options are many:
After a ton of reading I am leaning toward just distributing via git link and a makefile in the root dir. It seems like it works fine and suits the intended audience fine... though the many many other options also have upsides. This issue was created to see if there is consensus on route forward for v2.0.0 release, and if not discuss pros/cons/options.
I used a makefile for gfu as it seems like the minimum barrier for distributing software, but it relies on having the appropriate software for building installed locally. This would likely be ok for the intended audience.
Other packaging options would be useful not just for ease of installation, but it would also expose new people to bombadillo when they see it in the repository. For example, if a snap was built and made available through the snap store. This means some new learning/effort, for every package type used.
With all this said, I don't install bombadillo often. What would a sysop prefer?
Yeah, I am mostly inclined to go the makefile route. I may make a developer makefile as well that can build binaries for all supported platforms so that binaries can be offered at least for major versions (not sure I want to deal with upkeep of binaries for minor versions).
I asked @cmccabe about this a little while ago, who provided some really interesting ideas on this. The main point was not so much about installing but rather in updating or even removing the software.
A makefile would probably be the first thing to do, as it's the most universal. It would still be worth doing something to help with updates - a snap might be the easiest, ending up in a repository would be the most comprehensive.
Thanks @cmccabe!
git pull && make install
is very easy distribution method for me, preferably installing to an overridable$PREFIX
that would default to/usr/local
@ben I had not thought of the application being installed outside of
$GOPATH/bin/bombadillo
. If you are wanting this behavior I would imagine that there are others that would also like to be able to manage things in this way. This is definitely in scope for where we are at in the v2.0.0 release process (I am currently working on the Makefile).I am also glad to hear that the
git pull && make install
method sounds good to you. I feel pretty good about it at this point as well 👍@asdf any thoughts on any of the above from @ben?
I run tilde.team and tilde.club and would like to be able to install system-wide and not just for my own user. I ended up running
go build
and then just copying the executable to/usr/local/bin/
. Works fine, but would be nice to have that as a supported install method.I have a PR open for the makefile. It allows you to pass in options for both where to install and where to have the default config file, I'll have to think out how to make that default config file option work better in a multiuser environment. I'll get back to you on it. But it will definitely be able to install to any place you like :)
EDIT: I'll make it so that the compile time logic can take a
~
to represent a users directory for the CONF_PATH variable. That should make it reasonably flexible for admins to have home folders set up how they would like. Combined with the BUILD_PATH variable I think it should accomplish what you need it to.As we have firmly settled on makefile as our build/release model, I will close this card.
For reference, the makefile gets merged in by #57 and updated by #59.