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

Installation is not 'simple' #175

Closed
jimdigriz opened this issue Sep 7, 2018 · 5 comments
Closed

Installation is not 'simple' #175

jimdigriz opened this issue Sep 7, 2018 · 5 comments

Comments

@jimdigriz
Copy link
Contributor

As a grumpy sysadmin I have been able to avoid rust, but unfortunately get more grumpy when presented with just 'install the toolchain' and no mention of the dependencies.

Might be helpful to add a 'dependencies' section for people to run through just before they type cargo install portier_broker and get discouraged by what is a really excellent project.

Documentation is hard, you have to write it in a form that acknowledges the other person is intelligent, but have zero experience of what your unique (sorry, Rust is not used by the 99%) build environment is.

Personally I find a formula that works is either:

  • shell script that just does it, so the instructions can say 'run: sh build.sh' and those interested can dig into the script
  • verbatim walk the user through what needs typing, it rarely is much, as you can see below (though Ubuntu 18.04 seems broken with its own distributed cargo, so worth noting, 'sorry, you gotta curl | sudo sh')

Pre-flight

Debian 9

apt-get update
apt-get -y install --no-install-recommends build-essential ca-certificates curl gettext libssl-dev pkg-config 
curl https://sh.rustup.rs -sSf | sh /dev/stdin -y
source $HOME/.cargo/env
cargo install portier_broker

Ubuntu 18.04

apt-get update
apt-get -y install --no-install-recommends ca-certificates cargo gettext libssl-dev pkg-config 
cargo install portier_broker

N.B. does not build as parking_lot_core implodes with 'use of unstable library feature 'thread_local_state': state querying was recently added (see issue #27716)'

@onli
Copy link
Member

onli commented Sep 7, 2018

Hi. Thanks for that feedback!

The How to run your own broker section links to https://doc.rust-lang.org/book/getting-started.html. Maybe a solution here would be to fix that link and point it to https://doc.rust-lang.org/book/second-edition/ch01-01-installation.html. That page recommends to run curl https://sh.rustup.rs -sSf | sh - but your installation hints explain more, which might be useful.

@jimdigriz
Copy link
Contributor Author

jimdigriz commented Sep 8, 2018 via email

@onli
Copy link
Member

onli commented Sep 8, 2018

Hm. I'm not opposed to adding more information about this to the readme. Are the information in your initial comment correct, can that be added like this?

But maybe the real solution here is to start providing the binary package. @stephank, what do you think?

@stephank
Copy link
Member

stephank commented Sep 8, 2018

We also lack a good release process. The couple of releases we did are not much more than git tags. There's no announcement, change log, downloads, etc.

Binaries are a good start. We currently have Docker Hub setup to automatically build images for master. These are single-layer images with already a static build that should work anywhere.

Travis also does builds, they just don't end up anywhere. We could extend the Travis config to upload builds created there to something like bintray.com.

We also need to consider installation. I guess a simple tarball would work for installation to /opt.

Eventually we probably want debs and rpms containing shared binaries that use the system OpenSSL and stuff.

@stephank
Copy link
Member

I think we've since solved the release process, and we have proper binaries now for all 3 major platforms, along with some example systemd units. I'd like to track distribution packaging in #135.

This is a bit late, I guess, but I hope this sufficiently improves on your installation troubles, @jimdigriz? Or if there is anything else you'd like to see besides what we track in #135 for packaging?

To keep the issue tracker lean, I'm going to close this for now, but feel free to reopen or keep discussing!

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

No branches or pull requests

3 participants