Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrating to a monorepo #951

Closed
eyelidlessness opened this issue May 3, 2023 · 4 comments
Closed

Migrating to a monorepo #951

eyelidlessness opened this issue May 3, 2023 · 4 comments

Comments

@eyelidlessness
Copy link
Collaborator

In the next couple of months, we will migrate the following projects to a monorepo:

  • enketo-express (which will become the monorepo)
  • enketo-core
  • enketo-transformer
  • openrosa-xpath-evaluator

When complete, the enketo-express repository will be renamed to enketo, with each project included in the same repo as sub-packages.

Why?

Migrating to a monorepo will improve:

  • tracking issues affecting multiple sub-packages, or manifesting further up the stack
  • ability to navigate between related code across packages
  • identification of dependencies which are less obvious with separate repositories today
  • safety, productivity, success delivering features and fixes
  • flexibility to reassess boundaries and responsibilities between projects, and to generally take a more holistic approach to changes
  • reduced friction for posting and tracking feedback/issues/PRs
  • ability to increase consistency across all packages

When?

We intend to make this change within the next couple of months, as it will unblock stalled and pending changes which are high priority but difficult to move forward otherwise.

Goals

To the extent possible, we consider these goals essential:

  • Preserve/migrate git history, and any other repository-specific content such as issues, for all projects
  • Continue to publish enketo-core/enketo-transformer/openrosa-xpath-evalutor as standalone packages to NPM
  • Update documentation as appropriate to ensure it remains correct and accessed easily
  • Make the most minimal, least disruptive change possible without introducing unnecessary hindrances

Expected impact

  • For users installing the existing NPM packages, there should be no immediate impact.
  • For users providing feedback, reporting will be simpler as there will be one place to file all issues. Otherwise, some URLs will obviously change, but we'll ensure there redirects where possible and provide links otherwise.
  • For contributors:
    • The enketo-core/enketo-transformer/openrosa-xpath-evaluator projects will be moved to the monorepo, so forks and clones of those repositories will need to be updated/replaced
    • The directory structures will change
    • We may make some related tooling changes (such as package manager)
@lognaturel
Copy link
Contributor

lognaturel commented Aug 3, 2023

This work will likely start in the next week or two. Since there have been no comments, we're hopeful the impact will be minimal.

@MartijnR ping since I know you maintain at least one fork which will need to decide how to adapt

@MartijnR
Copy link
Member

MartijnR commented Aug 4, 2023 via email

@lognaturel
Copy link
Contributor

The monorepo is now up at https://github.com/enketo/enketo! We will work with it for a week or two as we prepare the next releases to make sure everything is structured in a usable way. We expect to move issues and archive this repo in mid-October. 🚀

@lognaturel
Copy link
Contributor

Follow up tasks tracked at #3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants