Differences between the 2.x and 3.0 specification/migration ๐Ÿ”— **Source:** [Differences between the 2.x and 3.0 specification/migration](https://www.youtube.com/watch?v=-_6C8EG0pTA) > [!note]+ Document Notes > tags: [spdx, software-bill-of-materials, migration] > author: Gary O'Neill > source: YouTube > reference: https://www.youtube.com/watch?v=-_6C8EG0pTA > date created: 2024-12-19 15:30 > > # ๐Ÿท๏ธ Title: Differences between the 2.x and 3.0 specification/migration > <!-- deep-read:sections start --> ## ๐Ÿงฐ Action Inbox - [H1] Review migration document for 2.3 to 3.0 specific recommendations โ€” Google Docs format #migration - [H2] Consider profile requirements when implementing SPDX 3.0 โ€” core and software profiles mandatory #profiles - [H3] Update tooling to handle relationships as independent elements โ€” structural change impact #tooling ## ๐Ÿงญ Table of Contents - [๐Ÿ“ Summary](#-summary) - [๐Ÿ“– Main Content](#-main-content) - [๐Ÿ—’๏ธ Notes](#๏ธ-notes) - [๐Ÿ“š References](#-references) - [๐Ÿ—ฃ๏ธ Paraphrase](#๏ธ-paraphrase) - [๐Ÿ“ฐ Newsletter](#-newsletter) - [โœ… Action Items](#-action-items) - [๐Ÿงช Hypotheses](#-hypotheses) - [๐Ÿ“Š Methodology](#-methodology) - [โ“ Questions](#-questions) - [๐Ÿ”ฎ Future Research](#-future-research) - [๐Ÿ’ก Implications](#-implications) - [๐Ÿง  Learning Styles Assessment](#-learning-styles-assessment) - [๐Ÿ“Š Accessibility Assessment](#-accessibility-assessment) - [๐ŸŒ DEIB Assessment](#-deib-assessment) - [โœ… Logical Validity](#-logical-validity) - [๐Ÿ›ก๏ธ DARVO Analysis](#-darvo-analysis) - [๐ŸŽฏ Conclusion](#-conclusion) ### ๐Ÿ”— References - [SPDX Migration Document](https://docs.google.com/document/d/1migration) - [SPDX 3.0 GitHub Repository](https://github.com/spdx) ## ๐Ÿ“ Summary - Gary O'Neill presents the structural and detailed changes from SPDX 2.3 to 3.0, focusing on migration impacts - Major structural changes include profiles for simplification, independent relationships for flexibility, and external reference restructuring - New use cases drive additional complexity while simplification efforts attempt to reduce overall burden - Migration requires significant tooling updates due to fundamental model changes - Key goal is supporting larger, more scalable implementations while maintaining backward compatibility concepts ## ๐Ÿ“– Main Content SPDX 3.0 represents a significant evolution from 2.3, driven by three primary motivations: supporting additional use cases (security, AI, build information), simplifying the specification through profiles, and improving flexibility for scalable implementations. The most impactful structural change involves moving relationships from element properties to independent elements. In SPDX 2.3, once an element is "minted" (delivered), it cannot be changed. This meant adding new relationships required creating entirely new elements with duplicate information. SPDX 3.0's independent relationships allow new connections between existing elements without modification. Profiles introduce both conformance requirements and organizational structure. Each profile defines minimum fields needed for specific use cases (security requires version information, licensing requires declared licenses). This addresses the primary user complaint that SPDX appears overly complex by allowing users to focus on relevant subsets. External document references are restructured into two classes: imports (providing verification information) and namespace maps (enabling shorthand references). This separation improves both readability and verifiability while maintaining existing functionality. ## ๐Ÿ—’๏ธ Notes #### โฑ๏ธ [00:00:00](https://www.youtube.com/watch?v=-_6C8EG0pTA?t=0) โ€” [H1] Introduction and Speaker Background - Key idea: Gary O'Neill represents the 2.3 user community perspective on 3.0 compatibility - Evidence: "I'm usually known as The Tool Guy... one role that I play in spdx 3.0 is represent the community that is using spdx 2.3" #### โฑ๏ธ [00:02:15](https://www.youtube.com/watch?v=-_6C8EG0pTA?t=135) โ€” [H2] Three Primary Drivers for Changes - Key idea: Additional use cases, simplification, and flexibility motivate SPDX 3.0 changes - Evidence: "Why are the changes... additional use cases... to simplify... flexibility" #### โฑ๏ธ [00:03:45](https://www.youtube.com/watch?v=-_6C8EG0pTA?t=225) โ€” [H3] Flexibility Example - Git Commit SBOMs - Key idea: Current document-level requirements prevent efficient incremental updates - Evidence: "I'm going to produce an s-bomb on every git commit... how can I do that if I have to reproduce every single element" #### โฑ๏ธ [00:05:20](https://www.youtube.com/watch?v=-_6C8EG0pTA?t=320) โ€” [H1] Profiles Structure and Purpose - Key idea: Profiles serve three functions: conformance requirements, namespaces, and organizational structure - Evidence: "Profiles is introduced really for Simplicity... conformance requirements... namespace... organization" #### โฑ๏ธ [00:07:10](https://www.youtube.com/watch?v=-_6C8EG0pTA?t=430) โ€” [H2] External Document References Restructuring - Key idea: Split functionality into imports (verification) and namespace maps (readability) - Evidence: "We separated out into two different classes the functionality that makes it more readable and the functionality that makes it verifiable" #### โฑ๏ธ [00:08:30](https://www.youtube.com/watch?v=-_6C8EG0pTA?t=510) โ€” [H1] Relationships as Independent Elements - Key idea: Moving relationships from properties to elements enables post-creation modifications - Evidence: "Once you create an element it's done... we moved the relationship out to be its own element" #### โฑ๏ธ [00:11:15](https://www.youtube.com/watch?v=-_6C8EG0pTA?t=675) โ€” [H3] Entity Restructuring - Key idea: String-based person/tool fields become structured entities with naming authorities - Evidence: "We have a string field for person tool... we're making it much more structured in 3.0" #### โฑ๏ธ [00:12:45](https://www.youtube.com/watch?v=-_6C8EG0pTA?t=765) โ€” [H2] File Type Changes - Key idea: File type enumeration replaced by media type and software purpose fields - Evidence: "File type enumerations has been replaced by two Fields... media type... software purpose" #### โฑ๏ธ [00:14:20](https://www.youtube.com/watch?v=-_6C8EG0pTA?t=860) โ€” [H2] Package URL Elevation - Key idea: Package URLs promoted from external identifiers to top-level properties - Evidence: "Package URLs... now a top level property so we've elevated it up" #### โฑ๏ธ [00:15:40](https://www.youtube.com/watch?v=-_6C8EG0pTA?t=940) โ€” [H3] Removed Properties - Files Analyzed - Key idea: Most hated property in SPDX 2.3 removed, functionality replaced by profiles - Evidence: "Files analyzed... this is the most hated property in spdx and everybody is happy to get rid of it" #### โฑ๏ธ [00:17:25](https://www.youtube.com/watch?v=-_6C8EG0pTA?t=1045) โ€” [H2] Property Renaming Examples - Key idea: Several properties renamed for clarity and consistency - Evidence: "External document ref that was really confusing... we've changed package file name and file name just a name" #### โฑ๏ธ [00:19:10](https://www.youtube.com/watch?v=-_6C8EG0pTA?t=1150) โ€” [H2] JSON Array Pluralization Simplified - Key idea: JSON arrays will use singular naming for consistency - Evidence: "All of the arrays are pluralized... that's gone we're just going to use singular" #### โฑ๏ธ [00:20:30](https://www.youtube.com/watch?v=-_6C8EG0pTA?t=1230) โ€” [H3] New Classes for Use Cases - Key idea: Extensive new classes added for AI, security, and build profiles - Evidence: "Whole bunch of classes and properties added... to support some of the new use cases and profiles" #### โฑ๏ธ [00:21:50](https://www.youtube.com/watch?v=-_6C8EG0pTA?t=1310) โ€” [H1] Migration Document Reference - Key idea: Living document tracks all migration changes with specific recommendations - Evidence: "There's a document that's kind of a living document that we're recording all of the migrations with very specific recommendations" ## ๐Ÿ“š References - [SPDX 3.0 GitHub Repository](https://github.com/spdx) - [OpenChain Automation Working Group](https://www.openchainproject.org/) - [SPDX Migration Document](https://docs.google.com/document/d/migration) ## ๐Ÿ—ฃ๏ธ Paraphrase - SPDX 3.0 restructures the specification to support more use cases while attempting to simplify through profiles that let users focus on relevant functionality - The most significant change moves relationships from being properties of elements to independent elements, enabling post-creation relationship additions without duplicating data - New structural components like profiles, restructured external references, and elevated package URLs aim to improve scalability and flexibility for larger implementations ## ๐Ÿ“ฐ Newsletter **SPDX 3.0 Migration: What WordPress Developers Need to Know** The SPDX community is preparing a major update that will impact how we handle software bills of materials. SPDX 3.0 introduces "profiles" that let you focus on specific use cases - perfect for WordPress developers who primarily need licensing information without security complexity. Key benefits for WordPress projects: - **Simplified licensing profile** focuses on just the fields you need - **Flexible relationships** allow updating dependency information without recreating entire SBOMs - **Better tooling support** with libraries for multiple languages The migration will require tooling updates, but the community is providing comprehensive migration guides and maintaining compatibility concepts from 2.3. **Resources:** [SPDX GitHub](https://github.com/spdx), [OpenChain Automation](https://www.openchainproject.org/), [WordPress Security](https://wordpress.org/about/security/) ## โœ… Action Items #### OSPO - License Compliance: Review SPDX 3.0 profile requirements for internal tooling compatibility - Software Inventory: Plan migration timeline for existing SBOM generation processes - Developer Support: Prepare training materials on relationship model changes - Policy & Governance: Update SBOM policies to reflect new profile-based requirements #### Community - Maintainers: Evaluate impact of relationship changes on existing SBOM workflows - Contributors: Consider contributing to JavaScript/TypeScript SPDX library development - Sponsors: Budget for tooling migration costs and training initiatives #### WordPress - Core: Assess SPDX 3.0 adoption timeline for WordPress.org infrastructure - Plugins: Prepare guidance for plugin authors on SBOM profile selection - Hosting: Coordinate with hosting partners on SPDX 3.0 migration plans - Security: Leverage new security profile capabilities for vulnerability tracking - Documentation: Create WordPress-specific SPDX 3.0 migration guides ## ๐Ÿงช Hypotheses - Profile-based organization will reduce perceived complexity for new SPDX users - Independent relationship elements will enable more scalable SBOM implementations - Structural changes will require significant tooling investment but improve long-term maintainability - Human-readable formats will become less important as UI tooling improves ### ๐Ÿ“Š Methodology - Survey existing SPDX 2.3 users on migration concerns and timeline preferences - Analyze tooling ecosystem readiness across different programming languages - Measure complexity reduction through user testing of profile-based workflows ### โ“ Questions - How will the relationship-to-relationship capability affect graph database performance? - What percentage of existing SPDX 2.3 implementations will require significant refactoring? - Will profile-based simplification offset the complexity of new use case support? ### ๐Ÿ”ฎ Future Research - Develop automated migration tools for common SPDX 2.3 to 3.0 transitions - Study scalability improvements in large enterprise SBOM implementations - Investigate AI-powered SBOM analysis tools leveraging new structured metadata ### ๐Ÿ’ก Implications - Practice: Migration requires significant planning and tooling investment for current users - Policy: Organizations need updated SBOM policies reflecting profile-based requirements - Security: Enhanced metadata structure enables more sophisticated vulnerability correlation - Education: Training materials must emphasize conceptual model changes, not just syntax - Funding: Development resources needed for library updates and migration tooling ### ๐Ÿง  Learning Styles Assessment Reading level estimate: Grade 14 (College level due to technical specification content) #### ๐Ÿ‘€ Visual learners - Present: Slide presentation with structural diagrams - Improve: Entity relationship diagrams showing 2.3 vs 3.0 model differences #### ๐Ÿ”Š Aural learners - Present: Live presentation with Q&A interaction - Improve: Recorded podcast-style migration guide #### ๐Ÿ—ฃ๏ธ Verbal learners - Present: Technical terminology with contextual explanations - Improve: Glossary of renamed properties with before/after comparisons #### ๐Ÿงฉ Kinesthetic learners - Present: Migration document with step-by-step recommendations - Improve: Hands-on workshop materials with example transformations #### ๐Ÿง  Logical learners - Present: Systematic enumeration of changes by category - Improve: Decision tree for profile selection and migration prioritization #### ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Social learners - Present: Community meeting format with collaborative Q&A - Improve: Working group participation opportunities for migration planning #### ๐Ÿง˜โ€โ™€๏ธ Solitary learners - Present: Comprehensive reference documentation - Improve: Self-assessment checklist for migration readiness #### ๐ŸŒฟ Naturalistic learners - Present: Evolution metaphor for specification development - Improve: Ecosystem impact analysis of migration across tool chains ### ๐Ÿ“Š Accessibility Assessment #### Screen reader semantics - Present: Structured heading hierarchy and clear section organization - Improve: Alternative text for any visual diagrams or slides #### Keyboard navigation - Present: Standard presentation navigation controls - Improve: Ensure any supplementary materials support keyboard-only access #### Contrast and readability - Present: Standard presentation contrast levels - Improve: High contrast versions of technical diagrams #### Text resizing and reflow - Present: Scalable presentation format - Improve: Ensure migration documentation supports text scaling #### Media and captions - Present: Video with audio content - Improve: Accurate captions and transcript with technical terminology #### Forms and interactions - Present: Q&A interaction format - Improve: Accessible forms for migration planning and feedback ### ๐ŸŒ DEIB Assessment #### Cultural breadth - Present: Global community participation acknowledged - Improve: Time zone considerations for international collaboration #### Inclusive language - Present: Technical focus with minimal jargon explanation - Improve: Plain language summaries for each major concept #### Neurodiversity support - Present: Structured presentation with clear section breaks - Improve: Executive summary and detailed technical sections separation #### Representation - Present: Community-focused approach with multiple perspectives - Improve: Diverse case studies from different organization types #### Psychological safety - Present: Open Q&A format encouraging questions - Improve: Anonymous feedback mechanisms for migration concerns ### โœ… Logical Validity #### Strong reasoning - Deductive strength: Clear enumeration of changes with specific examples throughout presentation - Inductive strength: Migration complexity assessment based on past community feedback patterns - Causal reasoning: Use case requirements driving structural changes well-explained - Analogical strength: "Minting" metaphor effectively explains element immutability concept #### Fallacies - Appeal to authority: Minimal - primarily relies on technical requirements rather than authority - False dilemma: None identified - acknowledges tradeoffs and ongoing debates #### Tone of voice - Overall tone: Technical and practical, with community-focused perspective on compatibility concerns ### ๐Ÿ›ก๏ธ DARVO Analysis - Deny: No defensive patterns identified - Attack: No attacks on critics or concerns - Reverse victim/offender: Not applicable to technical presentation - Emotional cues and rhetoric: Straightforward technical presentation without manipulation ## ๐ŸŽฏ Conclusion <!-- deep-read:sections end -->