Skip to content
This repository was archived by the owner on Mar 10, 2023. It is now read-only.

Commit cd87262

Browse files
authored
Testing features (#202)
* add demonstration in dummy-data of missing readme * pass full pkgjson info down to package:home templates * convert to using changesets v2 * Actually udpate to v2 of changesets * Add changeset workflows
1 parent a19c3e9 commit cd87262

File tree

23 files changed

+311
-102
lines changed

23 files changed

+311
-102
lines changed

.changeset/config.js

-84
This file was deleted.

.changeset/config.json

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"$schema": "https://unpkg.com/@changesets/[email protected]/schema.json",
3+
"changelog": "./getChangelogEntries",
4+
"commit": false,
5+
"linked": [],
6+
"access": "public"
7+
}

.changeset/getChangelogEntries.js

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
const getReleaseLine = async changeset => {
2+
const [firstLine, ...futureLines] = changeset.summary
3+
.split('\n')
4+
.map(l => l.trimRight());
5+
6+
return `- ${changeset.commit}: ${firstLine}\n${futureLines
7+
.map(l => ` ${l}`)
8+
.join('\n')}`;
9+
};
10+
11+
const getDependencyReleaseLine = async (changesets, dependenciesUpdated) => {
12+
if (dependenciesUpdated.length === 0) return '';
13+
14+
const changesetLinks = changesets.map(
15+
changeset => `- Updated dependencies [${changeset.commit}]:`,
16+
);
17+
18+
const updatedDepenenciesList = dependenciesUpdated.map(
19+
dependency => ` - ${dependency.name}@${dependency.version}`,
20+
);
21+
22+
return [...changesetLinks, ...updatedDepenenciesList].join('\n');
23+
};
24+
25+
module.exports = {
26+
getReleaseLine,
27+
getDependencyReleaseLine,
28+
};

