From 56bef77014e517cf4824498a16e9c49f8b9692f7 Mon Sep 17 00:00:00 2001 From: Varsha U N Date: Mon, 29 Sep 2025 19:12:19 +0530 Subject: [PATCH] add the final report of gsoc Signed-off-by: Varsha U N --- .../scancodeio_varsha/project_flow.png | Bin 0 -> 91458 bytes docs/source/archive/gsoc-toc.rst | 1 + .../gsoc/reports/2025/scancodeio_varsha.rst | 140 ++++++++++++++++++ 3 files changed, 141 insertions(+) create mode 100644 docs/source/_static/gsoc2025/scancodeio_varsha/project_flow.png create mode 100644 docs/source/archive/gsoc/reports/2025/scancodeio_varsha.rst diff --git a/docs/source/_static/gsoc2025/scancodeio_varsha/project_flow.png b/docs/source/_static/gsoc2025/scancodeio_varsha/project_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..b9fda8b7c679beebb9f3c18d2093e8392778bbf4 GIT binary patch literal 91458 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 + +**Project:** `ScanCode.io `__ + +| **Contributor:** Varsha U N +| **GitHub:** `VarshaUN `__ +| **LinkedIn:** `Varsha U N `__ + +**Mentors:** +- `Philippe Ombredanne `__ +- `Ayan Sinha Mahapatra `__ + +Overview +-------- + +ScanCode.io currently stores scanned packages on disk without a centralized index, +leading to duplicate storage, project-specific data, and potential data loss when +inputs are deleted. This project enhances ScanCode.io by introducing structured +package storage and querying, enabling indexing, reuse across projects, and +reliable preservation. + +Implementation +-------------- + +.. figure:: /_static/gsoc2025/scancodeio_varsha/project_flow.png + :alt: Project Flow Diagram + :align: center + :width: 70% + +This project addresses the limitations of ScanCode.io's unstructured package +storage by adding a system to index, reuse, and preserve packages reliably. + +Storage System Development: + +- Created a `DownloadStore` abstract base class in `archiving.py` to + define the interface for managing package content and metadata + storage. + +- Built the `LocalFilesystemProvider` class to store downloads on the + local filesystem, using a SHA256-based nested directory structure. + +- Implemented methods for storing (`put`), retrieving (`get`), listing + (`list`), and searching (`find`) downloads, with metadata saved in + `origin-.json` files. + +Integration with ScanCode.io: + +- Updated `pipelines/init.py` to incorporate the archiving system into + ScanCode.io’s pipeline workflow, ensuring downloaded packages are + stored during execution. + +- Revised `input.py` to process package download inputs, passing + content, `download_url`, `download_date`, and `filename` to the + archiving system. + +User Interface Enhancements: + +- Modified the project resource view to display stored package + information, including download URLs and dates. + +Validation and Testing: + +- Wrote unit tests in `test_archiving.py` to verify + `LocalFilesystemProvider` functionality (`put`, `get`, `list`, + `find`), testing normal cases, edge cases (e.g., empty files), and + errors (e.g., duplicate origins). + +Linked Pull Requests +-------------------- + +.. list-table:: + :widths: 10 40 20 + :header-rows: 1 + + * - Sr. No + - Name + - Link + * - 1 + - Add download archiving system + - `scancode.io#1815 `__ + * - 2 + - Support local package storage + - `scancode.io#1685 `__ + +Related Issues +-------------- + +.. list-table:: + :widths: 10 40 20 + :header-rows: 1 + + * - Sr. No + - Name + - Link + * - 1 + - Store and retrieve scanned packages + - `#1063 `__ + * - 2 + - Support local package storage + - `#1683 `__ + +Pre-GSoC Work +------------- + +Here are some PRs submitted before GSoC: + +- `Add bluefin-container image support `__ +- `Tag whitedout files `__ +- `Support python-private-classifier `__ +- `Parse labels in Dockerfile `__ +- `Add OCI labels to Dockerfile `__ +- `Extract LibreOffice documents `__ + +Links +----- + +- **Project Idea:** `GSoC 2025 Idea `__ +- **GSoC Project Page:** `GSoC 2025 `__ +- **Proposal:** `Project Proposal `__ + +Future Work +----------- + +Future enhancements include implementing the web UI for the `LocalFilesystemProvider` +to enable package uploads, searches, listings, and retrievals in ScanCode.io, with +Django views, templates, and URL routes, backed by comprehensive testing. Additionally, +integrating an external cloud storage option (e.g., AWS S3) alongside the local +filesystem will extend the `DownloadStore` interface, providing scalable and remote +storage capabilities. + +Closing Note +------------ + +During GSoC 2025, my mentors and I held weekly meetings to discuss progress, +challenges, and next steps. I am deeply grateful to my mentors for their guidance +and support, which greatly enriched my learning experience.