$30 off During Our Annual Pro Sale. View Details »

How to Be a Responsible Open Source Citizen

ivargrimstad
November 10, 2023

How to Be a Responsible Open Source Citizen

Have you ever worked on a project that didn't use any open source tools, libraries, or products? Using open source has been such an integral part of our daily work life that we don't even think about it. We just expect it to be available, secure, stable, and bug-free. But how many of you are actually contributing back to an open source project? In this session, I will go through some aspects of being a responsible open source citizen. There may even be a couple of pointers on how to make a career in open source.

ivargrimstad

November 10, 2023
Tweet

More Decks by ivargrimstad

Other Decks in Programming

Transcript

  1. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    How to Be a Responsible
    Open Source Citizen
    Ivar Grimstad

    Jakarta EE Developer Advocate
    Eclipse Foundation

    View Slide

  2. @ivar_grimstad
    https://github.com/ivargrimstad
    https://www.linkedin.com/in/ivargrimstad
    @[email protected]
    ivargrimstad_of
    fi
    cial

    View Slide

  3. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Introduction
    Consume Responsibly
    Contribute Responsibly
    Summary

    View Slide

  4. View Slide

  5. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

    View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. Jakarta EE 10 Platform
    Updated
    Not Updated
    New
    Authorization 2.1
    Activation 2.1
    Batch 2.1
    Connectors 2.1
    Mail 2.1
    Messaging 3.1
    Enterprise Beans 4.0
    RESTful Web Services 3.1
    JSON Processing 2.1
    JSON Binding 3.0
    Annotations 2.1
    CDI Lite 4.0
    Interceptors 2.1
    Dependency Injection 2.0
    Servlet 6.0
    Server Pages 3.1
    Expression Language 5.0
    Debugging Support 2.0
    Standard Tag Libraries 3.0
    Faces 4.0
    WebSocket 2.1
    Enterprise Beans Lite 4.0
    Persistence 3.1
    Transactions 2.0
    Managed Beans 2.0
    CDI 4.0
    Authentication 3.0
    Concurrency 3.0
    Security 3.0
    Bean Validation 3.0

    View Slide

  10. RESTful Web Services 4.0
    JSON Processing 2.1
    JSON Binding 3.0
    Annotations 3.0
    CDI Lite 4.1
    Interceptors 2.2
    Dependency Injection 2.0
    Servlet 6.1
    Pages 4.0
    Expression Language 6.0
    Debugging Support 2.0
    Standard Tag Libraries 3.0
    Faces 5.0
    WebSocket 2.2
    Enterprise Beans Lite 4.0
    Persistence 3.2
    Transactions 2.0
    CDI 4.1
    Authentication 3.1
    Concurrency 3.1
    Security 4.0
    Validation 3.1
    Data 1.0
    Authorization 3.0
    Activation 2.1
    Batch 2.1
    Connectors 2.1
    Mail 2.1
    Messaging 3.1
    Enterprise Beans 4.0
    Jakarta EE 11 Platform
    Jakarta EE 11 Web Pro
    fi
    Updated
    Not Updated
    New

    View Slide

  11. View Slide

  12. View Slide

  13. #JakartaEE COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad
    Open Source

    View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Open Source Principles

    View Slide

  18. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Transparency
    Collaboration
    Release Early
    and Often
    Inclusive
    Meritocracy
    Community

    View Slide

  19. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Open Source Licenses

    View Slide

  20. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Open Source Initiative
    https://opensource.org/licenses

    View Slide

  21. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Open Source
    vs
    Source Available

    View Slide

  22. #JakartaEE COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad
    Consume Responsibly

    View Slide

  23. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Open Source Projects

    View Slide

  24. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Solo Single Vendor Community Foundation

    View Slide

  25. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Solo
    Description
    One or two programmers control
    code, decisions, support
    Contributing
    Either extremely easy or extremely
    hard
    Support Usually very responsive or abandoned
    Examples
    Byte Buddy
    SnoopEE

    View Slide

  26. Solo

    View Slide

  27. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Single Vendor
    Description
    Open sourced by a company,
    employees as contributors
    Contributing Usually dif
    fi
    cult
    Support
    Reliable support obtained through
    support contracts with sponsoring
    company
    Examples
    Quarkus
    Spring Framework
    Gradle

    View Slide

  28. Single Vendor

    View Slide

  29. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Community
    Description
    Signi
    fi
    cant number of contributors,
    usually democratic
    Contributing
    Generally welcoming, no formal
    process
    Support
    Participation in the social process
    required
    Examples
    PostgreSQL
    OpenJDK
    mockito

    View Slide

  30. Community

    View Slide

  31. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Foundation
    Description
    Formal organisation open source
    projects. Often projects critical to
    several large companies.
    Contributing Formal process, meritocracy
    Support
    Sponsoring companies providing paid
    support
    Unpaid support similar as
    communities
    Examples
    Eclipse Jetty
    Apache Maven
    Kubernetes

    View Slide

  32. View Slide

  33. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Security

    View Slide

  34. View Slide

  35. https://slsa.dev/

    View Slide

  36. View Slide

  37. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Evolving Expectations

    View Slide

  38. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Is this license compatible with your project license?
    Will you assign a CVE?
    How do you handle vulnerabilities?
    Does the open source project follow an OpenChain conformant process?
    Is the project REUSE compliant?
    Where is your Software Bill of Materials?
    Does the license allow me to do X?

    View Slide

  39. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Regulations

    View Slide

  40. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    European Cyber Resiliency Act
    (CRA)

    View Slide

  41. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Product Liability Directive
    (PLD)

    View Slide

  42. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Blog posts about PLD and
    CRA by Mike Milinkowich

    View Slide

  43. View Slide

  44. View Slide

  45. #JakartaEE COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad
    Contribute Responsibly

    View Slide

  46. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    First Rule of Contributing
    to Open Source

    View Slide

  47. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Contribute!

    View Slide

  48. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    How to Get Started?

    View Slide

  49. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Convince my Boss?

    View Slide

  50. View Slide

  51. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Improve the Software
    YOU Rely On

    View Slide

  52. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Why Contribute?

    View Slide

  53. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Improve YOUR Skills

    View Slide

  54. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Build Your Reputation
    and Career

    View Slide

  55. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Where to Contribute?

    View Slide

  56. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Does Not Need to be
    CODE

    View Slide

  57. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Follow Your Passion

    View Slide

  58. View Slide

  59. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    My Journey

    View Slide

  60. https://www.scala-lang.org/docu/
    fi
    les/ScalaTutorial-no_NO.pdf

    View Slide

  61. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Solo Single Vendor Community Foundation
    Apache NetBeans

    View Slide

  62. View Slide

  63. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    How to Contribute?

    View Slide

  64. View Slide

  65. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Show Your SUPPORT

    View Slide

  66. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Contribute Responsibly

    View Slide

  67. View Slide

  68. View Slide

  69. #JakartaEE COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad
    Summary

    View Slide

  70. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    Solo Single Vendor Community Foundation

    View Slide

  71. COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
    First Rule of Contributing
    to Open Source
    Remember

    View Slide

  72. Eclipse Foundation

    https://eclipse.org
    Jakarta EE
    https://jakarta.ee
    Get Involved
    https://jakarta.ee/community/get-involved/
    Blog
    https://www.agilejava.eu

    View Slide

  73. #JakartaEE COPYRIGHT (C) 2023, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad
    Thank You!

    View Slide