GoReleaser: Lessons Learned (hacktoberfest)

GoReleaser: Lessons Learned (hacktoberfest)

I’ve started GoReleaser almost 2 years ago. This is a summary of (some) things I’ve learned down the road.

7ef3cd04888c6d17f34d43e29ec3d46f?s=128

Carlos Alexandro Becker

October 20, 2018
Tweet

Transcript

  1. GoReleaser lessons learned

  2. @caarlos0 DevOps @ TOTVSLabs https://carlosbecker.com

  3. None
  4. GoReleaser?

  5. A little bit of history...

  6. 2015 I'm working on some OSS stuff... and doing a

    lot of releases... and manually upload things...
  7. None
  8. release.sh

  9. 2016 Need the same script in more repos...

  10. None
  11. release.sh But in a shared repo

  12. Dec 2016 Need to do more stuff... also really bored

  13. What if...

  14. None
  15. None
  16. None
  17. Fast-forward to today

  18. ๏ GitHub releases ๏ tar.gz , zip, deb, rpm, snap

    archives/packages ๏ homebrew taps / scoop manifests ๏ docker images ๏ gpg signing ๏ s3, artifactory and bintray upload ๏ Checksums ๏ Changelog
  19. None
  20. None
  21. None
  22. None
  23. None
  24. None
  25. Lessons Learned

  26. Dependencies on 3rd parties

  27. ๏ People will have weird environments ๏ Narrow down deps

    on 3rd parties ๏ Keep in mind: ROI
  28. FPM

  29. nFPM

  30. Monorepos

  31. ๏ "Premature optimization is the root of all evil" ๏

    Split repos too early = kind of premature "optimization"
  32. Naming things

  33. ๏ "There are only two hard things in Computer Science:

    cache invalidation and naming things." — Phil Karlton ๏ "Go" + "Release" ๏ goreleaser, GoReleaser, gore leaser ๏ What if I decide to release Rust binaries as well?
  34. None
  35. None
  36. None
  37. Yes is forever

  38. None
  39. ๏ It's not "just more code" ๏ More code means

    more failure modes
  40. ๏ It's hard to say "no" ๏ Ask the maintainer

    first!
  41. Documentation

  42. ๏ Best format? ๏ Is it enough? ๏ Is it

    too much?
  43. No one owes anyone anything

  44. ๏ A big part of OSS is done by people

    working on their free time... for free! Be nice! ๏ GoReleaser is licensed under MIT
  45. None
  46. None
  47. ๏ As an user: don't push the maintainers ๏ As

    a maintainer: don't push yourself too much
  48. goreleaser.com
 
 github.com/goreleaser
 
 carlosbecker.com/tags/goreleaser/

  49. None