From 4c607987d8426c76383e1910f39ca3f6a2d193d7 Mon Sep 17 00:00:00 2001 From: howardwu Date: Sun, 7 Feb 2021 13:12:36 -0800 Subject: [PATCH 1/3] Adds initial ARC site --- .github/workflows/site.yml | 34 +++++++ README.md | 2 +- arc-0000/README.md | 10 ++ arc-0001/README.md | 10 ++ parser/.gitignore | 26 ++++++ parser/README.md | 25 +++++ parser/index.js | 181 ++++++++++++++++++++++++++++++++++++ parser/package.json | 14 +++ site/.gitignore | 26 ++++++ site/README.md | 70 ++++++++++++++ site/package.json | 41 ++++++++ site/public/favicon.ico | Bin 0 -> 1150 bytes site/public/index.html | 43 +++++++++ site/public/logo192.png | Bin 0 -> 12574 bytes site/public/logo512.png | Bin 0 -> 71400 bytes site/public/manifest.json | 25 +++++ site/public/robots.txt | 3 + site/src/App.css | 12 +++ site/src/App.js | 107 +++++++++++++++++++++ site/src/App.test.js | 8 ++ site/src/index.css | 13 +++ site/src/index.js | 19 ++++ site/src/reportWebVitals.js | 13 +++ site/src/setupTests.js | 5 + 24 files changed, 686 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/site.yml create mode 100644 parser/.gitignore create mode 100644 parser/README.md create mode 100644 parser/index.js create mode 100644 parser/package.json create mode 100644 site/.gitignore create mode 100644 site/README.md create mode 100644 site/package.json create mode 100644 site/public/favicon.ico create mode 100644 site/public/index.html create mode 100644 site/public/logo192.png create mode 100644 site/public/logo512.png create mode 100644 site/public/manifest.json create mode 100644 site/public/robots.txt create mode 100644 site/src/App.css create mode 100644 site/src/App.js create mode 100644 site/src/App.test.js create mode 100644 site/src/index.css create mode 100644 site/src/index.js create mode 100644 site/src/reportWebVitals.js create mode 100644 site/src/setupTests.js diff --git a/.github/workflows/site.yml b/.github/workflows/site.yml new file mode 100644 index 0000000..f3ea12b --- /dev/null +++ b/.github/workflows/site.yml @@ -0,0 +1,34 @@ +name: Site +on: + push: + branches: + - main + +jobs: + deploy: + name: Site + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - uses: actions/cache@v2 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-cargo-website-${{ hashFiles('**/Cargo.lock') }} + + - name: Install and Build + run: | + cd site + yarn install + yarn build + + - name: Deploy + uses: JamesIves/github-pages-deploy-action@3.7.1 + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + BRANCH: gh-pages + FOLDER: site/build diff --git a/README.md b/README.md index 4a7731c..2ea2a54 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ARCs +# Aleo Request for Comments (ARCs) 🚨 This repository is under active development. 🚨 diff --git a/arc-0000/README.md b/arc-0000/README.md index b8c16db..0d51f7f 100644 --- a/arc-0000/README.md +++ b/arc-0000/README.md @@ -1,3 +1,13 @@ +--- +arc: 0 +title: Template +authors: The Aleo Team +topic: Meta +status: Living +reviewers: Howard Wu +created: 2020-02-07 +--- + ## Overview This file serves as the suggested template for new ARC proposals. diff --git a/arc-0001/README.md b/arc-0001/README.md index 8f90b4c..61d6748 100644 --- a/arc-0001/README.md +++ b/arc-0001/README.md @@ -1,3 +1,13 @@ +--- +arc: 1 +title: ARC Proposal Guidelines +authors: The Aleo Team +topic: Meta +status: Living +reviewers: Howard Wu +created: 2020-02-07 +--- + ## Overview Aleo Request for Comments (ARCs) are protocol-level, network-level, and application-level standards for the Aleo ecosystem. diff --git a/parser/.gitignore b/parser/.gitignore new file mode 100644 index 0000000..8101569 --- /dev/null +++ b/parser/.gitignore @@ -0,0 +1,26 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +**/arcs.json +yarn.lock diff --git a/parser/README.md b/parser/README.md new file mode 100644 index 0000000..583e1c5 --- /dev/null +++ b/parser/README.md @@ -0,0 +1,25 @@ +# parser + +## Development + +The parser expects each `arc-xxxx/README.md` file to adhere to the following format: +``` +--- +title: This is a test +description: Once upon a time... +--- + +# Title +Lorem ipsum... +``` + +The parser will then parse it into: +```json +{ + metadata: { + title: "This is a test", + description: "Once upon a time..." + }, + content: "# Title\nLorem ipsum..." +} +``` diff --git a/parser/index.js b/parser/index.js new file mode 100644 index 0000000..b6904b6 --- /dev/null +++ b/parser/index.js @@ -0,0 +1,181 @@ +const fs = require('fs'); +const glob = require("glob"); +const parseMD = require('parse-md').default; + +// Executes sanity checks for CI. +const ci = () => { + getArcDirectories('..', async (err, list) => { + if (err) { + console.log('Error', err); + process.exit(1); + } else { + for (let i = 0; i < list.length; i++) { + const arcDirectory = list[i]; + + /**************************** ****************************/ + /***************** ADD NEW CI CHECKS HERE ****************/ + /**************************** ****************************/ + + await checkArcReadmeExists(arcDirectory); + await checkArcReadmeContent(arcDirectory); + + /**************************** ****************************/ + /**************************** ****************************/ + /**************************** ****************************/ + + if (i === list.length - 1) { + console.log("\nAll ARCs are up to standard!\n"); + } + } + } + }) +} + +// Builds pages for site. +const site = () => { + getArcDirectories('..', async (err, list) => { + if (err) { + console.log('Error', err); + process.exit(1); + } else { + + let arcs = {}; + + for (let i = 0; i < list.length; i++) { + const arcDirectory = list[i]; + + /**************************** ****************************/ + /**************** ADD NEW SITE LOGIC HERE ****************/ + /**************************** ****************************/ + + await checkArcReadmeExists(arcDirectory); + await checkArcReadmeContent(arcDirectory); + + const { id, metadata, content } = parseArcReadme(arcDirectory); + // Skip adding arc-0000 template. + if (id !== 0) { + arcs[id] = { metadata, content }; + } + + /**************************** ****************************/ + /**************************** ****************************/ + /**************************** ****************************/ + + if (i === list.length - 1) { + console.log("\nSuccessfully built all ARCs!"); + + // Write the processed ARCs to the `site` directory. + const path = "../site/src/arcs.json"; + fs.writeFileSync(path, JSON.stringify(arcs, null, 4)); + + console.log(`\nSuccessfully wrote all ARCs to ${path}!\n`); + } + } + } + }) +} + +/***************************************************** ****************************************************************/ +/***************************************************** ****************************************************************/ +/***************************************************** ****************************************************************/ +/*************************************** HELPER METHODS ONLY BELOW ****************************************************/ +/***************************************************** ****************************************************************/ +/***************************************************** ****************************************************************/ +/***************************************************** ****************************************************************/ + +// Returns a list of CLI arguments. +const cliArguments = process.argv.slice(2); + +// Returns a list of relative paths to every ARC directory. +const getArcDirectories = (relativePathToRoot, callback) => { + glob(relativePathToRoot + '/arc-*', callback); +}; + +// Checks that a README.md file exists in a given 'arc-xxxx' directory. +const checkArcReadmeExists = async (arcDirectory) => { + const arcReadmeFile = arcDirectory + '/README.md'; + try { + if (!fs.existsSync(arcReadmeFile)) { + console.error('Could not find', arcReadmeFile); + process.exit(1); + } + } catch(err) { + console.error('Could not find', arcReadmeFile); + process.exit(1); + } +} + +// Checks that a README.md file has the required content for a given 'arc-xxxx' directory. +const checkArcReadmeContent = async (arcDirectory) => { + const arcReadmeFile = arcDirectory + '/README.md'; + const fileContents = fs.readFileSync(arcReadmeFile, 'utf8'); + const { metadata, content } = parseMD(fileContents); + + /** + * arc: 1 + * title: Template + * authors: The Aleo Team + * topic: Meta + * status: Living + * reviewers: Howard Wu + * created: 2020-02-07 + */ + const requiredMetadata = ['arc', 'title', 'authors', 'topic', 'status', 'reviewers', 'created']; + + // Check that the metadata is fully filled in. + for (let i = 0; i < requiredMetadata.length; i++) { + const metatopic = requiredMetadata[i]; + if (!metadata.hasOwnProperty(metatopic)) { + console.error('\n', arcReadmeFile, 'is missing \'', metatopic, '\'.\n'); + process.exit(1); + } + } + + // Check that the ARC # matches the directory #. + try { + const directoryNumber = parseInt(arcDirectory.split('-')[1]); + const metadataNumber = parseInt(metadata.arc); + if (directoryNumber !== metadataNumber) { + console.error('\nARC directory ID (', arcDirectory, ') does not match the ARC ID in the README (', metadataNumber, ').\n'); + process.exit(1); + } + } catch (err) { + console.error("\nFailed to check that", arcDirectory, "has a matching ARC number.\n"); + process.exit(1) + } + + // Check that the main body is not empty. + if (content === null || content === undefined || content === "") { + console.error('\n', arcReadmeFile, 'is empty.\n'); + process.exit(1); + } +} + +// Returns the metadata and content of the README file for a given ARC. +const parseArcReadme = (arcDirectory) => { + const arcReadmeFile = arcDirectory + '/README.md'; + const fileContents = fs.readFileSync(arcReadmeFile, 'utf8'); + const { metadata, content } = parseMD(fileContents); + const id = metadata.arc; + return { id, metadata, content } +} + +// The main program. +const main = () => { + if (cliArguments.length === 0) { + console.error('\nPlease provide one CLI argument: \'ci\', \'site\'\n'); + } else { + switch (cliArguments[0].toLowerCase()) { + case 'ci': + ci(); + break; + case 'site': + site(); + break; + default: + console.error('\nInvalid command. Please provide a valid CLI argument: \'ci\', \'site\'\n'); + } + } +} + +main() diff --git a/parser/package.json b/parser/package.json new file mode 100644 index 0000000..392106c --- /dev/null +++ b/parser/package.json @@ -0,0 +1,14 @@ +{ + "name": "parser", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "dependencies": { + "glob": "^7.1.6", + "parse-md": "^2.0.4" + }, + "scripts": { + "ci": "node index.js ci", + "site": "node index.js site" + } +} diff --git a/site/.gitignore b/site/.gitignore new file mode 100644 index 0000000..8101569 --- /dev/null +++ b/site/.gitignore @@ -0,0 +1,26 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +**/arcs.json +yarn.lock diff --git a/site/README.md b/site/README.md new file mode 100644 index 0000000..b2051f1 --- /dev/null +++ b/site/README.md @@ -0,0 +1,70 @@ +# ARCs Website + +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `yarn start` + +Runs the app in the development mode.\ +Open [http://localhost:3000](http://localhost:3000) to view it in the browser. + +The page will reload if you make edits.\ +You will also see any lint errors in the console. + +### `yarn test` + +Launches the test runner in the interactive watch mode.\ +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `yarn build` + +Builds the app for production to the `build` folder.\ +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.\ +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `yarn eject` + +**Note: this is a one-way operation. Once you `eject`, you can’t go back!** + +If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. + +You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). + +### Code Splitting + +This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) + +### Analyzing the Bundle Size + +This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) + +### Making a Progressive Web App + +This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) + +### Advanced Configuration + +This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) + +### Deployment + +This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) + +### `yarn build` fails to minify + +This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) diff --git a/site/package.json b/site/package.json new file mode 100644 index 0000000..e1f8ad3 --- /dev/null +++ b/site/package.json @@ -0,0 +1,41 @@ +{ + "name": "site", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.11.4", + "@testing-library/react": "^11.1.0", + "@testing-library/user-event": "^12.1.10", + "antd": "^4.12.2", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "react-markdown": "^5.0.3", + "react-scripts": "4.0.2", + "web-vitals": "^1.0.1" + }, + "scripts": { + "prestart": "cd ../parser && yarn install && yarn site", + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/site/public/favicon.ico b/site/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..3db34eccd3733d6164d3b475d6d9e1cb7ee4acdf GIT binary patch literal 1150 zcmaKsTWAz#6vzK3yJnNLAz6*~Q6CDm5Bi`FmJ(1X1hl0IRZxh~8W8V@RSSSkjcQUur|Lkgn20O!V&dm4C@0|0^ zFarqp>T2*f3v1)R3;?qUhd5FkX8<@i^_3!pYaYCJr#HIwHEFkDTE=Ur`6Q^H5%=q- zKbxM2wkgP463>jv$73U6k`&LEx(ziccUe;171ipks5boN$v3^_N%-$2pSwc>-WySC z4vX=`5RG7t4tMF)aj&sTy$>qYZ+cn%Rh7rWrpnTwsdB>48Un|V(lJB6f95{*ZPscj zxN9oZ-%zf>`tpCsB7$IT1&jxPH6XD1|@`9WJuIBWY`*!x}Y(c2-cM!3qGXxQA~A*kdiU|w4{y^ zc9$UAC5tm@$(X(Ln8WNB%?!v9XH-hVEeV91%WA{z@e%z@G~5jh_mVw0sm&;N(o$ik zkJdr@Uj|7d!KS9&<#n zr$cVP#GSZy>PmK&`v1%RJe?nOdH + + + + + + + + + + + + ARCs + + + +
+ + + diff --git a/site/public/logo192.png b/site/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..09489c843c245c83810a9366dd1229c25bfef8a0 GIT binary patch literal 12574 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%0D2gBm1S1FQPEeb0%1-acYt0)|zA} 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 FV1ks=DvJOB literal 0 HcmV?d00001 diff --git a/site/public/manifest.json b/site/public/manifest.json new file mode 100644 index 0000000..2b491e5 --- /dev/null +++ b/site/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "ARCs", + "name": "Aleo Request for Comments (ARCs)", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/site/public/robots.txt b/site/public/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/site/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/site/src/App.css b/site/src/App.css new file mode 100644 index 0000000..7577b3d --- /dev/null +++ b/site/src/App.css @@ -0,0 +1,12 @@ +.logo { + float: left; + width: 100px; + height: 31px; +} + +.logo:before { + content: "ARCs"; + color: white; + font-size: 20px; + font-weight: bold; +} \ No newline at end of file diff --git a/site/src/App.js b/site/src/App.js new file mode 100644 index 0000000..ba730c6 --- /dev/null +++ b/site/src/App.js @@ -0,0 +1,107 @@ +import './App.css'; +import arcs from './arcs.json'; + +import React, { useEffect, useRef, useState } from 'react'; +import ReactDOM from 'react-dom'; +import ReactMarkdown from 'react-markdown'; + +import { Button, Card, Col, Divider, Form, Input, Layout, Menu, Row, Table, Tag } from 'antd'; +const { Header, Content, Footer } = Layout; + +const Readme = ({ readme }) => { + const ref = useRef(null); + + useEffect(() => { + if (readme && ref) { + ReactDOM.render(, ref.current) + } + }, [readme]) + + return

+} + +function App() { + const rows = Object.values(arcs).map(proposal => { + const { arc, title, authors, topic, status } = proposal.metadata; + return { key: arc, arc, title, authors, topic, status } + }); + + const columns = [ + { + title: 'ARC', + dataIndex: 'arc', + key: 'arc', + sorter: true, + render: arc => {arc}, + }, + { + title: 'Title', + dataIndex: 'title', + key: 'title', + }, + { + title: 'Authors', + dataIndex: 'authors', + key: 'authors', + }, + { + title: 'Topic', + dataIndex: 'topic', + key: 'topic', + sorter: true, + render: topic => { + let tag = topic.toLowerCase(); + let color = 'green'; + if (tag === 'protocol') { + color = 'blue'; + } else if (tag === 'network') { + color = 'purple'; + } else if (tag === 'application') { + color = 'magenta'; + } + return ( + + {tag.toUpperCase()} + + ); + }, + }, + { + title: 'Status', + dataIndex: 'status', + key: 'status', + sorter: true, + } + ]; + + const landingPage = () => ; + + const proposal = (id) => { + console.log(id); + const proposal = arcs[id].content; + setBody( +

ARC-{id}: {arcs[id].metadata.title}

+
+ +
) + } + + const [body, setBody] = useState(landingPage()); + + return ( + +
+ setBody(landingPage())}>
+ {/**/} + {/* */} + {/**/} +
+ + {body} + + +
+ ); +} + +export default App; diff --git a/site/src/App.test.js b/site/src/App.test.js new file mode 100644 index 0000000..1f03afe --- /dev/null +++ b/site/src/App.test.js @@ -0,0 +1,8 @@ +import { render, screen } from '@testing-library/react'; +import App from './App'; + +test('renders learn react link', () => { + render(); + const linkElement = screen.getByText(/learn react/i); + expect(linkElement).toBeInTheDocument(); +}); diff --git a/site/src/index.css b/site/src/index.css new file mode 100644 index 0000000..ec2585e --- /dev/null +++ b/site/src/index.css @@ -0,0 +1,13 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} diff --git a/site/src/index.js b/site/src/index.js new file mode 100644 index 0000000..eca2e41 --- /dev/null +++ b/site/src/index.js @@ -0,0 +1,19 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import './index.css'; +import App from './App'; +import reportWebVitals from './reportWebVitals'; + +import 'antd/dist/antd.css'; + +ReactDOM.render( + + + , + document.getElementById('root') +); + +// If you want to start measuring performance in your app, pass a function +// to log results (for example: reportWebVitals(console.log)) +// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals +reportWebVitals(); diff --git a/site/src/reportWebVitals.js b/site/src/reportWebVitals.js new file mode 100644 index 0000000..5253d3a --- /dev/null +++ b/site/src/reportWebVitals.js @@ -0,0 +1,13 @@ +const reportWebVitals = onPerfEntry => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }); + } +}; + +export default reportWebVitals; diff --git a/site/src/setupTests.js b/site/src/setupTests.js new file mode 100644 index 0000000..8f2609b --- /dev/null +++ b/site/src/setupTests.js @@ -0,0 +1,5 @@ +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import '@testing-library/jest-dom'; From cfff8f86a1ab945d918982008e9a5921f8b8e8eb Mon Sep 17 00:00:00 2001 From: howardwu Date: Sun, 7 Feb 2021 13:22:08 -0800 Subject: [PATCH 2/3] Add additional sanity checks --- parser/index.js | 83 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 71 insertions(+), 12 deletions(-) diff --git a/parser/index.js b/parser/index.js index b6904b6..b5c4a5e 100644 --- a/parser/index.js +++ b/parser/index.js @@ -2,6 +2,21 @@ const fs = require('fs'); const glob = require("glob"); const parseMD = require('parse-md').default; +/** + * arc: 1 + * title: Template + * authors: The Aleo Team + * topic: Meta + * status: Living + * reviewers: Howard Wu + * created: 2020-02-07 + */ +const requiredMetadata = ['arc', 'title', 'authors', 'topic', 'status', 'reviewers', 'created']; + +const topics = ['Meta', 'Protocol', 'Network', 'Application']; + +const statuses = ['Idea', 'Draft', 'Active', 'Withdrawn', 'Accepted', 'Rejected', 'Final', 'Deprecated', 'Living']; + // Executes sanity checks for CI. const ci = () => { getArcDirectories('..', async (err, list) => { @@ -120,7 +135,6 @@ const checkArcReadmeContent = async (arcDirectory) => { * reviewers: Howard Wu * created: 2020-02-07 */ - const requiredMetadata = ['arc', 'title', 'authors', 'topic', 'status', 'reviewers', 'created']; // Check that the metadata is fully filled in. for (let i = 0; i < requiredMetadata.length; i++) { @@ -129,19 +143,64 @@ const checkArcReadmeContent = async (arcDirectory) => { console.error('\n', arcReadmeFile, 'is missing \'', metatopic, '\'.\n'); process.exit(1); } - } - // Check that the ARC # matches the directory #. - try { - const directoryNumber = parseInt(arcDirectory.split('-')[1]); - const metadataNumber = parseInt(metadata.arc); - if (directoryNumber !== metadataNumber) { - console.error('\nARC directory ID (', arcDirectory, ') does not match the ARC ID in the README (', metadataNumber, ').\n'); - process.exit(1); + // Check that the ARC # matches the directory #. + if (metatopic === 'arc') { + try { + const directoryNumber = parseInt(arcDirectory.split('-')[1]); + const metadataNumber = parseInt(metadata.arc); + if (directoryNumber !== metadataNumber) { + console.error('\nARC directory ID (', arcDirectory, ') does not match the ARC ID in the README (', metadataNumber, ').\n'); + process.exit(1); + } + } catch (err) { + console.error("\nFailed to check that", arcDirectory, "has a matching ARC number.\n"); + process.exit(1) + } + } + + // Check that the ARC title is nonempty. + if (metatopic === 'title') { + const title = metadata['title']; + if (title === null || title === undefined || title === "") { + console.error('\nARC title cannot be empty.\n'); + process.exit(1); + } + } + + // Check that the ARC authors is nonempty. + if (metatopic === 'authors') { + const authors = metadata['authors']; + if (authors === null || authors === undefined || authors === "") { + console.error('\nARC authors cannot be empty.\n'); + process.exit(1); + } + } + + // Check that the ARC topic matches a valid topic. + if (metatopic === 'topic') { + if (!topics.includes(metadata['topic'])) { + console.error('\nARC topic (', metadata['topic'], ') is not an accepted topic.\n'); + process.exit(1); + } + } + + // Check that the ARC status matches a valid status. + if (metatopic === 'status') { + if (!statuses.includes(metadata['status'])) { + console.error('\nARC status (', metadata['status'], ') is not an accepted status.\n'); + process.exit(1); + } + } + + // Check that the ARC created is nonempty. + if (metatopic === 'created') { + const created = metadata['created']; + if (created === null || created === undefined || created === "") { + console.error('\nARC created cannot be empty.\n'); + process.exit(1); + } } - } catch (err) { - console.error("\nFailed to check that", arcDirectory, "has a matching ARC number.\n"); - process.exit(1) } // Check that the main body is not empty. From 48fba6f997c48928eaf145a282842330f8510b81 Mon Sep 17 00:00:00 2001 From: howardwu Date: Sun, 7 Feb 2021 13:23:26 -0800 Subject: [PATCH 3/3] Add CI.yml --- .github/workflows/ci.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..ec6c67c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,28 @@ +name: CI +on: + pull_request: + push: + branches: + - main + +jobs: + check: + name: CI + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - uses: actions/cache@v2 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-cargo-website-${{ hashFiles('**/Cargo.lock') }} + + - name: Install and Build + run: | + cd parser + yarn install + yarn ci