<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Suman Mandal</title>
    <description>The latest articles on Forem by Suman Mandal (@jijo-007).</description>
    <link>https://forem.com/jijo-007</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3293123%2F74ece689-d664-40f1-b78f-5cb1b1e0875f.jpg</url>
      <title>Forem: Suman Mandal</title>
      <link>https://forem.com/jijo-007</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/jijo-007"/>
    <language>en</language>
    <item>
      <title>Bridging the Gap: Converting SPDX 3.0 to 2.3 in the Software Supply Chain</title>
      <dc:creator>Suman Mandal</dc:creator>
      <pubDate>Thu, 16 Apr 2026 07:43:48 +0000</pubDate>
      <link>https://forem.com/jijo-007/bridging-the-gap-converting-spdx-30-to-23-in-the-software-supply-chain-3omc</link>
      <guid>https://forem.com/jijo-007/bridging-the-gap-converting-spdx-30-to-23-in-the-software-supply-chain-3omc</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction: What is SPDX?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At the root of modern software supply chain security lies SPDX—short for Software Package Data Exchange.&lt;/p&gt;

&lt;p&gt;At its core, SPDX is a standardized format for describing what’s inside a piece of software.&lt;/p&gt;

&lt;p&gt;Think of it as an ingredients label for software.&lt;/p&gt;

&lt;p&gt;An SPDX document helps answer critical questions such as:&lt;br&gt;
What packages are included?&lt;br&gt;
What files exist?&lt;br&gt;
What licenses apply?&lt;br&gt;
Who created the software?&lt;br&gt;
How do different components relate to each other?&lt;br&gt;
Why SPDX Matters&lt;/p&gt;

&lt;p&gt;In real-world scenarios, when you install something like:&lt;/p&gt;

&lt;p&gt;a Docker image&lt;br&gt;
an npm package&lt;br&gt;
a Linux distribution&lt;/p&gt;

&lt;p&gt;…you are pulling in hundreds (sometimes thousands) of dependencies.&lt;/p&gt;

&lt;p&gt;SPDX provides a structured way to declare:&lt;/p&gt;

&lt;p&gt;“Here’s everything inside this software—legally and technically.”&lt;/p&gt;

&lt;p&gt;This is essential for:&lt;/p&gt;

&lt;p&gt;SBOMs (Software Bill of Materials)&lt;br&gt;
Supply chain security&lt;br&gt;
License compliance&lt;br&gt;
CI/CD automation pipelines&lt;/p&gt;

&lt;p&gt;Major organizations like Google, Microsoft, and Red Hat rely on SPDX or compatible standards internally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s Inside an SPDX Document?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An SPDX document typically consists of:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Packages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Includes metadata such as name, version, and supplier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Files&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Individual files along with their associated licenses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Relationships&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Defines how components interact, for example:&lt;/p&gt;

&lt;p&gt;“A depends on B”&lt;br&gt;
“A contains B”&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Licenses&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Standard identifiers like MIT, Apache-2.0, GPL, etc.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SPDX Versions: Why This Project Exists&lt;br&gt;
SPDX 2.3 (Target)&lt;br&gt;
Document-based structure&lt;br&gt;
Organized into sections (packages, files, relationships)&lt;br&gt;
Simpler and widely adopted&lt;br&gt;
SPDX 3.0 (Source)&lt;br&gt;
Graph-based model&lt;br&gt;
Modular design (profiles like software, security, AI, etc.)&lt;br&gt;
Far more expressive and flexible&lt;/p&gt;

&lt;p&gt;This shift from a document model → graph model is powerful—but it introduces a major challenge:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Backward compatibility&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Core Problem: Not Transformation, But Controlled Loss&lt;/p&gt;

&lt;p&gt;I’ve been working on contributing to SPDX tooling this summer, specifically focusing on:&lt;/p&gt;

&lt;p&gt;SPDX 3.0 → SPDX 2.3 backward conversion&lt;/p&gt;

&lt;p&gt;At first glance, this might sound like a simple transformation—but it’s not.&lt;/p&gt;

&lt;p&gt;Because:&lt;/p&gt;

&lt;p&gt;SPDX 3.0 is graph-based&lt;br&gt;
SPDX 2.3 is document-based&lt;/p&gt;

&lt;p&gt;Not all information in 3.0 can be represented in 2.3.&lt;/p&gt;

&lt;p&gt;So the goal is not a perfect transformation.&lt;/p&gt;

&lt;p&gt;Instead, the real objective is:&lt;/p&gt;

&lt;p&gt;Controlled loss of information&lt;/p&gt;

&lt;p&gt;This means:&lt;/p&gt;

&lt;p&gt;Preserving what can be represented in 2.3&lt;br&gt;
Gracefully handling what cannot&lt;br&gt;
Ensuring no critical data is silently lost&lt;br&gt;
Why This Matters for End Users&lt;/p&gt;

&lt;p&gt;While SPDX 3.0 is the future, many existing systems still rely on SPDX 2.3.&lt;/p&gt;

&lt;p&gt;A backward conversion enables:&lt;/p&gt;

&lt;p&gt;Compatibility with legacy tooling&lt;br&gt;
Gradual migration to SPDX 3.0&lt;br&gt;
Continued support for existing compliance systems&lt;/p&gt;

&lt;p&gt;In simple terms:&lt;/p&gt;

&lt;p&gt;It allows ecosystems to adopt SPDX 3.0 without breaking what already works.&lt;/p&gt;

&lt;p&gt;Where tools-golang Fits In&lt;/p&gt;

&lt;p&gt;The tools-golang project provides Go-based utilities for working with SPDX documents.&lt;/p&gt;

&lt;p&gt;It is commonly used to:&lt;/p&gt;

&lt;p&gt;Parse SPDX files&lt;br&gt;
Generate SPDX outputs&lt;br&gt;
Validate document structure&lt;/p&gt;

&lt;p&gt;However:&lt;/p&gt;

&lt;p&gt;It primarily supports SPDX 2.x&lt;br&gt;
It does not fully support SPDX 3.0 yet&lt;/p&gt;

&lt;p&gt;This makes it a natural fit for:&lt;/p&gt;

&lt;p&gt;Generating valid SPDX 2.3 output after conversion&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The evolution from SPDX 2.3 → 3.0 represents a major leap in how we model software systems—from static documents to rich, interconnected graphs.&lt;/p&gt;

&lt;p&gt;But with that progress comes a practical challenge: ensuring backward compatibility.&lt;/p&gt;

&lt;p&gt;The work on SPDX 3.0 → 2.3 conversion sits right at this intersection.&lt;/p&gt;

&lt;p&gt;It’s not about perfect translation—it’s about:&lt;/p&gt;

&lt;p&gt;Making thoughtful trade-offs&lt;br&gt;
Preserving essential information&lt;br&gt;
Enabling real-world adoption&lt;/p&gt;

&lt;p&gt;As the software supply chain ecosystem continues to evolve, solutions like this will play a key role in bridging the gap between where we are and where we’re going.&lt;/p&gt;

</description>
      <category>security</category>
      <category>supplychain</category>
    </item>
    <item>
      <title>Hello DEV Community — Learning Go, Open to Collaborations!</title>
      <dc:creator>Suman Mandal</dc:creator>
      <pubDate>Wed, 25 Jun 2025 09:16:15 +0000</pubDate>
      <link>https://forem.com/jijo-007/hello-dev-community-learning-go-open-to-collaborations-3pg8</link>
      <guid>https://forem.com/jijo-007/hello-dev-community-learning-go-open-to-collaborations-3pg8</guid>
      <description>&lt;p&gt;Hey everyone! &lt;/p&gt;

&lt;p&gt;I’m Suman Mandal , a software developer currently diving deep into the world of Golang (Go) and aiming to explore the cloud-native ecosystem.&lt;/p&gt;

&lt;p&gt;I recently joined DEV.to to connect with like-minded developers, learn from the community, and hopefully give back by sharing my experiences as I grow.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I’m Up To
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Learning the Go programming language from scratch&lt;/li&gt;
&lt;li&gt;Exploring containerization tools like Docker&lt;/li&gt;
&lt;li&gt;Planning to contribute to CNCF open source projects in the near future&lt;/li&gt;
&lt;li&gt;Aiming for Google Summer of Code 2026 (GSoC)!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Looking For
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Developer friends and mentors who are into Go, DevOps, or open source&lt;/li&gt;
&lt;li&gt;Any learning resources, tips, or project ideas  from the community&lt;/li&gt;
&lt;li&gt;Collaborations on small Go-based tools or CLI apps — just DM me or comment below!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s connect, build, and grow together &lt;br&gt;
You can also find me on GitHub: &lt;a href="https://github.com/jijo-OO7" rel="noopener noreferrer"&gt;@jijo-OO7&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading and happy coding! &lt;br&gt;
Drop your favorite Go resources, repos, or tips below — I’d love to check them out!&lt;/p&gt;

</description>
      <category>go</category>
      <category>gofer</category>
      <category>opensource</category>
      <category>github</category>
    </item>
  </channel>
</rss>
