Upcoming changes to vanilla repositories

Unknown
edited June 2020 in Core Vanilla

We've got some upcoming changes in vanilla's repository structure. Mainly moving from multiple product repos used by vanilla employees to just 2.

There's been a lot of person to person discussion about this over the last year, but I'm finally getting the ball rolling on it.

Whats's changing?

The internal, multisite, knowledge, and analytics repos will be retired. In the future the addons repo may be considered as well.

All cloud plugins that were previously in these repositories will now live in a new private repository vanilla-cloud along with the codebase of the existing vanilla/vanilla repo.

The repository is still being configured but you can find it here. vanilla/vanilla-cloud

New Structure

  • A direct fork of vanilla/vanilla.
  • All cloud addons now reside in either the /cloud/plugins, /cloud/themes, or /cloud/applications directories.
  • vanilla-patches will go away. Instead PRs can be made directly to vanilla-cloud.

Why now?

The long and short of this is that as our product gets more integrated (larger more fully featured addons instead of small 1-2 week projects), maintaining them has become far more complicated. Often times a single feature can require multiple PRs across multiple repos with a complex chain of dependencies. This can make review, CI, and locally checking out changes a lot more complicated.

More detailed reasons can be found in this article.

What about my PRs?

It is possible to synchronize code back and forth between the old repos and the new repo, although a bit tedious.

Guides are available for switching your localhost to use the new repository.

There are also guides for moving existing PRs.

Timeline of Changes

The timeline of changes is planned as follows.

Fri Jun 26 - Release 2020.013 will be branched from the old repositories. This will be the last cloud release to use these repositories.

Mon Jun 29 - Team supreme will begin using the new vanilla-cloud repository.

During this time other teams may continue to make PRs against existing repositories.

Friday July 5 - I will sync any changes from master branch in the old repositories to the new one.

Mon July 6 - Other teams should being using the new vanilla-cloud repository.

Fri July 11 - Release 2020.014 is branched from the new repository. I will provide a script to adjust infrastructure for the new structure and assistance will be given during the staging deploy.

Comments

  • This will be a short-term inconvenience for a long-term gain. Open source will still use vanilla/vanilla, I assume? Also, the Sphinx repo is not going to be a part of this? Asking for a friend who does deploys.

  • Open source will continue to use vanilla/vanilla. I've wrote a script to sync stuff out (kind of similar to how we sync vanilla-patches).

    The sphinx changes are not getting moved currently. Maybe in a future iteration, although we are planning to have sphinx retired from infrastructure by the end of year anyways (using elasticsearch instead).

  • Can't comment from a dev perspective, but from a compliance perspective this is a win for our environment. ?️

  • I think it make sense to have all things in the cloud repo, so it's a good idea.

    Just a quick note, that addons is also used by open- source people as well, because sometimes, we've neglected to update the add-ons on the open.vanillaforums.com - a project to integrate fully into Github that some in the community were working on, has not materialized. As it stands now, I believe addons is non-core plugins, so maybe it's worth a final sweep - so those used in Cloud/Open source and are "critical" get added to the plugins folder in core?