Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Introduction to Open-source

Introduction to Open-source

A basic introduction to open-source, my experience, challenges, and tips

Avatar for Antony Budianto

Antony Budianto

October 19, 2019
Tweet

More Decks by Antony Budianto

Other Decks in Technology

Transcript

  1. Antony Budianto • ❤ Web technology • Active doing open-source

    on GitHub • Creating tech videos on YouTube • Writing tech articles on Medium • Read manga, learn new stuffs Sr. Software Engineer - Web Platform Tokopedia
  2. People A typical open source project has the following types

    of people: • Author • Owner • Maintainers • Contributors • Community Members
  3. Repository • LICENSE: By definition, every open source project must

    have an open source license. If the project does not have a license, it is not open source. • README • CONTRIBUTING • CODE_OF_CONDUCT • Other documentation Source: https://opensource.guide
  4. License The MIT License is short and to the point.

    It lets people do almost anything they want with your project, like making and distributing closed source versions. The GNU GPLv3 also lets people do almost anything they want with your project, except distributing closed source versions. https://choosealicense.com/licenses/
  5. Create JS Library 101 • mkdir my-lib • cd ./my-lib

    • npm init -y • touch index.js • npm link • npm link my-lib • npm publish • ❇ ✅ Done! module.exports = { hello: () => 'world' }
  6. Create JS Library 101 • Learn Semantic versioning (example: v1.2.3)

    • Learn dependencies, devDependencies, peerDependencies ◦ dependencies ▪ The ones your library depends directly ◦ devDependencies ▪ Only installed by library developer, not on host ▪ Usually dev/chore/testing stuffs like jest, webpack, etc. ◦ peerDependencies ▪ Not installed by library developer, installed on host ▪ Usually core framework like react, react-dom, etc. • Please don’t include polyfills in your library bundle!
  7. OSS Challenges • Bug reports • New feature requests ◦

    “Please add SSR support!”, “It’ll be great if this lib has React Hooks” • 3rd party support requests ◦ “Does it work with React Router or Reach Router?” • Debugging requests (outside your library usage) • Dev got disappointed for your response
  8. OSS Benefits • Learn from so many devs, from their

    reviews/issues/solutions • Train your patience and communication • Got many PR (even with unit test!) • Appreciations • Job offers ⭐ • Patreon ❤ • Making impact on the whole community
  9. OSS Tips • Start solving your own problems! • Make

    things simpler or even zero at all • Always be nice to people • Learn from other repositories • Help outside GitHub/any OSS hub • Promote your work on relevant GitHub issues • Join Hacktoberfest! • Not only code ◦ Documentation, Translation, Help on issue/PR review