Skip to content

Github Project (Re)Organization

Ephrim Stanley edited this page Oct 5, 2022 · 1 revision

Overview

This doc is a proposal for re-organizing the various Legend Github projects.

Motivation

The Legend Github projects are growing rapidly in terms of new features and modules. This growth now poses a few challenges for the Legend developer community.

  • Cognitive load - Some projects like legend-engine house code for both the core functionality, but also code for various "extensions". Clean separation between "core" and "extensions" will make it easy for contributors to add new code to the platform.
  • Build/Release - Some projects like legend-engine are big enough that a build takes about 2 hours to complete. In addition, the number of artifacts being published from this project is causing issues with deploying to Maven central etc. Smaller projects will provide alleviate some of these issues.
  • Ownership - We want to Legend to integrate with other OSS projects, vendors, platforms etc. However, not all of these integrations can be supported by the "core Legend team". In the long run we want a set of core APIs/interfaces/extension points supported by the "core Legend team", with implementations of various extensions supported by the authors of these extensions. We need a project structure that clarifies the ownership model.

Proposed (Re)organization

We propose that the Github projects be organized as follows.

Core Projects

'Core' projects are housed under a dedicated Github organization.

  • Current : All projects are under the github.com/finos organization.
  • Proposed : Core projects move to a new organization github.com/finos/legend

Extension Projects

Projects that integrate with Legend and/or provide other capabilities (like installers, connectors etc) are housed under a dedicated Github organization.

  • Current : All projects are under the github.com/finos organization.
  • Proposed : Core projects move to a new organization github.com/finos/legend-community

Affected Projects

  • legend, legend-engine, legend-sdlc, legend-studio, legend-shared, legend-depot move from the finos org to the finos/legend org
  • legend-community-databricks, and legend-juju (and friends) move from the finos org to the finos/legend-community org