Planned - Nephio: Porch git interaction refactoring

Planned - Nephio: Porch git interaction refactoring

Short Description

60m: @Gergely Nagy , @Liam Fallon

Refactoring the git golang package in Porch to be more efficient

Topic Overview

The git package in Porch is at https://github.com/nephio-project/porch/tree/main/pkg/externalrepo/git . This package implements the Porch Repository, Package, and PackageRevision interfaces towards git. The package is complex and difficult to understand both from a code point of view and in the interaction sequences it has with git.

Any interaction with git is very expensive (100s of milliseconds), so it is critical to Porch to make this package as interactive as possible.

 

The following topics are suggested for this session:

  • Examination of the Repository, Package, and PackageRevision interfaces and possible simplification of those interfaces

  • Examination hf the engine.go state machine for package revisions and how it drives a package revision through its lifecycle

  • Examination of the git repo walk functionality in the git package

  • Examination of the implementation of the Repository and PackageRevision interfaces in the git package

  • Optimizations in using go.git.

  • Optimizations such as batching git changes so that multiple changes can be pushed at once

  • Parallel operations towards repositories (git repos/Porch repos, not the same thing)

Session Type



Interactive technical presentation and/or capability demo



Pre-Recorded technical presentation and/or capability demo



Live / hands-on technical training



Community process, governance or collaboration development


x

Real-time troubleshooting, bug-scrub or similar



Other (please describe)

Slides & Recording

YouTube

Following the event session recordings may be uploaded to our YouTube Channel at the full discretion of LFN staff.

Notes From Session (as appropriate)

Action Items (as appropriate)