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

Adds a monorepo structure #261

Merged
merged 14 commits into from
Dec 6, 2019
Merged

Adds a monorepo structure #261

merged 14 commits into from
Dec 6, 2019

Conversation

kettanaito
Copy link
Owner

@kettanaito kettanaito commented Nov 30, 2019

Adopts a monorepo pattern for the repository that splits Atomic Layout into the core and rendering parts. This is a crucial pre-requisite for this library to become styling- and rendering-agnostic.

Changes

  • Sets up a monorepo structure of the project
  • Provides necessary dependencies adjustments to fit the monorepo
  • Splits the library into two modules: atomic-layout-core and atomic-layout
  • Adjusts CI to properly bootstrap, build and test all monorepo packages

GitHub

Release version

Although the scope of these changes may be big, there must be no breaking changes to the consumers of the library. Public API and package name (atomic-layout) shall remain as-is.

  • patch (internal improvements)
  • minor (backward-compatible changes)
  • major (breaking, backward-incompatible changes)

Contributor's checklist

  • My branch is up-to-date with the latest master
  • I ran yarn ci and verified the build and tests passing

Roadmap

  • Verify tests run in @atomic-layout/core
  • Make atomic-layout depend on @atomic-layout/core
  • Verify tests run in @atomic-layout/core
  • Verify tests run in atomic-layout
  • Buildatomic-layout
  • Verify E2E tests in atomic-layout
  • Adjust CircleCI
  • Think through the order of jobs execution in the CI to make dependencies properly dependent
  • Name CI jobs
  • Adjust pre-commit commands
  • Adjust bundlesize check
  • Abstract generateComponents from parseTemplate composition
  • Verify that working with the Layout instance is as intended
  • Configure linting as a part of the CI
  • Disable treating @atomic-layout/core as an external dependency during UMD/ESM build (needs to throw if it's not present)
  • Reverted version bump to be properly included with tags via lerna publish
  • Update Contributing guidelines in case yarn ci command is removed

@kettanaito kettanaito force-pushed the monorepo branch 23 times, most recently from a412252 to 085265c Compare December 4, 2019 08:51
@kettanaito
Copy link
Owner Author

kettanaito commented Dec 4, 2019

The last E2E job can take a snapshot of the file system and pack it into an archive. Restoring the archive on local may be a good way to debug the failing state.

Update

It's useful to run a failing job with SSH and browse the remote machine's state from your local:

$ ssh -P <CIRCLECI_PORT> <CIRCLECI_HOST>

Entire SSH command is included in CircleCI once a job is run with SSH.

It's also possible to archive and copy files from the remote machine to inspect its state:

$ scp -i ~/.ssh/your_ssh_key -P <CIRCLECI_PORT> -r <USERNAME>@<CIRCLECI_HOST>:/root/<PWD> <COPY_DIST>

Resolved

The failing E2E job has been fixed by updating a Cypress docker container to include Chrome 78.

@kettanaito kettanaito force-pushed the monorepo branch 6 times, most recently from bd3884a to db5c8c4 Compare December 4, 2019 14:07
@kettanaito kettanaito force-pushed the monorepo branch 5 times, most recently from 385c14f to a53979f Compare December 5, 2019 15:11
@kettanaito kettanaito mentioned this pull request Dec 5, 2019
2 tasks
@kettanaito kettanaito force-pushed the monorepo branch 3 times, most recently from 9232414 to 7c844cf Compare December 6, 2019 08:37
@kettanaito kettanaito marked this pull request as ready for review December 6, 2019 10:28
@kettanaito kettanaito merged commit 8777963 into master Dec 6, 2019
@kettanaito kettanaito deleted the monorepo branch December 6, 2019 10:56
@kettanaito kettanaito mentioned this pull request Dec 7, 2019
26 tasks
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

Successfully merging this pull request may close these issues.

1 participant