In which I articulate a path forward for migrating uPortal GitHub repositories out of the legacy "Jasig" organization and into new organizations.

Problem to be solved

Currently, uPortal and some related Git repositories are in the Jasig GitHub organization.

Proposed path forward

Birth two new GitHub organizations.

uPortal-Project would model repositories that are really part of the uPortal project. The core, if you will. The things that uPortal as a project is committed to steering, evolving, maintaining, or at least thoughtfully deprecating and retiring when the time comes.

uPortal-contrib would model repositories that are more fringe. They're not "really" part of the uPortal project. There's less commitment to steer, evolve, maintain these.

uPortal-contrib also would offer a path for new projects to come in and if desired and appropriate eventually promote into uPortal-Project proper.

Re-implement uPortal Committers GitHub Team in the new organizations, and other Committers teams as appropriate.

Once the organization namespace is specific to uPortal, consider opportunities to birth new or refactor into more repositories to better organize the code, better factor dependencies and APIs and touch points between modules. Use the GitHub organizations to model and grow the ecosystem of software modules associated with uPortal.

Migration for existing repositories

Move the uPortal-related Jasig repositories over into the new organization.

Here's an illustrative stab at what would land where. (This is not dispositive - you might take issue with some of these judgment calls, and should. Those tradeoffs will have to work out in the course of executing the migration.)

to uPortal-Project

Maybe these existing Jasig repositories would come into uPortal-Project.

uPortal itself:

Supporting services:

Portlets:

Development, operations tools:

to uPortal-contrib

Portlets:

Supporting software libraries:

Mobile app uPortal clients:

Maven archetypes:

Other repos?

There are quite a few more repos in the Jasig organization, arguably enough a part of the uPortal ecosystem that they ought to migrate. Figure go after that fringe migration after successfully migrating more of the unambiguously uPortal-flavored repositories.

In navigating the tradeoffs, these might migrate into a uPortal GitHub organization, or they might migrate into the general Apereo organization.

What is not being proposed

These are GitHub organizations, a structural unit in the GitHub SaaS social coding tool. These aren't legal organizations. This isn't a matter of uPortal not being part of the Apereo legal, social, cultural organization. This is a matter of uPortal having a clear bucket in which to put its Git repos.

Peer examples

The Sakai Project uses a SakaiProject organization and a SakaiContrib organization.

The Karuta Project uses a GitHub organization.

Why not status quo (Jasig organization)?

The Jasig brand is deprecated.

The Jasig GitHub organization has 61 repositories as of this writing, only some of which have to do with uPortal. uPortal repositories mixed among these other repositories makes for noise and confusion.

Why not Apereo GitHub organization?

The Apereo GitHub organization misses an opportunity to provide a uPortal namespace in GitHub, to organize core uPortal repositories together and thereby reduce the downsides in much-needed refactoring towards more git repositories with tighter individual scope.

Post image credit

Post image copyright 2016 All Rights Reserved, drawn from the author's personal photo collection.

In the image, my son Sam is pouring water from one cup to another.

In this work, the uPortal project will be pouring Git repositories from one GitHub organization to another.

In both pourings, there's potential for spilling, for mess, and for the joy in doing.