Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Diary of my first OSS library

Diary of my first OSS library

Link to the talk: https://www.youtube.com/watch?v=g1BIdbA_eXQ

This presentation covers the next points:
- OSS current existing problems
- Building a JS library like a pro
- Release and maintenance.

Raúl Gómez Acuña

September 16, 2017
Tweet

More Decks by Raúl Gómez Acuña

Other Decks in Technology

Transcript

  1. About me ‣ Spanish expat in Wroclaw since 5 years

    ago ‣ React & React Native developer ‣ Working at callstack.io ‣ https:/ /github.com/rauliyohmc ‣ Twitter: @rgommezz ‣ https:/ /medium.com/@rauliyohmc
  2. 1. OSS existing problems 2. Build a JS library like

    a pro 3. Release and maintenance
  3. Diving into OSS, 2016 ‣ 19.4+ million active repositories ‣

    Is this something beneficial for the community? ‣ Analogy to JS fatigue ‣ You don’t need to reinvent the wheel!
  4. Key points ‣ Open source is not a competition ‣

    We need to see it as a collaborative environment ‣ Contribute to existing libraries! ‣ Start with something simple, like documentation
  5. Quality Assessment ‣ 2 were only libraries and 1 example

    app ‣ The most starred (83) only had 1 file with 55 lines of code ‣ Last commit 12 of January ‣ No test coverage
  6. Wish List ‣ Showing/hiding several elements on a screen if

    offline ‣ Easy redux integration ‣ DRY for checking connectivity before launching API calls ‣ Offline queue
  7. ESLINT ‣ Static analysis of your code ‣ Discover problems

    in JS code without executing it ‣ Comes with a predefined set of rules embraced by JS community ‣ Easily pluggable
  8. rettier ‣ Opinionated code formatter for JavaScript ‣ Enforces a

    consistent code style across your codebase ‣ You focus on writing code
  9. LOW ‣ Static type checker for JavaScript ‣ Benefits: ‣

    You can incorporate it incrementally ‣ It finds bugs you encounter in runtime ‣ Downsides: ‣ Time spent on learning and typing
  10. Testing ‣ Guarantee our users the library works as intended

    ‣ Reduce the number of future issues ‣ Facilitate external contributions
  11. Example app ‣ Key factor for developer engagement ‣ Users

    can copy paste snippets into their apps ‣ Improves quality assessment
  12. Advertise! ‣ Write a blog post in medium ‣ Tweet

    about it ‣ Use reddit ‣ Use Facebook groups
  13. Contribution guidelines ‣ Set it up from the beginning ‣

    Avoid medium size PRs without previous discussion ‣ Award contributors: https:/ /github.com/kentcdodds/all- contributors
  14. Maintenance ‣ Onboard more admins -> offload responsibility ‣ Engage

    active contributors to become admins ‣ Anticipate that fact before realising you don’t have time for maintenance
  15. Present and future ‣ https:/ /github.com/rauliyohmc/react-native-offline ‣ Adding more maintainers

    to the library ‣ OSS my RN app ‣ So that others can learn from a production ready app ‣ Example of react-native-offline usage