GoReleaser: Lessons Learned

GoReleaser: Lessons Learned

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

September 29, 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. Lessons Learned Code

  27. "Generic" package names

  28. None
  29. None
  30. Dependencies on 3rd parties

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

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

  33. nFPM

  34. Monorepos

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

    Split repos too early = kind of premature "optimization"
  36. Lessons Learned Community

  37. Naming things

  38. ๏ "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?
  39. None
  40. None
  41. None
  42. Yes is forever

  43. None
  44. ๏ It's not "just more code" ๏ More code means

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

    first!
  46. No one owes anyone anything

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

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

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

  52. None