Activitywatch: Merge several subrepos into bundle repo (monorepoify)

Created on 4 Sep 2018  路  6Comments  路  Source: ActivityWatch/activitywatch

Right now I'm really bothered by the overhead of managing submodules, CI, and releases. Things would be a lot simpler if a lot of things were brought into one repo.

Then I read this: https://danluu.com/monorepo/

Has been discussed a little before in: https://github.com/ActivityWatch/activitywatch/issues/70

Things that would improve:

  • Most issues would go in the standard activitywatch repo (easier overview, less cross-referencing)
  • Open PRs would become easier to overview and cross-repo changes could be put in a single PR instead of spread across repos
  • CI would be easier to maintain and run full integration tests on all projects for every commit
  • Easier to install

Things that would worsen:

  • CI build times
  • The contributor stats stuff would have to be rewritten

Repos I'd merge in:

  • aw-core
  • aw-server
  • aw-webui
  • aw-client
  • aw-client-js
  • aw-watcher-afk
  • aw-watcher-window
  • aw-watcher-web

Things we'd have to do:

  • For each repo to be merged:

    • In original repo, check out a new branch, move all files into subfolder with same name as repo, commit.

    • In destination repo, git merge the original repo's pre-merge branch.

  • Move all issues and open PRs
!wontfix ci testinqa high medium

Most helpful comment

Hi! Thanks for asking for my comment. I think as long as the architecture remains modular (not monolithic), then I think it's fine to make a monorepo. You can use this git trick to merge in the commits from all repos.

All 6 comments

@staltz Any comments/opinions?

I don't like monorepos, but if we want fewer repos this would be my suggestion of merging more stuff into aw_server like this:

  • aw_server

    • aw_server

    • aw_webui

    • aw_datastore

    • aw_transform

I like when the clients and their dependencies are in seperate repos, makes more sense for third-party watchers. The modules specified above should be aw_server exclusive anyway.

Hi! Thanks for asking for my comment. I think as long as the architecture remains modular (not monolithic), then I think it's fine to make a monorepo. You can use this git trick to merge in the commits from all repos.

@staltz Woah, that's an extremely useful link, thanks!

@johan-bjareholt That sounds sensible. Would fix most of the overhead I'm bothered by.

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

These plans have been put on hold, we're not doing this anytime soon. Closing.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

bawasi picture bawasi  路  8Comments

MarcManhart picture MarcManhart  路  3Comments

ErikBjare picture ErikBjare  路  9Comments

ErikBjare picture ErikBjare  路  7Comments

Chuhtra picture Chuhtra  路  7Comments