mapbox-cli-py icon indicating copy to clipboard operation
mapbox-cli-py copied to clipboard

Packaging meta-ticket

Open perrygeo opened this issue 10 years ago • 7 comments

A starting point for talking about how we're going to package and distribute this thing.

@tmcw mentioned that homebrew and apt-get should be the two primary targets.

I'd add that packaging a windows installer would really expand the potential audience. Whether it's worth the added maintenance burden (I don't even have access to a windows computer at the moment) is debatable.

  • [ ] identify target platforms
  • [ ] identify contributors with experience in those packaging systems
  • [ ] ...
  • [ ] everyone in the world has access to a one-line/one-click installer for command line access to Mapbox APIs

perrygeo avatar Dec 10 '15 00:12 perrygeo

Global installation via sudo pip is really discouraged in the python world, yet we don't have any other way to install this globally. Using virtualenvs to create isolated environments is OK for python devs but is not a viable option for all end users. So I'd like to move on creating a homebrew formula sooner than later to at least get OS X users into the fray without much hassle.

Some decision points

  1. Should we just maintain our own tap (really just a repo with a Ruby formula in it) or try to work with the Homebrew team to get mapbox included in the homebrew repo? The advantage to a Tap is greater independence and lightweight publishing and maintenance (just git push). The advantage to the main homebrew repo is easier discoverability, tighter quality control and slightly less typing to install (brew install mapbox versus brew install mapbox/repo/mapbox). For now, I am leaning heavily towards using the Tap method until we work out the kinks.
  2. If we go the Tap route, what should our repo name be? We already have a mapbox/homebrew-custom repo (making the installation command brew install mapbox/custom/mapbox) but we might consider starting another homebrew-____ repo for this and other "official" Mapbox apps.

Besides that, I've read through the Python for Formula Authors docs and have a solid working formula ready to go once we decide on these details.

/cc @sgillies @tmcw

perrygeo avatar Feb 01 '16 16:02 perrygeo

@tmcw @sgillies : what about a mapbox/homebrew-cli repo for this and other supported command line tools? This would make the installation command

brew install mapbox/cli/mapbox

Has a nice ring to it, would you agree?

perrygeo avatar Feb 08 '16 18:02 perrygeo

@perrygeo or maybe just mapbox/homebrew and have just about any Mapbox project that's not in the main Homebrew repo (like Tippecanoe)?

sgillies avatar Feb 08 '16 20:02 sgillies

@sgillies the repo name has special importance to homebrew's tap system - it assumes that you've got homebrew-<name> as the repo name and will install with brew install <username>/<name>/<formula> - a bit odd and it forces you to be more descriptive.

perrygeo avatar Feb 08 '16 21:02 perrygeo

We could just name it homebrew-mapbox making the command sound like an incantation

brew install mapbox/mapbox/mapbox

tumblr_mjgybbewtf1r6lsuko1_500

perrygeo avatar Feb 08 '16 21:02 perrygeo

I just went ahead with homebrew-cli as the working repo: https://github.com/mapbox/homebrew-cli

We can adjust later if needed.

perrygeo avatar Feb 19 '16 19:02 perrygeo

Another option to consider (though a bit on the experimental side) would be to transpile the Python code to Go using Google's Grumpy. This could produce static binaries on all our target platforms. In theory.

perrygeo avatar Jan 09 '17 16:01 perrygeo