Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Markings of a Healthy OSS Project

44 vues

Publié le

Slides from Open Source Summit Japan 2019

Publié dans : Logiciels
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Markings of a Healthy OSS Project

  1. 1. Markings of a Healthy OSS Project Clement Ho
  2. 2. Clement Ho Frontend Engineering Manager GitLab Austin, Texas USA @ClemMakesApps
  3. 3. Single application for the entire DevOps lifecycle
  4. 4. We are hiring jobs.gitlab.com
  5. 5. How do you determine whether a project is healthy?
  6. 6. There are 3 types of projects
  7. 7. Dead Surviving Thriving
  8. 8. Dead Project Little to no project activity* *There are multiple indicators to indicate project activity
  9. 9. Surviving Project Minimal project activity
  10. 10. Thriving Project Vibrant project activity
  11. 11. Thriving Project Have a vibrant future
  12. 12. In an ideal world, we want all OSS projects to have a future
  13. 13. But, dependencies are easy to add but difficult to remove
  14. 14. When was the last time you upgraded a dependency proactively?
  15. 15. Project dependencies are like committing to a long term relationship
  16. 16. Thriving projects should 1. be easy to contribute to 2. be scalable and maintainable 3. have a growing community 4. have a growing reputation 5. have a good leadership team
  17. 17. Thriving projects should be easy to contribute to
  18. 18. Is there a code of conduct? Is there a license? Easy to Contribute
  19. 19. 64% of users will decide whether to use your project 67% of users will decide whether to contribute to your project Based on your project license, Open source survey 2017 (https://opensourcesurvey.org/2017/)
  20. 20. Great resources • Standard code of conduct used by more than 200k projects • https://www.contributor-covenant.org/ • Learning more about licenses • https://tldrlegal.com
  21. 21. Are there any well defined first- time-only issues? Easy to Contribute
  22. 22. 45% of users find it difficult to get started when contributing to OSS DigitalOcean October 2018 currents report (https://www.digitalocean.com/currents/october-2018/)
  23. 23. Great resources • Guide that helps people get started in contributing • https://www.firsttimersonly.com/ • Another resource that people use to search for first time issue • https://up-for-grabs.net/
  24. 24. Is there documentation? Are there examples? Are the docs in multiple languages? Easy to Contribute
  25. 25. Documentation is highly valued, frequently overlooked, and a means for establishing inclusive and accessible communities. Open source survey 2017 (https://opensourcesurvey.org/2017/)
  26. 26. Are community PRs getting merged? Are they all bug fixes or a mixture of features? Easy to Contribute
  27. 27. All bug fixes => Surviving All new features => Perfect Bug fixes + New features => Realistic Goal
  28. 28. Code complete (https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670) The industry average is 15-20 errors per 1000 lines of code
  29. 29. Thriving projects should have a growing community
  30. 30. Are conversations about the project taking place in a public medium? Growing Community
  31. 31. Upgrading to Webpack 4
  32. 32. How many users use this project? Growing Community
  33. 33. Wider distribution of PR authors indicates a wider community
  34. 34. Most of this is from our CI
  35. 35. Thriving projects should have a growing reputation
  36. 36. Any companies or organizations advocating/ partnering with it? Growing Reputation
  37. 37. Understand the revenue streams for the project
  38. 38. Is there an increase in search trends? Tutorials, blog posts or social media conversations? Growing Reputation
  39. 39. https://trends.google.com/
  40. 40. Does it have a global following? Growing Reputation
  41. 41. Thriving projects should be scalable and maintainable
  42. 42. Is the code well tested? Scalable and Maintainable
  43. 43. Don’t let the bar be does it have tests. Check the tests and understand them
  44. 44. Is there a good ratio of maintainers vs contributors? Scalable and Maintainable
  45. 45. Don’t let maintainers be the bottleneck for contributors
  46. 46. At GitLab, we aim for a ratio of 1:4 maintainers to contributors
  47. 47. Is there a regular release cycle? Is it documented? Scalable and Maintainable
  48. 48. Bugs happen, security vulnerabilities happen, a clear release process helps everyone trust the project more
  49. 49. State of Open Source Security Report 2019 (https://res.cloudinary.com/snyk/image/upload/v1551172581/The-State-Of-Open-Source-Security-Report-2019-Snyk.pdf)
  50. 50. Thriving projects should have a good leadership team
  51. 51. Is there more than one maintainer in case something unforeseen happens? Leadership
  52. 52. It's a lot of pressure for one maintainer
  53. 53. What Core Contributors Want (https://medium.com/open-collective/what-core-contributors-want-4e7327ac9180)
  54. 54. If something happens to the maintainer, that would greatly negatively impact the project
  55. 55. Is the leadership aligned with the community? Leadership
  56. 56. Bottom Line: Project health and future is indicated by many data points
  57. 57. Case Study: Weex
  58. 58. Blog posts
  59. 59. Documentation in multiple languages
  60. 60. Clear release process
  61. 61. Has license Also had code of conduct (not in screenshot)
  62. 62. Contribution guide Instructions on joining mailing list
  63. 63. Active PR and issue activity
  64. 64. Inconsistent release schedule dates Odd version number increments
  65. 65. New committers are being added to project
  66. 66. 17 committers but majority from Asia, this could have better representation
  67. 67. Need more committers outside of Alibaba group Working towards growing the community
  68. 68. My evaluation: A-
  69. 69. Thank you