Skip to content

Commit

Permalink
Making this repo into a monorepo in preparation of more granular work (
Browse files Browse the repository at this point in the history
…microsoft#250)

* Turning lage into monorepo to prepare subdividing into pieces

* getting rid of renovate for now

* updated the root scripts to work

* fixing up pipelines

* moving many files around requires adjustments to beachball config

* upgrade node version to allow docusaurus to consume newer node version

* Change files

* get rid of the extra docs: prefix

* adding verbose logging
  • Loading branch information
kenotron authored May 25, 2022
1 parent ce90567 commit c0d69c2
Show file tree
Hide file tree
Showing 107 changed files with 5,710 additions and 15,578 deletions.
52 changes: 0 additions & 52 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,59 +1,7 @@
# lage

This is the UNSTABLE branch. All package published from this branch will be tagged as `lage@unstable`. When we have confirmed stability for v1.x branch, then we'll promote it to be stable.

Documentation is here: https://microsoft.github.io/lage/

## Overview

Your JS repo has gotten large enough that you have turned to using a tool to help you manage multiple packages inside a repository. That's great! However, you realized quickly that the tasks defined inside the workspace have to be run in package dependency order.

Lerna, Rush, wsrun and even pnpm will provide a simple way for you to run npm scripts to be run in a topological order. However, these tools will force you to run your tasks by script name one at a time. For example, all the `build` scripts will have to run first. Then all the `test` scripts run in the topological order.

This usually means that there are wasted CPU cycles in between `build` and `test`. We can achieve better pipelining the npm scripts if we had a way to say that `test` can run as soon as `build` are done for the package.

`lage` (Norwegian for "make", pronounced law-geh) solves this by providing a terse pipelining syntax. It has many features geared towards speeding up the task runner that we'll explore later.

## Quick Start

`lage` gives you this capability with very little configuration. First, let's install the `lage` utility. You can place this in your workspace's root `package.json` by running `yarn add`:

```
yarn add -D lage
```

Confirm with `yarn` that you are sure to add a package at the root level, you then place a root level script inside the `package.json` to run `lage`:

```
{
"scripts": {
"build": "lage build",
"test": "lage test"
}
}
```

Add a configuration file in the root to get started. Create this file at the root `lage.config.js`:

```js
module.exports = {
pipeline: {
build: ["^build"],
test: ["build"],
},
};
```

Do not worry about the syntax for now. We will go over the configuration file in a coming section. You can now run this command:

```
$ lage test
```

`lage` will detect that you need to run `build` steps before `test`s are run.



# Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a
Expand Down
5 changes: 2 additions & 3 deletions beachball.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@ module.exports = {
'decks/**',
'docs/**',
'jasmine.json',
'jest.config.js',
'renovate.json',
'tests/**',
'packages/*/jest.config.js',
'packages/*/tests/**',
// This one is especially important (otherwise dependabot would be blocked by change file requirements)
'yarn.lock',
],
Expand Down
7 changes: 7 additions & 0 deletions change/lage-1dd4d866-1d71-4df6-b911-a97902fdc51e.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "patch",
"comment": "Moving to a monorepo. This will be a test publish",
"packageName": "lage",
"email": "ken@gizzar.com",
"dependentChangeType": "patch"
}
39 changes: 0 additions & 39 deletions docs-old/.vuepress/config.js

This file was deleted.

1 change: 0 additions & 1 deletion docs-old/.vuepress/public/.nojekyll

This file was deleted.

1 change: 0 additions & 1 deletion docs-old/.vuepress/styles/palette.styl

This file was deleted.

23 changes: 0 additions & 23 deletions docs-old/README.md

This file was deleted.

18 changes: 0 additions & 18 deletions docs-old/guide/README.md

This file was deleted.

25 changes: 0 additions & 25 deletions docs-old/guide/cache.md

This file was deleted.

Loading

0 comments on commit c0d69c2

Please sign in to comment.