JimmyLv / JimmyLv/jimmylv.github.io
TBD & Monorepo: Integrate with Lerna and Yarn workspace
- Dominant language
- No language data
- Stars
- 731
- Forks
- 114
- PR merge metrics
- No merged PRs in 30d
Description
## 项目纵向拆分
### ⓵ 定义目标和原则
### ⓶ 展望结果(OKRs)
### ⓷ 头脑风暴(发散)
### ⓸ 组织整理(收敛)
### ⓹ 明确「下一步行动」
- before monorepo(setup)
- lerna usage
- lerna run & exec
- yarn workspace
[monorepo.md](https://gist.github.com/JimmyLv/a8334110ed4db6c5e773bbf806174991)
## Ideas
- [Monorepos - Trunk Based Development](https://trunkbaseddevelopment.com/monorepos/)
- [monorepo 新浪潮 | introduce lerna · Issue #3 · pigcan/blog](https://github.com/pigcan/blog/issues/3)
- [谷歌的代码管理 - 阮一峰的网络日志](http://www.ruanyifeng.com/blog/2016/07/google-monolithic-source-repository.html)
## Example
- [babel/monorepo.md at master · babel/babel](https://github.com/babel/babel/blob/master/doc/design/monorepo.md)
- [create-react-app/CONTRIBUTING.md at master · facebookincubator/create-react-app](https://github.com/facebookincubator/create-react-app/blob/master/CONTRIBUTING.md#folder-structure-of-create-react-app)
- [Why Google Stores Billions of Lines of Code in a Single Repository - YouTube](https://www.youtube.com/watch?v=W71BTkUbdqE)
- https://staltz.com/setting-up-a-javascript-monorepo.html
## Tools
- [lerna/lerna: A tool for managing JavaScript projects with multiple packages.](https://github.com/lerna/lerna)
- [lerna-changelog](https://github.com/lerna/lerna-changelog)
- http://formidable.com/open-source/builder/
- https://yarnpkg.com/blog/2017/08/02/introducing-workspaces/
- https://code.facebook.com/posts/274518539716230/announcing-yarn-1-0/
- [Introducing Composite Builds](https://blog.gradle.org/introducing-composite-builds#splitting-monoliths)
## Others
- https://developer.atlassian.com/blog/2015/10/monorepos-in-git/
- [The Case for Monorepos](https://medium.com/@bebraw/the-case-for-monorepos-907c1361708a)
- [Advantages of monolithic version control](http://danluu.com/monorepo/)
- [New wave modularity with Lerna, monorepos, and npm organizations](http://www.macwright.org/2016/07/08/lerna-npm-organizations-new-wave-modularity.html)
- [Monorepo, scaling projects](https://kikobeats.com/monorepo/)
------
## Topic: Monorepo
Problems:
- Overhead of dependency upgrade
- Versioning management not easy cross repos
When the application gets more complex, dependencies become hard to manage and bring overhead in development. Mono-repo is to solve this issue by bring them together in one repo, so that we can working on one repo without manage dependencies in different places. We'd like to share with you what changes we made in O$P to make our frontend development easier and the problems we've solved.
## Topic: Trunk Based Development
Problem:
- Long release cycle
- Long review cycle
- Maintain too many branches
Solution & Benefits:
Trunk-Based Development is a source-control branching model, where developers collaborate on code in a single branch called ‘trunk’, resist any pressure to create other long-lived development branches. Trunk-Based Development is a key enabler of Continuous Integration and by extension Continuous Delivery. When individuals on a team are committing their changes to the trunk multiple times a day it becomes easy to satisfy the core requirement of Continuous Integration that all team members commit to trunk at least once every 24 hours. This ensures the codebase is always releasable on demand and helps to make Continuous Delivery a reality.
Contributor guide
Assessment
This issue has not been assessed yet.