.github/workflows/changeset-check.yml

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: Changeset Check
2+
3+
on: pull_request
4+
5+
jobs:
6+
check:
7+
name: Changeset Check
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@master
11+
- name: Comment on PR
12+
uses: changesets/check-action@master
13+
env:
14+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Version
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
8+
jobs:
9+
release:
10+
name: Release
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Checkout Repo
14+
uses: actions/checkout@master
15+
16+
- name: Setup Node.js 10.x
17+
uses: actions/setup-node@master
18+
with:
19+
version: 10.x
20+
21+
- name: Install Yarn
22+
run: npm install --global yarn
23+
24+
- name: Install Dependencies
25+
run: yarn
26+
27+
- name: Create Release Pull Request
28+
uses: changesets/action@master
29+
env:
30+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@
8282
"@babel/preset-typescript": "^7.3.3",
8383
"@babel/runtime": "^7.4.3",
8484
"@babel/runtime-corejs2": "^7.4.3",
85-
"@changesets/cli": "^1.3.0",
85+
"@changesets/cli": "^2.0.1",
8686
"@emotion/core": "^10.0.9",
8787
"@emotion/styled": "^10.0.9",
8888
"@emotion/styled-base": "^10.0.10",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module.exports = () => ({
2+
sortOrder: ['special-usecase', '*'],
3+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import React from 'react';
2+
3+
const Subexample = () => <h1>Hello, from a subexample inside docs/</h1>;
4+
5+
export default Subexample;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
```
2+
Give examples
3+
```
4+
5+
### Installing
6+
7+
A step by step series of examples that tell you how to get a development env running
8+
9+
Say what the step will be
10+
11+
```
12+
Give the example
13+
```
14+
15+
And repeat
16+
17+
```
18+
until finished
19+
```
20+
21+
End with an example of getting some data out of the system or using it for a little demo
22+
23+
## Versioning
24+
25+
We use [Vertool](http://semver.org/) for versioning. For the versions available, see the
26+
[tags on this repository](https://github.com/your/project/tags).
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## Running the tests
2+
3+
Explain how to run the automated tests for this system
4+
5+
### Break down into end to end tests
6+
7+
Explain what these tests test and why
8+
9+
```
10+
Give an example
11+
```
12+
13+
### And coding style tests
14+
15+
Explain what these tests test and why
16+
17+
## Deployment
18+
19+
Add additional notes about how to deploy this on a live system
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import React from 'react';
2+
3+
const name = 'Example 1 package 2';
4+
const Example1 = () => <h1>Hello, {name}</h1>;
5+
6+
export default Example1;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import React from 'react';
2+
3+
const name = 'Example 2 package 2';
4+
const Example2 = () => <h1>Hello, {name}</h1>;
5+
6+
export default Example2;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import React from 'react';
2+
3+
const name = 'Example 3 package 2';
4+
const Example3 = () => <h1>Hello, {name}</h1>;
5+
6+
export default Example3;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"name": "package-no-readme",
3+
"version": "1.0.0",
4+
"description": "This mock package has no readme",
5+
"main": "index.js",
6+
"keywords": [],
7+
"author": "Test2",
8+
"license": "",
9+
"dependencies": {
10+
"react": "^16.7.0",
11+
"react-dom": "^16.7.0",
12+
"styled-components": "^4.1.3"
13+
}
14+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import React from 'react';
2+
3+
const Subexample = () => <h1>Hello, from a subexample</h1>;
4+
5+
export default Subexample;
6+
7+
export const AnotherExample = () => <div>another example</div>;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import React from 'react';
2+
3+
const name = 'Test Package 2';
4+
const Element = <h1>Hello, {name}</h1>;
5+
6+
export default Element;

packages/website/src/pipeline/stages/common/project-info.ts

+3
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ export interface PackageInfo {
5454
examples: ExampleItem[];
5555
// Tree of inner package examples
5656
subExamples: ExampleTreeNode[];
57+
pkg: {
58+
[key: string]: any;
59+
};
5760
}
5861

5962
// A group of docs to be shown on the top level of the website

packages/website/src/pipeline/stages/generate-website-info/__snapshots__/test.ts.snap

+1
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ Object {
171171
"must-read",
172172
],
173173
"packageName": "package one",
174+
"pkg": Object {},
174175
},
175176
"websitePath": "packages/package-1",
176177
},

packages/website/src/pipeline/stages/generate-website-info/generate-package-info.test.ts

+6
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,11 @@ const mockData: PackageInfo[] = [
1919
docs: [],
2020
examples: [],
2121
subExamples: [],
22+
pkg: {},
2223
},
2324

2425
{
26+
pkg: {},
2527
id: 'package-2',
2628
name: 'Package Two',
2729
packageFields: {},
@@ -90,6 +92,7 @@ describe('Package website info generator', () => {
9092
customField1: 'foo',
9193
customField2: 'bar',
9294
metaField1: 'baz',
95+
pkg: {},
9396
},
9497
meta: { title: 'Package 1' },
9598
});
@@ -147,6 +150,7 @@ describe('Package website info generator', () => {
147150
it('processes docs website information', () => {
148151
const mockDataWithDocs = [
149152
{
153+
pkg: {},
150154
id: 'package-1',
151155
name: 'Package One',
152156
packageFields: {},
@@ -190,6 +194,7 @@ describe('Package website info generator', () => {
190194
it('outputs top level examples', () => {
191195
const mockDataWithExamples = [
192196
{
197+
pkg: {},
193198
id: 'package-1',
194199
name: 'Package One',
195200
packageFields: {},
@@ -226,6 +231,7 @@ describe('Package website info generator', () => {
226231
readmeMeta: {},
227232
docs: [],
228233
examples: [],
234+
pkg: {},
229235
subExamples: [
230236
{
231237
id: 'sub-examples-group-1',

packages/website/src/pipeline/stages/generate-website-info/generate-package-info.ts

+1
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ const generatePackageInfo = (
7777
...pkg.packageFields,
7878
customPackageFields: Object.keys(pkg.packageFields),
7979
...pkg.readmeMeta,
80+
pkg: pkg.pkg,
8081
},
8182
meta: { title: titleCase(pkg.id) },
8283
};

packages/website/src/pipeline/stages/generate-website-info/sample-data.ts

+1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ export const singlePackageData: PackageInfo[] = [
6060
],
6161
},
6262
],
63+
pkg: {},
6364
},
6465
];
6566

packages/website/src/pipeline/stages/scan-metadata/get-package-info.ts

+1
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ export default async ({
238238
docs: getDocsInfo(path.join(directoryPath, 'docs')) || [],
239239
examples,
240240
subExamples,
241+
pkg: packageDefinition,
241242
};
242243

243244
return packageInfo;

0 commit comments

Comments
 (0)