dojo / meta

:rocket: Dojo - meta information for the project.
Other
227 stars 50 forks source link

Consolidate Core Dojo Packages Into a Single Monorepo #249

Closed nicknisi closed 5 years ago

nicknisi commented 6 years ago

The Dojo team is considering consolidating the core Dojo 2+ repos into a single monorepo for ease of development, maintenance, packaging, and versioning, while still deploying separate packages for the time being.

Background

Having separate repositories for each of the core aspects of Dojo presents a number of challenges.

Consolidating the core packages into a single repository will allow the team to streamline the development and release process while still maintaining consistent versioning and simplifying the development process.

What are the benefits of a core monorepo?

Core Dojo packages

The following packages are considered to be “core” dojo packages as they have a lot of interdependency and are crucial to the core Dojo development experience. They will be consolidated into a single, repository while maintaining the git history of each.

Other packages that are not considered “core” features in Dojo include loader, widgets, themes, test-extras, and interop. For now, we should consider leaving these as separate packages and repositories.

Why separate packages?

If we are considering consolidating the core Dojo repos, why are we still publishing separate packages to npm? The biggest benefit to this is that it allows us to continue on the 2.x release as the actual published artifacts should not be affected by the repository changes. Publishing a single “core” repository is up for discussion, but it would result in a major release. A single package release is also being considered and will be discussed in another issue.

Requirements

nicknisi commented 6 years ago

A proof of concept repo containing the consolidated core repos with full git history for each is at https://github.com/nicknisi/dojo.

nicknisi commented 6 years ago

Based on several factors, it seems that the best name for this repository is dojo/framework. This also leaves open the possibility of a future, single package called @dojo/framework.

KevinHua commented 6 years ago

@dojo/framework is a long name since it will be used frequently here and there. I prefer a short name such as @dojo/lib or @dojo/corelib

tomdye commented 6 years ago

If widgets will live outside of the mono-repo can widget-core not be renamed to widget?

agubler commented 5 years ago

The main framework repos have been consolidated into a single repo and single npm package.